diff --git a/emscripten/bullet/bullet.d.ts b/emscripten/bullet/bullet.d.ts index 01fd1485..a2d0c96e 100644 --- a/emscripten/bullet/bullet.d.ts +++ b/emscripten/bullet/bullet.d.ts @@ -1,11 +1,31 @@ -declare module 'external:emscripten/bullet/bullet.asm.js' { - function factory (env: any, wasmMemory: ArrayBuffer): Bullet.instance; - export default factory; +declare module 'external:emscripten/bullet/bullet.release.asm.js' { + export default Bullet; } +declare module 'external:emscripten/bullet/bullet.release.wasm.js' { + export default Bullet; +} + +// tslint:disable +declare function Bullet (moduleOptions?: any): Promise; + declare namespace Bullet { type ptr = number; interface instance { + HEAP8: Int8Array; + HEAP16: Int16Array; + HEAP32: Int32Array; + HEAPU8: Uint8Array; + HEAPU16: Uint16Array; + HEAPU32: Uint32Array; + HEAPF32: Float32Array; + HEAPF64: Float64Array; + + // class interface + DebugDraw: any; + ControllerHitReport: any; + MotionState: any; + _malloc(bytes: number): ptr; _free(p: ptr): void; _read_f32(p: ptr): void; @@ -34,6 +54,7 @@ declare namespace Bullet { MotionState_getWorldTransform(p: ptr, transform: ptr): void; MotionState_setWorldTransform(p: ptr, transform: ptr): void; ccMotionState_new(id: number, initTrans: ptr): ptr; + ccMotionState_setup(p: ptr, id: number, initTrans: ptr): void; int_array_size(p: ptr): number; int_array_at(p: ptr, index: number): number; @@ -113,7 +134,7 @@ declare namespace Bullet { TerrainShape_new(i: number, j: number, p: ptr, hs: number, min: number, max: number): ptr; TriangleMesh_new(): ptr; - TriangleMesh_addTriangle(p: ptr, v0: ptr, v1: ptr, v2: ptr): void; + TriangleMesh_addTriangle(p: ptr, v0: ptr, v1: ptr, v2: ptr, removeDuplicateVertices: boolean): void; BvhTriangleMeshShape_new(p: ptr, c: boolean, bvh: boolean): ptr; BvhTriangleMeshShape_getOptimizedBvh(p: ptr): ptr; BvhTriangleMeshShape_setOptimizedBvh(p: ptr, p1: ptr, scaleX: number, scaleY: number, scaleZ: number); @@ -144,6 +165,7 @@ declare namespace Bullet { CollisionObject_isKinematicObject(p: ptr): boolean; CollisionObject_isStaticObject(p: ptr): boolean; CollisionObject_isStaticOrKinematicObject(p: ptr): boolean; + CollisionObject_isSleeping(p: ptr): boolean; CollisionObject_getWorldTransform(p: ptr): ptr; CollisionObject_getCollisionFlags(p: ptr): number; CollisionObject_setCollisionFlags(p: ptr, flags: number): void; @@ -180,6 +202,8 @@ declare namespace Bullet { RigidBody_applyTorque(p: ptr, f: ptr): void; RigidBody_applyForce(p: ptr, f: ptr, rp: ptr): void; RigidBody_applyImpulse(p: ptr, f: ptr, rp: ptr): void; + RigidBody_getWorldTransform(p: ptr, transform: ptr): void; + Transform_getRotationAndOrigin(transform: ptr, q: ptr): ptr; // dynamic diff --git a/emscripten/bullet/bullet.debug.asm.js b/emscripten/bullet/bullet.debug.asm.js new file mode 100644 index 00000000..41604fac --- /dev/null +++ b/emscripten/bullet/bullet.debug.asm.js @@ -0,0 +1,123306 @@ + +var Bullet = (() => { + var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; + + return ( +function(Bullet = {}) { + +// include: shell.js +// The Module object: Our interface to the outside world. We import +// and export values on it. There are various ways Module can be used: +// 1. Not defined. We create it here +// 2. A function parameter, function(Module) { ..generated code.. } +// 3. pre-run appended it, var Module = {}; ..generated code.. +// 4. External script tag defines var Module. +// We need to check if Module already exists (e.g. case 3 above). +// Substitution will be replaced with actual code on later stage of the build, +// this way Closure Compiler will not mangle it (e.g. case 4. above). +// Note that if you want to run closure, and also to use Module +// after the generated code, you will need to define var Module = {}; +// before the code. Then that object will be used in the code, and you +// can continue to use Module afterwards as well. +var Module = typeof Bullet != 'undefined' ? Bullet : {}; + +// Set up the promise that indicates the Module is initialized +var readyPromiseResolve, readyPromiseReject; +Module['ready'] = new Promise((resolve, reject) => { + readyPromiseResolve = resolve; + readyPromiseReject = reject; +}); +["_main","__embind_initialize_bindings","_fflush","onRuntimeInitialized"].forEach((prop) => { + if (!Object.getOwnPropertyDescriptor(Module['ready'], prop)) { + Object.defineProperty(Module['ready'], prop, { + get: () => abort('You are getting ' + prop + ' on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js'), + set: () => abort('You are setting ' + prop + ' on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js'), + }); + } +}); + +// --pre-jses are emitted after the Module integration code, so that they can +// refer to Module (if they choose; they can also define Module) + + +// Sometimes an existing Module object exists with properties +// meant to overwrite the default module functionality. Here +// we collect those properties and reapply _after_ we configure +// the current environment's defaults to avoid having to be so +// defensive during initialization. +var moduleOverrides = Object.assign({}, Module); + +var arguments_ = []; +var thisProgram = './this.program'; +var quit_ = (status, toThrow) => { + throw toThrow; +}; + +// Determine the runtime environment we are in. You can customize this by +// setting the ENVIRONMENT setting at compile time (see settings.js). + +var ENVIRONMENT_IS_WEB = true; +var ENVIRONMENT_IS_WORKER = false; +var ENVIRONMENT_IS_NODE = false; +var ENVIRONMENT_IS_SHELL = false; + +if (Module['ENVIRONMENT']) { + throw new Error('Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)'); +} + +// `/` should be present at the end if `scriptDirectory` is not empty +var scriptDirectory = ''; +function locateFile(path) { + if (Module['locateFile']) { + return Module['locateFile'](path, scriptDirectory); + } + return scriptDirectory + path; +} + +// Hooks that are implemented differently in different runtime environments. +var read_, + readAsync, + readBinary, + setWindowTitle; + +if (ENVIRONMENT_IS_SHELL) { + + if ((typeof process == 'object' && typeof require === 'function') || typeof window == 'object' || typeof importScripts == 'function') throw new Error('not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)'); + + if (typeof read != 'undefined') { + read_ = (f) => { + const data = tryParseAsDataURI(f); + if (data) { + return intArrayToString(data); + } + return read(f); + }; + } + + readBinary = (f) => { + let data; + data = tryParseAsDataURI(f); + if (data) { + return data; + } + if (typeof readbuffer == 'function') { + return new Uint8Array(readbuffer(f)); + } + data = read(f, 'binary'); + assert(typeof data == 'object'); + return data; + }; + + readAsync = (f, onload, onerror) => { + setTimeout(() => onload(readBinary(f)), 0); + }; + + if (typeof clearTimeout == 'undefined') { + globalThis.clearTimeout = (id) => {}; + } + + if (typeof scriptArgs != 'undefined') { + arguments_ = scriptArgs; + } else if (typeof arguments != 'undefined') { + arguments_ = arguments; + } + + if (typeof quit == 'function') { + quit_ = (status, toThrow) => { + // Unlike node which has process.exitCode, d8 has no such mechanism. So we + // have no way to set the exit code and then let the program exit with + // that code when it naturally stops running (say, when all setTimeouts + // have completed). For that reason, we must call `quit` - the only way to + // set the exit code - but quit also halts immediately. To increase + // consistency with node (and the web) we schedule the actual quit call + // using a setTimeout to give the current stack and any exception handlers + // a chance to run. This enables features such as addOnPostRun (which + // expected to be able to run code after main returns). + setTimeout(() => { + if (!(toThrow instanceof ExitStatus)) { + let toLog = toThrow; + if (toThrow && typeof toThrow == 'object' && toThrow.stack) { + toLog = [toThrow, toThrow.stack]; + } + err(`exiting due to exception: ${toLog}`); + } + quit(status); + }); + throw toThrow; + }; + } + + if (typeof print != 'undefined') { + // Prefer to use print/printErr where they exist, as they usually work better. + if (typeof console == 'undefined') console = /** @type{!Console} */({}); + console.log = /** @type{!function(this:Console, ...*): undefined} */ (print); + console.warn = console.error = /** @type{!function(this:Console, ...*): undefined} */ (typeof printErr != 'undefined' ? printErr : print); + } + +} else + +// Note that this includes Node.js workers when relevant (pthreads is enabled). +// Node.js workers are detected as a combination of ENVIRONMENT_IS_WORKER and +// ENVIRONMENT_IS_NODE. +if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + if (ENVIRONMENT_IS_WORKER) { // Check worker, not web, since window could be polyfilled + scriptDirectory = self.location.href; + } else if (typeof document != 'undefined' && document.currentScript) { // web + scriptDirectory = document.currentScript.src; + } + // When MODULARIZE, this JS may be executed later, after document.currentScript + // is gone, so we saved it, and we use it here instead of any other info. + if (_scriptDir) { + scriptDirectory = _scriptDir; + } + // blob urls look like blob:http://site.com/etc/etc and we cannot infer anything from them. + // otherwise, slice off the final part of the url to find the script directory. + // if scriptDirectory does not contain a slash, lastIndexOf will return -1, + // and scriptDirectory will correctly be replaced with an empty string. + // If scriptDirectory contains a query (starting with ?) or a fragment (starting with #), + // they are removed because they could contain a slash. + if (scriptDirectory.indexOf('blob:') !== 0) { + scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf('/')+1); + } else { + scriptDirectory = ''; + } + + if (!(typeof window == 'object' || typeof importScripts == 'function')) throw new Error('not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)'); + + // Differentiate the Web Worker from the Node Worker case, as reading must + // be done differently. + { +// include: web_or_worker_shell_read.js +read_ = (url) => { + try { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.send(null); + return xhr.responseText; + } catch (err) { + var data = tryParseAsDataURI(url); + if (data) { + return intArrayToString(data); + } + throw err; + } + } + + if (ENVIRONMENT_IS_WORKER) { + readBinary = (url) => { + try { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.responseType = 'arraybuffer'; + xhr.send(null); + return new Uint8Array(/** @type{!ArrayBuffer} */(xhr.response)); + } catch (err) { + var data = tryParseAsDataURI(url); + if (data) { + return data; + } + throw err; + } + }; + } + + readAsync = (url, onload, onerror) => { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, true); + xhr.responseType = 'arraybuffer'; + xhr.onload = () => { + if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 + onload(xhr.response); + return; + } + var data = tryParseAsDataURI(url); + if (data) { + onload(data.buffer); + return; + } + onerror(); + }; + xhr.onerror = onerror; + xhr.send(null); + } + +// end include: web_or_worker_shell_read.js + } + + setWindowTitle = (title) => document.title = title; +} else +{ + throw new Error('environment detection error'); +} + +var out = Module['print'] || console.log.bind(console); +var err = Module['printErr'] || console.error.bind(console); + +// Merge back in the overrides +Object.assign(Module, moduleOverrides); +// Free the object hierarchy contained in the overrides, this lets the GC +// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array. +moduleOverrides = null; +checkIncomingModuleAPI(); + +// Emit code to handle expected values on the Module object. This applies Module.x +// to the proper local x. This has two benefits: first, we only emit it if it is +// expected to arrive, and second, by using a local everywhere else that can be +// minified. + +if (Module['arguments']) arguments_ = Module['arguments'];legacyModuleProp('arguments', 'arguments_'); + +if (Module['thisProgram']) thisProgram = Module['thisProgram'];legacyModuleProp('thisProgram', 'thisProgram'); + +if (Module['quit']) quit_ = Module['quit'];legacyModuleProp('quit', 'quit_'); + +// perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message +// Assertions on removed incoming Module JS APIs. +assert(typeof Module['memoryInitializerPrefixURL'] == 'undefined', 'Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead'); +assert(typeof Module['pthreadMainPrefixURL'] == 'undefined', 'Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead'); +assert(typeof Module['cdInitializerPrefixURL'] == 'undefined', 'Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead'); +assert(typeof Module['filePackagePrefixURL'] == 'undefined', 'Module.filePackagePrefixURL option was removed, use Module.locateFile instead'); +assert(typeof Module['read'] == 'undefined', 'Module.read option was removed (modify read_ in JS)'); +assert(typeof Module['readAsync'] == 'undefined', 'Module.readAsync option was removed (modify readAsync in JS)'); +assert(typeof Module['readBinary'] == 'undefined', 'Module.readBinary option was removed (modify readBinary in JS)'); +assert(typeof Module['setWindowTitle'] == 'undefined', 'Module.setWindowTitle option was removed (modify setWindowTitle in JS)'); +assert(typeof Module['TOTAL_MEMORY'] == 'undefined', 'Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY'); +legacyModuleProp('read', 'read_'); +legacyModuleProp('readAsync', 'readAsync'); +legacyModuleProp('readBinary', 'readBinary'); +legacyModuleProp('setWindowTitle', 'setWindowTitle'); +var IDBFS = 'IDBFS is no longer included by default; build with -lidbfs.js'; +var PROXYFS = 'PROXYFS is no longer included by default; build with -lproxyfs.js'; +var WORKERFS = 'WORKERFS is no longer included by default; build with -lworkerfs.js'; +var NODEFS = 'NODEFS is no longer included by default; build with -lnodefs.js'; + +assert(!ENVIRONMENT_IS_WORKER, "worker environment detected but not enabled at build time. Add 'worker' to `-sENVIRONMENT` to enable."); + +assert(!ENVIRONMENT_IS_NODE, "node environment detected but not enabled at build time. Add 'node' to `-sENVIRONMENT` to enable."); + +assert(!ENVIRONMENT_IS_SHELL, "shell environment detected but not enabled at build time. Add 'shell' to `-sENVIRONMENT` to enable."); + + +// end include: shell.js +// include: preamble.js +// === Preamble library stuff === + +// Documentation for the public APIs defined in this file must be updated in: +// site/source/docs/api_reference/preamble.js.rst +// A prebuilt local version of the documentation is available at: +// site/build/text/docs/api_reference/preamble.js.txt +// You can also build docs locally as HTML or other formats in site/ +// An online HTML version (which may be of a different version of Emscripten) +// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html + +var wasmBinary; +if (Module['wasmBinary']) wasmBinary = Module['wasmBinary'];legacyModuleProp('wasmBinary', 'wasmBinary'); +var noExitRuntime = Module['noExitRuntime'] || true;legacyModuleProp('noExitRuntime', 'noExitRuntime'); + +// include: wasm2js.js +// wasm2js.js - enough of a polyfill for the WebAssembly object so that we can load +// wasm2js code that way. + +// Emit "var WebAssembly" if definitely using wasm2js. Otherwise, in MAYBE_WASM2JS +// mode, we can't use a "var" since it would prevent normal wasm from working. +/** @suppress{duplicate, const} */ +var +WebAssembly = { + // Note that we do not use closure quoting (this['buffer'], etc.) on these + // functions, as they are just meant for internal use. In other words, this is + // not a fully general polyfill. + /** @constructor */ + Memory: function(opts) { + this.buffer = new ArrayBuffer(opts['initial'] * 65536); + }, + + Module: function(binary) { + // TODO: use the binary and info somehow - right now the wasm2js output is embedded in + // the main JS + }, + + /** @constructor */ + Instance: function(module, info) { + // TODO: use the module somehow - right now the wasm2js output is embedded in + // the main JS + // This will be replaced by the actual wasm2js code. + this.exports = ( +function instantiate(info) { +function Table(ret) { + // grow method not included; table is not growable + ret.set = function(i, func) { + this[i] = func; + }; + ret.get = function(i) { + return this[i]; + }; + return ret; +} + + var bufferView; + var base64ReverseLookup = new Uint8Array(123/*'z'+1*/); + for (var i = 25; i >= 0; --i) { + base64ReverseLookup[48+i] = 52+i; // '0-9' + base64ReverseLookup[65+i] = i; // 'A-Z' + base64ReverseLookup[97+i] = 26+i; // 'a-z' + } + base64ReverseLookup[43] = 62; // '+' + base64ReverseLookup[47] = 63; // '/' + /** @noinline Inlining this function would mean expanding the base64 string 4x times in the source code, which Closure seems to be happy to do. */ + function base64DecodeToExistingUint8Array(uint8Array, offset, b64) { + var b1, b2, i = 0, j = offset, bLength = b64.length, end = offset + (bLength*3>>2) - (b64[bLength-2] == '=') - (b64[bLength-1] == '='); + for (; i < bLength; i += 4) { + b1 = base64ReverseLookup[b64.charCodeAt(i+1)]; + b2 = base64ReverseLookup[b64.charCodeAt(i+2)]; + uint8Array[j++] = base64ReverseLookup[b64.charCodeAt(i)] << 2 | b1 >> 4; + if (j < end) uint8Array[j++] = b1 << 4 | b2 >> 2; + if (j < end) uint8Array[j++] = b2 << 6 | base64ReverseLookup[b64.charCodeAt(i+3)]; + } + } +function initActiveSegments(imports) { + base64DecodeToExistingUint8Array(bufferView, 65536, "UXVhdF96AFZlYzNfegB2LT5wb2ludC56IDwgdy0+cG9pbnQuegB2MC0+cG9pbnQueiA8IHYxLT5wb2ludC56AGFjdHVhbFRoaXNQcm94eQByZW1vdmVPdmVybGFwcGluZ1BhaXJzQ29udGFpbmluZ1Byb3h5AEVtcHR5AFJpZ2lkQm9keV9zZXRHcmF2aXR5AER5bmFtaWNzV29ybGRfc2V0R3Jhdml0eQBUcmFuc2Zvcm1fc2V0SWRlbnRpdHkAR2VuZXJpYzZEb2ZTcHJpbmcyQ29uc3RyYWludF9zZXRUYXJnZXRWZWxvY2l0eQBIaW5nZUNvbnN0cmFpbnRfc2V0TW90b3JWZWxvY2l0eQBSaWdpZEJvZHlfc2V0QW5ndWxhclZlbG9jaXR5AFJpZ2lkQm9keV9nZXRBbmd1bGFyVmVsb2NpdHkAUmlnaWRCb2R5X3NldExpbmVhclZlbG9jaXR5AFJpZ2lkQm9keV9nZXRMaW5lYXJWZWxvY2l0eQBidEphY29iaWFuRW50cnkAZnJlZU1lbW9yeQBDaGFyYWN0ZXJDb250cm9sbGVyX3NldE92ZXJsYXBSZWNvdmVyeQBIaW5nZUNvbnN0cmFpbnRfc2V0QW5ndWxhck9ubHkAd2Fsa1N0YWNrbGVzc1F1YW50aXplZFRyZWVDYWNoZUZyaWVuZGx5AGJvZHkAZ2V0T3JJbml0U29sdmVyQm9keQB+YnRSaWdpZEJvZHkARHluYW1pY3NXb3JsZF9yZW1vdmVSaWdpZEJvZHkARHluYW1pY3NXb3JsZF9hZGRSaWdpZEJvZHkAVHlwZWRDb25zdHJhaW50X2dldEZpeGVkQm9keQB3YWxrU3RhY2tsZXNzVHJlZUFnYWluc3RSYXkAd2Fsa1N0YWNrbGVzc1F1YW50aXplZFRyZWVBZ2FpbnN0UmF5AFF1YXRfeQBWZWMzX3kAQm94AGdldFZlcnRleAByZW1vdmVWZXJ0ZXgAU2ltcGxleFNoYXBlX2FkZFZlcnRleAByZXBvcnRBYWJiT3ZlcmxhcHBpbmdOb2RleAByZW1vdmVDaGlsZFNoYXBlQnlJbmRleABtX25leHRbcHJldmlvdXNdID09IHBhaXJJbmRleABtX25leHRbcHJldmlvdXNdID09IGxhc3RQYWlySW5kZXgAQ29sbGlzaW9uT2JqZWN0X3NldFVzZXJJbmRleABDb2xsaXNpb25PYmplY3RfZ2V0VXNlckluZGV4AENvbmVTaGFwZV9zZXRDb25lVXBJbmRleABzb3J0QW5kQ2FsY1NwbGl0dGluZ0luZGV4AGdldEVzY2FwZUluZGV4AGdldFRyaWFuZ2xlSW5kZXgAaW50ZXJuYWxQcm9jZXNzVHJpYW5nbGVJbmRleAB3YWxrSXRlcmF0aW9ucyA8IG1fY3VyTm9kZUluZGV4AFF1YXRfeABWZWMzX3gALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABSaWdpZEJvZHlfbmV3AEhpbmdlQ29uc3RyYWludF9uZXcARml4ZWRDb25zdHJhaW50X25ldwBQMlBDb25zdHJhaW50X25ldwBHZW5lcmljNkRvZlNwcmluZzJDb25zdHJhaW50X25ldwBDb2xsaXNpb25PYmplY3RfbmV3AFF1YXRfbmV3AFNlcXVlbnRpYWxJbXB1bHNlQ29uc3RyYWludFNvbHZlcl9uZXcAQm94Q2hhcmFjdGVyQ29udHJvbGxlcl9uZXcAQ2Fwc3VsZUNoYXJhY3RlckNvbnRyb2xsZXJfbmV3AENvbGxpc2lvbkRpc3BhdGNoZXJfbmV3AFRyYW5zZm9ybV9uZXcAY2NNYXRlcmlhbF9uZXcAVHJpYW5nbGVNZXNoX25ldwBEYnZ0QnJvYWRwaGFzZV9uZXcAQm94U2hhcGVfbmV3AFNpbXBsZXhTaGFwZV9uZXcAQ3lsaW5kZXJTaGFwZV9uZXcAVGVycmFpblNoYXBlX25ldwBDb252ZXhUcmlhbmdsZU1lc2hTaGFwZV9uZXcAU2NhbGVkQnZoVHJpYW5nbGVNZXNoU2hhcGVfbmV3AFNwaGVyZVNoYXBlX25ldwBDb25lU2hhcGVfbmV3AFN0YXRpY1BsYW5lU2hhcGVfbmV3AENhcHN1bGVTaGFwZV9uZXcAY2NDb21wb3VuZFNoYXBlX25ldwBjY0Rpc2NyZXRlRHluYW1pY3NXb3JsZF9uZXcAQm94Q2hhcmFjdGVyQ29udHJvbGxlckRlc2NfbmV3AENhcHN1bGVDaGFyYWN0ZXJDb250cm9sbGVyRGVzY19uZXcAVmVjM19uZXcARGVidWdEcmF3AFF1YXRfdwBvblNoYXBlSGl0RXh0AGUtPnRhcmdldC0+cG9pbnQuZG90KG5vcm1hbCkgPT0gZGlzdABDb2xsaXNpb25Xb3JsZF9yYXlUZXN0AENvbGxpc2lvbldvcmxkX2NvbnZleFN3ZWVwVGVzdABwcmVkaWN0aXZlIGNvbnZleFN3ZWVwVGVzdABzb3J0AGNvbnZleEh1bGxTdXBwb3J0AENvbnRyb2xsZXJIaXRSZXBvcnQAdW5zaWduZWQgc2hvcnQAaXNsYW5kVW5pb25GaW5kQW5kUXVpY2tTb3J0AHB0AHNoaWZ0ZWREb3QgPD0gb3JpZ0RvdABQZXJzaXN0ZW50TWFuaWZvbGRfZ2V0Q29udGFjdFBvaW50AHJlbW92ZUNvbnRhY3RQb2ludAByZXBsYWNlQ29udGFjdFBvaW50AGFkZENvbnRhY3RQb2ludABHZW5lcmljNkRvZlNwcmluZzJDb25zdHJhaW50X3NldEVxdWlsaWJyaXVtUG9pbnQAYWRkTWFuaWZvbGRQb2ludABEeW5hbWljc1dvcmxkX3JlbW92ZUNvbnN0cmFpbnQARHluYW1pY3NXb3JsZF9hZGRDb25zdHJhaW50AHVuc2lnbmVkIGludABCb3hDaGFyYWN0ZXJDb250cm9sbGVyX3NldEhhbGZTaWRlRXh0ZW50AEJveENoYXJhY3RlckNvbnRyb2xsZXJfc2V0SGFsZkZvcndhcmRFeHRlbnQAaW1wbGVtZW50AFN0YXRpY1BsYW5lU2hhcGVfc2V0UGxhbmVDb25zdGFudABhZGRTaW5nbGVSZXN1bHQASGluZ2VDb25zdHJhaW50X3NldExpbWl0AEdlbmVyaWM2RG9mU3ByaW5nMkNvbnN0cmFpbnRfc2V0TGltaXQAQ2hhcmFjdGVyQ29udHJvbGxlcl9zZXRTbG9wZUxpbWl0AFJheUNhbGxiYWNrX2hhc0hpdABDb252ZXhDYWxsYmFja19oYXNIaXQAbWluSGVpZ2h0IDw9IG1heEhlaWdodABDYXBzdWxlQ2hhcmFjdGVyQ29udHJvbGxlcl9zZXRIZWlnaHQAQ29uZVNoYXBlX3NldEhlaWdodABCb3hDaGFyYWN0ZXJDb250cm9sbGVyX3NldEhhbGZIZWlnaHQAQ2hhcmFjdGVyQ29udHJvbGxlcl9zZXRDb250YWN0T2Zmc2V0AENoYXJhY3RlckNvbnRyb2xsZXJfc2V0U3RlcE9mZnNldABnZXRJbmZvMkludGVybmFsVXNpbmdGcmFtZU9mZnNldABjY0Nsb3Nlc3RSYXlDYWxsYmFja19yZXNldABjY0FsbFJheUNhbGxiYWNrX3Jlc2V0AGNjQ2xvc2VzdENvbnZleENhbGxiYWNrX3Jlc2V0AGNjQWxsQ29udmV4Q2FsbGJhY2tfcmVzZXQAUXVhdF9zZXQAY2NNYXRlcmlhbF9zZXQAVmVjM19zZXQAZWRnZS0+dGFyZ2V0ICYmIHItPnRhcmdldABwcmV2LT5yZXZlcnNlLT50YXJnZXQgPT0gbmV4dC0+cmV2ZXJzZS0+dGFyZ2V0AHJldmVyc2UtPnRhcmdldCA9PSBuLT5yZXZlcnNlLT50YXJnZXQASGluZ2VDb25zdHJhaW50X3NldE1vdG9yVGFyZ2V0AEdlbmVyaWM2RG9mU3ByaW5nMkNvbnN0cmFpbnRfc2V0U2Vydm9UYXJnZXQAX19kZXN0cnVjdABDaGFyYWN0ZXJDb250cm9sbGVyX2dldEdob3N0T2JqZWN0AH5idEdob3N0T2JqZWN0AG90aGVyT2JqZWN0AGNvbGxpc2lvbk9iamVjdABDb250cm9sbGVyU2hhcGVIaXRfZ2V0SGl0Q29sbGlzaW9uT2JqZWN0AENvbGxpc2lvbldvcmxkX3JlbW92ZUNvbGxpc2lvbk9iamVjdABDb2xsaXNpb25Xb3JsZF9hZGRDb2xsaXNpb25PYmplY3QAQ29sbGlzaW9uT2JqZWN0X2lzU3RhdGljT2JqZWN0AENvbGxpc2lvbk9iamVjdF9pc0tpbmVtYXRpY09iamVjdABDb2xsaXNpb25PYmplY3RfaXNTdGF0aWNPcktpbmVtYXRpY09iamVjdABjYWxjdWxhdGVUaW1lT2ZJbXBhY3QAZmxvYXQAaW50X2FycmF5X2F0AFZlYzNfYXJyYXlfYXQAdWludDY0X3QAY3VycmVudFJvdzx0b3RhbE51bVJvd3MAQ2Fwc3VsZUNoYXJhY3RlckNvbnRyb2xsZXJfc2V0UmFkaXVzAENvbmVTaGFwZV9zZXRSYWRpdXMAQ29sbGlzaW9uT2JqZWN0X3NldENjZFN3ZXB0U3BoZXJlUmFkaXVzAFNwaGVyZVNoYXBlX3NldFVuc2NhbGVkUmFkaXVzAHJlZnJlc2hDb250YWN0UG9pbnRzAGluZGV4IDwgbV9jYWNoZWRQb2ludHMAc29sdmVDb25zdHJhaW50cwBCb3hTaGFwZV9zZXRVbnNjYWxlZEhhbGZFeHRlbnRzAHNldEFuZ3VsYXJMaW1pdHMAUGVyc2lzdGVudE1hbmlmb2xkX2dldE51bUNvbnRhY3RzAGNyZWF0ZVByZWRpY3RpdmVDb250YWN0cwBHZW5lcmljNkRvZlNwcmluZzJDb25zdHJhaW50X3NldFN0aWZmbmVzcwBidENvbXBvdW5kQ29tcG91bmRMZWFmQ2FsbGJhY2s6OlByb2Nlc3MAUmlnaWRCb2R5X3NldE1hc3MAY2NBbGxSYXlDYWxsYmFja19nZXRDb2xsaXNpb25TaGFwZVB0cnMAY2NBbGxDb252ZXhDYWxsYmFja19nZXRDb2xsaXNpb25TaGFwZVB0cnMAZGlzcGF0Y2hBbGxDb2xsaXNpb25QYWlycwBidEhhc2hlZE92ZXJsYXBwaW5nUGFpckNhY2hlOjpwcm9jZXNzQWxsT3ZlcmxhcHBpbmdQYWlycwBjYWxjdWxhdGVPdmVybGFwcGluZ1BhaXJzAHVwZGF0ZVN1YnRyZWVIZWFkZXJzAFJpZ2lkQm9keV9zZXRNYXNzUHJvcHMAQ29udHJvbGxlckhpdF9nZXRIaXRXb3JsZFBvcwB1cGRhdGVBY3Rpb25zAHNvbHZlR3JvdXBDYWNoZUZyaWVuZGx5SXRlcmF0aW9ucwBDb252ZXhJbnRlcm5hbFNoYXBlX2dldEltcGxpY2l0U2hhcGVEaW1lbnNpb25zAGludGVncmF0ZVRyYW5zZm9ybXMAcHJlYWxsb2NhdGVDaGlsZEFsZ29yaXRobXMAVGVzdFNlcEF4aXMAUmlnaWRCb2R5X3NldEZsYWdzAGNjQ2xvc2VzdFJheUNhbGxiYWNrX3NldEZsYWdzAGNjQWxsUmF5Q2FsbGJhY2tfc2V0RmxhZ3MAUmlnaWRCb2R5X2dldEZsYWdzAENvbGxpc2lvbk9iamVjdF9zZXRDb2xsaXNpb25GbGFncwBDb2xsaXNpb25PYmplY3RfZ2V0Q29sbGlzaW9uRmxhZ3MAaW5pdGlhbGl6ZVBvbHloZWRyYWxGZWF0dXJlcwBDb21wb3VuZFNoYXBlX2dldE51bUNoaWxkU2hhcGVzAGNsZWFyTGluZXMAZmx1c2hMaW5lcwBIaW5nZUNvbnN0cmFpbnRfc2V0RnJhbWVzAEZpeGVkQ29uc3RyYWludF9zZXRGcmFtZXMAR2VuZXJpYzZEb2ZTcHJpbmcyQ29uc3RyYWludF9zZXRGcmFtZXMAcHJvY2Vzc0FsbFRyaWFuZ2xlcwBJbnRlcm5hbFByb2Nlc3NBbGxUcmlhbmdsZXMAdjEtPmVkZ2VzLT5uZXh0ID09IHYxLT5lZGdlcwBSaWdpZEJvZHlfY2xlYXJGb3JjZXMAcmVjZWl2ZU5lYXJieUZhY2VzAGZpbmRFZGdlRm9yQ29wbGFuYXJGYWNlcwBwcm9jZXNzSXNsYW5kcwBjYWxjdWxhdGVTaW11bGF0aW9uSXNsYW5kcwBidWlsZElzbGFuZHMAUmlnaWRCb2R5X3NldFNsZWVwaW5nVGhyZXNob2xkcwByZWxlYXNlIHByZWRpY3RpdmUgY29udGFjdCBtYW5pZm9sZHMARGlzcGF0Y2hlcl9nZXROdW1NYW5pZm9sZHMAc3luY1BoeXNpY3NUb0dyYXBoaWNzAHVwZGF0ZUFhYmJzAGNjQ2xvc2VzdFJheUNhbGxiYWNrX2dldENvbGxpc2lvblNoYXBlUHRyAGNjQ2xvc2VzdENvbnZleENhbGxiYWNrX2dldENvbGxpc2lvblNoYXBlUHRyAG1fbWFuaWZvbGRQdHIASGluZ2VDb25zdHJhaW50X2VuYWJsZU1vdG9yAEdlbmVyaWM2RG9mU3ByaW5nMkNvbnN0cmFpbnRfZW5hYmxlTW90b3IAUmlnaWRCb2R5X3NldEFuZ3VsYXJGYWN0b3IAUmlnaWRCb2R5X3NldExpbmVhckZhY3RvcgBEZWJ1Z0RyYXdfc2V0Q29udGFjdFBvaW50Q29sb3IARGVidWdEcmF3X3NldENvbnN0cmFpbnRMaW1pdENvbG9yAERlYnVnRHJhd19zZXRXYW50c0RlYWN0aXZhdGlvbk9iamVjdENvbG9yAERlYnVnRHJhd19zZXREaXNhYmxlZERlYWN0aXZhdGlvbk9iamVjdENvbG9yAERlYnVnRHJhd19zZXREaXNhYmxlZFNpbXVsYXRpb25PYmplY3RDb2xvcgBEZWJ1Z0RyYXdfc2V0RGVhY3RpdmVPYmplY3RDb2xvcgBEZWJ1Z0RyYXdfc2V0QWN0aXZlT2JqZWN0Q29sb3IARGVidWdEcmF3X3NldEFBQkJDb2xvcgBwYWlyAHJlbW92ZU92ZXJsYXBwaW5nUGFpcgBuZXdFZGdlUGFpcgByZW1vdmVFZGdlUGFpcgBmaW5kUGFpcgBpbnRlcm5hbEZpbmRQYWlyAENvbnRyb2xsZXJIaXRfZ2V0SGl0TW90aW9uRGlyAENvbGxpc2lvbldvcmxkX3NldERlYnVnRHJhd2VyAENvbGxpc2lvblNoYXBlX3NldFVzZXJQb2ludGVyAERyYXdXcmFwcGVyAENvbnRyb2xsZXJIaXRSZXBvcnRXcmFwcGVyAE1vdGlvblN0YXRlV3JhcHBlcgBidENvbGxpc2lvbkRpc3BhdGNoZXIAdW5zaWduZWQgY2hhcgBjY01vdGlvblN0YXRlX3NldHVwAHNvbHZlR3JvdXBDYWNoZUZyaWVuZGx5U2V0dXAAc29sdmVHcm91cABDOi9Vc2Vycy9sZWFsei9EZXNrdG9wL3RydW5rL2NvY29zL2J1bGxldC1jb21waWxlL2FtbW8uanMvYnVsbGV0L3NyYy9CdWxsZXRDb2xsaXNpb24vQ29sbGlzaW9uU2hhcGVzL2J0VHJpYW5nbGVJbmRleFZlcnRleEFycmF5LmNwcABDOi9Vc2Vycy9sZWFsei9EZXNrdG9wL3RydW5rL2NvY29zL2J1bGxldC1jb21waWxlL2FtbW8uanMvYnVsbGV0L3NyYy9CdWxsZXRDb2xsaXNpb24vQnJvYWRwaGFzZUNvbGxpc2lvbi9idERidnQuY3BwAEM6L1VzZXJzL2xlYWx6L0Rlc2t0b3AvdHJ1bmsvY29jb3MvYnVsbGV0LWNvbXBpbGUvYW1tby5qcy9idWxsZXQvc3JjL0J1bGxldER5bmFtaWNzL0NvbnN0cmFpbnRTb2x2ZXIvYnRQb2ludDJQb2ludENvbnN0cmFpbnQuY3BwAEM6L1VzZXJzL2xlYWx6L0Rlc2t0b3AvdHJ1bmsvY29jb3MvYnVsbGV0LWNvbXBpbGUvYW1tby5qcy9idWxsZXQvc3JjL0J1bGxldER5bmFtaWNzL0NvbnN0cmFpbnRTb2x2ZXIvYnRIaW5nZUNvbnN0cmFpbnQuY3BwAEM6L1VzZXJzL2xlYWx6L0Rlc2t0b3AvdHJ1bmsvY29jb3MvYnVsbGV0LWNvbXBpbGUvYW1tby5qcy9idWxsZXQvc3JjL0J1bGxldER5bmFtaWNzL0NvbnN0cmFpbnRTb2x2ZXIvYnRHZW5lcmljNkRvZlNwcmluZzJDb25zdHJhaW50LmNwcABDOi9Vc2Vycy9sZWFsei9EZXNrdG9wL3RydW5rL2NvY29zL2J1bGxldC1jb21waWxlL2FtbW8uanMvYnVsbGV0L3NyYy9CdWxsZXRDb2xsaXNpb24vQ29sbGlzaW9uRGlzcGF0Y2gvYnRNYW5pZm9sZFJlc3VsdC5jcHAAQzovVXNlcnMvbGVhbHovRGVza3RvcC90cnVuay9jb2Nvcy9idWxsZXQtY29tcGlsZS9hbW1vLmpzL2J1bGxldC9zcmMvQnVsbGV0Q29sbGlzaW9uL0NvbGxpc2lvbkRpc3BhdGNoL2J0R2hvc3RPYmplY3QuY3BwAEM6L1VzZXJzL2xlYWx6L0Rlc2t0b3AvdHJ1bmsvY29jb3MvYnVsbGV0LWNvbXBpbGUvYW1tby5qcy9idWxsZXQvc3JjL0J1bGxldENvbGxpc2lvbi9Db2xsaXNpb25EaXNwYXRjaC9idEJveEJveERldGVjdG9yLmNwcABDOi9Vc2Vycy9sZWFsei9EZXNrdG9wL3RydW5rL2NvY29zL2J1bGxldC1jb21waWxlL2FtbW8uanMvYnVsbGV0L3NyYy9CdWxsZXRDb2xsaXNpb24vTmFycm93UGhhc2VDb2xsaXNpb24vYnRHamtQYWlyRGV0ZWN0b3IuY3BwAEM6L1VzZXJzL2xlYWx6L0Rlc2t0b3AvdHJ1bmsvY29jb3MvYnVsbGV0LWNvbXBpbGUvYW1tby5qcy9idWxsZXQvc3JjL0J1bGxldENvbGxpc2lvbi9OYXJyb3dQaGFzZUNvbGxpc2lvbi9idFZvcm9ub2lTaW1wbGV4U29sdmVyLmNwcABDOi9Vc2Vycy9sZWFsei9EZXNrdG9wL3RydW5rL2NvY29zL2J1bGxldC1jb21waWxlL2FtbW8uanMvYnVsbGV0L3NyYy9CdWxsZXREeW5hbWljcy9Db25zdHJhaW50U29sdmVyL2J0U2VxdWVudGlhbEltcHVsc2VDb25zdHJhaW50U29sdmVyLmNwcABDOi9Vc2Vycy9sZWFsei9EZXNrdG9wL3RydW5rL2NvY29zL2J1bGxldC1jb21waWxlL2FtbW8uanMvYnVsbGV0L3NyYy9MaW5lYXJNYXRoL2J0Q29udmV4SHVsbENvbXB1dGVyLmNwcABDOi9Vc2Vycy9sZWFsei9EZXNrdG9wL3RydW5rL2NvY29zL2J1bGxldC1jb21waWxlL2FtbW8uanMvYnVsbGV0L3NyYy9CdWxsZXRDb2xsaXNpb24vQ29sbGlzaW9uRGlzcGF0Y2gvYnRDb2xsaXNpb25EaXNwYXRjaGVyLmNwcABDOi9Vc2Vycy9sZWFsei9EZXNrdG9wL3RydW5rL2NvY29zL2J1bGxldC1jb21waWxlL2FtbW8uanMvYnVsbGV0L3NyYy9CdWxsZXRDb2xsaXNpb24vQ29sbGlzaW9uRGlzcGF0Y2gvYnRTaW11bGF0aW9uSXNsYW5kTWFuYWdlci5jcHAAQzovVXNlcnMvbGVhbHovRGVza3RvcC90cnVuay9jb2Nvcy9idWxsZXQtY29tcGlsZS9hbW1vLmpzL2J1bGxldC9zcmMvQnVsbGV0Q29sbGlzaW9uL0NvbGxpc2lvblNoYXBlcy9idENvbnZleFBvbHloZWRyb24uY3BwAEM6L1VzZXJzL2xlYWx6L0Rlc2t0b3AvdHJ1bmsvY29jb3MvYnVsbGV0LWNvbXBpbGUvYW1tby5qcy9idWxsZXQvc3JjL0J1bGxldENvbGxpc2lvbi9Db2xsaXNpb25EaXNwYXRjaC9idENvbnZleENvbnZleEFsZ29yaXRobS5jcHAAQzovVXNlcnMvbGVhbHovRGVza3RvcC90cnVuay9jb2Nvcy9idWxsZXQtY29tcGlsZS9hbW1vLmpzL2J1bGxldC9zcmMvQnVsbGV0Q29sbGlzaW9uL0NvbGxpc2lvbkRpc3BhdGNoL2J0Q29tcG91bmRDb2xsaXNpb25BbGdvcml0aG0uY3BwAEM6L1VzZXJzL2xlYWx6L0Rlc2t0b3AvdHJ1bmsvY29jb3MvYnVsbGV0LWNvbXBpbGUvYW1tby5qcy9idWxsZXQvc3JjL0J1bGxldENvbGxpc2lvbi9Db2xsaXNpb25EaXNwYXRjaC9idENvbXBvdW5kQ29tcG91bmRDb2xsaXNpb25BbGdvcml0aG0uY3BwAEM6L1VzZXJzL2xlYWx6L0Rlc2t0b3AvdHJ1bmsvY29jb3MvYnVsbGV0LWNvbXBpbGUvYW1tby5qcy9idWxsZXQvc3JjL0J1bGxldENvbGxpc2lvbi9Ccm9hZHBoYXNlQ29sbGlzaW9uL2J0UXVhbnRpemVkQnZoLmNwcABDOi9Vc2Vycy9sZWFsei9EZXNrdG9wL3RydW5rL2NvY29zL2J1bGxldC1jb21waWxlL2FtbW8uanMvYnVsbGV0L3NyYy9CdWxsZXRDb2xsaXNpb24vQ29sbGlzaW9uU2hhcGVzL2J0T3B0aW1pemVkQnZoLmNwcABDOi9Vc2Vycy9sZWFsei9EZXNrdG9wL3RydW5rL2NvY29zL2J1bGxldC1jb21waWxlL2FtbW8uanMvYnVsbGV0L3NyYy9CdWxsZXRDb2xsaXNpb24vTmFycm93UGhhc2VDb2xsaXNpb24vYnRQb2x5aGVkcmFsQ29udGFjdENsaXBwaW5nLmNwcABDOi9Vc2Vycy9sZWFsei9EZXNrdG9wL3RydW5rL2NvY29zL2J1bGxldC1jb21waWxlL2FtbW8uanMvYnVsbGV0L3NyYy9CdWxsZXRDb2xsaXNpb24vQnJvYWRwaGFzZUNvbGxpc2lvbi9idERidnRCcm9hZHBoYXNlLmNwcABDOi9Vc2Vycy9sZWFsei9EZXNrdG9wL3RydW5rL2NvY29zL2J1bGxldC1jb21waWxlL2FtbW8uanMvYnVsbGV0L3NyYy9CdWxsZXRDb2xsaXNpb24vQ29sbGlzaW9uU2hhcGVzL2J0RW1wdHlTaGFwZS5jcHAAQzovVXNlcnMvbGVhbHovRGVza3RvcC90cnVuay9jb2Nvcy9idWxsZXQtY29tcGlsZS9hbW1vLmpzL2J1bGxldC9zcmMvQnVsbGV0Q29sbGlzaW9uL0NvbGxpc2lvblNoYXBlcy9idENvbnZleFNoYXBlLmNwcABDOi9Vc2Vycy9sZWFsei9EZXNrdG9wL3RydW5rL2NvY29zL2J1bGxldC1jb21waWxlL2FtbW8uanMvYnVsbGV0L3NyYy9CdWxsZXRDb2xsaXNpb24vQ29sbGlzaW9uU2hhcGVzL2J0UG9seWhlZHJhbENvbnZleFNoYXBlLmNwcABDOi9Vc2Vycy9sZWFsei9EZXNrdG9wL3RydW5rL2NvY29zL2J1bGxldC1jb21waWxlL2FtbW8uanMvYnVsbGV0L3NyYy9CdWxsZXRDb2xsaXNpb24vQ29sbGlzaW9uU2hhcGVzL2J0SGVpZ2h0ZmllbGRUZXJyYWluU2hhcGUuY3BwAEM6L1VzZXJzL2xlYWx6L0Rlc2t0b3AvdHJ1bmsvY29jb3MvYnVsbGV0LWNvbXBpbGUvYW1tby5qcy9idWxsZXQvc3JjL0J1bGxldENvbGxpc2lvbi9Db2xsaXNpb25TaGFwZXMvYnRDb252ZXhUcmlhbmdsZU1lc2hTaGFwZS5jcHAAQzovVXNlcnMvbGVhbHovRGVza3RvcC90cnVuay9jb2Nvcy9idWxsZXQtY29tcGlsZS9hbW1vLmpzL2J1bGxldC9zcmMvQnVsbGV0Q29sbGlzaW9uL0NvbGxpc2lvblNoYXBlcy9idFRyaWFuZ2xlTWVzaFNoYXBlLmNwcABDOi9Vc2Vycy9sZWFsei9EZXNrdG9wL3RydW5rL2NvY29zL2J1bGxldC1jb21waWxlL2FtbW8uanMvYnVsbGV0L3NyYy9CdWxsZXRDb2xsaXNpb24vQ29sbGlzaW9uU2hhcGVzL2J0QnZoVHJpYW5nbGVNZXNoU2hhcGUuY3BwAEM6L1VzZXJzL2xlYWx6L0Rlc2t0b3AvdHJ1bmsvY29jb3MvYnVsbGV0LWNvbXBpbGUvYW1tby5qcy9idWxsZXQvc3JjL0J1bGxldENvbGxpc2lvbi9Db2xsaXNpb25TaGFwZXMvYnRDb25lU2hhcGUuY3BwAEM6L1VzZXJzL2xlYWx6L0Rlc2t0b3AvdHJ1bmsvY29jb3MvYnVsbGV0LWNvbXBpbGUvYW1tby5qcy9idWxsZXQvc3JjL0J1bGxldENvbGxpc2lvbi9Db2xsaXNpb25TaGFwZXMvYnRDb21wb3VuZFNoYXBlLmNwcABDOi9Vc2Vycy9sZWFsei9EZXNrdG9wL3RydW5rL2NvY29zL2J1bGxldC1jb21waWxlL2FtbW8uanMvYnVsbGV0L3NyYy9CdWxsZXRDb2xsaXNpb24vQnJvYWRwaGFzZUNvbGxpc2lvbi9idE92ZXJsYXBwaW5nUGFpckNhY2hlLmNwcABDOi9Vc2Vycy9sZWFsei9EZXNrdG9wL3RydW5rL2NvY29zL2J1bGxldC1jb21waWxlL2FtbW8uanMvYnVsbGV0L3NyYy9CdWxsZXRDb2xsaXNpb24vQ29sbGlzaW9uRGlzcGF0Y2gvYnRIYXNoZWRTaW1wbGVQYWlyQ2FjaGUuY3BwAEM6L1VzZXJzL2xlYWx6L0Rlc2t0b3AvdHJ1bmsvY29jb3MvYnVsbGV0LWNvbXBpbGUvYW1tby5qcy9idWxsZXQvc3JjL0J1bGxldENvbGxpc2lvbi9Db2xsaXNpb25TaGFwZXMvYnRTdHJpZGluZ01lc2hJbnRlcmZhY2UuY3BwAEM6L1VzZXJzL2xlYWx6L0Rlc2t0b3AvdHJ1bmsvY29jb3MvYnVsbGV0LWNvbXBpbGUvYW1tby5qcy9idWxsZXQvc3JjL0J1bGxldER5bmFtaWNzL0R5bmFtaWNzL2J0RGlzY3JldGVEeW5hbWljc1dvcmxkLmNwcABDOi9Vc2Vycy9sZWFsei9EZXNrdG9wL3RydW5rL2NvY29zL2J1bGxldC1jb21waWxlL2FtbW8uanMvYnVsbGV0L3NyYy9CdWxsZXRDb2xsaXNpb24vQ29sbGlzaW9uRGlzcGF0Y2gvYnRDb2xsaXNpb25Xb3JsZC5jcHAAQzovVXNlcnMvbGVhbHovRGVza3RvcC90cnVuay9jb2Nvcy9idWxsZXQtY29tcGlsZS9hbW1vLmpzL2J1bGxldC9zcmMvQnVsbGV0Q29sbGlzaW9uL05hcnJvd1BoYXNlQ29sbGlzaW9uL2J0UGVyc2lzdGVudE1hbmlmb2xkLmNwcABDeWxpbmRlclNoYXBlX3VwZGF0ZVByb3AAQ2Fwc3VsZVNoYXBlX3VwZGF0ZVByb3AAZi0+Y29weSAhPSBzdGFtcABxdWFudGl6ZVdpdGhDbGFtcABjY0Rpc2NyZXRlRHluYW1pY3NXb3JsZF9zZXRBbGxvd1NsZWVwAEdlbmVyaWM2RG9mU3ByaW5nMkNvbnN0cmFpbnRfc2V0U2Vydm8AZnJvbSAmJiB0bwBjb2xBbGdvAHNvbHZlckluZm8AY2FsY3VsYXRlQW5nbGVJbmZvAGFwcGx5IHNwZWN1bGF0aXZlIGNvbnRhY3QgcmVzdGl0dXRpb24AcHJlZGljdFVuY29uc3RyYWludE1vdGlvbgBDaGFyYWN0ZXJDb250cm9sbGVyX2dldFBvc2l0aW9uAG5vdGlmeU9uRGVzdHJ1Y3Rpb24AcGVyZm9ybURpc2NyZXRlQ29sbGlzaW9uRGV0ZWN0aW9uAGdldFByZWZlcnJlZFBlbmV0cmF0aW9uRGlyZWN0aW9uAG1lcmdlUHJvamVjdGlvbgByYXlSZXN1bHQubV9oaXRGcmFjdGlvbiA8PSBtX2Nsb3Nlc3RIaXRGcmFjdGlvbgBjb252ZXhSZXN1bHQubV9oaXRGcmFjdGlvbiA8PSBtX2Nsb3Nlc3RIaXRGcmFjdGlvbgBEeW5hbWljc1dvcmxkX3JlbW92ZUFjdGlvbgBEeW5hbWljc1dvcmxkX2FkZEFjdGlvbgAhbV91c2VRdWFudGl6YXRpb24AZ2V0UGxhbmVFcXVhdGlvbgBUcmFuc2Zvcm1fc2V0Um90YXRpb24AVHJhbnNmb3JtX2dldFJvdGF0aW9uAGdldE9yaWVudGF0aW9uAE92ZXJmbG93IGluIEFBQkIsIG9iamVjdCByZW1vdmVkIGZyb20gc2ltdWxhdGlvbgBEeW5hbWljc1dvcmxkX3N0ZXBTaW11bGF0aW9uAGludGVybmFsU2luZ2xlU3RlcFNpbXVsYXRpb24AQ2hhcmFjdGVyQ29udHJvbGxlcl9zZXRDb2xsaXNpb24AYnRDb252ZXhDb25jYXZlQ29sbGlzaW9uQWxnb3JpdGhtOjpwcm9jZXNzQ29sbGlzaW9uAG5lZWRzQ29sbGlzaW9uAGxvY2FsR2V0U3VwcG9ydGluZ1ZlcnRleFdpdGhvdXRNYXJnaW4AQ29sbGlzaW9uU2hhcGVfc2V0TWFyZ2luAFRyYW5zZm9ybV9nZXRPcmlnaW4AVHJhbnNmb3JtX2dldFJvdGF0aW9uQW5kT3JpZ2luAG5hbgBNb3Rpb25TdGF0ZV9zZXRXb3JsZFRyYW5zZm9ybQBSaWdpZEJvZHlfZ2V0V29ybGRUcmFuc2Zvcm0AQ29sbGlzaW9uT2JqZWN0X2dldFdvcmxkVHJhbnNmb3JtAE1vdGlvblN0YXRlX2dldFdvcmxkVHJhbnNmb3JtAENvbXBvdW5kU2hhcGVfdXBkYXRlQ2hpbGRUcmFuc2Zvcm0AIXBhaXIubV9hbGdvcml0aG0AYnRDb21wb3VuZENvbGxpc2lvbkFsZ29yaXRobQBidENvbXBvdW5kQ29tcG91bmRDb2xsaXNpb25BbGdvcml0aG0Ac2V0UGFyYW0AZ2V0UGFyYW0AYm9vbABwZXJmb3JtRGVmZXJyZWRSZW1vdmFsAGVtc2NyaXB0ZW46OnZhbABnZXRDbG9zZXN0UG9pbnRzTm9uVmlydHVhbABsb2NhbEdldFN1cHBvcnRWZXJ0ZXhXaXRob3V0TWFyZ2luTm9uVmlydHVhbABnZXRJbmZvMk5vblZpcnR1YWwARGlzcGF0Y2hlcl9nZXRNYW5pZm9sZEJ5SW5kZXhJbnRlcm5hbAByZW1vdmVPdmVybGFwcGluZ09iamVjdEludGVybmFsAGFkZE92ZXJsYXBwaW5nT2JqZWN0SW50ZXJuYWwAY29tcHV0ZUludGVybmFsAGdldEluZm8ySW50ZXJuYWwAU3RhdGljUGxhbmVTaGFwZV9nZXRQbGFuZU5vcm1hbABDb250cm9sbGVySGl0X2dldEhpdFdvcmxkTm9ybWFsAENvbGxpc2lvbk9iamVjdF9zZXRNYXRlcmlhbABDb2xsaXNpb25TaGFwZV9zZXRNYXRlcmlhbAAhdW5iYWwAc2hyaW5rAGxpbmsAQ29sbGlzaW9uT2JqZWN0X3NldElnbm9yZUNvbGxpc2lvbkNoZWNrAHBvcF9iYWNrAGNvbE9iai0+Z2V0V29ybGRBcnJheUluZGV4KCkgPT0gaQAhbV9idmgAIW1fb3duc0J2aABCdmhUcmlhbmdsZU1lc2hTaGFwZV9zZXRPcHRpbWl6ZWRCdmgAQnZoVHJpYW5nbGVNZXNoU2hhcGVfZ2V0T3B0aW1pemVkQnZoAENvbnRyb2xsZXJIaXRfZ2V0SGl0TW90aW9uTGVuZ3RoAHk8bV9oZWlnaHRTdGlja0xlbmd0aAB4PG1faGVpZ2h0U3RpY2tXaWR0aABzb2x2ZUdyb3VwQ2FjaGVGcmllbmRseUZpbmlzaABDb252ZXhUcmltZXNoAEM6L1VzZXJzL2xlYWx6L0Rlc2t0b3AvdHJ1bmsvY29jb3MvYnVsbGV0LWNvbXBpbGUvYW1tby5qcy9idWxsZXQvc3JjL0J1bGxldER5bmFtaWNzL0NvbnN0cmFpbnRTb2x2ZXIvYnRKYWNvYmlhbkVudHJ5LmgAQzovVXNlcnMvbGVhbHovRGVza3RvcC90cnVuay9jb2Nvcy9idWxsZXQtY29tcGlsZS9hbW1vLmpzL2J1bGxldC9zcmNcQnVsbGV0RHluYW1pY3MvRHluYW1pY3MvYnRSaWdpZEJvZHkuaABDOi9Vc2Vycy9sZWFsei9EZXNrdG9wL3RydW5rL2NvY29zL2J1bGxldC1jb21waWxlL2FtbW8uanMvYnVsbGV0L3NyY1xMaW5lYXJNYXRoL2J0QWxpZ25lZE9iamVjdEFycmF5LmgAQzovVXNlcnMvbGVhbHovRGVza3RvcC90cnVuay9jb2Nvcy9idWxsZXQtY29tcGlsZS9hbW1vLmpzL2J1bGxldC9zcmMvTGluZWFyTWF0aC9idEFsaWduZWRPYmplY3RBcnJheS5oAEM6L1VzZXJzL2xlYWx6L0Rlc2t0b3AvdHJ1bmsvY29jb3MvYnVsbGV0LWNvbXBpbGUvYW1tby5qcy9idWxsZXQvc3JjXEJ1bGxldENvbGxpc2lvbi9Db2xsaXNpb25EaXNwYXRjaC9idE1hbmlmb2xkUmVzdWx0LmgAQzovVXNlcnMvbGVhbHovRGVza3RvcC90cnVuay9jb2Nvcy9idWxsZXQtY29tcGlsZS9hbW1vLmpzL2J1bGxldC9zcmNcQnVsbGV0Q29sbGlzaW9uL0NvbGxpc2lvbkRpc3BhdGNoL2J0R2hvc3RPYmplY3QuaABDOi9Vc2Vycy9sZWFsei9EZXNrdG9wL3RydW5rL2NvY29zL2J1bGxldC1jb21waWxlL2FtbW8uanMvYnVsbGV0L3NyY1xMaW5lYXJNYXRoL2J0UG9vbEFsbG9jYXRvci5oAEM6L1VzZXJzL2xlYWx6L0Rlc2t0b3AvdHJ1bmsvY29jb3MvYnVsbGV0LWNvbXBpbGUvYW1tby5qcy9idWxsZXQvc3JjXExpbmVhck1hdGgvYnRRdWF0ZXJuaW9uLmgAQzovVXNlcnMvbGVhbHovRGVza3RvcC90cnVuay9jb2Nvcy9idWxsZXQtY29tcGlsZS9hbW1vLmpzL2J1bGxldC9zcmMvQnVsbGV0Q29sbGlzaW9uL0Jyb2FkcGhhc2VDb2xsaXNpb24vYnRRdWFudGl6ZWRCdmguaABDOi9Vc2Vycy9sZWFsei9EZXNrdG9wL3RydW5rL2NvY29zL2J1bGxldC1jb21waWxlL2FtbW8uanMvYnVsbGV0L3NyYy9CdWxsZXRDb2xsaXNpb24vQ29sbGlzaW9uU2hhcGVzL2J0Qm94U2hhcGUuaABDOi9Vc2Vycy9sZWFsei9EZXNrdG9wL3RydW5rL2NvY29zL2J1bGxldC1jb21waWxlL2FtbW8uanMvYnVsbGV0L3NyYy9CdWxsZXRDb2xsaXNpb24vQ29sbGlzaW9uU2hhcGVzL2J0UG9seWhlZHJhbENvbnZleFNoYXBlLmgAQzovVXNlcnMvbGVhbHovRGVza3RvcC90cnVuay9jb2Nvcy9idWxsZXQtY29tcGlsZS9hbW1vLmpzL2J1bGxldC9zcmMvQnVsbGV0Q29sbGlzaW9uL0NvbGxpc2lvblNoYXBlcy9idENvbnZleEludGVybmFsU2hhcGUuaABDOi9Vc2Vycy9sZWFsei9EZXNrdG9wL3RydW5rL2NvY29zL2J1bGxldC1jb21waWxlL2FtbW8uanMvYnVsbGV0L3NyY1xCdWxsZXRDb2xsaXNpb24vQ29sbGlzaW9uU2hhcGVzL2J0VHJpYW5nbGVNZXNoU2hhcGUuaABDOi9Vc2Vycy9sZWFsei9EZXNrdG9wL3RydW5rL2NvY29zL2J1bGxldC1jb21waWxlL2FtbW8uanMvYnVsbGV0L3NyY1xCdWxsZXRDb2xsaXNpb24vQ29sbGlzaW9uU2hhcGVzL2J0VHJpYW5nbGVTaGFwZS5oAEM6L1VzZXJzL2xlYWx6L0Rlc2t0b3AvdHJ1bmsvY29jb3MvYnVsbGV0LWNvbXBpbGUvYW1tby5qcy9idWxsZXQvc3JjL0J1bGxldENvbGxpc2lvbi9Ccm9hZHBoYXNlQ29sbGlzaW9uL2J0T3ZlcmxhcHBpbmdQYWlyQ2FjaGUuaABDOi9Vc2Vycy9sZWFsei9EZXNrdG9wL3RydW5rL2NvY29zL2J1bGxldC1jb21waWxlL2FtbW8uanMvYnVsbGV0L3NyYy9CdWxsZXRDb2xsaXNpb24vQ29sbGlzaW9uRGlzcGF0Y2gvYnRIYXNoZWRTaW1wbGVQYWlyQ2FjaGUuaABDOi9Vc2Vycy9sZWFsei9EZXNrdG9wL3RydW5rL2NvY29zL2J1bGxldC1jb21waWxlL2FtbW8uanMvYnVsbGV0L3NyYy9CdWxsZXRDb2xsaXNpb24vQ29sbGlzaW9uRGlzcGF0Y2gvYnRDb2xsaXNpb25Xb3JsZC5oAEM6L1VzZXJzL2xlYWx6L0Rlc2t0b3AvdHJ1bmsvY29jb3MvYnVsbGV0LWNvbXBpbGUvYW1tby5qcy9idWxsZXQvc3JjXEJ1bGxldENvbGxpc2lvbi9OYXJyb3dQaGFzZUNvbGxpc2lvbi9idFBlcnNpc3RlbnRNYW5pZm9sZC5oAEM6L1VzZXJzL2xlYWx6L0Rlc2t0b3AvdHJ1bmsvY29jb3MvYnVsbGV0LWNvbXBpbGUvYW1tby5qcy9idWxsZXQvc3JjL0J1bGxldENvbGxpc2lvbi9OYXJyb3dQaGFzZUNvbGxpc2lvbi9idFBlcnNpc3RlbnRNYW5pZm9sZC5oAEM6L1VzZXJzL2xlYWx6L0Rlc2t0b3AvdHJ1bmsvY29jb3MvYnVsbGV0LWNvbXBpbGUvYW1tby5qcy9idWxsZXQvc3JjXExpbmVhck1hdGgvYnRNYXRyaXgzeDMuaABDOi9Vc2Vycy9sZWFsei9EZXNrdG9wL3RydW5rL2NvY29zL2J1bGxldC1jb21waWxlL2FtbW8uanMvYnVsbGV0L3NyY1xMaW5lYXJNYXRoL2J0VmVjdG9yMy5oAEM6L1VzZXJzL2xlYWx6L0Rlc2t0b3AvdHJ1bmsvY29jb3MvYnVsbGV0LWNvbXBpbGUvYW1tby5qcy9idWxsZXQvc3JjXExpbmVhck1hdGgvYnRBYWJiVXRpbDIuaAB1bnNpZ25lZCBsb25nAHN0ZDo6d3N0cmluZwBiYXNpY19zdHJpbmcAc3RkOjpzdHJpbmcAc3RkOjp1MTZzdHJpbmcAc3RkOjp1MzJzdHJpbmcAR2VuZXJpYzZEb2ZTcHJpbmcyQ29uc3RyYWludF9lbmFibGVTcHJpbmcAQ0NEIG1vdGlvbiBjbGFtcGluZwBSaWdpZEJvZHlfc2V0RGFtcGluZwBHZW5lcmljNkRvZlNwcmluZzJDb25zdHJhaW50X3NldERhbXBpbmcAUmlnaWRCb2R5X3dhbnRzU2xlZXBpbmcAQ29sbGlzaW9uT2JqZWN0X2lzU2xlZXBpbmcAQ29sbGlzaW9uU2hhcGVfc2V0TG9jYWxTY2FsaW5nAGluZgBkMT49MC4wZgBkMD49MC4wZgBxdWFudGl6ZQBpbnRfYXJyYXlfc2l6ZQBub3JtYWxpemUAaW5pdGlhbGl6ZQBzZXJpYWxpemUAVHlwZWRDb25zdHJhaW50X3NldERiZ0RyYXdTaXplAFR5cGVkQ29uc3RyYWludF9nZXREYmdEcmF3U2l6ZQAhc2l6ZSB8fCBzaXplPD1tX2VsZW1TaXplACh1bnNpZ25lZCBjaGFyKilwdHIgPj0gbV9wb29sICYmICh1bnNpZ25lZCBjaGFyKilwdHIgPCBtX3Bvb2wgKyBtX21heEVsZW1lbnRzICogbV9lbGVtU2l6ZQB3YWxrSXRlcmF0aW9ucyA8IHN1YlRyZWVTaXplAENoYXJhY3RlckNvbnRyb2xsZXJfbW92ZQBDb2xsaXNpb25PYmplY3RfaXNBY3RpdmUAUmlnaWRCb2R5X2FwcGx5VG9ycXVlAGdldFJhd0hlaWdodEZpZWxkVmFsdWUAIW1fdXNlU29sdmVDb25zdHJhaW50T2Jzb2xldGUAX3NhZmVfZGVsZXRlAENvbGxpc2lvbk9iamVjdF9hY3RpdmF0ZQBSaWdpZEJvZHlfY2xlYXJTdGF0ZQBSaWdpZEJvZHlfZ2V0TW90aW9uU3RhdGUAc3luY2hyb25pemVTaW5nbGVNb3Rpb25TdGF0ZQBDb2xsaXNpb25PYmplY3RfZ2V0QWN0aXZhdGlvblN0YXRlAHVwZGF0ZUFjdGl2YXRpb25TdGF0ZQBDb2xsaXNpb25PYmplY3RfZm9yY2VBY3RpdmF0aW9uU3RhdGUAYWxsb2NhdGUAaW52ZXJzZQBlICE9IGludGVyc2VjdGlvbi0+cmV2ZXJzZQBSaWdpZEJvZHlfYXBwbHlJbXB1bHNlAEhpbmdlQ29uc3RyYWludF9zZXRNYXhNb3RvckltcHVsc2UAZmFsc2UAZ2V0TG9ja2VkVmVydGV4SW5kZXhCYXNlAENvbnRyb2xsZXJTaGFwZUhpdF9nZXRIaXRTaGFwZQBDb2xsaXNpb25PYmplY3Rfc2V0Q29sbGlzaW9uU2hhcGUAQ29sbGlzaW9uT2JqZWN0X2dldENvbGxpc2lvblNoYXBlAENoYXJhY3RlckNvbnRyb2xsZXJfZ2V0Q29sbGlzaW9uU2hhcGUAQ2Fwc3VsZVNoYXBlAGJ0Q29tcG91bmRTaGFwZQBDb21wb3VuZFNoYXBlX2dldENoaWxkU2hhcGUAUHJvY2Vzc0NoaWxkU2hhcGUAQ29tcG91bmRTaGFwZV9yZW1vdmVDaGlsZFNoYXBlAENvbXBvdW5kU2hhcGVfYWRkQ2hpbGRTaGFwZQBDb25lAG9uRGVidWdEcmF3TGluZQBnZXRQbGFuZQBidENvbnZleFRyaWFuZ2xlQ2FsbGJhY2s6OnByb2Nlc3NUcmlhbmdsZQBUcmlhbmdsZU1lc2hfYWRkVHJpYW5nbGUAZmluZE1heEFuZ2xlAGRvdWJsZQBtZXJnZQBnZXRFZGdlAF9mcmVlAHdhbGtTdGFja2xlc3NUcmVlAGJ1aWxkVHJlZQB3YWxrU3RhY2tsZXNzUXVhbnRpemVkVHJlZQBtZW09PW1fZHluYW1pY0FhYmJUcmVlAHByb2Nlc3NOb2RlAERlYnVnRHJhd19zZXREZWJ1Z01vZGUARGVidWdEcmF3X2dldERlYnVnTW9kZQBpc0luc2lkZQBSaWdpZEJvZHlfYXBwbHlGb3JjZQBHZW5lcmljNkRvZlNwcmluZzJDb25zdHJhaW50X3NldE1heE1vdG9yRm9yY2UAR2VuZXJpYzZEb2ZTcHJpbmcyQ29uc3RyYWludF9zZXRCb3VuY2UAc2hpZnRGYWNlAENvbGxpc2lvblNoYXBlX2lzQ29tcG91bmQAY29udmV4U3dlZXBDb21wb3VuZABleHRlbmQAQ29sbGlzaW9uV29ybGRfZGVidWdEcmF3V29ybGQAY2NDbG9zZXN0UmF5Q2FsbGJhY2tfZ2V0SGl0UG9pbnRXb3JsZABjY0FsbFJheUNhbGxiYWNrX2dldEhpdFBvaW50V29ybGQAY2NDbG9zZXN0Q29udmV4Q2FsbGJhY2tfZ2V0SGl0UG9pbnRXb3JsZABjY0FsbENvbnZleENhbGxiYWNrX2dldEhpdFBvaW50V29ybGQAY2NDbG9zZXN0UmF5Q2FsbGJhY2tfZ2V0SGl0Tm9ybWFsV29ybGQAY2NBbGxSYXlDYWxsYmFja19nZXRIaXROb3JtYWxXb3JsZABjY0Nsb3Nlc3RDb252ZXhDYWxsYmFja19nZXRIaXROb3JtYWxXb3JsZABjY0FsbENvbnZleENhbGxiYWNrX2dldEhpdE5vcm1hbFdvcmxkAENvbGxpc2lvbk9iamVjdF9zZXRDY2RNb3Rpb25UaHJlc2hvbGQAQ29sbGlzaW9uT2JqZWN0X3NldENvbnRhY3RQcm9jZXNzaW5nVGhyZXNob2xkAFJpZ2lkQm9keV9nZXRMaW5lYXJTbGVlcGluZ1RocmVzaG9sZABUeXBlZENvbnN0cmFpbnRfc2V0TWF4SW1wdWxzZVRocmVzaG9sZABnZXROZXdNYW5pZm9sZAByZWxlYXNlTWFuaWZvbGQAdm9pZABtX2lzTG9jYWxBYWJiVmFsaWQAZ2V0UGFydElkAGYtPm5lYXJieVZlcnRleCA9PSBzcmMAX21hbGxvYwBEZWZhdWx0Q29sbGlzaW9uQ29uZmlndXJhdGlvbl9zdGF0aWMAY2NDbG9zZXN0UmF5Q2FsbGJhY2tfc3RhdGljAGNjQWxsUmF5Q2FsbGJhY2tfc3RhdGljAGNjQ2xvc2VzdENvbnZleENhbGxiYWNrX3N0YXRpYwBjY0FsbENvbnZleENhbGxiYWNrX3N0YXRpYwBFbXB0eVNoYXBlX3N0YXRpYwB3YWxrUmVjdXJzaXZlUXVhbnRpemVkVHJlZUFnYWluc3RRdWVyeUFhYmIAQ29sbGlzaW9uU2hhcGVfZ2V0QWFiYgBidFRyYW5zZm9ybUFhYmIAZ2V0Tm9udmlydHVhbEFhYmIAYnRJbnRJbmRleERhdGEAYnRNZXNoUGFydERhdGEAYnRHZW5lcmljNkRvZlNwcmluZzJDb25zdHJhaW50RGF0YQBidFNob3J0SW50SW5kZXhUcmlwbGV0RGF0YQBidENoYXJJbmRleFRyaXBsZXREYXRhAGJ0UmlnaWRCb2R5RmxvYXREYXRhAGJ0UG9pbnQyUG9pbnRDb25zdHJhaW50RmxvYXREYXRhAGJ0SGluZ2VDb25zdHJhaW50RmxvYXREYXRhAGJ0VHlwZWRDb25zdHJhaW50RmxvYXREYXRhAGJ0Q29sbGlzaW9uT2JqZWN0RmxvYXREYXRhAGJ0UXVhbnRpemVkQnZoRmxvYXREYXRhAGJ0RHluYW1pY3NXb3JsZEZsb2F0RGF0YQBidFZlY3RvcjNGbG9hdERhdGEAYnRCdmhTdWJ0cmVlSW5mb0RhdGEAYnRDeWxpbmRlclNoYXBlRGF0YQBidENvbGxpc2lvblNoYXBlRGF0YQBidENvbnZleEludGVybmFsU2hhcGVEYXRhAGJ0VHJpYW5nbGVNZXNoU2hhcGVEYXRhAGJ0U2NhbGVkVHJpYW5nbGVNZXNoU2hhcGVEYXRhAGJ0Q29uZVNoYXBlRGF0YQBidFN0YXRpY1BsYW5lU2hhcGVEYXRhAGJ0Q2Fwc3VsZVNoYXBlRGF0YQBidENvbXBvdW5kU2hhcGVEYXRhAGJ0VmVjdG9yM0RvdWJsZURhdGEAYnRRdWFudGl6ZWRCdmhOb2RlRGF0YQBidE9wdGltaXplZEJ2aE5vZGVEYXRhAGJ0U3RyaWRpbmdNZXNoSW50ZXJmYWNlRGF0YQBidENvbXBvdW5kU2hhcGVDaGlsZERhdGEAaGVpZ2h0ZmllbGREYXRhAENvbGxpc2lvblNoYXBlX2NhbGN1bGF0ZUxvY2FsSW5lcnRpYQBjb2xsaXNpb25PYmplY3QgPT0gbV9jb2xsaXNpb25PYmplY3RzW2lPYmpdAG1fZG91YmxlRGlzcGF0Y2hDb250YWN0UG9pbnRzW2ldW2pdAG49PXAtPmNoaWxkc1tpXQBvcGVyYXRvcltdAEN5bGluZGVyWQBpbmRpY2VzdHlwZT09UEhZX0lOVEVHRVJ8fGluZGljZXN0eXBlPT1QSFlfU0hPUlQAaGR0ICE9IFBIWV9VQ0hBUiB8fCBoZHQgIT0gUEhZX0ZMT0FUIHx8IGhkdCAhPSBQSFlfU0hPUlQAU0VOU09SAGluZGV4ICE9IEJUX05VTExfUEFJUgBpbmRleCAhPSBCVF9TSU1QTEVfTlVMTF9QQUlSAGluZGljZXN0eXBlPT1QSFlfSU5URUdFUnx8aW5kaWNlc3R5cGU9PVBIWV9TSE9SVHx8aW5kaWNlc3R5cGU9PVBIWV9VQ0hBUgBVUABtX2ZsYWdzICYgQlRfUDJQX0ZMQUdTX0VSUABtX2ZsYWdzICYgQlRfSElOR0VfRkxBR1NfRVJQX1NUT1AAbV9mbGFncyAmIEJUX0hJTkdFX0ZMQUdTX0NGTV9TVE9QAERPV04AZnN1bSA+IFNJTURfRVBTSUxPTgBOQU4AbV9mbGFncyAmIEJUX0hJTkdFX0ZMQUdTX0VSUF9OT1JNAG1fZmxhZ3MgJiBCVF9ISU5HRV9GTEFHU19DRk1fTk9STQBtX2ZsYWdzICYgQlRfUDJQX0ZMQUdTX0NGTQBTQ0FMRURCVkhUUklBTkdMRU1FU0gASU5GAFNQSEVSRQBTVEFUSUNQTEFORQBTSURFAEhFSUdIVEZJRUxEAFAyUENvbnN0cmFpbnRfc2V0UGl2b3RCAE1hbmlmb2xkUG9pbnRfZ2V0X21fbG9jYWxQb2ludEIATWFuaWZvbGRQb2ludF9nZXRfbV9wb3NpdGlvbldvcmxkT25CAE1hbmlmb2xkUG9pbnRfZ2V0X21fbm9ybWFsV29ybGRPbkIAUDJQQ29uc3RyYWludF9zZXRQaXZvdEEATWFuaWZvbGRQb2ludF9nZXRfbV9sb2NhbFBvaW50QQBNYW5pZm9sZFBvaW50X2dldF9tX3Bvc2l0aW9uV29ybGRPbkEAZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ2NF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ2NF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4Ab3BlcmF0b3IvPQBidEJVX1NpbXBsZXgxdG80AHVwQXhpcyA+PSAwICYmIHVwQXhpcyA8IDMAY3VsbFBvaW50czIAcGFpci0+bV9wUHJveHkxLT5nZXRVaWQoKSA9PSBwcm94eUlkMgBfd3JpdGVfZjMyAF9yZWFkX2YzMgBib2R5MQBQZXJzaXN0ZW50TWFuaWZvbGRfZ2V0Qm9keTEATWFuaWZvbGRQb2ludF9nZXRfbV9pbmRleDEATWFuaWZvbGRQb2ludF9nZXRTaGFwZTEAcGFpci0+bV9wUHJveHkwLT5nZXRVaWQoKSA9PSBwcm94eUlkMQBjb2xsaXNpb25PYmplY3QtPmdldFdvcmxkQXJyYXlJbmRleCgpID09IC0xAGhlaWdodFN0aWNrTGVuZ3RoID4gMQBoZWlnaHRTdGlja1dpZHRoID4gMQBib2R5MABQZXJzaXN0ZW50TWFuaWZvbGRfZ2V0Qm9keTAATWFuaWZvbGRQb2ludF9nZXRfbV9pbmRleDAAKmlyZXQgIT0gaTAATWFuaWZvbGRQb2ludF9nZXRTaGFwZTAAbV9udW1WZXJ0aWNlcz4wAG51bUluZGljZXM+MABtX3NpemU+MAB5Pj0wAGluZGV4Pj0wAHRyaWFuZ2xlSW5kZXg+PTAAbj49MABjaGlsZEluZGV4MT49MABjaGlsZEluZGV4MD49MABlZHB0ci0+bV9mYWNlMD49MABtX3BvaW50Q2FjaGVbaW5zZXJ0SW5kZXhdLm1fdXNlclBlcnNpc3RlbnREYXRhPT0wAG1fcG9pbnRDYWNoZVtsYXN0VXNlZEluZGV4XS5tX3VzZXJQZXJzaXN0ZW50RGF0YT09MABtX3JlbW92ZVBhaXJzLnNpemUoKT09MABtX2NvbnN0cmFpbnRSZWZzLnNpemUoKT09MABlZHB0ci0+bV9mYWNlMTwwAHN0YWNrLnNpemUoKSA+IDAAcHRJbmRleCA+PSAwAHZvbCA+PSAwAGxpZmVUaW1lID49IDAAZG90IDw9IDAAZG90LmNvbXBhcmUob3JpZ0RvdCkgPD0gMABkb3QgIT0gMABkZXQuZ2V0U2lnbigpICE9IDAALgAhc3RhcnQxIHx8IChzdGFydDEtPnRhcmdldC0+cG9pbnQuZG90KG5vcm1hbCkgPT0gZGlzdCkAdmFsaWRDb250YWN0RGlzdGFuY2UobmV3UG9pbnQpAGluZm8yLnJvd3NraXAqc2l6ZW9mKGJ0U2NhbGFyKT09IHNpemVvZihidFNvbHZlckNvbnN0cmFpbnQpAChudWxsKQAoZ2Z4aW5kZXh0eXBlID09IFBIWV9JTlRFR0VSKSB8fCAoZ2Z4aW5kZXh0eXBlID09IFBIWV9TSE9SVCkAcGFydElkIDwgKDE8PE1BWF9OVU1fUEFSVFNfSU5fQklUUykAbm9ybWFsT25CLmxlbmd0aDIoKT49KFNJTURfRVBTSUxPTipTSU1EX0VQU0lMT04pACh0eXBlID09IFBIWV9GTE9BVCkgfHwgKHR5cGUgPT0gUEhZX0RPVUJMRSkAKGluZGV4ID49IDApICYmIChpbmRleCA8IDYpAChjb2xPYmowLT5nZXRJc2xhbmRUYWcoKSA9PSBpc2xhbmRJZCkgfHwgKGNvbE9iajAtPmdldElzbGFuZFRhZygpID09IC0xKQBzID4gYnRTY2FsYXIoMC4wKQBtX0FkaWFnID4gYnRTY2FsYXIoMC4wKQBkZXQgIT0gYnRTY2FsYXIoMC4wKQBzICE9IGJ0U2NhbGFyKDAuMCkAZCAhPSBidFNjYWxhcigwLjApAGNjdyA/ICh0LmRvdChzKSA8IDApIDogKHQuZG90KHMpID4gMCkAKGUxID09IHN0YXJ0MSkgJiYgKGQxLmRvdChub3JtYWwpIDwgMCkAKGUwID09IHN0YXJ0MCkgJiYgKGQwLmRvdChub3JtYWwpIDwgMCkAdHJpYW5nbGVJbmRleCA8ICgxPDwoMzEtTUFYX05VTV9QQVJUU19JTl9CSVRTKSkAbV9mbGFncyAmIChCVF82RE9GX0ZMQUdTX0VSUF9TVE9QMiA8PCAoYXhpcyAqIDQpKQBtX2ZsYWdzICYgKEJUXzZET0ZfRkxBR1NfQ0ZNX1NUT1AyIDw8IChheGlzICogNCkpAG1fZmxhZ3MgJiAoQlRfNkRPRl9GTEFHU19FUlBfTU9UTzIgPDwgKGF4aXMgKiA0KSkAbV9mbGFncyAmIChCVF82RE9GX0ZMQUdTX0NGTV9NT1RPMiA8PCAoYXhpcyAqIDQpKQBzdWJwYXJ0PCBnZXROdW1TdWJQYXJ0cygpAGluZGV4PGNvbXBvdW5kU2hhcGUtPmdldE51bUNoaWxkU2hhcGVzKCkAY2hpbGRJbmRleDE8Y29tcG91bmRTaGFwZTEtPmdldE51bUNoaWxkU2hhcGVzKCkAY2hpbGRJbmRleDA8Y29tcG91bmRTaGFwZTAtPmdldE51bUNoaWxkU2hhcGVzKCkAIWZ1enp5WmVybygpACF0LmlzWmVybygpACFwZXJwLmlzWmVybygpACFtLmlzWmVybygpAG4tPmlzaW50ZXJuYWwoKQBuPHNpemUoKQBpbmRleCA8IG1fb3ZlcmxhcHBpbmdQYWlyQXJyYXkuc2l6ZSgpAHBhaXJJbmRleCA8IG1fb3ZlcmxhcHBpbmdQYWlyQXJyYXkuc2l6ZSgpAG1fY29sbGlzaW9uT2JqZWN0cy5maW5kTGluZWFyU2VhcmNoKGNvbGxpc2lvbk9iamVjdCkgPT0gbV9jb2xsaXNpb25PYmplY3RzLnNpemUoKQAhbV9vdmVybGFwcGluZ09iamVjdHMuc2l6ZSgpAG1fc3VidHJlZUhlYWRlckNvdW50ID09IG1fU3VidHJlZUhlYWRlcnMuc2l6ZSgpAGZpbmRJbmRleCA8IG1fbWFuaWZvbGRzUHRyLnNpemUoKQBjaGlsZFNoYXBlSW5kZXggPj0wICYmIGNoaWxkU2hhcGVJbmRleCA8IG1fY2hpbGRyZW4uc2l6ZSgpAHNvbHZlckJvZHlJZEEgPCBtX3RtcFNvbHZlckJvZHlQb29sLnNpemUoKQAhaXNMZWFmTm9kZSgpAGNvbE9ialdyYXAtPmdldENvbGxpc2lvblNoYXBlKCktPmlzQ29tcG91bmQoKQBjb2wxT2JqV3JhcC0+Z2V0Q29sbGlzaW9uU2hhcGUoKS0+aXNDb21wb3VuZCgpAGNvbDBPYmpXcmFwLT5nZXRDb2xsaXNpb25TaGFwZSgpLT5pc0NvbXBvdW5kKCkAbG9jYWxBYWJiTWluLmdldFooKSA8PSBsb2NhbEFhYmJNYXguZ2V0WigpAHBvaW50LmdldFooKSA8PSBtX2J2aEFhYmJNYXguZ2V0WigpAHBvaW50LmdldFooKSA+PSBtX2J2aEFhYmJNaW4uZ2V0WigpAGxvY2FsQWFiYk1pbi5nZXRZKCkgPD0gbG9jYWxBYWJiTWF4LmdldFkoKQBwb2ludC5nZXRZKCkgPD0gbV9idmhBYWJiTWF4LmdldFkoKQBwb2ludC5nZXRZKCkgPj0gbV9idmhBYWJiTWluLmdldFkoKQBsb2NhbEFhYmJNaW4uZ2V0WCgpIDw9IGxvY2FsQWFiYk1heC5nZXRYKCkAcG9pbnQuZ2V0WCgpIDw9IG1fYnZoQWFiYk1heC5nZXRYKCkAcG9pbnQuZ2V0WCgpID49IG1fYnZoQWFiYk1pbi5nZXRYKCkAJmNvbnN0cmFpbnQtPmdldFJpZ2lkQm9keUEoKSE9JmNvbnN0cmFpbnQtPmdldFJpZ2lkQm9keUIoKQAhIkJhZCBtX2hlaWdodERhdGFUeXBlIgBQdXJlIHZpcnR1YWwgZnVuY3Rpb24gY2FsbGVkIQBsaWJjKythYmk6IABJZiB5b3UgY2FuIHJlcHJvZHVjZSB0aGlzLCBwbGVhc2UgZW1haWwgYnVnc0Bjb250aW51b3VzcGh5c2ljcy5jb20KAHNlcEF4aXM9KCVmLCVmLCVmKSwgc3F1YXJlZERpc3RhbmNlID0gJWYsIHNoYXBlVHlwZUE9JWksc2hhcGVUeXBlQj0laQoAYnRHamtQYWlyRGV0ZWN0b3IgbWF4SXRlciBleGNlZWRlZDolaQoAVGhhbmtzLgoAUGxlYXNlIGluY2x1ZGUgYWJvdmUgaW5mb3JtYXRpb24sIHlvdXIgUGxhdGZvcm0sIHZlcnNpb24gb2YgT1MuCgB3YXJuaW5nIGJ0Q29sbGlzaW9uRGlzcGF0Y2hlcjo6bmVlZHNDb2xsaXNpb246IHN0YXRpYy1zdGF0aWMgY29sbGlzaW9uIQoATjJjYzI2Y2NDbG9zZXN0UmF5UmVzdWx0Q2FsbGJhY2tFAE4xNmJ0Q29sbGlzaW9uV29ybGQyNENsb3Nlc3RSYXlSZXN1bHRDYWxsYmFja0UATjE2YnRDb2xsaXNpb25Xb3JsZDE3UmF5UmVzdWx0Q2FsbGJhY2tFAE4yY2MyNmNjQWxsSGl0c1JheVJlc3VsdENhbGxiYWNrRQBOMTZidENvbGxpc2lvbldvcmxkMjRBbGxIaXRzUmF5UmVzdWx0Q2FsbGJhY2tFAE4yY2MyOWNjQ2xvc2VzdENvbnZleFJlc3VsdENhbGxiYWNrRQBOMTZidENvbGxpc2lvbldvcmxkMjdDbG9zZXN0Q29udmV4UmVzdWx0Q2FsbGJhY2tFAE4xNmJ0Q29sbGlzaW9uV29ybGQyMENvbnZleFJlc3VsdENhbGxiYWNrRQBOMmNjMjljY0FsbEhpdHNDb252ZXhSZXN1bHRDYWxsYmFja0UATjE2YnRDb2xsaXNpb25Xb3JsZDI3QWxsSGl0c0NvbnZleFJlc3VsdENhbGxiYWNrRQBOMmNjMTVjY0NvbXBvdW5kU2hhcGVFADEzYnRNb3Rpb25TdGF0ZQAxMWJ0RGVidWdEcmF3ADEyYnRJRGVidWdEcmF3AFAxMWJ0RGVidWdEcmF3AFBLMTFidERlYnVnRHJhdwBpaQB2AHZpAFAxMmJ0SURlYnVnRHJhdwB2aWkAdmlpaWlpADE4YnREZWJ1Z0RyYXdXcmFwcGVyAE4xMGVtc2NyaXB0ZW43d3JhcHBlckkxMWJ0RGVidWdEcmF3RUUATjEwZW1zY3JpcHRlbjhpbnRlcm5hbDExV3JhcHBlckJhc2VFAFAxOGJ0RGVidWdEcmF3V3JhcHBlcgBQSzE4YnREZWJ1Z0RyYXdXcmFwcGVyAE4xMGVtc2NyaXB0ZW4zdmFsRQBpaWkATlN0M19fMjEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAaWlpaQAyMWJ0Q29udHJvbGxlckhpdFJlcG9ydAAyNWJ0VXNlckNvbnRyb2xsZXJIaXRSZXBvcnQAUDIxYnRDb250cm9sbGVySGl0UmVwb3J0AFBLMjFidENvbnRyb2xsZXJIaXRSZXBvcnQAdmlpaWkAMjhidENvbnRyb2xsZXJIaXRSZXBvcnRXcmFwcGVyAE4xMGVtc2NyaXB0ZW43d3JhcHBlckkyMWJ0Q29udHJvbGxlckhpdFJlcG9ydEVFAFAyOGJ0Q29udHJvbGxlckhpdFJlcG9ydFdyYXBwZXIAUEsyOGJ0Q29udHJvbGxlckhpdFJlcG9ydFdyYXBwZXIATjJjYzEzY2NNb3Rpb25TdGF0ZUUAUE4yY2MxM2NjTW90aW9uU3RhdGVFAFBLTjJjYzEzY2NNb3Rpb25TdGF0ZUUAdmlpaQAyMGNjTW90aW9uU3RhdGVXcmFwcGVyAE4xMGVtc2NyaXB0ZW43d3JhcHBlcklOMmNjMTNjY01vdGlvblN0YXRlRUVFAFAyMGNjTW90aW9uU3RhdGVXcmFwcGVyAFBLMjBjY01vdGlvblN0YXRlV3JhcHBlcgBmaWkAdmlpZgBpaWZmZgB2aWlmZmYAaWlmZmZmAHZpaWZmZmYAaWlpaWlpAHZpaWZmZmZmAHZpaWZmAGlpaWlpaWkAdmlpaWZmAHZpaWlmAHZpaWZpAGlpZgB2aWlmZmkAaWlmZgBpaWlmAGlpaWlpZmZmAHZpaWlpaWkAaWlpaWkAdmlpaWZmZgBpaWlmZmYAaWlmaQB2aWlpaWlpZgB2aWlmaWYAaWlpaWZmAGlpZmZmaWlpZmYAaWlmZmZpaWlmZmYAAAAAAFBgAQC7AQAAvAEAAL0BAAC+AQAAvwEAAMABAADBAQAAwgEAAMMBAADEAQAAxQEAAMYBAADHAQAAyAEAADE2YnREYnZ0QnJvYWRwaGFzZQAyMWJ0QnJvYWRwaGFzZUludGVyZmFjZQAAHK0BAC9gAQBErQEAHGABAEhgAQAAAAAASGABAMkBAADKAQAAUAEAAFABAABQAQAAUAEAAFABAABQAQAAUAEAAFABAABQAQAAUAEAAMsBAABQAQAAAAAAAPBgAQDMAQAAzQEAAM4BAADPAQAA0AEAANEBAADSAQAAMThidERidnRUcmVlQ29sbGlkZXIATjZidERidnQ4SUNvbGxpZGVFABytAQDVYAEARK0BAMBgAQDoYAEAAAAAAOhgAQDTAQAA1AEAANUBAADWAQAA0AEAANEBAADSAQAAAAAAAFxhAQDXAQAA2AEAANUBAADZAQAA0AEAANEBAADSAQAAMTlCcm9hZHBoYXNlUmF5VGVzdGVyAAAARK0BAERhAQDoYAEAAAAAAKRhAQDaAQAA2wEAANUBAADcAQAA0AEAANEBAADSAQAAMjBCcm9hZHBoYXNlQWFiYlRlc3RlcgAARK0BAIxhAQDoYAEAAAAAAGRiAQDfAQAA4AEAAOEBAADiAQAA4wEAAOQBAADlAQAA5gEAAOcBAADoAQAA6QEAAOoBAADrAQAA7AEAAO0BAADuAQAA7wEAADI4YnRIYXNoZWRPdmVybGFwcGluZ1BhaXJDYWNoZQAyMmJ0T3ZlcmxhcHBpbmdQYWlyQ2FjaGUAMjVidE92ZXJsYXBwaW5nUGFpckNhbGxiYWNrABytAQA0YgEARK0BABtiAQBQYgEARK0BAPxhAQBYYgEAAAAAAFhiAQDwAQAA8QEAAFABAABQAQAAUAEAAFABAABQAQAAUAEAAFABAABQAQAAUAEAAFABAABQAQAAUAEAAFABAABQAQAAUAEAAAAAAABQYgEA8gEAAPMBAABQAQAAUAEAAFABAAAAAAAAeGMBAPQBAAD1AQAA9gEAAFpOMjhidEhhc2hlZE92ZXJsYXBwaW5nUGFpckNhY2hlMTljbGVhblByb3h5RnJvbVBhaXJzRVAxN2J0QnJvYWRwaGFzZVByb3h5UDEyYnREaXNwYXRjaGVyRTE3Q2xlYW5QYWlyQ2FsbGJhY2sAMTdidE92ZXJsYXBDYWxsYmFjawAAABytAQBaYwEARK0BAOxiAQBwYwEAAAAAAHBjAQD3AQAA+AEAAFABAAAAAAAAMGQBAPkBAAD6AQAA+wEAAFpOMjhidEhhc2hlZE92ZXJsYXBwaW5nUGFpckNhY2hlMzdyZW1vdmVPdmVybGFwcGluZ1BhaXJzQ29udGFpbmluZ1Byb3h5RVAxN2J0QnJvYWRwaGFzZVByb3h5UDEyYnREaXNwYXRjaGVyRTE4UmVtb3ZlUGFpckNhbGxiYWNrAAAAAEStAQCsYwEAcGMBAAAAAACUZAEA/AEAAP0BAABQAQAAUAEAAFABAABQAQAAUAEAAFABAABQAQAAUAEAAFABAABQAQAAUAEAAFABAABQAQAAUAEAADEyYnREaXNwYXRjaGVyAAAcrQEAhGQBAAAAAAD8ZAEA/wEAAAACAAABAgAAAgIAAAMCAAAEAgAABQIAAAYCAAAHAgAACAIAAAkCAAAKAgAACwIAAAwCAAANAgAADgIAADIxYnRDb2xsaXNpb25EaXNwYXRjaGVyAEStAQDkZAEAlGQBAAAAAABUZQEADwIAABACAABQAQAAUAEAAFABAABOMzZidERpc2NyZXRlQ29sbGlzaW9uRGV0ZWN0b3JJbnRlcmZhY2U2UmVzdWx0RQAcrQEAJGUBAAAAAACMZQEAEQIAABICAAATAgAAMjNidENvbGxpc2lvblBhaXJDYWxsYmFjawAAAEStAQBwZQEAcGMBAAAAAADQZQEAFAIAABUCAAAWAgAAFwIAABgCAAAZAgAAGgIAADE3YnRDb2xsaXNpb25PYmplY3QAHK0BALxlAQAAAAAAKGYBABsCAAAcAgAAHQIAAB4CAAAfAgAAIAIAACECAAAiAgAAIwIAACQCAAAlAgAAJgIAACcCAAAxNmJ0Q29sbGlzaW9uV29ybGQAABytAQAUZgEAAAAAAGxmAQAoAgAAKQIAACoCAAArAgAALAIAAE4xMmJ0Q29udmV4Q2FzdDEwQ2FzdFJlc3VsdEUAAAAAHK0BAExmAQAAAAAAIGcBAC0CAAAuAgAALwIAADACAABaTjE2YnRDb2xsaXNpb25Xb3JsZDIxcmF5VGVzdFNpbmdsZUludGVybmFsRVJLMTFidFRyYW5zZm9ybVMyX1BLMjRidENvbGxpc2lvbk9iamVjdFdyYXBwZXJSTlNfMTdSYXlSZXN1bHRDYWxsYmFja0VFMjlCcmlkZ2VUcmlhbmdsZVJheWNhc3RDYWxsYmFjawAARK0BAIxmAQD0jQEAAAAAANBnAQAxAgAAMgIAANUBAAAzAgAA0AEAANEBAADSAQAAWk4xNmJ0Q29sbGlzaW9uV29ybGQyMXJheVRlc3RTaW5nbGVJbnRlcm5hbEVSSzExYnRUcmFuc2Zvcm1TMl9QSzI0YnRDb2xsaXNpb25PYmplY3RXcmFwcGVyUk5TXzE3UmF5UmVzdWx0Q2FsbGJhY2tFRTlSYXlUZXN0ZXIAAABErQEAUGcBAOhgAQAAAAAAfGgBADQCAAA1AgAANgIAADcCAABaTjE2YnRDb2xsaXNpb25Xb3JsZDIxcmF5VGVzdFNpbmdsZUludGVybmFsRVJLMTFidFRyYW5zZm9ybVMyX1BLMjRidENvbGxpc2lvbk9iamVjdFdyYXBwZXJSTlNfMTdSYXlSZXN1bHRDYWxsYmFja0VFMTVMb2NhbEluZm9BZGRlcjIAAAAARK0BAPRnAQBIrgEAAAAAAMBoAQA4AgAAOQIAAFABAAAzMGJ0Q29udmV4UGVuZXRyYXRpb25EZXB0aFNvbHZlcgAAAAAcrQEAnGgBAAAAAACQaQEAOgIAADsCAAA8AgAAPQIAAFpOMTZidENvbGxpc2lvbldvcmxkMjVvYmplY3RRdWVyeVNpbmdsZUludGVybmFsRVBLMTNidENvbnZleFNoYXBlUksxMWJ0VHJhbnNmb3JtUzVfUEsyNGJ0Q29sbGlzaW9uT2JqZWN0V3JhcHBlclJOU18yMENvbnZleFJlc3VsdENhbGxiYWNrRWZFMzJCcmlkZ2VUcmlhbmdsZUNvbnZleGNhc3RDYWxsYmFjawAARK0BAOBoAQAgjgEAAAAAAGhqAQA+AgAAPwIAADwCAABAAgAAWk4xNmJ0Q29sbGlzaW9uV29ybGQyNW9iamVjdFF1ZXJ5U2luZ2xlSW50ZXJuYWxFUEsxM2J0Q29udmV4U2hhcGVSSzExYnRUcmFuc2Zvcm1TNV9QSzI0YnRDb2xsaXNpb25PYmplY3RXcmFwcGVyUk5TXzIwQ29udmV4UmVzdWx0Q2FsbGJhY2tFZkUzMkJyaWRnZVRyaWFuZ2xlQ29udmV4Y2FzdENhbGxiYWNrXzAAAAAARK0BALRpAQAgjgEAAAAAAEBrAQBBAgAAQgIAANUBAABDAgAA0AEAANEBAADSAQAAWk4xNmJ0Q29sbGlzaW9uV29ybGQyNW9iamVjdFF1ZXJ5U2luZ2xlSW50ZXJuYWxFUEsxM2J0Q29udmV4U2hhcGVSSzExYnRUcmFuc2Zvcm1TNV9QSzI0YnRDb2xsaXNpb25PYmplY3RXcmFwcGVyUk5TXzIwQ29udmV4UmVzdWx0Q2FsbGJhY2tFZkUyMmJ0Q29tcG91bmRMZWFmQ2FsbGJhY2sAAAAARK0BAJhqAQDoYAEAAAAAAERsAQBEAgAARQIAAEYCAABHAgAAWlpOMTZidENvbGxpc2lvbldvcmxkMjVvYmplY3RRdWVyeVNpbmdsZUludGVybmFsRVBLMTNidENvbnZleFNoYXBlUksxMWJ0VHJhbnNmb3JtUzVfUEsyNGJ0Q29sbGlzaW9uT2JqZWN0V3JhcHBlclJOU18yMENvbnZleFJlc3VsdENhbGxiYWNrRWZFTjIyYnRDb21wb3VuZExlYWZDYWxsYmFjazEyUHJvY2Vzc0NoaWxkRWlTNV9QSzE2YnRDb2xsaXNpb25TaGFwZUUxNExvY2FsSW5mb0FkZGVyAABErQEAZGsBAPiuAQAAAAAAxGwBAEgCAABJAgAASgIAADE5YnRTaW5nbGVSYXlDYWxsYmFjawAyM2J0QnJvYWRwaGFzZVJheUNhbGxiYWNrADI0YnRCcm9hZHBoYXNlQWFiYkNhbGxiYWNrAAAcrQEAlGwBAEStAQB6bAEAsGwBAEStAQBkbAEAuGwBAAAAAAC4bAEASwIAAEwCAABQAQAAAAAAALBsAQBNAgAATgIAAFABAAAAAAAAJG0BAE8CAABQAgAAUQIAADIxYnRTaW5nbGVTd2VlcENhbGxiYWNrAEStAQAMbQEAuGwBAAAAAABwbQEAUgIAAFMCAABUAgAAVQIAAPz///9wbQEAVgIAAFcCAABYAgAAMTdEZWJ1Z0RyYXdjYWxsYmFjawCgrQEAXG0BAAAAAAACAAAAUIgBAAIAAACQiAEAAgQAAAAAAAAAbgEAWQIAAFoCAABQAQAAUAEAAFABAAAAAAAACG4BAFsCAABcAgAAUAEAAFABAABQAQAAMzBidEFjdGl2YXRpbmdDb2xsaXNpb25BbGdvcml0aG0AMjBidENvbGxpc2lvbkFsZ29yaXRobQAcrQEA6W0BAEStAQDIbQEAAG4BAAAAAABsbgEAXQIAAGACAABhAgAAAAAAAJRuAQBeAgAAYgIAAGMCAABkAgAAZQIAAE4yM2J0Q29udmV4Q29udmV4QWxnb3JpdGhtMTBDcmVhdGVGdW5jRQBErQEARG4BAHx1AQAyM2J0Q29udmV4Q29udmV4QWxnb3JpdGhtAAAARK0BAHhuAQAIbgEAAAAAAERvAQBmAgAAZwIAAGgCAABpAgAAagIAAFpOMjNidENvbnZleENvbnZleEFsZ29yaXRobTE2cHJvY2Vzc0NvbGxpc2lvbkVQSzI0YnRDb2xsaXNpb25PYmplY3RXcmFwcGVyUzJfUksxNmJ0RGlzcGF0Y2hlckluZm9QMTZidE1hbmlmb2xkUmVzdWx0RTEzYnREdW1teVJlc3VsdAAAAABErQEAvG4BAFRlAQAAAAAA/G8BAGsCAABsAgAAbQIAAG4CAABvAgAAWk4yM2J0Q29udmV4Q29udmV4QWxnb3JpdGhtMTZwcm9jZXNzQ29sbGlzaW9uRVBLMjRidENvbGxpc2lvbk9iamVjdFdyYXBwZXJTMl9SSzE2YnREaXNwYXRjaGVySW5mb1AxNmJ0TWFuaWZvbGRSZXN1bHRFMjFidFdpdGhvdXRNYXJnaW5SZXN1bHQAAAAARK0BAGxvAQBUZQEAAAAAAEBwAQBwAgAAcQIAAHICAABzAgAAdAIAADI0YnRQZXJ0dXJiZWRDb250YWN0UmVzdWx0AABErQEAJHABADB5AQAAAAAAoHABAHcCAAB4AgAAeQIAAHoCAAB7AgAAAAAAAMhwAQB2AgAAfAIAAH0CAAAzM2J0Q29udmV4Q29uY2F2ZUNvbGxpc2lvbkFsZ29yaXRobQBErQEAfHABAAhuAQAyNGJ0Q29udmV4VHJpYW5nbGVDYWxsYmFjawAARK0BAKxwAQBQiAEAAAAAAHBxAQB+AgAAfwIAAIACAABsAQAAbQEAAG4BAACBAgAAggIAAIMCAACEAgAAcwEAAIUCAACGAgAAhwIAAIgCAAB4AQAAiQIAAIoCAACLAgAAjAIAAI0CAACOAgAAjwIAAJACAACRAgAAkgIAAJMCAACUAgAAlQIAAJYCAACXAgAAmAIAADE1YnRUcmlhbmdsZVNoYXBlAAAARK0BAFxxAQCYhQEAAAAAADByAQCZAgAAmgIAAJsCAABaTjMzYnRDb252ZXhDb25jYXZlQ29sbGlzaW9uQWxnb3JpdGhtMjFjYWxjdWxhdGVUaW1lT2ZJbXBhY3RFUDE3YnRDb2xsaXNpb25PYmplY3RTMV9SSzE2YnREaXNwYXRjaGVySW5mb1AxNmJ0TWFuaWZvbGRSZXN1bHRFMzFMb2NhbFRyaWFuZ2xlU3BoZXJlQ2FzdENhbGxiYWNrAAAARK0BAJBxAQBQiAEAAAAAAHhyAQCcAgAAnQIAAJ4CAACfAgAAoAIAADI4YnRDb21wb3VuZENvbGxpc2lvbkFsZ29yaXRobQAARK0BAFhyAQAIbgEAAAAAAMRyAQChAgAAogIAANUBAACjAgAA0AEAANEBAADSAQAAMjJidENvbXBvdW5kTGVhZkNhbGxiYWNrAAAAAEStAQCocgEA6GABAAAAAAAUcwEApAIAAKUCAACmAgAApwIAAKgCAAAzNmJ0Q29tcG91bmRDb21wb3VuZENvbGxpc2lvbkFsZ29yaXRobQAARK0BAOxyAQB4cgEAAAAAAGhzAQCpAgAAqgIAAKsCAADWAQAA0AEAANEBAADSAQAAMzBidENvbXBvdW5kQ29tcG91bmRMZWFmQ2FsbGJhY2sAAAAARK0BAERzAQDoYAEAAAAAAMxzAQCsAgAArQIAAK4CAAAxNmJ0Qm94Qm94RGV0ZWN0b3IAMzZidERpc2NyZXRlQ29sbGlzaW9uRGV0ZWN0b3JJbnRlcmZhY2UAAAAcrQEAm3MBAEStAQCIcwEAxHMBAAAAAADEcwEArwIAALACAABQAQAAAAAAACh0AQCxAgAAsgIAALMCAAC0AgAAtQIAADI2YnRCb3hCb3hDb2xsaXNpb25BbGdvcml0aG0AAAAARK0BAAh0AQAIbgEAAAAAAHR0AQC2AgAAtwIAALgCAAC5AgAAugIAADMxYnRDb252ZXhQbGFuZUNvbGxpc2lvbkFsZ29yaXRobQAAAEStAQBQdAEAAG4BAAAAAADodAEAuwIAALwCAAC9AgAAvgIAAL8CAADAAgAAMzFidERlZmF1bHRDb2xsaXNpb25Db25maWd1cmF0aW9uADI0YnRDb2xsaXNpb25Db25maWd1cmF0aW9uAAAAABytAQDCdAEARK0BAKB0AQDgdAEAAAAAAOB0AQDBAgAAwgIAAFABAABQAQAAUAEAAFABAAAAAAAAhHUBAMMCAADEAgAAxQIAAE4zM2J0Q29udmV4Q29uY2F2ZUNvbGxpc2lvbkFsZ29yaXRobTEwQ3JlYXRlRnVuY0UAMzBidENvbGxpc2lvbkFsZ29yaXRobUNyZWF0ZUZ1bmMAABytAQBadQEARK0BACh1AQB8dQEAAAAAAHx1AQDGAgAAxwIAAMgCAAAAAAAA9HUBAMkCAADKAgAAywIAAE4zM2J0Q29udmV4Q29uY2F2ZUNvbGxpc2lvbkFsZ29yaXRobTE3U3dhcHBlZENyZWF0ZUZ1bmNFAAAAAEStAQC4dQEAfHUBAAAAAABEdgEAzAIAAM0CAADOAgAATjI4YnRDb21wb3VuZENvbGxpc2lvbkFsZ29yaXRobTEwQ3JlYXRlRnVuY0UAAAAARK0BABR2AQB8dQEAAAAAAJx2AQDPAgAA0AIAANECAABOMzZidENvbXBvdW5kQ29tcG91bmRDb2xsaXNpb25BbGdvcml0aG0xMENyZWF0ZUZ1bmNFAAAAAEStAQBkdgEAfHUBAAAAAADwdgEA0gIAANMCAADUAgAATjI4YnRDb21wb3VuZENvbGxpc2lvbkFsZ29yaXRobTE3U3dhcHBlZENyZWF0ZUZ1bmNFAEStAQC8dgEAfHUBAAAAAAA0dwEA1QIAANYCAADXAgAATjE2YnRFbXB0eUFsZ29yaXRobTEwQ3JlYXRlRnVuY0UAAAAARK0BABB3AQB8dQEAAAAAAIh3AQDYAgAA2QIAANoCAABOMzJidFNwaGVyZVNwaGVyZUNvbGxpc2lvbkFsZ29yaXRobTEwQ3JlYXRlRnVuY0UAAAAARK0BAFR3AQB8dQEAAAAAANx3AQDbAgAA3AIAAN0CAABOMzRidFNwaGVyZVRyaWFuZ2xlQ29sbGlzaW9uQWxnb3JpdGhtMTBDcmVhdGVGdW5jRQAARK0BAKh3AQB8dQEAAAAAACh4AQDeAgAA3wIAAOACAABOMjZidEJveEJveENvbGxpc2lvbkFsZ29yaXRobTEwQ3JlYXRlRnVuY0UAAEStAQD8dwEAfHUBAAAAAAB4eAEA4QIAAOICAADjAgAATjMxYnRDb252ZXhQbGFuZUNvbGxpc2lvbkFsZ29yaXRobTEwQ3JlYXRlRnVuY0UARK0BAEh4AQB8dQEAAAAAALR4AQDkAgAA5QIAAOYCAADnAgAA6AIAADE2YnRFbXB0eUFsZ29yaXRobQAARK0BAKB4AQAAbgEAAAAAAPh4AQDpAgAA6gIAAOsCAADsAgAA7QIAADIzYnRIYXNoZWRTaW1wbGVQYWlyQ2FjaGUAAAAcrQEA3HgBAAAAAAAweQEA7gIAAO8CAAByAgAAcwIAAPACAAAxNmJ0TWFuaWZvbGRSZXN1bHQAAEStAQAceQEAVGUBAAAAAAB8eQEA8QIAAPICAADzAgAA9AIAAPUCAAAzMmJ0U3BoZXJlU3BoZXJlQ29sbGlzaW9uQWxnb3JpdGhtAABErQEAWHkBAAhuAQAAAAAAzHkBAPYCAAD3AgAA+AIAAPkCAAD6AgAAMzRidFNwaGVyZVRyaWFuZ2xlQ29sbGlzaW9uQWxnb3JpdGhtAAAAAEStAQCkeQEACG4BAAAAAAAIegEA+wIAAPwCAAD9AgAAMjJTcGhlcmVUcmlhbmdsZURldGVjdG9yAAAAAEStAQDseQEAxHMBAAAAAACsegEA/gIAAP8CAAAAAwAAbAEAAG0BAABuAQAAAQMAAIICAAACAwAAAwMAAHMBAAAEAwAAhgIAAIcCAACIAgAAeAEAAAUDAAAGAwAAiwIAAAcDAACNAgAACAMAAAkDAACQAgAACgMAAAsDAAAMAwAADQMAAA4DAAAPAwAAEAMAABEDAAAxMGJ0Qm94U2hhcGUAAAAARK0BAJx6AQCYhQEAAAAAAPB6AQASAwAAFAMAABUDAAAWAwAAFwMAABgDAAAZAwAAMTRidFF1YW50aXplZEJ2aAAAAAAcrQEA3HoBAAAAAABwewEAGgMAABsDAAAcAwAAbAEAAG0BAABuAQAAHQMAAB4DAAAfAwAAIAMAAHMBAAAhAwAAIgMAACMDAAAkAwAAeAEAACUDAAAmAwAAJwMAACgDAAApAwAAMjJidEJ2aFRyaWFuZ2xlTWVzaFNoYXBlAAAAAEStAQBUewEAQIoBAAAAAAAYfAEAKgMAACsDAAAsAwAAWk4yMmJ0QnZoVHJpYW5nbGVNZXNoU2hhcGUxNHBlcmZvcm1SYXljYXN0RVAxOGJ0VHJpYW5nbGVDYWxsYmFja1JLOWJ0VmVjdG9yM1M0X0UyMU15Tm9kZU92ZXJsYXBDYWxsYmFjawAyMWJ0Tm9kZU92ZXJsYXBDYWxsYmFjawAcrQEA+HsBAEStAQCQewEAEHwBAAAAAAAQfAEALQMAAC4DAABQAQAAAAAAAMB8AQAvAwAAMAMAADEDAABaTjIyYnRCdmhUcmlhbmdsZU1lc2hTaGFwZTE3cGVyZm9ybUNvbnZleGNhc3RFUDE4YnRUcmlhbmdsZUNhbGxiYWNrUks5YnRWZWN0b3IzUzRfUzRfUzRfRTIxTXlOb2RlT3ZlcmxhcENhbGxiYWNrAAAAAEStAQBMfAEAEHwBAAAAAABQfQEAMgMAADMDAAA0AwAAWk5LMjJidEJ2aFRyaWFuZ2xlTWVzaFNoYXBlMTlwcm9jZXNzQWxsVHJpYW5nbGVzRVAxOGJ0VHJpYW5nbGVDYWxsYmFja1JLOWJ0VmVjdG9yM1M0X0UyMU15Tm9kZU92ZXJsYXBDYWxsYmFjawAAAEStAQDgfAEAEHwBAAAAAADUfQEANQMAADYDAAA3AwAAbAEAAG0BAABuAQAAOAMAAIICAAA5AwAAOgMAADsDAAA8AwAAhgIAAD0DAAA+AwAAeAEAAIkCAAA/AwAAiwIAAEADAACNAgAAQQMAAEIDAAAxNGJ0Q2Fwc3VsZVNoYXBlAAAAAEStAQDAfQEAsH8BAAAAAAA8fgEAQwMAAEQDAABQAQAAbAEAAG0BAABuAQAAUAEAAFABAABQAQAAUAEAAHMBAABQAQAAUAEAAEUDAABGAwAAeAEAADE2YnRDb2xsaXNpb25TaGFwZQAAHK0BACh+AQAAAAAAqH4BAEcDAABIAwAAawEAAGwBAABtAQAAbgEAAG8BAABwAQAAcQEAAHIBAABzAQAAdAEAAHUBAAB2AQAAdwEAAHgBAAB5AQAAegEAADE1YnRDb21wb3VuZFNoYXBlAAAARK0BAJR+AQA8fgEAAAAAACh/AQBJAwAASgMAAEsDAABsAQAAbQEAAG4BAABMAwAAggIAAE0DAABOAwAATwMAAIUCAACGAgAAUAMAAFEDAAB4AQAAUgMAAFMDAACLAgAAVAMAAI0CAABBAwAAQgMAADExYnRDb25lU2hhcGUAAABErQEAGH8BALB/AQAAAAAAsH8BAFUDAABWAwAASwMAAGwBAABtAQAAbgEAAIECAACCAgAAUAEAAFABAABzAQAAhQIAAIYCAACHAgAAiAIAAHgBAACJAgAAUAEAAIsCAABQAQAAjQIAAEEDAABCAwAAMjFidENvbnZleEludGVybmFsU2hhcGUARK0BAJh/AQAwgAEAAAAAADCAAQBXAwAAWAMAAFABAABsAQAAbQEAAG4BAABQAQAAUAEAAFABAABQAQAAcwEAAFABAABQAQAARQMAAEYDAAB4AQAAUAEAAFABAACLAgAAUAEAAFABAABQAQAAUAEAADEzYnRDb252ZXhTaGFwZQBErQEAIIABADx+AQAAAAAA3IABAFkDAABaAwAAWwMAAGwBAABtAQAAbgEAAFwDAABdAwAAXgMAAF8DAABzAQAAhQIAAIYCAACHAgAAiAIAAHgBAABgAwAAYQMAAIsCAABiAwAAjQIAAEEDAABCAwAAkAIAAGMDAABkAwAAZQMAAGYDAABnAwAAaAMAAGkDAAAyNWJ0Q29udmV4VHJpYW5nbGVNZXNoU2hhcGUARK0BAMCAAQDMhQEAAAAAAByBAQBqAwAAawMAAGwDAAAyNkxvY2FsU3VwcG9ydFZlcnRleENhbGxiYWNrAAAAAEStAQD8gAEAkIgBAAAAAACkgQEAbQMAAG4DAABvAwAAbAEAAG0BAABuAQAAcAMAAIICAABxAwAAcgMAAHMDAAB0AwAAhgIAAHUDAAB2AwAAeAEAAHcDAAB4AwAAiwIAAHkDAACNAgAAQQMAAEIDAAB6AwAAMTVidEN5bGluZGVyU2hhcGUAAABErQEAkIEBALB/AQAAAAAAEIIBAHsDAAB8AwAAUAEAAGwBAABtAQAAbgEAAFABAABQAQAAUAEAAFABAABzAQAAIQMAACIDAABFAwAARgMAAHgBAABQAQAAMTRidENvbmNhdmVTaGFwZQAAAABErQEA/IEBADx+AQAAAAAAeIIBAH0DAAB+AwAAfwMAAGwBAABtAQAAbgEAAIADAACBAwAAggMAAIMDAABzAQAAIQMAACIDAABFAwAARgMAAHgBAACEAwAAMTJidEVtcHR5U2hhcGUAAEStAQBoggEAEIIBAAAAAADwggEAhQMAAIYDAACHAwAAbAEAAG0BAABuAQAAiAMAAIkDAACKAwAAiwMAAHMBAAAhAwAAIgMAAEUDAABGAwAAeAEAAIwDAACNAwAAMjVidEhlaWdodGZpZWxkVGVycmFpblNoYXBlAEStAQDUggEAEIIBAAAAAAA4gwEAjgMAAI8DAAAVAwAAFgMAABcDAAAYAwAAGQMAAJADAAAxNGJ0T3B0aW1pemVkQnZoAAAAAEStAQAkgwEA8HoBAAAAAAC8gwEAkQMAAJIDAACTAwAAWk4xNGJ0T3B0aW1pemVkQnZoNWJ1aWxkRVAyM2J0U3RyaWRpbmdNZXNoSW50ZXJmYWNlYlJLOWJ0VmVjdG9yM1M0X0UyOVF1YW50aXplZE5vZGVUcmlhbmdsZUNhbGxiYWNrAEStAQBYgwEAkIgBAAAAAAA4hAEAlAMAAJUDAACWAwAAWk4xNGJ0T3B0aW1pemVkQnZoNWJ1aWxkRVAyM2J0U3RyaWRpbmdNZXNoSW50ZXJmYWNlYlJLOWJ0VmVjdG9yM1M0X0UyME5vZGVUcmlhbmdsZUNhbGxiYWNrAABErQEA3IMBAJCIAQAAAAAAbIQBAJcDAACYAwAAMThidENvbnZleFBvbHloZWRyb24AAAAAHK0BAFSEAQAAAAAAmIUBAJkDAACaAwAASwMAAGwBAABtAQAAbgEAAIECAACCAgAAXgMAAFABAABzAQAAhQIAAIYCAACHAgAAiAIAAHgBAACJAgAAmwMAAIsCAACcAwAAjQIAAEEDAABCAwAAkAIAAFABAABQAQAAUAEAAFABAABQAQAAUAEAAFABAAAAAAAAzIUBAJ0DAACeAwAAWwMAAGwBAABtAQAAbgEAAJ8DAACCAgAAXgMAAFABAABzAQAAhQIAAIYCAACHAgAAiAIAAHgBAACJAgAAmwMAAIsCAACcAwAAjQIAAEEDAABCAwAAkAIAAFABAABQAQAAUAEAAFABAABQAQAAUAEAAFABAAAyM2J0UG9seWhlZHJhbENvbnZleFNoYXBlAAAARK0BAHyFAQCwfwEAMzRidFBvbHloZWRyYWxDb252ZXhBYWJiQ2FjaGluZ1NoYXBlAAAAAEStAQCkhQEAmIUBAAAAAABEhgEAoAMAAKEDAACiAwAAbAEAAG0BAABuAQAAowMAAKQDAAClAwAApgMAAHMBAAAhAwAAIgMAAKcDAACoAwAAeAEAAKkDAAAyOGJ0U2NhbGVkQnZoVHJpYW5nbGVNZXNoU2hhcGUAAEStAQAkhgEAEIIBAAAAAACAhgEAqgMAAKsDAACsAwAAMjRidFNjYWxlZFRyaWFuZ2xlQ2FsbGJhY2sAAEStAQBkhgEAUIgBAAAAAAAAhwEArQMAAK4DAACvAwAAbAEAAG0BAABuAQAAgQIAAIICAACwAwAAsQMAAHMBAACyAwAAswMAAIcCAACIAgAAeAEAALQDAAC1AwAAiwIAALYDAACNAgAAQQMAAEIDAAAxM2J0U3BoZXJlU2hhcGUARK0BAPCGAQCwfwEAAAAAAHCHAQC3AwAAuAMAALkDAABsAQAAbQEAAG4BAAC6AwAAuwMAALwDAAC9AwAAcwEAACEDAAAiAwAAvgMAAL8DAAB4AQAAwAMAADE4YnRTdGF0aWNQbGFuZVNoYXBlAAAAAEStAQBYhwEAEIIBAAAAAAAYiAEAwQMAAMIDAADDAwAAbAEAAG0BAABuAQAAnwMAAIICAABeAwAAxAMAAHMBAACFAgAAhgIAAIcCAACIAgAAeAEAAIkCAACbAwAAiwIAAJwDAACNAgAAQQMAAEIDAACQAgAAxQMAAMYDAADHAwAAyAMAAMkDAADKAwAAywMAAMwDAAAxNmJ0QlVfU2ltcGxleDF0bzQAAEStAQAEiAEAzIUBAAAAAABQiAEAzQMAAM4DAABQAQAAMThidFRyaWFuZ2xlQ2FsbGJhY2sAAAAAHK0BADiIAQAAAAAAkIgBAM8DAADQAwAAUAEAADMxYnRJbnRlcm5hbFRyaWFuZ2xlSW5kZXhDYWxsYmFjawAAABytAQBsiAEAAAAAAPiIAQDRAwAA0gMAANMDAABQAQAAUAEAAFABAABQAQAAUAEAAFABAABQAQAA1AMAANUDAADWAwAA1wMAANgDAAAyM2J0U3RyaWRpbmdNZXNoSW50ZXJmYWNlAAAAHK0BANyIAQAAAAAAZIkBANkDAADaAwAA0wMAANsDAADcAwAA3QMAAN4DAADfAwAA4AMAAOEDAADiAwAA4wMAAOQDAADXAwAA2AMAADI2YnRUcmlhbmdsZUluZGV4VmVydGV4QXJyYXkAAAAARK0BAESJAQD4iAEAAAAAAMiJAQDlAwAA5gMAANMDAADbAwAA3AMAAN0DAADeAwAA3wMAAOcDAADoAwAA4gMAAOMDAADkAwAA1wMAANgDAAAxNGJ0VHJpYW5nbGVNZXNoAAAAAEStAQC0iQEAZIkBAAAAAABAigEA6QMAAOoDAAAcAwAAbAEAAG0BAABuAQAA6wMAAB4DAAAfAwAA7AMAAHMBAAAhAwAAIgMAAEUDAABGAwAAeAEAAO0DAAAmAwAAJwMAADE5YnRUcmlhbmdsZU1lc2hTaGFwZQAAAEStAQAoigEAEIIBAAAAAADIigEA7gMAAO8DAADwAwAAWk5LMTlidFRyaWFuZ2xlTWVzaFNoYXBlMTlwcm9jZXNzQWxsVHJpYW5nbGVzRVAxOGJ0VHJpYW5nbGVDYWxsYmFja1JLOWJ0VmVjdG9yM1M0X0UxNkZpbHRlcmVkQ2FsbGJhY2sAAABErQEAYIoBAJCIAQAAAAAAAIsBAPEDAADyAwAA8wMAADIxU3VwcG9ydFZlcnRleENhbGxiYWNrAEStAQDoigEAUIgBAAAAAABAiwEA9AMAAPUDAAD2AwAAMjdidENvbnRpbnVvdXNDb252ZXhDb2xsaXNpb24AAABErQEAIIsBAKyLAQAAAAAAfIsBAPcDAAD4AwAA+QMAAPoDAAD7AwAAMTZidFBvaW50Q29sbGVjdG9yAABErQEAaIsBAFRlAQAAAAAArIsBAPwDAAD9AwAAUAEAADEyYnRDb252ZXhDYXN0AAAcrQEAnIsBAAAAAADciwEA/gMAAP8DAAAABAAAMTVidEdqa0NvbnZleENhc3QAAABErQEAyIsBAKyLAQABAAAAAgAAAAAAAAABAAAAAgAAAAAAAAABAAAAAgAAAAAAAAACAAAAAAAAAAEAAAAAAAAAUIwBAAMEAAAEBAAABQQAADMwYnRHamtFcGFQZW5ldHJhdGlvbkRlcHRoU29sdmVyAAAAAEStAQAsjAEAwGgBAAAAAACEjAEABgQAAAcEAAAIBAAAMTdidEdqa1BhaXJEZXRlY3RvcgBErQEAcIwBAMRzAQAAAAAAyIwBAAkEAAAKBAAACwQAADMzYnRNaW5rb3dza2lQZW5ldHJhdGlvbkRlcHRoU29sdmVyAEStAQCkjAEAwGgBAAAAAACcjQEADAQAAA0EAAAOBAAADwQAABAEAABaTjMzYnRNaW5rb3dza2lQZW5ldHJhdGlvbkRlcHRoU29sdmVyMTJjYWxjUGVuRGVwdGhFUjIyYnRWb3Jvbm9pU2ltcGxleFNvbHZlclBLMTNidENvbnZleFNoYXBlUzRfUksxMWJ0VHJhbnNmb3JtUzdfUjlidFZlY3RvcjNTOV9TOV9QMTJidElEZWJ1Z0RyYXdFMjBidEludGVybWVkaWF0ZVJlc3VsdAAARK0BAPCMAQBUZQEAAAAAAPSNAQARBAAAEgQAAC8CAABQAQAAAAAAACCOAQATBAAAFAQAADwCAABQAQAAMjVidFRyaWFuZ2xlUmF5Y2FzdENhbGxiYWNrAEStAQDYjQEAUIgBADI4YnRUcmlhbmdsZUNvbnZleGNhc3RDYWxsYmFjawAARK0BAACOAQBQiAEAAAAAAFyOAQAVBAAAFgQAABcEAAAyMmJ0U3Vic2ltcGxleENvbnZleENhc3QAAAAARK0BAECOAQCsiwEAAAAAALCOAQAYBAAAGQQAABoEAAAbBAAAHAQAAB0EAAAeBAAAHwQAACAEAAAhBAAAIgQAADE3YnRGaXhlZENvbnN0cmFpbnQARK0BAJyOAQAgjwEAAAAAACCPAQAjBAAAJAQAABoEAAAbBAAAHAQAAB0EAAAeBAAAHwQAACAEAAAhBAAAIgQAAAAAAAABAAAAAgAAADMwYnRHZW5lcmljNkRvZlNwcmluZzJDb25zdHJhaW50AAAAAEStAQD8jgEA9JABAAAAAAB4jwEAJQQAACYEAAAnBAAAGwQAACgEAAApBAAAHgQAACoEAAArBAAALAQAAC0EAAAuBAAAMTdidEhpbmdlQ29uc3RyYWludABErQEAZI8BAPSQAQAAAAAA2I8BAC8EAAAwBAAAMQQAABsEAAAyBAAAMwQAAB4EAAA0BAAANQQAADYEAAA3BAAAOAQAADIzYnRQb2ludDJQb2ludENvbnN0cmFpbnQAAABErQEAvI8BAPSQAQAAAAAAZJABADwEAAA9BAAAPgQAAD8EAABABAAAQQQAAEIEAABDBAAARAQAAEUEAABGBAAARwQAAEgEAAAzNWJ0U2VxdWVudGlhbEltcHVsc2VDb25zdHJhaW50U29sdmVyADE4YnRDb25zdHJhaW50U29sdmVyAAAcrQEARpABAEStAQAgkAEAXJABAAAAAABckAEASQQAAEoEAAA+BAAAUAEAAEAEAABQAQAAUAEAAAAAAAD0kAEATAQAAE0EAABOBAAAGwQAAFABAABQAQAAHgQAAFABAABQAQAATwQAAFAEAAAxN2J0VHlwZWRDb25zdHJhaW50ADEzYnRUeXBlZE9iamVjdAAcrQEA3JABAKCtAQDIkAEAAAAAAAEAAADskAEAAgQAAAAAAABAkQEAUQQAAFIEAAAWAgAAFwIAAFMEAABUBAAAVQQAADExYnRSaWdpZEJvZHkAAABErQEAMJEBANBlAQAAAAAAgJEBAFYEAABXBAAAWAQAAFkEAAAyNWJ0U2ltdWxhdGlvbklzbGFuZE1hbmFnZXIAHK0BAGSRAQAAAAAAhJIBAFoEAABbBAAAHQIAAB4CAAAfAgAAIAIAAFwEAAAiAgAAIwIAAF0EAABeBAAAJgIAAF8EAABgBAAAYQQAAGIEAABjBAAAZAQAAGUEAABmBAAAZwQAAGgEAABpBAAAagQAAGsEAABsBAAAbQQAAG4EAABvBAAAcAQAAHEEAAByBAAAcwQAAHQEAAB1BAAAdgQAAHcEAAB4BAAAeQQAAHoEAAB7BAAAfAQAAH0EAAB+BAAAfwQAAIAEAACBBAAAMjNidERpc2NyZXRlRHluYW1pY3NXb3JsZAAxNWJ0RHluYW1pY3NXb3JsZABErQEAZpIBAChmAQBErQEATJIBAHiSAQAAAAAAeJIBAIIEAACDBAAAHQIAAB4CAAAfAgAAIAIAAFABAAAiAgAAIwIAACQCAAAlAgAAJgIAACcCAABQAQAAhAQAAIUEAABQAQAAUAEAAFABAABQAQAAUAEAAFABAABQAQAAUAEAAFABAABQAQAAhgQAAIcEAACIBAAAUAEAAFABAACJBAAAigQAAIsEAACMBAAAAAAAAIyTAQCNBAAAjgQAAI8EAAAyN0lucGxhY2VTb2x2ZXJJc2xhbmRDYWxsYmFjawBOMjVidFNpbXVsYXRpb25Jc2xhbmRNYW5hZ2VyMTRJc2xhbmRDYWxsYmFja0UAHK0BAFaTAQBErQEAOJMBAISTAQAAAAAAhJMBAJAEAACRBAAAUAEAAAAAAADskwEAkgQAAJMEAACUBAAAlQQAADM0YnRDbG9zZXN0Tm90TWVDb252ZXhSZXN1bHRDYWxsYmFjawAAAABErQEAxJMBAACvAQAAAAAA3JQBAJYEAACXBAAAHQIAAB4CAAAfAgAAIAIAAFwEAAAiAgAAIwIAAF0EAABeBAAAJgIAAF8EAABgBAAAYQQAAGIEAABjBAAAZAQAAGUEAABmBAAAZwQAAGgEAABpBAAAagQAAGsEAABsBAAAbQQAAG4EAABvBAAAcAQAAHEEAAByBAAAcwQAAHQEAAB1BAAAdgQAAHcEAAB4BAAAeQQAAHoEAAB7BAAAmAQAAH0EAAB+BAAAmQQAAIAEAACBBAAATjJjYzIzY2NEaXNjcmV0ZUR5bmFtaWNzV29ybGRFAABErQEAvJQBAISSAQAAAAAAQJUBAJoEAACbBAAAnAQAAE4yY2MyM2NjT3ZlcmxhcEZpbHRlckNhbGxiYWNrRQAyM2J0T3ZlcmxhcEZpbHRlckNhbGxiYWNrAAAAABytAQAblQEARK0BAPyUAQA4lQEAAAAAADiVAQCdBAAAngQAAFABAAAAAAAAlJUBAJ8EAACgBAAAoQQAAKIEAACjBAAAMTlidEdob3N0UGFpckNhbGxiYWNrAAAARK0BAHyVAQBQYgEAAAAAAOSVAQCkBAAApQQAAKYEAACnBAAATjJjYzM0Y2NOb3RNZUNsb3Nlc3RDb252ZXhSZXN1bHRDYWxsYmFja0UAAABErQEAuJUBAACvAQAAAAAAWJYBAKgEAACqBAAAFgIAABcCAAAYAgAAGQIAABoCAACrBAAArAQAAAAAAACAlgEAqQQAAK0EAAAWAgAAFwIAABgCAAAZAgAAGgIAAK4EAACvBAAAMTNidEdob3N0T2JqZWN0AEStAQBIlgEA0GUBADI0YnRQYWlyQ2FjaGluZ0dob3N0T2JqZWN0AABErQEAZJYBAFiWAQAAAAAAIJcBALEEAACyBAAAswQAALQEAAC1BAAAUAEAAAAAAABMlwEAtgQAALcEAACzBAAAtAQAALUEAAC4BAAAAAAAAHSXAQC5BAAAugQAALMEAAC0BAAAtQQAALsEAAAyMWJ0Q2hhcmFjdGVyQ29udHJvbGxlcgAxN2J0QWN0aW9uSW50ZXJmYWNlABytAQAElwEARK0BAOyWAQAYlwEAMjhidENhcHN1bGVDaGFyYWN0ZXJDb250cm9sbGVyAABErQEALJcBACCXAQAyNGJ0Qm94Q2hhcmFjdGVyQ29udHJvbGxlcgAARK0BAFiXAQAglwEAAAAAAMiXAQC8BAAAvQQAAF4BAAC+BAAANDNidEtpbmVtYXRpY0Nsb3Nlc3ROb3RNZUNvbnZleFJlc3VsdENhbGxiYWNrAAAARK0BAJiXAQAArwEAAAAAABiXAQC/BAAAwAQAAFABAABQAQAATlN0M19fMjEyYmFzaWNfc3RyaW5nSWhOU18xMWNoYXJfdHJhaXRzSWhFRU5TXzlhbGxvY2F0b3JJaEVFRUUAABytAQDslwEATlN0M19fMjEyYmFzaWNfc3RyaW5nSXdOU18xMWNoYXJfdHJhaXRzSXdFRU5TXzlhbGxvY2F0b3JJd0VFRUUAABytAQA0mAEATlN0M19fMjEyYmFzaWNfc3RyaW5nSURzTlNfMTFjaGFyX3RyYWl0c0lEc0VFTlNfOWFsbG9jYXRvcklEc0VFRUUAAAAcrQEAfJgBAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0lEaU5TXzExY2hhcl90cmFpdHNJRGlFRU5TXzlhbGxvY2F0b3JJRGlFRUVFAAAAHK0BAMiYAQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0ljRUUAABytAQAUmQEATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJYUVFAAAcrQEAPJkBAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWhFRQAAHK0BAGSZAQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lzRUUAABytAQCMmQEATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJdEVFAAAcrQEAtJkBAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWlFRQAAHK0BANyZAQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lqRUUAABytAQAEmgEATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJbEVFAAAcrQEALJoBAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SW1FRQAAHK0BAFSaAQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l4RUUAABytAQB8mgEATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJeUVFAAAcrQEApJoBAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWZFRQAAHK0BAMyaAQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lkRUUAABytAQD0mgEA2w9JP9sPSb/kyxZA5MsWwAAAAAAAAACA2w9JQNsPScAAAAAAOGPtPtoPST9emHs/2g/JP2k3rDFoISIztA8UM2ghojMDAAAABAAAAAQAAAAGAAAAg/miAERObgD8KRUA0VcnAN009QBi28AAPJmVAEGQQwBjUf4Au96rALdhxQA6biQA0k1CAEkG4AAJ6i4AHJLRAOsd/gApsRwA6D6nAPU1ggBEuy4AnOmEALQmcABBfl8A1pE5AFODOQCc9DkAi1+EACj5vQD4HzsA3v+XAA+YBQARL+8AClqLAG0fbQDPfjYACcsnAEZPtwCeZj8ALepfALondQDl68cAPXvxAPc5BwCSUooA+2vqAB+xXwAIXY0AMANWAHv8RgDwq2sAILzPADb0mgDjqR0AXmGRAAgb5gCFmWUAoBRfAI1AaACA2P8AJ3NNAAYGMQDKVhUAyahzAHviYABrjMAAGcRHAM1nwwAJ6NwAWYMqAIt2xACmHJYARK/dABlX0QClPgUABQf/ADN+PwDCMugAmE/eALt9MgAmPcMAHmvvAJ/4XgA1HzoAf/LKAPGHHQB8kCEAaiR8ANVu+gAwLXcAFTtDALUUxgDDGZ0ArcTCACxNQQAMAF0Ahn1GAONxLQCbxpoAM2IAALTSfAC0p5cAN1XVANc+9gCjEBgATXb8AGSdKgBw16sAY3z4AHqwVwAXFecAwElWADvW2QCnhDgAJCPLANaKdwBaVCMAAB+5APEKGwAZzt8AnzH/AGYeagCZV2EArPtHAH5/2AAiZbcAMuiJAOa/YADvxM0AbDYJAF0/1AAW3tcAWDveAN6bkgDSIigAKIboAOJYTQDGyjIACOMWAOB9ywAXwFAA8x2nABjgWwAuEzQAgxJiAINIAQD1jlsArbB/AB7p8gBISkMAEGfTAKrd2ACuX0IAamHOAAoopADTmbQABqbyAFx3fwCjwoMAYTyIAIpzeACvjFoAb9e9AC2mYwD0v8sAjYHvACbBZwBVykUAytk2ACio0gDCYY0AEsl3AAQmFAASRpsAxFnEAMjFRABNspEAABfzANRDrQApSeUA/dUQAAC+/AAelMwAcM7uABM+9QDs8YAAs+fDAMf4KACTBZQAwXE+AC4JswALRfMAiBKcAKsgewAutZ8AR5LCAHsyLwAMVW0AcqeQAGvnHwAxy5YAeRZKAEF54gD034kA6JSXAOLmhACZMZcAiO1rAF9fNgC7/Q4ASJq0AGekbABxckIAjV0yAJ8VuAC85QkAjTElAPd0OQAwBRwADQwBAEsIaAAs7lgAR6qQAHTnAgC91iQA932mAG5IcgCfFu8AjpSmALSR9gDRU1EAzwryACCYMwD1S34AsmNoAN0+XwBAXQMAhYl/AFVSKQA3ZMAAbdgQADJIMgBbTHUATnHUAEVUbgALCcEAKvVpABRm1QAnB50AXQRQALQ72wDqdsUAh/kXAElrfQAdJ7oAlmkpAMbMrACtFFQAkOJqAIjZiQAsclAABKS+AHcHlADzMHAAAPwnAOpxqABmwkkAZOA9AJfdgwCjP5cAQ5T9AA2GjAAxQd4AkjmdAN1wjAAXt+cACN87ABU3KwBcgKAAWoCTABARkgAP6NgAbICvANv/SwA4kA8AWRh2AGKlFQBhy7sAx4m5ABBAvQDS8gQASXUnAOu29gDbIrsAChSqAIkmLwBkg3YACTszAA6UGgBROqoAHaPCAK/trgBcJhIAbcJNAC16nADAVpcAAz+DAAnw9gArQIwAbTGZADm0BwAMIBUA2MNbAPWSxADGrUsATsqlAKc3zQDmqTYAq5KUAN1CaAAZY94AdozvAGiLUgD82zcArqGrAN8VMQAArqEADPvaAGRNZgDtBbcAKWUwAFdWvwBH/zoAavm5AHW+8wAok98Aq4AwAGaM9gAEyxUA+iIGANnkHQA9s6QAVxuPADbNCQBOQukAE76kADMjtQDwqhoAT2WoANLBpQALPw8AW3jNACP5dgB7iwQAiRdyAMamUwBvbuIA7+sAAJtKWADE2rcAqma6AHbPzwDRAh0AsfEtAIyZwQDDrXcAhkjaAPddoADGgPQArPAvAN3smgA/XLwA0N5tAJDHHwAq27YAoyU6AACvmgCtU5MAtlcEACkttABLgH4A2genAHaqDgB7WaEAFhIqANy3LQD65f0Aidv+AIm+/QDkdmwABqn8AD6AcACFbhUA/Yf/ACg+BwBhZzMAKhiGAE296gCz568Aj21uAJVnOQAxv1sAhNdIADDfFgDHLUMAJWE1AMlwzgAwy7gAv2z9AKQAogAFbOQAWt2gACFvRwBiEtIAuVyEAHBhSQBrVuAAmVIBAFBVNwAe1bcAM/HEABNuXwBdMOQAhS6pAB2ywwChMjYACLekAOqx1AAW9yEAj2nkACf/dwAMA4AAjUAtAE/NoAAgpZkAs6LTAC9dCgC0+UIAEdrLAH2+0ACb28EAqxe9AMqigQAIalwALlUXACcAVQB/FPAA4QeGABQLZACWQY0Ah77eANr9KgBrJbYAe4k0AAXz/gC5v54AaGpPAEoqqABPxFoALfi8ANdamAD0x5UADU2NACA6pgCkV18AFD+xAIA4lQDMIAEAcd2GAMnetgC/YPUATWURAAEHawCMsKwAssDQAFFVSAAe+w4AlXLDAKMGOwDAQDUABtx7AOBFzABOKfoA1srIAOjzQQB8ZN4Am2TYANm+MQCkl8MAd1jUAGnjxQDw2hMAujo8AEYYRgBVdV8A0r31AG6SxgCsLl0ADkTtABw+QgBhxIcAKf3pAOfW8wAifMoAb5E1AAjgxQD/140AbmriALD9xgCTCMEAfF10AGutsgDNbp0APnJ7AMYRagD3z6kAKXPfALXJugC3AFEA4rINAHS6JADlfWAAdNiKAA0VLACBGAwAfmaUAAEpFgCfenYA/f2+AFZF7wDZfjYA7NkTAIu6uQDEl/wAMagnAPFuwwCUxTYA2KhWALSotQDPzA4AEoktAG9XNAAsVokAmc7jANYguQBrXqoAPiqcABFfzAD9C0oA4fT7AI47bQDihiwA6dSEAPy0qQDv7tEALjXJAC85YQA4IUQAG9nIAIH8CgD7SmoALxzYAFO0hABOmYwAVCLMACpV3ADAxtYACxmWABpwuABplWQAJlpgAD9S7gB/EQ8A9LURAPzL9QA0vC0ANLzuAOhdzADdXmAAZ46bAJIz7wDJF7gAYVibAOFXvABRg8YA2D4QAN1xSAAtHN0ArxihACEsRgBZ89cA2XqYAJ5UwABPhvoAVgb8AOV5rgCJIjYAOK0iAGeT3ABV6KoAgiY4AMrnmwBRDaQAmTOxAKnXDgBpBUgAZbLwAH+IpwCITJcA+dE2ACGSswB7gkoAmM8hAECf3ADcR1UA4XQ6AGfrQgD+nd8AXtRfAHtnpAC6rHoAVfaiACuIIwBBulUAWW4IACEqhgA5R4MAiePmAOWe1ABJ+0AA/1bpABwPygDFWYoAlPorANPBxQAPxc8A21quAEfFhgCFQ2IAIYY7ACx5lAAQYYcAKkx7AIAsGgBDvxIAiCaQAHg8iQCoxOQA5dt7AMQ6wgAm9OoA92eKAA2SvwBloysAPZOxAL18CwCkUdwAJ91jAGnh3QCalBkAqCmVAGjOKAAJ7bQARJ8gAE6YygBwgmMAfnwjAA+5MgCn9Y4AFFbnACHxCAC1nSoAb35NAKUZUQC1+asAgt/WAJbdYQAWNgIAxDqfAIOioQBy7W0AOY16AIK4qQBrMlwARidbAAA07QDSAHcA/PRVAAFZTQDgcYAAAAAAAAAAAAAAAABA+yH5PwAAAAAtRHQ+AAAAgJhG+DwAAABgUcx4OwAAAICDG/A5AAAAQCAlejgAAACAIoLjNgAAAAAd82k1AAAAAAAA8D90hRXTsNnvPw+J+WxYte8/UVsS0AGT7z97UX08uHLvP6q5aDGHVO8/OGJ1bno47z/h3h/1nR7vPxW3MQr+Bu8/y6k6N6fx7j8iNBJMpt7uPy2JYWAIzu4/Jyo21dq/7j+CT51WK7TuPylUSN0Hq+4/hVU6sH6k7j/NO39mnqDuP3Rf7Oh1n+4/hwHrcxSh7j8TzkyZiaXuP9ugKkLlrO4/5cXNsDe37j+Q8KOCkcTuP10lPrID1e4/rdNamZ/o7j9HXvvydv/uP5xShd2bGe8/aZDv3CA37z+HpPvcGFjvP1+bezOXfO8/2pCkoq+k7z9ARW5bdtDvPwAAAAAAAOhClCORS/hqrD/zxPpQzr/OP9ZSDP9CLuY/AAAAAAAAOEP+gitlRxVHQJQjkUv4arw+88T6UM6/Lj/WUgz/Qi6WP77z+HnsYfY/GTCWW8b+3r89iK9K7XH1P6T81DJoC9u/sBDw8DmV9D97tx8Ki0HXv4UDuLCVyfM/e89tGumd07+lZIgMGQ3zPzG28vObHdC/oI4LeyJe8j/wejsbHXzJvz80GkpKu/E/nzyvk+P5wr+65YrwWCPxP1yNeL/LYLm/pwCZQT+V8D/OX0e2nW+qvwAAAAAAAPA/AAAAAAAAAACsR5r9jGDuPz31JJ/KOLM/oGoCH7Ok7D+6kThUqXbEP+b8alc2IOs/0uTESguEzj8tqqFj0cLpPxxlxvBFBtQ/7UF4A+aG6D/4nxssnI7YP2JIU/XcZ+c/zHuxTqTg3D8LbknJFnbSP3rGdaBpGde/3bqnbArH3j/I9r5IRxXnvyu4KmVHFfc/GQAKABkZGQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAAZABEKGRkZAwoHAAEACQsYAAAJBgsAAAsABhkAAAAZGRkAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAGQAKDRkZGQANAAACAAkOAAAACQAOAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAABMAAAAAEwAAAAAJDAAAAAAADAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAPAAAABA8AAAAACRAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAAEQAAAAARAAAAAAkSAAAAAAASAAASAAAaAAAAGhoaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAAAAaGhoAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAXAAAAABcAAAAACRQAAAAAABQAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAAAAAAAAAAAFQAAAAAVAAAAAAkWAAAAAAAWAAAWAAAwMTIzNDU2Nzg5QUJDREVGcLkBAE4xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAAAAAEStAQDUqgEAIK4BAE4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQAAAEStAQAEqwEA+KoBAE4xMF9fY3h4YWJpdjExN19fcGJhc2VfdHlwZV9pbmZvRQAAAEStAQA0qwEA+KoBAE4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FAEStAQBkqwEAWKsBAE4xMF9fY3h4YWJpdjEyMF9fZnVuY3Rpb25fdHlwZV9pbmZvRQAAAABErQEAlKsBAPiqAQBOMTBfX2N4eGFiaXYxMjlfX3BvaW50ZXJfdG9fbWVtYmVyX3R5cGVfaW5mb0UAAABErQEAyKsBAFirAQAAAAAASKwBAMkEAADKBAAAywQAAMwEAADNBAAATjEwX19jeHhhYml2MTIzX19mdW5kYW1lbnRhbF90eXBlX2luZm9FAEStAQAgrAEA+KoBAHYAAAAMrAEAVKwBAERuAAAMrAEAYKwBAGIAAAAMrAEAbKwBAGMAAAAMrAEAeKwBAGgAAAAMrAEAhKwBAGEAAAAMrAEAkKwBAHMAAAAMrAEAnKwBAHQAAAAMrAEAqKwBAGkAAAAMrAEAtKwBAGoAAAAMrAEAwKwBAGwAAAAMrAEAzKwBAG0AAAAMrAEA2KwBAHgAAAAMrAEA5KwBAHkAAAAMrAEA8KwBAGYAAAAMrAEA/KwBAGQAAAAMrAEACK0BAAAAAAAoqwEAyQQAAM4EAADLBAAAzAQAAM8EAADQBAAA0QQAANIEAAAAAAAAjK0BAMkEAADTBAAAywQAAMwEAADPBAAA1AQAANUEAADWBAAATjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9FAAAAAEStAQBkrQEAKKsBAAAAAADorQEAyQQAANcEAADLBAAAzAQAAM8EAADYBAAA2QQAANoEAABOMTBfX2N4eGFiaXYxMjFfX3ZtaV9jbGFzc190eXBlX2luZm9FAAAARK0BAMCtAQAoqwEAAAAAAIirAQDJBAAA2wQAAMsEAADMBAAA3AQAAFN0OXR5cGVfaW5mbwAAAAAcrQEAEK4BAA=="); + base64DecodeToExistingUint8Array(bufferView, 110128, "AAAAAFyuAQBGAQAARwEAAEgBAABJAQAAHK0BAJ9aAQBErQEAcFoBAEiuAQBErQEATloBAFCuAQAAAAAAUK4BAEoBAABLAQAATAEAAE0BAAAAAAAASK4BAE4BAABPAQAATAEAAFABAAAAAAAAvK4BAFEBAABSAQAAUwEAAFQBAABErQEA6VoBAEiuAQBErQEAx1oBALCuAQAAAAAAsK4BAFUBAABWAQAATAEAAFcBAAAAAAAADK8BAFgBAABZAQAAWgEAAFsBAAAcrQEAb1sBAEStAQA9WwEA+K4BAEStAQAYWwEAAK8BAAAAAAAArwEAXAEAAF0BAABeAQAAXwEAAAAAAAD4rgEAYAEAAGEBAABeAQAAUAEAAAAAAABsrwEAYgEAAGMBAABkAQAAZQEAAEStAQC/WwEA+K4BAEStAQCaWwEAYK8BAAAAAABgrwEAZgEAAGcBAABeAQAAaAEAAAAAAADgrwEAaQEAAGoBAABrAQAAbAEAAG0BAABuAQAAbwEAAHABAABxAQAAcgEAAHMBAAB0AQAAdQEAAHYBAAB3AQAAeAEAAHkBAAB6AQAARK0BAPFbAQCofgEAHK0BAAhcAQAAAAAA7K8BAHsBAAB8AQAAUAEAAFABAAAcrQEAJlwBAEStAQAYXAEADLABAPytAQA1XAEAAAAAABSwAQD8rQEARFwBAAEAAAAUsAEAWKwBAEiwAQD8rQEAXFwBAAAAAAAMsAEAAAAAAAAAAABYrAEAILABALisAQC4rAEAuKwBABytAQCyXAEAoK0BAIxcAQAAAAAAAgAAABSwAQACAAAAdLABAAKIAABErQEAd1wBAHywAQD8rQEA11wBAAAAAACcsAEA/K0BAO1cAQABAAAAnLABAFisAQCcsAEAqLABANiwAQAcrQEABF0BAAAAAACcsAEAfQEAAH4BAAB/AQAAgAEAAIEBAACCAQAAgwEAAIQBAACFAQAAhgEAAIcBAACIAQAAiQEAAIoBAACLAQAAjAEAAI0BAACOAQAAjwEAAJABAACRAQAAkgEAAJMBAACUAQAAlQEAAJYBAACXAQAAmAEAAAAAAAB8sAEAmQEAAJoBAAB/AQAAgAEAAIEBAACCAQAAgwEAAIQBAACFAQAAhgEAAIcBAACIAQAAiQEAAIoBAACLAQAAjAEAAI0BAACOAQAAjwEAAJABAACRAQAAkgEAAJMBAACUAQAAlQEAAJsBAACcAQAAUAEAAAAAAAAUsAEAnQEAAJ4BAAB/AQAAgAEAAIEBAACCAQAAgwEAAIQBAACFAQAAhgEAAIcBAACIAQAAiQEAAIoBAACLAQAAjAEAAI0BAACOAQAAjwEAAJABAACRAQAAkgEAAJMBAACUAQAAlQEAAJsBAACcAQAAUAEAAAAAAAAMsAEAnwEAAKABAAChAQAAogEAAFABAACCAQAAgwEAAIQBAACFAQAAhgEAAFABAABQAQAAUAEAAFABAABQAQAAjAEAAI0BAACOAQAAjwEAAJABAACRAQAAkgEAAJMBAACUAQAAlQEAAJsBAACcAQAAWKwBAFisAQC4rAEAuKwBALisAQDYsAEA3LIBANiwAQAcrQEAG10BABytAQB3XQEARK0BAF9dAQDksgEA/K0BAJNdAQAAAAAA7LIBAPytAQCsXQEAAQAAAOyyAQAAAAAAAAAAAFisAQD4sgEAuKwBALisAQCgrQEA610BAAAAAAACAAAA7LIBAAIAAAB0sAEAAgQAAEStAQDMXQEAMLMBAPytAQAbXgEAAAAAAFCzAQD8rQEAO14BAAEAAABQswEAWKwBAFCzAQBcswEA2LABAAAAAABQswEAowEAAKQBAAClAQAApgEAAKcBAAAAAAAAMLMBAKMBAACkAQAAqAEAAKkBAABQAQAAAAAAAOyyAQCjAQAApAEAAKoBAACrAQAAUAEAAAAAAADksgEAUAEAAFABAACsAQAArQEAAFisAQC4rAEAuKwBAEStAQBcXgEA7K8BAPytAQBxXgEAAAAAAAS0AQD8rQEAh14BAAEAAAAEtAEAWKwBABC0AQC4rAEAoK0BALpeAQAAAAAAAgAAAAS0AQACAAAAdLABAAJIAABErQEAo14BADy0AQD8rQEA514BAAAAAABctAEA/K0BAP9eAQABAAAAXLQBAFisAQBctAEAaLQBANiwAQAAAAAAXLQBAK4BAACvAQAAsAEAALEBAACyAQAAAAAAADy0AQCzAQAAtAEAALABAACxAQAAUAEAAAAAAAAEtAEAtQEAALYBAACwAQAAsQEAAFABAABYrAEAuKwBALisAQC4rAEAWKwBALisAQAArQEAuKwBAFisAQC4rAEAAK0BAFisAQC4rAEAuKwBAAAAAAAAAAAAAAAAALisAQAArQEAAK0BAACtAQBYrAEAuKwBAACtAQAArQEAAK0BAAAAAAAAAAAAAAAAALisAQAArQEAAK0BAACtAQAArQEAAAAAAAAAAAAAAAAAWKwBALisAQAArQEAAK0BAACtAQAArQEAuKwBALisAQC4rAEAuKwBAAAAAAAAAAAAWKwBALisAQC4rAEAuKwBALisAQC4rAEAuKwBALisAQC4rAEAAAAAAAAAAAAAAAAAWKwBALisAQAArQEAAK0BAACtAQAArQEAAK0BAFisAQC4rAEAcKwBAAAAAAAAAAAAWKwBALisAQAArQEAAK0BALisAQC4rAEAuKwBALisAQC4rAEAuKwBAAAAAAAAAAAAWKwBALisAQC4rAEAAK0BAACtAQAAAAAAAAAAAAAAAABYrAEAuKwBALisAQBwrAEAWKwBALisAQC4rAEAAK0BAHCsAQC4rAEAAAAAAAAAAABYrAEAuKwBAACtAQC4rAEAWKwBALisAQC4rAEAuKwBALisAQC4rAEAAK0BAAAAAABYrAEAuKwBAACtAQAArQEAuKwBALisAQAArQEAAK0BALisAQC4rAEAAK0BAAAAAAC4rAEAuKwBALisAQC4rAEAAK0BAACtAQAArQEAAAAAAFisAQC4rAEAuKwBALisAQC4rAEAcKwBAAAAAAAAAAAAuKwBALisAQBwrAEAcKwBAFisAQC4rAEAuKwBAACtAQAArQEAAK0BAAAAAAAAAAAAuKwBALisAQAArQEAAK0BAACtAQAAAAAAAAAAAAAAAABYrAEAuKwBALisAQC4rAEAcKwBALisAQAArQEAuKwBAFisAQC4rAEAuKwBAMSsAQDErAEAAAAAAAAAAAAAAAAAWKwBALisAQC4rAEAuKwBALisAQC4rAEAAK0BAAAAAAC4rAEAuKwBALisAQC4rAEAWKwBALisAQAArQEAuKwBAACtAQAAAAAAAAAAAAAAAABYrAEAuKwBALisAQC4rAEAxKwBAHCsAQAAAAAAAAAAALisAQC4rAEAuKwBAACtAQAArQEAAAAAAAAAAAAAAAAAuKwBAACtAQAArQEAAK0BALisAQC4rAEAuKwBAACtAQAArQEAAAAAAAAAAAAAAAAAuKwBAACtAQAArQEAAK0BALisAQC4rAEAuKwBAACtAQAArQEAAK0BALcBAAC4AQAAuQEAALoBAADdAQAA3gEAAAEAAABvEoM6CtejPAEBAAAAAABAIAAAAAUAAAAAAAAAAAAAAMIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMMEAADEBAAAKMYBAAAEAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAD/////CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANi4AQDwzAEABQAAAAAAAAAAAAAAxwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwwQAAMgEAADkzAEAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcLkBAA=="); + base64DecodeToExistingUint8Array(bufferView, 113168, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"); +} + + var scratchBuffer = new ArrayBuffer(16); + var i32ScratchView = new Int32Array(scratchBuffer); + var f32ScratchView = new Float32Array(scratchBuffer); + var f64ScratchView = new Float64Array(scratchBuffer); + + function wasm2js_scratch_load_i32(index) { + return i32ScratchView[index]; + } + + function wasm2js_scratch_store_i32(index, value) { + i32ScratchView[index] = value; + } + + function wasm2js_scratch_load_f64() { + return f64ScratchView[0]; + } + + function wasm2js_scratch_store_f64(value) { + f64ScratchView[0] = value; + } + function wasm2js_trap() { throw new Error('abort'); } + + function wasm2js_scratch_store_f32(value) { + f32ScratchView[2] = value; + } + + function wasm2js_scratch_load_f32() { + return f32ScratchView[2]; + } + +function asmFunc(imports) { + var env = imports.env; + var memory = env.memory; + var buffer = memory.buffer; + memory.grow = __wasm_memory_grow; + var HEAP8 = new Int8Array(buffer); + var HEAP16 = new Int16Array(buffer); + var HEAP32 = new Int32Array(buffer); + var HEAPU8 = new Uint8Array(buffer); + var HEAPU16 = new Uint16Array(buffer); + var HEAPU32 = new Uint32Array(buffer); + var HEAPF32 = new Float32Array(buffer); + var HEAPF64 = new Float64Array(buffer); + var Math_imul = Math.imul; + var Math_fround = Math.fround; + var Math_abs = Math.abs; + var Math_clz32 = Math.clz32; + var Math_min = Math.min; + var Math_max = Math.max; + var Math_floor = Math.floor; + var Math_ceil = Math.ceil; + var Math_trunc = Math.trunc; + var Math_sqrt = Math.sqrt; + var __assert_fail = env.__assert_fail; + var _embind_register_class = env._embind_register_class; + var _embind_register_class_class_function = env._embind_register_class_class_function; + var _embind_register_function = env._embind_register_function; + var _embind_register_class_function = env._embind_register_class_function; + var _embind_create_inheriting_constructor = env._embind_create_inheriting_constructor; + var _emval_decref = env._emval_decref; + var _emval_call_void_method = env._emval_call_void_method; + var _emval_get_method_caller = env._emval_get_method_caller; + var _emval_incref = env._emval_incref; + var _embind_register_void = env._embind_register_void; + var _embind_register_bool = env._embind_register_bool; + var _embind_register_integer = env._embind_register_integer; + var _embind_register_float = env._embind_register_float; + var _embind_register_std_string = env._embind_register_std_string; + var _embind_register_std_wstring = env._embind_register_std_wstring; + var _embind_register_emval = env._embind_register_emval; + var _embind_register_memory_view = env._embind_register_memory_view; + var emscripten_memcpy_big = env.emscripten_memcpy_big; + var wasi_snapshot_preview1 = imports.wasi_snapshot_preview1; + var __wasi_fd_write = wasi_snapshot_preview1.fd_write; + var emscripten_resize_heap = env.emscripten_resize_heap; + var abort = env.abort; + var __wasi_fd_close = wasi_snapshot_preview1.fd_close; + var legalimport$_embind_register_bigint = env._embind_register_bigint; + var legalimport$__wasi_fd_seek = wasi_snapshot_preview1.fd_seek; + var __stack_pointer = 65536; + var __stack_end = 0; + var __stack_base = 0; + var tempRet0 = 0; + var GOT_data_internal___memory_base = 0; + var GOT_data_internal___table_base = 1; + var GOT_data_internal_vtable_20for_20cc__ccClosestRayResultCallback = 110128; + var GOT_data_internal_vtable_20for_20btCollisionWorld__ClosestRayResultCallback = 110184; + var GOT_data_internal_vtable_20for_20cc__ccAllHitsRayResultCallback = 110232; + var GOT_data_internal_vtable_20for_20btCollisionWorld__AllHitsRayResultCallback = 110280; + var GOT_data_internal_vtable_20for_20cc__ccClosestConvexResultCallback = 110304; + var GOT_data_internal_vtable_20for_20btCollisionWorld__ClosestConvexResultCallback = 110360; + var GOT_data_internal_vtable_20for_20cc__ccAllHitsConvexResultCallback = 110408; + var GOT_data_internal_vtable_20for_20btCollisionWorld__AllHitsConvexResultCallback = 110456; + var GOT_data_internal_vtable_20for_20btSphereShape = 99980; + var GOT_data_internal_vtable_20for_20cc__ccCompoundShape = 110480; + var GOT_data_internal_gDisableDeactivation = 116124; + var GOT_data_internal_vtable_20for_20btMotionState = 110580; + var GOT_data_internal_gDeactivationTime = 112848; + var GOT_func_internal_void_20const__20emscripten__internal__getActualType_btDebugDraw__28btDebugDraw__29 = 9; + var GOT_func_internal_void_20emscripten__internal__raw_destructor_btDebugDraw__28btDebugDraw__29 = 10; + var GOT_func_internal_void_20const__20emscripten__internal__getActualType_btDebugDrawWrapper__28btDebugDrawWrapper__29 = 11; + var GOT_func_internal_void_20emscripten__internal__raw_destructor_btDebugDrawWrapper__28btDebugDrawWrapper__29 = 12; + var GOT_func_internal_btDebugDrawWrapper__20emscripten__internal__wrapped_new_btDebugDrawWrapper__2c_20btDebugDrawWrapper_2c_20emscripten__val__28emscripten__val___29 = 13; + var GOT_func_internal_emscripten__internal__Invoker_btDebugDrawWrapper__2c_20emscripten__val_____invoke_28btDebugDrawWrapper__20_28__29_28emscripten__val___29_2c_20emscripten___EM_VAL__29 = 14; + var GOT_func_internal_emscripten__val_20emscripten__internal__wrapped_extend_btDebugDrawWrapper__28std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const__29 = 15; + var GOT_func_internal_emscripten__internal__Invoker_emscripten__val_2c_20std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const____invoke_28emscripten__val_20_28__29_28std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const__29_2c_20emscripten__internal__BindingType_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___2c_20void____unnamed___2c_20emscripten___EM_VAL__29 = 16; + var GOT_func_internal_void_20const__20emscripten__internal__getActualType_btControllerHitReport__28btControllerHitReport__29 = 17; + var GOT_func_internal_void_20emscripten__internal__raw_destructor_btControllerHitReport__28btControllerHitReport__29 = 18; + var GOT_func_internal_void_20const__20emscripten__internal__getActualType_btControllerHitReportWrapper__28btControllerHitReportWrapper__29 = 19; + var GOT_func_internal_void_20emscripten__internal__raw_destructor_btControllerHitReportWrapper__28btControllerHitReportWrapper__29 = 20; + var GOT_func_internal_btControllerHitReportWrapper__20emscripten__internal__wrapped_new_btControllerHitReportWrapper__2c_20btControllerHitReportWrapper_2c_20emscripten__val__28emscripten__val___29 = 21; + var GOT_func_internal_emscripten__internal__Invoker_btControllerHitReportWrapper__2c_20emscripten__val_____invoke_28btControllerHitReportWrapper__20_28__29_28emscripten__val___29_2c_20emscripten___EM_VAL__29 = 22; + var GOT_func_internal_emscripten__val_20emscripten__internal__wrapped_extend_btControllerHitReportWrapper__28std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const__29 = 23; + var GOT_func_internal_void_20const__20emscripten__internal__getActualType_cc__ccMotionState__28cc__ccMotionState__29 = 24; + var GOT_func_internal_void_20emscripten__internal__raw_destructor_cc__ccMotionState__28cc__ccMotionState__29 = 25; + var GOT_func_internal_void_20const__20emscripten__internal__getActualType_ccMotionStateWrapper__28ccMotionStateWrapper__29 = 26; + var GOT_func_internal_void_20emscripten__internal__raw_destructor_ccMotionStateWrapper__28ccMotionStateWrapper__29 = 27; + var GOT_func_internal_ccMotionStateWrapper__20emscripten__internal__wrapped_new_ccMotionStateWrapper__2c_20ccMotionStateWrapper_2c_20emscripten__val__28emscripten__val___29 = 28; + var GOT_func_internal_emscripten__internal__Invoker_ccMotionStateWrapper__2c_20emscripten__val_____invoke_28ccMotionStateWrapper__20_28__29_28emscripten__val___29_2c_20emscripten___EM_VAL__29 = 29; + var GOT_func_internal_emscripten__val_20emscripten__internal__wrapped_extend_ccMotionStateWrapper__28std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const__29 = 30; + var GOT_func_internal__malloc_28int_29 = 31; + var GOT_func_internal__free_28int_29 = 32; + var GOT_func_internal__read_f32_28int_29 = 33; + var GOT_func_internal__write_f32_28int_2c_20float_29 = 34; + var GOT_func_internal__safe_delete_28int_2c_20int_29 = 35; + var GOT_func_internal_Vec3_new_28float_2c_20float_2c_20float_29 = 36; + var GOT_func_internal_Vec3_x_28int_29 = 37; + var GOT_func_internal_Vec3_y_28int_29 = 38; + var GOT_func_internal_Vec3_z_28int_29 = 39; + var GOT_func_internal_Vec3_set_28int_2c_20float_2c_20float_2c_20float_29 = 40; + var GOT_func_internal_Quat_new_28float_2c_20float_2c_20float_2c_20float_29 = 41; + var GOT_func_internal_Quat_x_28int_29 = 42; + var GOT_func_internal_Quat_y_28int_29 = 43; + var GOT_func_internal_Quat_z_28int_29 = 44; + var GOT_func_internal_Quat_w_28int_29 = 45; + var GOT_func_internal_Quat_set_28int_2c_20float_2c_20float_2c_20float_2c_20float_29 = 46; + var GOT_func_internal_Transform_new_28_29 = 47; + var GOT_func_internal_Transform_setIdentity_28int_29 = 48; + var GOT_func_internal_Transform_setRotation_28int_2c_20int_29 = 49; + var GOT_func_internal_Transform_getOrigin_28int_29 = 50; + var GOT_func_internal_Transform_getRotation_28int_2c_20int_29 = 51; + var GOT_func_internal_Transform_getRotationAndOrigin_28int_2c_20int_29 = 52; + var GOT_func_internal_MotionState_getWorldTransform = 53; + var GOT_func_internal_MotionState_setWorldTransform = 54; + var GOT_func_internal_ccMotionState_setup = 55; + var GOT_func_internal_int_array_size_28int_29 = 56; + var GOT_func_internal_int_array_at_28int_2c_20int_29 = 57; + var GOT_func_internal_Vec3_array_at_28int_2c_20int_29 = 58; + var GOT_func_internal_TypedConstraint_getFixedBody_28_29 = 59; + var GOT_func_internal_TypedConstraint_getDbgDrawSize_28int_29 = 60; + var GOT_func_internal_TypedConstraint_setDbgDrawSize_28int_2c_20float_29 = 61; + var GOT_func_internal_TypedConstraint_setMaxImpulseThreshold_28int_2c_20float_29 = 62; + var GOT_func_internal_HingeConstraint_new_28int_2c_20int_2c_20int_2c_20int_29 = 63; + var GOT_func_internal_HingeConstraint_setFrames_28int_2c_20int_2c_20int_29 = 64; + var GOT_func_internal_HingeConstraint_setLimit_28int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float_29 = 65; + var GOT_func_internal_HingeConstraint_enableMotor_28int_2c_20bool_29 = 66; + var GOT_func_internal_HingeConstraint_setAngularOnly_28int_2c_20bool_29 = 67; + var GOT_func_internal_HingeConstraint_setMaxMotorImpulse_28int_2c_20float_29 = 68; + var GOT_func_internal_HingeConstraint_setMotorTarget_28int_2c_20float_2c_20float_29 = 69; + var GOT_func_internal_HingeConstraint_setMotorVelocity_28int_2c_20float_29 = 70; + var GOT_func_internal_P2PConstraint_new_28int_2c_20int_2c_20int_2c_20int_29 = 71; + var GOT_func_internal_P2PConstraint_setPivotA_28int_2c_20int_29 = 72; + var GOT_func_internal_P2PConstraint_setPivotB_28int_2c_20int_29 = 73; + var GOT_func_internal_FixedConstraint_new_28int_2c_20int_2c_20int_2c_20int_29 = 74; + var GOT_func_internal_FixedConstraint_setFrames_28int_2c_20int_2c_20int_29 = 75; + var GOT_func_internal_Generic6DofSpring2Constraint_new_28int_2c_20int_2c_20int_2c_20int_2c_20int_29 = 76; + var GOT_func_internal_Generic6DofSpring2Constraint_setFrames_28int_2c_20int_2c_20int_29 = 77; + var GOT_func_internal_Generic6DofSpring2Constraint_setLimit_28int_2c_20int_2c_20float_2c_20float_29 = 78; + var GOT_func_internal_Generic6DofSpring2Constraint_enableSpring_28int_2c_20int_2c_20bool_29 = 79; + var GOT_func_internal_Generic6DofSpring2Constraint_setStiffness_28int_2c_20int_2c_20float_29 = 80; + var GOT_func_internal_Generic6DofSpring2Constraint_setDamping_28int_2c_20int_2c_20float_29 = 81; + var GOT_func_internal_Generic6DofSpring2Constraint_setBounce_28int_2c_20int_2c_20float_29 = 82; + var GOT_func_internal_Generic6DofSpring2Constraint_setEquilibriumPoint_28int_2c_20int_2c_20float_29 = 83; + var GOT_func_internal_Generic6DofSpring2Constraint_enableMotor_28int_2c_20int_2c_20bool_29 = 84; + var GOT_func_internal_Generic6DofSpring2Constraint_setMaxMotorForce_28int_2c_20int_2c_20float_29 = 85; + var GOT_func_internal_Generic6DofSpring2Constraint_setTargetVelocity_28int_2c_20int_2c_20float_29 = 86; + var GOT_func_internal_Generic6DofSpring2Constraint_setServo_28int_2c_20int_2c_20bool_29 = 87; + var GOT_func_internal_Generic6DofSpring2Constraint_setServoTarget_28int_2c_20int_2c_20float_29 = 88; + var GOT_func_internal_CollisionShape_isCompound_28int_29 = 89; + var GOT_func_internal_CollisionShape_setLocalScaling_28int_2c_20int_29 = 90; + var GOT_func_internal_CollisionShape_calculateLocalInertia_28int_2c_20float_2c_20int_29 = 91; + var GOT_func_internal_CollisionShape_getAabb_28int_2c_20int_2c_20int_2c_20int_29 = 92; + var GOT_func_internal_CollisionShape_setMargin_28int_2c_20float_29 = 93; + var GOT_func_internal_CollisionShape_setMaterial_28int_2c_20int_29 = 94; + var GOT_func_internal_CollisionShape_setUserPointer_28int_2c_20int_29 = 95; + var GOT_func_internal_EmptyShape_static_28_29 = 96; + var GOT_func_internal_ConvexInternalShape_getImplicitShapeDimensions_28int_29 = 97; + var GOT_func_internal_BoxShape_new_28int_29 = 98; + var GOT_func_internal_BoxShape_setUnscaledHalfExtents_28int_2c_20int_29 = 99; + var GOT_func_internal_SphereShape_new_28float_29 = 100; + var GOT_func_internal_SphereShape_setUnscaledRadius_28int_2c_20float_29 = 101; + var GOT_func_internal_CylinderShape_new_28int_29 = 102; + var GOT_func_internal_CylinderShape_updateProp_28int_2c_20float_2c_20float_2c_20int_29 = 103; + var GOT_func_internal_CapsuleShape_new_28float_2c_20float_29 = 104; + var GOT_func_internal_CapsuleShape_updateProp_28int_2c_20float_2c_20float_2c_20int_29 = 105; + var GOT_func_internal_ConeShape_new_28float_2c_20float_29 = 106; + var GOT_func_internal_ConeShape_setRadius_28int_2c_20float_29 = 107; + var GOT_func_internal_ConeShape_setHeight_28int_2c_20float_29 = 108; + var GOT_func_internal_ConeShape_setConeUpIndex_28int_2c_20int_29 = 109; + var GOT_func_internal_StaticPlaneShape_new_28int_2c_20float_29 = 110; + var GOT_func_internal_StaticPlaneShape_getPlaneNormal_28int_29 = 111; + var GOT_func_internal_StaticPlaneShape_setPlaneConstant_28int_2c_20float_29 = 112; + var GOT_func_internal_TerrainShape_new_28int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29 = 113; + var GOT_func_internal_TriangleMesh_new_28_29 = 114; + var GOT_func_internal_TriangleMesh_addTriangle_28int_2c_20int_2c_20int_2c_20int_2c_20bool_29 = 115; + var GOT_func_internal_BvhTriangleMeshShape_new_28int_2c_20bool_2c_20bool_29 = 116; + var GOT_func_internal_BvhTriangleMeshShape_getOptimizedBvh_28int_29 = 117; + var GOT_func_internal_BvhTriangleMeshShape_setOptimizedBvh_28int_2c_20int_2c_20float_2c_20float_2c_20float_29 = 118; + var GOT_func_internal_ScaledBvhTriangleMeshShape_new_28int_2c_20float_2c_20float_2c_20float_29 = 119; + var GOT_func_internal_ConvexTriangleMeshShape_new_28int_29 = 120; + var GOT_func_internal_SimplexShape_new_28_29 = 121; + var GOT_func_internal_SimplexShape_addVertex_28int_2c_20int_29 = 122; + var GOT_func_internal_ccCompoundShape_new_28_29 = 123; + var GOT_func_internal_CompoundShape_getNumChildShapes_28int_29 = 124; + var GOT_func_internal_CompoundShape_addChildShape_28int_2c_20int_2c_20int_29 = 125; + var GOT_func_internal_CompoundShape_getChildShape_28int_2c_20int_29 = 126; + var GOT_func_internal_CompoundShape_removeChildShape_28int_2c_20int_29 = 127; + var GOT_func_internal_CompoundShape_updateChildTransform_28int_2c_20int_2c_20int_2c_20bool_29 = 128; + var GOT_func_internal_CollisionObject_new_28_29 = 129; + var GOT_func_internal_CollisionObject_getCollisionShape_28int_29 = 130; + var GOT_func_internal_CollisionObject_setCollisionShape_28int_2c_20int_29 = 131; + var GOT_func_internal_CollisionObject_setContactProcessingThreshold_28int_2c_20int_29 = 132; + var GOT_func_internal_CollisionObject_isSleeping_28int_29 = 133; + var GOT_func_internal_CollisionObject_getActivationState_28int_29 = 134; + var GOT_func_internal_CollisionObject_forceActivationState_28int_2c_20int_29 = 135; + var GOT_func_internal_CollisionObject_activate_28int_2c_20bool_29 = 136; + var GOT_func_internal_CollisionObject_isActive_28int_29 = 137; + var GOT_func_internal_CollisionObject_isKinematicObject_28int_29 = 138; + var GOT_func_internal_CollisionObject_isStaticObject_28int_29 = 139; + var GOT_func_internal_CollisionObject_isStaticOrKinematicObject_28int_29 = 140; + var GOT_func_internal_CollisionObject_getWorldTransform_28int_29 = 141; + var GOT_func_internal_CollisionObject_setCollisionFlags_28int_2c_20int_29 = 142; + var GOT_func_internal_CollisionObject_getCollisionFlags_28int_29 = 143; + var GOT_func_internal_CollisionObject_setCcdMotionThreshold_28int_2c_20float_29 = 144; + var GOT_func_internal_CollisionObject_setCcdSweptSphereRadius_28int_2c_20float_29 = 145; + var GOT_func_internal_CollisionObject_setUserIndex_28int_2c_20int_29 = 146; + var GOT_func_internal_CollisionObject_getUserIndex_28int_29 = 147; + var GOT_func_internal_CollisionObject_setMaterial_28int_2c_20float_2c_20float_2c_20float_2c_20float_29 = 148; + var GOT_func_internal_CollisionObject_setIgnoreCollisionCheck_28int_2c_20int_2c_20bool_29 = 149; + var GOT_func_internal_RigidBody_new_28float_2c_20int_29 = 150; + var GOT_func_internal_RigidBody_getFlags_28int_29 = 151; + var GOT_func_internal_RigidBody_setFlags_28int_2c_20int_29 = 152; + var GOT_func_internal_RigidBody_setGravity_28int_2c_20int_29 = 153; + var GOT_func_internal_RigidBody_setDamping_28int_2c_20float_2c_20float_29 = 154; + var GOT_func_internal_RigidBody_setMass_28int_2c_20float_29 = 155; + var GOT_func_internal_RigidBody_setMassProps_28int_2c_20float_2c_20int_29 = 156; + var GOT_func_internal_RigidBody_setLinearFactor_28int_2c_20int_29 = 157; + var GOT_func_internal_RigidBody_setAngularFactor_28int_2c_20int_29 = 158; + var GOT_func_internal_RigidBody_setLinearVelocity_28int_2c_20int_29 = 159; + var GOT_func_internal_RigidBody_getLinearVelocity_28int_29 = 160; + var GOT_func_internal_RigidBody_setAngularVelocity_28int_2c_20int_29 = 161; + var GOT_func_internal_RigidBody_getAngularVelocity_28int_29 = 162; + var GOT_func_internal_RigidBody_clearState_28int_29 = 163; + var GOT_func_internal_RigidBody_clearForces_28int_29 = 164; + var GOT_func_internal_RigidBody_wantsSleeping_28int_29 = 165; + var GOT_func_internal_RigidBody_setSleepingThresholds_28int_2c_20float_2c_20float_29 = 166; + var GOT_func_internal_RigidBody_getLinearSleepingThreshold_28int_29 = 167; + var GOT_func_internal_RigidBody_getMotionState_28int_29 = 168; + var GOT_func_internal_RigidBody_applyTorque_28int_2c_20int_29 = 169; + var GOT_func_internal_RigidBody_applyForce_28int_2c_20int_2c_20int_29 = 170; + var GOT_func_internal_RigidBody_applyImpulse_28int_2c_20int_2c_20int_29 = 171; + var GOT_func_internal_RigidBody_getWorldTransform_28int_2c_20int_29 = 172; + var GOT_func_internal_DefaultCollisionConfiguration_static_28_29 = 173; + var GOT_func_internal_CollisionDispatcher_new_28_29 = 174; + var GOT_func_internal_Dispatcher_getNumManifolds_28int_29 = 175; + var GOT_func_internal_Dispatcher_getManifoldByIndexInternal_28int_2c_20int_29 = 176; + var GOT_func_internal_ManifoldPoint_getShape0_28int_29 = 177; + var GOT_func_internal_ManifoldPoint_getShape1_28int_29 = 178; + var GOT_func_internal_ManifoldPoint_get_m_index0_28int_29 = 179; + var GOT_func_internal_ManifoldPoint_get_m_index1_28int_29 = 180; + var GOT_func_internal_PersistentManifold_getBody0_28int_29 = 181; + var GOT_func_internal_PersistentManifold_getBody1_28int_29 = 182; + var GOT_func_internal_PersistentManifold_getNumContacts_28int_29 = 183; + var GOT_func_internal_PersistentManifold_getContactPoint_28int_2c_20int_29 = 184; + var GOT_func_internal_ManifoldPoint_get_m_localPointA_28int_29 = 185; + var GOT_func_internal_ManifoldPoint_get_m_localPointB_28int_29 = 186; + var GOT_func_internal_ManifoldPoint_get_m_positionWorldOnA_28int_29 = 187; + var GOT_func_internal_ManifoldPoint_get_m_positionWorldOnB_28int_29 = 188; + var GOT_func_internal_ManifoldPoint_get_m_normalWorldOnB_28int_29 = 189; + var GOT_func_internal_DbvtBroadphase_new_28_29 = 190; + var GOT_func_internal_SequentialImpulseConstraintSolver_new_28_29 = 191; + var GOT_func_internal_CollisionWorld_addCollisionObject_28int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int_29 = 192; + var GOT_func_internal_CollisionWorld_removeCollisionObject_28int_2c_20int_29 = 193; + var GOT_func_internal_CollisionWorld_rayTest_28int_2c_20int_2c_20int_2c_20int_29 = 194; + var GOT_func_internal_CollisionWorld_convexSweepTest_28int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float_29 = 195; + var GOT_func_internal_CollisionWorld_setDebugDrawer_28int_2c_20int_29 = 196; + var GOT_func_internal_CollisionWorld_debugDrawWorld_28int_29 = 197; + var GOT_func_internal_ccDiscreteDynamicsWorld_new_28int_2c_20int_2c_20int_29 = 198; + var GOT_func_internal_ccDiscreteDynamicsWorld_setAllowSleep_28int_2c_20bool_29 = 199; + var GOT_func_internal_DynamicsWorld_setGravity_28int_2c_20int_29 = 200; + var GOT_func_internal_DynamicsWorld_stepSimulation_28int_2c_20float_2c_20int_2c_20float_29 = 201; + var GOT_func_internal_DynamicsWorld_addRigidBody_28int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int_29 = 202; + var GOT_func_internal_DynamicsWorld_removeRigidBody_28int_2c_20int_29 = 203; + var GOT_func_internal_DynamicsWorld_addConstraint_28int_2c_20int_2c_20bool_29 = 204; + var GOT_func_internal_DynamicsWorld_removeConstraint_28int_2c_20int_29 = 205; + var GOT_func_internal_DynamicsWorld_addAction_28int_2c_20int_29 = 206; + var GOT_func_internal_DynamicsWorld_removeAction_28int_2c_20int_29 = 207; + var GOT_func_internal_DebugDraw_setDebugMode_28int_2c_20int_29 = 208; + var GOT_func_internal_DebugDraw_getDebugMode_28int_29 = 209; + var GOT_func_internal_DebugDraw_setActiveObjectColor_28int_2c_20float_2c_20float_2c_20float_29 = 210; + var GOT_func_internal_DebugDraw_setDeactiveObjectColor_28int_2c_20float_2c_20float_2c_20float_29 = 211; + var GOT_func_internal_DebugDraw_setWantsDeactivationObjectColor_28int_2c_20float_2c_20float_2c_20float_29 = 212; + var GOT_func_internal_DebugDraw_setDisabledDeactivationObjectColor_28int_2c_20float_2c_20float_2c_20float_29 = 213; + var GOT_func_internal_DebugDraw_setDisabledSimulationObjectColor_28int_2c_20float_2c_20float_2c_20float_29 = 214; + var GOT_func_internal_DebugDraw_setAABBColor_28int_2c_20float_2c_20float_2c_20float_29 = 215; + var GOT_func_internal_DebugDraw_setContactPointColor_28int_2c_20float_2c_20float_2c_20float_29 = 216; + var GOT_func_internal_DebugDraw_setConstraintLimitColor_28int_2c_20float_2c_20float_2c_20float_29 = 217; + var GOT_func_internal_RayCallback_hasHit_28int_29 = 218; + var GOT_func_internal_ConvexCallback_hasHit_28int_29 = 219; + var GOT_func_internal_ccAllRayCallback_static_28_29 = 220; + var GOT_func_internal_ccAllRayCallback_setFlags_28int_2c_20int_29 = 221; + var GOT_func_internal_ccAllRayCallback_reset_28int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29 = 222; + var GOT_func_internal_ccAllRayCallback_getHitPointWorld_28int_29 = 223; + var GOT_func_internal_ccAllRayCallback_getHitNormalWorld_28int_29 = 224; + var GOT_func_internal_ccAllRayCallback_getCollisionShapePtrs_28int_29 = 225; + var GOT_func_internal_ccClosestRayCallback_static_28_29 = 226; + var GOT_func_internal_ccClosestRayCallback_setFlags_28int_2c_20int_29 = 227; + var GOT_func_internal_ccClosestRayCallback_reset_28int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29 = 228; + var GOT_func_internal_ccClosestRayCallback_getHitPointWorld_28int_29 = 229; + var GOT_func_internal_ccClosestRayCallback_getHitNormalWorld_28int_29 = 230; + var GOT_func_internal_ccClosestRayCallback_getCollisionShapePtr_28int_29 = 231; + var GOT_func_internal_ccAllConvexCallback_static_28_29 = 232; + var GOT_func_internal_ccAllConvexCallback_reset_28int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29 = 233; + var GOT_func_internal_ccAllConvexCallback_getHitPointWorld_28int_29 = 234; + var GOT_func_internal_ccAllConvexCallback_getHitNormalWorld_28int_29 = 235; + var GOT_func_internal_ccAllConvexCallback_getCollisionShapePtrs_28int_29 = 236; + var GOT_func_internal_ccClosestConvexCallback_static_28_29 = 237; + var GOT_func_internal_ccClosestConvexCallback_reset_28int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29 = 238; + var GOT_func_internal_ccClosestConvexCallback_getHitPointWorld_28int_29 = 239; + var GOT_func_internal_ccClosestConvexCallback_getHitNormalWorld_28int_29 = 240; + var GOT_func_internal_ccClosestConvexCallback_getCollisionShapePtr_28int_29 = 241; + var GOT_func_internal_ccMaterial_new_28_29 = 242; + var GOT_func_internal_ccMaterial_set_28int_2c_20float_2c_20float_2c_20float_2c_20float_29 = 243; + var GOT_func_internal_CharacterController_getGhostObject = 244; + var GOT_func_internal_CharacterController_getCollisionShape = 245; + var GOT_func_internal_ControllerHit_getHitWorldPos = 246; + var GOT_func_internal_ControllerHit_getHitWorldNormal = 247; + var GOT_func_internal_ControllerHit_getHitMotionDir = 248; + var GOT_func_internal_ControllerHit_getHitMotionLength = 249; + var GOT_func_internal_ControllerShapeHit_getHitShape = 250; + var GOT_func_internal_ControllerShapeHit_getHitCollisionObject = 251; + var GOT_func_internal_CharacterController_move = 252; + var GOT_func_internal_CharacterController_getPosition = 253; + var GOT_func_internal_CharacterController_setContactOffset = 254; + var GOT_func_internal_CharacterController_setStepOffset = 255; + var GOT_func_internal_CharacterController_setSlopeLimit = 256; + var GOT_func_internal_CharacterController_setCollision = 257; + var GOT_func_internal_CharacterController_setOverlapRecovery = 258; + var GOT_func_internal_CapsuleCharacterControllerDesc_new = 259; + var GOT_func_internal_CapsuleCharacterController_new = 260; + var GOT_func_internal_CapsuleCharacterController_setRadius = 261; + var GOT_func_internal_CapsuleCharacterController_setHeight = 262; + var GOT_func_internal_BoxCharacterControllerDesc_new = 263; + var GOT_func_internal_BoxCharacterController_new = 264; + var GOT_func_internal_BoxCharacterController_setHalfHeight = 265; + var GOT_func_internal_BoxCharacterController_setHalfSideExtent = 266; + var GOT_func_internal_BoxCharacterController_setHalfForwardExtent = 267; + var GOT_data_internal_vtable_20for_20btCollisionWorld__RayResultCallback = 110208; + var GOT_data_internal_vtable_20for_20btCollisionWorld__ConvexResultCallback = 110384; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int__28_29__signature = 89172; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void__28_29__signature = 89175; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int__28_29__signature = 89177; + var GOT_func_internal_emscripten__internal__MethodInvoker_void_20_28btIDebugDraw____29_28_29_2c_20void_2c_20btIDebugDraw____invoke_28void_20_28btIDebugDraw____20const__29_28_29_2c_20btIDebugDraw__29 = 268; + var GOT_func_internal_emscripten__internal__MethodInvoker_void_20_28btDebugDraw____29_28int_2c_20int_2c_20int_29_2c_20void_2c_20btDebugDraw__2c_20int_2c_20int_2c_20int___invoke_28void_20_28btDebugDraw____20const__29_28int_2c_20int_2c_20int_29_2c_20btDebugDraw__2c_20int_2c_20int_2c_20int_29 = 269; + var GOT_func_internal_btDebugDraw__20emscripten__base_btDebugDraw___convertPointer_btDebugDrawWrapper_2c_20btDebugDraw__28btDebugDrawWrapper__29 = 270; + var GOT_func_internal_btDebugDrawWrapper__20emscripten__base_btDebugDraw___convertPointer_btDebugDraw_2c_20btDebugDrawWrapper__28btDebugDraw__29 = 271; + var GOT_func_internal_emscripten__class__btDebugDraw_2c_20emscripten__internal__NoBaseClass__20const__20emscripten__class__btDebugDraw_2c_20emscripten__internal__NoBaseClass___allow_subclass_btDebugDrawWrapper__28char_20const__2c_20emscripten__constructor___29_20const___lambda__28btDebugDrawWrapper__29____invoke_28btDebugDrawWrapper__29 = 272; + var GOT_func_internal_emscripten__internal__FunctionInvoker_void_20_28__29_28btDebugDrawWrapper__29_2c_20void_2c_20btDebugDrawWrapper____invoke_28void_20_28___29_28btDebugDrawWrapper__29_2c_20btDebugDrawWrapper__29 = 273; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int__28_29__signature = 89367; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int__28_29__signature = 89434; + var GOT_func_internal_emscripten__internal__MethodInvoker_void_20_28btControllerHitReport____29_28int_2c_20int_29_2c_20void_2c_20btControllerHitReport__2c_20int_2c_20int___invoke_28void_20_28btControllerHitReport____20const__29_28int_2c_20int_29_2c_20btControllerHitReport__2c_20int_2c_20int_29 = 274; + var GOT_func_internal_btControllerHitReport__20emscripten__base_btControllerHitReport___convertPointer_btControllerHitReportWrapper_2c_20btControllerHitReport__28btControllerHitReportWrapper__29 = 275; + var GOT_func_internal_btControllerHitReportWrapper__20emscripten__base_btControllerHitReport___convertPointer_btControllerHitReport_2c_20btControllerHitReportWrapper__28btControllerHitReport__29 = 276; + var GOT_func_internal_emscripten__class__btControllerHitReport_2c_20emscripten__internal__NoBaseClass__20const__20emscripten__class__btControllerHitReport_2c_20emscripten__internal__NoBaseClass___allow_subclass_btControllerHitReportWrapper__28char_20const__2c_20emscripten__constructor___29_20const___lambda__28btControllerHitReportWrapper__29____invoke_28btControllerHitReportWrapper__29 = 277; + var GOT_func_internal_emscripten__internal__FunctionInvoker_void_20_28__29_28btControllerHitReportWrapper__29_2c_20void_2c_20btControllerHitReportWrapper____invoke_28void_20_28___29_28btControllerHitReportWrapper__29_2c_20btControllerHitReportWrapper__29 = 278; + var GOT_func_internal_emscripten__internal__MethodInvoker_void_20_28cc__ccMotionState____29_28int_29_2c_20void_2c_20cc__ccMotionState__2c_20int___invoke_28void_20_28cc__ccMotionState____20const__29_28int_29_2c_20cc__ccMotionState__2c_20int_29 = 279; + var GOT_func_internal_cc__ccMotionState__20emscripten__base_cc__ccMotionState___convertPointer_ccMotionStateWrapper_2c_20cc__ccMotionState__28ccMotionStateWrapper__29 = 280; + var GOT_func_internal_ccMotionStateWrapper__20emscripten__base_cc__ccMotionState___convertPointer_cc__ccMotionState_2c_20ccMotionStateWrapper__28cc__ccMotionState__29 = 281; + var GOT_func_internal_emscripten__class__cc__ccMotionState_2c_20emscripten__internal__NoBaseClass__20const__20emscripten__class__cc__ccMotionState_2c_20emscripten__internal__NoBaseClass___allow_subclass_ccMotionStateWrapper__28char_20const__2c_20emscripten__constructor___29_20const___lambda__28ccMotionStateWrapper__29____invoke_28ccMotionStateWrapper__29 = 282; + var GOT_func_internal_emscripten__internal__FunctionInvoker_void_20_28__29_28ccMotionStateWrapper__29_2c_20void_2c_20ccMotionStateWrapper____invoke_28void_20_28___29_28ccMotionStateWrapper__29_2c_20ccMotionStateWrapper__29 = 283; + var GOT_func_internal_emscripten__internal__Invoker_int_2c_20int___invoke_28int_20_28__29_28int_29_2c_20int_29 = 284; + var GOT_func_internal_emscripten__internal__Invoker_void_2c_20int___invoke_28void_20_28__29_28int_29_2c_20int_29 = 285; + var GOT_func_internal_emscripten__internal__Invoker_float_2c_20int___invoke_28float_20_28__29_28int_29_2c_20int_29 = 286; + var GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20float___invoke_28void_20_28__29_28int_2c_20float_29_2c_20int_2c_20float_29 = 287; + var GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20int___invoke_28void_20_28__29_28int_2c_20int_29_2c_20int_2c_20int_29 = 288; + var GOT_func_internal_emscripten__internal__Invoker_int_2c_20float_2c_20float_2c_20float___invoke_28int_20_28__29_28float_2c_20float_2c_20float_29_2c_20float_2c_20float_2c_20float_29 = 289; + var GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20float_2c_20float___invoke_28void_20_28__29_28int_2c_20float_2c_20float_2c_20float_29_2c_20int_2c_20float_2c_20float_2c_20float_29 = 290; + var GOT_func_internal_emscripten__internal__Invoker_int_2c_20float_2c_20float_2c_20float_2c_20float___invoke_28int_20_28__29_28float_2c_20float_2c_20float_2c_20float_29_2c_20float_2c_20float_2c_20float_2c_20float_29 = 291; + var GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float___invoke_28void_20_28__29_28int_2c_20float_2c_20float_2c_20float_2c_20float_29_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_29 = 292; + var GOT_func_internal_emscripten__internal__Invoker_int___invoke_28int_20_28__29_28_29_29 = 293; + var GOT_func_internal_emscripten__internal__Invoker_int_2c_20int_2c_20int___invoke_28int_20_28__29_28int_2c_20int_29_2c_20int_2c_20int_29 = 294; + var GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20int___invoke_28void_20_28__29_28int_2c_20int_2c_20int_29_2c_20int_2c_20int_2c_20int_29 = 295; + var GOT_func_internal_emscripten__internal__Invoker_int_2c_20int_2c_20int_2c_20int_2c_20int___invoke_28int_20_28__29_28int_2c_20int_2c_20int_2c_20int_29_2c_20int_2c_20int_2c_20int_2c_20int_29 = 296; + var GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float___invoke_28void_20_28__29_28int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float_29_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float_29 = 297; + var GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20bool___invoke_28void_20_28__29_28int_2c_20bool_29_2c_20int_2c_20bool_29 = 298; + var GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20float___invoke_28void_20_28__29_28int_2c_20float_2c_20float_29_2c_20int_2c_20float_2c_20float_29 = 299; + var GOT_func_internal_emscripten__internal__Invoker_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int___invoke_28int_20_28__29_28int_2c_20int_2c_20int_2c_20int_2c_20int_29_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_29 = 300; + var GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20float_2c_20float___invoke_28void_20_28__29_28int_2c_20int_2c_20float_2c_20float_29_2c_20int_2c_20int_2c_20float_2c_20float_29 = 301; + var GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20bool___invoke_28void_20_28__29_28int_2c_20int_2c_20bool_29_2c_20int_2c_20int_2c_20bool_29 = 302; + var GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20float___invoke_28void_20_28__29_28int_2c_20int_2c_20float_29_2c_20int_2c_20int_2c_20float_29 = 303; + var GOT_func_internal_emscripten__internal__Invoker_bool_2c_20int___invoke_28bool_20_28__29_28int_29_2c_20int_29 = 304; + var GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20int___invoke_28void_20_28__29_28int_2c_20float_2c_20int_29_2c_20int_2c_20float_2c_20int_29 = 305; + var GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20int_2c_20int___invoke_28void_20_28__29_28int_2c_20int_2c_20int_2c_20int_29_2c_20int_2c_20int_2c_20int_2c_20int_29 = 306; + var GOT_func_internal_emscripten__internal__Invoker_int_2c_20float___invoke_28int_20_28__29_28float_29_2c_20float_29 = 307; + var GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20float_2c_20int___invoke_28void_20_28__29_28int_2c_20float_2c_20float_2c_20int_29_2c_20int_2c_20float_2c_20float_2c_20int_29 = 308; + var GOT_func_internal_emscripten__internal__Invoker_int_2c_20float_2c_20float___invoke_28int_20_28__29_28float_2c_20float_29_2c_20float_2c_20float_29 = 309; + var GOT_func_internal_emscripten__internal__Invoker_int_2c_20int_2c_20float___invoke_28int_20_28__29_28int_2c_20float_29_2c_20int_2c_20float_29 = 310; + var GOT_func_internal_emscripten__internal__Invoker_int_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float___invoke_28int_20_28__29_28int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29 = 311; + var GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20bool___invoke_28void_20_28__29_28int_2c_20int_2c_20int_2c_20int_2c_20bool_29_2c_20int_2c_20int_2c_20int_2c_20int_2c_20bool_29 = 312; + var GOT_func_internal_emscripten__internal__Invoker_int_2c_20int_2c_20bool_2c_20bool___invoke_28int_20_28__29_28int_2c_20bool_2c_20bool_29_2c_20int_2c_20bool_2c_20bool_29 = 313; + var GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float___invoke_28void_20_28__29_28int_2c_20int_2c_20float_2c_20float_2c_20float_29_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29 = 314; + var GOT_func_internal_emscripten__internal__Invoker_int_2c_20int_2c_20float_2c_20float_2c_20float___invoke_28int_20_28__29_28int_2c_20float_2c_20float_2c_20float_29_2c_20int_2c_20float_2c_20float_2c_20float_29 = 315; + var GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20int_2c_20bool___invoke_28void_20_28__29_28int_2c_20int_2c_20int_2c_20bool_29_2c_20int_2c_20int_2c_20int_2c_20bool_29 = 316; + var GOT_func_internal_emscripten__internal__Invoker_int_2c_20float_2c_20int___invoke_28int_20_28__29_28float_2c_20int_29_2c_20float_2c_20int_29 = 317; + var GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int___invoke_28void_20_28__29_28int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int_29_2c_20int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int_29 = 318; + var GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float___invoke_28void_20_28__29_28int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float_29_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float_29 = 319; + var GOT_func_internal_emscripten__internal__Invoker_int_2c_20int_2c_20int_2c_20int___invoke_28int_20_28__29_28int_2c_20int_2c_20int_29_2c_20int_2c_20int_2c_20int_29 = 320; + var GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20int_2c_20float___invoke_28void_20_28__29_28int_2c_20float_2c_20int_2c_20float_29_2c_20int_2c_20float_2c_20int_2c_20float_29 = 321; + var GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool___invoke_28void_20_28__29_28int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29_2c_20int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29 = 322; + var GOT_func_internal_emscripten__internal__Invoker_int_2c_20int_2c_20int_2c_20float_2c_20float___invoke_28int_20_28__29_28int_2c_20int_2c_20float_2c_20float_29_2c_20int_2c_20int_2c_20float_2c_20float_29 = 323; + var GOT_func_internal_emscripten__internal__Invoker_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float___invoke_28int_20_28__29_28float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_29_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_29 = 324; + var GOT_func_internal_emscripten__internal__Invoker_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float___invoke_28int_20_28__29_28float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29 = 325; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int__28_29__signature = 89196; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_float_2c_20int_2c_20int__28_29__signature = 89880; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float__28_29__signature = 89884; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int__28_29__signature = 89758; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float_2c_20float_2c_20float__28_29__signature = 89889; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float__28_29__signature = 89895; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float__28_29__signature = 89902; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float__28_29__signature = 89909; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20int__28_29__signature = 89542; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int__28_29__signature = 89917; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float__28_29__signature = 89924; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20float__28_29__signature = 89933; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int__28_29__signature = 89939; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float__28_29__signature = 89947; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20float__28_29__signature = 89954; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20int__28_29__signature = 89960; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int__28_29__signature = 89200; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float__28_29__signature = 89966; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20int__28_29__signature = 89970; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float_2c_20float__28_29__signature = 89977; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20float__28_29__signature = 89982; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float__28_29__signature = 89987; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int__28_29__signature = 89996; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int_2c_20int__28_29__signature = 90004; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float__28_29__signature = 90010; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float__28_29__signature = 90018; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float_2c_20int__28_29__signature = 90025; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float__28_29__signature = 90030; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20int_2c_20float__28_29__signature = 90039; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float__28_29__signature = 90046; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float__28_29__signature = 90053; + var GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float__28_29__signature = 90064; + var GOT_data_internal_typeinfo_20for_20btDebugDraw = 110612; + var GOT_data_internal_typeinfo_20for_20btDebugDraw_ = 110624; + var GOT_data_internal_typeinfo_20for_20btDebugDraw_20const_ = 110640; + var GOT_data_internal_typeinfo_20for_20btIDebugDraw = 110604; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20emscripten__internal__AllowedRawPointer_btIDebugDraw_____get_28_29__types = 110656; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20emscripten__internal__AllowedRawPointer_btDebugDraw__2c_20int_2c_20int_2c_20int____get_28_29__types = 110688; + var GOT_data_internal_vtable_20for_20btDebugDrawWrapper = 110816; + var GOT_data_internal_typeinfo_20for_20btDebugDrawWrapper = 110748; + var GOT_data_internal_typeinfo_20for_20btDebugDrawWrapper_ = 110760; + var GOT_data_internal_typeinfo_20for_20btDebugDrawWrapper_20const_ = 110776; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20btDebugDrawWrapper_____get_28_29__types = 110792; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_emscripten__internal__AllowedRawPointer_btDebugDrawWrapper__2c_20emscripten__val______get_28_29__types = 110800; + var GOT_data_internal_vtable_20for_20emscripten__wrapper_btDebugDraw_ = 110936; + var GOT_data_internal_vtable_20for_20btDebugDraw = 111056; + var GOT_data_internal_vtable_20for_20btIDebugDraw = 111176; + var GOT_data_internal_guard_20variable_20for_20emscripten__internal__Signature_void___get_method_caller_28_29__mc = 113892; + var GOT_data_internal_emscripten__internal__Signature_void___get_method_caller_28_29__mc = 113888; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void____get_28_29__types = 111292; + var GOT_data_internal_guard_20variable_20for_20emscripten__internal__Signature_void_2c_20int_20const__2c_20int_20const__2c_20int____get_method_caller_28_29__mc = 113900; + var GOT_data_internal_emscripten__internal__Signature_void_2c_20int_20const__2c_20int_20const__2c_20int____get_method_caller_28_29__mc = 113896; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_20const__2c_20int_20const__2c_20int_____get_28_29__types = 111296; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_emscripten__val_2c_20std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const_____get_28_29__types = 111312; + var GOT_data_internal_typeinfo_20for_20btControllerHitReport = 111340; + var GOT_data_internal_typeinfo_20for_20btControllerHitReport_ = 111352; + var GOT_data_internal_typeinfo_20for_20btControllerHitReport_20const_ = 111368; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20emscripten__internal__AllowedRawPointer_btControllerHitReport__2c_20int_2c_20int____get_28_29__types = 111392; + var GOT_data_internal_vtable_20for_20btControllerHitReportWrapper = 111500; + var GOT_data_internal_typeinfo_20for_20btControllerHitReportWrapper = 111440; + var GOT_data_internal_typeinfo_20for_20btControllerHitReportWrapper_ = 111452; + var GOT_data_internal_typeinfo_20for_20btControllerHitReportWrapper_20const_ = 111468; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20btControllerHitReportWrapper_____get_28_29__types = 111484; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_emscripten__internal__AllowedRawPointer_btControllerHitReportWrapper__2c_20emscripten__val______get_28_29__types = 111492; + var GOT_data_internal_vtable_20for_20emscripten__wrapper_btControllerHitReport_ = 111528; + var GOT_data_internal_vtable_20for_20btControllerHitReport = 111556; + var GOT_data_internal_vtable_20for_20btUserControllerHitReport = 111584; + var GOT_data_internal_guard_20variable_20for_20emscripten__internal__Signature_void_2c_20int_20const__2c_20int_20const____get_method_caller_28_29__mc = 113908; + var GOT_data_internal_emscripten__internal__Signature_void_2c_20int_20const__2c_20int_20const____get_method_caller_28_29__mc = 113904; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_20const__2c_20int_20const_____get_28_29__types = 111608; + var GOT_data_internal_typeinfo_20for_20cc__ccMotionState = 111620; + var GOT_data_internal_typeinfo_20for_20cc__ccMotionState_ = 111632; + var GOT_data_internal_typeinfo_20for_20cc__ccMotionState_20const_ = 111648; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20emscripten__internal__AllowedRawPointer_cc__ccMotionState__2c_20int____get_28_29__types = 111664; + var GOT_data_internal_vtable_20for_20ccMotionStateWrapper = 111768; + var GOT_data_internal_typeinfo_20for_20ccMotionStateWrapper = 111708; + var GOT_data_internal_typeinfo_20for_20ccMotionStateWrapper_ = 111720; + var GOT_data_internal_typeinfo_20for_20ccMotionStateWrapper_20const_ = 111736; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20ccMotionStateWrapper_____get_28_29__types = 111752; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_emscripten__internal__AllowedRawPointer_ccMotionStateWrapper__2c_20emscripten__val______get_28_29__types = 111760; + var GOT_data_internal_vtable_20for_20emscripten__wrapper_cc__ccMotionState_ = 111796; + var GOT_data_internal_vtable_20for_20cc__ccMotionState = 111824; + var GOT_data_internal_guard_20variable_20for_20emscripten__internal__Signature_void_2c_20int_20const____get_method_caller_28_29__mc = 113916; + var GOT_data_internal_emscripten__internal__Signature_void_2c_20int_20const____get_method_caller_28_29__mc = 113912; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_20const_____get_28_29__types = 111852; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int____get_28_29__types = 111860; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int____get_28_29__types = 111868; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_float_2c_20int____get_28_29__types = 111876; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float____get_28_29__types = 111884; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int____get_28_29__types = 111896; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float_2c_20float_2c_20float____get_28_29__types = 111920; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20float_2c_20float____get_28_29__types = 111936; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float_2c_20float_2c_20float_2c_20float____get_28_29__types = 111968; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float____get_28_29__types = 112e3; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int____get_28_29__types = 112024; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20int____get_28_29__types = 112028; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20int____get_28_29__types = 112048; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20int_2c_20int_2c_20int____get_28_29__types = 112064; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float____get_28_29__types = 112096; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20bool____get_28_29__types = 112124; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20float____get_28_29__types = 112144; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int____get_28_29__types = 112160; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20float_2c_20float____get_28_29__types = 112192; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20bool____get_28_29__types = 112224; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20float____get_28_29__types = 112240; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_bool_2c_20int____get_28_29__types = 112256; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20int____get_28_29__types = 112272; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20int_2c_20int____get_28_29__types = 112288; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float____get_28_29__types = 112308; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20float_2c_20int____get_28_29__types = 112320; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float_2c_20float____get_28_29__types = 112340; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20float____get_28_29__types = 112352; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float____get_28_29__types = 112368; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20bool____get_28_29__types = 112400; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20bool_2c_20bool____get_28_29__types = 112432; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float____get_28_29__types = 112448; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20float_2c_20float_2c_20float____get_28_29__types = 112480; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20int_2c_20bool____get_28_29__types = 112512; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float_2c_20int____get_28_29__types = 112532; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int____get_28_29__types = 112544; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float____get_28_29__types = 112576; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20int_2c_20int____get_28_29__types = 112608; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20int_2c_20float____get_28_29__types = 112624; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool____get_28_29__types = 112656; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20int_2c_20float_2c_20float____get_28_29__types = 112688; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float____get_28_29__types = 112720; + var GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float____get_28_29__types = 112768; + var __wasm_intrinsics_temp_i64 = 0; + var __wasm_intrinsics_temp_i64$hi = 0; + var i64toi32_i32$HIGH_BITS = 0; + // EMSCRIPTEN_START_FUNCS +; + function __wasm_call_ctors() { + emscripten_stack_init(); + _GLOBAL__sub_I_BulletWebBindings_cpp(); + _GLOBAL__sub_I_btAlignedAllocator_cpp(); + _GLOBAL__sub_I_btDbvt_cpp(); + _GLOBAL__sub_I_btDbvtBroadphase_cpp(); + _GLOBAL__sub_I_btQuickprof_cpp(); + _GLOBAL__sub_I_btOverlappingPairCache_cpp(); + _GLOBAL__sub_I_btDispatcher_cpp(); + _GLOBAL__sub_I_btCollisionDispatcher_cpp(); + _GLOBAL__sub_I_btCollisionObject_cpp(); + _GLOBAL__sub_I_btCollisionWorld_cpp(); + _GLOBAL__sub_I_btCollisionAlgorithm_cpp(); + _GLOBAL__sub_I_btActivatingCollisionAlgorithm_cpp(); + _GLOBAL__sub_I_btConvexConvexAlgorithm_cpp(); + _GLOBAL__sub_I_btConvexConcaveCollisionAlgorithm_cpp(); + _GLOBAL__sub_I_btCompoundCollisionAlgorithm_cpp(); + _GLOBAL__sub_I_btCompoundCompoundCollisionAlgorithm_cpp(); + _GLOBAL__sub_I_btBoxBoxDetector_cpp(); + _GLOBAL__sub_I_btBoxBoxCollisionAlgorithm_cpp(); + _GLOBAL__sub_I_btConvexPlaneCollisionAlgorithm_cpp(); + _GLOBAL__sub_I_btDefaultCollisionConfiguration_cpp(); + _GLOBAL__sub_I_btEmptyCollisionAlgorithm_cpp(); + _GLOBAL__sub_I_btHashedSimplePairCache_cpp(); + _GLOBAL__sub_I_btManifoldResult_cpp(); + _GLOBAL__sub_I_btSphereSphereCollisionAlgorithm_cpp(); + _GLOBAL__sub_I_btSphereTriangleCollisionAlgorithm_cpp(); + _GLOBAL__sub_I_SphereTriangleDetector_cpp(); + _GLOBAL__sub_I_btBoxShape_cpp(); + _GLOBAL__sub_I_btQuantizedBvh_cpp(); + _GLOBAL__sub_I_btBvhTriangleMeshShape_cpp(); + _GLOBAL__sub_I_btCapsuleShape_cpp(); + _GLOBAL__sub_I_btCollisionShape_cpp(); + _GLOBAL__sub_I_btCompoundShape_cpp(); + _GLOBAL__sub_I_btConeShape_cpp(); + _GLOBAL__sub_I_btConvexInternalShape_cpp(); + _GLOBAL__sub_I_btConvexShape_cpp(); + _GLOBAL__sub_I_btConvexTriangleMeshShape_cpp(); + _GLOBAL__sub_I_btCylinderShape_cpp(); + _GLOBAL__sub_I_btConcaveShape_cpp(); + _GLOBAL__sub_I_btEmptyShape_cpp(); + _GLOBAL__sub_I_btHeightfieldTerrainShape_cpp(); + _GLOBAL__sub_I_btOptimizedBvh_cpp(); + _GLOBAL__sub_I_btConvexPolyhedron_cpp(); + _GLOBAL__sub_I_btGeometryUtil_cpp(); + _GLOBAL__sub_I_btConvexHullComputer_cpp(); + _GLOBAL__sub_I_btPolyhedralConvexShape_cpp(); + _GLOBAL__sub_I_btScaledBvhTriangleMeshShape_cpp(); + _GLOBAL__sub_I_btSphereShape_cpp(); + _GLOBAL__sub_I_btStaticPlaneShape_cpp(); + _GLOBAL__sub_I_btTetrahedronShape_cpp(); + _GLOBAL__sub_I_btTriangleCallback_cpp(); + _GLOBAL__sub_I_btStridingMeshInterface_cpp(); + _GLOBAL__sub_I_btTriangleIndexVertexArray_cpp(); + _GLOBAL__sub_I_btTriangleMesh_cpp(); + _GLOBAL__sub_I_btTriangleMeshShape_cpp(); + _GLOBAL__sub_I_btContinuousConvexCollision_cpp(); + _GLOBAL__sub_I_btConvexCast_cpp(); + _GLOBAL__sub_I_btGjkConvexCast_cpp(); + _GLOBAL__sub_I_btGjkEpa2_cpp(); + _GLOBAL__sub_I_btGjkEpaPenetrationDepthSolver_cpp(); + _GLOBAL__sub_I_btGjkPairDetector_cpp(); + _GLOBAL__sub_I_btMinkowskiPenetrationDepthSolver_cpp(); + _GLOBAL__sub_I_btPersistentManifold_cpp(); + _GLOBAL__sub_I_btRaycastCallback_cpp(); + _GLOBAL__sub_I_btSubSimplexConvexCast_cpp(); + _GLOBAL__sub_I_btVoronoiSimplexSolver_cpp(); + _GLOBAL__sub_I_btPolyhedralContactClipping_cpp(); + _GLOBAL__sub_I_btFixedConstraint_cpp(); + _GLOBAL__sub_I_btGeneric6DofSpring2Constraint_cpp(); + _GLOBAL__sub_I_btHingeConstraint_cpp(); + _GLOBAL__sub_I_btPoint2PointConstraint_cpp(); + _GLOBAL__sub_I_btSequentialImpulseConstraintSolver_cpp(); + _GLOBAL__sub_I_btTypedConstraint_cpp(); + _GLOBAL__sub_I_btRigidBody_cpp(); + _GLOBAL__sub_I_btUnionFind_cpp(); + _GLOBAL__sub_I_btSimulationIslandManager_cpp(); + _GLOBAL__sub_I_btConeTwistConstraint_cpp(); + _GLOBAL__sub_I_btGeneric6DofConstraint_cpp(); + _GLOBAL__sub_I_btDiscreteDynamicsWorld_cpp(); + _GLOBAL__sub_I_ccDiscreteDynamicsWorld_cpp(); + _GLOBAL__sub_I_ccCompoundShape_cpp(); + _GLOBAL__sub_I_btGhostObject_cpp(); + _GLOBAL__sub_I_btCharacterController_cpp(); + _GLOBAL__sub_I_bind_cpp(); + init_pthread_self(); + } + + function __cxx_global_var_init() { + btInfMaskConverter__btInfMaskConverter_28int_29(GOT_data_internal___memory_base + 113168 | 0 | 0, 2139095040 | 0) | 0; + return; + } + + function btInfMaskConverter__btInfMaskConverter_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return $5 | 0; + } + + function __cxx_global_var_init_1() { + var $1 = 0, $6 = 0, $13 = 0, $20 = 0; + $1 = GOT_data_internal___memory_base; + std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____basic_string_5babi_v160004_5d_std__nullptr_t__28char_20const__29($1 + 113184 | 0 | 0, $1 + 84159 | 0 | 0) | 0; + $6 = GOT_data_internal___memory_base; + std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____basic_string_5babi_v160004_5d_std__nullptr_t__28char_20const__29(($6 + 113184 | 0) + 12 | 0 | 0, $6 + 84426 | 0 | 0) | 0; + $13 = GOT_data_internal___memory_base; + std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____basic_string_5babi_v160004_5d_std__nullptr_t__28char_20const__29(($13 + 113184 | 0) + 24 | 0 | 0, $13 + 84257 | 0 | 0) | 0; + $20 = GOT_data_internal___memory_base; + std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____basic_string_5babi_v160004_5d_std__nullptr_t__28char_20const__29(($20 + 113184 | 0) + 36 | 0 | 0, $20 + 84028 | 0 | 0) | 0; + __cxa_atexit(GOT_data_internal___table_base + 0 | 0 | 0, 0 | 0, GOT_data_internal___memory_base + 65536 | 0 | 0) | 0; + return; + } + + function std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____basic_string_5babi_v160004_5d_std__nullptr_t__28char_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + std____2____compressed_pair_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______rep_2c_20std____2__allocator_char______compressed_pair_5babi_v160004_5d_std____2____default_init_tag_2c_20std____2____default_init_tag__28std____2____default_init_tag___2c_20std____2____default_init_tag___29($5 | 0, $4 + 7 | 0 | 0, $4 + 6 | 0 | 0) | 0; + std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______init_28char_20const__2c_20unsigned_20long_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, std____2__char_traits_char___length_28char_20const__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0 | 0); + void_20std____2____debug_db_insert_c_5babi_v160004_5d_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____28std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____29($5 | 0); + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function __cxx_global_array_dtor($0) { + $0 = $0 | 0; + var $3 = 0, $12 = 0, $9 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $9 = (GOT_data_internal___memory_base + 113184 | 0) + 48 | 0; + label$1 : while (1) { + $12 = $9 + -12 | 0; + std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char_____basic_string_28_29($12 | 0) | 0; + $9 = $12; + if (!(($12 | 0) == (GOT_data_internal___memory_base + 113184 | 0 | 0) & 1 | 0)) { + continue label$1 + } + break label$1; + }; + __stack_pointer = $3 + 16 | 0; + return; + } + + function std____2____compressed_pair_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______rep_2c_20std____2__allocator_char______compressed_pair_5babi_v160004_5d_std____2____default_init_tag_2c_20std____2____default_init_tag__28std____2____default_init_tag___2c_20std____2____default_init_tag___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + std____2____compressed_pair_elem_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______rep_2c_200_2c_20false_____compressed_pair_elem_5babi_v160004_5d_28std____2____default_init_tag_29($6 | 0) | 0; + std____2____compressed_pair_elem_std____2__allocator_char__2c_201_2c_20true_____compressed_pair_elem_5babi_v160004_5d_28std____2____default_init_tag_29($6 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $6 | 0; + } + + function std____2__char_traits_char___length_28char_20const__29($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = std____2____constexpr_strlen_5babi_v160004_5d_28char_20const__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $5 | 0; + } + + function void_20std____2____debug_db_insert_c_5babi_v160004_5d_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____28std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____29($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return; + } + + function _safe_delete_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $63 = 0, $81 = 0, $99 = 0, $117 = 0, $135 = 0, $153 = 0, $171 = 0, $189 = 0, $207 = 0, $225 = 0, $243 = 0, $261 = 0, $5 = 0, $15 = 0, $31 = 0, $47 = 0; + $4 = __stack_pointer - 80 | 0; + __stack_pointer = $4; + HEAP32[($4 + 76 | 0) >> 2] = $0; + HEAP32[($4 + 72 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 72 | 0) >> 2] | 0; + label$1 : { + label$2 : { + switch ($5 | 0) { + case 0: + HEAP32[($4 + 68 | 0) >> 2] = HEAP32[($4 + 76 | 0) >> 2] | 0; + label$18 : { + if (!((HEAP32[($4 + 68 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$18 + } + $15 = HEAP32[($4 + 68 | 0) >> 2] | 0; + label$19 : { + if (($15 | 0) == (0 | 0) & 1 | 0) { + break label$19 + } + btVector3__operator_20delete_28void__29($15 | 0); + } + HEAP32[($4 + 68 | 0) >> 2] = 0; + } + break label$1; + case 1: + HEAP32[($4 + 64 | 0) >> 2] = HEAP32[($4 + 76 | 0) >> 2] | 0; + label$20 : { + if (!((HEAP32[($4 + 64 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$20 + } + $31 = HEAP32[($4 + 64 | 0) >> 2] | 0; + label$21 : { + if (($31 | 0) == (0 | 0) & 1 | 0) { + break label$21 + } + operator_20delete_28void__29($31 | 0); + } + HEAP32[($4 + 64 | 0) >> 2] = 0; + } + break label$1; + case 2: + HEAP32[($4 + 60 | 0) >> 2] = HEAP32[($4 + 76 | 0) >> 2] | 0; + label$22 : { + if (!((HEAP32[($4 + 60 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$22 + } + $47 = HEAP32[($4 + 60 | 0) >> 2] | 0; + label$23 : { + if (($47 | 0) == (0 | 0) & 1 | 0) { + break label$23 + } + operator_20delete_28void__29($47 | 0); + } + HEAP32[($4 + 60 | 0) >> 2] = 0; + } + break label$1; + case 3: + HEAP32[($4 + 56 | 0) >> 2] = HEAP32[($4 + 76 | 0) >> 2] | 0; + label$24 : { + if (!((HEAP32[($4 + 56 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$24 + } + $63 = HEAP32[($4 + 56 | 0) >> 2] | 0; + label$25 : { + if (($63 | 0) == (0 | 0) & 1 | 0) { + break label$25 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$63 >> 2] | 0) + 4 | 0) >> 2] | 0 | 0]($63); + } + HEAP32[($4 + 56 | 0) >> 2] = 0; + } + break label$1; + case 4: + HEAP32[($4 + 52 | 0) >> 2] = HEAP32[($4 + 76 | 0) >> 2] | 0; + label$26 : { + if (!((HEAP32[($4 + 52 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$26 + } + $81 = HEAP32[($4 + 52 | 0) >> 2] | 0; + label$27 : { + if (($81 | 0) == (0 | 0) & 1 | 0) { + break label$27 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$81 >> 2] | 0) + 4 | 0) >> 2] | 0 | 0]($81); + } + HEAP32[($4 + 52 | 0) >> 2] = 0; + } + break label$1; + case 5: + HEAP32[($4 + 48 | 0) >> 2] = HEAP32[($4 + 76 | 0) >> 2] | 0; + label$28 : { + if (!((HEAP32[($4 + 48 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$28 + } + $99 = HEAP32[($4 + 48 | 0) >> 2] | 0; + label$29 : { + if (($99 | 0) == (0 | 0) & 1 | 0) { + break label$29 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$99 >> 2] | 0) + 4 | 0) >> 2] | 0 | 0]($99); + } + HEAP32[($4 + 48 | 0) >> 2] = 0; + } + break label$1; + case 7: + HEAP32[($4 + 44 | 0) >> 2] = HEAP32[($4 + 76 | 0) >> 2] | 0; + label$30 : { + if (!((HEAP32[($4 + 44 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$30 + } + $117 = HEAP32[($4 + 44 | 0) >> 2] | 0; + label$31 : { + if (($117 | 0) == (0 | 0) & 1 | 0) { + break label$31 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$117 >> 2] | 0) + 4 | 0) >> 2] | 0 | 0]($117); + } + HEAP32[($4 + 44 | 0) >> 2] = 0; + } + break label$1; + case 8: + HEAP32[($4 + 40 | 0) >> 2] = HEAP32[($4 + 76 | 0) >> 2] | 0; + label$32 : { + if (!((HEAP32[($4 + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$32 + } + $135 = HEAP32[($4 + 40 | 0) >> 2] | 0; + label$33 : { + if (($135 | 0) == (0 | 0) & 1 | 0) { + break label$33 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$135 >> 2] | 0) + 4 | 0) >> 2] | 0 | 0]($135); + } + HEAP32[($4 + 40 | 0) >> 2] = 0; + } + break label$1; + case 9: + HEAP32[($4 + 36 | 0) >> 2] = HEAP32[($4 + 76 | 0) >> 2] | 0; + label$34 : { + if (!((HEAP32[($4 + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$34 + } + $153 = HEAP32[($4 + 36 | 0) >> 2] | 0; + label$35 : { + if (($153 | 0) == (0 | 0) & 1 | 0) { + break label$35 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$153 >> 2] | 0) + 4 | 0) >> 2] | 0 | 0]($153); + } + HEAP32[($4 + 36 | 0) >> 2] = 0; + } + break label$1; + case 10: + HEAP32[($4 + 32 | 0) >> 2] = HEAP32[($4 + 76 | 0) >> 2] | 0; + label$36 : { + if (!((HEAP32[($4 + 32 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$36 + } + $171 = HEAP32[($4 + 32 | 0) >> 2] | 0; + label$37 : { + if (($171 | 0) == (0 | 0) & 1 | 0) { + break label$37 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$171 >> 2] | 0) + 4 | 0) >> 2] | 0 | 0]($171); + } + HEAP32[($4 + 32 | 0) >> 2] = 0; + } + break label$1; + case 11: + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 76 | 0) >> 2] | 0; + label$38 : { + if (!((HEAP32[($4 + 28 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$38 + } + $189 = HEAP32[($4 + 28 | 0) >> 2] | 0; + label$39 : { + if (($189 | 0) == (0 | 0) & 1 | 0) { + break label$39 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$189 >> 2] | 0) + 4 | 0) >> 2] | 0 | 0]($189); + } + HEAP32[($4 + 28 | 0) >> 2] = 0; + } + break label$1; + case 12: + HEAP32[($4 + 24 | 0) >> 2] = HEAP32[($4 + 76 | 0) >> 2] | 0; + label$40 : { + if (!((HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$40 + } + $207 = HEAP32[($4 + 24 | 0) >> 2] | 0; + label$41 : { + if (($207 | 0) == (0 | 0) & 1 | 0) { + break label$41 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$207 >> 2] | 0) + 4 | 0) >> 2] | 0 | 0]($207); + } + HEAP32[($4 + 24 | 0) >> 2] = 0; + } + break label$1; + case 13: + HEAP32[($4 + 20 | 0) >> 2] = HEAP32[($4 + 76 | 0) >> 2] | 0; + label$42 : { + if (!((HEAP32[($4 + 20 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$42 + } + $225 = HEAP32[($4 + 20 | 0) >> 2] | 0; + label$43 : { + if (($225 | 0) == (0 | 0) & 1 | 0) { + break label$43 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$225 >> 2] | 0) + 4 | 0) >> 2] | 0 | 0]($225); + } + HEAP32[($4 + 20 | 0) >> 2] = 0; + } + break label$1; + case 6: + HEAP32[($4 + 16 | 0) >> 2] = HEAP32[($4 + 76 | 0) >> 2] | 0; + label$44 : { + if (!((HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$44 + } + $243 = HEAP32[($4 + 16 | 0) >> 2] | 0; + label$45 : { + if (($243 | 0) == (0 | 0) & 1 | 0) { + break label$45 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$243 >> 2] | 0) + 4 | 0) >> 2] | 0 | 0]($243); + } + HEAP32[($4 + 16 | 0) >> 2] = 0; + } + break label$1; + case 14: + HEAP32[($4 + 12 | 0) >> 2] = HEAP32[($4 + 76 | 0) >> 2] | 0; + label$46 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$46 + } + $261 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$47 : { + if (($261 | 0) == (0 | 0) & 1 | 0) { + break label$47 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$261 >> 2] | 0) + 4 | 0) >> 2] | 0 | 0]($261); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + break label$1; + default: + break label$2; + }; + } + } + __stack_pointer = $4 + 80 | 0; + return; + } + + function btVector3__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function RayCallback_hasHit_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $8 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $8 = (btCollisionWorld__RayResultCallback__hasHit_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0) & 1 | 0; + __stack_pointer = $3 + 16 | 0; + return $8 | 0; + } + + function btCollisionWorld__RayResultCallback__hasHit_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0 | 0; + } + + function ConvexCallback_hasHit_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $8 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $8 = (btCollisionWorld__ConvexResultCallback__hasHit_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0) & 1 | 0; + __stack_pointer = $3 + 16 | 0; + return $8 | 0; + } + + function btCollisionWorld__ConvexResultCallback__hasHit_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0 | 0; + } + + function ccClosestRayCallback_static_28_29() { + var $2 = 0, $18 = 0; + $2 = __stack_pointer - 32 | 0; + __stack_pointer = $2; + label$1 : { + if (!(((HEAPU8[(GOT_data_internal___memory_base + 113324 | 0) >> 0] | 0) & 255 | 0 | 0) == (0 & 255 | 0 | 0) & 1 | 0)) { + break label$1 + } + btVector3__btVector3_28_29($2 + 16 | 0 | 0) | 0; + btVector3__btVector3_28_29($2 | 0) | 0; + $18 = GOT_data_internal___memory_base; + cc__ccClosestRayResultCallback__ccClosestRayResultCallback_28btVector3_20const__2c_20btVector3_20const__29($18 + 113232 | 0 | 0, $2 + 16 | 0 | 0, $2 | 0) | 0; + __cxa_atexit(GOT_data_internal___table_base + 1 | 0 | 0, 0 | 0, $18 + 65536 | 0 | 0) | 0; + HEAP8[($18 + 113324 | 0) >> 0] = 1; + } + __stack_pointer = $2 + 32 | 0; + return GOT_data_internal___memory_base + 113232 | 0 | 0; + } + + function btVector3__btVector3_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function cc__ccClosestRayResultCallback__ccClosestRayResultCallback_28btVector3_20const__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btCollisionWorld__ClosestRayResultCallback__ClosestRayResultCallback_28btVector3_20const__2c_20btVector3_20const__29($6 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$6 >> 2] = GOT_data_internal_vtable_20for_20cc__ccClosestRayResultCallback + 8 | 0; + HEAP32[($6 + 84 | 0) >> 2] = 0; + HEAP8[($6 + 88 | 0) >> 0] = 1; + HEAP32[($6 + 12 | 0) >> 2] = -1; + __stack_pointer = $5 + 16 | 0; + return $6 | 0; + } + + function __cxx_global_array_dtor_5($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + cc__ccClosestRayResultCallback___ccClosestRayResultCallback_28_29(GOT_data_internal___memory_base + 113232 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCollisionWorld__ClosestRayResultCallback__ClosestRayResultCallback_28btVector3_20const__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5 = 0, $6 = 0, $11 = 0, $14 = 0, $19 = 0, $22 = 0, $61 = 0, $71 = 0, $80 = 0, $90 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btCollisionWorld__RayResultCallback__RayResultCallback_28_29($6 | 0) | 0; + HEAP32[$6 >> 2] = GOT_data_internal_vtable_20for_20btCollisionWorld__ClosestRayResultCallback + 8 | 0; + $11 = $6 + 20 | 0; + i64toi32_i32$2 = HEAP32[($5 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $61 = i64toi32_i32$0; + i64toi32_i32$0 = $11; + HEAP32[i64toi32_i32$0 >> 2] = $61; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $14 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $14 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $71 = i64toi32_i32$1; + i64toi32_i32$1 = $11 + $14 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $71; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $19 = $6 + 36 | 0; + i64toi32_i32$2 = HEAP32[($5 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $80 = i64toi32_i32$0; + i64toi32_i32$0 = $19; + HEAP32[i64toi32_i32$0 >> 2] = $80; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $22 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $22 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $90 = i64toi32_i32$1; + i64toi32_i32$1 = $19 + $22 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $90; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__btVector3_28_29($6 + 52 | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 68 | 0 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $6 | 0; + } + + function cc__ccClosestRayResultCallback___ccClosestRayResultCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionWorld__ClosestRayResultCallback___ClosestRayResultCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCollisionWorld__ClosestRayResultCallback___ClosestRayResultCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionWorld__RayResultCallback___RayResultCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function ccClosestRayCallback_setFlags_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return; + } + + function ccClosestRayCallback_reset_28int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $13 = 0, $15 = 0, $22 = 0, $24 = 0, $65 = 0, $75 = 0, $86 = 0, $96 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP8[($7 + 15 | 0) >> 0] = $4; + HEAP32[($7 + 8 | 0) >> 2] = HEAP32[($7 + 28 | 0) >> 2] | 0; + $13 = (HEAP32[($7 + 8 | 0) >> 2] | 0) + 20 | 0; + i64toi32_i32$2 = HEAP32[($7 + 24 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $65 = i64toi32_i32$0; + i64toi32_i32$0 = $13; + HEAP32[i64toi32_i32$0 >> 2] = $65; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $15 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $15 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $75 = i64toi32_i32$1; + i64toi32_i32$1 = $13 + $15 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $75; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $22 = (HEAP32[($7 + 8 | 0) >> 2] | 0) + 36 | 0; + i64toi32_i32$2 = HEAP32[($7 + 20 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $86 = i64toi32_i32$0; + i64toi32_i32$0 = $22; + HEAP32[i64toi32_i32$0 >> 2] = $86; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $24 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $24 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $96 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $24 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $96; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + cc__ccClosestRayResultCallback__reset_28int_2c_20bool_29(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0, HEAP32[($7 + 16 | 0) >> 2] | 0 | 0, (HEAPU8[($7 + 15 | 0) >> 0] | 0) & 1 | 0 | 0); + __stack_pointer = $7 + 32 | 0; + return; + } + + function cc__ccClosestRayResultCallback__reset_28int_2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $7 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP8[($5 + 7 | 0) >> 0] = $2; + $7 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[($7 + 12 | 0) >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + HEAP8[($7 + 88 | 0) >> 0] = (HEAPU8[($5 + 7 | 0) >> 0] | 0) & 1 | 0; + HEAPF32[($7 + 4 | 0) >> 2] = Math_fround(1.0); + HEAP32[($7 + 8 | 0) >> 2] = 0; + return; + } + + function ccClosestRayCallback_getHitNormalWorld_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = cc__ccClosestRayResultCallback__getHitNormalWorld_28_29(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function cc__ccClosestRayResultCallback__getHitNormalWorld_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 52 | 0 | 0; + } + + function ccClosestRayCallback_getHitPointWorld_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = cc__ccClosestRayResultCallback__getHitPointWorld_28_29(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function cc__ccClosestRayResultCallback__getHitPointWorld_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 68 | 0 | 0; + } + + function ccClosestRayCallback_getCollisionShapePtr_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = cc__ccClosestRayResultCallback__getCollisionShapePtr_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function cc__ccClosestRayResultCallback__getCollisionShapePtr_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 84 | 0) >> 2] | 0 | 0; + } + + function ccAllRayCallback_static_28_29() { + var $2 = 0, $18 = 0; + $2 = __stack_pointer - 32 | 0; + __stack_pointer = $2; + label$1 : { + if (!(((HEAPU8[(GOT_data_internal___memory_base + 113484 | 0) >> 0] | 0) & 255 | 0 | 0) == (0 & 255 | 0 | 0) & 1 | 0)) { + break label$1 + } + btVector3__btVector3_28_29($2 + 16 | 0 | 0) | 0; + btVector3__btVector3_28_29($2 | 0) | 0; + $18 = GOT_data_internal___memory_base; + cc__ccAllHitsRayResultCallback__ccAllHitsRayResultCallback_28btVector3_20const__2c_20btVector3_20const__29($18 + 113328 | 0 | 0, $2 + 16 | 0 | 0, $2 | 0) | 0; + __cxa_atexit(GOT_data_internal___table_base + 2 | 0 | 0, 0 | 0, $18 + 65536 | 0 | 0) | 0; + HEAP8[($18 + 113484 | 0) >> 0] = 1; + } + __stack_pointer = $2 + 32 | 0; + return GOT_data_internal___memory_base + 113328 | 0 | 0; + } + + function cc__ccAllHitsRayResultCallback__ccAllHitsRayResultCallback_28btVector3_20const__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btCollisionWorld__AllHitsRayResultCallback__AllHitsRayResultCallback_28btVector3_20const__2c_20btVector3_20const__29($6 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$6 >> 2] = GOT_data_internal_vtable_20for_20cc__ccAllHitsRayResultCallback + 8 | 0; + btAlignedObjectArray_int___btAlignedObjectArray_28_29($6 + 132 | 0 | 0) | 0; + HEAP8[($6 + 152 | 0) >> 0] = 1; + HEAP32[($6 + 12 | 0) >> 2] = -1; + __stack_pointer = $5 + 16 | 0; + return $6 | 0; + } + + function __cxx_global_array_dtor_6($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + cc__ccAllHitsRayResultCallback___ccAllHitsRayResultCallback_28_29(GOT_data_internal___memory_base + 113328 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCollisionWorld__AllHitsRayResultCallback__AllHitsRayResultCallback_28btVector3_20const__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0, $5 = 0, $13 = 0, $16 = 0, $21 = 0, $24 = 0, $70 = 0, $80 = 0, $89 = 0, $99 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btCollisionWorld__RayResultCallback__RayResultCallback_28_29($6 | 0) | 0; + HEAP32[$6 >> 2] = GOT_data_internal_vtable_20for_20btCollisionWorld__AllHitsRayResultCallback + 8 | 0; + btAlignedObjectArray_btCollisionObject_20const____btAlignedObjectArray_28_29($6 + 20 | 0 | 0) | 0; + $13 = $6 + 40 | 0; + i64toi32_i32$2 = HEAP32[($5 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $70 = i64toi32_i32$0; + i64toi32_i32$0 = $13; + HEAP32[i64toi32_i32$0 >> 2] = $70; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $16 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $16 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $80 = i64toi32_i32$1; + i64toi32_i32$1 = $13 + $16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $80; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $21 = $6 + 56 | 0; + i64toi32_i32$2 = HEAP32[($5 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $89 = i64toi32_i32$0; + i64toi32_i32$0 = $21; + HEAP32[i64toi32_i32$0 >> 2] = $89; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $24 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $24 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $99 = i64toi32_i32$1; + i64toi32_i32$1 = $21 + $24 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $99; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btAlignedObjectArray_btVector3___btAlignedObjectArray_28_29($6 + 72 | 0 | 0) | 0; + btAlignedObjectArray_btVector3___btAlignedObjectArray_28_29($6 + 92 | 0 | 0) | 0; + btAlignedObjectArray_float___btAlignedObjectArray_28_29($6 + 112 | 0 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $6 | 0; + } + + function btAlignedObjectArray_int___btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_int_2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_int___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function cc__ccAllHitsRayResultCallback___ccAllHitsRayResultCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = GOT_data_internal_vtable_20for_20cc__ccAllHitsRayResultCallback + 8 | 0; + btAlignedObjectArray_int____btAlignedObjectArray_28_29($4 + 132 | 0 | 0) | 0; + btCollisionWorld__AllHitsRayResultCallback___AllHitsRayResultCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_int____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_int___clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCollisionWorld__AllHitsRayResultCallback___AllHitsRayResultCallback_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = GOT_data_internal_vtable_20for_20btCollisionWorld__AllHitsRayResultCallback + 8 | 0; + btAlignedObjectArray_float____btAlignedObjectArray_28_29($4 + 112 | 0 | 0) | 0; + btAlignedObjectArray_btVector3____btAlignedObjectArray_28_29($4 + 92 | 0 | 0) | 0; + btAlignedObjectArray_btVector3____btAlignedObjectArray_28_29($4 + 72 | 0 | 0) | 0; + btAlignedObjectArray_btCollisionObject_20const_____btAlignedObjectArray_28_29($4 + 20 | 0 | 0) | 0; + btCollisionWorld__RayResultCallback___RayResultCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function ccAllRayCallback_setFlags_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return; + } + + function ccAllRayCallback_reset_28int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $13 = 0, $15 = 0, $22 = 0, $24 = 0, $65 = 0, $75 = 0, $86 = 0, $96 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP8[($7 + 15 | 0) >> 0] = $4; + HEAP32[($7 + 8 | 0) >> 2] = HEAP32[($7 + 28 | 0) >> 2] | 0; + $13 = (HEAP32[($7 + 8 | 0) >> 2] | 0) + 40 | 0; + i64toi32_i32$2 = HEAP32[($7 + 24 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $65 = i64toi32_i32$0; + i64toi32_i32$0 = $13; + HEAP32[i64toi32_i32$0 >> 2] = $65; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $15 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $15 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $75 = i64toi32_i32$1; + i64toi32_i32$1 = $13 + $15 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $75; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $22 = (HEAP32[($7 + 8 | 0) >> 2] | 0) + 56 | 0; + i64toi32_i32$2 = HEAP32[($7 + 20 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $86 = i64toi32_i32$0; + i64toi32_i32$0 = $22; + HEAP32[i64toi32_i32$0 >> 2] = $86; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $24 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $24 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $96 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $24 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $96; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + cc__ccAllHitsRayResultCallback__reset_28unsigned_20int_2c_20bool_29(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0, HEAP32[($7 + 16 | 0) >> 2] | 0 | 0, (HEAPU8[($7 + 15 | 0) >> 0] | 0) & 1 | 0 | 0); + __stack_pointer = $7 + 32 | 0; + return; + } + + function cc__ccAllHitsRayResultCallback__reset_28unsigned_20int_2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $7 = 0; + $5 = __stack_pointer - 64 | 0; + __stack_pointer = $5; + HEAP32[($5 + 60 | 0) >> 2] = $0; + HEAP32[($5 + 56 | 0) >> 2] = $1; + HEAP8[($5 + 55 | 0) >> 0] = $2; + $7 = HEAP32[($5 + 60 | 0) >> 2] | 0; + HEAP32[($7 + 12 | 0) >> 2] = HEAP32[($5 + 56 | 0) >> 2] | 0; + HEAP8[($7 + 152 | 0) >> 0] = (HEAPU8[($5 + 55 | 0) >> 0] | 0) & 1 | 0; + HEAPF32[($7 + 4 | 0) >> 2] = Math_fround(1.0); + HEAP32[($7 + 8 | 0) >> 2] = 0; + HEAP32[($5 + 48 | 0) >> 2] = 0; + btAlignedObjectArray_int___resize_28int_2c_20int_20const__29($7 + 132 | 0 | 0, 0 | 0, $5 + 48 | 0 | 0); + HEAPF32[($5 + 44 | 0) >> 2] = Math_fround(0 | 0); + btAlignedObjectArray_float___resize_28int_2c_20float_20const__29($7 + 112 | 0 | 0, 0 | 0, $5 + 44 | 0 | 0); + HEAP32[($5 + 40 | 0) >> 2] = 0; + btAlignedObjectArray_btCollisionObject_20const____resize_28int_2c_20btCollisionObject_20const__20const__29($7 + 20 | 0 | 0, 0 | 0, $5 + 40 | 0 | 0); + btVector3__btVector3_28_29($5 + 24 | 0 | 0) | 0; + btAlignedObjectArray_btVector3___resize_28int_2c_20btVector3_20const__29($7 + 92 | 0 | 0, 0 | 0, $5 + 24 | 0 | 0); + btVector3__btVector3_28_29($5 + 8 | 0 | 0) | 0; + btAlignedObjectArray_btVector3___resize_28int_2c_20btVector3_20const__29($7 + 72 | 0 | 0, 0 | 0, $5 + 8 | 0 | 0); + __stack_pointer = $5 + 64 | 0; + return; + } + + function btAlignedObjectArray_int___resize_28int_2c_20int_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_int___size_28_29_20const($6 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + break label$1; + } + label$5 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) > (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + btAlignedObjectArray_int___reserve_28int_29($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[(HEAP32[($5 + 20 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btAlignedObjectArray_float___resize_28int_2c_20float_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_float___size_28_29_20const($6 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + break label$1; + } + label$5 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) > (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + btAlignedObjectArray_float___reserve_28int_29($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + HEAPF32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[(HEAP32[($5 + 20 | 0) >> 2] | 0) >> 2]); + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btAlignedObjectArray_btCollisionObject_20const____resize_28int_2c_20btCollisionObject_20const__20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btCollisionObject_20const____size_28_29_20const($6 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + break label$1; + } + label$5 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) > (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + btAlignedObjectArray_btCollisionObject_20const____reserve_28int_29($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[(HEAP32[($5 + 20 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btAlignedObjectArray_btVector3___resize_28int_2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0, $48 = 0, $51 = 0, $171 = 0, $181 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btVector3___size_28_29_20const($6 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + break label$1; + } + label$5 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) > (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + btAlignedObjectArray_btVector3___reserve_28int_29($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + $48 = btVector3__operator_20new_28unsigned_20long_2c_20void__29(16 | 0, (HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0; + i64toi32_i32$2 = HEAP32[($5 + 20 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $171 = i64toi32_i32$0; + i64toi32_i32$0 = $48; + HEAP32[i64toi32_i32$0 >> 2] = $171; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $51 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $51 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $181 = i64toi32_i32$1; + i64toi32_i32$1 = $48 + $51 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $181; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function ccAllRayCallback_getHitPointWorld_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = cc__ccAllHitsRayResultCallback__getHitPointWorld_28_29(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function cc__ccAllHitsRayResultCallback__getHitPointWorld_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 92 | 0 | 0; + } + + function ccAllRayCallback_getHitNormalWorld_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = cc__ccAllHitsRayResultCallback__getHitNormalWorld_28_29(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function cc__ccAllHitsRayResultCallback__getHitNormalWorld_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 72 | 0 | 0; + } + + function ccAllRayCallback_getCollisionShapePtrs_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = cc__ccAllHitsRayResultCallback__getCollisionShapePtrs_28_29(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function cc__ccAllHitsRayResultCallback__getCollisionShapePtrs_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 132 | 0 | 0; + } + + function ccClosestConvexCallback_static_28_29() { + var $2 = 0, $18 = 0; + $2 = __stack_pointer - 32 | 0; + __stack_pointer = $2; + label$1 : { + if (!(((HEAPU8[(GOT_data_internal___memory_base + 113580 | 0) >> 0] | 0) & 255 | 0 | 0) == (0 & 255 | 0 | 0) & 1 | 0)) { + break label$1 + } + btVector3__btVector3_28_29($2 + 16 | 0 | 0) | 0; + btVector3__btVector3_28_29($2 | 0) | 0; + $18 = GOT_data_internal___memory_base; + cc__ccClosestConvexResultCallback__ccClosestConvexResultCallback_28btVector3_20const__2c_20btVector3_20const__29($18 + 113488 | 0 | 0, $2 + 16 | 0 | 0, $2 | 0) | 0; + __cxa_atexit(GOT_data_internal___table_base + 3 | 0 | 0, 0 | 0, $18 + 65536 | 0 | 0) | 0; + HEAP8[($18 + 113580 | 0) >> 0] = 1; + } + __stack_pointer = $2 + 32 | 0; + return GOT_data_internal___memory_base + 113488 | 0 | 0; + } + + function cc__ccClosestConvexResultCallback__ccClosestConvexResultCallback_28btVector3_20const__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btCollisionWorld__ClosestConvexResultCallback__ClosestConvexResultCallback_28btVector3_20const__2c_20btVector3_20const__29($6 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$6 >> 2] = GOT_data_internal_vtable_20for_20cc__ccClosestConvexResultCallback + 8 | 0; + HEAP32[($6 + 84 | 0) >> 2] = 0; + HEAP8[($6 + 88 | 0) >> 0] = 1; + HEAP32[($6 + 8 | 0) >> 2] = -1; + __stack_pointer = $5 + 16 | 0; + return $6 | 0; + } + + function __cxx_global_array_dtor_7($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + cc__ccClosestConvexResultCallback___ccClosestConvexResultCallback_28_29(GOT_data_internal___memory_base + 113488 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCollisionWorld__ClosestConvexResultCallback__ClosestConvexResultCallback_28btVector3_20const__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5 = 0, $6 = 0, $11 = 0, $14 = 0, $19 = 0, $22 = 0, $61 = 0, $71 = 0, $80 = 0, $90 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btCollisionWorld__ConvexResultCallback__ConvexResultCallback_28_29($6 | 0) | 0; + HEAP32[$6 >> 2] = GOT_data_internal_vtable_20for_20btCollisionWorld__ClosestConvexResultCallback + 8 | 0; + $11 = $6 + 20 | 0; + i64toi32_i32$2 = HEAP32[($5 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $61 = i64toi32_i32$0; + i64toi32_i32$0 = $11; + HEAP32[i64toi32_i32$0 >> 2] = $61; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $14 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $14 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $71 = i64toi32_i32$1; + i64toi32_i32$1 = $11 + $14 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $71; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $19 = $6 + 36 | 0; + i64toi32_i32$2 = HEAP32[($5 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $80 = i64toi32_i32$0; + i64toi32_i32$0 = $19; + HEAP32[i64toi32_i32$0 >> 2] = $80; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $22 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $22 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $90 = i64toi32_i32$1; + i64toi32_i32$1 = $19 + $22 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $90; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__btVector3_28_29($6 + 52 | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 68 | 0 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $6 | 0; + } + + function cc__ccClosestConvexResultCallback___ccClosestConvexResultCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionWorld__ClosestConvexResultCallback___ClosestConvexResultCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCollisionWorld__ClosestConvexResultCallback___ClosestConvexResultCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionWorld__ConvexResultCallback___ConvexResultCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function ccClosestConvexCallback_reset_28int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $13 = 0, $15 = 0, $22 = 0, $24 = 0, $65 = 0, $75 = 0, $86 = 0, $96 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP8[($7 + 15 | 0) >> 0] = $4; + HEAP32[($7 + 8 | 0) >> 2] = HEAP32[($7 + 28 | 0) >> 2] | 0; + $13 = (HEAP32[($7 + 8 | 0) >> 2] | 0) + 20 | 0; + i64toi32_i32$2 = HEAP32[($7 + 24 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $65 = i64toi32_i32$0; + i64toi32_i32$0 = $13; + HEAP32[i64toi32_i32$0 >> 2] = $65; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $15 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $15 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $75 = i64toi32_i32$1; + i64toi32_i32$1 = $13 + $15 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $75; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $22 = (HEAP32[($7 + 8 | 0) >> 2] | 0) + 36 | 0; + i64toi32_i32$2 = HEAP32[($7 + 20 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $86 = i64toi32_i32$0; + i64toi32_i32$0 = $22; + HEAP32[i64toi32_i32$0 >> 2] = $86; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $24 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $24 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $96 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $24 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $96; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + cc__ccClosestConvexResultCallback__reset_28int_2c_20bool_29(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0, HEAP32[($7 + 16 | 0) >> 2] | 0 | 0, (HEAPU8[($7 + 15 | 0) >> 0] | 0) & 1 | 0 | 0); + __stack_pointer = $7 + 32 | 0; + return; + } + + function cc__ccClosestConvexResultCallback__reset_28int_2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $7 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP8[($5 + 7 | 0) >> 0] = $2; + $7 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[($7 + 12 | 0) >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + HEAP8[($7 + 88 | 0) >> 0] = (HEAPU8[($5 + 7 | 0) >> 0] | 0) & 1 | 0; + HEAPF32[($7 + 4 | 0) >> 2] = Math_fround(1.0); + HEAP32[($7 + 16 | 0) >> 2] = 0; + return; + } + + function ccClosestConvexCallback_getHitNormalWorld_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = cc__ccClosestConvexResultCallback__getHitNormalWorld_28_29(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function cc__ccClosestConvexResultCallback__getHitNormalWorld_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 52 | 0 | 0; + } + + function ccClosestConvexCallback_getHitPointWorld_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = cc__ccClosestConvexResultCallback__getHitPointWorld_28_29(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function cc__ccClosestConvexResultCallback__getHitPointWorld_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 68 | 0 | 0; + } + + function ccClosestConvexCallback_getCollisionShapePtr_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = cc__ccClosestConvexResultCallback__getCollisionShapePtr_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function cc__ccClosestConvexResultCallback__getCollisionShapePtr_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 84 | 0) >> 2] | 0 | 0; + } + + function ccAllConvexCallback_static_28_29() { + var $2 = 0, $18 = 0; + $2 = __stack_pointer - 32 | 0; + __stack_pointer = $2; + label$1 : { + if (!(((HEAPU8[(GOT_data_internal___memory_base + 113740 | 0) >> 0] | 0) & 255 | 0 | 0) == (0 & 255 | 0 | 0) & 1 | 0)) { + break label$1 + } + btVector3__btVector3_28_29($2 + 16 | 0 | 0) | 0; + btVector3__btVector3_28_29($2 | 0) | 0; + $18 = GOT_data_internal___memory_base; + cc__ccAllHitsConvexResultCallback__ccAllHitsConvexResultCallback_28btVector3_20const__2c_20btVector3_20const__29($18 + 113584 | 0 | 0, $2 + 16 | 0 | 0, $2 | 0) | 0; + __cxa_atexit(GOT_data_internal___table_base + 4 | 0 | 0, 0 | 0, $18 + 65536 | 0 | 0) | 0; + HEAP8[($18 + 113740 | 0) >> 0] = 1; + } + __stack_pointer = $2 + 32 | 0; + return GOT_data_internal___memory_base + 113584 | 0 | 0; + } + + function cc__ccAllHitsConvexResultCallback__ccAllHitsConvexResultCallback_28btVector3_20const__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btCollisionWorld__AllHitsConvexResultCallback__AllHitsConvexResultCallback_28btVector3_20const__2c_20btVector3_20const__29($6 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$6 >> 2] = GOT_data_internal_vtable_20for_20cc__ccAllHitsConvexResultCallback + 8 | 0; + btAlignedObjectArray_int___btAlignedObjectArray_28_29($6 + 132 | 0 | 0) | 0; + HEAP8[($6 + 152 | 0) >> 0] = 1; + HEAP32[($6 + 8 | 0) >> 2] = -1; + __stack_pointer = $5 + 16 | 0; + return $6 | 0; + } + + function __cxx_global_array_dtor_8($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + cc__ccAllHitsConvexResultCallback___ccAllHitsConvexResultCallback_28_29(GOT_data_internal___memory_base + 113584 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCollisionWorld__AllHitsConvexResultCallback__AllHitsConvexResultCallback_28btVector3_20const__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0, $5 = 0, $13 = 0, $16 = 0, $21 = 0, $24 = 0, $70 = 0, $80 = 0, $89 = 0, $99 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btCollisionWorld__ConvexResultCallback__ConvexResultCallback_28_29($6 | 0) | 0; + HEAP32[$6 >> 2] = GOT_data_internal_vtable_20for_20btCollisionWorld__AllHitsConvexResultCallback + 8 | 0; + btAlignedObjectArray_btCollisionObject_20const____btAlignedObjectArray_28_29($6 + 20 | 0 | 0) | 0; + $13 = $6 + 40 | 0; + i64toi32_i32$2 = HEAP32[($5 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $70 = i64toi32_i32$0; + i64toi32_i32$0 = $13; + HEAP32[i64toi32_i32$0 >> 2] = $70; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $16 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $16 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $80 = i64toi32_i32$1; + i64toi32_i32$1 = $13 + $16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $80; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $21 = $6 + 56 | 0; + i64toi32_i32$2 = HEAP32[($5 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $89 = i64toi32_i32$0; + i64toi32_i32$0 = $21; + HEAP32[i64toi32_i32$0 >> 2] = $89; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $24 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $24 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $99 = i64toi32_i32$1; + i64toi32_i32$1 = $21 + $24 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $99; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btAlignedObjectArray_btVector3___btAlignedObjectArray_28_29($6 + 72 | 0 | 0) | 0; + btAlignedObjectArray_btVector3___btAlignedObjectArray_28_29($6 + 92 | 0 | 0) | 0; + btAlignedObjectArray_float___btAlignedObjectArray_28_29($6 + 112 | 0 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $6 | 0; + } + + function cc__ccAllHitsConvexResultCallback___ccAllHitsConvexResultCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = GOT_data_internal_vtable_20for_20cc__ccAllHitsConvexResultCallback + 8 | 0; + btAlignedObjectArray_int____btAlignedObjectArray_28_29($4 + 132 | 0 | 0) | 0; + btCollisionWorld__AllHitsConvexResultCallback___AllHitsConvexResultCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCollisionWorld__AllHitsConvexResultCallback___AllHitsConvexResultCallback_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = GOT_data_internal_vtable_20for_20btCollisionWorld__AllHitsConvexResultCallback + 8 | 0; + btAlignedObjectArray_float____btAlignedObjectArray_28_29($4 + 112 | 0 | 0) | 0; + btAlignedObjectArray_btVector3____btAlignedObjectArray_28_29($4 + 92 | 0 | 0) | 0; + btAlignedObjectArray_btVector3____btAlignedObjectArray_28_29($4 + 72 | 0 | 0) | 0; + btAlignedObjectArray_btCollisionObject_20const_____btAlignedObjectArray_28_29($4 + 20 | 0 | 0) | 0; + btCollisionWorld__ConvexResultCallback___ConvexResultCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function ccAllConvexCallback_reset_28int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $13 = 0, $15 = 0, $22 = 0, $24 = 0, $65 = 0, $75 = 0, $86 = 0, $96 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP8[($7 + 15 | 0) >> 0] = $4; + HEAP32[($7 + 8 | 0) >> 2] = HEAP32[($7 + 28 | 0) >> 2] | 0; + $13 = (HEAP32[($7 + 8 | 0) >> 2] | 0) + 40 | 0; + i64toi32_i32$2 = HEAP32[($7 + 24 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $65 = i64toi32_i32$0; + i64toi32_i32$0 = $13; + HEAP32[i64toi32_i32$0 >> 2] = $65; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $15 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $15 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $75 = i64toi32_i32$1; + i64toi32_i32$1 = $13 + $15 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $75; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $22 = (HEAP32[($7 + 8 | 0) >> 2] | 0) + 56 | 0; + i64toi32_i32$2 = HEAP32[($7 + 20 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $86 = i64toi32_i32$0; + i64toi32_i32$0 = $22; + HEAP32[i64toi32_i32$0 >> 2] = $86; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $24 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $24 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $96 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $24 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $96; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + cc__ccAllHitsConvexResultCallback__reset_28int_2c_20bool_29(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0, HEAP32[($7 + 16 | 0) >> 2] | 0 | 0, (HEAPU8[($7 + 15 | 0) >> 0] | 0) & 1 | 0 | 0); + __stack_pointer = $7 + 32 | 0; + return; + } + + function cc__ccAllHitsConvexResultCallback__reset_28int_2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $7 = 0; + $5 = __stack_pointer - 64 | 0; + __stack_pointer = $5; + HEAP32[($5 + 60 | 0) >> 2] = $0; + HEAP32[($5 + 56 | 0) >> 2] = $1; + HEAP8[($5 + 55 | 0) >> 0] = $2; + $7 = HEAP32[($5 + 60 | 0) >> 2] | 0; + HEAP32[($7 + 12 | 0) >> 2] = HEAP32[($5 + 56 | 0) >> 2] | 0; + HEAP8[($7 + 152 | 0) >> 0] = (HEAPU8[($5 + 55 | 0) >> 0] | 0) & 1 | 0; + HEAPF32[($7 + 4 | 0) >> 2] = Math_fround(1.0); + HEAP32[($5 + 48 | 0) >> 2] = 0; + btAlignedObjectArray_int___resize_28int_2c_20int_20const__29($7 + 132 | 0 | 0, 0 | 0, $5 + 48 | 0 | 0); + HEAPF32[($5 + 44 | 0) >> 2] = Math_fround(0 | 0); + btAlignedObjectArray_float___resize_28int_2c_20float_20const__29($7 + 112 | 0 | 0, 0 | 0, $5 + 44 | 0 | 0); + HEAP32[($5 + 40 | 0) >> 2] = 0; + btAlignedObjectArray_btCollisionObject_20const____resize_28int_2c_20btCollisionObject_20const__20const__29($7 + 20 | 0 | 0, 0 | 0, $5 + 40 | 0 | 0); + btVector3__btVector3_28_29($5 + 24 | 0 | 0) | 0; + btAlignedObjectArray_btVector3___resize_28int_2c_20btVector3_20const__29($7 + 92 | 0 | 0, 0 | 0, $5 + 24 | 0 | 0); + btVector3__btVector3_28_29($5 + 8 | 0 | 0) | 0; + btAlignedObjectArray_btVector3___resize_28int_2c_20btVector3_20const__29($7 + 72 | 0 | 0, 0 | 0, $5 + 8 | 0 | 0); + __stack_pointer = $5 + 64 | 0; + return; + } + + function ccAllConvexCallback_getHitPointWorld_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = cc__ccAllHitsConvexResultCallback__getHitPointWorld_28_29(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function cc__ccAllHitsConvexResultCallback__getHitPointWorld_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 92 | 0 | 0; + } + + function ccAllConvexCallback_getHitNormalWorld_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = cc__ccAllHitsConvexResultCallback__getHitNormalWorld_28_29(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function cc__ccAllHitsConvexResultCallback__getHitNormalWorld_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 72 | 0 | 0; + } + + function ccAllConvexCallback_getCollisionShapePtrs_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = cc__ccAllHitsConvexResultCallback__getCollisionShapePtrs_28_29(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function cc__ccAllHitsConvexResultCallback__getCollisionShapePtrs_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 132 | 0 | 0; + } + + function ManifoldPoint_get_m_positionWorldOnA_28int_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + return (HEAP32[($3 + 8 | 0) >> 2] | 0) + 48 | 0 | 0; + } + + function ManifoldPoint_get_m_positionWorldOnB_28int_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + return (HEAP32[($3 + 8 | 0) >> 2] | 0) + 32 | 0 | 0; + } + + function ManifoldPoint_get_m_normalWorldOnB_28int_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + return (HEAP32[($3 + 8 | 0) >> 2] | 0) + 64 | 0 | 0; + } + + function ManifoldPoint_get_m_localPointA_28int_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + return HEAP32[($3 + 8 | 0) >> 2] | 0 | 0; + } + + function ManifoldPoint_get_m_localPointB_28int_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + return (HEAP32[($3 + 8 | 0) >> 2] | 0) + 16 | 0 | 0; + } + + function btManifoldPoint__getDistance_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 80 | 0) >> 2])); + } + + function ManifoldPoint_getShape0_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = btManifoldPoint__getShape0_28_29(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function btManifoldPoint__getShape0_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 200 | 0) >> 2] | 0 | 0; + } + + function ManifoldPoint_getShape1_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = btManifoldPoint__getShape1_28_29(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function btManifoldPoint__getShape1_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 204 | 0) >> 2] | 0 | 0; + } + + function ManifoldPoint_get_m_index0_28int_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + return HEAP32[((HEAP32[($3 + 8 | 0) >> 2] | 0) + 108 | 0) >> 2] | 0 | 0; + } + + function ManifoldPoint_get_m_index1_28int_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + return HEAP32[((HEAP32[($3 + 8 | 0) >> 2] | 0) + 112 | 0) >> 2] | 0 | 0; + } + + function PersistentManifold_getBody0_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = btPersistentManifold__getBody0_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function btPersistentManifold__getBody0_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 836 | 0) >> 2] | 0 | 0; + } + + function PersistentManifold_getBody1_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = btPersistentManifold__getBody1_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function btPersistentManifold__getBody1_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 840 | 0) >> 2] | 0 | 0; + } + + function PersistentManifold_getNumContacts_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = btPersistentManifold__getNumContacts_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function btPersistentManifold__getNumContacts_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 844 | 0) >> 2] | 0 | 0; + } + + function PersistentManifold_getContactPoint_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $8 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + $8 = btPersistentManifold__getContactPoint_28int_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $8 | 0; + } + + function btPersistentManifold__getContactPoint_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $14 = 0, $5 = 0, $26 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 844 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$1 + } + $14 = GOT_data_internal___memory_base; + __assert_fail($14 + 69167 | 0 | 0, $14 + 79943 | 0 | 0, 133 | 0, $14 + 67585 | 0 | 0); + wasm2js_trap(); + } + $26 = ($5 + 4 | 0) + Math_imul(HEAP32[($4 + 8 | 0) >> 2] | 0, 208) | 0; + __stack_pointer = $4 + 16 | 0; + return $26 | 0; + } + + function ControllerHit_getHitWorldPos($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + return (HEAP32[($3 + 8 | 0) >> 2] | 0) + 4 | 0 | 0; + } + + function ControllerHit_getHitWorldNormal($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + return (HEAP32[($3 + 8 | 0) >> 2] | 0) + 20 | 0 | 0; + } + + function ControllerHit_getHitMotionDir($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + return (HEAP32[($3 + 8 | 0) >> 2] | 0) + 36 | 0 | 0; + } + + function ControllerHit_getHitMotionLength($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 8 | 0) >> 2] | 0) + 52 | 0) >> 2])); + } + + function ControllerShapeHit_getHitShape($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + return HEAP32[((HEAP32[($3 + 8 | 0) >> 2] | 0) + 56 | 0) >> 2] | 0 | 0; + } + + function ControllerShapeHit_getHitCollisionObject($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + return HEAP32[((HEAP32[($3 + 8 | 0) >> 2] | 0) + 60 | 0) >> 2] | 0 | 0; + } + + function CharacterController_setContactOffset($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btCharacterController__setContactOffset_28float_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCharacterController__setContactOffset_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + return; + } + + function CharacterController_setStepOffset($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btCharacterController__setStepHeight_28float_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCharacterController__setStepHeight_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 32 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + return; + } + + function CharacterController_setSlopeLimit($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btCharacterController__setMaxSlope_28float_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))); + __stack_pointer = $4 + 16 | 0; + return; + } + + function CharacterController_setCollision($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP8[($4 + 11 | 0) >> 0] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btCharacterController__setCollision_28bool_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, (HEAPU8[($4 + 11 | 0) >> 0] | 0) & 1 | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCharacterController__setCollision_28bool_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP8[($4 + 11 | 0) >> 0] = $1; + HEAP8[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 62 | 0) >> 0] = (HEAPU8[($4 + 11 | 0) >> 0] | 0) & 1 | 0; + return; + } + + function CharacterController_setOverlapRecovery($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP8[($4 + 11 | 0) >> 0] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btCharacterController__setOverlapRecovery_28bool_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, (HEAPU8[($4 + 11 | 0) >> 0] | 0) & 1 | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCharacterController__setOverlapRecovery_28bool_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP8[($4 + 11 | 0) >> 0] = $1; + HEAP8[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 63 | 0) >> 0] = (HEAPU8[($4 + 11 | 0) >> 0] | 0) & 1 | 0; + return; + } + + function CharacterController_getGhostObject($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = btCharacterController__getGhostObject_28_29(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function btCharacterController__getGhostObject_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function CharacterController_getCollisionShape($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = btCharacterController__getCollisionShape_28_29(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function btCharacterController__getCollisionShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function CharacterController_move($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = Math_fround($3); + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $8 = 0, $9 = 0, $56 = 0, $60 = 0, $22 = 0; + $6 = __stack_pointer - 48 | 0; + __stack_pointer = $6; + HEAP32[($6 + 44 | 0) >> 2] = $0; + HEAP32[($6 + 40 | 0) >> 2] = $1; + HEAPF32[($6 + 36 | 0) >> 2] = $2; + HEAPF32[($6 + 32 | 0) >> 2] = $3; + HEAP32[($6 + 28 | 0) >> 2] = HEAP32[($6 + 44 | 0) >> 2] | 0; + $8 = HEAP32[($6 + 40 | 0) >> 2] | 0; + $9 = 8; + i64toi32_i32$2 = $8 + $9 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $56 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 8 | 0) + $9 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $56; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $60 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 8 | 0) >> 2] = $60; + HEAP32[($6 + 12 | 0) >> 2] = i64toi32_i32$0; + $22 = btCharacterController__move_28btVector3_20const__2c_20float_2c_20float_29(HEAP32[($6 + 28 | 0) >> 2] | 0 | 0, $6 + 8 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 36 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($6 + 32 | 0) >> 2]))) | 0; + __stack_pointer = $6 + 48 | 0; + return $22 | 0; + } + + function CharacterController_getPosition($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = btCharacterController__getPosition_28_29(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function CapsuleCharacterControllerDesc_new($0, $1, $2, $3, $4, $5, $6, $7) { + $0 = Math_fround($0); + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = Math_fround($6); + $7 = Math_fround($7); + var $10 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $12 = 0, $22 = 0, $24 = 0, $31 = 0, $33 = 0, $101 = 0, $111 = 0, $122 = 0, $132 = 0, $43 = 0; + $10 = __stack_pointer - 48 | 0; + __stack_pointer = $10; + HEAPF32[($10 + 44 | 0) >> 2] = $0; + HEAPF32[($10 + 40 | 0) >> 2] = $1; + HEAPF32[($10 + 36 | 0) >> 2] = $2; + HEAP32[($10 + 32 | 0) >> 2] = $3; + HEAP32[($10 + 28 | 0) >> 2] = $4; + HEAP32[($10 + 24 | 0) >> 2] = $5; + HEAPF32[($10 + 20 | 0) >> 2] = $6; + HEAPF32[($10 + 16 | 0) >> 2] = $7; + $12 = operator_20new_28unsigned_20long_29(60 | 0) | 0; + btCapsuleCharacterControllerDesc__btCapsuleCharacterControllerDesc_28_29($12 | 0) | 0; + HEAP32[($10 + 12 | 0) >> 2] = $12; + HEAPF32[(HEAP32[($10 + 12 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[($10 + 44 | 0) >> 2]); + HEAPF32[((HEAP32[($10 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = Math_fround(HEAPF32[($10 + 40 | 0) >> 2]); + HEAPF32[((HEAP32[($10 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = Math_fround(HEAPF32[($10 + 36 | 0) >> 2]); + $22 = (HEAP32[($10 + 12 | 0) >> 2] | 0) + 12 | 0; + i64toi32_i32$2 = HEAP32[($10 + 32 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $101 = i64toi32_i32$0; + i64toi32_i32$0 = $22; + HEAP32[i64toi32_i32$0 >> 2] = $101; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $24 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $24 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $111 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $24 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $111; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $31 = (HEAP32[($10 + 12 | 0) >> 2] | 0) + 28 | 0; + i64toi32_i32$2 = HEAP32[($10 + 28 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $122 = i64toi32_i32$0; + i64toi32_i32$0 = $31; + HEAP32[i64toi32_i32$0 >> 2] = $122; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $33 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $33 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $132 = i64toi32_i32$1; + i64toi32_i32$1 = $31 + $33 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $132; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[((HEAP32[($10 + 12 | 0) >> 2] | 0) + 48 | 0) >> 2] = HEAP32[($10 + 24 | 0) >> 2] | 0; + HEAPF32[((HEAP32[($10 + 12 | 0) >> 2] | 0) + 52 | 0) >> 2] = Math_fround(HEAPF32[($10 + 20 | 0) >> 2]); + HEAPF32[((HEAP32[($10 + 12 | 0) >> 2] | 0) + 56 | 0) >> 2] = Math_fround(HEAPF32[($10 + 16 | 0) >> 2]); + $43 = HEAP32[($10 + 12 | 0) >> 2] | 0; + __stack_pointer = $10 + 48 | 0; + return $43 | 0; + } + + function btCapsuleCharacterControllerDesc__btCapsuleCharacterControllerDesc_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCharacterControllerDesc__btCharacterControllerDesc_28_29($4 | 0) | 0; + HEAP32[($4 + 44 | 0) >> 2] = 1; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCharacterControllerDesc__btCharacterControllerDesc_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btVector3__btVector3_28_29($4 + 12 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 28 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function CapsuleCharacterController_new($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + HEAP32[($5 + 16 | 0) >> 2] = HEAP32[($5 + 28 | 0) >> 2] | 0; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($5 + 20 | 0) >> 2] | 0; + $10 = operator_20new_28unsigned_20long_29(160 | 0) | 0; + btCapsuleCharacterController__btCapsuleCharacterController_28btCollisionWorld__2c_20btCapsuleCharacterControllerDesc__2c_20void__29($10 | 0, HEAP32[($5 + 16 | 0) >> 2] | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $5 + 32 | 0; + return $10 | 0; + } + + function CapsuleCharacterController_setRadius($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btCapsuleCharacterController__setRadius_28float_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))); + __stack_pointer = $4 + 16 | 0; + return; + } + + function CapsuleCharacterController_setHeight($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btCapsuleCharacterController__setHeight_28float_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))); + __stack_pointer = $4 + 16 | 0; + return; + } + + function BoxCharacterControllerDesc_new($0, $1, $2, $3, $4, $5, $6, $7, $8) { + $0 = Math_fround($0); + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = Math_fround($6); + $7 = Math_fround($7); + $8 = Math_fround($8); + var $11 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $13 = 0, $23 = 0, $25 = 0, $32 = 0, $34 = 0, $106 = 0, $116 = 0, $127 = 0, $137 = 0, $46 = 0; + $11 = __stack_pointer - 48 | 0; + __stack_pointer = $11; + HEAPF32[($11 + 44 | 0) >> 2] = $0; + HEAPF32[($11 + 40 | 0) >> 2] = $1; + HEAPF32[($11 + 36 | 0) >> 2] = $2; + HEAP32[($11 + 32 | 0) >> 2] = $3; + HEAP32[($11 + 28 | 0) >> 2] = $4; + HEAP32[($11 + 24 | 0) >> 2] = $5; + HEAPF32[($11 + 20 | 0) >> 2] = $6; + HEAPF32[($11 + 16 | 0) >> 2] = $7; + HEAPF32[($11 + 12 | 0) >> 2] = $8; + $13 = operator_20new_28unsigned_20long_29(64 | 0) | 0; + btBoxCharacterControllerDesc__btBoxCharacterControllerDesc_28_29($13 | 0) | 0; + HEAP32[($11 + 8 | 0) >> 2] = $13; + HEAPF32[(HEAP32[($11 + 8 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[($11 + 44 | 0) >> 2]); + HEAPF32[((HEAP32[($11 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = Math_fround(HEAPF32[($11 + 40 | 0) >> 2]); + HEAPF32[((HEAP32[($11 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = Math_fround(HEAPF32[($11 + 36 | 0) >> 2]); + $23 = (HEAP32[($11 + 8 | 0) >> 2] | 0) + 12 | 0; + i64toi32_i32$2 = HEAP32[($11 + 32 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $106 = i64toi32_i32$0; + i64toi32_i32$0 = $23; + HEAP32[i64toi32_i32$0 >> 2] = $106; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $25 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $25 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $116 = i64toi32_i32$1; + i64toi32_i32$1 = $23 + $25 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $116; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $32 = (HEAP32[($11 + 8 | 0) >> 2] | 0) + 28 | 0; + i64toi32_i32$2 = HEAP32[($11 + 28 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $127 = i64toi32_i32$0; + i64toi32_i32$0 = $32; + HEAP32[i64toi32_i32$0 >> 2] = $127; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $34 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $34 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $137 = i64toi32_i32$1; + i64toi32_i32$1 = $32 + $34 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $137; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[((HEAP32[($11 + 8 | 0) >> 2] | 0) + 48 | 0) >> 2] = HEAP32[($11 + 24 | 0) >> 2] | 0; + HEAPF32[((HEAP32[($11 + 8 | 0) >> 2] | 0) + 52 | 0) >> 2] = Math_fround(HEAPF32[($11 + 20 | 0) >> 2]); + HEAPF32[((HEAP32[($11 + 8 | 0) >> 2] | 0) + 56 | 0) >> 2] = Math_fround(HEAPF32[($11 + 16 | 0) >> 2]); + HEAPF32[((HEAP32[($11 + 8 | 0) >> 2] | 0) + 60 | 0) >> 2] = Math_fround(HEAPF32[($11 + 12 | 0) >> 2]); + $46 = HEAP32[($11 + 8 | 0) >> 2] | 0; + __stack_pointer = $11 + 48 | 0; + return $46 | 0; + } + + function btBoxCharacterControllerDesc__btBoxCharacterControllerDesc_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCharacterControllerDesc__btCharacterControllerDesc_28_29($4 | 0) | 0; + HEAP32[($4 + 44 | 0) >> 2] = 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function BoxCharacterController_new($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + HEAP32[($5 + 16 | 0) >> 2] = HEAP32[($5 + 28 | 0) >> 2] | 0; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($5 + 20 | 0) >> 2] | 0; + $10 = operator_20new_28unsigned_20long_29(164 | 0) | 0; + btBoxCharacterController__btBoxCharacterController_28btCollisionWorld__2c_20btBoxCharacterControllerDesc__2c_20void__29($10 | 0, HEAP32[($5 + 16 | 0) >> 2] | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $5 + 32 | 0; + return $10 | 0; + } + + function BoxCharacterController_setHalfHeight($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btBoxCharacterController__setHalfHeight_28float_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))); + __stack_pointer = $4 + 16 | 0; + return; + } + + function BoxCharacterController_setHalfSideExtent($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btBoxCharacterController__setHalfSideExtent_28float_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))); + __stack_pointer = $4 + 16 | 0; + return; + } + + function BoxCharacterController_setHalfForwardExtent($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btBoxCharacterController__setHalfForwardExtent_28float_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))); + __stack_pointer = $4 + 16 | 0; + return; + } + + function CollisionObject_new_28_29() { + var $2 = 0, $4 = 0, $5 = 0; + $2 = __stack_pointer - 16 | 0; + __stack_pointer = $2; + $4 = btCollisionObject__operator_20new_28unsigned_20long_29(324 | 0) | 0; + btCollisionObject__btCollisionObject_28_29($4 | 0) | 0; + HEAP32[($2 + 12 | 0) >> 2] = $4; + $5 = HEAP32[($2 + 12 | 0) >> 2] | 0; + __stack_pointer = $2 + 16 | 0; + return $5 | 0; + } + + function btCollisionObject__operator_20new_28unsigned_20long_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0, 16 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function CollisionObject_isStaticObject_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $7 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $7 = (btCollisionObject__isStaticObject_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0) & 1 | 0; + __stack_pointer = $3 + 16 | 0; + return $7 | 0; + } + + function btCollisionObject__isStaticObject_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return ((HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 204 | 0) >> 2] | 0) & 1 | 0 | 0) != (0 | 0) & 1 | 0 | 0; + } + + function CollisionObject_isKinematicObject_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $7 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $7 = (btCollisionObject__isKinematicObject_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0) & 1 | 0; + __stack_pointer = $3 + 16 | 0; + return $7 | 0; + } + + function btCollisionObject__isKinematicObject_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return ((HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 204 | 0) >> 2] | 0) & 2 | 0 | 0) != (0 | 0) & 1 | 0 | 0; + } + + function CollisionObject_isStaticOrKinematicObject_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $7 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $7 = (btCollisionObject__isStaticOrKinematicObject_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0) & 1 | 0; + __stack_pointer = $3 + 16 | 0; + return $7 | 0; + } + + function btCollisionObject__isStaticOrKinematicObject_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return ((HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 204 | 0) >> 2] | 0) & 3 | 0 | 0) != (0 | 0) & 1 | 0 | 0; + } + + function CollisionObject_setContactProcessingThreshold_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btCollisionObject__setContactProcessingThreshold_28float_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0))); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCollisionObject__setContactProcessingThreshold_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 184 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + return; + } + + function CollisionObject_forceActivationState_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btCollisionObject__forceActivationState_28int_29_20const(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function CollisionObject_activate_28int_2c_20bool_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP8[($4 + 11 | 0) >> 0] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btCollisionObject__activate_28bool_29_20const(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, (HEAPU8[($4 + 11 | 0) >> 0] | 0) & 1 | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function CollisionObject_isActive_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $8 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $8 = (btCollisionObject__isActive_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0) & 1 | 0; + __stack_pointer = $3 + 16 | 0; + return $8 | 0; + } + + function btCollisionObject__isActive_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $13 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + $13 = 0; + label$1 : { + if (!((btCollisionObject__getActivationState_28_29_20const($4 | 0) | 0 | 0) != (2 | 0) & 1 | 0)) { + break label$1 + } + $13 = (btCollisionObject__getActivationState_28_29_20const($4 | 0) | 0 | 0) != (5 | 0); + } + __stack_pointer = $3 + 16 | 0; + return $13 & 1 | 0 | 0; + } + + function btCollisionObject__getActivationState_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 220 | 0) >> 2] | 0 | 0; + } + + function CollisionObject_setMaterial_28int_2c_20float_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = Math_fround($3); + $4 = Math_fround($4); + var $7 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAPF32[($7 + 24 | 0) >> 2] = $1; + HEAPF32[($7 + 20 | 0) >> 2] = $2; + HEAPF32[($7 + 16 | 0) >> 2] = $3; + HEAPF32[($7 + 12 | 0) >> 2] = $4; + HEAP32[($7 + 8 | 0) >> 2] = HEAP32[($7 + 28 | 0) >> 2] | 0; + btCollisionObject__setRestitution_28float_29(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($7 + 24 | 0) >> 2]))); + btCollisionObject__setFriction_28float_29(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($7 + 20 | 0) >> 2]))); + btCollisionObject__setRollingFriction_28float_29(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($7 + 16 | 0) >> 2]))); + btCollisionObject__setSpinningFriction_28float_29(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($7 + 12 | 0) >> 2]))); + __stack_pointer = $7 + 32 | 0; + return; + } + + function btCollisionObject__setRestitution_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($5 + 304 | 0) >> 2] = (HEAP32[($5 + 304 | 0) >> 2] | 0) + 1 | 0; + HEAPF32[($5 + 232 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + return; + } + + function btCollisionObject__setFriction_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($5 + 304 | 0) >> 2] = (HEAP32[($5 + 304 | 0) >> 2] | 0) + 1 | 0; + HEAPF32[($5 + 228 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + return; + } + + function btCollisionObject__setRollingFriction_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($5 + 304 | 0) >> 2] = (HEAP32[($5 + 304 | 0) >> 2] | 0) + 1 | 0; + HEAPF32[($5 + 236 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + return; + } + + function btCollisionObject__setSpinningFriction_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($5 + 304 | 0) >> 2] = (HEAP32[($5 + 304 | 0) >> 2] | 0) + 1 | 0; + HEAPF32[($5 + 240 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + return; + } + + function CollisionObject_getCollisionFlags_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = btCollisionObject__getCollisionFlags_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function btCollisionObject__getCollisionFlags_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 204 | 0) >> 2] | 0 | 0; + } + + function CollisionObject_setCollisionFlags_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btCollisionObject__setCollisionFlags_28int_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCollisionObject__setCollisionFlags_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 204 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return; + } + + function CollisionObject_getWorldTransform_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = btCollisionObject__getWorldTransform_28_29(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function btCollisionObject__getWorldTransform_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0 | 0; + } + + function CollisionObject_setCollisionShape_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + $6 = HEAP32[($4 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($6, HEAP32[($4 + 8 | 0) >> 2] | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function CollisionObject_getCollisionShape_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = btCollisionObject__getCollisionShape_28_29(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function btCollisionObject__getCollisionShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 192 | 0) >> 2] | 0 | 0; + } + + function CollisionObject_setCcdMotionThreshold_28int_2c_20float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btCollisionObject__setCcdMotionThreshold_28float_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCollisionObject__setCcdMotionThreshold_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 276 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + return; + } + + function btCollisionObject__getCcdSweptSphereRadius_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 272 | 0) >> 2])); + } + + function CollisionObject_setCcdSweptSphereRadius_28int_2c_20float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btCollisionObject__setCcdSweptSphereRadius_28float_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCollisionObject__setCcdSweptSphereRadius_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 272 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + return; + } + + function CollisionObject_getUserIndex_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = btCollisionObject__getUserIndex_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function btCollisionObject__getUserIndex_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 264 | 0) >> 2] | 0 | 0; + } + + function CollisionObject_setUserIndex_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btCollisionObject__setUserIndex_28int_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCollisionObject__setUserIndex_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 264 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return; + } + + function CollisionObject_isSleeping_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $12 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $12 = (btCollisionObject__getActivationState_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) == (2 | 0) & 1 | 0; + __stack_pointer = $3 + 16 | 0; + return $12 | 0; + } + + function CollisionObject_getActivationState_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = btCollisionObject__getActivationState_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function CollisionObject_setIgnoreCollisionCheck_28int_2c_20int_2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP8[($5 + 23 | 0) >> 0] = $2; + HEAP32[($5 + 16 | 0) >> 2] = HEAP32[($5 + 28 | 0) >> 2] | 0; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + btCollisionObject__setIgnoreCollisionCheck_28btCollisionObject_20const__2c_20bool_29(HEAP32[($5 + 16 | 0) >> 2] | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0, (HEAPU8[($5 + 23 | 0) >> 0] | 0) & 1 | 0 | 0); + __stack_pointer = $5 + 32 | 0; + return; + } + + function btCollisionObject__setIgnoreCollisionCheck_28btCollisionObject_20const__2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $7 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP8[($5 + 7 | 0) >> 0] = $2; + $7 = HEAP32[($5 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($5 + 7 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedObjectArray_btCollisionObject_20const____push_back_28btCollisionObject_20const__20const__29($7 + 284 | 0 | 0, $5 + 8 | 0 | 0); + break label$1; + } + btAlignedObjectArray_btCollisionObject_20const____remove_28btCollisionObject_20const__20const__29($7 + 284 | 0 | 0, $5 + 8 | 0 | 0); + } + (wasm2js_i32$0 = $7, wasm2js_i32$1 = (btAlignedObjectArray_btCollisionObject_20const____size_28_29_20const($7 + 284 | 0 | 0) | 0 | 0) > (0 | 0) & 1 | 0), HEAP32[(wasm2js_i32$0 + 280 | 0) >> 2] = wasm2js_i32$1; + __stack_pointer = $5 + 16 | 0; + return; + } + + function btAlignedObjectArray_btCollisionObject_20const____push_back_28btCollisionObject_20const__20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btCollisionObject_20const____size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btCollisionObject_20const____capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btCollisionObject_20const____reserve_28int_29($5 | 0, btAlignedObjectArray_btCollisionObject_20const____allocSize_28int_29($5 | 0, btAlignedObjectArray_btCollisionObject_20const____size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btCollisionObject_20const____remove_28btCollisionObject_20const__20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btCollisionObject_20const____findLinearSearch_28btCollisionObject_20const__20const__29_20const($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btCollisionObject_20const____removeAtIndex_28int_29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btCollisionObject_20const____size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function CollisionShape_setMaterial_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + btCollisionShape__setMaterial_28cc__ccMaterial__29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, HEAP32[$4 >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCollisionShape__setMaterial_28cc__ccMaterial__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return; + } + + function btCollisionShape__getMaterial_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0; + } + + function CollisionShape_setUserPointer_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btCollisionShape__setUserPointerAsInt_28int_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCollisionShape__setUserPointerAsInt_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return; + } + + function btCollisionShape__getUserPointerAsInt_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function CollisionShape_setLocalScaling_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + $6 = HEAP32[($4 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 24 | 0) >> 2] | 0 | 0]($6, HEAP32[($4 + 8 | 0) >> 2] | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function CollisionShape_calculateLocalInertia_28int_2c_20float_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = $2 | 0; + var $5 = 0, $7 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAPF32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[$5 >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + $7 = HEAP32[$5 >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 32 | 0) >> 2] | 0 | 0]($7, Math_fround(HEAPF32[($5 + 8 | 0) >> 2]), HEAP32[($5 + 4 | 0) >> 2] | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function CollisionShape_isCompound_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $8 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $8 = (btCollisionShape__isCompound_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0) & 1 | 0; + __stack_pointer = $3 + 16 | 0; + return $8 | 0; + } + + function btCollisionShape__isCompound_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $8 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $8 = (btBroadphaseProxy__isCompound_28int_29(btCollisionShape__getShapeType_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) & 1 | 0; + __stack_pointer = $3 + 16 | 0; + return $8 | 0; + } + + function btCollisionShape__getShapeType_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btBroadphaseProxy__isCompound_28int_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) == (31 | 0) & 1 | 0 | 0; + } + + function CollisionShape_getAabb_28int_2c_20int_2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $8 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 28 | 0) >> 2] | 0; + $8 = HEAP32[($6 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($8, HEAP32[($6 + 24 | 0) >> 2] | 0, HEAP32[($6 + 20 | 0) >> 2] | 0, HEAP32[($6 + 16 | 0) >> 2] | 0); + __stack_pointer = $6 + 32 | 0; + return; + } + + function btTransform__btTransform_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btMatrix3x3__btMatrix3x3_28_29($4 | 0) | 0; + btVector3__btVector3_28_29($4 + 48 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btTransform__setIdentity_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btMatrix3x3__setIdentity_28_29($4 | 0); + HEAPF32[($3 + 8 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 4 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[$3 >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 48 | 0 | 0, $3 + 8 | 0 | 0, $3 + 4 | 0 | 0, $3 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function operator__28btVector3_20const__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $1; + HEAP32[($5 + 24 | 0) >> 2] = $2; + HEAPF32[($5 + 20 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[(HEAP32[($5 + 28 | 0) >> 2] | 0) >> 2]) - Math_fround(HEAPF32[(HEAP32[($5 + 24 | 0) >> 2] | 0) >> 2])); + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 28 | 0) >> 2] | 0) + 4 | 0) >> 2]) - Math_fround(HEAPF32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2])); + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2]) - Math_fround(HEAPF32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2])); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $5 + 20 | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0) | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btVector3__length_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $6 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = Math_fround(btSqrt_28float_29(Math_fround(Math_fround(btVector3__length2_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0))))); + __stack_pointer = $3 + 16 | 0; + return Math_fround($6); + } + + function CollisionShape_setMargin_28int_2c_20float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0, $6 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + $6 = HEAP32[($4 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 44 | 0) >> 2] | 0 | 0]($6, Math_fround(HEAPF32[($4 + 8 | 0) >> 2])); + __stack_pointer = $4 + 16 | 0; + return; + } + + function BoxShape_new_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = btBoxShape__operator_20new_28unsigned_20long_29(64 | 0) | 0; + btBoxShape__btBoxShape_28btVector3_20const__29($5 | 0, HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $5 | 0; + } + + function btBoxShape__operator_20new_28unsigned_20long_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0, 16 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function BoxShape_setUnscaledHalfExtents_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btBoxShape__setUnscaledHalfExtents_28btVector3_20const__29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btBoxShape__setUnscaledHalfExtents_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $43 = 0, $45 = 0, $147 = 0, $160 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 80 | 0; + __stack_pointer = $4; + HEAP32[($4 + 76 | 0) >> 2] = $0; + HEAP32[($4 + 72 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 76 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 52 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 48 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 56 | 0 | 0, $4 + 52 | 0 | 0, $4 + 48 | 0 | 0, $4 + 44 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($4 + 12 | 0 | 0, HEAP32[($4 + 72 | 0) >> 2] | 0 | 0, $5 + 20 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($4 + 28 | 0 | 0, $4 + 12 | 0 | 0, $4 + 56 | 0 | 0); + $43 = $5 + 36 | 0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[($4 + 28 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($4 + 32 | 0) >> 2] | 0; + $147 = i64toi32_i32$0; + i64toi32_i32$0 = $43; + HEAP32[i64toi32_i32$0 >> 2] = $147; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $45 = 8; + i64toi32_i32$2 = ($4 + 28 | 0) + $45 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $160 = i64toi32_i32$1; + i64toi32_i32$1 = $43 + $45 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $160; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btConvexInternalShape__setSafeMargin_28btVector3_20const__2c_20float_29($5 | 0, HEAP32[($4 + 72 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(.10000000149011612))); + __stack_pointer = $4 + 80 | 0; + return; + } + + function btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + HEAPF32[$7 >> 2] = Math_fround(HEAPF32[(HEAP32[($6 + 8 | 0) >> 2] | 0) >> 2]); + HEAPF32[($7 + 4 | 0) >> 2] = Math_fround(HEAPF32[(HEAP32[($6 + 4 | 0) >> 2] | 0) >> 2]); + HEAPF32[($7 + 8 | 0) >> 2] = Math_fround(HEAPF32[(HEAP32[$6 >> 2] | 0) >> 2]); + HEAPF32[($7 + 12 | 0) >> 2] = Math_fround(0 | 0); + return $7 | 0; + } + + function operator__28btVector3_20const__2c_20btVector3_20const__29_1($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $1; + HEAP32[($5 + 24 | 0) >> 2] = $2; + HEAPF32[($5 + 20 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[(HEAP32[($5 + 28 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[(HEAP32[($5 + 24 | 0) >> 2] | 0) >> 2])); + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 28 | 0) >> 2] | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2])); + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2])); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $5 + 20 | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0) | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btConvexInternalShape__setSafeMargin_28btVector3_20const__2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0, $6 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) + ((btVector3__minAxis_28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) << 2 | 0) | 0) >> 2])), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + btConvexInternalShape__setSafeMargin_28float_2c_20float_29($6 | 0, Math_fround(Math_fround(HEAPF32[$5 >> 2])), Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]))); + __stack_pointer = $5 + 16 | 0; + return; + } + + function SphereShape_new_28float_29($0) { + $0 = Math_fround($0); + var $3 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAPF32[($3 + 12 | 0) >> 2] = $0; + $5 = btSphereShape__operator_20new_28unsigned_20long_29(60 | 0) | 0; + btSphereShape__btSphereShape_28float_29($5 | 0, Math_fround(Math_fround(HEAPF32[($3 + 12 | 0) >> 2]))) | 0; + __stack_pointer = $3 + 16 | 0; + return $5 | 0; + } + + function btSphereShape__operator_20new_28unsigned_20long_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0, 16 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function btSphereShape__btSphereShape_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAPF32[($4 + 24 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + btConvexInternalShape__btConvexInternalShape_28_29($5 | 0) | 0; + HEAP32[$5 >> 2] = GOT_data_internal_vtable_20for_20btSphereShape + 8 | 0; + HEAP32[($5 + 4 | 0) >> 2] = 8; + HEAPF32[($4 + 20 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($4 + 16 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($4 + 12 | 0) >> 2] = Math_fround(1.0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 20 | 0 | 0, $4 + 20 | 0 | 0, $4 + 16 | 0 | 0, $4 + 12 | 0 | 0); + btVector3__setZero_28_29($5 + 36 | 0 | 0); + btVector3__setX_28float_29($5 + 36 | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 24 | 0) >> 2]))); + HEAPF32[($5 + 52 | 0) >> 2] = Math_fround(HEAPF32[($4 + 24 | 0) >> 2]); + HEAPF32[($5 + 56 | 0) >> 2] = Math_fround(0 | 0); + __stack_pointer = $4 + 32 | 0; + return $5 | 0; + } + + function btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + HEAPF32[$7 >> 2] = Math_fround(HEAPF32[(HEAP32[($6 + 8 | 0) >> 2] | 0) >> 2]); + HEAPF32[($7 + 4 | 0) >> 2] = Math_fround(HEAPF32[(HEAP32[($6 + 4 | 0) >> 2] | 0) >> 2]); + HEAPF32[($7 + 8 | 0) >> 2] = Math_fround(HEAPF32[(HEAP32[$6 >> 2] | 0) >> 2]); + HEAPF32[($7 + 12 | 0) >> 2] = Math_fround(0 | 0); + return; + } + + function btVector3__setZero_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAPF32[($3 + 8 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 4 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[$3 >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($4 | 0, $3 + 8 | 0 | 0, $3 + 4 | 0 | 0, $3 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btVector3__setX_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAPF32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + return; + } + + function SphereShape_setUnscaledRadius_28int_2c_20float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btSphereShape__setUnscaledRadius_28float_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btSphereShape__setUnscaledRadius_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btVector3__setX_28float_29($5 + 36 | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))); + btConvexInternalShape__setMargin_28float_29($5 | 0, Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btConvexInternalShape__setMargin_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 52 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + return; + } + + function CapsuleShape_new_28float_2c_20float_29($0, $1) { + $0 = Math_fround($0); + $1 = Math_fround($1); + var $4 = 0, $6 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAPF32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + $6 = btCapsuleShape__operator_20new_28unsigned_20long_29(64 | 0) | 0; + btCapsuleShape__btCapsuleShape_28float_2c_20float_29($6 | 0, Math_fround(Math_fround(HEAPF32[($4 + 12 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))) | 0; + __stack_pointer = $4 + 16 | 0; + return $6 | 0; + } + + function btCapsuleShape__operator_20new_28unsigned_20long_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0, 16 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function CapsuleShape_updateProp_28int_2c_20float_2c_20float_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = $3 | 0; + var $6 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAPF32[($6 + 24 | 0) >> 2] = $1; + HEAPF32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 28 | 0) >> 2] | 0; + btCapsuleShape__updateProp_28float_2c_20float_2c_20int_29(HEAP32[($6 + 12 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 24 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($6 + 20 | 0) >> 2])), HEAP32[($6 + 16 | 0) >> 2] | 0 | 0); + __stack_pointer = $6 + 32 | 0; + return; + } + + function btCapsuleShape__updateProp_28float_2c_20float_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = $3 | 0; + var $6 = 0, $7 = 0, $34 = 0, $46 = 0, $51 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAPF32[($6 + 24 | 0) >> 2] = $1; + HEAPF32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($7 + 60 | 0) >> 2] = HEAP32[($6 + 16 | 0) >> 2] | 0; + HEAPF32[($6 + 12 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($6 + 8 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($6 + 4 | 0) >> 2] = Math_fround(1.0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 20 | 0 | 0, $6 + 12 | 0 | 0, $6 + 8 | 0 | 0, $6 + 4 | 0 | 0); + label$1 : { + label$2 : { + if (!((HEAP32[($7 + 60 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$2 + } + $34 = $6 + 24 | 0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 36 | 0 | 0, $34 | 0, $6 + 20 | 0 | 0, $34 | 0); + break label$1; + } + label$3 : { + label$4 : { + if (HEAP32[($7 + 60 | 0) >> 2] | 0) { + break label$4 + } + $46 = $6 + 24 | 0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 36 | 0 | 0, $6 + 20 | 0 | 0, $46 | 0, $46 | 0); + break label$3; + } + $51 = $6 + 24 | 0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 36 | 0 | 0, $51 | 0, $51 | 0, $6 + 20 | 0 | 0); + } + } + HEAP32[$6 >> 2] = ((HEAP32[($6 + 16 | 0) >> 2] | 0) + 2 | 0 | 0) % (3 | 0) | 0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($7 + 36 | 0 | 0) | 0) + ((HEAP32[$6 >> 2] | 0) << 2 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 52 | 0) >> 2] = wasm2js_f32$0; + __stack_pointer = $6 + 32 | 0; + return; + } + + function btVector3__operator_20float__28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function ConvexInternalShape_getImplicitShapeDimensions_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = btConvexInternalShape__getImplicitShapeDimensions_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function btConvexInternalShape__getImplicitShapeDimensions_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 36 | 0 | 0; + } + + function CylinderShape_new_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = btCylinderShape__operator_20new_28unsigned_20long_29(64 | 0) | 0; + btCylinderShape__btCylinderShape_28btVector3_20const__29($5 | 0, HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $5 | 0; + } + + function btCylinderShape__operator_20new_28unsigned_20long_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0, 16 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function CylinderShape_updateProp_28int_2c_20float_2c_20float_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = $3 | 0; + var $6 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAPF32[($6 + 24 | 0) >> 2] = $1; + HEAPF32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 28 | 0) >> 2] | 0; + btCylinderShape__updateProp_28float_2c_20float_2c_20int_29(HEAP32[($6 + 12 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 24 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($6 + 20 | 0) >> 2])), HEAP32[($6 + 16 | 0) >> 2] | 0 | 0); + __stack_pointer = $6 + 32 | 0; + return; + } + + function btCylinderShape__updateProp_28float_2c_20float_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = $3 | 0; + var $6 = 0, $7 = 0, $34 = 0, $46 = 0, $51 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 64 | 0; + __stack_pointer = $6; + HEAP32[($6 + 60 | 0) >> 2] = $0; + HEAPF32[($6 + 56 | 0) >> 2] = $1; + HEAPF32[($6 + 52 | 0) >> 2] = $2; + HEAP32[($6 + 48 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 60 | 0) >> 2] | 0; + HEAP32[($7 + 60 | 0) >> 2] = HEAP32[($6 + 48 | 0) >> 2] | 0; + HEAPF32[($6 + 44 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($6 + 40 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($6 + 36 | 0) >> 2] = Math_fround(1.0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 20 | 0 | 0, $6 + 44 | 0 | 0, $6 + 40 | 0 | 0, $6 + 36 | 0 | 0); + label$1 : { + label$2 : { + if (!((HEAP32[($7 + 60 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$2 + } + $34 = $6 + 56 | 0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 36 | 0 | 0, $34 | 0, $6 + 52 | 0 | 0, $34 | 0); + break label$1; + } + label$3 : { + label$4 : { + if (HEAP32[($7 + 60 | 0) >> 2] | 0) { + break label$4 + } + $46 = $6 + 56 | 0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 36 | 0 | 0, $6 + 52 | 0 | 0, $46 | 0, $46 | 0); + break label$3; + } + $51 = $6 + 56 | 0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 36 | 0 | 0, $51 | 0, $51 | 0, $6 + 52 | 0 | 0); + } + } + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($7))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($7))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($7))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 20 | 0 | 0, $6 + 16 | 0 | 0, $6 + 12 | 0 | 0, $6 + 8 | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29($7 + 36 | 0 | 0, $6 + 20 | 0 | 0) | 0; + __stack_pointer = $6 + 64 | 0; + return; + } + + function btVector3__operator___28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAPF32[$5 >> 2] = Math_fround(Math_fround(HEAPF32[$5 >> 2]) - Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2])); + HEAPF32[($5 + 4 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]) - Math_fround(HEAPF32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2])); + HEAPF32[($5 + 8 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 8 | 0) >> 2]) - Math_fround(HEAPF32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2])); + return $5 | 0; + } + + function ConeShape_new_28float_2c_20float_29($0, $1) { + $0 = Math_fround($0); + $1 = Math_fround($1); + var $4 = 0, $6 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAPF32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + $6 = btConeShape__operator_20new_28unsigned_20long_29(84 | 0) | 0; + btConeShape__btConeShape_28float_2c_20float_29($6 | 0, Math_fround(Math_fround(HEAPF32[($4 + 12 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))) | 0; + __stack_pointer = $4 + 16 | 0; + return $6 | 0; + } + + function btConeShape__operator_20new_28unsigned_20long_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0, 16 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function ConeShape_setRadius_28int_2c_20float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + btConeShape__setRadius_28float_29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btConeShape__setRadius_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 64 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + return; + } + + function ConeShape_setHeight_28int_2c_20float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + btConeShape__setHeight_28float_29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btConeShape__setHeight_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 68 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + return; + } + + function ConeShape_setConeUpIndex_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btConeShape__setConeUpIndex_28int_29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function StaticPlaneShape_new_28int_2c_20float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0, $6 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + $6 = btStaticPlaneShape__operator_20new_28unsigned_20long_29(92 | 0) | 0; + btStaticPlaneShape__btStaticPlaneShape_28btVector3_20const__2c_20float_29($6 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))) | 0; + __stack_pointer = $4 + 16 | 0; + return $6 | 0; + } + + function btStaticPlaneShape__operator_20new_28unsigned_20long_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0, 16 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function StaticPlaneShape_setPlaneConstant_28int_2c_20float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btStaticPlaneShape__setPlaneConstant_28float_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btStaticPlaneShape__setPlaneConstant_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 72 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + return; + } + + function StaticPlaneShape_getPlaneNormal_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = btStaticPlaneShape__getPlaneNormal_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function btStaticPlaneShape__getPlaneNormal_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 56 | 0 | 0; + } + + function ccCompoundShape_new_28_29() { + var $1 = 0; + $1 = cc__ccCompoundShape__operator_20new_28unsigned_20long_29(100 | 0) | 0; + __memset($1 | 0, 0 | 0, 100 | 0) | 0; + cc__ccCompoundShape__ccCompoundShape_28_29($1 | 0) | 0; + return $1 | 0; + } + + function cc__ccCompoundShape__operator_20new_28unsigned_20long_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0, 16 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function cc__ccCompoundShape__ccCompoundShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCompoundShape__btCompoundShape_28bool_2c_20int_29($4 | 0, 1 | 0, 0 | 0) | 0; + HEAP32[$4 >> 2] = GOT_data_internal_vtable_20for_20cc__ccCompoundShape + 8 | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function CompoundShape_getNumChildShapes_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = btCompoundShape__getNumChildShapes_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function btCompoundShape__getNumChildShapes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $7 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $7 = btAlignedObjectArray_btCompoundShapeChild___size_28_29_20const((HEAP32[($3 + 12 | 0) >> 2] | 0) + 20 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $7 | 0; + } + + function btAlignedObjectArray_btCompoundShapeChild___size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function CompoundShape_addChildShape_28int_2c_20int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[$5 >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + btCompoundShape__addChildShape_28btTransform_20const__2c_20btCollisionShape__29(HEAP32[$5 >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function CompoundShape_removeChildShape_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + $6 = HEAP32[($4 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($6, HEAP32[($4 + 8 | 0) >> 2] | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function CompoundShape_getChildShape_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $8 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + $8 = btCompoundShape__getChildShape_28int_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $8 | 0; + } + + function btCompoundShape__getChildShape_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $10 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $10 = HEAP32[((btAlignedObjectArray_btCompoundShapeChild___operator_5b_5d_28int_29((HEAP32[($4 + 12 | 0) >> 2] | 0) + 20 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) + 64 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $10 | 0; + } + + function btAlignedObjectArray_btCompoundShapeChild___operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $14 = 0, $29 = 0, $5 = 0, $40 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + $14 = GOT_data_internal___memory_base; + __assert_fail($14 + 85840 | 0 | 0, $14 + 78192 | 0 | 0, 183 | 0, $14 + 83901 | 0 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btCompoundShapeChild___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + $29 = GOT_data_internal___memory_base; + __assert_fail($29 + 87321 | 0 | 0, $29 + 78192 | 0 | 0, 184 | 0, $29 + 83901 | 0 | 0); + wasm2js_trap(); + } + $40 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($4 + 8 | 0) >> 2] | 0, 80) | 0; + __stack_pointer = $4 + 16 | 0; + return $40 | 0; + } + + function CompoundShape_updateChildTransform_28int_2c_20int_2c_20int_2c_20bool_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP8[($6 + 19 | 0) >> 0] = $3; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 8 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + cc__ccCompoundShape__updateChildTransform_28btCollisionShape__2c_20btTransform_20const__2c_20bool_29(HEAP32[($6 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, (HEAPU8[($6 + 19 | 0) >> 0] | 0) & 1 | 0 | 0); + __stack_pointer = $6 + 32 | 0; + return; + } + + function TriangleMesh_new_28_29() { + var $1 = 0, $2 = 0; + $1 = btTriangleIndexVertexArray__operator_20new_28unsigned_20long_29(172 | 0) | 0; + $2 = 1; + btTriangleMesh__btTriangleMesh_28bool_2c_20bool_29($1 | 0, $2 & 1 | 0 | 0, $2 & 1 | 0 | 0) | 0; + return $1 | 0; + } + + function btTriangleIndexVertexArray__operator_20new_28unsigned_20long_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0, 16 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function TriangleMesh_addTriangle_28int_2c_20int_2c_20int_2c_20int_2c_20bool_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP8[($7 + 15 | 0) >> 0] = $4; + HEAP32[($7 + 8 | 0) >> 2] = HEAP32[($7 + 28 | 0) >> 2] | 0; + btTriangleMesh__addTriangle_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20bool_29(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0, HEAP32[($7 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7 + 16 | 0) >> 2] | 0 | 0, (HEAPU8[($7 + 15 | 0) >> 0] | 0) & 1 | 0 | 0); + __stack_pointer = $7 + 32 | 0; + return; + } + + function BvhTriangleMeshShape_new_28int_2c_20bool_2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP8[($5 + 11 | 0) >> 0] = $1; + HEAP8[($5 + 10 | 0) >> 0] = $2; + HEAP32[($5 + 4 | 0) >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + $10 = btBvhTriangleMeshShape__operator_20new_28unsigned_20long_29(84 | 0) | 0; + btBvhTriangleMeshShape__btBvhTriangleMeshShape_28btStridingMeshInterface__2c_20bool_2c_20bool_29($10 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0, (HEAPU8[($5 + 11 | 0) >> 0] | 0) & 1 | 0 | 0, (HEAPU8[($5 + 10 | 0) >> 0] | 0) & 1 | 0 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btBvhTriangleMeshShape__operator_20new_28unsigned_20long_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0, 16 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function BvhTriangleMeshShape_getOptimizedBvh_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = btBvhTriangleMeshShape__getOptimizedBvh_28_29(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function btBvhTriangleMeshShape__getOptimizedBvh_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 60 | 0) >> 2] | 0 | 0; + } + + function BvhTriangleMeshShape_setOptimizedBvh_28int_2c_20int_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = Math_fround($3); + $4 = Math_fround($4); + var $7 = 0, $10 = 0, $11 = 0; + $7 = __stack_pointer - 48 | 0; + __stack_pointer = $7; + HEAP32[($7 + 44 | 0) >> 2] = $0; + HEAP32[($7 + 40 | 0) >> 2] = $1; + HEAPF32[($7 + 36 | 0) >> 2] = $2; + HEAPF32[($7 + 32 | 0) >> 2] = $3; + HEAPF32[($7 + 28 | 0) >> 2] = $4; + HEAP32[($7 + 24 | 0) >> 2] = HEAP32[($7 + 44 | 0) >> 2] | 0; + HEAP32[($7 + 20 | 0) >> 2] = HEAP32[($7 + 40 | 0) >> 2] | 0; + $10 = HEAP32[($7 + 24 | 0) >> 2] | 0; + $11 = HEAP32[($7 + 20 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 4 | 0 | 0, $7 + 36 | 0 | 0, $7 + 32 | 0 | 0, $7 + 28 | 0 | 0) | 0; + btBvhTriangleMeshShape__setOptimizedBvh_28btOptimizedBvh__2c_20btVector3_20const__29($10 | 0, $11 | 0, $7 + 4 | 0 | 0); + __stack_pointer = $7 + 48 | 0; + return; + } + + function ScaledBvhTriangleMeshShape_new_28int_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = Math_fround($3); + var $6 = 0, $9 = 0, $10 = 0; + $6 = __stack_pointer - 48 | 0; + __stack_pointer = $6; + HEAP32[($6 + 44 | 0) >> 2] = $0; + HEAPF32[($6 + 40 | 0) >> 2] = $1; + HEAPF32[($6 + 36 | 0) >> 2] = $2; + HEAPF32[($6 + 32 | 0) >> 2] = $3; + HEAP32[($6 + 28 | 0) >> 2] = HEAP32[($6 + 44 | 0) >> 2] | 0; + $9 = btScaledBvhTriangleMeshShape__operator_20new_28unsigned_20long_29(44 | 0) | 0; + $10 = HEAP32[($6 + 28 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 12 | 0 | 0, $6 + 40 | 0 | 0, $6 + 36 | 0 | 0, $6 + 32 | 0 | 0) | 0; + btScaledBvhTriangleMeshShape__btScaledBvhTriangleMeshShape_28btBvhTriangleMeshShape__2c_20btVector3_20const__29($9 | 0, $10 | 0, $6 + 12 | 0 | 0) | 0; + __stack_pointer = $6 + 48 | 0; + return $9 | 0; + } + + function btScaledBvhTriangleMeshShape__operator_20new_28unsigned_20long_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0, 16 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function ConvexTriangleMeshShape_new_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = btConvexTriangleMeshShape__operator_20new_28unsigned_20long_29(104 | 0) | 0; + btConvexTriangleMeshShape__btConvexTriangleMeshShape_28btStridingMeshInterface__2c_20bool_29($6 | 0, HEAP32[($3 + 8 | 0) >> 2] | 0 | 0, 1 & 1 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function btConvexTriangleMeshShape__operator_20new_28unsigned_20long_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0, 16 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function EmptyShape_static_28_29() { + var $13 = 0; + label$1 : { + if (!(((HEAPU8[(GOT_data_internal___memory_base + 113784 | 0) >> 0] | 0) & 255 | 0 | 0) == (0 & 255 | 0 | 0) & 1 | 0)) { + break label$1 + } + $13 = GOT_data_internal___memory_base; + btEmptyShape__btEmptyShape_28_29($13 + 113744 | 0 | 0) | 0; + __cxa_atexit(GOT_data_internal___table_base + 5 | 0 | 0, 0 | 0, $13 + 65536 | 0 | 0) | 0; + HEAP8[($13 + 113784 | 0) >> 0] = 1; + } + return GOT_data_internal___memory_base + 113744 | 0 | 0; + } + + function __cxx_global_array_dtor_9($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btEmptyShape___btEmptyShape_28_29(GOT_data_internal___memory_base + 113744 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return; + } + + function SimplexShape_new_28_29() { + var $1 = 0; + $1 = btBU_Simplex1to4__operator_20new_28unsigned_20long_29(168 | 0) | 0; + btBU_Simplex1to4__btBU_Simplex1to4_28_29($1 | 0) | 0; + return $1 | 0; + } + + function btBU_Simplex1to4__operator_20new_28unsigned_20long_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0, 16 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function SimplexShape_addVertex_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btBU_Simplex1to4__addVertex_28btVector3_20const__29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function TerrainShape_new_28int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + $4 = Math_fround($4); + $5 = Math_fround($5); + var $8 = 0, $10 = 0, $22 = 0; + $8 = __stack_pointer - 32 | 0; + __stack_pointer = $8; + HEAP32[($8 + 28 | 0) >> 2] = $0; + HEAP32[($8 + 24 | 0) >> 2] = $1; + HEAP32[($8 + 20 | 0) >> 2] = $2; + HEAPF32[($8 + 16 | 0) >> 2] = $3; + HEAPF32[($8 + 12 | 0) >> 2] = $4; + HEAPF32[($8 + 8 | 0) >> 2] = $5; + $10 = btHeightfieldTerrainShape__operator_20new_28unsigned_20long_29(132 | 0) | 0; + btHeightfieldTerrainShape__btHeightfieldTerrainShape_28int_2c_20int_2c_20void_20const__2c_20float_2c_20float_2c_20float_2c_20int_2c_20PHY_ScalarType_2c_20bool_29($10 | 0, HEAP32[($8 + 28 | 0) >> 2] | 0 | 0, HEAP32[($8 + 24 | 0) >> 2] | 0 | 0, HEAP32[($8 + 20 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($8 + 16 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($8 + 12 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($8 + 8 | 0) >> 2])), 1 | 0, 0 | 0, 0 & 1 | 0 | 0) | 0; + HEAP32[($8 + 4 | 0) >> 2] = $10; + $22 = HEAP32[($8 + 4 | 0) >> 2] | 0; + __stack_pointer = $8 + 32 | 0; + return $22 | 0; + } + + function btHeightfieldTerrainShape__operator_20new_28unsigned_20long_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0, 16 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function DefaultCollisionConfiguration_static_28_29() { + var $2 = 0, $18 = 0; + $2 = __stack_pointer - 32 | 0; + __stack_pointer = $2; + label$1 : { + if (!(((HEAPU8[(GOT_data_internal___memory_base + 113876 | 0) >> 0] | 0) & 255 | 0 | 0) == (0 & 255 | 0 | 0) & 1 | 0)) { + break label$1 + } + btDefaultCollisionConstructionInfo__btDefaultCollisionConstructionInfo_28_29($2 + 8 | 0 | 0) | 0; + $18 = GOT_data_internal___memory_base; + btDefaultCollisionConfiguration__btDefaultCollisionConfiguration_28btDefaultCollisionConstructionInfo_20const__29($18 + 113788 | 0 | 0, $2 + 8 | 0 | 0) | 0; + __cxa_atexit(GOT_data_internal___table_base + 6 | 0 | 0, 0 | 0, $18 + 65536 | 0 | 0) | 0; + HEAP8[($18 + 113876 | 0) >> 0] = 1; + } + __stack_pointer = $2 + 32 | 0; + return GOT_data_internal___memory_base + 113788 | 0 | 0; + } + + function btDefaultCollisionConstructionInfo__btDefaultCollisionConstructionInfo_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 4096; + HEAP32[($4 + 12 | 0) >> 2] = 4096; + HEAP32[($4 + 16 | 0) >> 2] = 0; + HEAP32[($4 + 20 | 0) >> 2] = 1; + return $4 | 0; + } + + function __cxx_global_array_dtor_10($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btDefaultCollisionConfiguration___btDefaultCollisionConfiguration_28_29(GOT_data_internal___memory_base + 113788 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return; + } + + function Dispatcher_getNumManifolds_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0, $8 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $5 = HEAP32[($3 + 8 | 0) >> 2] | 0; + $8 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 36 | 0) >> 2] | 0 | 0]($5) | 0; + __stack_pointer = $3 + 16 | 0; + return $8 | 0; + } + + function Dispatcher_getManifoldByIndexInternal_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + $6 = HEAP32[($4 + 4 | 0) >> 2] | 0; + $10 = FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 40 | 0) >> 2] | 0 | 0]($6, HEAP32[($4 + 8 | 0) >> 2] | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $10 | 0; + } + + function CollisionDispatcher_new_28_29() { + var $1 = 0; + $1 = operator_20new_28unsigned_20long_29(10448 | 0) | 0; + btCollisionDispatcher__btCollisionDispatcher_28btCollisionConfiguration__29($1 | 0, DefaultCollisionConfiguration_static_28_29() | 0 | 0) | 0; + return $1 | 0; + } + + function DbvtBroadphase_new_28_29() { + var $1 = 0; + $1 = operator_20new_28unsigned_20long_29(176 | 0) | 0; + btDbvtBroadphase__btDbvtBroadphase_28btOverlappingPairCache__29($1 | 0, 0 | 0) | 0; + return $1 | 0; + } + + function SequentialImpulseConstraintSolver_new_28_29() { + var $1 = 0; + $1 = btSequentialImpulseConstraintSolver__operator_20new_28unsigned_20long_29(236 | 0) | 0; + btSequentialImpulseConstraintSolver__btSequentialImpulseConstraintSolver_28_29($1 | 0) | 0; + return $1 | 0; + } + + function btSequentialImpulseConstraintSolver__operator_20new_28unsigned_20long_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0, 16 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function CollisionWorld_rayTest_28int_2c_20int_2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $8 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 28 | 0) >> 2] | 0; + $8 = HEAP32[($6 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 32 | 0) >> 2] | 0 | 0]($8, HEAP32[($6 + 24 | 0) >> 2] | 0, HEAP32[($6 + 20 | 0) >> 2] | 0, HEAP32[($6 + 16 | 0) >> 2] | 0); + __stack_pointer = $6 + 32 | 0; + return; + } + + function btCollisionWorld__getDispatchInfo_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 28 | 0 | 0; + } + + function CollisionWorld_addCollisionObject_28int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $8 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 28 | 0) >> 2] | 0; + $8 = HEAP32[($6 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 36 | 0) >> 2] | 0 | 0]($8, HEAP32[($6 + 24 | 0) >> 2] | 0, HEAP32[($6 + 20 | 0) >> 2] | 0, HEAP32[($6 + 16 | 0) >> 2] | 0); + __stack_pointer = $6 + 32 | 0; + return; + } + + function CollisionWorld_removeCollisionObject_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + $6 = HEAP32[($4 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 40 | 0) >> 2] | 0 | 0]($6, HEAP32[($4 + 8 | 0) >> 2] | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function CollisionWorld_convexSweepTest_28int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float_29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = Math_fround($5); + var $8 = 0; + $8 = __stack_pointer - 32 | 0; + __stack_pointer = $8; + HEAP32[($8 + 28 | 0) >> 2] = $0; + HEAP32[($8 + 24 | 0) >> 2] = $1; + HEAP32[($8 + 20 | 0) >> 2] = $2; + HEAP32[($8 + 16 | 0) >> 2] = $3; + HEAP32[($8 + 12 | 0) >> 2] = $4; + HEAPF32[($8 + 8 | 0) >> 2] = $5; + HEAP32[($8 + 4 | 0) >> 2] = HEAP32[($8 + 28 | 0) >> 2] | 0; + btCollisionWorld__convexSweepTest_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29_20const(HEAP32[($8 + 4 | 0) >> 2] | 0 | 0, HEAP32[($8 + 24 | 0) >> 2] | 0 | 0, HEAP32[($8 + 20 | 0) >> 2] | 0 | 0, HEAP32[($8 + 16 | 0) >> 2] | 0 | 0, HEAP32[($8 + 12 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($8 + 8 | 0) >> 2]))); + __stack_pointer = $8 + 32 | 0; + return; + } + + function CollisionWorld_setDebugDrawer_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + $6 = HEAP32[($4 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($6, HEAP32[($4 + 8 | 0) >> 2] | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function CollisionWorld_debugDrawWorld_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $5 = HEAP32[($3 + 8 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 24 | 0) >> 2] | 0 | 0]($5); + __stack_pointer = $3 + 16 | 0; + return; + } + + function DynamicsWorld_addAction_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + $6 = HEAP32[($4 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($6, HEAP32[($4 + 8 | 0) >> 2] | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function DynamicsWorld_removeAction_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + $6 = HEAP32[($4 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 68 | 0) >> 2] | 0 | 0]($6, HEAP32[($4 + 8 | 0) >> 2] | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btDynamicsWorld__getSolverInfo_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 92 | 0 | 0; + } + + function ccDiscreteDynamicsWorld_new_28int_2c_20int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $7 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $7 = cc__ccDiscreteDynamicsWorld__operator_20new_28unsigned_20long_29(348 | 0) | 0; + cc__ccDiscreteDynamicsWorld__ccDiscreteDynamicsWorld_28btDispatcher__2c_20btBroadphaseInterface__2c_20btConstraintSolver__2c_20btCollisionConfiguration__29($7 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0, DefaultCollisionConfiguration_static_28_29() | 0 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $7 | 0; + } + + function cc__ccDiscreteDynamicsWorld__operator_20new_28unsigned_20long_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0, 16 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function DynamicsWorld_setGravity_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + $6 = HEAP32[($4 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 72 | 0) >> 2] | 0 | 0]($6, HEAP32[($4 + 8 | 0) >> 2] | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function DynamicsWorld_addRigidBody_28int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $8 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 28 | 0) >> 2] | 0; + $8 = HEAP32[($6 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 88 | 0) >> 2] | 0 | 0]($8, HEAP32[($6 + 24 | 0) >> 2] | 0, HEAP32[($6 + 20 | 0) >> 2] | 0, HEAP32[($6 + 16 | 0) >> 2] | 0); + __stack_pointer = $6 + 32 | 0; + return; + } + + function DynamicsWorld_removeRigidBody_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + $6 = HEAP32[($4 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 92 | 0) >> 2] | 0 | 0]($6, HEAP32[($4 + 8 | 0) >> 2] | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function DynamicsWorld_addConstraint_28int_2c_20int_2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $8 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP8[($5 + 7 | 0) >> 0] = $2; + HEAP32[$5 >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + $8 = HEAP32[$5 >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($8, HEAP32[($5 + 8 | 0) >> 2] | 0, (HEAPU8[($5 + 7 | 0) >> 0] | 0) & 1 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function DynamicsWorld_removeConstraint_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + $6 = HEAP32[($4 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 60 | 0) >> 2] | 0 | 0]($6, HEAP32[($4 + 8 | 0) >> 2] | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function DynamicsWorld_stepSimulation_28int_2c_20float_2c_20int_2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = $2 | 0; + $3 = Math_fround($3); + var $6 = 0, $8 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAPF32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAPF32[($6 + 16 | 0) >> 2] = $3; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 28 | 0) >> 2] | 0; + $8 = HEAP32[($6 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 52 | 0) >> 2] | 0 | 0]($8, Math_fround(HEAPF32[($6 + 24 | 0) >> 2]), HEAP32[($6 + 20 | 0) >> 2] | 0, Math_fround(HEAPF32[($6 + 16 | 0) >> 2])) | 0; + __stack_pointer = $6 + 32 | 0; + return; + } + + function ccDiscreteDynamicsWorld_setAllowSleep_28int_2c_20bool_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP8[($4 + 11 | 0) >> 0] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + cc__ccDiscreteDynamicsWorld__setAllowSleep_28bool_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, (HEAPU8[($4 + 11 | 0) >> 0] | 0) & 1 | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function cc__ccDiscreteDynamicsWorld__setAllowSleep_28bool_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + $5 = 1; + HEAP8[($4 + 11 | 0) >> 0] = $1 & $5 | 0; + HEAP8[GOT_data_internal_gDisableDeactivation >> 0] = ((HEAPU8[($4 + 11 | 0) >> 0] | 0) ^ -1 | 0) & $5 | 0; + return; + } + + function TypedConstraint_getFixedBody_28_29() { + return btTypedConstraint__getFixedBody_28_29() | 0 | 0; + } + + function TypedConstraint_getDbgDrawSize_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = Math_fround(btTypedConstraint__getDbgDrawSize_28_29(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0)); + __stack_pointer = $3 + 16 | 0; + return Math_fround($6); + } + + function btTypedConstraint__getDbgDrawSize_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2])); + } + + function TypedConstraint_setDbgDrawSize_28int_2c_20float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btTypedConstraint__setDbgDrawSize_28float_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btTypedConstraint__setDbgDrawSize_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + return; + } + + function HingeConstraint_new_28int_2c_20int_2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $12 = 0, $20 = 0; + $6 = __stack_pointer - 48 | 0; + __stack_pointer = $6; + HEAP32[($6 + 44 | 0) >> 2] = $0; + HEAP32[($6 + 40 | 0) >> 2] = $1; + HEAP32[($6 + 36 | 0) >> 2] = $2; + HEAP32[($6 + 32 | 0) >> 2] = $3; + HEAP32[($6 + 28 | 0) >> 2] = HEAP32[($6 + 44 | 0) >> 2] | 0; + HEAP32[($6 + 24 | 0) >> 2] = HEAP32[($6 + 40 | 0) >> 2] | 0; + HEAP32[($6 + 20 | 0) >> 2] = HEAP32[($6 + 36 | 0) >> 2] | 0; + HEAP32[($6 + 16 | 0) >> 2] = HEAP32[($6 + 32 | 0) >> 2] | 0; + $12 = btHingeConstraint__operator_20new_28unsigned_20long_29(768 | 0) | 0; + btHingeConstraint__btHingeConstraint_28btRigidBody__2c_20btRigidBody__2c_20btTransform_20const__2c_20btTransform_20const__2c_20bool_29($12 | 0, HEAP32[($6 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0) | 0; + HEAP32[($6 + 12 | 0) >> 2] = $12; + $20 = HEAP32[($6 + 12 | 0) >> 2] | 0; + __stack_pointer = $6 + 48 | 0; + return $20 | 0; + } + + function btHingeConstraint__operator_20new_28unsigned_20long_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0, 16 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function HingeConstraint_setFrames_28int_2c_20int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + HEAP32[($5 + 16 | 0) >> 2] = HEAP32[($5 + 28 | 0) >> 2] | 0; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($5 + 20 | 0) >> 2] | 0; + btHingeConstraint__setFrames_28btTransform_20const__2c_20btTransform_20const__29(HEAP32[($5 + 16 | 0) >> 2] | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $5 + 32 | 0; + return; + } + + function HingeConstraint_setLimit_28int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = Math_fround($3); + $4 = Math_fround($4); + $5 = Math_fround($5); + var $8 = 0; + $8 = __stack_pointer - 32 | 0; + __stack_pointer = $8; + HEAP32[($8 + 28 | 0) >> 2] = $0; + HEAPF32[($8 + 24 | 0) >> 2] = $1; + HEAPF32[($8 + 20 | 0) >> 2] = $2; + HEAPF32[($8 + 16 | 0) >> 2] = $3; + HEAPF32[($8 + 12 | 0) >> 2] = $4; + HEAPF32[($8 + 8 | 0) >> 2] = $5; + HEAP32[($8 + 4 | 0) >> 2] = HEAP32[($8 + 28 | 0) >> 2] | 0; + btHingeConstraint__setLimit_28float_2c_20float_2c_20float_2c_20float_2c_20float_29(HEAP32[($8 + 4 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($8 + 24 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($8 + 20 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($8 + 16 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($8 + 12 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($8 + 8 | 0) >> 2]))); + __stack_pointer = $8 + 32 | 0; + return; + } + + function btHingeConstraint__setLimit_28float_2c_20float_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = Math_fround($3); + $4 = Math_fround($4); + $5 = Math_fround($5); + var $8 = 0; + $8 = __stack_pointer - 32 | 0; + __stack_pointer = $8; + HEAP32[($8 + 28 | 0) >> 2] = $0; + HEAPF32[($8 + 24 | 0) >> 2] = $1; + HEAPF32[($8 + 20 | 0) >> 2] = $2; + HEAPF32[($8 + 16 | 0) >> 2] = $3; + HEAPF32[($8 + 12 | 0) >> 2] = $4; + HEAPF32[($8 + 8 | 0) >> 2] = $5; + btAngularLimit__set_28float_2c_20float_2c_20float_2c_20float_2c_20float_29((HEAP32[($8 + 28 | 0) >> 2] | 0) + 688 | 0 | 0, Math_fround(Math_fround(HEAPF32[($8 + 24 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($8 + 20 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($8 + 16 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($8 + 12 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($8 + 8 | 0) >> 2]))); + __stack_pointer = $8 + 32 | 0; + return; + } + + function HingeConstraint_setAngularOnly_28int_2c_20bool_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP8[($4 + 11 | 0) >> 0] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btHingeConstraint__setAngularOnly_28bool_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, (HEAPU8[($4 + 11 | 0) >> 0] | 0) & 1 | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btHingeConstraint__setAngularOnly_28bool_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP8[($4 + 11 | 0) >> 0] = $1; + HEAP8[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 736 | 0) >> 0] = (HEAPU8[($4 + 11 | 0) >> 0] | 0) & 1 | 0; + return; + } + + function HingeConstraint_enableMotor_28int_2c_20bool_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP8[($4 + 11 | 0) >> 0] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btHingeConstraint__enableMotor_28bool_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, (HEAPU8[($4 + 11 | 0) >> 0] | 0) & 1 | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btHingeConstraint__enableMotor_28bool_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP8[($4 + 11 | 0) >> 0] = $1; + HEAP8[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 737 | 0) >> 0] = (HEAPU8[($4 + 11 | 0) >> 0] | 0) & 1 | 0; + return; + } + + function HingeConstraint_setMotorVelocity_28int_2c_20float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btHingeConstraint__setMotorTargetVelocity_28float_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btHingeConstraint__setMotorTargetVelocity_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 680 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + return; + } + + function HingeConstraint_setMaxMotorImpulse_28int_2c_20float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btHingeConstraint__setMaxMotorImpulse_28float_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btHingeConstraint__setMaxMotorImpulse_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 684 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + return; + } + + function HingeConstraint_setMotorTarget_28int_2c_20float_2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAPF32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + HEAP32[$5 >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + btHingeConstraint__setMotorTarget_28float_2c_20float_29(HEAP32[$5 >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 8 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]))); + __stack_pointer = $5 + 16 | 0; + return; + } + + function P2PConstraint_new_28int_2c_20int_2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $12 = 0, $17 = 0; + $6 = __stack_pointer - 48 | 0; + __stack_pointer = $6; + HEAP32[($6 + 44 | 0) >> 2] = $0; + HEAP32[($6 + 40 | 0) >> 2] = $1; + HEAP32[($6 + 36 | 0) >> 2] = $2; + HEAP32[($6 + 32 | 0) >> 2] = $3; + HEAP32[($6 + 28 | 0) >> 2] = HEAP32[($6 + 44 | 0) >> 2] | 0; + HEAP32[($6 + 24 | 0) >> 2] = HEAP32[($6 + 40 | 0) >> 2] | 0; + HEAP32[($6 + 20 | 0) >> 2] = HEAP32[($6 + 36 | 0) >> 2] | 0; + HEAP32[($6 + 16 | 0) >> 2] = HEAP32[($6 + 32 | 0) >> 2] | 0; + $12 = btPoint2PointConstraint__operator_20new_28unsigned_20long_29(360 | 0) | 0; + btPoint2PointConstraint__btPoint2PointConstraint_28btRigidBody__2c_20btRigidBody__2c_20btVector3_20const__2c_20btVector3_20const__29($12 | 0, HEAP32[($6 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($6 + 12 | 0) >> 2] = $12; + $17 = HEAP32[($6 + 12 | 0) >> 2] | 0; + __stack_pointer = $6 + 48 | 0; + return $17 | 0; + } + + function btPoint2PointConstraint__operator_20new_28unsigned_20long_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0, 16 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function P2PConstraint_setPivotA_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btPoint2PointConstraint__setPivotA_28btVector3_20const__29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btPoint2PointConstraint__setPivotA_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, $8 = 0, $10 = 0, $32 = 0, $42 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $8 = (HEAP32[($4 + 12 | 0) >> 2] | 0) + 300 | 0; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $32 = i64toi32_i32$0; + i64toi32_i32$0 = $8; + HEAP32[i64toi32_i32$0 >> 2] = $32; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $10 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $10 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $42 = i64toi32_i32$1; + i64toi32_i32$1 = $8 + $10 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $42; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function P2PConstraint_setPivotB_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btPoint2PointConstraint__setPivotB_28btVector3_20const__29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btPoint2PointConstraint__setPivotB_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, $8 = 0, $10 = 0, $32 = 0, $42 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $8 = (HEAP32[($4 + 12 | 0) >> 2] | 0) + 316 | 0; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $32 = i64toi32_i32$0; + i64toi32_i32$0 = $8; + HEAP32[i64toi32_i32$0 >> 2] = $32; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $10 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $10 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $42 = i64toi32_i32$1; + i64toi32_i32$1 = $8 + $10 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $42; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function FixedConstraint_new_28int_2c_20int_2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $12 = 0, $17 = 0; + $6 = __stack_pointer - 48 | 0; + __stack_pointer = $6; + HEAP32[($6 + 44 | 0) >> 2] = $0; + HEAP32[($6 + 40 | 0) >> 2] = $1; + HEAP32[($6 + 36 | 0) >> 2] = $2; + HEAP32[($6 + 32 | 0) >> 2] = $3; + HEAP32[($6 + 28 | 0) >> 2] = HEAP32[($6 + 44 | 0) >> 2] | 0; + HEAP32[($6 + 24 | 0) >> 2] = HEAP32[($6 + 40 | 0) >> 2] | 0; + HEAP32[($6 + 20 | 0) >> 2] = HEAP32[($6 + 36 | 0) >> 2] | 0; + HEAP32[($6 + 16 | 0) >> 2] = HEAP32[($6 + 32 | 0) >> 2] | 0; + $12 = btGeneric6DofSpring2Constraint__operator_20new_28unsigned_20long_29(1460 | 0) | 0; + btFixedConstraint__btFixedConstraint_28btRigidBody__2c_20btRigidBody__2c_20btTransform_20const__2c_20btTransform_20const__29($12 | 0, HEAP32[($6 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($6 + 12 | 0) >> 2] = $12; + $17 = HEAP32[($6 + 12 | 0) >> 2] | 0; + __stack_pointer = $6 + 48 | 0; + return $17 | 0; + } + + function btGeneric6DofSpring2Constraint__operator_20new_28unsigned_20long_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0, 16 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function FixedConstraint_setFrames_28int_2c_20int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + HEAP32[($5 + 16 | 0) >> 2] = HEAP32[($5 + 28 | 0) >> 2] | 0; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($5 + 20 | 0) >> 2] | 0; + btGeneric6DofSpring2Constraint__setFrames_28btTransform_20const__2c_20btTransform_20const__29(HEAP32[($5 + 16 | 0) >> 2] | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $5 + 32 | 0; + return; + } + + function TypedConstraint_setMaxImpulseThreshold_28int_2c_20float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btTypedConstraint__setBreakingImpulseThreshold_28float_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btTypedConstraint__setBreakingImpulseThreshold_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + return; + } + + function Generic6DofSpring2Constraint_new_28int_2c_20int_2c_20int_2c_20int_2c_20int_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $13 = 0, $19 = 0; + $7 = __stack_pointer - 48 | 0; + __stack_pointer = $7; + HEAP32[($7 + 44 | 0) >> 2] = $0; + HEAP32[($7 + 40 | 0) >> 2] = $1; + HEAP32[($7 + 36 | 0) >> 2] = $2; + HEAP32[($7 + 32 | 0) >> 2] = $3; + HEAP32[($7 + 28 | 0) >> 2] = $4; + HEAP32[($7 + 24 | 0) >> 2] = HEAP32[($7 + 44 | 0) >> 2] | 0; + HEAP32[($7 + 20 | 0) >> 2] = HEAP32[($7 + 40 | 0) >> 2] | 0; + HEAP32[($7 + 16 | 0) >> 2] = HEAP32[($7 + 36 | 0) >> 2] | 0; + HEAP32[($7 + 12 | 0) >> 2] = HEAP32[($7 + 32 | 0) >> 2] | 0; + $13 = btGeneric6DofSpring2Constraint__operator_20new_28unsigned_20long_29(1460 | 0) | 0; + btGeneric6DofSpring2Constraint__btGeneric6DofSpring2Constraint_28btRigidBody__2c_20btRigidBody__2c_20btTransform_20const__2c_20btTransform_20const__2c_20RotateOrder_29($13 | 0, HEAP32[($7 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7 + 12 | 0) >> 2] | 0 | 0, HEAP32[($7 + 28 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7 + 8 | 0) >> 2] = $13; + $19 = HEAP32[($7 + 8 | 0) >> 2] | 0; + __stack_pointer = $7 + 48 | 0; + return $19 | 0; + } + + function Generic6DofSpring2Constraint_setFrames_28int_2c_20int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + HEAP32[($5 + 16 | 0) >> 2] = HEAP32[($5 + 28 | 0) >> 2] | 0; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($5 + 20 | 0) >> 2] | 0; + btGeneric6DofSpring2Constraint__setFrames_28btTransform_20const__2c_20btTransform_20const__29(HEAP32[($5 + 16 | 0) >> 2] | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $5 + 32 | 0; + return; + } + + function Generic6DofSpring2Constraint_setLimit_28int_2c_20int_2c_20float_2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = Math_fround($3); + var $6 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAPF32[($6 + 20 | 0) >> 2] = $2; + HEAPF32[($6 + 16 | 0) >> 2] = $3; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 28 | 0) >> 2] | 0; + btGeneric6DofSpring2Constraint__setLimit_28int_2c_20float_2c_20float_29(HEAP32[($6 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 20 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($6 + 16 | 0) >> 2]))); + __stack_pointer = $6 + 32 | 0; + return; + } + + function btGeneric6DofSpring2Constraint__setLimit_28int_2c_20float_2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = Math_fround($3); + var $6 = 0, $7 = 0, $15 = Math_fround(0), $23 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAPF32[($6 + 4 | 0) >> 2] = $2; + HEAPF32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$2 + } + $15 = Math_fround(HEAPF32[($6 + 4 | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($7 + 680 | 0 | 0) | 0) + ((HEAP32[($6 + 8 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $15), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $23 = Math_fround(HEAPF32[$6 >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29(($7 + 680 | 0) + 16 | 0 | 0) | 0) + ((HEAP32[($6 + 8 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $23), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + break label$1; + } + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btNormalizeAngle_28float_29(Math_fround(Math_fround(HEAPF32[($6 + 4 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btNormalizeAngle_28float_29(Math_fround(Math_fround(HEAPF32[$6 >> 2]))))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAPF32[(($7 + 968 | 0) + Math_imul((HEAP32[($6 + 8 | 0) >> 2] | 0) - 3 | 0, 88) | 0) >> 2] = Math_fround(HEAPF32[($6 + 4 | 0) >> 2]); + HEAPF32[((($7 + 968 | 0) + Math_imul((HEAP32[($6 + 8 | 0) >> 2] | 0) - 3 | 0, 88) | 0) + 4 | 0) >> 2] = Math_fround(HEAPF32[$6 >> 2]); + } + __stack_pointer = $6 + 16 | 0; + return; + } + + function btNormalizeAngle_28float_29($0) { + $0 = Math_fround($0); + var $3 = 0, $24 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAPF32[($3 + 8 | 0) >> 2] = $0; + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(btFmod_28float_2c_20float_29(Math_fround(Math_fround(HEAPF32[($3 + 8 | 0) >> 2])), Math_fround(Math_fround(6.2831854820251465))))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($3 + 8 | 0) >> 2]) < Math_fround(-3.1415927410125732) & 1 | 0)) { + break label$2 + } + HEAPF32[($3 + 12 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($3 + 8 | 0) >> 2]) + Math_fround(6.2831854820251465)); + break label$1; + } + label$3 : { + if (!(Math_fround(HEAPF32[($3 + 8 | 0) >> 2]) > Math_fround(3.1415927410125732) & 1 | 0)) { + break label$3 + } + HEAPF32[($3 + 12 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($3 + 8 | 0) >> 2]) - Math_fround(6.2831854820251465)); + break label$1; + } + HEAPF32[($3 + 12 | 0) >> 2] = Math_fround(HEAPF32[($3 + 8 | 0) >> 2]); + } + $24 = Math_fround(HEAPF32[($3 + 12 | 0) >> 2]); + __stack_pointer = $3 + 16 | 0; + return Math_fround($24); + } + + function Generic6DofSpring2Constraint_enableMotor_28int_2c_20int_2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP8[($5 + 7 | 0) >> 0] = $2; + HEAP32[$5 >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + btGeneric6DofSpring2Constraint__enableMotor_28int_2c_20bool_29(HEAP32[$5 >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, (HEAPU8[($5 + 7 | 0) >> 0] | 0) & 1 | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function Generic6DofSpring2Constraint_setMaxMotorForce_28int_2c_20int_2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + HEAP32[$5 >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + btGeneric6DofSpring2Constraint__setMaxMotorForce_28int_2c_20float_29(HEAP32[$5 >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]))); + __stack_pointer = $5 + 16 | 0; + return; + } + + function Generic6DofSpring2Constraint_setTargetVelocity_28int_2c_20int_2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + HEAP32[$5 >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + btGeneric6DofSpring2Constraint__setTargetVelocity_28int_2c_20float_29(HEAP32[$5 >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]))); + __stack_pointer = $5 + 16 | 0; + return; + } + + function Generic6DofSpring2Constraint_setServo_28int_2c_20int_2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP8[($5 + 7 | 0) >> 0] = $2; + HEAP32[$5 >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + btGeneric6DofSpring2Constraint__setServo_28int_2c_20bool_29(HEAP32[$5 >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, (HEAPU8[($5 + 7 | 0) >> 0] | 0) & 1 | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function Generic6DofSpring2Constraint_setServoTarget_28int_2c_20int_2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + HEAP32[$5 >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + btGeneric6DofSpring2Constraint__setServoTarget_28int_2c_20float_29(HEAP32[$5 >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]))); + __stack_pointer = $5 + 16 | 0; + return; + } + + function Generic6DofSpring2Constraint_enableSpring_28int_2c_20int_2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP8[($5 + 7 | 0) >> 0] = $2; + HEAP32[$5 >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + btGeneric6DofSpring2Constraint__enableSpring_28int_2c_20bool_29(HEAP32[$5 >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, (HEAPU8[($5 + 7 | 0) >> 0] | 0) & 1 | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function Generic6DofSpring2Constraint_setStiffness_28int_2c_20int_2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + HEAP32[$5 >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + btGeneric6DofSpring2Constraint__setStiffness_28int_2c_20float_2c_20bool_29(HEAP32[$5 >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2])), 1 & 1 | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function Generic6DofSpring2Constraint_setDamping_28int_2c_20int_2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + HEAP32[$5 >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + btGeneric6DofSpring2Constraint__setDamping_28int_2c_20float_2c_20bool_29(HEAP32[$5 >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2])), 1 & 1 | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function Generic6DofSpring2Constraint_setBounce_28int_2c_20int_2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + HEAP32[$5 >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + btGeneric6DofSpring2Constraint__setBounce_28int_2c_20float_29(HEAP32[$5 >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]))); + __stack_pointer = $5 + 16 | 0; + return; + } + + function Generic6DofSpring2Constraint_setEquilibriumPoint_28int_2c_20int_2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + HEAP32[$5 >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + btGeneric6DofSpring2Constraint__setEquilibriumPoint_28int_2c_20float_29(HEAP32[$5 >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]))); + __stack_pointer = $5 + 16 | 0; + return; + } + + function DebugDraw_setDebugMode_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + $6 = HEAP32[($4 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 52 | 0) >> 2] | 0 | 0]($6, HEAP32[($4 + 8 | 0) >> 2] | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function DebugDraw_getDebugMode_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0, $8 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $5 = HEAP32[($3 + 8 | 0) >> 2] | 0; + $8 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($5) | 0; + __stack_pointer = $3 + 16 | 0; + return $8 | 0; + } + + function DebugDraw_setActiveObjectColor_28int_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = Math_fround($3); + var $6 = 0, $8 = 0, $26 = 0; + $6 = __stack_pointer - 160 | 0; + __stack_pointer = $6; + HEAP32[($6 + 156 | 0) >> 2] = $0; + HEAPF32[($6 + 152 | 0) >> 2] = $1; + HEAPF32[($6 + 148 | 0) >> 2] = $2; + HEAPF32[($6 + 144 | 0) >> 2] = $3; + HEAP32[($6 + 140 | 0) >> 2] = HEAP32[($6 + 156 | 0) >> 2] | 0; + $8 = HEAP32[($6 + 140 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($6 + 12 | 0, $8); + btVector3__setX_28float_29($6 + 12 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 152 | 0) >> 2]))); + btVector3__setY_28float_29($6 + 12 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 148 | 0) >> 2]))); + btVector3__setZ_28float_29($6 + 12 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 144 | 0) >> 2]))); + $26 = HEAP32[($6 + 140 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$26 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($26, $6 + 12 | 0); + __stack_pointer = $6 + 160 | 0; + return; + } + + function btVector3__setY_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + return; + } + + function btVector3__setZ_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + return; + } + + function DebugDraw_setDeactiveObjectColor_28int_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = Math_fround($3); + var $6 = 0, $8 = 0, $32 = 0; + $6 = __stack_pointer - 160 | 0; + __stack_pointer = $6; + HEAP32[($6 + 156 | 0) >> 2] = $0; + HEAPF32[($6 + 152 | 0) >> 2] = $1; + HEAPF32[($6 + 148 | 0) >> 2] = $2; + HEAPF32[($6 + 144 | 0) >> 2] = $3; + HEAP32[($6 + 140 | 0) >> 2] = HEAP32[($6 + 156 | 0) >> 2] | 0; + $8 = HEAP32[($6 + 140 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($6 + 12 | 0, $8); + btVector3__setX_28float_29(($6 + 12 | 0) + 16 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 152 | 0) >> 2]))); + btVector3__setY_28float_29(($6 + 12 | 0) + 16 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 148 | 0) >> 2]))); + btVector3__setZ_28float_29(($6 + 12 | 0) + 16 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 144 | 0) >> 2]))); + $32 = HEAP32[($6 + 140 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$32 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($32, $6 + 12 | 0); + __stack_pointer = $6 + 160 | 0; + return; + } + + function DebugDraw_setWantsDeactivationObjectColor_28int_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = Math_fround($3); + var $6 = 0, $8 = 0, $32 = 0; + $6 = __stack_pointer - 160 | 0; + __stack_pointer = $6; + HEAP32[($6 + 156 | 0) >> 2] = $0; + HEAPF32[($6 + 152 | 0) >> 2] = $1; + HEAPF32[($6 + 148 | 0) >> 2] = $2; + HEAPF32[($6 + 144 | 0) >> 2] = $3; + HEAP32[($6 + 140 | 0) >> 2] = HEAP32[($6 + 156 | 0) >> 2] | 0; + $8 = HEAP32[($6 + 140 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($6 + 12 | 0, $8); + btVector3__setX_28float_29(($6 + 12 | 0) + 32 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 152 | 0) >> 2]))); + btVector3__setY_28float_29(($6 + 12 | 0) + 32 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 148 | 0) >> 2]))); + btVector3__setZ_28float_29(($6 + 12 | 0) + 32 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 144 | 0) >> 2]))); + $32 = HEAP32[($6 + 140 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$32 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($32, $6 + 12 | 0); + __stack_pointer = $6 + 160 | 0; + return; + } + + function DebugDraw_setDisabledDeactivationObjectColor_28int_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = Math_fround($3); + var $6 = 0, $8 = 0, $32 = 0; + $6 = __stack_pointer - 160 | 0; + __stack_pointer = $6; + HEAP32[($6 + 156 | 0) >> 2] = $0; + HEAPF32[($6 + 152 | 0) >> 2] = $1; + HEAPF32[($6 + 148 | 0) >> 2] = $2; + HEAPF32[($6 + 144 | 0) >> 2] = $3; + HEAP32[($6 + 140 | 0) >> 2] = HEAP32[($6 + 156 | 0) >> 2] | 0; + $8 = HEAP32[($6 + 140 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($6 + 12 | 0, $8); + btVector3__setX_28float_29(($6 + 12 | 0) + 48 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 152 | 0) >> 2]))); + btVector3__setY_28float_29(($6 + 12 | 0) + 48 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 148 | 0) >> 2]))); + btVector3__setZ_28float_29(($6 + 12 | 0) + 48 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 144 | 0) >> 2]))); + $32 = HEAP32[($6 + 140 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$32 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($32, $6 + 12 | 0); + __stack_pointer = $6 + 160 | 0; + return; + } + + function DebugDraw_setDisabledSimulationObjectColor_28int_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = Math_fround($3); + var $6 = 0, $8 = 0, $32 = 0; + $6 = __stack_pointer - 160 | 0; + __stack_pointer = $6; + HEAP32[($6 + 156 | 0) >> 2] = $0; + HEAPF32[($6 + 152 | 0) >> 2] = $1; + HEAPF32[($6 + 148 | 0) >> 2] = $2; + HEAPF32[($6 + 144 | 0) >> 2] = $3; + HEAP32[($6 + 140 | 0) >> 2] = HEAP32[($6 + 156 | 0) >> 2] | 0; + $8 = HEAP32[($6 + 140 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($6 + 12 | 0, $8); + btVector3__setX_28float_29(($6 + 12 | 0) + 64 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 152 | 0) >> 2]))); + btVector3__setY_28float_29(($6 + 12 | 0) + 64 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 148 | 0) >> 2]))); + btVector3__setZ_28float_29(($6 + 12 | 0) + 64 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 144 | 0) >> 2]))); + $32 = HEAP32[($6 + 140 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$32 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($32, $6 + 12 | 0); + __stack_pointer = $6 + 160 | 0; + return; + } + + function DebugDraw_setAABBColor_28int_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = Math_fround($3); + var $6 = 0, $8 = 0, $32 = 0; + $6 = __stack_pointer - 160 | 0; + __stack_pointer = $6; + HEAP32[($6 + 156 | 0) >> 2] = $0; + HEAPF32[($6 + 152 | 0) >> 2] = $1; + HEAPF32[($6 + 148 | 0) >> 2] = $2; + HEAPF32[($6 + 144 | 0) >> 2] = $3; + HEAP32[($6 + 140 | 0) >> 2] = HEAP32[($6 + 156 | 0) >> 2] | 0; + $8 = HEAP32[($6 + 140 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($6 + 12 | 0, $8); + btVector3__setX_28float_29(($6 + 12 | 0) + 80 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 152 | 0) >> 2]))); + btVector3__setY_28float_29(($6 + 12 | 0) + 80 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 148 | 0) >> 2]))); + btVector3__setZ_28float_29(($6 + 12 | 0) + 80 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 144 | 0) >> 2]))); + $32 = HEAP32[($6 + 140 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$32 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($32, $6 + 12 | 0); + __stack_pointer = $6 + 160 | 0; + return; + } + + function DebugDraw_setContactPointColor_28int_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = Math_fround($3); + var $6 = 0, $8 = 0, $32 = 0; + $6 = __stack_pointer - 160 | 0; + __stack_pointer = $6; + HEAP32[($6 + 156 | 0) >> 2] = $0; + HEAPF32[($6 + 152 | 0) >> 2] = $1; + HEAPF32[($6 + 148 | 0) >> 2] = $2; + HEAPF32[($6 + 144 | 0) >> 2] = $3; + HEAP32[($6 + 140 | 0) >> 2] = HEAP32[($6 + 156 | 0) >> 2] | 0; + $8 = HEAP32[($6 + 140 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($6 + 12 | 0, $8); + btVector3__setX_28float_29(($6 + 12 | 0) + 96 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 152 | 0) >> 2]))); + btVector3__setY_28float_29(($6 + 12 | 0) + 96 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 148 | 0) >> 2]))); + btVector3__setZ_28float_29(($6 + 12 | 0) + 96 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 144 | 0) >> 2]))); + $32 = HEAP32[($6 + 140 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$32 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($32, $6 + 12 | 0); + __stack_pointer = $6 + 160 | 0; + return; + } + + function DebugDraw_setConstraintLimitColor_28int_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = Math_fround($3); + var $6 = 0, $8 = 0, $32 = 0; + $6 = __stack_pointer - 160 | 0; + __stack_pointer = $6; + HEAP32[($6 + 156 | 0) >> 2] = $0; + HEAPF32[($6 + 152 | 0) >> 2] = $1; + HEAPF32[($6 + 148 | 0) >> 2] = $2; + HEAPF32[($6 + 144 | 0) >> 2] = $3; + HEAP32[($6 + 140 | 0) >> 2] = HEAP32[($6 + 156 | 0) >> 2] | 0; + $8 = HEAP32[($6 + 140 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($6 + 12 | 0, $8); + btVector3__setX_28float_29(($6 + 12 | 0) + 112 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 152 | 0) >> 2]))); + btVector3__setY_28float_29(($6 + 12 | 0) + 112 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 148 | 0) >> 2]))); + btVector3__setZ_28float_29(($6 + 12 | 0) + 112 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 144 | 0) >> 2]))); + $32 = HEAP32[($6 + 140 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$32 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($32, $6 + 12 | 0); + __stack_pointer = $6 + 160 | 0; + return; + } + + function _malloc_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = dlmalloc(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $5 | 0; + } + + function _free_28int_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + dlfree(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function _read_f32_28int_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[(HEAP32[($3 + 12 | 0) >> 2] | 0) >> 2])); + } + + function _write_f32_28int_2c_20float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAPF32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + return; + } + + function Vec3_new_28float_2c_20float_2c_20float_29($0, $1, $2) { + $0 = Math_fround($0); + $1 = Math_fround($1); + $2 = Math_fround($2); + var $5 = 0, $7 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAPF32[($5 + 12 | 0) >> 2] = $0; + HEAPF32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + $7 = btVector3__operator_20new_28unsigned_20long_29(16 | 0) | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 | 0, $5 + 12 | 0 | 0, $5 + 8 | 0 | 0, $5 + 4 | 0 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $7 | 0; + } + + function btVector3__operator_20new_28unsigned_20long_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0, 16 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function Vec3_set_28int_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = Math_fround($3); + var $6 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAPF32[($6 + 24 | 0) >> 2] = $1; + HEAPF32[($6 + 20 | 0) >> 2] = $2; + HEAPF32[($6 + 16 | 0) >> 2] = $3; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 28 | 0) >> 2] | 0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29(HEAP32[($6 + 12 | 0) >> 2] | 0 | 0, $6 + 24 | 0 | 0, $6 + 20 | 0 | 0, $6 + 16 | 0 | 0); + __stack_pointer = $6 + 32 | 0; + return; + } + + function Vec3_x_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $7 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $7 = Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2]); + __stack_pointer = $3 + 16 | 0; + return Math_fround($7); + } + + function btVector3__x_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function Vec3_y_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $7 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $7 = Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2]); + __stack_pointer = $3 + 16 | 0; + return Math_fround($7); + } + + function btVector3__y_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0 | 0; + } + + function Vec3_z_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $7 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $7 = Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2]); + __stack_pointer = $3 + 16 | 0; + return Math_fround($7); + } + + function btVector3__z_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0 | 0; + } + + function Quat_new_28float_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3) { + $0 = Math_fround($0); + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = Math_fround($3); + var $6 = 0, $8 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAPF32[($6 + 12 | 0) >> 2] = $0; + HEAPF32[($6 + 8 | 0) >> 2] = $1; + HEAPF32[($6 + 4 | 0) >> 2] = $2; + HEAPF32[$6 >> 2] = $3; + $8 = operator_20new_28unsigned_20long_29(16 | 0) | 0; + btQuaternion__btQuaternion_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($8 | 0, $6 + 12 | 0 | 0, $6 + 8 | 0 | 0, $6 + 4 | 0 | 0, $6 | 0) | 0; + __stack_pointer = $6 + 16 | 0; + return $8 | 0; + } + + function btQuaternion__btQuaternion_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + btQuadWord__btQuadWord_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($8 | 0, HEAP32[($7 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $7 + 32 | 0; + return $8 | 0; + } + + function btQuadWord__btQuadWord_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0; + $7 = __stack_pointer - 32 | 0; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + HEAPF32[$8 >> 2] = Math_fround(HEAPF32[(HEAP32[($7 + 24 | 0) >> 2] | 0) >> 2]); + HEAPF32[($8 + 4 | 0) >> 2] = Math_fround(HEAPF32[(HEAP32[($7 + 20 | 0) >> 2] | 0) >> 2]); + HEAPF32[($8 + 8 | 0) >> 2] = Math_fround(HEAPF32[(HEAP32[($7 + 16 | 0) >> 2] | 0) >> 2]); + HEAPF32[($8 + 12 | 0) >> 2] = Math_fround(HEAPF32[(HEAP32[($7 + 12 | 0) >> 2] | 0) >> 2]); + return $8 | 0; + } + + function Quat_set_28int_2c_20float_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = Math_fround($3); + $4 = Math_fround($4); + var $7 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAPF32[($7 + 24 | 0) >> 2] = $1; + HEAPF32[($7 + 20 | 0) >> 2] = $2; + HEAPF32[($7 + 16 | 0) >> 2] = $3; + HEAPF32[($7 + 12 | 0) >> 2] = $4; + HEAP32[($7 + 8 | 0) >> 2] = HEAP32[($7 + 28 | 0) >> 2] | 0; + btQuadWord__setValue_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0, $7 + 24 | 0 | 0, $7 + 20 | 0 | 0, $7 + 16 | 0 | 0, $7 + 12 | 0 | 0); + __stack_pointer = $7 + 32 | 0; + return; + } + + function btQuadWord__setValue_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0; + $7 = __stack_pointer - 32 | 0; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + HEAPF32[$8 >> 2] = Math_fround(HEAPF32[(HEAP32[($7 + 24 | 0) >> 2] | 0) >> 2]); + HEAPF32[($8 + 4 | 0) >> 2] = Math_fround(HEAPF32[(HEAP32[($7 + 20 | 0) >> 2] | 0) >> 2]); + HEAPF32[($8 + 8 | 0) >> 2] = Math_fround(HEAPF32[(HEAP32[($7 + 16 | 0) >> 2] | 0) >> 2]); + HEAPF32[($8 + 12 | 0) >> 2] = Math_fround(HEAPF32[(HEAP32[($7 + 12 | 0) >> 2] | 0) >> 2]); + return; + } + + function Quat_x_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $7 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $7 = Math_fround(HEAPF32[(btQuadWord__x_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2]); + __stack_pointer = $3 + 16 | 0; + return Math_fround($7); + } + + function btQuadWord__x_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function Quat_y_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $7 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $7 = Math_fround(HEAPF32[(btQuadWord__y_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2]); + __stack_pointer = $3 + 16 | 0; + return Math_fround($7); + } + + function btQuadWord__y_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0 | 0; + } + + function Quat_z_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $7 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $7 = Math_fround(HEAPF32[(btQuadWord__z_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2]); + __stack_pointer = $3 + 16 | 0; + return Math_fround($7); + } + + function btQuadWord__z_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0 | 0; + } + + function Quat_w_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $7 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $7 = Math_fround(HEAPF32[(btQuadWord__w_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2]); + __stack_pointer = $3 + 16 | 0; + return Math_fround($7); + } + + function btQuadWord__w_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 12 | 0 | 0; + } + + function Transform_new_28_29() { + var $2 = 0, $4 = 0, $6 = 0; + $2 = __stack_pointer - 16 | 0; + __stack_pointer = $2; + $4 = operator_20new_28unsigned_20long_29(64 | 0) | 0; + btTransform__btTransform_28_29($4 | 0) | 0; + HEAP32[($2 + 12 | 0) >> 2] = $4; + btTransform__setIdentity_28_29(HEAP32[($2 + 12 | 0) >> 2] | 0 | 0); + $6 = HEAP32[($2 + 12 | 0) >> 2] | 0; + __stack_pointer = $2 + 16 | 0; + return $6 | 0; + } + + function btMatrix3x3__btMatrix3x3_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $7 = 0, $8 = 0, $10 = 0, $6 = 0, $16 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $4; + $6 = $4 + 48 | 0; + $7 = $4; + label$1 : while (1) { + $8 = $7; + btVector3__btVector3_28_29($8 | 0) | 0; + $10 = $8 + 16 | 0; + $7 = $10; + if (!(($10 | 0) == ($6 | 0) & 1 | 0)) { + continue label$1 + } + break label$1; + }; + $16 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $16 | 0; + } + + function btMatrix3x3__setIdentity_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 48 | 0; + __stack_pointer = $3; + HEAP32[($3 + 44 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 44 | 0) >> 2] | 0; + HEAPF32[($3 + 40 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($3 + 36 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 32 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 28 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 24 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($3 + 20 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 16 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 12 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 8 | 0) >> 2] = Math_fround(1.0); + btMatrix3x3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($4 | 0, $3 + 40 | 0 | 0, $3 + 36 | 0 | 0, $3 + 32 | 0 | 0, $3 + 28 | 0 | 0, $3 + 24 | 0 | 0, $3 + 20 | 0 | 0, $3 + 16 | 0 | 0, $3 + 12 | 0 | 0, $3 + 8 | 0 | 0); + __stack_pointer = $3 + 48 | 0; + return; + } + + function Transform_setIdentity_28int_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btTransform__setIdentity_28_29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btTransform__setOrigin_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, $8 = 0, $10 = 0, $32 = 0, $42 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $8 = (HEAP32[($4 + 12 | 0) >> 2] | 0) + 48 | 0; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $32 = i64toi32_i32$0; + i64toi32_i32$0 = $8; + HEAP32[i64toi32_i32$0 >> 2] = $32; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $10 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $10 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $42 = i64toi32_i32$1; + i64toi32_i32$1 = $8 + $10 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $42; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function Transform_setRotation_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btTransform__setRotation_28btQuaternion_20const__29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btTransform__setRotation_28btQuaternion_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btMatrix3x3__setRotation_28btQuaternion_20const__29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btMatrix3x3__setRotation_28btQuaternion_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 112 | 0; + __stack_pointer = $4; + HEAP32[($4 + 108 | 0) >> 2] = $0; + HEAP32[($4 + 104 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 108 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btQuaternion__length2_28_29_20const(HEAP32[($4 + 104 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 100 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($4 + 96 | 0) >> 2] = Math_fround(Math_fround(2.0) / Math_fround(HEAPF32[($4 + 100 | 0) >> 2])); + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btQuadWord__x_28_29_20const(HEAP32[($4 + 104 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($4 + 96 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 92 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btQuadWord__y_28_29_20const(HEAP32[($4 + 104 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($4 + 96 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 88 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btQuadWord__z_28_29_20const(HEAP32[($4 + 104 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($4 + 96 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 84 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btQuadWord__w_28_29_20const(HEAP32[($4 + 104 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($4 + 92 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 80 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btQuadWord__w_28_29_20const(HEAP32[($4 + 104 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($4 + 88 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 76 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btQuadWord__w_28_29_20const(HEAP32[($4 + 104 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($4 + 84 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 72 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btQuadWord__x_28_29_20const(HEAP32[($4 + 104 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($4 + 92 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 68 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btQuadWord__x_28_29_20const(HEAP32[($4 + 104 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($4 + 88 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 64 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btQuadWord__x_28_29_20const(HEAP32[($4 + 104 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($4 + 84 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 60 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btQuadWord__y_28_29_20const(HEAP32[($4 + 104 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($4 + 88 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 56 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btQuadWord__y_28_29_20const(HEAP32[($4 + 104 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($4 + 84 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 52 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btQuadWord__z_28_29_20const(HEAP32[($4 + 104 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($4 + 84 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 48 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($4 + 44 | 0) >> 2] = Math_fround(Math_fround(1.0) - Math_fround(Math_fround(HEAPF32[($4 + 56 | 0) >> 2]) + Math_fround(HEAPF32[($4 + 48 | 0) >> 2]))); + HEAPF32[($4 + 40 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($4 + 64 | 0) >> 2]) - Math_fround(HEAPF32[($4 + 72 | 0) >> 2])); + HEAPF32[($4 + 36 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($4 + 60 | 0) >> 2]) + Math_fround(HEAPF32[($4 + 76 | 0) >> 2])); + HEAPF32[($4 + 32 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($4 + 64 | 0) >> 2]) + Math_fround(HEAPF32[($4 + 72 | 0) >> 2])); + HEAPF32[($4 + 28 | 0) >> 2] = Math_fround(Math_fround(1.0) - Math_fround(Math_fround(HEAPF32[($4 + 68 | 0) >> 2]) + Math_fround(HEAPF32[($4 + 48 | 0) >> 2]))); + HEAPF32[($4 + 24 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($4 + 52 | 0) >> 2]) - Math_fround(HEAPF32[($4 + 80 | 0) >> 2])); + HEAPF32[($4 + 20 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($4 + 60 | 0) >> 2]) - Math_fround(HEAPF32[($4 + 76 | 0) >> 2])); + HEAPF32[($4 + 16 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($4 + 52 | 0) >> 2]) + Math_fround(HEAPF32[($4 + 80 | 0) >> 2])); + HEAPF32[($4 + 12 | 0) >> 2] = Math_fround(Math_fround(1.0) - Math_fround(Math_fround(HEAPF32[($4 + 68 | 0) >> 2]) + Math_fround(HEAPF32[($4 + 56 | 0) >> 2]))); + btMatrix3x3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($5 | 0, $4 + 44 | 0 | 0, $4 + 40 | 0 | 0, $4 + 36 | 0 | 0, $4 + 32 | 0 | 0, $4 + 28 | 0 | 0, $4 + 24 | 0 | 0, $4 + 20 | 0 | 0, $4 + 16 | 0 | 0, $4 + 12 | 0 | 0); + __stack_pointer = $4 + 112 | 0; + return; + } + + function Transform_getOrigin_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = btTransform__getOrigin_28_29(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function btTransform__getOrigin_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 48 | 0 | 0; + } + + function Transform_getRotation_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $10 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + btMatrix3x3__getRotation_28btQuaternion__29_20const(btTransform__getBasis_28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[$4 >> 2] | 0 | 0); + $10 = HEAP32[($4 + 8 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $10 | 0; + } + + function btTransform__getBasis_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btMatrix3x3__getRotation_28btQuaternion__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $86 = 0, $190 = Math_fround(0), $195 = 0, $220 = Math_fround(0), $225 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 64 | 0; + __stack_pointer = $4; + HEAP32[($4 + 60 | 0) >> 2] = $0; + HEAP32[($4 + 56 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 60 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($5 | 0) | 0) >> 2]) + Math_fround(HEAPF32[(btVector3__y_28_29_20const($5 + 16 | 0 | 0) | 0) >> 2])) + Math_fround(HEAPF32[(btVector3__z_28_29_20const($5 + 32 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 52 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($4 + 52 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btSqrt_28float_29(Math_fround(Math_fround(Math_fround(HEAPF32[($4 + 52 | 0) >> 2]) + Math_fround(1.0)))))), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($4 + 44 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($4 + 28 | 0) >> 2]) * Math_fround(.5)); + HEAPF32[($4 + 28 | 0) >> 2] = Math_fround(Math_fround(.5) / Math_fround(HEAPF32[($4 + 28 | 0) >> 2])); + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($5 + 32 | 0 | 0) | 0) >> 2]) - Math_fround(HEAPF32[(btVector3__z_28_29_20const($5 + 16 | 0 | 0) | 0) >> 2])) * Math_fround(HEAPF32[($4 + 28 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($5 | 0) | 0) >> 2]) - Math_fround(HEAPF32[(btVector3__x_28_29_20const($5 + 32 | 0 | 0) | 0) >> 2])) * Math_fround(HEAPF32[($4 + 28 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($5 + 16 | 0 | 0) | 0) >> 2]) - Math_fround(HEAPF32[(btVector3__y_28_29_20const($5 | 0) | 0) >> 2])) * Math_fround(HEAPF32[($4 + 28 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_f32$0; + break label$1; + } + label$3 : { + label$4 : { + if (!(Math_fround(HEAPF32[(btVector3__x_28_29_20const($5 | 0) | 0) >> 2]) < Math_fround(HEAPF32[(btVector3__y_28_29_20const($5 + 16 | 0 | 0) | 0) >> 2]) & 1 | 0)) { + break label$4 + } + $86 = Math_fround(HEAPF32[(btVector3__y_28_29_20const($5 + 16 | 0 | 0) | 0) >> 2]) < Math_fround(HEAPF32[(btVector3__z_28_29_20const($5 + 32 | 0 | 0) | 0) >> 2]) & 1 | 0 ? 2 : 1; + break label$3; + } + $86 = Math_fround(HEAPF32[(btVector3__x_28_29_20const($5 | 0) | 0) >> 2]) < Math_fround(HEAPF32[(btVector3__z_28_29_20const($5 + 32 | 0 | 0) | 0) >> 2]) & 1 | 0 ? 2 : 0; + } + HEAP32[($4 + 24 | 0) >> 2] = $86; + HEAP32[($4 + 20 | 0) >> 2] = ((HEAP32[($4 + 24 | 0) >> 2] | 0) + 1 | 0 | 0) % (3 | 0) | 0; + HEAP32[($4 + 16 | 0) >> 2] = ((HEAP32[($4 + 24 | 0) >> 2] | 0) + 2 | 0 | 0) % (3 | 0) | 0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btSqrt_28float_29(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const($5 + ((HEAP32[($4 + 24 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0) + ((HEAP32[($4 + 24 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) - Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const($5 + ((HEAP32[($4 + 20 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0) + ((HEAP32[($4 + 20 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])) - Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const($5 + ((HEAP32[($4 + 16 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0) + ((HEAP32[($4 + 16 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])) + Math_fround(1.0)))))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[(($4 + 32 | 0) + ((HEAP32[($4 + 24 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($4 + 12 | 0) >> 2]) * Math_fround(.5)); + HEAPF32[($4 + 12 | 0) >> 2] = Math_fround(Math_fround(.5) / Math_fround(HEAPF32[($4 + 12 | 0) >> 2])); + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const($5 + ((HEAP32[($4 + 16 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0) + ((HEAP32[($4 + 20 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) - Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const($5 + ((HEAP32[($4 + 20 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0) + ((HEAP32[($4 + 16 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])) * Math_fround(HEAPF32[($4 + 12 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + $190 = Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const($5 + ((HEAP32[($4 + 20 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0) + ((HEAP32[($4 + 24 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + $195 = btVector3__operator_20float_20const__28_29_20const($5 + ((HEAP32[($4 + 24 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0; + HEAPF32[(($4 + 32 | 0) + ((HEAP32[($4 + 20 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(Math_fround($190 + Math_fround(HEAPF32[($195 + ((HEAP32[($4 + 20 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])) * Math_fround(HEAPF32[($4 + 12 | 0) >> 2])); + $220 = Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const($5 + ((HEAP32[($4 + 16 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0) + ((HEAP32[($4 + 24 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + $225 = btVector3__operator_20float_20const__28_29_20const($5 + ((HEAP32[($4 + 24 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0; + HEAPF32[(($4 + 32 | 0) + ((HEAP32[($4 + 16 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(Math_fround($220 + Math_fround(HEAPF32[($225 + ((HEAP32[($4 + 16 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])) * Math_fround(HEAPF32[($4 + 12 | 0) >> 2])); + } + btQuadWord__setValue_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29(HEAP32[($4 + 56 | 0) >> 2] | 0 | 0, $4 + 32 | 0 | 0, ($4 + 32 | 0) + 4 | 0 | 0, ($4 + 32 | 0) + 8 | 0 | 0, ($4 + 32 | 0) + 12 | 0 | 0); + __stack_pointer = $4 + 64 | 0; + return; + } + + function btSqrt_28float_29($0) { + $0 = Math_fround($0); + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAPF32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(Math_sqrt(Math_fround(HEAPF32[($3 + 12 | 0) >> 2])))); + } + + function btVector3__operator_20float_20const__28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function Transform_getRotationAndOrigin_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $12 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + HEAP32[($4 + 20 | 0) >> 2] = HEAP32[($4 + 28 | 0) >> 2] | 0; + HEAP32[($4 + 16 | 0) >> 2] = HEAP32[($4 + 24 | 0) >> 2] | 0; + btMatrix3x3__getRotation_28btQuaternion__29_20const(btTransform__getBasis_28_29(HEAP32[($4 + 20 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btTransform__getOrigin_28_29(HEAP32[($4 + 20 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $12 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 32 | 0; + return $12 | 0; + } + + function Vec3_array_at_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $8 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + $8 = btAlignedObjectArray_btVector3___at_28int_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $8 | 0; + } + + function btAlignedObjectArray_btVector3___at_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $14 = 0, $29 = 0, $5 = 0, $40 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + $14 = GOT_data_internal___memory_base; + __assert_fail($14 + 85840 | 0 | 0, $14 + 78192 | 0 | 0, 169 | 0, $14 + 68983 | 0 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btVector3___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + $29 = GOT_data_internal___memory_base; + __assert_fail($29 + 87321 | 0 | 0, $29 + 78192 | 0 | 0, 170 | 0, $29 + 68983 | 0 | 0); + wasm2js_trap(); + } + $40 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 4 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $40 | 0; + } + + function btAlignedObjectArray_btVector3___size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function int_array_size_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = btAlignedObjectArray_int___size_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function btAlignedObjectArray_int___size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function int_array_at_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + $9 = HEAP32[(btAlignedObjectArray_int___at_28int_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $9 | 0; + } + + function btAlignedObjectArray_int___at_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $14 = 0, $29 = 0, $5 = 0, $40 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + $14 = GOT_data_internal___memory_base; + __assert_fail($14 + 85840 | 0 | 0, $14 + 78192 | 0 | 0, 169 | 0, $14 + 68983 | 0 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_int___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + $29 = GOT_data_internal___memory_base; + __assert_fail($29 + 87321 | 0 | 0, $29 + 78192 | 0 | 0, 170 | 0, $29 + 68983 | 0 | 0); + wasm2js_trap(); + } + $40 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 2 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $40 | 0; + } + + function ccMaterial_new_28_29() { + var $2 = Math_fround(0), $1 = 0; + $1 = operator_20new_28unsigned_20long_29(16 | 0) | 0; + $2 = Math_fround(.10000000149011612); + cc__ccMaterial__ccMaterial_28float_2c_20float_2c_20float_2c_20float_29($1 | 0, Math_fround($2), Math_fround(Math_fround(.6000000238418579)), Math_fround($2), Math_fround($2)) | 0; + return $1 | 0; + } + + function cc__ccMaterial__ccMaterial_28float_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = Math_fround($3); + $4 = Math_fround($4); + var $7 = 0, $8 = 0; + $7 = __stack_pointer - 32 | 0; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAPF32[($7 + 24 | 0) >> 2] = $1; + HEAPF32[($7 + 20 | 0) >> 2] = $2; + HEAPF32[($7 + 16 | 0) >> 2] = $3; + HEAPF32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + HEAPF32[$8 >> 2] = Math_fround(HEAPF32[($7 + 24 | 0) >> 2]); + HEAPF32[($8 + 4 | 0) >> 2] = Math_fround(HEAPF32[($7 + 20 | 0) >> 2]); + HEAPF32[($8 + 8 | 0) >> 2] = Math_fround(HEAPF32[($7 + 16 | 0) >> 2]); + HEAPF32[($8 + 12 | 0) >> 2] = Math_fround(HEAPF32[($7 + 12 | 0) >> 2]); + return $8 | 0; + } + + function ccMaterial_set_28int_2c_20float_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = Math_fround($3); + $4 = Math_fround($4); + var $7 = 0; + $7 = __stack_pointer - 32 | 0; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAPF32[($7 + 24 | 0) >> 2] = $1; + HEAPF32[($7 + 20 | 0) >> 2] = $2; + HEAPF32[($7 + 16 | 0) >> 2] = $3; + HEAPF32[($7 + 12 | 0) >> 2] = $4; + HEAP32[($7 + 8 | 0) >> 2] = HEAP32[($7 + 28 | 0) >> 2] | 0; + HEAPF32[(HEAP32[($7 + 8 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[($7 + 24 | 0) >> 2]); + HEAPF32[((HEAP32[($7 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = Math_fround(HEAPF32[($7 + 20 | 0) >> 2]); + HEAPF32[((HEAP32[($7 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = Math_fround(HEAPF32[($7 + 16 | 0) >> 2]); + HEAPF32[((HEAP32[($7 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] = Math_fround(HEAPF32[($7 + 12 | 0) >> 2]); + return; + } + + function MotionState_getWorldTransform($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $7 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + $7 = HEAP32[($4 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($7, HEAP32[$4 >> 2] | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function MotionState_setWorldTransform($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $7 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + $7 = HEAP32[($4 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($7, HEAP32[$4 >> 2] | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btTransform__btTransform_28btMatrix3x3_20const__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0, $9 = 0, $12 = 0, $44 = 0, $54 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btMatrix3x3__btMatrix3x3_28btMatrix3x3_20const__29($6 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0; + $9 = $6 + 48 | 0; + i64toi32_i32$2 = HEAP32[($5 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $44 = i64toi32_i32$0; + i64toi32_i32$0 = $9; + HEAP32[i64toi32_i32$0 >> 2] = $44; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $12 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $12 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $54 = i64toi32_i32$1; + i64toi32_i32$1 = $9 + $12 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $54; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $5 + 16 | 0; + return $6 | 0; + } + + function btMotionState__btMotionState_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = GOT_data_internal_vtable_20for_20btMotionState + 8 | 0; + return $4 | 0; + } + + function btTransform__btTransform_28btTransform_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5 = 0, $8 = 0, $13 = 0, $46 = 0, $56 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btMatrix3x3__btMatrix3x3_28btMatrix3x3_20const__29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + $8 = $5 + 48 | 0; + i64toi32_i32$2 = (HEAP32[($4 + 8 | 0) >> 2] | 0) + 48 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $46 = i64toi32_i32$0; + i64toi32_i32$0 = $8; + HEAP32[i64toi32_i32$0 >> 2] = $46; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $13 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $13 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $56 = i64toi32_i32$1; + i64toi32_i32$1 = $8 + $13 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $56; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function ccMotionState_setup($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[$5 >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + cc__ccMotionState__setup_28int_2c_20btTransform_20const__29(HEAP32[$5 >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function cc__ccMotionState__setup_28int_2c_20btTransform_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + btTransform__operator__28btTransform_20const__29($6 + 8 | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return; + } + + function btTransform__operator__28btTransform_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5 = 0, $11 = 0, $13 = 0, $46 = 0, $56 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btMatrix3x3__operator__28btMatrix3x3_20const__29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + $11 = $5 + 48 | 0; + i64toi32_i32$2 = (HEAP32[($4 + 8 | 0) >> 2] | 0) + 48 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $46 = i64toi32_i32$0; + i64toi32_i32$0 = $11; + HEAP32[i64toi32_i32$0 >> 2] = $46; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $13 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $13 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $56 = i64toi32_i32$1; + i64toi32_i32$1 = $11 + $13 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $56; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function btRigidBody__btRigidBodyConstructionInfo__btRigidBodyConstructionInfo_28float_2c_20btMotionState__2c_20btCollisionShape__2c_20btVector3_20const__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $8 = 0, $7 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $15 = 0, $18 = 0, $86 = 0, $96 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAPF32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + HEAPF32[$8 >> 2] = Math_fround(HEAPF32[($7 + 24 | 0) >> 2]); + HEAP32[($8 + 4 | 0) >> 2] = HEAP32[($7 + 20 | 0) >> 2] | 0; + btTransform__btTransform_28_29($8 + 8 | 0 | 0) | 0; + HEAP32[($8 + 72 | 0) >> 2] = HEAP32[($7 + 16 | 0) >> 2] | 0; + $15 = $8 + 76 | 0; + i64toi32_i32$2 = HEAP32[($7 + 12 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $86 = i64toi32_i32$0; + i64toi32_i32$0 = $15; + HEAP32[i64toi32_i32$0 >> 2] = $86; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $18 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $18 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $96 = i64toi32_i32$1; + i64toi32_i32$1 = $15 + $18 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $96; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($8 + 92 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 96 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 100 | 0) >> 2] = Math_fround(.5); + HEAPF32[($8 + 104 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 108 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 112 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 116 | 0) >> 2] = Math_fround(.800000011920929); + HEAPF32[($8 + 120 | 0) >> 2] = Math_fround(1.0); + HEAP8[($8 + 124 | 0) >> 0] = 0; + HEAPF32[($8 + 128 | 0) >> 2] = Math_fround(.004999999888241291); + HEAPF32[($8 + 132 | 0) >> 2] = Math_fround(.009999999776482582); + HEAPF32[($8 + 136 | 0) >> 2] = Math_fround(.009999999776482582); + HEAPF32[($8 + 140 | 0) >> 2] = Math_fround(.009999999776482582); + btTransform__setIdentity_28_29($8 + 8 | 0 | 0); + __stack_pointer = $7 + 32 | 0; + return $8 | 0; + } + + function RigidBody_new_28float_2c_20int_29($0, $1) { + $0 = Math_fround($0); + $1 = $1 | 0; + var $4 = 0, $54 = 0, $58 = 0; + $4 = __stack_pointer - 208 | 0; + __stack_pointer = $4; + HEAPF32[($4 + 204 | 0) >> 2] = $0; + HEAP32[($4 + 200 | 0) >> 2] = $1; + HEAPF32[($4 + 180 | 0) >> 2] = Math_fround(1.6666666269302368); + HEAPF32[($4 + 176 | 0) >> 2] = Math_fround(1.6666666269302368); + HEAPF32[($4 + 172 | 0) >> 2] = Math_fround(1.6666666269302368); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 184 | 0 | 0, $4 + 180 | 0 | 0, $4 + 176 | 0 | 0, $4 + 172 | 0 | 0) | 0; + label$1 : { + if (!(Math_fround(HEAPF32[($4 + 204 | 0) >> 2]) == Math_fround(0 | 0) & 1 | 0)) { + break label$1 + } + HEAPF32[($4 + 168 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 164 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 160 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 184 | 0 | 0, $4 + 168 | 0 | 0, $4 + 164 | 0 | 0, $4 + 160 | 0 | 0); + } + btRigidBody__btRigidBodyConstructionInfo__btRigidBodyConstructionInfo_28float_2c_20btMotionState__2c_20btCollisionShape__2c_20btVector3_20const__29($4 + 16 | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 204 | 0) >> 2])), HEAP32[($4 + 200 | 0) >> 2] | 0 | 0, EmptyShape_static_28_29() | 0 | 0, $4 + 184 | 0 | 0) | 0; + $54 = btCollisionObject__operator_20new_28unsigned_20long_29(676 | 0) | 0; + btRigidBody__btRigidBody_28btRigidBody__btRigidBodyConstructionInfo_20const__29($54 | 0, $4 + 16 | 0 | 0) | 0; + HEAP32[($4 + 12 | 0) >> 2] = $54; + $58 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 208 | 0; + return $58 | 0; + } + + function RigidBody_setSleepingThresholds_28int_2c_20float_2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAPF32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + HEAP32[$5 >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + btRigidBody__setSleepingThresholds_28float_2c_20float_29(HEAP32[$5 >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 8 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]))); + __stack_pointer = $5 + 16 | 0; + return; + } + + function btRigidBody__setSleepingThresholds_28float_2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAPF32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAPF32[($6 + 532 | 0) >> 2] = Math_fround(HEAPF32[($5 + 8 | 0) >> 2]); + HEAPF32[($6 + 536 | 0) >> 2] = Math_fround(HEAPF32[($5 + 4 | 0) >> 2]); + return; + } + + function RigidBody_getLinearSleepingThreshold_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = Math_fround(btRigidBody__getLinearSleepingThreshold_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0)); + __stack_pointer = $3 + 16 | 0; + return Math_fround($6); + } + + function btRigidBody__getLinearSleepingThreshold_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 532 | 0) >> 2])); + } + + function RigidBody_setDamping_28int_2c_20float_2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAPF32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + HEAP32[$5 >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + btRigidBody__setDamping_28float_2c_20float_29(HEAP32[$5 >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 8 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]))); + __stack_pointer = $5 + 16 | 0; + return; + } + + function RigidBody_setMass_28int_2c_20float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0, $23 = 0, $44 = 0, $51 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 48 | 0; + __stack_pointer = $4; + HEAP32[($4 + 44 | 0) >> 2] = $0; + HEAPF32[($4 + 40 | 0) >> 2] = $1; + HEAP32[($4 + 36 | 0) >> 2] = HEAP32[($4 + 44 | 0) >> 2] | 0; + HEAPF32[($4 + 16 | 0) >> 2] = Math_fround(1.6666666269302368); + HEAPF32[($4 + 12 | 0) >> 2] = Math_fround(1.6666666269302368); + HEAPF32[($4 + 8 | 0) >> 2] = Math_fround(1.6666666269302368); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 20 | 0 | 0, $4 + 16 | 0 | 0, $4 + 12 | 0 | 0, $4 + 8 | 0 | 0) | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btRigidBody__getCollisionShape_28_29(HEAP32[($4 + 36 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + $23 = HEAP32[($4 + 4 | 0) >> 2] | 0; + label$1 : { + if (!(strcmp(FUNCTION_TABLE[HEAP32[((HEAP32[$23 >> 2] | 0) + 36 | 0) >> 2] | 0 | 0]($23) | 0 | 0, GOT_data_internal___memory_base + 65654 | 0 | 0) | 0)) { + break label$1 + } + label$2 : { + label$3 : { + if (!((btCollisionShape__isCompound_28_29_20const(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$3 + } + HEAP32[$4 >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + label$4 : { + if (!((btCompoundShape__getNumChildShapes_28_29_20const(HEAP32[$4 >> 2] | 0 | 0) | 0 | 0) > (0 | 0) & 1 | 0)) { + break label$4 + } + $44 = HEAP32[$4 >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$44 >> 2] | 0) + 32 | 0) >> 2] | 0 | 0]($44, Math_fround(HEAPF32[($4 + 40 | 0) >> 2]), $4 + 20 | 0); + } + break label$2; + } + $51 = HEAP32[($4 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$51 >> 2] | 0) + 32 | 0) >> 2] | 0 | 0]($51, Math_fround(HEAPF32[($4 + 40 | 0) >> 2]), $4 + 20 | 0); + } + } + btRigidBody__setMassProps_28float_2c_20btVector3_20const__29(HEAP32[($4 + 36 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 40 | 0) >> 2])), $4 + 20 | 0 | 0); + __stack_pointer = $4 + 48 | 0; + return; + } + + function btRigidBody__getCollisionShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 192 | 0) >> 2] | 0 | 0; + } + + function RigidBody_setMassProps_28int_2c_20float_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAPF32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + HEAP32[($5 + 16 | 0) >> 2] = HEAP32[($5 + 28 | 0) >> 2] | 0; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 20 | 0) >> 2] | 0; + btRigidBody__setMassProps_28float_2c_20btVector3_20const__29(HEAP32[($5 + 16 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 24 | 0) >> 2])), HEAP32[($5 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $5 + 32 | 0; + return; + } + + function RigidBody_setLinearFactor_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btRigidBody__setLinearFactor_28btVector3_20const__29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btRigidBody__setLinearFactor_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, i64toi32_i32$2 = 0, $5 = 0, $8 = 0, $10 = 0, $22 = 0, $24 = 0, $51 = 0, $61 = 0, $81 = 0, $94 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + $8 = $5 + 408 | 0; + i64toi32_i32$2 = HEAP32[($4 + 24 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $51 = i64toi32_i32$0; + i64toi32_i32$0 = $8; + HEAP32[i64toi32_i32$0 >> 2] = $51; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $10 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $10 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $61 = i64toi32_i32$1; + i64toi32_i32$1 = $8 + $10 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $61; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20float_20const__29($4 + 8 | 0 | 0, $5 + 408 | 0 | 0, $5 + 404 | 0 | 0); + $22 = $5 + 620 | 0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($4 + 12 | 0) >> 2] | 0; + $81 = i64toi32_i32$0; + i64toi32_i32$0 = $22; + HEAP32[i64toi32_i32$0 >> 2] = $81; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $24 = 8; + i64toi32_i32$2 = ($4 + 8 | 0) + $24 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $94 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $24 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $94; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $4 + 32 | 0; + return; + } + + function operator__28btVector3_20const__2c_20float_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $1; + HEAP32[($5 + 24 | 0) >> 2] = $2; + HEAPF32[($5 + 20 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[(HEAP32[($5 + 28 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[(HEAP32[($5 + 24 | 0) >> 2] | 0) >> 2])); + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 28 | 0) >> 2] | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[(HEAP32[($5 + 24 | 0) >> 2] | 0) >> 2])); + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[(HEAP32[($5 + 24 | 0) >> 2] | 0) >> 2])); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $5 + 20 | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0) | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function RigidBody_setAngularFactor_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btRigidBody__setAngularFactor_28btVector3_20const__29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btRigidBody__setAngularFactor_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, $5 = 0, $11 = 0, $13 = 0, $42 = 0, $52 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($5 + 304 | 0) >> 2] = (HEAP32[($5 + 304 | 0) >> 2] | 0) + 1 | 0; + $11 = $5 + 604 | 0; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $42 = i64toi32_i32$0; + i64toi32_i32$0 = $11; + HEAP32[i64toi32_i32$0 >> 2] = $42; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $13 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $13 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $52 = i64toi32_i32$1; + i64toi32_i32$1 = $11 + $13 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $52; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function RigidBody_getLinearVelocity_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = btRigidBody__getLinearVelocity_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function btRigidBody__getLinearVelocity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 372 | 0 | 0; + } + + function RigidBody_getAngularVelocity_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = btRigidBody__getAngularVelocity_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function btRigidBody__getAngularVelocity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 388 | 0 | 0; + } + + function RigidBody_setLinearVelocity_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btRigidBody__setLinearVelocity_28btVector3_20const__29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btRigidBody__setLinearVelocity_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, $5 = 0, $11 = 0, $13 = 0, $42 = 0, $52 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($5 + 304 | 0) >> 2] = (HEAP32[($5 + 304 | 0) >> 2] | 0) + 1 | 0; + $11 = $5 + 372 | 0; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $42 = i64toi32_i32$0; + i64toi32_i32$0 = $11; + HEAP32[i64toi32_i32$0 >> 2] = $42; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $13 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $13 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $52 = i64toi32_i32$1; + i64toi32_i32$1 = $11 + $13 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $52; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function RigidBody_setAngularVelocity_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btRigidBody__setAngularVelocity_28btVector3_20const__29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btRigidBody__setAngularVelocity_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, $5 = 0, $11 = 0, $13 = 0, $42 = 0, $52 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($5 + 304 | 0) >> 2] = (HEAP32[($5 + 304 | 0) >> 2] | 0) + 1 | 0; + $11 = $5 + 388 | 0; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $42 = i64toi32_i32$0; + i64toi32_i32$0 = $11; + HEAP32[i64toi32_i32$0 >> 2] = $42; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $13 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $13 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $52 = i64toi32_i32$1; + i64toi32_i32$1 = $11 + $13 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $52; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function RigidBody_setGravity_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btRigidBody__setGravity_28btVector3_20const__29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function RigidBody_applyTorque_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btRigidBody__applyTorque_28btVector3_20const__29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btRigidBody__applyTorque_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($4 + 8 | 0 | 0, HEAP32[($4 + 24 | 0) >> 2] | 0 | 0, $5 + 604 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($5 + 488 | 0 | 0, $4 + 8 | 0 | 0) | 0; + __stack_pointer = $4 + 32 | 0; + return; + } + + function btVector3__operator___28btVector3_20const__29_1($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAPF32[$5 >> 2] = Math_fround(Math_fround(HEAPF32[$5 >> 2]) + Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2])); + HEAPF32[($5 + 4 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]) + Math_fround(HEAPF32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2])); + HEAPF32[($5 + 8 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 8 | 0) >> 2]) + Math_fround(HEAPF32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2])); + return $5 | 0; + } + + function RigidBody_applyForce_28int_2c_20int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[$5 >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + btRigidBody__applyForce_28btVector3_20const__2c_20btVector3_20const__29(HEAP32[$5 >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function btRigidBody__applyForce_28btVector3_20const__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $8 = 0; + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 44 | 0) >> 2] = $0; + HEAP32[($5 + 40 | 0) >> 2] = $1; + HEAP32[($5 + 36 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 44 | 0) >> 2] | 0; + btRigidBody__applyCentralForce_28btVector3_20const__29($6 | 0, HEAP32[($5 + 40 | 0) >> 2] | 0 | 0); + $8 = HEAP32[($5 + 36 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($5 + 4 | 0 | 0, HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, $6 + 408 | 0 | 0); + btVector3__cross_28btVector3_20const__29_20const($5 + 20 | 0 | 0, $8 | 0, $5 + 4 | 0 | 0); + btRigidBody__applyTorque_28btVector3_20const__29($6 | 0, $5 + 20 | 0 | 0); + __stack_pointer = $5 + 48 | 0; + return; + } + + function btRigidBody__applyCentralForce_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($4 + 8 | 0 | 0, HEAP32[($4 + 24 | 0) >> 2] | 0 | 0, $5 + 408 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($5 + 472 | 0 | 0, $4 + 8 | 0 | 0) | 0; + __stack_pointer = $4 + 32 | 0; + return; + } + + function btVector3__cross_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $1; + HEAP32[($5 + 24 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + HEAPF32[($5 + 20 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($6 + 4 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[($6 + 8 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2])))); + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($6 + 8 | 0) >> 2]) * Math_fround(HEAPF32[(HEAP32[($5 + 24 | 0) >> 2] | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[$6 >> 2]) * Math_fround(HEAPF32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2])))); + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[$6 >> 2]) * Math_fround(HEAPF32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[($6 + 4 | 0) >> 2]) * Math_fround(HEAPF32[(HEAP32[($5 + 24 | 0) >> 2] | 0) >> 2])))); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $5 + 20 | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0) | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btRigidBody__applyTorqueImpulse_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 48 | 0; + __stack_pointer = $4; + HEAP32[($4 + 44 | 0) >> 2] = $0; + HEAP32[($4 + 40 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 44 | 0) >> 2] | 0; + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($4 + 8 | 0 | 0, $5 + 324 | 0 | 0, HEAP32[($4 + 40 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($4 + 24 | 0 | 0, $4 + 8 | 0 | 0, $5 + 604 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($5 + 388 | 0 | 0, $4 + 24 | 0 | 0) | 0; + __stack_pointer = $4 + 48 | 0; + return; + } + + function operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $1; + HEAP32[($5 + 24 | 0) >> 2] = $2; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $5 + 20 | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0) | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function RigidBody_applyImpulse_28int_2c_20int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[$5 >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + btRigidBody__applyImpulse_28btVector3_20const__2c_20btVector3_20const__29(HEAP32[$5 >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function btRigidBody__applyImpulse_28btVector3_20const__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $23 = 0; + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 44 | 0) >> 2] = $0; + HEAP32[($5 + 40 | 0) >> 2] = $1; + HEAP32[($5 + 36 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 44 | 0) >> 2] | 0; + label$1 : { + if (!(Math_fround(HEAPF32[($6 + 404 | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0)) { + break label$1 + } + btRigidBody__applyCentralImpulse_28btVector3_20const__29($6 | 0, HEAP32[($5 + 40 | 0) >> 2] | 0 | 0); + label$2 : { + if (!((btVector3__operator_20float__28_29($6 + 604 | 0 | 0) | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + $23 = HEAP32[($5 + 36 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($5 + 4 | 0 | 0, HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, $6 + 408 | 0 | 0); + btVector3__cross_28btVector3_20const__29_20const($5 + 20 | 0 | 0, $23 | 0, $5 + 4 | 0 | 0); + btRigidBody__applyTorqueImpulse_28btVector3_20const__29($6 | 0, $5 + 20 | 0 | 0); + } + } + __stack_pointer = $5 + 48 | 0; + return; + } + + function btRigidBody__applyCentralImpulse_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 48 | 0; + __stack_pointer = $4; + HEAP32[($4 + 44 | 0) >> 2] = $0; + HEAP32[($4 + 40 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 44 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($4 + 8 | 0 | 0, HEAP32[($4 + 40 | 0) >> 2] | 0 | 0, $5 + 408 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($4 + 24 | 0 | 0, $4 + 8 | 0 | 0, $5 + 404 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($5 + 372 | 0 | 0, $4 + 24 | 0 | 0) | 0; + __stack_pointer = $4 + 48 | 0; + return; + } + + function btRigidBody__getTotalForce_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 472 | 0 | 0; + } + + function btRigidBody__getTotalTorque_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 488 | 0 | 0; + } + + function RigidBody_getFlags_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = btRigidBody__getFlags_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function btRigidBody__getFlags_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 564 | 0) >> 2] | 0 | 0; + } + + function RigidBody_setFlags_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + btRigidBody__setFlags_28int_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btRigidBody__setFlags_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 564 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return; + } + + function RigidBody_clearForces_28int_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + btRigidBody__clearForces_28_29(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btRigidBody__clearForces_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 32 | 0; + __stack_pointer = $3; + HEAP32[($3 + 28 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 28 | 0) >> 2] | 0; + HEAPF32[($3 + 24 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 20 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 16 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 472 | 0 | 0, $3 + 24 | 0 | 0, $3 + 20 | 0 | 0, $3 + 16 | 0 | 0); + HEAPF32[($3 + 12 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 8 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 4 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 488 | 0 | 0, $3 + 12 | 0 | 0, $3 + 8 | 0 | 0, $3 + 4 | 0 | 0); + __stack_pointer = $3 + 32 | 0; + return; + } + + function RigidBody_wantsSleeping_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $8 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $8 = (btRigidBody__wantsSleeping_28_29(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0) & 1 | 0; + __stack_pointer = $3 + 16 | 0; + return $8 | 0; + } + + function btRigidBody__wantsSleeping_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $60 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((btCollisionObject__getActivationState_28_29_20const($4 | 0) | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$2 + } + HEAP8[($3 + 15 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + label$3 : { + label$4 : { + if ((HEAPU8[GOT_data_internal_gDisableDeactivation >> 0] | 0) & 1 | 0) { + break label$4 + } + if (!(Math_fround(HEAPF32[GOT_data_internal_gDeactivationTime >> 2]) == Math_fround(0 | 0) & 1 | 0)) { + break label$3 + } + } + HEAP8[($3 + 15 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + label$5 : { + label$6 : { + if ((btCollisionObject__getActivationState_28_29_20const($4 | 0) | 0 | 0) == (2 | 0) & 1 | 0) { + break label$6 + } + if (!((btCollisionObject__getActivationState_28_29_20const($4 | 0) | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$5 + } + } + HEAP8[($3 + 15 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + label$7 : { + if (!(Math_fround(HEAPF32[($4 + 224 | 0) >> 2]) > Math_fround(HEAPF32[GOT_data_internal_gDeactivationTime >> 2]) & 1 | 0)) { + break label$7 + } + HEAP8[($3 + 15 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + HEAP8[($3 + 15 | 0) >> 0] = 0 & 1 | 0; + } + $60 = (HEAPU8[($3 + 15 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $3 + 16 | 0; + return $60 | 0; + } + + function RigidBody_clearState_28int_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + btRigidBody__clearState_28_29(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btRigidBody__clearState_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 64 | 0; + __stack_pointer = $3; + HEAP32[($3 + 60 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 60 | 0) >> 2] | 0; + HEAPF32[($3 + 56 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 52 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 48 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 372 | 0 | 0, $3 + 56 | 0 | 0, $3 + 52 | 0 | 0, $3 + 48 | 0 | 0); + HEAPF32[($3 + 44 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 40 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 36 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 388 | 0 | 0, $3 + 44 | 0 | 0, $3 + 40 | 0 | 0, $3 + 36 | 0 | 0); + HEAPF32[($3 + 32 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 28 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 24 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 472 | 0 | 0, $3 + 32 | 0 | 0, $3 + 28 | 0 | 0, $3 + 24 | 0 | 0); + HEAPF32[($3 + 20 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 16 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 12 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 488 | 0 | 0, $3 + 20 | 0 | 0, $3 + 16 | 0 | 0, $3 + 12 | 0 | 0); + __stack_pointer = $3 + 64 | 0; + return; + } + + function RigidBody_getMotionState_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = btRigidBody__getMotionState_28_29(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function btRigidBody__getMotionState_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 540 | 0) >> 2] | 0 | 0; + } + + function RigidBody_getWorldTransform_28int_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + HEAP32[($4 + 20 | 0) >> 2] = HEAP32[($4 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btRigidBody__getMotionState_28_29(HEAP32[($4 + 20 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($4 + 12 | 0) >> 2] = HEAP32[($4 + 24 | 0) >> 2] | 0; + $9 = HEAP32[($4 + 16 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$9 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($9, HEAP32[($4 + 12 | 0) >> 2] | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function __cxx_global_var_init_12() { + EmBindInit_bullet__EmBindInit_bullet_28_29(GOT_data_internal___memory_base + 113880 | 0 | 0) | 0; + return; + } + + function EmBindInit_bullet__EmBindInit_bullet_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + emscripten__internal__InitFunc__InitFunc_28void_20_28__29_28_29_29($4 | 0, GOT_data_internal___table_base + 7 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function embind_init_bullet_28_29() { + var $2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0, $29 = 0, $125 = 0, $105 = 0, $109 = 0, $127 = 0, $129 = 0, $167 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $17 = 0, $18 = 0, $20 = 0, $21 = 0, $23 = 0, $24 = 0, $25 = 0, $1388 = 0, $32 = 0, $33 = 0, $38 = 0, $39 = 0, $40 = 0, $1422 = 0, $1435 = 0, $47 = 0, $48 = 0, $51 = 0, $52 = 0, $53 = 0, $1466 = 0, $1479 = 0, $60 = 0, $61 = 0, $64 = 0, $65 = 0, $66 = 0, $1510 = 0, $73 = 0, $74 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $86 = 0, $87 = 0, $89 = 0, $90 = 0, $92 = 0, $93 = 0, $94 = 0, $101 = 0, $111 = 0, $113 = 0, $114 = 0, $117 = 0, $120 = 0, $130 = 0, $131 = 0, $134 = 0, $137 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $155 = 0, $156 = 0, $158 = 0, $159 = 0, $161 = 0, $162 = 0, $163 = 0, $1782 = 0, $169 = 0, $170 = 0, $175 = 0, $176 = 0, $177 = 0, $1816 = 0, $184 = 0, $185 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $197 = 0, $198 = 0, $200 = 0, $201 = 0, $203 = 0, $204 = 0, $205 = 0, $212 = 0, $218 = 0, $220 = 0, $221 = 0, $224 = 0, $227 = 0, $233 = 0, $234 = 0, $237 = 0, $240 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $258 = 0, $259 = 0, $261 = 0, $262 = 0, $264 = 0, $265 = 0, $266 = 0, $2078 = 0, $271 = 0, $272 = 0, $277 = 0, $278 = 0, $279 = 0, $2112 = 0, $286 = 0, $287 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $299 = 0, $300 = 0, $302 = 0, $303 = 0, $305 = 0, $306 = 0, $307 = 0, $314 = 0, $320 = 0, $322 = 0, $323 = 0, $326 = 0, $329 = 0, $335 = 0, $336 = 0, $340 = 0, $344 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $2 = __stack_pointer - 960 | 0; + __stack_pointer = $2; + HEAP32[($2 + 356 | 0) >> 2] = $2 + 335 | 0; + $6 = GOT_data_internal___memory_base; + HEAP32[($2 + 352 | 0) >> 2] = $6 + 67306 | 0; + void_20emscripten__internal__NoBaseClass__verify_btDebugDraw__28_29(); + HEAP32[($2 + 348 | 0) >> 2] = GOT_func_internal_void_20const__20emscripten__internal__getActualType_btDebugDraw__28btDebugDraw__29; + (wasm2js_i32$0 = $2, wasm2js_i32$1 = void_20_28_emscripten__internal__NoBaseClass__getUpcaster_btDebugDraw__28_29_29_28_29() | 0), HEAP32[(wasm2js_i32$0 + 344 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $2, wasm2js_i32$1 = void_20_28_emscripten__internal__NoBaseClass__getDowncaster_btDebugDraw__28_29_29_28_29() | 0), HEAP32[(wasm2js_i32$0 + 340 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($2 + 336 | 0) >> 2] = GOT_func_internal_void_20emscripten__internal__raw_destructor_btDebugDraw__28btDebugDraw__29; + $12 = emscripten__internal__TypeID_btDebugDraw_2c_20void___get_28_29() | 0; + $13 = emscripten__internal__TypeID_emscripten__internal__AllowedRawPointer_btDebugDraw__2c_20void___get_28_29() | 0; + $14 = emscripten__internal__TypeID_emscripten__internal__AllowedRawPointer_btDebugDraw_20const__2c_20void___get_28_29() | 0; + $15 = emscripten__internal__NoBaseClass__get_28_29() | 0; + HEAP32[($2 + 612 | 0) >> 2] = HEAP32[($2 + 348 | 0) >> 2] | 0; + $17 = char_20const__20emscripten__internal__getGenericSignature_int_2c_20int__28_29() | 0; + $18 = HEAP32[($2 + 348 | 0) >> 2] | 0; + HEAP32[($2 + 636 | 0) >> 2] = HEAP32[($2 + 344 | 0) >> 2] | 0; + $20 = char_20const__20emscripten__internal__getGenericSignature_void__28_29() | 0; + $21 = HEAP32[($2 + 344 | 0) >> 2] | 0; + HEAP32[($2 + 632 | 0) >> 2] = HEAP32[($2 + 340 | 0) >> 2] | 0; + $23 = char_20const__20emscripten__internal__getGenericSignature_void__28_29() | 0; + $24 = HEAP32[($2 + 340 | 0) >> 2] | 0; + $25 = HEAP32[($2 + 352 | 0) >> 2] | 0; + HEAP32[($2 + 640 | 0) >> 2] = HEAP32[($2 + 336 | 0) >> 2] | 0; + _embind_register_class($12 | 0, $13 | 0, $14 | 0, $15 | 0, $17 | 0, $18 | 0, $20 | 0, $21 | 0, $23 | 0, $24 | 0, $25 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int__28_29() | 0 | 0, HEAP32[($2 + 336 | 0) >> 2] | 0 | 0); + $29 = 1; + HEAP32[($2 + 328 | 0) >> 2] = $29; + HEAP32[($2 + 324 | 0) >> 2] = 100; + i64toi32_i32$0 = HEAP32[($2 + 324 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($2 + 328 | 0) >> 2] | 0; + $1388 = i64toi32_i32$0; + i64toi32_i32$0 = $2; + HEAP32[($2 + 392 | 0) >> 2] = $1388; + HEAP32[($2 + 396 | 0) >> 2] = i64toi32_i32$1; + $32 = HEAP32[($2 + 392 | 0) >> 2] | 0; + $33 = HEAP32[($2 + 396 | 0) >> 2] | 0; + HEAP32[($2 + 420 | 0) >> 2] = $2 + 335 | 0; + HEAP32[($2 + 416 | 0) >> 2] = $6 + 70055 | 0; + HEAP32[($2 + 412 | 0) >> 2] = $33; + HEAP32[($2 + 408 | 0) >> 2] = $32; + $38 = HEAP32[($2 + 420 | 0) >> 2] | 0; + $39 = HEAP32[($2 + 416 | 0) >> 2] | 0; + $40 = HEAP32[($2 + 408 | 0) >> 2] | 0; + HEAP32[($2 + 404 | 0) >> 2] = HEAP32[($2 + 412 | 0) >> 2] | 0; + HEAP32[($2 + 400 | 0) >> 2] = $40; + i64toi32_i32$1 = HEAP32[($2 + 400 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($2 + 404 | 0) >> 2] | 0; + $1422 = i64toi32_i32$1; + i64toi32_i32$1 = $2; + HEAP32[($2 + 40 | 0) >> 2] = $1422; + HEAP32[($2 + 44 | 0) >> 2] = i64toi32_i32$0; + void_20emscripten__internal__RegisterClassMethod_void_20_28btIDebugDraw____29_28_29___invoke_btDebugDraw__28char_20const__2c_20void_20_28btIDebugDraw____29_28_29_29($39 | 0, $2 + 40 | 0 | 0); + HEAP32[($2 + 320 | 0) >> 2] = $29; + HEAP32[($2 + 316 | 0) >> 2] = 104; + i64toi32_i32$0 = HEAP32[($2 + 316 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($2 + 320 | 0) >> 2] | 0; + $1435 = i64toi32_i32$0; + i64toi32_i32$0 = $2; + HEAP32[($2 + 360 | 0) >> 2] = $1435; + HEAP32[($2 + 364 | 0) >> 2] = i64toi32_i32$1; + $47 = HEAP32[($2 + 360 | 0) >> 2] | 0; + $48 = HEAP32[($2 + 364 | 0) >> 2] | 0; + HEAP32[($2 + 388 | 0) >> 2] = $38; + HEAP32[($2 + 384 | 0) >> 2] = $6 + 70066 | 0; + HEAP32[($2 + 380 | 0) >> 2] = $48; + HEAP32[($2 + 376 | 0) >> 2] = $47; + $51 = HEAP32[($2 + 388 | 0) >> 2] | 0; + $52 = HEAP32[($2 + 384 | 0) >> 2] | 0; + $53 = HEAP32[($2 + 376 | 0) >> 2] | 0; + HEAP32[($2 + 372 | 0) >> 2] = HEAP32[($2 + 380 | 0) >> 2] | 0; + HEAP32[($2 + 368 | 0) >> 2] = $53; + i64toi32_i32$1 = HEAP32[($2 + 368 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($2 + 372 | 0) >> 2] | 0; + $1466 = i64toi32_i32$1; + i64toi32_i32$1 = $2; + HEAP32[($2 + 32 | 0) >> 2] = $1466; + HEAP32[($2 + 36 | 0) >> 2] = i64toi32_i32$0; + void_20emscripten__internal__RegisterClassMethod_void_20_28btIDebugDraw____29_28_29___invoke_btDebugDraw__28char_20const__2c_20void_20_28btIDebugDraw____29_28_29_29($52 | 0, $2 + 32 | 0 | 0); + HEAP32[($2 + 312 | 0) >> 2] = $29; + HEAP32[($2 + 308 | 0) >> 2] = 108; + i64toi32_i32$0 = HEAP32[($2 + 308 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($2 + 312 | 0) >> 2] | 0; + $1479 = i64toi32_i32$0; + i64toi32_i32$0 = $2; + HEAP32[($2 + 424 | 0) >> 2] = $1479; + HEAP32[($2 + 428 | 0) >> 2] = i64toi32_i32$1; + $60 = HEAP32[($2 + 424 | 0) >> 2] | 0; + $61 = HEAP32[($2 + 428 | 0) >> 2] | 0; + HEAP32[($2 + 456 | 0) >> 2] = $51; + HEAP32[($2 + 452 | 0) >> 2] = $6 + 81794 | 0; + HEAP32[($2 + 448 | 0) >> 2] = $61; + HEAP32[($2 + 444 | 0) >> 2] = $60; + $64 = HEAP32[($2 + 456 | 0) >> 2] | 0; + $65 = HEAP32[($2 + 452 | 0) >> 2] | 0; + $66 = HEAP32[($2 + 444 | 0) >> 2] | 0; + HEAP32[($2 + 440 | 0) >> 2] = HEAP32[($2 + 448 | 0) >> 2] | 0; + HEAP32[($2 + 436 | 0) >> 2] = $66; + i64toi32_i32$1 = HEAP32[($2 + 436 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($2 + 440 | 0) >> 2] | 0; + $1510 = i64toi32_i32$1; + i64toi32_i32$1 = $2; + HEAP32[($2 + 24 | 0) >> 2] = $1510; + HEAP32[($2 + 28 | 0) >> 2] = i64toi32_i32$0; + void_20emscripten__internal__RegisterClassMethod_void_20_28btDebugDraw____29_28int_2c_20int_2c_20int_29___invoke_btDebugDraw__28char_20const__2c_20void_20_28btDebugDraw____29_28int_2c_20int_2c_20int_29_29($65 | 0, $2 + 24 | 0 | 0); + HEAP32[($2 + 468 | 0) >> 2] = $64; + HEAP32[($2 + 464 | 0) >> 2] = $6 + 71171 | 0; + $73 = HEAP32[($2 + 468 | 0) >> 2] | 0; + $74 = HEAP32[($2 + 464 | 0) >> 2] | 0; + HEAP32[($2 + 664 | 0) >> 2] = $2 + 463 | 0; + HEAP32[($2 + 660 | 0) >> 2] = $74; + void_20emscripten__base_btDebugDraw___verify_btDebugDrawWrapper__28_29(); + HEAP32[($2 + 656 | 0) >> 2] = GOT_func_internal_void_20const__20emscripten__internal__getActualType_btDebugDrawWrapper__28btDebugDrawWrapper__29; + (wasm2js_i32$0 = $2, wasm2js_i32$1 = btDebugDraw__20_28_emscripten__base_btDebugDraw___getUpcaster_btDebugDrawWrapper__28_29_29_28btDebugDrawWrapper__29() | 0), HEAP32[(wasm2js_i32$0 + 652 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $2, wasm2js_i32$1 = btDebugDrawWrapper__20_28_emscripten__base_btDebugDraw___getDowncaster_btDebugDrawWrapper__28_29_29_28btDebugDraw__29() | 0), HEAP32[(wasm2js_i32$0 + 648 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($2 + 644 | 0) >> 2] = GOT_func_internal_void_20emscripten__internal__raw_destructor_btDebugDrawWrapper__28btDebugDrawWrapper__29; + $81 = emscripten__internal__TypeID_btDebugDrawWrapper_2c_20void___get_28_29() | 0; + $82 = emscripten__internal__TypeID_emscripten__internal__AllowedRawPointer_btDebugDrawWrapper__2c_20void___get_28_29() | 0; + $83 = emscripten__internal__TypeID_emscripten__internal__AllowedRawPointer_btDebugDrawWrapper_20const__2c_20void___get_28_29() | 0; + $84 = emscripten__base_btDebugDraw___get_28_29() | 0; + HEAP32[($2 + 720 | 0) >> 2] = HEAP32[($2 + 656 | 0) >> 2] | 0; + $86 = char_20const__20emscripten__internal__getGenericSignature_int_2c_20int__28_29() | 0; + $87 = HEAP32[($2 + 656 | 0) >> 2] | 0; + HEAP32[($2 + 724 | 0) >> 2] = HEAP32[($2 + 652 | 0) >> 2] | 0; + $89 = char_20const__20emscripten__internal__getGenericSignature_int_2c_20int__28_29() | 0; + $90 = HEAP32[($2 + 652 | 0) >> 2] | 0; + HEAP32[($2 + 728 | 0) >> 2] = HEAP32[($2 + 648 | 0) >> 2] | 0; + $92 = char_20const__20emscripten__internal__getGenericSignature_int_2c_20int__28_29() | 0; + $93 = HEAP32[($2 + 648 | 0) >> 2] | 0; + $94 = HEAP32[($2 + 660 | 0) >> 2] | 0; + HEAP32[($2 + 732 | 0) >> 2] = HEAP32[($2 + 644 | 0) >> 2] | 0; + _embind_register_class($81 | 0, $82 | 0, $83 | 0, $84 | 0, $86 | 0, $87 | 0, $89 | 0, $90 | 0, $92 | 0, $93 | 0, $94 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int__28_29() | 0 | 0, HEAP32[($2 + 644 | 0) >> 2] | 0 | 0); + $101 = void_20_28_emscripten__select_overload_void_20_28btDebugDrawWrapper__29__28void_20_28__29_28btDebugDrawWrapper__29_29_29_28btDebugDrawWrapper__29(emscripten__class__btDebugDraw_2c_20emscripten__internal__NoBaseClass__20const__20emscripten__class__btDebugDraw_2c_20emscripten__internal__NoBaseClass___allow_subclass_btDebugDrawWrapper__28char_20const__2c_20emscripten__constructor___29_20const___lambda__28btDebugDrawWrapper__29__operator_20void_20_28__29_28btDebugDrawWrapper__29_28_29_20const($2 + 462 | 0 | 0) | 0 | 0) | 0; + HEAP32[($2 + 676 | 0) >> 2] = $2 + 463 | 0; + $105 = $6 + 76334 | 0; + HEAP32[($2 + 672 | 0) >> 2] = $105; + HEAP32[($2 + 668 | 0) >> 2] = $101; + void_20emscripten__internal__RegisterClassMethod_void_20_28__29_28btDebugDrawWrapper__29___invoke_btDebugDrawWrapper__28char_20const__2c_20void_20_28__29_28btDebugDrawWrapper__29_29(HEAP32[($2 + 672 | 0) >> 2] | 0 | 0, HEAP32[($2 + 668 | 0) >> 2] | 0 | 0); + HEAP32[($2 + 696 | 0) >> 2] = $73; + $109 = $6 + 67879 | 0; + HEAP32[($2 + 692 | 0) >> 2] = $109; + HEAP32[($2 + 688 | 0) >> 2] = GOT_func_internal_btDebugDrawWrapper__20emscripten__internal__wrapped_new_btDebugDrawWrapper__2c_20btDebugDrawWrapper_2c_20emscripten__val__28emscripten__val___29; + $111 = HEAP32[($2 + 696 | 0) >> 2] | 0; + HEAP32[($2 + 680 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_btDebugDrawWrapper__2c_20emscripten__val_____invoke_28btDebugDrawWrapper__20_28__29_28emscripten__val___29_2c_20emscripten___EM_VAL__29; + $113 = emscripten__internal__TypeID_btDebugDraw_2c_20void___get_28_29() | 0; + $114 = HEAP32[($2 + 692 | 0) >> 2] | 0; + $117 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointer_emscripten__ret_val____ArgTypeList_btDebugDrawWrapper__2c_20emscripten__val_____getCount_28_29_20const($2 + 687 | 0 | 0) | 0; + $120 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointer_emscripten__ret_val____ArgTypeList_btDebugDrawWrapper__2c_20emscripten__val_____getTypes_28_29_20const($2 + 687 | 0 | 0) | 0; + HEAP32[($2 + 736 | 0) >> 2] = HEAP32[($2 + 680 | 0) >> 2] | 0; + $125 = 0; + _embind_register_class_class_function($113 | 0, $114 | 0, $117 | 0, $120 | 0, char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($2 + 680 | 0) >> 2] | 0 | 0, HEAP32[($2 + 688 | 0) >> 2] | 0 | 0, $125 | 0); + HEAP32[($2 + 716 | 0) >> 2] = $111; + $127 = $6 + 82233 | 0; + HEAP32[($2 + 712 | 0) >> 2] = $127; + HEAP32[($2 + 708 | 0) >> 2] = GOT_func_internal_emscripten__val_20emscripten__internal__wrapped_extend_btDebugDrawWrapper__28std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const__29; + $129 = GOT_func_internal_emscripten__internal__Invoker_emscripten__val_2c_20std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const____invoke_28emscripten__val_20_28__29_28std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const__29_2c_20emscripten__internal__BindingType_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___2c_20void____unnamed___2c_20emscripten___EM_VAL__29; + HEAP32[($2 + 700 | 0) >> 2] = $129; + $130 = emscripten__internal__TypeID_btDebugDraw_2c_20void___get_28_29() | 0; + $131 = HEAP32[($2 + 712 | 0) >> 2] | 0; + $134 = emscripten__internal__WithPolicies____ArgTypeList_emscripten__val_2c_20std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const____getCount_28_29_20const($2 + 707 | 0 | 0) | 0; + $137 = emscripten__internal__WithPolicies____ArgTypeList_emscripten__val_2c_20std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const____getTypes_28_29_20const($2 + 707 | 0 | 0) | 0; + HEAP32[($2 + 740 | 0) >> 2] = HEAP32[($2 + 700 | 0) >> 2] | 0; + _embind_register_class_class_function($130 | 0, $131 | 0, $134 | 0, $137 | 0, char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($2 + 700 | 0) >> 2] | 0 | 0, HEAP32[($2 + 708 | 0) >> 2] | 0 | 0, $125 | 0); + HEAP32[($2 + 492 | 0) >> 2] = $2 + 306 | 0; + HEAP32[($2 + 488 | 0) >> 2] = $6 + 67478 | 0; + void_20emscripten__internal__NoBaseClass__verify_btControllerHitReport__28_29(); + HEAP32[($2 + 484 | 0) >> 2] = GOT_func_internal_void_20const__20emscripten__internal__getActualType_btControllerHitReport__28btControllerHitReport__29; + (wasm2js_i32$0 = $2, wasm2js_i32$1 = void_20_28_emscripten__internal__NoBaseClass__getUpcaster_btControllerHitReport__28_29_29_28_29() | 0), HEAP32[(wasm2js_i32$0 + 480 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $2, wasm2js_i32$1 = void_20_28_emscripten__internal__NoBaseClass__getDowncaster_btControllerHitReport__28_29_29_28_29() | 0), HEAP32[(wasm2js_i32$0 + 476 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($2 + 472 | 0) >> 2] = GOT_func_internal_void_20emscripten__internal__raw_destructor_btControllerHitReport__28btControllerHitReport__29; + $150 = emscripten__internal__TypeID_btControllerHitReport_2c_20void___get_28_29() | 0; + $151 = emscripten__internal__TypeID_emscripten__internal__AllowedRawPointer_btControllerHitReport__2c_20void___get_28_29() | 0; + $152 = emscripten__internal__TypeID_emscripten__internal__AllowedRawPointer_btControllerHitReport_20const__2c_20void___get_28_29() | 0; + $153 = emscripten__internal__NoBaseClass__get_28_29() | 0; + HEAP32[($2 + 744 | 0) >> 2] = HEAP32[($2 + 484 | 0) >> 2] | 0; + $155 = char_20const__20emscripten__internal__getGenericSignature_int_2c_20int__28_29() | 0; + $156 = HEAP32[($2 + 484 | 0) >> 2] | 0; + HEAP32[($2 + 628 | 0) >> 2] = HEAP32[($2 + 480 | 0) >> 2] | 0; + $158 = char_20const__20emscripten__internal__getGenericSignature_void__28_29() | 0; + $159 = HEAP32[($2 + 480 | 0) >> 2] | 0; + HEAP32[($2 + 624 | 0) >> 2] = HEAP32[($2 + 476 | 0) >> 2] | 0; + $161 = char_20const__20emscripten__internal__getGenericSignature_void__28_29() | 0; + $162 = HEAP32[($2 + 476 | 0) >> 2] | 0; + $163 = HEAP32[($2 + 488 | 0) >> 2] | 0; + HEAP32[($2 + 748 | 0) >> 2] = HEAP32[($2 + 472 | 0) >> 2] | 0; + _embind_register_class($150 | 0, $151 | 0, $152 | 0, $153 | 0, $155 | 0, $156 | 0, $158 | 0, $159 | 0, $161 | 0, $162 | 0, $163 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int__28_29() | 0 | 0, HEAP32[($2 + 472 | 0) >> 2] | 0 | 0); + HEAP32[($2 + 300 | 0) >> 2] = $29; + $167 = 16; + HEAP32[($2 + 296 | 0) >> 2] = $167; + i64toi32_i32$0 = HEAP32[($2 + 296 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($2 + 300 | 0) >> 2] | 0; + $1782 = i64toi32_i32$0; + i64toi32_i32$0 = $2; + HEAP32[($2 + 496 | 0) >> 2] = $1782; + HEAP32[($2 + 500 | 0) >> 2] = i64toi32_i32$1; + $169 = HEAP32[($2 + 496 | 0) >> 2] | 0; + $170 = HEAP32[($2 + 500 | 0) >> 2] | 0; + HEAP32[($2 + 528 | 0) >> 2] = $2 + 306 | 0; + HEAP32[($2 + 524 | 0) >> 2] = $6 + 67323 | 0; + HEAP32[($2 + 520 | 0) >> 2] = $170; + HEAP32[($2 + 516 | 0) >> 2] = $169; + $175 = HEAP32[($2 + 528 | 0) >> 2] | 0; + $176 = HEAP32[($2 + 524 | 0) >> 2] | 0; + $177 = HEAP32[($2 + 516 | 0) >> 2] | 0; + HEAP32[($2 + 512 | 0) >> 2] = HEAP32[($2 + 520 | 0) >> 2] | 0; + HEAP32[($2 + 508 | 0) >> 2] = $177; + i64toi32_i32$1 = HEAP32[($2 + 508 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($2 + 512 | 0) >> 2] | 0; + $1816 = i64toi32_i32$1; + i64toi32_i32$1 = $2; + HEAP32[($2 + 16 | 0) >> 2] = $1816; + HEAP32[($2 + 20 | 0) >> 2] = i64toi32_i32$0; + void_20emscripten__internal__RegisterClassMethod_void_20_28btControllerHitReport____29_28int_2c_20int_29___invoke_btControllerHitReport__28char_20const__2c_20void_20_28btControllerHitReport____29_28int_2c_20int_29_29($176 | 0, $2 + 16 | 0 | 0); + HEAP32[($2 + 540 | 0) >> 2] = $175; + HEAP32[($2 + 536 | 0) >> 2] = $6 + 71183 | 0; + $184 = HEAP32[($2 + 540 | 0) >> 2] | 0; + $185 = HEAP32[($2 + 536 | 0) >> 2] | 0; + HEAP32[($2 + 772 | 0) >> 2] = $2 + 535 | 0; + HEAP32[($2 + 768 | 0) >> 2] = $185; + void_20emscripten__base_btControllerHitReport___verify_btControllerHitReportWrapper__28_29(); + HEAP32[($2 + 764 | 0) >> 2] = GOT_func_internal_void_20const__20emscripten__internal__getActualType_btControllerHitReportWrapper__28btControllerHitReportWrapper__29; + (wasm2js_i32$0 = $2, wasm2js_i32$1 = btControllerHitReport__20_28_emscripten__base_btControllerHitReport___getUpcaster_btControllerHitReportWrapper__28_29_29_28btControllerHitReportWrapper__29() | 0), HEAP32[(wasm2js_i32$0 + 760 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $2, wasm2js_i32$1 = btControllerHitReportWrapper__20_28_emscripten__base_btControllerHitReport___getDowncaster_btControllerHitReportWrapper__28_29_29_28btControllerHitReport__29() | 0), HEAP32[(wasm2js_i32$0 + 756 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($2 + 752 | 0) >> 2] = GOT_func_internal_void_20emscripten__internal__raw_destructor_btControllerHitReportWrapper__28btControllerHitReportWrapper__29; + $192 = emscripten__internal__TypeID_btControllerHitReportWrapper_2c_20void___get_28_29() | 0; + $193 = emscripten__internal__TypeID_emscripten__internal__AllowedRawPointer_btControllerHitReportWrapper__2c_20void___get_28_29() | 0; + $194 = emscripten__internal__TypeID_emscripten__internal__AllowedRawPointer_btControllerHitReportWrapper_20const__2c_20void___get_28_29() | 0; + $195 = emscripten__base_btControllerHitReport___get_28_29() | 0; + HEAP32[($2 + 832 | 0) >> 2] = HEAP32[($2 + 764 | 0) >> 2] | 0; + $197 = char_20const__20emscripten__internal__getGenericSignature_int_2c_20int__28_29() | 0; + $198 = HEAP32[($2 + 764 | 0) >> 2] | 0; + HEAP32[($2 + 836 | 0) >> 2] = HEAP32[($2 + 760 | 0) >> 2] | 0; + $200 = char_20const__20emscripten__internal__getGenericSignature_int_2c_20int__28_29() | 0; + $201 = HEAP32[($2 + 760 | 0) >> 2] | 0; + HEAP32[($2 + 840 | 0) >> 2] = HEAP32[($2 + 756 | 0) >> 2] | 0; + $203 = char_20const__20emscripten__internal__getGenericSignature_int_2c_20int__28_29() | 0; + $204 = HEAP32[($2 + 756 | 0) >> 2] | 0; + $205 = HEAP32[($2 + 768 | 0) >> 2] | 0; + HEAP32[($2 + 844 | 0) >> 2] = HEAP32[($2 + 752 | 0) >> 2] | 0; + _embind_register_class($192 | 0, $193 | 0, $194 | 0, $195 | 0, $197 | 0, $198 | 0, $200 | 0, $201 | 0, $203 | 0, $204 | 0, $205 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int__28_29() | 0 | 0, HEAP32[($2 + 752 | 0) >> 2] | 0 | 0); + $212 = void_20_28_emscripten__select_overload_void_20_28btControllerHitReportWrapper__29__28void_20_28__29_28btControllerHitReportWrapper__29_29_29_28btControllerHitReportWrapper__29(emscripten__class__btControllerHitReport_2c_20emscripten__internal__NoBaseClass__20const__20emscripten__class__btControllerHitReport_2c_20emscripten__internal__NoBaseClass___allow_subclass_btControllerHitReportWrapper__28char_20const__2c_20emscripten__constructor___29_20const___lambda__28btControllerHitReportWrapper__29__operator_20void_20_28__29_28btControllerHitReportWrapper__29_28_29_20const($2 + 534 | 0 | 0) | 0 | 0) | 0; + HEAP32[($2 + 784 | 0) >> 2] = $2 + 535 | 0; + HEAP32[($2 + 780 | 0) >> 2] = $105; + HEAP32[($2 + 776 | 0) >> 2] = $212; + void_20emscripten__internal__RegisterClassMethod_void_20_28__29_28btControllerHitReportWrapper__29___invoke_btControllerHitReportWrapper__28char_20const__2c_20void_20_28__29_28btControllerHitReportWrapper__29_29(HEAP32[($2 + 780 | 0) >> 2] | 0 | 0, HEAP32[($2 + 776 | 0) >> 2] | 0 | 0); + HEAP32[($2 + 804 | 0) >> 2] = $184; + HEAP32[($2 + 800 | 0) >> 2] = $109; + HEAP32[($2 + 796 | 0) >> 2] = GOT_func_internal_btControllerHitReportWrapper__20emscripten__internal__wrapped_new_btControllerHitReportWrapper__2c_20btControllerHitReportWrapper_2c_20emscripten__val__28emscripten__val___29; + $218 = HEAP32[($2 + 804 | 0) >> 2] | 0; + HEAP32[($2 + 788 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_btControllerHitReportWrapper__2c_20emscripten__val_____invoke_28btControllerHitReportWrapper__20_28__29_28emscripten__val___29_2c_20emscripten___EM_VAL__29; + $220 = emscripten__internal__TypeID_btControllerHitReport_2c_20void___get_28_29() | 0; + $221 = HEAP32[($2 + 800 | 0) >> 2] | 0; + $224 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointer_emscripten__ret_val____ArgTypeList_btControllerHitReportWrapper__2c_20emscripten__val_____getCount_28_29_20const($2 + 795 | 0 | 0) | 0; + $227 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointer_emscripten__ret_val____ArgTypeList_btControllerHitReportWrapper__2c_20emscripten__val_____getTypes_28_29_20const($2 + 795 | 0 | 0) | 0; + HEAP32[($2 + 848 | 0) >> 2] = HEAP32[($2 + 788 | 0) >> 2] | 0; + _embind_register_class_class_function($220 | 0, $221 | 0, $224 | 0, $227 | 0, char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($2 + 788 | 0) >> 2] | 0 | 0, HEAP32[($2 + 796 | 0) >> 2] | 0 | 0, $125 | 0); + HEAP32[($2 + 824 | 0) >> 2] = $218; + HEAP32[($2 + 820 | 0) >> 2] = $127; + HEAP32[($2 + 816 | 0) >> 2] = GOT_func_internal_emscripten__val_20emscripten__internal__wrapped_extend_btControllerHitReportWrapper__28std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const__29; + HEAP32[($2 + 808 | 0) >> 2] = $129; + $233 = emscripten__internal__TypeID_btControllerHitReport_2c_20void___get_28_29() | 0; + $234 = HEAP32[($2 + 820 | 0) >> 2] | 0; + $237 = emscripten__internal__WithPolicies____ArgTypeList_emscripten__val_2c_20std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const____getCount_28_29_20const($2 + 815 | 0 | 0) | 0; + $240 = emscripten__internal__WithPolicies____ArgTypeList_emscripten__val_2c_20std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const____getTypes_28_29_20const($2 + 815 | 0 | 0) | 0; + HEAP32[($2 + 828 | 0) >> 2] = HEAP32[($2 + 808 | 0) >> 2] | 0; + _embind_register_class_class_function($233 | 0, $234 | 0, $237 | 0, $240 | 0, char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($2 + 808 | 0) >> 2] | 0 | 0, HEAP32[($2 + 816 | 0) >> 2] | 0 | 0, $125 | 0); + HEAP32[($2 + 564 | 0) >> 2] = $2 + 294 | 0; + HEAP32[($2 + 560 | 0) >> 2] = $6 + 81279 | 0; + void_20emscripten__internal__NoBaseClass__verify_cc__ccMotionState__28_29(); + HEAP32[($2 + 556 | 0) >> 2] = GOT_func_internal_void_20const__20emscripten__internal__getActualType_cc__ccMotionState__28cc__ccMotionState__29; + (wasm2js_i32$0 = $2, wasm2js_i32$1 = void_20_28_emscripten__internal__NoBaseClass__getUpcaster_cc__ccMotionState__28_29_29_28_29() | 0), HEAP32[(wasm2js_i32$0 + 552 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $2, wasm2js_i32$1 = void_20_28_emscripten__internal__NoBaseClass__getDowncaster_cc__ccMotionState__28_29_29_28_29() | 0), HEAP32[(wasm2js_i32$0 + 548 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($2 + 544 | 0) >> 2] = GOT_func_internal_void_20emscripten__internal__raw_destructor_cc__ccMotionState__28cc__ccMotionState__29; + $253 = emscripten__internal__TypeID_cc__ccMotionState_2c_20void___get_28_29() | 0; + $254 = emscripten__internal__TypeID_emscripten__internal__AllowedRawPointer_cc__ccMotionState__2c_20void___get_28_29() | 0; + $255 = emscripten__internal__TypeID_emscripten__internal__AllowedRawPointer_cc__ccMotionState_20const__2c_20void___get_28_29() | 0; + $256 = emscripten__internal__NoBaseClass__get_28_29() | 0; + HEAP32[($2 + 852 | 0) >> 2] = HEAP32[($2 + 556 | 0) >> 2] | 0; + $258 = char_20const__20emscripten__internal__getGenericSignature_int_2c_20int__28_29() | 0; + $259 = HEAP32[($2 + 556 | 0) >> 2] | 0; + HEAP32[($2 + 620 | 0) >> 2] = HEAP32[($2 + 552 | 0) >> 2] | 0; + $261 = char_20const__20emscripten__internal__getGenericSignature_void__28_29() | 0; + $262 = HEAP32[($2 + 552 | 0) >> 2] | 0; + HEAP32[($2 + 616 | 0) >> 2] = HEAP32[($2 + 548 | 0) >> 2] | 0; + $264 = char_20const__20emscripten__internal__getGenericSignature_void__28_29() | 0; + $265 = HEAP32[($2 + 548 | 0) >> 2] | 0; + $266 = HEAP32[($2 + 560 | 0) >> 2] | 0; + HEAP32[($2 + 856 | 0) >> 2] = HEAP32[($2 + 544 | 0) >> 2] | 0; + _embind_register_class($253 | 0, $254 | 0, $255 | 0, $256 | 0, $258 | 0, $259 | 0, $261 | 0, $262 | 0, $264 | 0, $265 | 0, $266 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int__28_29() | 0 | 0, HEAP32[($2 + 544 | 0) >> 2] | 0 | 0); + HEAP32[($2 + 288 | 0) >> 2] = $29; + HEAP32[($2 + 284 | 0) >> 2] = $167; + i64toi32_i32$0 = HEAP32[($2 + 284 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($2 + 288 | 0) >> 2] | 0; + $2078 = i64toi32_i32$0; + i64toi32_i32$0 = $2; + HEAP32[($2 + 568 | 0) >> 2] = $2078; + HEAP32[($2 + 572 | 0) >> 2] = i64toi32_i32$1; + $271 = HEAP32[($2 + 568 | 0) >> 2] | 0; + $272 = HEAP32[($2 + 572 | 0) >> 2] | 0; + HEAP32[($2 + 596 | 0) >> 2] = $2 + 294 | 0; + HEAP32[($2 + 592 | 0) >> 2] = $6 + 70462 | 0; + HEAP32[($2 + 588 | 0) >> 2] = $272; + HEAP32[($2 + 584 | 0) >> 2] = $271; + $277 = HEAP32[($2 + 596 | 0) >> 2] | 0; + $278 = HEAP32[($2 + 592 | 0) >> 2] | 0; + $279 = HEAP32[($2 + 584 | 0) >> 2] | 0; + HEAP32[($2 + 580 | 0) >> 2] = HEAP32[($2 + 588 | 0) >> 2] | 0; + HEAP32[($2 + 576 | 0) >> 2] = $279; + i64toi32_i32$1 = HEAP32[($2 + 576 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($2 + 580 | 0) >> 2] | 0; + $2112 = i64toi32_i32$1; + i64toi32_i32$1 = $2; + HEAP32[($2 + 8 | 0) >> 2] = $2112; + HEAP32[($2 + 12 | 0) >> 2] = i64toi32_i32$0; + void_20emscripten__internal__RegisterClassMethod_void_20_28cc__ccMotionState____29_28int_29___invoke_cc__ccMotionState__28char_20const__2c_20void_20_28cc__ccMotionState____29_28int_29_29($278 | 0, $2 + 8 | 0 | 0); + HEAP32[($2 + 608 | 0) >> 2] = $277; + HEAP32[($2 + 604 | 0) >> 2] = $6 + 71210 | 0; + $286 = HEAP32[($2 + 608 | 0) >> 2] | 0; + $287 = HEAP32[($2 + 604 | 0) >> 2] | 0; + HEAP32[($2 + 880 | 0) >> 2] = $2 + 603 | 0; + HEAP32[($2 + 876 | 0) >> 2] = $287; + void_20emscripten__base_cc__ccMotionState___verify_ccMotionStateWrapper__28_29(); + HEAP32[($2 + 872 | 0) >> 2] = GOT_func_internal_void_20const__20emscripten__internal__getActualType_ccMotionStateWrapper__28ccMotionStateWrapper__29; + (wasm2js_i32$0 = $2, wasm2js_i32$1 = cc__ccMotionState__20_28_emscripten__base_cc__ccMotionState___getUpcaster_ccMotionStateWrapper__28_29_29_28ccMotionStateWrapper__29() | 0), HEAP32[(wasm2js_i32$0 + 868 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $2, wasm2js_i32$1 = ccMotionStateWrapper__20_28_emscripten__base_cc__ccMotionState___getDowncaster_ccMotionStateWrapper__28_29_29_28cc__ccMotionState__29() | 0), HEAP32[(wasm2js_i32$0 + 864 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($2 + 860 | 0) >> 2] = GOT_func_internal_void_20emscripten__internal__raw_destructor_ccMotionStateWrapper__28ccMotionStateWrapper__29; + $294 = emscripten__internal__TypeID_ccMotionStateWrapper_2c_20void___get_28_29() | 0; + $295 = emscripten__internal__TypeID_emscripten__internal__AllowedRawPointer_ccMotionStateWrapper__2c_20void___get_28_29() | 0; + $296 = emscripten__internal__TypeID_emscripten__internal__AllowedRawPointer_ccMotionStateWrapper_20const__2c_20void___get_28_29() | 0; + $297 = emscripten__base_cc__ccMotionState___get_28_29() | 0; + HEAP32[($2 + 940 | 0) >> 2] = HEAP32[($2 + 872 | 0) >> 2] | 0; + $299 = char_20const__20emscripten__internal__getGenericSignature_int_2c_20int__28_29() | 0; + $300 = HEAP32[($2 + 872 | 0) >> 2] | 0; + HEAP32[($2 + 944 | 0) >> 2] = HEAP32[($2 + 868 | 0) >> 2] | 0; + $302 = char_20const__20emscripten__internal__getGenericSignature_int_2c_20int__28_29() | 0; + $303 = HEAP32[($2 + 868 | 0) >> 2] | 0; + HEAP32[($2 + 948 | 0) >> 2] = HEAP32[($2 + 864 | 0) >> 2] | 0; + $305 = char_20const__20emscripten__internal__getGenericSignature_int_2c_20int__28_29() | 0; + $306 = HEAP32[($2 + 864 | 0) >> 2] | 0; + $307 = HEAP32[($2 + 876 | 0) >> 2] | 0; + HEAP32[($2 + 952 | 0) >> 2] = HEAP32[($2 + 860 | 0) >> 2] | 0; + _embind_register_class($294 | 0, $295 | 0, $296 | 0, $297 | 0, $299 | 0, $300 | 0, $302 | 0, $303 | 0, $305 | 0, $306 | 0, $307 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int__28_29() | 0 | 0, HEAP32[($2 + 860 | 0) >> 2] | 0 | 0); + $314 = void_20_28_emscripten__select_overload_void_20_28ccMotionStateWrapper__29__28void_20_28__29_28ccMotionStateWrapper__29_29_29_28ccMotionStateWrapper__29(emscripten__class__cc__ccMotionState_2c_20emscripten__internal__NoBaseClass__20const__20emscripten__class__cc__ccMotionState_2c_20emscripten__internal__NoBaseClass___allow_subclass_ccMotionStateWrapper__28char_20const__2c_20emscripten__constructor___29_20const___lambda__28ccMotionStateWrapper__29__operator_20void_20_28__29_28ccMotionStateWrapper__29_28_29_20const($2 + 602 | 0 | 0) | 0 | 0) | 0; + HEAP32[($2 + 892 | 0) >> 2] = $2 + 603 | 0; + HEAP32[($2 + 888 | 0) >> 2] = $105; + HEAP32[($2 + 884 | 0) >> 2] = $314; + void_20emscripten__internal__RegisterClassMethod_void_20_28__29_28ccMotionStateWrapper__29___invoke_ccMotionStateWrapper__28char_20const__2c_20void_20_28__29_28ccMotionStateWrapper__29_29(HEAP32[($2 + 888 | 0) >> 2] | 0 | 0, HEAP32[($2 + 884 | 0) >> 2] | 0 | 0); + HEAP32[($2 + 912 | 0) >> 2] = $286; + HEAP32[($2 + 908 | 0) >> 2] = $109; + HEAP32[($2 + 904 | 0) >> 2] = GOT_func_internal_ccMotionStateWrapper__20emscripten__internal__wrapped_new_ccMotionStateWrapper__2c_20ccMotionStateWrapper_2c_20emscripten__val__28emscripten__val___29; + $320 = HEAP32[($2 + 912 | 0) >> 2] | 0; + HEAP32[($2 + 896 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_ccMotionStateWrapper__2c_20emscripten__val_____invoke_28ccMotionStateWrapper__20_28__29_28emscripten__val___29_2c_20emscripten___EM_VAL__29; + $322 = emscripten__internal__TypeID_cc__ccMotionState_2c_20void___get_28_29() | 0; + $323 = HEAP32[($2 + 908 | 0) >> 2] | 0; + $326 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointer_emscripten__ret_val____ArgTypeList_ccMotionStateWrapper__2c_20emscripten__val_____getCount_28_29_20const($2 + 903 | 0 | 0) | 0; + $329 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointer_emscripten__ret_val____ArgTypeList_ccMotionStateWrapper__2c_20emscripten__val_____getTypes_28_29_20const($2 + 903 | 0 | 0) | 0; + HEAP32[($2 + 956 | 0) >> 2] = HEAP32[($2 + 896 | 0) >> 2] | 0; + _embind_register_class_class_function($322 | 0, $323 | 0, $326 | 0, $329 | 0, char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($2 + 896 | 0) >> 2] | 0 | 0, HEAP32[($2 + 904 | 0) >> 2] | 0 | 0, $125 | 0); + HEAP32[($2 + 932 | 0) >> 2] = $320; + HEAP32[($2 + 928 | 0) >> 2] = $127; + HEAP32[($2 + 924 | 0) >> 2] = GOT_func_internal_emscripten__val_20emscripten__internal__wrapped_extend_ccMotionStateWrapper__28std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const__29; + HEAP32[($2 + 916 | 0) >> 2] = $129; + $335 = emscripten__internal__TypeID_cc__ccMotionState_2c_20void___get_28_29() | 0; + $336 = HEAP32[($2 + 928 | 0) >> 2] | 0; + $340 = emscripten__internal__WithPolicies____ArgTypeList_emscripten__val_2c_20std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const____getCount_28_29_20const($2 + 923 | 0 | 0) | 0; + $344 = emscripten__internal__WithPolicies____ArgTypeList_emscripten__val_2c_20std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const____getTypes_28_29_20const($2 + 923 | 0 | 0) | 0; + HEAP32[($2 + 936 | 0) >> 2] = HEAP32[($2 + 916 | 0) >> 2] | 0; + _embind_register_class_class_function($335 | 0, $336 | 0, $340 | 0, $344 | 0, char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($2 + 916 | 0) >> 2] | 0 | 0, HEAP32[($2 + 924 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + void_20emscripten__function_int_2c_20int__28char_20const__2c_20int_20_28__29_28int_29_29(GOT_data_internal___memory_base + 82822 | 0 | 0, GOT_func_internal__malloc_28int_29 | 0); + void_20emscripten__function_void_2c_20int__28char_20const__2c_20void_20_28__29_28int_29_29(GOT_data_internal___memory_base + 81920 | 0 | 0, GOT_func_internal__free_28int_29 | 0); + void_20emscripten__function_float_2c_20int__28char_20const__2c_20float_20_28__29_28int_29_29(GOT_data_internal___memory_base + 85454 | 0 | 0, GOT_func_internal__read_f32_28int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float__28char_20const__2c_20void_20_28__29_28int_2c_20float_29_29(GOT_data_internal___memory_base + 85443 | 0 | 0, GOT_func_internal__write_f32_28int_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_29(GOT_data_internal___memory_base + 81178 | 0 | 0, GOT_func_internal__safe_delete_28int_2c_20int_29 | 0); + void_20emscripten__function_int_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 67297 | 0 | 0, GOT_func_internal_Vec3_new_28float_2c_20float_2c_20float_29 | 0); + void_20emscripten__function_float_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20float_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 66636 | 0 | 0, GOT_func_internal_Vec3_x_28int_29 | 0); + void_20emscripten__function_float_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20float_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 66255 | 0 | 0, GOT_func_internal_Vec3_y_28int_29 | 0); + void_20emscripten__function_float_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20float_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 65543 | 0 | 0, GOT_func_internal_Vec3_z_28int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 68428 | 0 | 0, GOT_func_internal_Vec3_set_28int_2c_20float_2c_20float_2c_20float_29 | 0); + void_20emscripten__function_int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28float_2c_20float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 66797 | 0 | 0, GOT_func_internal_Quat_new_28float_2c_20float_2c_20float_2c_20float_29 | 0); + void_20emscripten__function_float_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20float_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 66629 | 0 | 0, GOT_func_internal_Quat_x_28int_29 | 0); + void_20emscripten__function_float_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20float_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 66248 | 0 | 0, GOT_func_internal_Quat_y_28int_29 | 0); + void_20emscripten__function_float_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20float_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 65536 | 0 | 0, GOT_func_internal_Quat_z_28int_29 | 0); + void_20emscripten__function_float_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20float_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 67316 | 0 | 0, GOT_func_internal_Quat_w_28int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 68404 | 0 | 0, GOT_func_internal_Quat_set_28int_2c_20float_2c_20float_2c_20float_2c_20float_29 | 0); + void_20emscripten__function_int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 66926 | 0 | 0, GOT_func_internal_Transform_new_28_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 65706 | 0 | 0, GOT_func_internal_Transform_setIdentity_28int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 76623 | 0 | 0, GOT_func_internal_Transform_setRotation_28int_2c_20int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 76952 | 0 | 0, GOT_func_internal_Transform_getOrigin_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 76645 | 0 | 0, GOT_func_internal_Transform_getRotation_28int_2c_20int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 76972 | 0 | 0, GOT_func_internal_Transform_getRotationAndOrigin_28int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 77099 | 0 | 0, GOT_func_internal_MotionState_getWorldTransform | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 77007 | 0 | 0, GOT_func_internal_MotionState_setWorldTransform | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 71265 | 0 | 0, GOT_func_internal_ccMotionState_setup | 0); + void_20emscripten__function_int_2c_20int__28char_20const__2c_20int_20_28__29_28int_29_29(GOT_data_internal___memory_base + 80799 | 0 | 0, GOT_func_internal_int_array_size_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20int__28char_20const__2c_20int_20_28__29_28int_2c_20int_29_29(GOT_data_internal___memory_base + 68959 | 0 | 0, GOT_func_internal_int_array_at_28int_2c_20int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20int__28char_20const__2c_20int_20_28__29_28int_2c_20int_29_29(GOT_data_internal___memory_base + 68972 | 0 | 0, GOT_func_internal_Vec3_array_at_28int_2c_20int_29 | 0); + void_20emscripten__function_int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 66154 | 0 | 0, GOT_func_internal_TypedConstraint_getFixedBody_28_29 | 0); + void_20emscripten__function_float_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20float_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 80876 | 0 | 0, GOT_func_internal_TypedConstraint_getDbgDrawSize_28int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 80845 | 0 | 0, GOT_func_internal_TypedConstraint_setDbgDrawSize_28int_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 82695 | 0 | 0, GOT_func_internal_TypedConstraint_setMaxImpulseThreshold_28int_2c_20float_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_2c_20int_2c_20int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 66686 | 0 | 0, GOT_func_internal_HingeConstraint_new_28int_2c_20int_2c_20int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 70077 | 0 | 0, GOT_func_internal_HingeConstraint_setFrames_28int_2c_20int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 67939 | 0 | 0, GOT_func_internal_HingeConstraint_setLimit_28int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20bool_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20bool_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 70597 | 0 | 0, GOT_func_internal_HingeConstraint_enableMotor_28int_2c_20bool_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20bool_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20bool_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 65988 | 0 | 0, GOT_func_internal_HingeConstraint_setAngularOnly_28int_2c_20bool_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 81452 | 0 | 0, GOT_func_internal_HingeConstraint_setMaxMotorImpulse_28int_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 68548 | 0 | 0, GOT_func_internal_HingeConstraint_setMotorTarget_28int_2c_20float_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 65775 | 0 | 0, GOT_func_internal_HingeConstraint_setMotorVelocity_28int_2c_20float_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_2c_20int_2c_20int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 66726 | 0 | 0, GOT_func_internal_P2PConstraint_new_28int_2c_20int_2c_20int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 84571 | 0 | 0, GOT_func_internal_P2PConstraint_setPivotA_28int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 84443 | 0 | 0, GOT_func_internal_P2PConstraint_setPivotB_28int_2c_20int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_2c_20int_2c_20int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 66706 | 0 | 0, GOT_func_internal_FixedConstraint_new_28int_2c_20int_2c_20int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 70103 | 0 | 0, GOT_func_internal_FixedConstraint_setFrames_28int_2c_20int_2c_20int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_2c_20int_2c_20int_2c_20int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 66744 | 0 | 0, GOT_func_internal_Generic6DofSpring2Constraint_new_28int_2c_20int_2c_20int_2c_20int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 70129 | 0 | 0, GOT_func_internal_Generic6DofSpring2Constraint_setFrames_28int_2c_20int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 67964 | 0 | 0, GOT_func_internal_Generic6DofSpring2Constraint_setLimit_28int_2c_20int_2c_20float_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20bool_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20bool_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 80563 | 0 | 0, GOT_func_internal_Generic6DofSpring2Constraint_enableSpring_28int_2c_20int_2c_20bool_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 69315 | 0 | 0, GOT_func_internal_Generic6DofSpring2Constraint_setStiffness_28int_2c_20int_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 80646 | 0 | 0, GOT_func_internal_Generic6DofSpring2Constraint_setDamping_28int_2c_20int_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 82138 | 0 | 0, GOT_func_internal_Generic6DofSpring2Constraint_setBounce_28int_2c_20int_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 67656 | 0 | 0, GOT_func_internal_Generic6DofSpring2Constraint_setEquilibriumPoint_28int_2c_20int_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20bool_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20bool_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 70625 | 0 | 0, GOT_func_internal_Generic6DofSpring2Constraint_enableMotor_28int_2c_20int_2c_20bool_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 82092 | 0 | 0, GOT_func_internal_Generic6DofSpring2Constraint_setMaxMotorForce_28int_2c_20int_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 65728 | 0 | 0, GOT_func_internal_Generic6DofSpring2Constraint_setTargetVelocity_28int_2c_20int_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20bool_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20bool_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 76151 | 0 | 0, GOT_func_internal_Generic6DofSpring2Constraint_setServo_28int_2c_20int_2c_20bool_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 68579 | 0 | 0, GOT_func_internal_Generic6DofSpring2Constraint_setServoTarget_28int_2c_20int_2c_20float_29 | 0); + void_20emscripten__function_bool_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20bool_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 82187 | 0 | 0, GOT_func_internal_CollisionShape_isCompound_28int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 80737 | 0 | 0, GOT_func_internal_CollisionShape_setLocalScaling_28int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 83768 | 0 | 0, GOT_func_internal_CollisionShape_calculateLocalInertia_28int_2c_20float_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 83038 | 0 | 0, GOT_func_internal_CollisionShape_getAabb_28int_2c_20int_2c_20int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 76927 | 0 | 0, GOT_func_internal_CollisionShape_setMargin_28int_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 77625 | 0 | 0, GOT_func_internal_CollisionShape_setMaterial_28int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 71141 | 0 | 0, GOT_func_internal_CollisionShape_setUserPointer_28int_2c_20int_29 | 0); + void_20emscripten__function_int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 82977 | 0 | 0, GOT_func_internal_EmptyShape_static_28_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 69726 | 0 | 0, GOT_func_internal_ConvexInternalShape_getImplicitShapeDimensions_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 66991 | 0 | 0, GOT_func_internal_BoxShape_new_28int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 69207 | 0 | 0, GOT_func_internal_BoxShape_setUnscaledHalfExtents_28int_2c_20int_29 | 0); + void_20emscripten__function_int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 67115 | 0 | 0, GOT_func_internal_SphereShape_new_28float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 69116 | 0 | 0, GOT_func_internal_SphereShape_setUnscaledRadius_28int_2c_20float_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 67021 | 0 | 0, GOT_func_internal_CylinderShape_new_28int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20float_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20float_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 76029 | 0 | 0, GOT_func_internal_CylinderShape_updateProp_28int_2c_20float_2c_20float_2c_20int_29 | 0); + void_20emscripten__function_int_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 67166 | 0 | 0, GOT_func_internal_CapsuleShape_new_28float_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20float_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20float_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 76054 | 0 | 0, GOT_func_internal_CapsuleShape_updateProp_28int_2c_20float_2c_20float_2c_20int_29 | 0); + void_20emscripten__function_int_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 67131 | 0 | 0, GOT_func_internal_ConeShape_new_28float_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 69056 | 0 | 0, GOT_func_internal_ConeShape_setRadius_28int_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 68137 | 0 | 0, GOT_func_internal_ConeShape_setHeight_28int_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 66485 | 0 | 0, GOT_func_internal_ConeShape_setConeUpIndex_28int_2c_20int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 67145 | 0 | 0, GOT_func_internal_StaticPlaneShape_new_28int_2c_20float_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 77533 | 0 | 0, GOT_func_internal_StaticPlaneShape_getPlaneNormal_28int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 67889 | 0 | 0, GOT_func_internal_StaticPlaneShape_setPlaneConstant_28int_2c_20float_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 67039 | 0 | 0, GOT_func_internal_TerrainShape_new_28int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29 | 0); + void_20emscripten__function_int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 66955 | 0 | 0, GOT_func_internal_TriangleMesh_new_28_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20bool_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20int_2c_20int_2c_20bool_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 81861 | 0 | 0, GOT_func_internal_TriangleMesh_addTriangle_28int_2c_20int_2c_20int_2c_20int_2c_20bool_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20bool_2c_20bool_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_2c_20bool_2c_20bool_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 67090 | 0 | 0, GOT_func_internal_BvhTriangleMeshShape_new_28int_2c_20bool_2c_20bool_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 77809 | 0 | 0, GOT_func_internal_BvhTriangleMeshShape_getOptimizedBvh_28int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 77772 | 0 | 0, GOT_func_internal_BvhTriangleMeshShape_setOptimizedBvh_28int_2c_20int_2c_20float_2c_20float_2c_20float_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_2c_20float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 67084 | 0 | 0, GOT_func_internal_ScaledBvhTriangleMeshShape_new_28int_2c_20float_2c_20float_2c_20float_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 67056 | 0 | 0, GOT_func_internal_ConvexTriangleMeshShape_new_28int_29 | 0); + void_20emscripten__function_int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 67004 | 0 | 0, GOT_func_internal_SimplexShape_new_28_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 66289 | 0 | 0, GOT_func_internal_SimplexShape_addVertex_28int_2c_20int_29 | 0); + void_20emscripten__function_int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 67183 | 0 | 0, GOT_func_internal_ccCompoundShape_new_28_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 70023 | 0 | 0, GOT_func_internal_CompoundShape_getNumChildShapes_28int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 81761 | 0 | 0, GOT_func_internal_CompoundShape_addChildShape_28int_2c_20int_2c_20int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 81684 | 0 | 0, GOT_func_internal_CompoundShape_getChildShape_28int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 81730 | 0 | 0, GOT_func_internal_CompoundShape_removeChildShape_28int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20int_2c_20bool_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20int_2c_20bool_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 77129 | 0 | 0, GOT_func_internal_CompoundShape_updateChildTransform_28int_2c_20int_2c_20int_2c_20bool_29 | 0); + void_20emscripten__function_int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 66777 | 0 | 0, GOT_func_internal_CollisionObject_new_28_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 81583 | 0 | 0, GOT_func_internal_CollisionObject_getCollisionShape_28int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 81549 | 0 | 0, GOT_func_internal_CollisionObject_setCollisionShape_28int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 82612 | 0 | 0, GOT_func_internal_CollisionObject_setContactProcessingThreshold_28int_2c_20int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 80710 | 0 | 0, GOT_func_internal_CollisionObject_isSleeping_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 81291 | 0 | 0, GOT_func_internal_CollisionObject_getActivationState_28int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 81348 | 0 | 0, GOT_func_internal_CollisionObject_forceActivationState_28int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20bool_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20bool_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 81191 | 0 | 0, GOT_func_internal_CollisionObject_activate_28int_2c_20bool_29 | 0); + void_20emscripten__function_bool_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20bool_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 81078 | 0 | 0, GOT_func_internal_CollisionObject_isActive_28int_29 | 0); + void_20emscripten__function_bool_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20bool_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 68855 | 0 | 0, GOT_func_internal_CollisionObject_isKinematicObject_28int_29 | 0); + void_20emscripten__function_bool_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20bool_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 68824 | 0 | 0, GOT_func_internal_CollisionObject_isStaticObject_28int_29 | 0); + void_20emscripten__function_bool_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20bool_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 68889 | 0 | 0, GOT_func_internal_CollisionObject_isStaticOrKinematicObject_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 77065 | 0 | 0, GOT_func_internal_CollisionObject_getWorldTransform_28int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 69926 | 0 | 0, GOT_func_internal_CollisionObject_setCollisionFlags_28int_2c_20int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 69960 | 0 | 0, GOT_func_internal_CollisionObject_getCollisionFlags_28int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 82574 | 0 | 0, GOT_func_internal_CollisionObject_setCcdMotionThreshold_28int_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 69076 | 0 | 0, GOT_func_internal_CollisionObject_setCcdSweptSphereRadius_28int_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 66427 | 0 | 0, GOT_func_internal_CollisionObject_setUserIndex_28int_2c_20int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 66456 | 0 | 0, GOT_func_internal_CollisionObject_getUserIndex_28int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 77597 | 0 | 0, GOT_func_internal_CollisionObject_setMaterial_28int_2c_20float_2c_20float_2c_20float_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20bool_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20bool_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 77671 | 0 | 0, GOT_func_internal_CollisionObject_setIgnoreCollisionCheck_28int_2c_20int_2c_20bool_29 | 0); + void_20emscripten__function_int_2c_20float_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28float_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 66672 | 0 | 0, GOT_func_internal_RigidBody_new_28float_2c_20int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 69907 | 0 | 0, GOT_func_internal_RigidBody_getFlags_28int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 69832 | 0 | 0, GOT_func_internal_RigidBody_setFlags_28int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 65660 | 0 | 0, GOT_func_internal_RigidBody_setGravity_28int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 80625 | 0 | 0, GOT_func_internal_RigidBody_setDamping_28int_2c_20float_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 69397 | 0 | 0, GOT_func_internal_RigidBody_setMass_28int_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 69626 | 0 | 0, GOT_func_internal_RigidBody_setMassProps_28int_2c_20float_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 70693 | 0 | 0, GOT_func_internal_RigidBody_setLinearFactor_28int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 70666 | 0 | 0, GOT_func_internal_RigidBody_setAngularFactor_28int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 65866 | 0 | 0, GOT_func_internal_RigidBody_setLinearVelocity_28int_2c_20int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 65894 | 0 | 0, GOT_func_internal_RigidBody_getLinearVelocity_28int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 65808 | 0 | 0, GOT_func_internal_RigidBody_setAngularVelocity_28int_2c_20int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 65837 | 0 | 0, GOT_func_internal_RigidBody_getAngularVelocity_28int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 81216 | 0 | 0, GOT_func_internal_RigidBody_clearState_28int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 70245 | 0 | 0, GOT_func_internal_RigidBody_clearForces_28int_29 | 0); + void_20emscripten__function_bool_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20bool_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 80686 | 0 | 0, GOT_func_internal_RigidBody_wantsSleeping_28int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 70366 | 0 | 0, GOT_func_internal_RigidBody_setSleepingThresholds_28int_2c_20float_2c_20float_29 | 0); + void_20emscripten__function_float_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20float_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 82658 | 0 | 0, GOT_func_internal_RigidBody_getLinearSleepingThreshold_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 81237 | 0 | 0, GOT_func_internal_RigidBody_getMotionState_28int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 81103 | 0 | 0, GOT_func_internal_RigidBody_applyTorque_28int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 82071 | 0 | 0, GOT_func_internal_RigidBody_applyForce_28int_2c_20int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 81429 | 0 | 0, GOT_func_internal_RigidBody_applyImpulse_28int_2c_20int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 77037 | 0 | 0, GOT_func_internal_RigidBody_getWorldTransform_28int_2c_20int_29 | 0); + void_20emscripten__function_int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 82830 | 0 | 0, GOT_func_internal_DefaultCollisionConfiguration_static_28_29 | 0); + void_20emscripten__function_int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 66902 | 0 | 0, GOT_func_internal_CollisionDispatcher_new_28_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 70435 | 0 | 0, GOT_func_internal_Dispatcher_getNumManifolds_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 77401 | 0 | 0, GOT_func_internal_Dispatcher_getManifoldByIndexInternal_28int_2c_20int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 85747 | 0 | 0, GOT_func_internal_ManifoldPoint_getShape0_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 85525 | 0 | 0, GOT_func_internal_ManifoldPoint_getShape1_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 85708 | 0 | 0, GOT_func_internal_ManifoldPoint_get_m_index0_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 85498 | 0 | 0, GOT_func_internal_ManifoldPoint_get_m_index1_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 85680 | 0 | 0, GOT_func_internal_PersistentManifold_getBody0_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 85470 | 0 | 0, GOT_func_internal_PersistentManifold_getBody1_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 69256 | 0 | 0, GOT_func_internal_PersistentManifold_getNumContacts_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 67566 | 0 | 0, GOT_func_internal_PersistentManifold_getContactPoint_28int_2c_20int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 84595 | 0 | 0, GOT_func_internal_ManifoldPoint_get_m_localPointA_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 84467 | 0 | 0, GOT_func_internal_ManifoldPoint_get_m_localPointB_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 84627 | 0 | 0, GOT_func_internal_ManifoldPoint_get_m_positionWorldOnA_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 84499 | 0 | 0, GOT_func_internal_ManifoldPoint_get_m_positionWorldOnB_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 84536 | 0 | 0, GOT_func_internal_ManifoldPoint_get_m_normalWorldOnB_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 84499 | 0 | 0, GOT_func_internal_ManifoldPoint_get_m_positionWorldOnB_28int_29 | 0); + void_20emscripten__function_int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 66972 | 0 | 0, GOT_func_internal_DbvtBroadphase_new_28_29 | 0); + void_20emscripten__function_int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 66806 | 0 | 0, GOT_func_internal_SequentialImpulseConstraintSolver_new_28_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 68790 | 0 | 0, GOT_func_internal_CollisionWorld_addCollisionObject_28int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 68753 | 0 | 0, GOT_func_internal_CollisionWorld_removeCollisionObject_28int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 67374 | 0 | 0, GOT_func_internal_CollisionWorld_rayTest_28int_2c_20int_2c_20int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 67397 | 0 | 0, GOT_func_internal_CollisionWorld_convexSweepTest_28int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 71111 | 0 | 0, GOT_func_internal_CollisionWorld_setDebugDrawer_28int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 82240 | 0 | 0, GOT_func_internal_CollisionWorld_debugDrawWorld_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_2c_20int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 67203 | 0 | 0, GOT_func_internal_ccDiscreteDynamicsWorld_new_28int_2c_20int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20bool_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20bool_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 76113 | 0 | 0, GOT_func_internal_ccDiscreteDynamicsWorld_setAllowSleep_28int_2c_20bool_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 65681 | 0 | 0, GOT_func_internal_DynamicsWorld_setGravity_28int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 76731 | 0 | 0, GOT_func_internal_DynamicsWorld_stepSimulation_28int_2c_20float_2c_20int_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 66127 | 0 | 0, GOT_func_internal_DynamicsWorld_addRigidBody_28int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 66097 | 0 | 0, GOT_func_internal_DynamicsWorld_removeRigidBody_28int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20bool_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20bool_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 67753 | 0 | 0, GOT_func_internal_DynamicsWorld_addConstraint_28int_2c_20int_2c_20bool_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 67722 | 0 | 0, GOT_func_internal_DynamicsWorld_removeConstraint_28int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 76563 | 0 | 0, GOT_func_internal_DynamicsWorld_addAction_28int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 76536 | 0 | 0, GOT_func_internal_DynamicsWorld_removeAction_28int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 82016 | 0 | 0, GOT_func_internal_DebugDraw_setDebugMode_28int_2c_20int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 82039 | 0 | 0, GOT_func_internal_DebugDraw_getDebugMode_28int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 70947 | 0 | 0, GOT_func_internal_DebugDraw_setActiveObjectColor_28int_2c_20float_2c_20float_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 70914 | 0 | 0, GOT_func_internal_DebugDraw_setDeactiveObjectColor_28int_2c_20float_2c_20float_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 70784 | 0 | 0, GOT_func_internal_DebugDraw_setWantsDeactivationObjectColor_28int_2c_20float_2c_20float_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 70826 | 0 | 0, GOT_func_internal_DebugDraw_setDisabledDeactivationObjectColor_28int_2c_20float_2c_20float_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 70871 | 0 | 0, GOT_func_internal_DebugDraw_setDisabledSimulationObjectColor_28int_2c_20float_2c_20float_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 70978 | 0 | 0, GOT_func_internal_DebugDraw_setAABBColor_28int_2c_20float_2c_20float_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 70719 | 0 | 0, GOT_func_internal_DebugDraw_setContactPointColor_28int_2c_20float_2c_20float_2c_20float_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 70750 | 0 | 0, GOT_func_internal_DebugDraw_setConstraintLimitColor_28int_2c_20float_2c_20float_2c_20float_29 | 0); + void_20emscripten__function_bool_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20bool_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 68036 | 0 | 0, GOT_func_internal_RayCallback_hasHit_28int_29 | 0); + void_20emscripten__function_bool_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20bool_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 68055 | 0 | 0, GOT_func_internal_ConvexCallback_hasHit_28int_29 | 0); + void_20emscripten__function_int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 82895 | 0 | 0, GOT_func_internal_ccAllRayCallback_static_28_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 69881 | 0 | 0, GOT_func_internal_ccAllRayCallback_setFlags_28int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 68325 | 0 | 0, GOT_func_internal_ccAllRayCallback_reset_28int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 82308 | 0 | 0, GOT_func_internal_ccAllRayCallback_getHitPointWorld_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 82459 | 0 | 0, GOT_func_internal_ccAllRayCallback_getHitNormalWorld_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 69415 | 0 | 0, GOT_func_internal_ccAllRayCallback_getCollisionShapePtrs_28int_29 | 0); + void_20emscripten__function_int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 82867 | 0 | 0, GOT_func_internal_ccClosestRayCallback_static_28_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 69851 | 0 | 0, GOT_func_internal_ccClosestRayCallback_setFlags_28int_2c_20int_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 68298 | 0 | 0, GOT_func_internal_ccClosestRayCallback_reset_28int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 82270 | 0 | 0, GOT_func_internal_ccClosestRayCallback_getHitPointWorld_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 82420 | 0 | 0, GOT_func_internal_ccClosestRayCallback_getHitNormalWorld_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 70496 | 0 | 0, GOT_func_internal_ccClosestRayCallback_getCollisionShapePtr_28int_29 | 0); + void_20emscripten__function_int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 82950 | 0 | 0, GOT_func_internal_ccAllConvexCallback_static_28_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 68378 | 0 | 0, GOT_func_internal_ccAllConvexCallback_reset_28int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 82383 | 0 | 0, GOT_func_internal_ccAllConvexCallback_getHitPointWorld_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 82536 | 0 | 0, GOT_func_internal_ccAllConvexCallback_getHitNormalWorld_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 69454 | 0 | 0, GOT_func_internal_ccAllConvexCallback_getCollisionShapePtrs_28int_29 | 0); + void_20emscripten__function_int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 82919 | 0 | 0, GOT_func_internal_ccClosestConvexCallback_static_28_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 68348 | 0 | 0, GOT_func_internal_ccClosestConvexCallback_reset_28int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 82342 | 0 | 0, GOT_func_internal_ccClosestConvexCallback_getHitPointWorld_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 82494 | 0 | 0, GOT_func_internal_ccClosestConvexCallback_getHitNormalWorld_28int_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 70538 | 0 | 0, GOT_func_internal_ccClosestConvexCallback_getCollisionShapePtr_28int_29 | 0); + void_20emscripten__function_int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 66940 | 0 | 0, GOT_func_internal_ccMaterial_new_28_29 | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 68413 | 0 | 0, GOT_func_internal_ccMaterial_set_28int_2c_20float_2c_20float_2c_20float_2c_20float_29 | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 68634 | 0 | 0, GOT_func_internal_CharacterController_getGhostObject | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 81617 | 0 | 0, GOT_func_internal_CharacterController_getCollisionShape | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 69649 | 0 | 0, GOT_func_internal_ControllerHit_getHitWorldPos | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 77565 | 0 | 0, GOT_func_internal_ControllerHit_getHitWorldNormal | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 71081 | 0 | 0, GOT_func_internal_ControllerHit_getHitMotionDir | 0); + void_20emscripten__function_float_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20float_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 77846 | 0 | 0, GOT_func_internal_ControllerHit_getHitMotionLength | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 81518 | 0 | 0, GOT_func_internal_ControllerShapeHit_getHitShape | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 68712 | 0 | 0, GOT_func_internal_ControllerShapeHit_getHitCollisionObject | 0); + void_20emscripten__function_int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_2c_20int_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 81053 | 0 | 0, GOT_func_internal_CharacterController_move | 0); + void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 76302 | 0 | 0, GOT_func_internal_CharacterController_getPosition | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 68194 | 0 | 0, GOT_func_internal_CharacterController_setContactOffset | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 68231 | 0 | 0, GOT_func_internal_CharacterController_setStepOffset | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 68002 | 0 | 0, GOT_func_internal_CharacterController_setSlopeLimit | 0); + void_20emscripten__function_void_2c_20int_2c_20bool_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20bool_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 76789 | 0 | 0, GOT_func_internal_CharacterController_setCollision | 0); + void_20emscripten__function_void_2c_20int_2c_20bool_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20bool_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 65949 | 0 | 0, GOT_func_internal_CharacterController_setOverlapRecovery | 0); + void_20emscripten__function_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 67262 | 0 | 0, GOT_func_internal_CapsuleCharacterControllerDesc_new | 0); + void_20emscripten__function_int_2c_20int_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_2c_20int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 66871 | 0 | 0, GOT_func_internal_CapsuleCharacterController_new | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 69019 | 0 | 0, GOT_func_internal_CapsuleCharacterController_setRadius | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 68100 | 0 | 0, GOT_func_internal_CapsuleCharacterController_setHeight | 0); + void_20emscripten__function_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 67231 | 0 | 0, GOT_func_internal_BoxCharacterControllerDesc_new | 0); + void_20emscripten__function_int_2c_20int_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_2c_20int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 66844 | 0 | 0, GOT_func_internal_BoxCharacterController_new | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 68157 | 0 | 0, GOT_func_internal_BoxCharacterController_setHalfHeight | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 67794 | 0 | 0, GOT_func_internal_BoxCharacterController_setHalfSideExtent | 0); + void_20emscripten__function_void_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29(GOT_data_internal___memory_base + 67835 | 0 | 0, GOT_func_internal_BoxCharacterController_setHalfForwardExtent | 0); + __stack_pointer = $2 + 960 | 0; + return; + } + + function emscripten__internal__InitFunc__InitFunc_28void_20_28__29_28_29_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + HEAP32[($5 + 4 | 0) >> 2] = 0; + FUNCTION_TABLE[HEAP32[($4 + 8 | 0) >> 2] | 0 | 0](); + _embind_register_bindings($5 | 0); + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function btCollisionWorld__RayResultCallback__RayResultCallback_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = GOT_data_internal_vtable_20for_20btCollisionWorld__RayResultCallback + 8 | 0; + HEAPF32[($4 + 4 | 0) >> 2] = Math_fround(1.0); + HEAP32[($4 + 8 | 0) >> 2] = 0; + HEAP32[($4 + 16 | 0) >> 2] = 0; + return $4 | 0; + } + + function cc__ccClosestRayResultCallback___ccClosestRayResultCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + cc__ccClosestRayResultCallback___ccClosestRayResultCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function cc__ccClosestRayResultCallback__needsCollision_28btBroadphaseProxy__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $35 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[((HEAP32[($4 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) & (HEAP32[($5 + 12 | 0) >> 2] | 0) | 0)) { + break label$2 + } + label$3 : { + if ((HEAPU8[($5 + 88 | 0) >> 0] | 0) & 1 | 0) { + break label$3 + } + if (!((HEAP32[(HEAP32[($4 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[$4 >> 2] = HEAP32[(HEAP32[($4 + 4 | 0) >> 2] | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = (btCollisionObject__hasContactResponse_28_29_20const(HEAP32[$4 >> 2] | 0 | 0) | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 15 | 0) >> 0] = wasm2js_i32$1; + break label$1; + } + HEAP8[($4 + 15 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + HEAP8[($4 + 15 | 0) >> 0] = 0 & 1 | 0; + } + $35 = (HEAPU8[($4 + 15 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $4 + 16 | 0; + return $35 | 0; + } + + function btCollisionObject__hasContactResponse_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return ((HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 204 | 0) >> 2] | 0) & 4 | 0 | 0) == (0 | 0) & 1 | 0 | 0; + } + + function cc__ccClosestRayResultCallback__addSingleResult_28btCollisionWorld__LocalRayResult__2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $7 = 0, $37 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP8[($5 + 23 | 0) >> 0] = $2; + $7 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btCollisionObject__getCollisionShape_28_29_20const(HEAP32[(HEAP32[($5 + 24 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((btCollisionShape__isCompound_28_29_20const(HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$2 + } + if (!((HEAP32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] | 0; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCollisionShape__getUserPointerAsInt_28_29_20const(btCompoundShape__getChildShape_28int_29_20const(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 84 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCollisionShape__getUserPointerAsInt_28_29_20const(HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 84 | 0) >> 2] = wasm2js_i32$1; + } + $37 = Math_fround(btCollisionWorld__ClosestRayResultCallback__addSingleResult_28btCollisionWorld__LocalRayResult__2c_20bool_29($7 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0, (HEAPU8[($5 + 23 | 0) >> 0] | 0) & 1 | 0 | 0)); + __stack_pointer = $5 + 32 | 0; + return Math_fround($37); + } + + function btCollisionObject__getCollisionShape_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 192 | 0) >> 2] | 0 | 0; + } + + function btCompoundShape__getChildShape_28int_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $10 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $10 = HEAP32[((btAlignedObjectArray_btCompoundShapeChild___operator_5b_5d_28int_29_20const((HEAP32[($4 + 12 | 0) >> 2] | 0) + 20 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) + 64 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $10 | 0; + } + + function btCollisionWorld__ClosestRayResultCallback__addSingleResult_28btCollisionWorld__LocalRayResult__2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $7 = 0, $15 = 0, $33 = 0, $35 = 0, $49 = 0, $51 = 0, $140 = 0, $150 = 0, $175 = 0, $188 = 0, $66 = Math_fround(0); + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP8[($5 + 23 | 0) >> 0] = $2; + $7 = HEAP32[($5 + 28 | 0) >> 2] | 0; + label$1 : { + if (Math_fround(HEAPF32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 24 | 0) >> 2]) <= Math_fround(HEAPF32[($7 + 4 | 0) >> 2]) & 1 | 0) { + break label$1 + } + $15 = GOT_data_internal___memory_base; + __assert_fail($15 + 76437 | 0 | 0, $15 + 79821 | 0 | 0, 275 | 0, $15 + 67923 | 0 | 0); + wasm2js_trap(); + } + HEAPF32[($7 + 4 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 24 | 0) >> 2]); + HEAP32[($7 + 8 | 0) >> 2] = HEAP32[(HEAP32[($5 + 24 | 0) >> 2] | 0) >> 2] | 0; + label$2 : { + label$3 : { + if (!((HEAPU8[($5 + 23 | 0) >> 0] | 0) & 1 | 0)) { + break label$3 + } + $33 = $7 + 52 | 0; + i64toi32_i32$2 = (HEAP32[($5 + 24 | 0) >> 2] | 0) + 8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $140 = i64toi32_i32$0; + i64toi32_i32$0 = $33; + HEAP32[i64toi32_i32$0 >> 2] = $140; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $35 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $35 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $150 = i64toi32_i32$1; + i64toi32_i32$1 = $33 + $35 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $150; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$2; + } + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($5 + 4 | 0 | 0, btTransform__getBasis_28_29_20const(btCollisionObject__getWorldTransform_28_29_20const(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, (HEAP32[($5 + 24 | 0) >> 2] | 0) + 8 | 0 | 0); + $49 = $7 + 52 | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 4 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 8 | 0) >> 2] | 0; + $175 = i64toi32_i32$0; + i64toi32_i32$0 = $49; + HEAP32[i64toi32_i32$0 >> 2] = $175; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $51 = 8; + i64toi32_i32$2 = ($5 + 4 | 0) + $51 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $188 = i64toi32_i32$1; + i64toi32_i32$1 = $49 + $51 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $188; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + btVector3__setInterpolate3_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($7 + 68 | 0 | 0, $7 + 20 | 0 | 0, $7 + 36 | 0 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 24 | 0) >> 2]))); + $66 = Math_fround(HEAPF32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 24 | 0) >> 2]); + __stack_pointer = $5 + 32 | 0; + return Math_fround($66); + } + + function btCollisionWorld__RayResultCallback___RayResultCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = GOT_data_internal_vtable_20for_20btCollisionWorld__RayResultCallback + 8 | 0; + return $4 | 0; + } + + function btCollisionWorld__ClosestRayResultCallback___ClosestRayResultCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionWorld__ClosestRayResultCallback___ClosestRayResultCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCollisionWorld__RayResultCallback__needsCollision_28btBroadphaseProxy__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $20 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 7 | 0) >> 0] = ((HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) & (HEAP32[($5 + 12 | 0) >> 2] | 0) | 0 | 0) != (0 | 0) & 1 | 0; + $20 = 0; + label$1 : { + if (!((HEAPU8[($4 + 7 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + $20 = ((HEAP32[($5 + 12 | 0) >> 2] | 0) & (HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) | 0 | 0) != (0 | 0); + } + HEAP8[($4 + 7 | 0) >> 0] = $20 & 1 | 0; + return (HEAPU8[($4 + 7 | 0) >> 0] | 0) & 1 | 0 | 0; + } + + function btCollisionObject__getWorldTransform_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0 | 0; + } + + function btTransform__getBasis_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btVector3__setInterpolate3_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAPF32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAPF32[($6 + 12 | 0) >> 2] = Math_fround(Math_fround(1.0) - Math_fround(HEAPF32[($6 + 16 | 0) >> 2])); + HEAPF32[$7 >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($6 + 12 | 0) >> 2]) * Math_fround(HEAPF32[(HEAP32[($6 + 24 | 0) >> 2] | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($6 + 16 | 0) >> 2]) * Math_fround(HEAPF32[(HEAP32[($6 + 20 | 0) >> 2] | 0) >> 2]))); + HEAPF32[($7 + 4 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($6 + 12 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($6 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($6 + 16 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($6 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2]))); + HEAPF32[($7 + 8 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($6 + 12 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($6 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($6 + 16 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($6 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2]))); + return; + } + + function btCollisionWorld__RayResultCallback___RayResultCallback_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btMatrix3x3__operator_5b_5d_28int_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return (HEAP32[($4 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 4 | 0) | 0 | 0; + } + + function btVector3__dot_28btVector3_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + return Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 8 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[$5 >> 2]) * Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2]))))); + } + + function btAlignedObjectArray_btCompoundShapeChild___operator_5b_5d_28int_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $14 = 0, $29 = 0, $5 = 0, $40 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + $14 = GOT_data_internal___memory_base; + __assert_fail($14 + 85840 | 0 | 0, $14 + 78192 | 0 | 0, 176 | 0, $14 + 83901 | 0 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btCompoundShapeChild___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + $29 = GOT_data_internal___memory_base; + __assert_fail($29 + 87321 | 0 | 0, $29 + 78192 | 0 | 0, 177 | 0, $29 + 83901 | 0 | 0); + wasm2js_trap(); + } + $40 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($4 + 8 | 0) >> 2] | 0, 80) | 0; + __stack_pointer = $4 + 16 | 0; + return $40 | 0; + } + + function btAlignedObjectArray_btCollisionObject_20const____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btCollisionObject_20const__2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btCollisionObject_20const____init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btVector3___btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btVector3_2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btVector3___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_float___btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_float_2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_float___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedAllocator_int_2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_int___init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function cc__ccAllHitsRayResultCallback___ccAllHitsRayResultCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + cc__ccAllHitsRayResultCallback___ccAllHitsRayResultCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function cc__ccAllHitsRayResultCallback__needsCollision_28btBroadphaseProxy__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $35 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[((HEAP32[($4 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) & (HEAP32[($5 + 12 | 0) >> 2] | 0) | 0)) { + break label$2 + } + label$3 : { + if ((HEAPU8[($5 + 152 | 0) >> 0] | 0) & 1 | 0) { + break label$3 + } + if (!((HEAP32[(HEAP32[($4 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[$4 >> 2] = HEAP32[(HEAP32[($4 + 4 | 0) >> 2] | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = (btCollisionObject__hasContactResponse_28_29_20const(HEAP32[$4 >> 2] | 0 | 0) | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 15 | 0) >> 0] = wasm2js_i32$1; + break label$1; + } + HEAP8[($4 + 15 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + HEAP8[($4 + 15 | 0) >> 0] = 0 & 1 | 0; + } + $35 = (HEAPU8[($4 + 15 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $4 + 16 | 0; + return $35 | 0; + } + + function cc__ccAllHitsRayResultCallback__addSingleResult_28btCollisionWorld__LocalRayResult__2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $7 = 0, $45 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP8[($5 + 23 | 0) >> 0] = $2; + $7 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btCollisionObject__getCollisionShape_28_29_20const(HEAP32[(HEAP32[($5 + 24 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((btCollisionShape__isCompound_28_29_20const(HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$2 + } + if (!((HEAP32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btCollisionShape__getUserPointerAsInt_28_29_20const(btCompoundShape__getChildShape_28int_29_20const(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_int___push_back_28int_20const__29($7 + 132 | 0 | 0, $5 + 4 | 0 | 0); + break label$1; + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btCollisionShape__getUserPointerAsInt_28_29_20const(HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + btAlignedObjectArray_int___push_back_28int_20const__29($7 + 132 | 0 | 0, $5 | 0); + } + $45 = Math_fround(btCollisionWorld__AllHitsRayResultCallback__addSingleResult_28btCollisionWorld__LocalRayResult__2c_20bool_29($7 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0, (HEAPU8[($5 + 23 | 0) >> 0] | 0) & 1 | 0 | 0)); + __stack_pointer = $5 + 32 | 0; + return Math_fround($45); + } + + function btAlignedObjectArray_int___push_back_28int_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_int___size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_int___capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_int___reserve_28int_29($5 | 0, btAlignedObjectArray_int___allocSize_28int_29($5 | 0, btAlignedObjectArray_int___size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCollisionWorld__AllHitsRayResultCallback__addSingleResult_28btCollisionWorld__LocalRayResult__2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, $7 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $21 = 0, $22 = 0, $38 = 0, $128 = 0, $132 = 0, $166 = 0, $170 = 0, $68 = Math_fround(0); + $5 = __stack_pointer - 64 | 0; + __stack_pointer = $5; + HEAP32[($5 + 60 | 0) >> 2] = $0; + HEAP32[($5 + 56 | 0) >> 2] = $1; + HEAP8[($5 + 55 | 0) >> 0] = $2; + $7 = HEAP32[($5 + 60 | 0) >> 2] | 0; + HEAP32[($7 + 8 | 0) >> 2] = HEAP32[(HEAP32[($5 + 56 | 0) >> 2] | 0) >> 2] | 0; + btAlignedObjectArray_btCollisionObject_20const____push_back_28btCollisionObject_20const__20const__29($7 + 20 | 0 | 0, HEAP32[($5 + 56 | 0) >> 2] | 0 | 0); + btVector3__btVector3_28_29($5 + 32 | 0 | 0) | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($5 + 55 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + $21 = (HEAP32[($5 + 56 | 0) >> 2] | 0) + 8 | 0; + $22 = 8; + i64toi32_i32$2 = $21 + $22 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $128 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 32 | 0) + $22 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $128; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $21; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $132 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 32 | 0) >> 2] = $132; + HEAP32[($5 + 36 | 0) >> 2] = i64toi32_i32$0; + break label$1; + } + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($5 + 16 | 0 | 0, btTransform__getBasis_28_29_20const(btCollisionObject__getWorldTransform_28_29_20const(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, (HEAP32[($5 + 56 | 0) >> 2] | 0) + 8 | 0 | 0); + $38 = 8; + i64toi32_i32$2 = ($5 + 16 | 0) + $38 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $166 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 32 | 0) + $38 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $166; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $5; + i64toi32_i32$1 = HEAP32[($5 + 16 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 20 | 0) >> 2] | 0; + $170 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 32 | 0) >> 2] = $170; + HEAP32[($5 + 36 | 0) >> 2] = i64toi32_i32$0; + } + btAlignedObjectArray_btVector3___push_back_28btVector3_20const__29($7 + 72 | 0 | 0, $5 + 32 | 0 | 0); + btVector3__btVector3_28_29($5 | 0) | 0; + btVector3__setInterpolate3_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($5 | 0, $7 + 40 | 0 | 0, $7 + 56 | 0 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 56 | 0) >> 2] | 0) + 24 | 0) >> 2]))); + btAlignedObjectArray_btVector3___push_back_28btVector3_20const__29($7 + 92 | 0 | 0, $5 | 0); + btAlignedObjectArray_float___push_back_28float_20const__29($7 + 112 | 0 | 0, (HEAP32[($5 + 56 | 0) >> 2] | 0) + 24 | 0 | 0); + $68 = Math_fround(HEAPF32[($7 + 4 | 0) >> 2]); + __stack_pointer = $5 + 64 | 0; + return Math_fround($68); + } + + function btAlignedAllocator_btCollisionObject_20const__2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btCollisionObject_20const____init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btAlignedAllocator_btVector3_2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btVector3___init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btAlignedAllocator_float_2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_float___init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btAlignedObjectArray_float____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_float___clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btVector3____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btVector3___clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btCollisionObject_20const_____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btCollisionObject_20const____clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCollisionWorld__AllHitsRayResultCallback___AllHitsRayResultCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionWorld__AllHitsRayResultCallback___AllHitsRayResultCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btVector3___push_back_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $22 = 0, $25 = 0, $88 = 0, $98 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btVector3___size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btVector3___capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btVector3___reserve_28int_29($5 | 0, btAlignedObjectArray_btVector3___allocSize_28int_29($5 | 0, btAlignedObjectArray_btVector3___size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + $22 = btVector3__operator_20new_28unsigned_20long_2c_20void__29(16 | 0, (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $88 = i64toi32_i32$0; + i64toi32_i32$0 = $22; + HEAP32[i64toi32_i32$0 >> 2] = $88; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $25 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $25 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $98 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $25 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $98; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_float___push_back_28float_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_float___size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_float___capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_float___reserve_28int_29($5 | 0, btAlignedObjectArray_float___allocSize_28int_29($5 | 0, btAlignedObjectArray_float___size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + HEAPF32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2]); + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_float___clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_float___destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_float___size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_float___deallocate_28_29($4 | 0); + btAlignedObjectArray_float___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btVector3___clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btVector3___destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btVector3___size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btVector3___deallocate_28_29($4 | 0); + btAlignedObjectArray_btVector3___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btCollisionObject_20const____clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btCollisionObject_20const____destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btCollisionObject_20const____size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btCollisionObject_20const____deallocate_28_29($4 | 0); + btAlignedObjectArray_btCollisionObject_20const____init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_float___size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_float___destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_float___deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_float_2c_2016u___deallocate_28float__29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocator_float_2c_2016u___deallocate_28float__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btVector3___destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btVector3___deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btVector3_2c_2016u___deallocate_28btVector3__29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocator_btVector3_2c_2016u___deallocate_28btVector3__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btCollisionObject_20const____destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btCollisionObject_20const____deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btCollisionObject_20const__2c_2016u___deallocate_28btCollisionObject_20const___29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocator_btCollisionObject_20const__2c_2016u___deallocate_28btCollisionObject_20const___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btCollisionObject_20const____capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btCollisionObject_20const____allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btAlignedObjectArray_btCollisionObject_20const____reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btCollisionObject_20const____capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btCollisionObject_20const____allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btCollisionObject_20const____copy_28int_2c_20int_2c_20btCollisionObject_20const___29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btCollisionObject_20const____size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btCollisionObject_20const____destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btCollisionObject_20const____size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btCollisionObject_20const____deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btVector3___capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btVector3___allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btAlignedObjectArray_btVector3___reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btVector3___capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btVector3___allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btVector3___copy_28int_2c_20int_2c_20btVector3__29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btVector3___size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btVector3___destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btVector3___size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btVector3___deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btVector3__operator_20new_28unsigned_20long_2c_20void__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return HEAP32[($4 + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_float___capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_float___allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btAlignedObjectArray_float___reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_float___capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_float___allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_float___copy_28int_2c_20int_2c_20float__29_20const($5 | 0, 0 | 0, btAlignedObjectArray_float___size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_float___destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_float___size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_float___deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btCollisionObject_20const____allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btCollisionObject_20const__2c_2016u___allocate_28int_2c_20btCollisionObject_20const__20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btCollisionObject_20const____copy_28int_2c_20int_2c_20btCollisionObject_20const___29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[((HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[((HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedAllocator_btCollisionObject_20const__2c_2016u___allocate_28int_2c_20btCollisionObject_20const__20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btAlignedObjectArray_btVector3___allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btVector3_2c_2016u___allocate_28int_2c_20btVector3_20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btVector3___copy_28int_2c_20int_2c_20btVector3__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $22 = 0, $29 = 0, $7 = 0, $97 = 0, $107 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + $22 = btVector3__operator_20new_28unsigned_20long_2c_20void__29(16 | 0, (HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0; + i64toi32_i32$2 = (HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $97 = i64toi32_i32$0; + i64toi32_i32$0 = $22; + HEAP32[i64toi32_i32$0 >> 2] = $97; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $29 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $29 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $107 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $29 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $107; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $6 + 32 | 0; + return; + } + + function btAlignedAllocator_btVector3_2c_2016u___allocate_28int_2c_20btVector3_20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 4 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btAlignedObjectArray_float___allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_float_2c_2016u___allocate_28int_2c_20float_20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_float___copy_28int_2c_20int_2c_20float__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAPF32[((HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedAllocator_float_2c_2016u___allocate_28int_2c_20float_20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btAlignedObjectArray_int___capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_int___allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btAlignedObjectArray_int___reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_int___capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_int___allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_int___copy_28int_2c_20int_2c_20int__29_20const($5 | 0, 0 | 0, btAlignedObjectArray_int___size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_int___destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_int___size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_int___deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_int___allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_int_2c_2016u___allocate_28int_2c_20int_20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_int___copy_28int_2c_20int_2c_20int__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[((HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[((HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_int___destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_int___deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_int_2c_2016u___deallocate_28int__29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocator_int_2c_2016u___allocate_28int_2c_20int_20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btAlignedAllocator_int_2c_2016u___deallocate_28int__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_int___clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_int___destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_int___size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_int___deallocate_28_29($4 | 0); + btAlignedObjectArray_int___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCollisionWorld__ConvexResultCallback__ConvexResultCallback_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = GOT_data_internal_vtable_20for_20btCollisionWorld__ConvexResultCallback + 8 | 0; + HEAPF32[($4 + 4 | 0) >> 2] = Math_fround(1.0); + HEAP32[($4 + 8 | 0) >> 2] = 1; + HEAP32[($4 + 12 | 0) >> 2] = -1; + HEAP32[($4 + 16 | 0) >> 2] = 0; + return $4 | 0; + } + + function cc__ccClosestConvexResultCallback___ccClosestConvexResultCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + cc__ccClosestConvexResultCallback___ccClosestConvexResultCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function cc__ccClosestConvexResultCallback__needsCollision_28btBroadphaseProxy__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $35 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[((HEAP32[($4 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) & (HEAP32[($5 + 12 | 0) >> 2] | 0) | 0)) { + break label$2 + } + label$3 : { + if ((HEAPU8[($5 + 88 | 0) >> 0] | 0) & 1 | 0) { + break label$3 + } + if (!((HEAP32[(HEAP32[($4 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[$4 >> 2] = HEAP32[(HEAP32[($4 + 4 | 0) >> 2] | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = (btCollisionObject__hasContactResponse_28_29_20const(HEAP32[$4 >> 2] | 0 | 0) | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 15 | 0) >> 0] = wasm2js_i32$1; + break label$1; + } + HEAP8[($4 + 15 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + HEAP8[($4 + 15 | 0) >> 0] = 0 & 1 | 0; + } + $35 = (HEAPU8[($4 + 15 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $4 + 16 | 0; + return $35 | 0; + } + + function cc__ccClosestConvexResultCallback__addSingleResult_28btCollisionWorld__LocalConvexResult__2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $7 = 0, $16 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP8[($5 + 7 | 0) >> 0] = $2; + $7 = HEAP32[($5 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCollisionShape__getUserPointerAsInt_28_29_20const(HEAP32[((HEAP32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 84 | 0) >> 2] = wasm2js_i32$1; + $16 = Math_fround(btCollisionWorld__ClosestConvexResultCallback__addSingleResult_28btCollisionWorld__LocalConvexResult__2c_20bool_29($7 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, (HEAPU8[($5 + 7 | 0) >> 0] | 0) & 1 | 0 | 0)); + __stack_pointer = $5 + 16 | 0; + return Math_fround($16); + } + + function btCollisionWorld__ClosestConvexResultCallback__addSingleResult_28btCollisionWorld__LocalConvexResult__2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5 = 0, i64toi32_i32$2 = 0, $7 = 0, $15 = 0, $33 = 0, $35 = 0, $49 = 0, $51 = 0, $61 = 0, $63 = 0, $142 = 0, $152 = 0, $177 = 0, $190 = 0, $202 = 0, $212 = 0, $68 = Math_fround(0); + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP8[($5 + 23 | 0) >> 0] = $2; + $7 = HEAP32[($5 + 28 | 0) >> 2] | 0; + label$1 : { + if (Math_fround(HEAPF32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2]) <= Math_fround(HEAPF32[($7 + 4 | 0) >> 2]) & 1 | 0) { + break label$1 + } + $15 = GOT_data_internal___memory_base; + __assert_fail($15 + 76485 | 0 | 0, $15 + 79821 | 0 | 0, 408 | 0, $15 + 67923 | 0 | 0); + wasm2js_trap(); + } + HEAPF32[($7 + 4 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2]); + HEAP32[($7 + 16 | 0) >> 2] = HEAP32[(HEAP32[($5 + 24 | 0) >> 2] | 0) >> 2] | 0; + label$2 : { + label$3 : { + if (!((HEAPU8[($5 + 23 | 0) >> 0] | 0) & 1 | 0)) { + break label$3 + } + $33 = $7 + 52 | 0; + i64toi32_i32$2 = (HEAP32[($5 + 24 | 0) >> 2] | 0) + 8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $142 = i64toi32_i32$0; + i64toi32_i32$0 = $33; + HEAP32[i64toi32_i32$0 >> 2] = $142; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $35 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $35 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $152 = i64toi32_i32$1; + i64toi32_i32$1 = $33 + $35 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $152; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$2; + } + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($5 + 4 | 0 | 0, btTransform__getBasis_28_29_20const(btCollisionObject__getWorldTransform_28_29_20const(HEAP32[($7 + 16 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, (HEAP32[($5 + 24 | 0) >> 2] | 0) + 8 | 0 | 0); + $49 = $7 + 52 | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 4 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 8 | 0) >> 2] | 0; + $177 = i64toi32_i32$0; + i64toi32_i32$0 = $49; + HEAP32[i64toi32_i32$0 >> 2] = $177; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $51 = 8; + i64toi32_i32$2 = ($5 + 4 | 0) + $51 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $190 = i64toi32_i32$1; + i64toi32_i32$1 = $49 + $51 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $190; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + $61 = $7 + 68 | 0; + i64toi32_i32$2 = (HEAP32[($5 + 24 | 0) >> 2] | 0) + 24 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $202 = i64toi32_i32$0; + i64toi32_i32$0 = $61; + HEAP32[i64toi32_i32$0 >> 2] = $202; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $63 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $63 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $212 = i64toi32_i32$1; + i64toi32_i32$1 = $61 + $63 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $212; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $68 = Math_fround(HEAPF32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2]); + __stack_pointer = $5 + 32 | 0; + return Math_fround($68); + } + + function btCollisionWorld__ConvexResultCallback___ConvexResultCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btCollisionWorld__ClosestConvexResultCallback___ClosestConvexResultCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionWorld__ClosestConvexResultCallback___ClosestConvexResultCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCollisionWorld__ConvexResultCallback__needsCollision_28btBroadphaseProxy__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $20 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 7 | 0) >> 0] = ((HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) & (HEAP32[($5 + 12 | 0) >> 2] | 0) | 0 | 0) != (0 | 0) & 1 | 0; + $20 = 0; + label$1 : { + if (!((HEAPU8[($4 + 7 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + $20 = ((HEAP32[($5 + 8 | 0) >> 2] | 0) & (HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) | 0 | 0) != (0 | 0); + } + HEAP8[($4 + 7 | 0) >> 0] = $20 & 1 | 0; + return (HEAPU8[($4 + 7 | 0) >> 0] | 0) & 1 | 0 | 0; + } + + function btCollisionWorld__ConvexResultCallback___ConvexResultCallback_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function cc__ccAllHitsConvexResultCallback___ccAllHitsConvexResultCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + cc__ccAllHitsConvexResultCallback___ccAllHitsConvexResultCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function cc__ccAllHitsConvexResultCallback__needsCollision_28btBroadphaseProxy__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $35 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[((HEAP32[($4 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) & (HEAP32[($5 + 12 | 0) >> 2] | 0) | 0)) { + break label$2 + } + label$3 : { + if ((HEAPU8[($5 + 152 | 0) >> 0] | 0) & 1 | 0) { + break label$3 + } + if (!((HEAP32[(HEAP32[($4 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[$4 >> 2] = HEAP32[(HEAP32[($4 + 4 | 0) >> 2] | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = (btCollisionObject__hasContactResponse_28_29_20const(HEAP32[$4 >> 2] | 0 | 0) | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 15 | 0) >> 0] = wasm2js_i32$1; + break label$1; + } + HEAP8[($4 + 15 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + HEAP8[($4 + 15 | 0) >> 0] = 0 & 1 | 0; + } + $35 = (HEAPU8[($4 + 15 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $4 + 16 | 0; + return $35 | 0; + } + + function cc__ccAllHitsConvexResultCallback__addSingleResult_28btCollisionWorld__LocalConvexResult__2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $7 = 0, $19 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP8[($5 + 7 | 0) >> 0] = $2; + $7 = HEAP32[($5 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btCollisionShape__getUserPointerAsInt_28_29_20const(HEAP32[((HEAP32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + btAlignedObjectArray_int___push_back_28int_20const__29($7 + 132 | 0 | 0, $5 | 0); + $19 = Math_fround(btCollisionWorld__AllHitsConvexResultCallback__addSingleResult_28btCollisionWorld__LocalConvexResult__2c_20bool_29($7 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, (HEAPU8[($5 + 7 | 0) >> 0] | 0) & 1 | 0 | 0)); + __stack_pointer = $5 + 16 | 0; + return Math_fround($19); + } + + function btCollisionWorld__AllHitsConvexResultCallback__addSingleResult_28btCollisionWorld__LocalConvexResult__2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $7 = 0, $22 = 0, $23 = 0, $37 = 0, $120 = 0, $124 = 0, $152 = 0, $156 = 0, $59 = Math_fround(0); + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 44 | 0) >> 2] = $0; + HEAP32[($5 + 40 | 0) >> 2] = $1; + HEAP8[($5 + 39 | 0) >> 0] = $2; + $7 = HEAP32[($5 + 44 | 0) >> 2] | 0; + HEAP32[($7 + 16 | 0) >> 2] = HEAP32[(HEAP32[($5 + 40 | 0) >> 2] | 0) >> 2] | 0; + btAlignedObjectArray_btCollisionObject_20const____push_back_28btCollisionObject_20const__20const__29($7 + 20 | 0 | 0, $7 + 16 | 0 | 0); + btVector3__btVector3_28_29($5 + 16 | 0 | 0) | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($5 + 39 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + $22 = (HEAP32[($5 + 40 | 0) >> 2] | 0) + 8 | 0; + $23 = 8; + i64toi32_i32$2 = $22 + $23 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $120 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 16 | 0) + $23 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $120; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $22; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $124 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 16 | 0) >> 2] = $124; + HEAP32[($5 + 20 | 0) >> 2] = i64toi32_i32$0; + break label$1; + } + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($5 | 0, btTransform__getBasis_28_29_20const(btCollisionObject__getWorldTransform_28_29_20const(HEAP32[($7 + 16 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, (HEAP32[($5 + 40 | 0) >> 2] | 0) + 8 | 0 | 0); + $37 = 8; + i64toi32_i32$2 = $5 + $37 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $152 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 16 | 0) + $37 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $152; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $5; + i64toi32_i32$1 = HEAP32[$5 >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 4 | 0) >> 2] | 0; + $156 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 16 | 0) >> 2] = $156; + HEAP32[($5 + 20 | 0) >> 2] = i64toi32_i32$0; + } + btAlignedObjectArray_btVector3___push_back_28btVector3_20const__29($7 + 72 | 0 | 0, $5 + 16 | 0 | 0); + btAlignedObjectArray_btVector3___push_back_28btVector3_20const__29($7 + 92 | 0 | 0, (HEAP32[($5 + 40 | 0) >> 2] | 0) + 24 | 0 | 0); + btAlignedObjectArray_float___push_back_28float_20const__29($7 + 112 | 0 | 0, (HEAP32[($5 + 40 | 0) >> 2] | 0) + 40 | 0 | 0); + $59 = Math_fround(HEAPF32[($7 + 4 | 0) >> 2]); + __stack_pointer = $5 + 48 | 0; + return Math_fround($59); + } + + function btCollisionWorld__AllHitsConvexResultCallback___AllHitsConvexResultCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionWorld__AllHitsConvexResultCallback___AllHitsConvexResultCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btCollisionObject_20const____findLinearSearch_28btCollisionObject_20const__20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btCollisionObject_20const____size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + HEAP32[$4 >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$4 >> 2] | 0 | 0) < (btAlignedObjectArray_btCollisionObject_20const____size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + label$3 : { + if (!((HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[$4 >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) == (HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[$4 >> 2] | 0; + break label$1; + } + HEAP32[$4 >> 2] = (HEAP32[$4 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + $32 = HEAP32[($4 + 4 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btAlignedObjectArray_btCollisionObject_20const____removeAtIndex_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btCollisionObject_20const____size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btCollisionObject_20const____swap_28int_2c_20int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, (btAlignedObjectArray_btCollisionObject_20const____size_28_29_20const($5 | 0) | 0) - 1 | 0 | 0); + btAlignedObjectArray_btCollisionObject_20const____pop_back_28_29($5 | 0); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btCollisionObject_20const____swap_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[$5 >> 2] | 0; + return; + } + + function btAlignedObjectArray_btCollisionObject_20const____pop_back_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $13 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0) { + break label$1 + } + $13 = GOT_data_internal___memory_base; + __assert_fail($13 + 85800 | 0 | 0, $13 + 78192 | 0 | 0, 201 | 0, $13 + 77711 | 0 | 0); + wasm2js_trap(); + } + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + -1 | 0; + __stack_pointer = $3 + 16 | 0; + return; + } + + function btVector3__length2_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $5 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + $5 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($4 | 0, $4 | 0)); + __stack_pointer = $3 + 16 | 0; + return Math_fround($5); + } + + function btVector3__minAxis_28_29_20const($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0, $18 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[$4 >> 2]) < Math_fround(HEAPF32[($4 + 4 | 0) >> 2]) & 1 | 0)) { + break label$2 + } + $18 = Math_fround(HEAPF32[$4 >> 2]) < Math_fround(HEAPF32[($4 + 8 | 0) >> 2]) & 1 | 0 ? 0 : 2; + break label$1; + } + $18 = Math_fround(HEAPF32[($4 + 4 | 0) >> 2]) < Math_fround(HEAPF32[($4 + 8 | 0) >> 2]) & 1 | 0 ? 1 : 2; + } + return $18 | 0; + } + + function btConvexInternalShape__setSafeMargin_28float_2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAPF32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAPF32[$5 >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 8 | 0) >> 2])); + label$1 : { + if (!(Math_fround(HEAPF32[$5 >> 2]) < Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($6)) & 1 | 0)) { + break label$1 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 44 | 0) >> 2] | 0 | 0]($6, Math_fround(HEAPF32[$5 >> 2])); + } + __stack_pointer = $5 + 16 | 0; + return; + } + + function cc__ccCompoundShape___ccCompoundShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCompoundShape___btCompoundShape_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function cc__ccCompoundShape___ccCompoundShape_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + cc__ccCompoundShape___ccCompoundShape_28_29($4 | 0) | 0; + cc__ccCompoundShape__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function cc__ccCompoundShape__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCompoundShape__getLocalScaling_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 84 | 0 | 0; + } + + function btCompoundShape__getName_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return GOT_data_internal___memory_base + 82224 | 0 | 0; + } + + function btCollisionShape__getAnisotropicRollingFrictionDirection_28_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $1; + HEAPF32[($4 + 8 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($4 + 4 | 0) >> 2] = Math_fround(1.0); + HEAPF32[$4 >> 2] = Math_fround(1.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $4 + 8 | 0 | 0, $4 + 4 | 0 | 0, $4 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCompoundShape__setMargin_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 80 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + return; + } + + function btCompoundShape__getMargin_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 80 | 0) >> 2])); + } + + function btCompoundShape__calculateSerializeBufferSize_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 24 | 0; + } + + function btFmod_28float_2c_20float_29($0, $1) { + $0 = Math_fround($0); + $1 = Math_fround($1); + var $4 = 0, $7 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAPF32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + $7 = Math_fround(fmodf(Math_fround(Math_fround(HEAPF32[($4 + 12 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2])))); + __stack_pointer = $4 + 16 | 0; + return Math_fround($7); + } + + function btMatrix3x3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + $8 = $8 | 0; + $9 = $9 | 0; + var $12 = 0, $13 = 0; + $12 = __stack_pointer - 48 | 0; + __stack_pointer = $12; + HEAP32[($12 + 44 | 0) >> 2] = $0; + HEAP32[($12 + 40 | 0) >> 2] = $1; + HEAP32[($12 + 36 | 0) >> 2] = $2; + HEAP32[($12 + 32 | 0) >> 2] = $3; + HEAP32[($12 + 28 | 0) >> 2] = $4; + HEAP32[($12 + 24 | 0) >> 2] = $5; + HEAP32[($12 + 20 | 0) >> 2] = $6; + HEAP32[($12 + 16 | 0) >> 2] = $7; + HEAP32[($12 + 12 | 0) >> 2] = $8; + HEAP32[($12 + 8 | 0) >> 2] = $9; + $13 = HEAP32[($12 + 44 | 0) >> 2] | 0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($13 | 0, HEAP32[($12 + 40 | 0) >> 2] | 0 | 0, HEAP32[($12 + 36 | 0) >> 2] | 0 | 0, HEAP32[($12 + 32 | 0) >> 2] | 0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($13 + 16 | 0 | 0, HEAP32[($12 + 28 | 0) >> 2] | 0 | 0, HEAP32[($12 + 24 | 0) >> 2] | 0 | 0, HEAP32[($12 + 20 | 0) >> 2] | 0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($13 + 32 | 0 | 0, HEAP32[($12 + 16 | 0) >> 2] | 0 | 0, HEAP32[($12 + 12 | 0) >> 2] | 0 | 0, HEAP32[($12 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $12 + 48 | 0; + return; + } + + function btQuaternion__length2_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $5 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + $5 = Math_fround(btQuaternion__dot_28btQuaternion_20const__29_20const($4 | 0, $4 | 0)); + __stack_pointer = $3 + 16 | 0; + return Math_fround($5); + } + + function btQuaternion__dot_28btQuaternion_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $16 = Math_fround(0), $22 = Math_fround(0), $27 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + $16 = Math_fround(Math_fround(Math_fround(HEAPF32[$5 >> 2]) * Math_fround(HEAPF32[(btQuadWord__x_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]) * Math_fround(HEAPF32[(btQuadWord__y_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2]))); + $22 = Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 8 | 0) >> 2]) * Math_fround(HEAPF32[(btQuadWord__z_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $16); + $27 = Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 12 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2])) + $22); + __stack_pointer = $4 + 16 | 0; + return Math_fround($27); + } + + function btMatrix3x3__btMatrix3x3_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + $8 = $8 | 0; + $9 = $9 | 0; + var $12 = 0, $13 = 0, $16 = 0, $17 = 0, $19 = 0, $15 = 0, $34 = 0; + $12 = __stack_pointer - 48 | 0; + __stack_pointer = $12; + HEAP32[($12 + 40 | 0) >> 2] = $0; + HEAP32[($12 + 36 | 0) >> 2] = $1; + HEAP32[($12 + 32 | 0) >> 2] = $2; + HEAP32[($12 + 28 | 0) >> 2] = $3; + HEAP32[($12 + 24 | 0) >> 2] = $4; + HEAP32[($12 + 20 | 0) >> 2] = $5; + HEAP32[($12 + 16 | 0) >> 2] = $6; + HEAP32[($12 + 12 | 0) >> 2] = $7; + HEAP32[($12 + 8 | 0) >> 2] = $8; + HEAP32[($12 + 4 | 0) >> 2] = $9; + $13 = HEAP32[($12 + 40 | 0) >> 2] | 0; + HEAP32[($12 + 44 | 0) >> 2] = $13; + $15 = $13 + 48 | 0; + $16 = $13; + label$1 : while (1) { + $17 = $16; + btVector3__btVector3_28_29($17 | 0) | 0; + $19 = $17 + 16 | 0; + $16 = $19; + if (!(($19 | 0) == ($15 | 0) & 1 | 0)) { + continue label$1 + } + break label$1; + }; + btMatrix3x3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($13 | 0, HEAP32[($12 + 36 | 0) >> 2] | 0 | 0, HEAP32[($12 + 32 | 0) >> 2] | 0 | 0, HEAP32[($12 + 28 | 0) >> 2] | 0 | 0, HEAP32[($12 + 24 | 0) >> 2] | 0 | 0, HEAP32[($12 + 20 | 0) >> 2] | 0 | 0, HEAP32[($12 + 16 | 0) >> 2] | 0 | 0, HEAP32[($12 + 12 | 0) >> 2] | 0 | 0, HEAP32[($12 + 8 | 0) >> 2] | 0 | 0, HEAP32[($12 + 4 | 0) >> 2] | 0 | 0); + $34 = HEAP32[($12 + 44 | 0) >> 2] | 0; + __stack_pointer = $12 + 48 | 0; + return $34 | 0; + } + + function btMatrix3x3__btMatrix3x3_28btMatrix3x3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, $5 = 0, $8 = 0, $9 = 0, $11 = 0, $19 = 0, $27 = 0, $29 = 0, $37 = 0, $39 = 0, $7 = 0, $85 = 0, $95 = 0, $107 = 0, $117 = 0, $129 = 0, $139 = 0, $43 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + HEAP32[($4 + 12 | 0) >> 2] = $5; + $7 = $5 + 48 | 0; + $8 = $5; + label$1 : while (1) { + $9 = $8; + btVector3__btVector3_28_29($9 | 0) | 0; + $11 = $9 + 16 | 0; + $8 = $11; + if (!(($11 | 0) == ($7 | 0) & 1 | 0)) { + continue label$1 + } + break label$1; + }; + i64toi32_i32$2 = HEAP32[($4 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $85 = i64toi32_i32$0; + i64toi32_i32$0 = $5; + HEAP32[i64toi32_i32$0 >> 2] = $85; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $19 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $19 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $95 = i64toi32_i32$1; + i64toi32_i32$1 = $5 + $19 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $95; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $27 = $5 + 16 | 0; + i64toi32_i32$2 = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $107 = i64toi32_i32$0; + i64toi32_i32$0 = $27; + HEAP32[i64toi32_i32$0 >> 2] = $107; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $29 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $29 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $117 = i64toi32_i32$1; + i64toi32_i32$1 = $27 + $29 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $117; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $37 = $5 + 32 | 0; + i64toi32_i32$2 = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 32 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $129 = i64toi32_i32$0; + i64toi32_i32$0 = $37; + HEAP32[i64toi32_i32$0 >> 2] = $129; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $39 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $39 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $139 = i64toi32_i32$1; + i64toi32_i32$1 = $37 + $39 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $139; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $43 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $43 | 0; + } + + function btMotionState___btMotionState_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btTransform__inverse_28_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 96 | 0; + __stack_pointer = $4; + HEAP32[($4 + 92 | 0) >> 2] = $0; + HEAP32[($4 + 88 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 88 | 0) >> 2] | 0; + btMatrix3x3__transpose_28_29_20const($4 + 40 | 0 | 0, $5 | 0); + operator__28btVector3_20const__29($4 + 8 | 0 | 0, $5 + 48 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($4 + 24 | 0 | 0, $4 + 40 | 0 | 0, $4 + 8 | 0 | 0); + btTransform__btTransform_28btMatrix3x3_20const__2c_20btVector3_20const__29($0 | 0, $4 + 40 | 0 | 0, $4 + 24 | 0 | 0) | 0; + __stack_pointer = $4 + 96 | 0; + return; + } + + function btTransform__operator__28btTransform_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 80 | 0; + __stack_pointer = $5; + HEAP32[($5 + 76 | 0) >> 2] = $0; + HEAP32[($5 + 72 | 0) >> 2] = $1; + HEAP32[($5 + 68 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 72 | 0) >> 2] | 0; + operator__28btMatrix3x3_20const__2c_20btMatrix3x3_20const__29($5 + 20 | 0 | 0, $6 | 0, HEAP32[($5 + 68 | 0) >> 2] | 0 | 0); + btTransform__operator_28_29_28btVector3_20const__29_20const($5 + 4 | 0 | 0, $6 | 0, (HEAP32[($5 + 68 | 0) >> 2] | 0) + 48 | 0 | 0); + btTransform__btTransform_28btMatrix3x3_20const__2c_20btVector3_20const__29($0 | 0, $5 + 20 | 0 | 0, $5 + 4 | 0 | 0) | 0; + __stack_pointer = $5 + 80 | 0; + return; + } + + function btMotionState___btMotionState_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function operator__28btMatrix3x3_20const__2c_20btMatrix3x3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 44 | 0) >> 2] = $0; + HEAP32[($5 + 40 | 0) >> 2] = $1; + HEAP32[($5 + 36 | 0) >> 2] = $2; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btMatrix3x3__tdotx_28btVector3_20const__29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btMatrix3x3__tdoty_28btVector3_20const__29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btMatrix3x3__tdotz_28btVector3_20const__29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btMatrix3x3__tdotx_28btVector3_20const__29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btMatrix3x3__tdoty_28btVector3_20const__29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btMatrix3x3__tdotz_28btVector3_20const__29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btMatrix3x3__tdotx_28btVector3_20const__29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btMatrix3x3__tdoty_28btVector3_20const__29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btMatrix3x3__tdotz_28btVector3_20const__29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + btMatrix3x3__btMatrix3x3_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $5 + 32 | 0 | 0, $5 + 28 | 0 | 0, $5 + 24 | 0 | 0, $5 + 20 | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0, $5 + 8 | 0 | 0, $5 + 4 | 0 | 0, $5 | 0) | 0; + __stack_pointer = $5 + 48 | 0; + return; + } + + function btTransform__operator_28_29_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $1; + HEAP32[($5 + 24 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + btVector3__dot3_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29_20const($5 + 8 | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29_20const($6 | 0, 0 | 0) | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29_20const($6 | 0, 1 | 0) | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29_20const($6 | 0, 2 | 0) | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($0 | 0, $5 + 8 | 0 | 0, $6 + 48 | 0 | 0); + __stack_pointer = $5 + 32 | 0; + return; + } + + function btMatrix3x3__transpose_28_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + btMatrix3x3__btMatrix3x3_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, btVector3__x_28_29_20const($5 | 0) | 0 | 0, btVector3__x_28_29_20const($5 + 16 | 0 | 0) | 0 | 0, btVector3__x_28_29_20const($5 + 32 | 0 | 0) | 0 | 0, btVector3__y_28_29_20const($5 | 0) | 0 | 0, btVector3__y_28_29_20const($5 + 16 | 0 | 0) | 0 | 0, btVector3__y_28_29_20const($5 + 32 | 0 | 0) | 0 | 0, btVector3__z_28_29_20const($5 | 0) | 0 | 0, btVector3__z_28_29_20const($5 + 16 | 0 | 0) | 0 | 0, btVector3__z_28_29_20const($5 + 32 | 0 | 0) | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function operator__28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $1; + HEAPF32[($4 + 8 | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2])); + HEAPF32[($4 + 4 | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2])); + HEAPF32[$4 >> 2] = Math_fround(-Math_fround(HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2])); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $4 + 8 | 0 | 0, $4 + 4 | 0 | 0, $4 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btMatrix3x3__operator__28btMatrix3x3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, $5 = 0, $8 = 0, $16 = 0, $18 = 0, $26 = 0, $28 = 0, $47 = 0, $57 = 0, $69 = 0, $79 = 0, $91 = 0, $101 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $47 = i64toi32_i32$0; + i64toi32_i32$0 = $5; + HEAP32[i64toi32_i32$0 >> 2] = $47; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $8 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $57 = i64toi32_i32$1; + i64toi32_i32$1 = $5 + $8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $57; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $16 = $5 + 16 | 0; + i64toi32_i32$2 = (HEAP32[($4 + 8 | 0) >> 2] | 0) + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $69 = i64toi32_i32$0; + i64toi32_i32$0 = $16; + HEAP32[i64toi32_i32$0 >> 2] = $69; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $18 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $18 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $79 = i64toi32_i32$1; + i64toi32_i32$1 = $16 + $18 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $79; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $26 = $5 + 32 | 0; + i64toi32_i32$2 = (HEAP32[($4 + 8 | 0) >> 2] | 0) + 32 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $91 = i64toi32_i32$0; + i64toi32_i32$0 = $26; + HEAP32[i64toi32_i32$0 >> 2] = $91; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $28 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $28 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $101 = i64toi32_i32$1; + i64toi32_i32$1 = $26 + $28 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $101; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return $5 | 0; + } + + function btMatrix3x3__tdotx_28btVector3_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $20 = Math_fround(0), $29 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + $20 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($5 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($5 + 16 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2]))); + $29 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($5 + 32 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $20); + __stack_pointer = $4 + 16 | 0; + return Math_fround($29); + } + + function btMatrix3x3__tdoty_28btVector3_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $20 = Math_fround(0), $29 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + $20 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($5 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($5 + 16 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2]))); + $29 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($5 + 32 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $20); + __stack_pointer = $4 + 16 | 0; + return Math_fround($29); + } + + function btMatrix3x3__tdotz_28btVector3_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $20 = Math_fround(0), $29 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + $20 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($5 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($5 + 16 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2]))); + $29 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($5 + 32 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $20); + __stack_pointer = $4 + 16 | 0; + return Math_fround($29); + } + + function btVector3__dot3_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29_20const($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $1; + HEAP32[($7 + 24 | 0) >> 2] = $2; + HEAP32[($7 + 20 | 0) >> 2] = $3; + HEAP32[($7 + 16 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 | 0, HEAP32[($7 + 24 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 | 0, HEAP32[($7 + 20 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 | 0, HEAP32[($7 + 16 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $7 + 12 | 0 | 0, $7 + 8 | 0 | 0, $7 + 4 | 0 | 0) | 0; + __stack_pointer = $7 + 32 | 0; + return; + } + + function operator__28btVector3_20const__2c_20btVector3_20const__29_2($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $1; + HEAP32[($5 + 24 | 0) >> 2] = $2; + HEAPF32[($5 + 20 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[(HEAP32[($5 + 28 | 0) >> 2] | 0) >> 2]) + Math_fround(HEAPF32[(HEAP32[($5 + 24 | 0) >> 2] | 0) >> 2])); + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 28 | 0) >> 2] | 0) + 4 | 0) >> 2]) + Math_fround(HEAPF32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2])); + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2]) + Math_fround(HEAPF32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2])); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $5 + 20 | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0) | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function void_20emscripten__internal__NoBaseClass__verify_btDebugDraw__28_29() { + + } + + function void_20const__20emscripten__internal__getActualType_btDebugDraw__28btDebugDraw__29($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = void_20const__20emscripten__internal__getLightTypeID_btDebugDraw__28btDebugDraw_20const__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $5 | 0; + } + + function void_20_28_emscripten__internal__NoBaseClass__getUpcaster_btDebugDraw__28_29_29_28_29() { + return 0 | 0; + } + + function void_20_28_emscripten__internal__NoBaseClass__getDowncaster_btDebugDraw__28_29_29_28_29() { + return 0 | 0; + } + + function void_20emscripten__internal__raw_destructor_btDebugDraw__28btDebugDraw__29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (($4 | 0) == (0 | 0) & 1 | 0) { + break label$1 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 4 | 0) >> 2] | 0 | 0]($4); + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function emscripten__internal__TypeID_btDebugDraw_2c_20void___get_28_29() { + return emscripten__internal__LightTypeID_btDebugDraw___get_28_29() | 0 | 0; + } + + function emscripten__internal__TypeID_emscripten__internal__AllowedRawPointer_btDebugDraw__2c_20void___get_28_29() { + return emscripten__internal__LightTypeID_btDebugDraw____get_28_29() | 0 | 0; + } + + function emscripten__internal__TypeID_emscripten__internal__AllowedRawPointer_btDebugDraw_20const__2c_20void___get_28_29() { + return emscripten__internal__LightTypeID_btDebugDraw_20const____get_28_29() | 0 | 0; + } + + function emscripten__internal__NoBaseClass__get_28_29() { + return 0 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_int_2c_20int__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int__28_29__signature | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_void__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void__28_29__signature | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_void_2c_20int__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int__28_29__signature | 0; + } + + function void_20emscripten__internal__RegisterClassMethod_void_20_28btIDebugDraw____29_28_29___invoke_btDebugDraw__28char_20const__2c_20void_20_28btIDebugDraw____29_28_29_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $6 = 0, $8 = 0, $9 = 0, $13 = 0, $17 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + $5 = HEAP32[$1 >> 2] | 0; + $6 = HEAP32[($1 + 4 | 0) >> 2] | 0; + HEAP32[($4 + 24 | 0) >> 2] = $0; + HEAP32[($4 + 20 | 0) >> 2] = $6; + HEAP32[($4 + 16 | 0) >> 2] = $5; + HEAP32[($4 + 12 | 0) >> 2] = GOT_func_internal_emscripten__internal__MethodInvoker_void_20_28btIDebugDraw____29_28_29_2c_20void_2c_20btIDebugDraw____invoke_28void_20_28btIDebugDraw____20const__29_28_29_2c_20btIDebugDraw__29; + $8 = emscripten__internal__TypeID_btIDebugDraw_2c_20void___get_28_29() | 0; + $9 = HEAP32[($4 + 24 | 0) >> 2] | 0; + $13 = emscripten__internal__WithPolicies____ArgTypeList_void_2c_20emscripten__internal__AllowedRawPointer_btIDebugDraw____getCount_28_29_20const($4 + 11 | 0 | 0) | 0; + $17 = emscripten__internal__WithPolicies____ArgTypeList_void_2c_20emscripten__internal__AllowedRawPointer_btIDebugDraw____getTypes_28_29_20const($4 + 11 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + _embind_register_class_function($8 | 0, $9 | 0, $13 | 0, $17 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, void_20_28btIDebugDraw____emscripten__internal__getContext_void_20_28btIDebugDraw____29_28_29__28void_20_28btIDebugDraw____20const__29_28_29_29_29_28_29($4 + 16 | 0 | 0) | 0 | 0, 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__internal__RegisterClassMethod_void_20_28btDebugDraw____29_28int_2c_20int_2c_20int_29___invoke_btDebugDraw__28char_20const__2c_20void_20_28btDebugDraw____29_28int_2c_20int_2c_20int_29_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $6 = 0, $8 = 0, $9 = 0, $13 = 0, $17 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + $5 = HEAP32[$1 >> 2] | 0; + $6 = HEAP32[($1 + 4 | 0) >> 2] | 0; + HEAP32[($4 + 24 | 0) >> 2] = $0; + HEAP32[($4 + 20 | 0) >> 2] = $6; + HEAP32[($4 + 16 | 0) >> 2] = $5; + HEAP32[($4 + 12 | 0) >> 2] = GOT_func_internal_emscripten__internal__MethodInvoker_void_20_28btDebugDraw____29_28int_2c_20int_2c_20int_29_2c_20void_2c_20btDebugDraw__2c_20int_2c_20int_2c_20int___invoke_28void_20_28btDebugDraw____20const__29_28int_2c_20int_2c_20int_29_2c_20btDebugDraw__2c_20int_2c_20int_2c_20int_29; + $8 = emscripten__internal__TypeID_btDebugDraw_2c_20void___get_28_29() | 0; + $9 = HEAP32[($4 + 24 | 0) >> 2] | 0; + $13 = emscripten__internal__WithPolicies____ArgTypeList_void_2c_20emscripten__internal__AllowedRawPointer_btDebugDraw__2c_20int_2c_20int_2c_20int___getCount_28_29_20const($4 + 11 | 0 | 0) | 0; + $17 = emscripten__internal__WithPolicies____ArgTypeList_void_2c_20emscripten__internal__AllowedRawPointer_btDebugDraw__2c_20int_2c_20int_2c_20int___getTypes_28_29_20const($4 + 11 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + _embind_register_class_function($8 | 0, $9 | 0, $13 | 0, $17 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, void_20_28btDebugDraw____emscripten__internal__getContext_void_20_28btDebugDraw____29_28int_2c_20int_2c_20int_29__28void_20_28btDebugDraw____20const__29_28int_2c_20int_2c_20int_29_29_29_28int_2c_20int_2c_20int_29($4 + 16 | 0 | 0) | 0 | 0, 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__base_btDebugDraw___verify_btDebugDrawWrapper__28_29() { + + } + + function void_20const__20emscripten__internal__getActualType_btDebugDrawWrapper__28btDebugDrawWrapper__29($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = void_20const__20emscripten__internal__getLightTypeID_btDebugDrawWrapper__28btDebugDrawWrapper_20const__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $5 | 0; + } + + function btDebugDraw__20_28_emscripten__base_btDebugDraw___getUpcaster_btDebugDrawWrapper__28_29_29_28btDebugDrawWrapper__29() { + return GOT_func_internal_btDebugDraw__20emscripten__base_btDebugDraw___convertPointer_btDebugDrawWrapper_2c_20btDebugDraw__28btDebugDrawWrapper__29 | 0; + } + + function btDebugDrawWrapper__20_28_emscripten__base_btDebugDraw___getDowncaster_btDebugDrawWrapper__28_29_29_28btDebugDraw__29() { + return GOT_func_internal_btDebugDrawWrapper__20emscripten__base_btDebugDraw___convertPointer_btDebugDraw_2c_20btDebugDrawWrapper__28btDebugDraw__29 | 0; + } + + function void_20emscripten__internal__raw_destructor_btDebugDrawWrapper__28btDebugDrawWrapper__29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (($4 | 0) == (0 | 0) & 1 | 0) { + break label$1 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 4 | 0) >> 2] | 0 | 0]($4); + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function emscripten__internal__TypeID_btDebugDrawWrapper_2c_20void___get_28_29() { + return emscripten__internal__LightTypeID_btDebugDrawWrapper___get_28_29() | 0 | 0; + } + + function emscripten__internal__TypeID_emscripten__internal__AllowedRawPointer_btDebugDrawWrapper__2c_20void___get_28_29() { + return emscripten__internal__LightTypeID_btDebugDrawWrapper____get_28_29() | 0 | 0; + } + + function emscripten__internal__TypeID_emscripten__internal__AllowedRawPointer_btDebugDrawWrapper_20const__2c_20void___get_28_29() { + return emscripten__internal__LightTypeID_btDebugDrawWrapper_20const____get_28_29() | 0 | 0; + } + + function emscripten__base_btDebugDraw___get_28_29() { + return emscripten__internal__TypeID_btDebugDraw_2c_20void___get_28_29() | 0 | 0; + } + + function emscripten__class__btDebugDraw_2c_20emscripten__internal__NoBaseClass__20const__20emscripten__class__btDebugDraw_2c_20emscripten__internal__NoBaseClass___allow_subclass_btDebugDrawWrapper__28char_20const__2c_20emscripten__constructor___29_20const___lambda__28btDebugDrawWrapper__29__operator_20void_20_28__29_28btDebugDrawWrapper__29_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return GOT_func_internal_emscripten__class__btDebugDraw_2c_20emscripten__internal__NoBaseClass__20const__20emscripten__class__btDebugDraw_2c_20emscripten__internal__NoBaseClass___allow_subclass_btDebugDrawWrapper__28char_20const__2c_20emscripten__constructor___29_20const___lambda__28btDebugDrawWrapper__29____invoke_28btDebugDrawWrapper__29 | 0; + } + + function void_20_28_emscripten__select_overload_void_20_28btDebugDrawWrapper__29__28void_20_28__29_28btDebugDrawWrapper__29_29_29_28btDebugDrawWrapper__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function void_20emscripten__internal__RegisterClassMethod_void_20_28__29_28btDebugDrawWrapper__29___invoke_btDebugDrawWrapper__28char_20const__2c_20void_20_28__29_28btDebugDrawWrapper__29_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $7 = 0, $11 = 0, $15 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 24 | 0) >> 2] = $0; + HEAP32[($4 + 20 | 0) >> 2] = $1; + HEAP32[($4 + 12 | 0) >> 2] = GOT_func_internal_emscripten__internal__FunctionInvoker_void_20_28__29_28btDebugDrawWrapper__29_2c_20void_2c_20btDebugDrawWrapper____invoke_28void_20_28___29_28btDebugDrawWrapper__29_2c_20btDebugDrawWrapper__29; + $6 = emscripten__internal__TypeID_btDebugDrawWrapper_2c_20void___get_28_29() | 0; + $7 = HEAP32[($4 + 24 | 0) >> 2] | 0; + $11 = emscripten__internal__WithPolicies____ArgTypeList_void_2c_20btDebugDrawWrapper____getCount_28_29_20const($4 + 19 | 0 | 0) | 0; + $15 = emscripten__internal__WithPolicies____ArgTypeList_void_2c_20btDebugDrawWrapper____getTypes_28_29_20const($4 + 19 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + _embind_register_class_function($6 | 0, $7 | 0, $11 | 0, $15 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, void_20_28__emscripten__internal__getContext_void_20_28__29_28btDebugDrawWrapper__29__28void_20_28__20const__29_28btDebugDrawWrapper__29_29_29_28btDebugDrawWrapper__29($4 + 20 | 0 | 0) | 0 | 0, 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function btDebugDrawWrapper__20emscripten__internal__wrapped_new_btDebugDrawWrapper__2c_20btDebugDrawWrapper_2c_20emscripten__val__28emscripten__val___29($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = btDebugDraw__operator_20new_28unsigned_20long_29(144 | 0) | 0; + btDebugDrawWrapper__btDebugDrawWrapper___28emscripten__val___29($5 | 0, HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $5 | 0; + } + + function emscripten__internal__Invoker_btDebugDrawWrapper__2c_20emscripten__val_____invoke_28btDebugDrawWrapper__20_28__29_28emscripten__val___29_2c_20emscripten___EM_VAL__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $14 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + emscripten__internal__BindingType_emscripten__val___2c_20void___fromWireType_28emscripten___EM_VAL__29($4 + 4 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + $14 = emscripten__internal__BindingType_btDebugDrawWrapper__2c_20void___toWireType_28btDebugDrawWrapper__29(FUNCTION_TABLE[$5 | 0]($4 + 4 | 0) | 0 | 0) | 0; + emscripten__val___val_28_29($4 + 4 | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $14 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointer_emscripten__ret_val____ArgTypeList_btDebugDrawWrapper__2c_20emscripten__val_____getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 2 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointer_emscripten__ret_val____ArgTypeList_btDebugDrawWrapper__2c_20emscripten__val_____getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_emscripten__internal__AllowedRawPointer_btDebugDrawWrapper__2c_20emscripten__val______get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int__28_29__signature | 0; + } + + function emscripten__val_20emscripten__internal__wrapped_extend_btDebugDrawWrapper__28std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + emscripten__val__take_ownership_28emscripten___EM_VAL__29($0 | 0, _embind_create_inheriting_constructor(std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____c_str_5babi_v160004_5d_28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0 | 0, emscripten__internal__TypeID_btDebugDrawWrapper_2c_20void___get_28_29() | 0 | 0, emscripten__val__as_handle_28_29_20const(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function emscripten__internal__Invoker_emscripten__val_2c_20std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const____invoke_28emscripten__val_20_28__29_28std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const__29_2c_20emscripten__internal__BindingType_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___2c_20void____unnamed___2c_20emscripten___EM_VAL__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $23 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + emscripten__internal__BindingType_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___2c_20void___fromWireType_28emscripten__internal__BindingType_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___2c_20void____unnamed___29($5 + 4 | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + emscripten__internal__BindingType_emscripten__val_2c_20void___fromWireType_28emscripten___EM_VAL__29($5 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0); + FUNCTION_TABLE[$6 | 0]($5 + 16 | 0, $5 + 4 | 0, $5); + $23 = emscripten__internal__BindingType_emscripten__val_2c_20void___toWireType_28emscripten__val_20const__29($5 + 16 | 0 | 0) | 0; + emscripten__val___val_28_29($5 + 16 | 0 | 0) | 0; + emscripten__val___val_28_29($5 | 0) | 0; + std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char_____basic_string_28_29($5 + 4 | 0 | 0) | 0; + __stack_pointer = $5 + 32 | 0; + return $23 | 0; + } + + function emscripten__internal__WithPolicies____ArgTypeList_emscripten__val_2c_20std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const____getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 3 | 0; + } + + function emscripten__internal__WithPolicies____ArgTypeList_emscripten__val_2c_20std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const____getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_emscripten__val_2c_20std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const_____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int__28_29__signature | 0; + } + + function void_20emscripten__internal__NoBaseClass__verify_btControllerHitReport__28_29() { + + } + + function void_20const__20emscripten__internal__getActualType_btControllerHitReport__28btControllerHitReport__29($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = void_20const__20emscripten__internal__getLightTypeID_btControllerHitReport__28btControllerHitReport_20const__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $5 | 0; + } + + function void_20_28_emscripten__internal__NoBaseClass__getUpcaster_btControllerHitReport__28_29_29_28_29() { + return 0 | 0; + } + + function void_20_28_emscripten__internal__NoBaseClass__getDowncaster_btControllerHitReport__28_29_29_28_29() { + return 0 | 0; + } + + function void_20emscripten__internal__raw_destructor_btControllerHitReport__28btControllerHitReport__29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (($4 | 0) == (0 | 0) & 1 | 0) { + break label$1 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($4); + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function emscripten__internal__TypeID_btControllerHitReport_2c_20void___get_28_29() { + return emscripten__internal__LightTypeID_btControllerHitReport___get_28_29() | 0 | 0; + } + + function emscripten__internal__TypeID_emscripten__internal__AllowedRawPointer_btControllerHitReport__2c_20void___get_28_29() { + return emscripten__internal__LightTypeID_btControllerHitReport____get_28_29() | 0 | 0; + } + + function emscripten__internal__TypeID_emscripten__internal__AllowedRawPointer_btControllerHitReport_20const__2c_20void___get_28_29() { + return emscripten__internal__LightTypeID_btControllerHitReport_20const____get_28_29() | 0 | 0; + } + + function void_20emscripten__internal__RegisterClassMethod_void_20_28btControllerHitReport____29_28int_2c_20int_29___invoke_btControllerHitReport__28char_20const__2c_20void_20_28btControllerHitReport____29_28int_2c_20int_29_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $6 = 0, $8 = 0, $9 = 0, $13 = 0, $17 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + $5 = HEAP32[$1 >> 2] | 0; + $6 = HEAP32[($1 + 4 | 0) >> 2] | 0; + HEAP32[($4 + 24 | 0) >> 2] = $0; + HEAP32[($4 + 20 | 0) >> 2] = $6; + HEAP32[($4 + 16 | 0) >> 2] = $5; + HEAP32[($4 + 12 | 0) >> 2] = GOT_func_internal_emscripten__internal__MethodInvoker_void_20_28btControllerHitReport____29_28int_2c_20int_29_2c_20void_2c_20btControllerHitReport__2c_20int_2c_20int___invoke_28void_20_28btControllerHitReport____20const__29_28int_2c_20int_29_2c_20btControllerHitReport__2c_20int_2c_20int_29; + $8 = emscripten__internal__TypeID_btControllerHitReport_2c_20void___get_28_29() | 0; + $9 = HEAP32[($4 + 24 | 0) >> 2] | 0; + $13 = emscripten__internal__WithPolicies____ArgTypeList_void_2c_20emscripten__internal__AllowedRawPointer_btControllerHitReport__2c_20int_2c_20int___getCount_28_29_20const($4 + 11 | 0 | 0) | 0; + $17 = emscripten__internal__WithPolicies____ArgTypeList_void_2c_20emscripten__internal__AllowedRawPointer_btControllerHitReport__2c_20int_2c_20int___getTypes_28_29_20const($4 + 11 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + _embind_register_class_function($8 | 0, $9 | 0, $13 | 0, $17 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, void_20_28btControllerHitReport____emscripten__internal__getContext_void_20_28btControllerHitReport____29_28int_2c_20int_29__28void_20_28btControllerHitReport____20const__29_28int_2c_20int_29_29_29_28int_2c_20int_29($4 + 16 | 0 | 0) | 0 | 0, 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__base_btControllerHitReport___verify_btControllerHitReportWrapper__28_29() { + + } + + function void_20const__20emscripten__internal__getActualType_btControllerHitReportWrapper__28btControllerHitReportWrapper__29($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = void_20const__20emscripten__internal__getLightTypeID_btControllerHitReportWrapper__28btControllerHitReportWrapper_20const__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $5 | 0; + } + + function btControllerHitReport__20_28_emscripten__base_btControllerHitReport___getUpcaster_btControllerHitReportWrapper__28_29_29_28btControllerHitReportWrapper__29() { + return GOT_func_internal_btControllerHitReport__20emscripten__base_btControllerHitReport___convertPointer_btControllerHitReportWrapper_2c_20btControllerHitReport__28btControllerHitReportWrapper__29 | 0; + } + + function btControllerHitReportWrapper__20_28_emscripten__base_btControllerHitReport___getDowncaster_btControllerHitReportWrapper__28_29_29_28btControllerHitReport__29() { + return GOT_func_internal_btControllerHitReportWrapper__20emscripten__base_btControllerHitReport___convertPointer_btControllerHitReport_2c_20btControllerHitReportWrapper__28btControllerHitReport__29 | 0; + } + + function void_20emscripten__internal__raw_destructor_btControllerHitReportWrapper__28btControllerHitReportWrapper__29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (($4 | 0) == (0 | 0) & 1 | 0) { + break label$1 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($4); + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function emscripten__internal__TypeID_btControllerHitReportWrapper_2c_20void___get_28_29() { + return emscripten__internal__LightTypeID_btControllerHitReportWrapper___get_28_29() | 0 | 0; + } + + function emscripten__internal__TypeID_emscripten__internal__AllowedRawPointer_btControllerHitReportWrapper__2c_20void___get_28_29() { + return emscripten__internal__LightTypeID_btControllerHitReportWrapper____get_28_29() | 0 | 0; + } + + function emscripten__internal__TypeID_emscripten__internal__AllowedRawPointer_btControllerHitReportWrapper_20const__2c_20void___get_28_29() { + return emscripten__internal__LightTypeID_btControllerHitReportWrapper_20const____get_28_29() | 0 | 0; + } + + function emscripten__base_btControllerHitReport___get_28_29() { + return emscripten__internal__TypeID_btControllerHitReport_2c_20void___get_28_29() | 0 | 0; + } + + function emscripten__class__btControllerHitReport_2c_20emscripten__internal__NoBaseClass__20const__20emscripten__class__btControllerHitReport_2c_20emscripten__internal__NoBaseClass___allow_subclass_btControllerHitReportWrapper__28char_20const__2c_20emscripten__constructor___29_20const___lambda__28btControllerHitReportWrapper__29__operator_20void_20_28__29_28btControllerHitReportWrapper__29_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return GOT_func_internal_emscripten__class__btControllerHitReport_2c_20emscripten__internal__NoBaseClass__20const__20emscripten__class__btControllerHitReport_2c_20emscripten__internal__NoBaseClass___allow_subclass_btControllerHitReportWrapper__28char_20const__2c_20emscripten__constructor___29_20const___lambda__28btControllerHitReportWrapper__29____invoke_28btControllerHitReportWrapper__29 | 0; + } + + function void_20_28_emscripten__select_overload_void_20_28btControllerHitReportWrapper__29__28void_20_28__29_28btControllerHitReportWrapper__29_29_29_28btControllerHitReportWrapper__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function void_20emscripten__internal__RegisterClassMethod_void_20_28__29_28btControllerHitReportWrapper__29___invoke_btControllerHitReportWrapper__28char_20const__2c_20void_20_28__29_28btControllerHitReportWrapper__29_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $7 = 0, $11 = 0, $15 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 24 | 0) >> 2] = $0; + HEAP32[($4 + 20 | 0) >> 2] = $1; + HEAP32[($4 + 12 | 0) >> 2] = GOT_func_internal_emscripten__internal__FunctionInvoker_void_20_28__29_28btControllerHitReportWrapper__29_2c_20void_2c_20btControllerHitReportWrapper____invoke_28void_20_28___29_28btControllerHitReportWrapper__29_2c_20btControllerHitReportWrapper__29; + $6 = emscripten__internal__TypeID_btControllerHitReportWrapper_2c_20void___get_28_29() | 0; + $7 = HEAP32[($4 + 24 | 0) >> 2] | 0; + $11 = emscripten__internal__WithPolicies____ArgTypeList_void_2c_20btControllerHitReportWrapper____getCount_28_29_20const($4 + 19 | 0 | 0) | 0; + $15 = emscripten__internal__WithPolicies____ArgTypeList_void_2c_20btControllerHitReportWrapper____getTypes_28_29_20const($4 + 19 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + _embind_register_class_function($6 | 0, $7 | 0, $11 | 0, $15 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, void_20_28__emscripten__internal__getContext_void_20_28__29_28btControllerHitReportWrapper__29__28void_20_28__20const__29_28btControllerHitReportWrapper__29_29_29_28btControllerHitReportWrapper__29($4 + 20 | 0 | 0) | 0 | 0, 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function btControllerHitReportWrapper__20emscripten__internal__wrapped_new_btControllerHitReportWrapper__2c_20btControllerHitReportWrapper_2c_20emscripten__val__28emscripten__val___29($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = operator_20new_28unsigned_20long_29(12 | 0) | 0; + btControllerHitReportWrapper__btControllerHitReportWrapper___28emscripten__val___29($5 | 0, HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $5 | 0; + } + + function emscripten__internal__Invoker_btControllerHitReportWrapper__2c_20emscripten__val_____invoke_28btControllerHitReportWrapper__20_28__29_28emscripten__val___29_2c_20emscripten___EM_VAL__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $14 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + emscripten__internal__BindingType_emscripten__val___2c_20void___fromWireType_28emscripten___EM_VAL__29($4 + 4 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + $14 = emscripten__internal__BindingType_btControllerHitReportWrapper__2c_20void___toWireType_28btControllerHitReportWrapper__29(FUNCTION_TABLE[$5 | 0]($4 + 4 | 0) | 0 | 0) | 0; + emscripten__val___val_28_29($4 + 4 | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $14 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointer_emscripten__ret_val____ArgTypeList_btControllerHitReportWrapper__2c_20emscripten__val_____getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 2 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointer_emscripten__ret_val____ArgTypeList_btControllerHitReportWrapper__2c_20emscripten__val_____getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_emscripten__internal__AllowedRawPointer_btControllerHitReportWrapper__2c_20emscripten__val______get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function emscripten__val_20emscripten__internal__wrapped_extend_btControllerHitReportWrapper__28std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + emscripten__val__take_ownership_28emscripten___EM_VAL__29($0 | 0, _embind_create_inheriting_constructor(std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____c_str_5babi_v160004_5d_28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0 | 0, emscripten__internal__TypeID_btControllerHitReportWrapper_2c_20void___get_28_29() | 0 | 0, emscripten__val__as_handle_28_29_20const(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function void_20emscripten__internal__NoBaseClass__verify_cc__ccMotionState__28_29() { + + } + + function void_20const__20emscripten__internal__getActualType_cc__ccMotionState__28cc__ccMotionState__29($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = void_20const__20emscripten__internal__getLightTypeID_cc__ccMotionState__28cc__ccMotionState_20const__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $5 | 0; + } + + function void_20_28_emscripten__internal__NoBaseClass__getUpcaster_cc__ccMotionState__28_29_29_28_29() { + return 0 | 0; + } + + function void_20_28_emscripten__internal__NoBaseClass__getDowncaster_cc__ccMotionState__28_29_29_28_29() { + return 0 | 0; + } + + function void_20emscripten__internal__raw_destructor_cc__ccMotionState__28cc__ccMotionState__29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (($4 | 0) == (0 | 0) & 1 | 0) { + break label$1 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 4 | 0) >> 2] | 0 | 0]($4); + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function emscripten__internal__TypeID_cc__ccMotionState_2c_20void___get_28_29() { + return emscripten__internal__LightTypeID_cc__ccMotionState___get_28_29() | 0 | 0; + } + + function emscripten__internal__TypeID_emscripten__internal__AllowedRawPointer_cc__ccMotionState__2c_20void___get_28_29() { + return emscripten__internal__LightTypeID_cc__ccMotionState____get_28_29() | 0 | 0; + } + + function emscripten__internal__TypeID_emscripten__internal__AllowedRawPointer_cc__ccMotionState_20const__2c_20void___get_28_29() { + return emscripten__internal__LightTypeID_cc__ccMotionState_20const____get_28_29() | 0 | 0; + } + + function void_20emscripten__internal__RegisterClassMethod_void_20_28cc__ccMotionState____29_28int_29___invoke_cc__ccMotionState__28char_20const__2c_20void_20_28cc__ccMotionState____29_28int_29_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $6 = 0, $8 = 0, $9 = 0, $13 = 0, $17 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + $5 = HEAP32[$1 >> 2] | 0; + $6 = HEAP32[($1 + 4 | 0) >> 2] | 0; + HEAP32[($4 + 24 | 0) >> 2] = $0; + HEAP32[($4 + 20 | 0) >> 2] = $6; + HEAP32[($4 + 16 | 0) >> 2] = $5; + HEAP32[($4 + 12 | 0) >> 2] = GOT_func_internal_emscripten__internal__MethodInvoker_void_20_28cc__ccMotionState____29_28int_29_2c_20void_2c_20cc__ccMotionState__2c_20int___invoke_28void_20_28cc__ccMotionState____20const__29_28int_29_2c_20cc__ccMotionState__2c_20int_29; + $8 = emscripten__internal__TypeID_cc__ccMotionState_2c_20void___get_28_29() | 0; + $9 = HEAP32[($4 + 24 | 0) >> 2] | 0; + $13 = emscripten__internal__WithPolicies____ArgTypeList_void_2c_20emscripten__internal__AllowedRawPointer_cc__ccMotionState__2c_20int___getCount_28_29_20const($4 + 11 | 0 | 0) | 0; + $17 = emscripten__internal__WithPolicies____ArgTypeList_void_2c_20emscripten__internal__AllowedRawPointer_cc__ccMotionState__2c_20int___getTypes_28_29_20const($4 + 11 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + _embind_register_class_function($8 | 0, $9 | 0, $13 | 0, $17 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, void_20_28cc__ccMotionState____emscripten__internal__getContext_void_20_28cc__ccMotionState____29_28int_29__28void_20_28cc__ccMotionState____20const__29_28int_29_29_29_28int_29($4 + 16 | 0 | 0) | 0 | 0, 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__base_cc__ccMotionState___verify_ccMotionStateWrapper__28_29() { + + } + + function void_20const__20emscripten__internal__getActualType_ccMotionStateWrapper__28ccMotionStateWrapper__29($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = void_20const__20emscripten__internal__getLightTypeID_ccMotionStateWrapper__28ccMotionStateWrapper_20const__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $5 | 0; + } + + function cc__ccMotionState__20_28_emscripten__base_cc__ccMotionState___getUpcaster_ccMotionStateWrapper__28_29_29_28ccMotionStateWrapper__29() { + return GOT_func_internal_cc__ccMotionState__20emscripten__base_cc__ccMotionState___convertPointer_ccMotionStateWrapper_2c_20cc__ccMotionState__28ccMotionStateWrapper__29 | 0; + } + + function ccMotionStateWrapper__20_28_emscripten__base_cc__ccMotionState___getDowncaster_ccMotionStateWrapper__28_29_29_28cc__ccMotionState__29() { + return GOT_func_internal_ccMotionStateWrapper__20emscripten__base_cc__ccMotionState___convertPointer_cc__ccMotionState_2c_20ccMotionStateWrapper__28cc__ccMotionState__29 | 0; + } + + function void_20emscripten__internal__raw_destructor_ccMotionStateWrapper__28ccMotionStateWrapper__29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (($4 | 0) == (0 | 0) & 1 | 0) { + break label$1 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 4 | 0) >> 2] | 0 | 0]($4); + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function emscripten__internal__TypeID_ccMotionStateWrapper_2c_20void___get_28_29() { + return emscripten__internal__LightTypeID_ccMotionStateWrapper___get_28_29() | 0 | 0; + } + + function emscripten__internal__TypeID_emscripten__internal__AllowedRawPointer_ccMotionStateWrapper__2c_20void___get_28_29() { + return emscripten__internal__LightTypeID_ccMotionStateWrapper____get_28_29() | 0 | 0; + } + + function emscripten__internal__TypeID_emscripten__internal__AllowedRawPointer_ccMotionStateWrapper_20const__2c_20void___get_28_29() { + return emscripten__internal__LightTypeID_ccMotionStateWrapper_20const____get_28_29() | 0 | 0; + } + + function emscripten__base_cc__ccMotionState___get_28_29() { + return emscripten__internal__TypeID_cc__ccMotionState_2c_20void___get_28_29() | 0 | 0; + } + + function emscripten__class__cc__ccMotionState_2c_20emscripten__internal__NoBaseClass__20const__20emscripten__class__cc__ccMotionState_2c_20emscripten__internal__NoBaseClass___allow_subclass_ccMotionStateWrapper__28char_20const__2c_20emscripten__constructor___29_20const___lambda__28ccMotionStateWrapper__29__operator_20void_20_28__29_28ccMotionStateWrapper__29_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return GOT_func_internal_emscripten__class__cc__ccMotionState_2c_20emscripten__internal__NoBaseClass__20const__20emscripten__class__cc__ccMotionState_2c_20emscripten__internal__NoBaseClass___allow_subclass_ccMotionStateWrapper__28char_20const__2c_20emscripten__constructor___29_20const___lambda__28ccMotionStateWrapper__29____invoke_28ccMotionStateWrapper__29 | 0; + } + + function void_20_28_emscripten__select_overload_void_20_28ccMotionStateWrapper__29__28void_20_28__29_28ccMotionStateWrapper__29_29_29_28ccMotionStateWrapper__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function void_20emscripten__internal__RegisterClassMethod_void_20_28__29_28ccMotionStateWrapper__29___invoke_ccMotionStateWrapper__28char_20const__2c_20void_20_28__29_28ccMotionStateWrapper__29_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $7 = 0, $11 = 0, $15 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 24 | 0) >> 2] = $0; + HEAP32[($4 + 20 | 0) >> 2] = $1; + HEAP32[($4 + 12 | 0) >> 2] = GOT_func_internal_emscripten__internal__FunctionInvoker_void_20_28__29_28ccMotionStateWrapper__29_2c_20void_2c_20ccMotionStateWrapper____invoke_28void_20_28___29_28ccMotionStateWrapper__29_2c_20ccMotionStateWrapper__29; + $6 = emscripten__internal__TypeID_ccMotionStateWrapper_2c_20void___get_28_29() | 0; + $7 = HEAP32[($4 + 24 | 0) >> 2] | 0; + $11 = emscripten__internal__WithPolicies____ArgTypeList_void_2c_20ccMotionStateWrapper____getCount_28_29_20const($4 + 19 | 0 | 0) | 0; + $15 = emscripten__internal__WithPolicies____ArgTypeList_void_2c_20ccMotionStateWrapper____getTypes_28_29_20const($4 + 19 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + _embind_register_class_function($6 | 0, $7 | 0, $11 | 0, $15 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, void_20_28__emscripten__internal__getContext_void_20_28__29_28ccMotionStateWrapper__29__28void_20_28__20const__29_28ccMotionStateWrapper__29_29_29_28ccMotionStateWrapper__29($4 + 20 | 0 | 0) | 0 | 0, 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function ccMotionStateWrapper__20emscripten__internal__wrapped_new_ccMotionStateWrapper__2c_20ccMotionStateWrapper_2c_20emscripten__val__28emscripten__val___29($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = operator_20new_28unsigned_20long_29(80 | 0) | 0; + ccMotionStateWrapper__ccMotionStateWrapper___28emscripten__val___29($5 | 0, HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $5 | 0; + } + + function emscripten__internal__Invoker_ccMotionStateWrapper__2c_20emscripten__val_____invoke_28ccMotionStateWrapper__20_28__29_28emscripten__val___29_2c_20emscripten___EM_VAL__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $14 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + emscripten__internal__BindingType_emscripten__val___2c_20void___fromWireType_28emscripten___EM_VAL__29($4 + 4 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + $14 = emscripten__internal__BindingType_ccMotionStateWrapper__2c_20void___toWireType_28ccMotionStateWrapper__29(FUNCTION_TABLE[$5 | 0]($4 + 4 | 0) | 0 | 0) | 0; + emscripten__val___val_28_29($4 + 4 | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $14 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointer_emscripten__ret_val____ArgTypeList_ccMotionStateWrapper__2c_20emscripten__val_____getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 2 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointer_emscripten__ret_val____ArgTypeList_ccMotionStateWrapper__2c_20emscripten__val_____getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_emscripten__internal__AllowedRawPointer_ccMotionStateWrapper__2c_20emscripten__val______get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function emscripten__val_20emscripten__internal__wrapped_extend_ccMotionStateWrapper__28std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + emscripten__val__take_ownership_28emscripten___EM_VAL__29($0 | 0, _embind_create_inheriting_constructor(std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____c_str_5babi_v160004_5d_28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0 | 0, emscripten__internal__TypeID_ccMotionStateWrapper_2c_20void___get_28_29() | 0 | 0, emscripten__val__as_handle_28_29_20const(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function void_20emscripten__function_int_2c_20int__28char_20const__2c_20int_20_28__29_28int_29_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 24 | 0) >> 2] = $0; + HEAP32[($4 + 20 | 0) >> 2] = $1; + HEAP32[($4 + 12 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_int_2c_20int___invoke_28int_20_28__29_28int_29_2c_20int_29; + $6 = HEAP32[($4 + 24 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies____ArgTypeList_int_2c_20int___getCount_28_29_20const($4 + 19 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies____ArgTypeList_int_2c_20int___getTypes_28_29_20const($4 + 19 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4 + 20 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_void_2c_20int__28char_20const__2c_20void_20_28__29_28int_29_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 24 | 0) >> 2] = $0; + HEAP32[($4 + 20 | 0) >> 2] = $1; + HEAP32[($4 + 12 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_void_2c_20int___invoke_28void_20_28__29_28int_29_2c_20int_29; + $6 = HEAP32[($4 + 24 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies____ArgTypeList_void_2c_20int___getCount_28_29_20const($4 + 19 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies____ArgTypeList_void_2c_20int___getTypes_28_29_20const($4 + 19 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4 + 20 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_float_2c_20int__28char_20const__2c_20float_20_28__29_28int_29_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 24 | 0) >> 2] = $0; + HEAP32[($4 + 20 | 0) >> 2] = $1; + HEAP32[($4 + 12 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_float_2c_20int___invoke_28float_20_28__29_28int_29_2c_20int_29; + $6 = HEAP32[($4 + 24 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies____ArgTypeList_float_2c_20int___getCount_28_29_20const($4 + 19 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies____ArgTypeList_float_2c_20int___getTypes_28_29_20const($4 + 19 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_float_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4 + 20 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_void_2c_20int_2c_20float__28char_20const__2c_20void_20_28__29_28int_2c_20float_29_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 24 | 0) >> 2] = $0; + HEAP32[($4 + 20 | 0) >> 2] = $1; + HEAP32[($4 + 12 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20float___invoke_28void_20_28__29_28int_2c_20float_29_2c_20int_2c_20float_29; + $6 = HEAP32[($4 + 24 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies____ArgTypeList_void_2c_20int_2c_20float___getCount_28_29_20const($4 + 19 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies____ArgTypeList_void_2c_20int_2c_20float___getTypes_28_29_20const($4 + 19 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float__28_29() | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4 + 20 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_void_2c_20int_2c_20int__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 24 | 0) >> 2] = $0; + HEAP32[($4 + 20 | 0) >> 2] = $1; + HEAP32[($4 + 12 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20int___invoke_28void_20_28__29_28int_2c_20int_29_2c_20int_2c_20int_29; + $6 = HEAP32[($4 + 24 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies____ArgTypeList_void_2c_20int_2c_20int___getCount_28_29_20const($4 + 19 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies____ArgTypeList_void_2c_20int_2c_20int___getTypes_28_29_20const($4 + 19 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4 + 20 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_int_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_int_2c_20float_2c_20float_2c_20float___invoke_28int_20_28__29_28float_2c_20float_2c_20float_29_2c_20float_2c_20float_2c_20float_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float_2c_20float_2c_20float___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float_2c_20float_2c_20float___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float_2c_20float_2c_20float__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_float_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20float_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_float_2c_20int___invoke_28float_20_28__29_28int_29_2c_20int_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_float_2c_20int___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_float_2c_20int___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_float_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20float_2c_20float___invoke_28void_20_28__29_28int_2c_20float_2c_20float_2c_20float_29_2c_20int_2c_20float_2c_20float_2c_20float_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20float_2c_20float___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20float_2c_20float___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28float_2c_20float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_int_2c_20float_2c_20float_2c_20float_2c_20float___invoke_28int_20_28__29_28float_2c_20float_2c_20float_2c_20float_29_2c_20float_2c_20float_2c_20float_2c_20float_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float_2c_20float_2c_20float_2c_20float___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float_2c_20float_2c_20float_2c_20float___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float___invoke_28void_20_28__29_28int_2c_20float_2c_20float_2c_20float_2c_20float_29_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_int___invoke_28int_20_28__29_28_29_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_void_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_void_2c_20int___invoke_28void_20_28__29_28int_29_2c_20int_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_void_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20int___invoke_28void_20_28__29_28int_2c_20int_29_2c_20int_2c_20int_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_int_2c_20int___invoke_28int_20_28__29_28int_29_2c_20int_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_int_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_int_2c_20int_2c_20int___invoke_28int_20_28__29_28int_2c_20int_29_2c_20int_2c_20int_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20int___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20int___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_void_2c_20int_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20int___invoke_28void_20_28__29_28int_2c_20int_2c_20int_29_2c_20int_2c_20int_2c_20int_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20int___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20int___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_int_2c_20int_2c_20int__28char_20const__2c_20int_20_28__29_28int_2c_20int_29_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 24 | 0) >> 2] = $0; + HEAP32[($4 + 20 | 0) >> 2] = $1; + HEAP32[($4 + 12 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_int_2c_20int_2c_20int___invoke_28int_20_28__29_28int_2c_20int_29_2c_20int_2c_20int_29; + $6 = HEAP32[($4 + 24 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies____ArgTypeList_int_2c_20int_2c_20int___getCount_28_29_20const($4 + 19 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies____ArgTypeList_int_2c_20int_2c_20int___getTypes_28_29_20const($4 + 19 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4 + 20 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_void_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20float___invoke_28void_20_28__29_28int_2c_20float_29_2c_20int_2c_20float_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_2c_20int_2c_20int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_int_2c_20int_2c_20int_2c_20int_2c_20int___invoke_28int_20_28__29_28int_2c_20int_2c_20int_2c_20int_29_2c_20int_2c_20int_2c_20int_2c_20int_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20int_2c_20int_2c_20int___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20int_2c_20int_2c_20int___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float___invoke_28void_20_28__29_28int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float_29_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_void_2c_20int_2c_20bool_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20bool_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20bool___invoke_28void_20_28__29_28int_2c_20bool_29_2c_20int_2c_20bool_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20bool___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20bool___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_void_2c_20int_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20float___invoke_28void_20_28__29_28int_2c_20float_2c_20float_29_2c_20int_2c_20float_2c_20float_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20float___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20float___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20float__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_2c_20int_2c_20int_2c_20int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int___invoke_28int_20_28__29_28int_2c_20int_2c_20int_2c_20int_2c_20int_29_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20float_2c_20float___invoke_28void_20_28__29_28int_2c_20int_2c_20float_2c_20float_29_2c_20int_2c_20int_2c_20float_2c_20float_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20float_2c_20float___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20float_2c_20float___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_void_2c_20int_2c_20int_2c_20bool_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20bool_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20bool___invoke_28void_20_28__29_28int_2c_20int_2c_20bool_29_2c_20int_2c_20int_2c_20bool_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20bool___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20bool___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_void_2c_20int_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20float___invoke_28void_20_28__29_28int_2c_20int_2c_20float_29_2c_20int_2c_20int_2c_20float_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20float___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20float___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20float__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_bool_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20bool_20_28__29_28int_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_bool_2c_20int___invoke_28bool_20_28__29_28int_29_2c_20int_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_bool_2c_20int___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_bool_2c_20int___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_void_2c_20int_2c_20float_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20int_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20int___invoke_28void_20_28__29_28int_2c_20float_2c_20int_29_2c_20int_2c_20float_2c_20int_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20int___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20int___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20int_2c_20int___invoke_28void_20_28__29_28int_2c_20int_2c_20int_2c_20int_29_2c_20int_2c_20int_2c_20int_2c_20int_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20int_2c_20int___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20int_2c_20int___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28float_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_int_2c_20float___invoke_28int_20_28__29_28float_29_2c_20float_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_void_2c_20int_2c_20float_2c_20float_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20float_2c_20int_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20float_2c_20int___invoke_28void_20_28__29_28int_2c_20float_2c_20float_2c_20int_29_2c_20int_2c_20float_2c_20float_2c_20int_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20float_2c_20int___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20float_2c_20int___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_int_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_int_2c_20float_2c_20float___invoke_28int_20_28__29_28float_2c_20float_29_2c_20float_2c_20float_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float_2c_20float___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float_2c_20float___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float_2c_20float__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_int_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_int_2c_20int_2c_20float___invoke_28int_20_28__29_28int_2c_20float_29_2c_20int_2c_20float_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20float___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20float___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20float__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_int_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_int_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float___invoke_28int_20_28__29_28int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20bool_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20int_2c_20int_2c_20bool_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20bool___invoke_28void_20_28__29_28int_2c_20int_2c_20int_2c_20int_2c_20bool_29_2c_20int_2c_20int_2c_20int_2c_20int_2c_20bool_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20bool___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20bool___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_int_2c_20int_2c_20bool_2c_20bool_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_2c_20bool_2c_20bool_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_int_2c_20int_2c_20bool_2c_20bool___invoke_28int_20_28__29_28int_2c_20bool_2c_20bool_29_2c_20int_2c_20bool_2c_20bool_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20bool_2c_20bool___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20bool_2c_20bool___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float___invoke_28void_20_28__29_28int_2c_20int_2c_20float_2c_20float_2c_20float_29_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_2c_20float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_int_2c_20int_2c_20float_2c_20float_2c_20float___invoke_28int_20_28__29_28int_2c_20float_2c_20float_2c_20float_29_2c_20int_2c_20float_2c_20float_2c_20float_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20float_2c_20float_2c_20float___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20float_2c_20float_2c_20float___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_void_2c_20int_2c_20int_2c_20int_2c_20bool_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20int_2c_20bool_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20int_2c_20bool___invoke_28void_20_28__29_28int_2c_20int_2c_20int_2c_20bool_29_2c_20int_2c_20int_2c_20int_2c_20bool_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20int_2c_20bool___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20int_2c_20bool___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_int_2c_20float_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28float_2c_20int_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_int_2c_20float_2c_20int___invoke_28int_20_28__29_28float_2c_20int_29_2c_20float_2c_20int_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float_2c_20int___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float_2c_20int___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_void_2c_20int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int___invoke_28void_20_28__29_28int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int_29_2c_20int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float___invoke_28void_20_28__29_28int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float_29_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_int_2c_20int_2c_20int_2c_20int_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_2c_20int_2c_20int_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_int_2c_20int_2c_20int_2c_20int___invoke_28int_20_28__29_28int_2c_20int_2c_20int_29_2c_20int_2c_20int_2c_20int_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20int_2c_20int___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20int_2c_20int___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_void_2c_20int_2c_20float_2c_20int_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20float_2c_20int_2c_20float_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20int_2c_20float___invoke_28void_20_28__29_28int_2c_20float_2c_20int_2c_20float_29_2c_20int_2c_20float_2c_20int_2c_20float_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20int_2c_20float___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20int_2c_20float___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20int_2c_20float__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_void_2c_20int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20void_20_28__29_28int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool___invoke_28void_20_28__29_28int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29_2c_20int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28int_2c_20int_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_int_2c_20int_2c_20int_2c_20float_2c_20float___invoke_28int_20_28__29_28int_2c_20int_2c_20float_2c_20float_29_2c_20int_2c_20int_2c_20float_2c_20float_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20int_2c_20float_2c_20float___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20int_2c_20float_2c_20float___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float___invoke_28int_20_28__29_28float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_29_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function void_20emscripten__function_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20emscripten__allow_raw_pointers__28char_20const__2c_20int_20_28__29_28float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29_2c_20emscripten__allow_raw_pointers_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $14 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = GOT_func_internal_emscripten__internal__Invoker_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float___invoke_28int_20_28__29_28float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29; + $6 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $10 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float___getCount_28_29_20const($4 + 15 | 0 | 0) | 0; + $14 = emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float___getTypes_28_29_20const($4 + 15 | 0 | 0) | 0; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + _embind_register_function($6 | 0, $10 | 0, $14 | 0, char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float__28_29() | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function emscripten__internal__Invoker_int_2c_20int___invoke_28int_20_28__29_28int_29_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $12 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = FUNCTION_TABLE[$5 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + $12 = emscripten__internal__BindingType_int_2c_20void___toWireType_28int_20const__29($4 + 4 | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $12 | 0; + } + + function emscripten__internal__WithPolicies____ArgTypeList_int_2c_20int___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 2 | 0; + } + + function emscripten__internal__WithPolicies____ArgTypeList_int_2c_20int___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function emscripten__internal__Invoker_void_2c_20int___invoke_28void_20_28__29_28int_29_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[$5 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void_2c_20int___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 2 | 0; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void_2c_20int___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int__28_29__signature | 0; + } + + function emscripten__internal__Invoker_float_2c_20int___invoke_28float_20_28__29_28int_29_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $12 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[$5 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $12 = Math_fround(emscripten__internal__BindingType_float_2c_20void___toWireType_28float_20const__29($4 + 4 | 0 | 0)); + __stack_pointer = $4 + 16 | 0; + return Math_fround($12); + } + + function emscripten__internal__WithPolicies____ArgTypeList_float_2c_20int___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 2 | 0; + } + + function emscripten__internal__WithPolicies____ArgTypeList_float_2c_20int___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_float_2c_20int____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_float_2c_20int_2c_20int__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_float_2c_20int_2c_20int__28_29__signature | 0; + } + + function emscripten__internal__Invoker_void_2c_20int_2c_20float___invoke_28void_20_28__29_28int_2c_20float_29_2c_20int_2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[$6 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0, Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]))))); + __stack_pointer = $5 + 16 | 0; + return; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void_2c_20int_2c_20float___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 3 | 0; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void_2c_20int_2c_20float___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float__28_29__signature | 0; + } + + function emscripten__internal__Invoker_void_2c_20int_2c_20int___invoke_28void_20_28__29_28int_2c_20int_29_2c_20int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[$6 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void_2c_20int_2c_20int___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 3 | 0; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void_2c_20int_2c_20int___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int__28_29__signature | 0; + } + + function emscripten__internal__Invoker_int_2c_20float_2c_20float_2c_20float___invoke_28int_20_28__29_28float_2c_20float_2c_20float_29_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = Math_fround($3); + var $6 = 0, $7 = 0, $18 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAPF32[($6 + 24 | 0) >> 2] = $1; + HEAPF32[($6 + 20 | 0) >> 2] = $2; + HEAPF32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = FUNCTION_TABLE[$7 | 0](Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($6 + 24 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($6 + 20 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($6 + 16 | 0) >> 2]))))) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $18 = emscripten__internal__BindingType_int_2c_20void___toWireType_28int_20const__29($6 + 12 | 0 | 0) | 0; + __stack_pointer = $6 + 32 | 0; + return $18 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float_2c_20float_2c_20float___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 4 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float_2c_20float_2c_20float___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float_2c_20float_2c_20float____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float_2c_20float_2c_20float__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float_2c_20float_2c_20float__28_29__signature | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_float_2c_20int___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 2 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_float_2c_20int___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_float_2c_20int____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20float_2c_20float___invoke_28void_20_28__29_28int_2c_20float_2c_20float_2c_20float_29_2c_20int_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = Math_fround($3); + $4 = Math_fround($4); + var $7 = 0, $8 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAPF32[($7 + 20 | 0) >> 2] = $2; + HEAPF32[($7 + 16 | 0) >> 2] = $3; + HEAPF32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + FUNCTION_TABLE[$8 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($7 + 24 | 0) >> 2] | 0 | 0) | 0, Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($7 + 20 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($7 + 16 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($7 + 12 | 0) >> 2]))))); + __stack_pointer = $7 + 32 | 0; + return; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20float_2c_20float___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 5 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20float_2c_20float___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20float_2c_20float____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float__28_29__signature | 0; + } + + function emscripten__internal__Invoker_int_2c_20float_2c_20float_2c_20float_2c_20float___invoke_28int_20_28__29_28float_2c_20float_2c_20float_2c_20float_29_2c_20float_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = Math_fround($3); + $4 = Math_fround($4); + var $7 = 0, $8 = 0, $21 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAPF32[($7 + 24 | 0) >> 2] = $1; + HEAPF32[($7 + 20 | 0) >> 2] = $2; + HEAPF32[($7 + 16 | 0) >> 2] = $3; + HEAPF32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = FUNCTION_TABLE[$8 | 0](Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($7 + 24 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($7 + 20 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($7 + 16 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($7 + 12 | 0) >> 2]))))) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + $21 = emscripten__internal__BindingType_int_2c_20void___toWireType_28int_20const__29($7 + 8 | 0 | 0) | 0; + __stack_pointer = $7 + 32 | 0; + return $21 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float_2c_20float_2c_20float_2c_20float___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 5 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float_2c_20float_2c_20float_2c_20float___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float_2c_20float_2c_20float_2c_20float____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float__28_29__signature | 0; + } + + function emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float___invoke_28void_20_28__29_28int_2c_20float_2c_20float_2c_20float_2c_20float_29_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = Math_fround($3); + $4 = Math_fround($4); + $5 = Math_fround($5); + var $8 = 0, $9 = 0; + $8 = __stack_pointer - 32 | 0; + __stack_pointer = $8; + HEAP32[($8 + 28 | 0) >> 2] = $0; + HEAP32[($8 + 24 | 0) >> 2] = $1; + HEAPF32[($8 + 20 | 0) >> 2] = $2; + HEAPF32[($8 + 16 | 0) >> 2] = $3; + HEAPF32[($8 + 12 | 0) >> 2] = $4; + HEAPF32[($8 + 8 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 28 | 0) >> 2] | 0; + FUNCTION_TABLE[$9 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($8 + 24 | 0) >> 2] | 0 | 0) | 0, Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($8 + 20 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($8 + 16 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($8 + 12 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($8 + 8 | 0) >> 2]))))); + __stack_pointer = $8 + 32 | 0; + return; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 6 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float__28_29__signature | 0; + } + + function emscripten__internal__Invoker_int___invoke_28int_20_28__29_28_29_29($0) { + $0 = $0 | 0; + var $3 = 0, $9 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[($3 + 12 | 0) >> 2] | 0 | 0]() | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + $9 = emscripten__internal__BindingType_int_2c_20void___toWireType_28int_20const__29($3 + 8 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $9 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 1 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 2 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 3 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 2 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function emscripten__internal__Invoker_int_2c_20int_2c_20int___invoke_28int_20_28__29_28int_2c_20int_29_2c_20int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $13 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[$6 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $13 = emscripten__internal__BindingType_int_2c_20void___toWireType_28int_20const__29($5 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $13 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20int___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 3 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20int___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20int____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20int___invoke_28void_20_28__29_28int_2c_20int_2c_20int_29_2c_20int_2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[$7 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($6 + 4 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[$6 >> 2] | 0 | 0) | 0); + __stack_pointer = $6 + 16 | 0; + return; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20int___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 4 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20int___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20int____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20int__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20int__28_29__signature | 0; + } + + function emscripten__internal__WithPolicies____ArgTypeList_int_2c_20int_2c_20int___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 3 | 0; + } + + function emscripten__internal__WithPolicies____ArgTypeList_int_2c_20int_2c_20int___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20int____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 3 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function emscripten__internal__Invoker_int_2c_20int_2c_20int_2c_20int_2c_20int___invoke_28int_20_28__29_28int_2c_20int_2c_20int_2c_20int_29_2c_20int_2c_20int_2c_20int_2c_20int_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0, $21 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = FUNCTION_TABLE[$8 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($7 + 24 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($7 + 20 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($7 + 16 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + $21 = emscripten__internal__BindingType_int_2c_20void___toWireType_28int_20const__29($7 + 8 | 0 | 0) | 0; + __stack_pointer = $7 + 32 | 0; + return $21 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20int_2c_20int_2c_20int___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 5 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20int_2c_20int_2c_20int___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20int_2c_20int_2c_20int____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int__28_29__signature | 0; + } + + function emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float___invoke_28void_20_28__29_28int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float_29_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3, $4, $5, $6) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = Math_fround($3); + $4 = Math_fround($4); + $5 = Math_fround($5); + $6 = Math_fround($6); + var $9 = 0, $10 = 0; + $9 = __stack_pointer - 32 | 0; + __stack_pointer = $9; + HEAP32[($9 + 28 | 0) >> 2] = $0; + HEAP32[($9 + 24 | 0) >> 2] = $1; + HEAPF32[($9 + 20 | 0) >> 2] = $2; + HEAPF32[($9 + 16 | 0) >> 2] = $3; + HEAPF32[($9 + 12 | 0) >> 2] = $4; + HEAPF32[($9 + 8 | 0) >> 2] = $5; + HEAPF32[($9 + 4 | 0) >> 2] = $6; + $10 = HEAP32[($9 + 28 | 0) >> 2] | 0; + FUNCTION_TABLE[$10 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($9 + 24 | 0) >> 2] | 0 | 0) | 0, Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($9 + 20 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($9 + 16 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($9 + 12 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($9 + 8 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($9 + 4 | 0) >> 2]))))); + __stack_pointer = $9 + 32 | 0; + return; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 7 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float__28_29__signature | 0; + } + + function emscripten__internal__Invoker_void_2c_20int_2c_20bool___invoke_28void_20_28__29_28int_2c_20bool_29_2c_20int_2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $7 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP8[($5 + 7 | 0) >> 0] = $2; + $7 = HEAP32[($5 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[$7 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0, (emscripten__internal__BindingType_bool_2c_20void___fromWireType_28bool_29((HEAPU8[($5 + 7 | 0) >> 0] | 0) & 1 | 0 | 0) | 0) & 1 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20bool___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 3 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20bool___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20bool____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20float___invoke_28void_20_28__29_28int_2c_20float_2c_20float_29_2c_20int_2c_20float_2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = Math_fround($3); + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAPF32[($6 + 4 | 0) >> 2] = $2; + HEAPF32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[$7 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0, Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($6 + 4 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[$6 >> 2]))))); + __stack_pointer = $6 + 16 | 0; + return; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20float___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 4 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20float___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20float____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20float__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20float__28_29__signature | 0; + } + + function emscripten__internal__Invoker_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int___invoke_28int_20_28__29_28int_2c_20int_2c_20int_2c_20int_2c_20int_29_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, $9 = 0, $24 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $8 = __stack_pointer - 32 | 0; + __stack_pointer = $8; + HEAP32[($8 + 28 | 0) >> 2] = $0; + HEAP32[($8 + 24 | 0) >> 2] = $1; + HEAP32[($8 + 20 | 0) >> 2] = $2; + HEAP32[($8 + 16 | 0) >> 2] = $3; + HEAP32[($8 + 12 | 0) >> 2] = $4; + HEAP32[($8 + 8 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $8, wasm2js_i32$1 = FUNCTION_TABLE[$9 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($8 + 24 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($8 + 20 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($8 + 16 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($8 + 12 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($8 + 8 | 0) >> 2] | 0 | 0) | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + $24 = emscripten__internal__BindingType_int_2c_20void___toWireType_28int_20const__29($8 + 4 | 0 | 0) | 0; + __stack_pointer = $8 + 32 | 0; + return $24 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 6 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int__28_29__signature | 0; + } + + function emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20float_2c_20float___invoke_28void_20_28__29_28int_2c_20int_2c_20float_2c_20float_29_2c_20int_2c_20int_2c_20float_2c_20float_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + $4 = Math_fround($4); + var $7 = 0, $8 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAPF32[($7 + 16 | 0) >> 2] = $3; + HEAPF32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + FUNCTION_TABLE[$8 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($7 + 24 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($7 + 20 | 0) >> 2] | 0 | 0) | 0, Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($7 + 16 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($7 + 12 | 0) >> 2]))))); + __stack_pointer = $7 + 32 | 0; + return; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20float_2c_20float___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 5 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20float_2c_20float___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20float_2c_20float____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float__28_29__signature | 0; + } + + function emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20bool___invoke_28void_20_28__29_28int_2c_20int_2c_20bool_29_2c_20int_2c_20int_2c_20bool_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $8 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP8[($6 + 3 | 0) >> 0] = $3; + $8 = HEAP32[($6 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[$8 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($6 + 4 | 0) >> 2] | 0 | 0) | 0, (emscripten__internal__BindingType_bool_2c_20void___fromWireType_28bool_29((HEAPU8[($6 + 3 | 0) >> 0] | 0) & 1 | 0 | 0) | 0) & 1 | 0); + __stack_pointer = $6 + 16 | 0; + return; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20bool___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 4 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20bool___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20bool____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20float___invoke_28void_20_28__29_28int_2c_20int_2c_20float_29_2c_20int_2c_20int_2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAPF32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[$7 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($6 + 4 | 0) >> 2] | 0 | 0) | 0, Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[$6 >> 2]))))); + __stack_pointer = $6 + 16 | 0; + return; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20float___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 4 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20float___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20float____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20float__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20float__28_29__signature | 0; + } + + function emscripten__internal__Invoker_bool_2c_20int___invoke_28bool_20_28__29_28int_29_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $13 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + $13 = (emscripten__internal__BindingType_bool_2c_20void___toWireType_28bool_29((FUNCTION_TABLE[$5 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) | 0) & 1 | 0 | 0) | 0) & 1 | 0; + __stack_pointer = $4 + 16 | 0; + return $13 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_bool_2c_20int___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 2 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_bool_2c_20int___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_bool_2c_20int____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20int___invoke_28void_20_28__29_28int_2c_20float_2c_20int_29_2c_20int_2c_20float_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAPF32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[$7 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0, Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($6 + 4 | 0) >> 2])))), emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[$6 >> 2] | 0 | 0) | 0); + __stack_pointer = $6 + 16 | 0; + return; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20int___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 4 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20int___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20int____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20int__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20int__28_29__signature | 0; + } + + function emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20int_2c_20int___invoke_28void_20_28__29_28int_2c_20int_2c_20int_2c_20int_29_2c_20int_2c_20int_2c_20int_2c_20int_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + FUNCTION_TABLE[$8 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($7 + 24 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($7 + 20 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($7 + 16 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0); + __stack_pointer = $7 + 32 | 0; + return; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20int_2c_20int___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 5 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20int_2c_20int___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20int_2c_20int____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int__28_29__signature | 0; + } + + function emscripten__internal__Invoker_int_2c_20float___invoke_28int_20_28__29_28float_29_2c_20float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0, $5 = 0, $12 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = FUNCTION_TABLE[$5 | 0](Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))))) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + $12 = emscripten__internal__BindingType_int_2c_20void___toWireType_28int_20const__29($4 + 4 | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $12 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 2 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float__28_29__signature | 0; + } + + function emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20float_2c_20int___invoke_28void_20_28__29_28int_2c_20float_2c_20float_2c_20int_29_2c_20int_2c_20float_2c_20float_2c_20int_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = Math_fround($3); + $4 = $4 | 0; + var $7 = 0, $8 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAPF32[($7 + 20 | 0) >> 2] = $2; + HEAPF32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + FUNCTION_TABLE[$8 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($7 + 24 | 0) >> 2] | 0 | 0) | 0, Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($7 + 20 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($7 + 16 | 0) >> 2])))), emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0); + __stack_pointer = $7 + 32 | 0; + return; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20float_2c_20int___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 5 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20float_2c_20int___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20float_2c_20int____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20int__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20int__28_29__signature | 0; + } + + function emscripten__internal__Invoker_int_2c_20float_2c_20float___invoke_28int_20_28__29_28float_2c_20float_29_2c_20float_2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + var $5 = 0, $6 = 0, $13 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAPF32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[$6 | 0](Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($5 + 8 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]))))) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $13 = emscripten__internal__BindingType_int_2c_20void___toWireType_28int_20const__29($5 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $13 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float_2c_20float___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 3 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float_2c_20float___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float_2c_20float____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float_2c_20float__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float_2c_20float__28_29__signature | 0; + } + + function emscripten__internal__Invoker_int_2c_20int_2c_20float___invoke_28int_20_28__29_28int_2c_20float_29_2c_20int_2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0, $6 = 0, $13 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[$6 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0, Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]))))) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $13 = emscripten__internal__BindingType_int_2c_20void___toWireType_28int_20const__29($5 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $13 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20float___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 3 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20float___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20float____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20float__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20float__28_29__signature | 0; + } + + function emscripten__internal__Invoker_int_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float___invoke_28int_20_28__29_28int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3, $4, $5, $6) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = Math_fround($4); + $5 = Math_fround($5); + $6 = Math_fround($6); + var $9 = 0, $10 = 0, $25 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $9 = __stack_pointer - 32 | 0; + __stack_pointer = $9; + HEAP32[($9 + 28 | 0) >> 2] = $0; + HEAP32[($9 + 24 | 0) >> 2] = $1; + HEAP32[($9 + 20 | 0) >> 2] = $2; + HEAP32[($9 + 16 | 0) >> 2] = $3; + HEAPF32[($9 + 12 | 0) >> 2] = $4; + HEAPF32[($9 + 8 | 0) >> 2] = $5; + HEAPF32[($9 + 4 | 0) >> 2] = $6; + $10 = HEAP32[($9 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $9, wasm2js_i32$1 = FUNCTION_TABLE[$10 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($9 + 24 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($9 + 20 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($9 + 16 | 0) >> 2] | 0 | 0) | 0, Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($9 + 12 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($9 + 8 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($9 + 4 | 0) >> 2]))))) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $25 = emscripten__internal__BindingType_int_2c_20void___toWireType_28int_20const__29($9 | 0) | 0; + __stack_pointer = $9 + 32 | 0; + return $25 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 7 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float__28_29__signature | 0; + } + + function emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20bool___invoke_28void_20_28__29_28int_2c_20int_2c_20int_2c_20int_2c_20bool_29_2c_20int_2c_20int_2c_20int_2c_20int_2c_20bool_29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, $10 = 0; + $8 = __stack_pointer - 32 | 0; + __stack_pointer = $8; + HEAP32[($8 + 28 | 0) >> 2] = $0; + HEAP32[($8 + 24 | 0) >> 2] = $1; + HEAP32[($8 + 20 | 0) >> 2] = $2; + HEAP32[($8 + 16 | 0) >> 2] = $3; + HEAP32[($8 + 12 | 0) >> 2] = $4; + HEAP8[($8 + 11 | 0) >> 0] = $5; + $10 = HEAP32[($8 + 28 | 0) >> 2] | 0; + FUNCTION_TABLE[$10 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($8 + 24 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($8 + 20 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($8 + 16 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($8 + 12 | 0) >> 2] | 0 | 0) | 0, (emscripten__internal__BindingType_bool_2c_20void___fromWireType_28bool_29((HEAPU8[($8 + 11 | 0) >> 0] | 0) & 1 | 0 | 0) | 0) & 1 | 0); + __stack_pointer = $8 + 32 | 0; + return; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20bool___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 6 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20bool___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20bool____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int__28_29__signature | 0; + } + + function emscripten__internal__Invoker_int_2c_20int_2c_20bool_2c_20bool___invoke_28int_20_28__29_28int_2c_20bool_2c_20bool_29_2c_20int_2c_20bool_2c_20bool_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $9 = 0, $26 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP8[($6 + 7 | 0) >> 0] = $2; + HEAP8[($6 + 6 | 0) >> 0] = $3; + $9 = HEAP32[($6 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = FUNCTION_TABLE[$9 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0, (emscripten__internal__BindingType_bool_2c_20void___fromWireType_28bool_29((HEAPU8[($6 + 7 | 0) >> 0] | 0) & 1 | 0 | 0) | 0) & 1 | 0, (emscripten__internal__BindingType_bool_2c_20void___fromWireType_28bool_29((HEAPU8[($6 + 6 | 0) >> 0] | 0) & 1 | 0 | 0) | 0) & 1 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $26 = emscripten__internal__BindingType_int_2c_20void___toWireType_28int_20const__29($6 | 0) | 0; + __stack_pointer = $6 + 16 | 0; + return $26 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20bool_2c_20bool___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 4 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20bool_2c_20bool___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20bool_2c_20bool____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int_2c_20int__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int_2c_20int__28_29__signature | 0; + } + + function emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float___invoke_28void_20_28__29_28int_2c_20int_2c_20float_2c_20float_2c_20float_29_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + $4 = Math_fround($4); + $5 = Math_fround($5); + var $8 = 0, $9 = 0; + $8 = __stack_pointer - 32 | 0; + __stack_pointer = $8; + HEAP32[($8 + 28 | 0) >> 2] = $0; + HEAP32[($8 + 24 | 0) >> 2] = $1; + HEAP32[($8 + 20 | 0) >> 2] = $2; + HEAPF32[($8 + 16 | 0) >> 2] = $3; + HEAPF32[($8 + 12 | 0) >> 2] = $4; + HEAPF32[($8 + 8 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 28 | 0) >> 2] | 0; + FUNCTION_TABLE[$9 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($8 + 24 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($8 + 20 | 0) >> 2] | 0 | 0) | 0, Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($8 + 16 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($8 + 12 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($8 + 8 | 0) >> 2]))))); + __stack_pointer = $8 + 32 | 0; + return; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 6 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float__28_29__signature | 0; + } + + function emscripten__internal__Invoker_int_2c_20int_2c_20float_2c_20float_2c_20float___invoke_28int_20_28__29_28int_2c_20float_2c_20float_2c_20float_29_2c_20int_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = Math_fround($3); + $4 = Math_fround($4); + var $7 = 0, $8 = 0, $21 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAPF32[($7 + 20 | 0) >> 2] = $2; + HEAPF32[($7 + 16 | 0) >> 2] = $3; + HEAPF32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = FUNCTION_TABLE[$8 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($7 + 24 | 0) >> 2] | 0 | 0) | 0, Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($7 + 20 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($7 + 16 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($7 + 12 | 0) >> 2]))))) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + $21 = emscripten__internal__BindingType_int_2c_20void___toWireType_28int_20const__29($7 + 8 | 0 | 0) | 0; + __stack_pointer = $7 + 32 | 0; + return $21 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20float_2c_20float_2c_20float___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 5 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20float_2c_20float_2c_20float___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20float_2c_20float_2c_20float____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float__28_29__signature | 0; + } + + function emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20int_2c_20bool___invoke_28void_20_28__29_28int_2c_20int_2c_20int_2c_20bool_29_2c_20int_2c_20int_2c_20int_2c_20bool_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $9 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP8[($7 + 15 | 0) >> 0] = $4; + $9 = HEAP32[($7 + 28 | 0) >> 2] | 0; + FUNCTION_TABLE[$9 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($7 + 24 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($7 + 20 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($7 + 16 | 0) >> 2] | 0 | 0) | 0, (emscripten__internal__BindingType_bool_2c_20void___fromWireType_28bool_29((HEAPU8[($7 + 15 | 0) >> 0] | 0) & 1 | 0 | 0) | 0) & 1 | 0); + __stack_pointer = $7 + 32 | 0; + return; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20int_2c_20bool___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 5 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20int_2c_20bool___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20int_2c_20bool____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function emscripten__internal__Invoker_int_2c_20float_2c_20int___invoke_28int_20_28__29_28float_2c_20int_29_2c_20float_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = $2 | 0; + var $5 = 0, $6 = 0, $13 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAPF32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[$6 | 0](Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($5 + 8 | 0) >> 2])))), emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $13 = emscripten__internal__BindingType_int_2c_20void___toWireType_28int_20const__29($5 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $13 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float_2c_20int___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 3 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float_2c_20int___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float_2c_20int____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float_2c_20int__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float_2c_20int__28_29__signature | 0; + } + + function emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int___invoke_28void_20_28__29_28int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int_29_2c_20int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + FUNCTION_TABLE[$8 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($7 + 24 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($7 + 20 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_unsigned_20int_2c_20void___fromWireType_28unsigned_20int_29(HEAP32[($7 + 16 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_unsigned_20int_2c_20void___fromWireType_28unsigned_20int_29(HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0); + __stack_pointer = $7 + 32 | 0; + return; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 5 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float___invoke_28void_20_28__29_28int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float_29_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float_29($0, $1, $2, $3, $4, $5, $6) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = Math_fround($6); + var $9 = 0, $10 = 0; + $9 = __stack_pointer - 32 | 0; + __stack_pointer = $9; + HEAP32[($9 + 28 | 0) >> 2] = $0; + HEAP32[($9 + 24 | 0) >> 2] = $1; + HEAP32[($9 + 20 | 0) >> 2] = $2; + HEAP32[($9 + 16 | 0) >> 2] = $3; + HEAP32[($9 + 12 | 0) >> 2] = $4; + HEAP32[($9 + 8 | 0) >> 2] = $5; + HEAPF32[($9 + 4 | 0) >> 2] = $6; + $10 = HEAP32[($9 + 28 | 0) >> 2] | 0; + FUNCTION_TABLE[$10 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($9 + 24 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($9 + 20 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($9 + 16 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($9 + 12 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($9 + 8 | 0) >> 2] | 0 | 0) | 0, Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($9 + 4 | 0) >> 2]))))); + __stack_pointer = $9 + 32 | 0; + return; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 7 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float__28_29__signature | 0; + } + + function emscripten__internal__Invoker_int_2c_20int_2c_20int_2c_20int___invoke_28int_20_28__29_28int_2c_20int_2c_20int_29_2c_20int_2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $18 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = FUNCTION_TABLE[$7 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $18 = emscripten__internal__BindingType_int_2c_20void___toWireType_28int_20const__29($6 + 12 | 0 | 0) | 0; + __stack_pointer = $6 + 32 | 0; + return $18 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20int_2c_20int___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 4 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20int_2c_20int___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20int_2c_20int____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20int_2c_20float___invoke_28void_20_28__29_28int_2c_20float_2c_20int_2c_20float_29_2c_20int_2c_20float_2c_20int_2c_20float_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = $3 | 0; + $4 = Math_fround($4); + var $7 = 0, $8 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAPF32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAPF32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + FUNCTION_TABLE[$8 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($7 + 24 | 0) >> 2] | 0 | 0) | 0, Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($7 + 20 | 0) >> 2])))), emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($7 + 16 | 0) >> 2] | 0 | 0) | 0, Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($7 + 12 | 0) >> 2]))))); + __stack_pointer = $7 + 32 | 0; + return; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20int_2c_20float___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 5 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20float_2c_20int_2c_20float___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20int_2c_20float____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20int_2c_20float__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_void_2c_20int_2c_20int_2c_20float_2c_20int_2c_20float__28_29__signature | 0; + } + + function emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool___invoke_28void_20_28__29_28int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29_2c_20int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, $10 = 0; + $8 = __stack_pointer - 32 | 0; + __stack_pointer = $8; + HEAP32[($8 + 28 | 0) >> 2] = $0; + HEAP32[($8 + 24 | 0) >> 2] = $1; + HEAP32[($8 + 20 | 0) >> 2] = $2; + HEAP32[($8 + 16 | 0) >> 2] = $3; + HEAP32[($8 + 12 | 0) >> 2] = $4; + HEAP8[($8 + 11 | 0) >> 0] = $5; + $10 = HEAP32[($8 + 28 | 0) >> 2] | 0; + FUNCTION_TABLE[$10 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($8 + 24 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($8 + 20 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($8 + 16 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_unsigned_20int_2c_20void___fromWireType_28unsigned_20int_29(HEAP32[($8 + 12 | 0) >> 2] | 0 | 0) | 0, (emscripten__internal__BindingType_bool_2c_20void___fromWireType_28bool_29((HEAPU8[($8 + 11 | 0) >> 0] | 0) & 1 | 0 | 0) | 0) & 1 | 0); + __stack_pointer = $8 + 32 | 0; + return; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 6 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_void_2c_20int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function emscripten__internal__Invoker_int_2c_20int_2c_20int_2c_20float_2c_20float___invoke_28int_20_28__29_28int_2c_20int_2c_20float_2c_20float_29_2c_20int_2c_20int_2c_20float_2c_20float_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + $4 = Math_fround($4); + var $7 = 0, $8 = 0, $21 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAPF32[($7 + 16 | 0) >> 2] = $3; + HEAPF32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = FUNCTION_TABLE[$8 | 0](emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($7 + 24 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($7 + 20 | 0) >> 2] | 0 | 0) | 0, Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($7 + 16 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($7 + 12 | 0) >> 2]))))) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + $21 = emscripten__internal__BindingType_int_2c_20void___toWireType_28int_20const__29($7 + 8 | 0 | 0) | 0; + __stack_pointer = $7 + 32 | 0; + return $21 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20int_2c_20float_2c_20float___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 5 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20int_2c_20int_2c_20float_2c_20float___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20int_2c_20float_2c_20float____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float__28_29__signature | 0; + } + + function emscripten__internal__Invoker_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float___invoke_28int_20_28__29_28float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_29_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_29($0, $1, $2, $3, $4, $5, $6, $7, $8) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = Math_fround($3); + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = Math_fround($7); + $8 = Math_fround($8); + var $11 = 0, $12 = 0, $33 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $11 = __stack_pointer - 48 | 0; + __stack_pointer = $11; + HEAP32[($11 + 44 | 0) >> 2] = $0; + HEAPF32[($11 + 40 | 0) >> 2] = $1; + HEAPF32[($11 + 36 | 0) >> 2] = $2; + HEAPF32[($11 + 32 | 0) >> 2] = $3; + HEAP32[($11 + 28 | 0) >> 2] = $4; + HEAP32[($11 + 24 | 0) >> 2] = $5; + HEAP32[($11 + 20 | 0) >> 2] = $6; + HEAPF32[($11 + 16 | 0) >> 2] = $7; + HEAPF32[($11 + 12 | 0) >> 2] = $8; + $12 = HEAP32[($11 + 44 | 0) >> 2] | 0; + (wasm2js_i32$0 = $11, wasm2js_i32$1 = FUNCTION_TABLE[$12 | 0](Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($11 + 40 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($11 + 36 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($11 + 32 | 0) >> 2])))), emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($11 + 28 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($11 + 24 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($11 + 20 | 0) >> 2] | 0 | 0) | 0, Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($11 + 16 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($11 + 12 | 0) >> 2]))))) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + $33 = emscripten__internal__BindingType_int_2c_20void___toWireType_28int_20const__29($11 + 8 | 0 | 0) | 0; + __stack_pointer = $11 + 48 | 0; + return $33 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 9 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float__28_29__signature | 0; + } + + function emscripten__internal__Invoker_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float___invoke_28int_20_28__29_28float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = Math_fround($3); + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = Math_fround($7); + $8 = Math_fround($8); + $9 = Math_fround($9); + var $12 = 0, $13 = 0, $36 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $12 = __stack_pointer - 48 | 0; + __stack_pointer = $12; + HEAP32[($12 + 44 | 0) >> 2] = $0; + HEAPF32[($12 + 40 | 0) >> 2] = $1; + HEAPF32[($12 + 36 | 0) >> 2] = $2; + HEAPF32[($12 + 32 | 0) >> 2] = $3; + HEAP32[($12 + 28 | 0) >> 2] = $4; + HEAP32[($12 + 24 | 0) >> 2] = $5; + HEAP32[($12 + 20 | 0) >> 2] = $6; + HEAPF32[($12 + 16 | 0) >> 2] = $7; + HEAPF32[($12 + 12 | 0) >> 2] = $8; + HEAPF32[($12 + 8 | 0) >> 2] = $9; + $13 = HEAP32[($12 + 44 | 0) >> 2] | 0; + (wasm2js_i32$0 = $12, wasm2js_i32$1 = FUNCTION_TABLE[$13 | 0](Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($12 + 40 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($12 + 36 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($12 + 32 | 0) >> 2])))), emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($12 + 28 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($12 + 24 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($12 + 20 | 0) >> 2] | 0 | 0) | 0, Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($12 + 16 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($12 + 12 | 0) >> 2])))), Math_fround(emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29(Math_fround(Math_fround(HEAPF32[($12 + 8 | 0) >> 2]))))) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + $36 = emscripten__internal__BindingType_int_2c_20void___toWireType_28int_20const__29($12 + 4 | 0 | 0) | 0; + __stack_pointer = $12 + 48 | 0; + return $36 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 10 | 0; + } + + function emscripten__internal__WithPolicies_emscripten__allow_raw_pointers___ArgTypeList_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float__28_29() { + return GOT_data_internal_char_20const__20emscripten__internal__getGenericSignature_int_2c_20int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float__28_29__signature | 0; + } + + function void_20const__20emscripten__internal__getLightTypeID_btDebugDraw__28btDebugDraw_20const__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[(HEAP32[($3 + 12 | 0) >> 2] | 0) >> 2] | 0) + -4 | 0) >> 2] | 0 | 0; + } + + function emscripten__internal__LightTypeID_btDebugDraw___get_28_29() { + return GOT_data_internal_typeinfo_20for_20btDebugDraw | 0; + } + + function emscripten__internal__LightTypeID_btDebugDraw____get_28_29() { + return GOT_data_internal_typeinfo_20for_20btDebugDraw_ | 0; + } + + function emscripten__internal__LightTypeID_btDebugDraw_20const____get_28_29() { + return GOT_data_internal_typeinfo_20for_20btDebugDraw_20const_ | 0; + } + + function emscripten__internal__MethodInvoker_void_20_28btIDebugDraw____29_28_29_2c_20void_2c_20btIDebugDraw____invoke_28void_20_28btIDebugDraw____20const__29_28_29_2c_20btIDebugDraw__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $7 = 0, $8 = 0, $9 = 0, $12 = 0, $18 = 0, $6 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $6 = emscripten__internal__BindingType_btIDebugDraw__2c_20void___fromWireType_28btIDebugDraw__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + $7 = HEAP32[($4 + 12 | 0) >> 2] | 0; + $8 = HEAP32[($7 + 4 | 0) >> 2] | 0; + $9 = HEAP32[$7 >> 2] | 0; + $12 = $6 + ($8 >> 1 | 0) | 0; + label$1 : { + label$2 : { + if (!($8 & 1 | 0)) { + break label$2 + } + $18 = HEAP32[((HEAP32[$12 >> 2] | 0) + $9 | 0) >> 2] | 0; + break label$1; + } + $18 = $9; + } + FUNCTION_TABLE[$18 | 0]($12); + __stack_pointer = $4 + 16 | 0; + return; + } + + function emscripten__internal__TypeID_btIDebugDraw_2c_20void___get_28_29() { + return emscripten__internal__LightTypeID_btIDebugDraw___get_28_29() | 0 | 0; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void_2c_20emscripten__internal__AllowedRawPointer_btIDebugDraw____getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 2 | 0; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void_2c_20emscripten__internal__AllowedRawPointer_btIDebugDraw____getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20emscripten__internal__AllowedRawPointer_btIDebugDraw_____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function void_20_28btIDebugDraw____emscripten__internal__getContext_void_20_28btIDebugDraw____29_28_29__28void_20_28btIDebugDraw____20const__29_28_29_29_29_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0, $6 = 0, $7 = 0, $9 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = operator_20new_28unsigned_20long_29(8 | 0) | 0; + $6 = HEAP32[($3 + 12 | 0) >> 2] | 0; + $7 = HEAP32[$6 >> 2] | 0; + HEAP32[($5 + 4 | 0) >> 2] = HEAP32[($6 + 4 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = $7; + HEAP32[($3 + 8 | 0) >> 2] = $5; + $9 = HEAP32[($3 + 8 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $9 | 0; + } + + function emscripten__internal__BindingType_btIDebugDraw__2c_20void___fromWireType_28btIDebugDraw__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function emscripten__internal__LightTypeID_btIDebugDraw___get_28_29() { + return GOT_data_internal_typeinfo_20for_20btIDebugDraw | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20emscripten__internal__AllowedRawPointer_btIDebugDraw_____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20emscripten__internal__AllowedRawPointer_btIDebugDraw_____get_28_29__types | 0; + } + + function emscripten__internal__MethodInvoker_void_20_28btDebugDraw____29_28int_2c_20int_2c_20int_29_2c_20void_2c_20btDebugDraw__2c_20int_2c_20int_2c_20int___invoke_28void_20_28btDebugDraw____20const__29_28int_2c_20int_2c_20int_29_2c_20btDebugDraw__2c_20int_2c_20int_2c_20int_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $10 = 0, $11 = 0, $12 = 0, $15 = 0, $21 = 0, $9 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + $9 = emscripten__internal__BindingType_btDebugDraw__2c_20void___fromWireType_28btDebugDraw__29(HEAP32[($7 + 24 | 0) >> 2] | 0 | 0) | 0; + $10 = HEAP32[($7 + 28 | 0) >> 2] | 0; + $11 = HEAP32[($10 + 4 | 0) >> 2] | 0; + $12 = HEAP32[$10 >> 2] | 0; + $15 = $9 + ($11 >> 1 | 0) | 0; + label$1 : { + label$2 : { + if (!($11 & 1 | 0)) { + break label$2 + } + $21 = HEAP32[((HEAP32[$15 >> 2] | 0) + $12 | 0) >> 2] | 0; + break label$1; + } + $21 = $12; + } + FUNCTION_TABLE[$21 | 0]($15, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($7 + 20 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($7 + 16 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0); + __stack_pointer = $7 + 32 | 0; + return; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void_2c_20emscripten__internal__AllowedRawPointer_btDebugDraw__2c_20int_2c_20int_2c_20int___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 5 | 0; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void_2c_20emscripten__internal__AllowedRawPointer_btDebugDraw__2c_20int_2c_20int_2c_20int___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20emscripten__internal__AllowedRawPointer_btDebugDraw__2c_20int_2c_20int_2c_20int____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function void_20_28btDebugDraw____emscripten__internal__getContext_void_20_28btDebugDraw____29_28int_2c_20int_2c_20int_29__28void_20_28btDebugDraw____20const__29_28int_2c_20int_2c_20int_29_29_29_28int_2c_20int_2c_20int_29($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0, $6 = 0, $7 = 0, $9 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = operator_20new_28unsigned_20long_29(8 | 0) | 0; + $6 = HEAP32[($3 + 12 | 0) >> 2] | 0; + $7 = HEAP32[$6 >> 2] | 0; + HEAP32[($5 + 4 | 0) >> 2] = HEAP32[($6 + 4 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = $7; + HEAP32[($3 + 8 | 0) >> 2] = $5; + $9 = HEAP32[($3 + 8 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $9 | 0; + } + + function emscripten__internal__BindingType_btDebugDraw__2c_20void___fromWireType_28btDebugDraw__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20emscripten__internal__AllowedRawPointer_btDebugDraw__2c_20int_2c_20int_2c_20int____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20emscripten__internal__AllowedRawPointer_btDebugDraw__2c_20int_2c_20int_2c_20int____get_28_29__types | 0; + } + + function emscripten__class__btDebugDraw_2c_20emscripten__internal__NoBaseClass__20const__20emscripten__class__btDebugDraw_2c_20emscripten__internal__NoBaseClass___allow_subclass_btDebugDrawWrapper__28char_20const__2c_20emscripten__constructor___29_20const___lambda__28btDebugDrawWrapper__29____invoke_28btDebugDrawWrapper__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + emscripten__class__btDebugDraw_2c_20emscripten__internal__NoBaseClass__20const__20emscripten__class__btDebugDraw_2c_20emscripten__internal__NoBaseClass___allow_subclass_btDebugDrawWrapper__28char_20const__2c_20emscripten__constructor___29_20const___lambda__28btDebugDrawWrapper__29__operator_28_29_28btDebugDrawWrapper__29_20const($3 + 11 | 0 | 0, HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btDebugDraw__operator_20new_28unsigned_20long_29($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0, 16 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function btDebugDrawWrapper__btDebugDrawWrapper___28emscripten__val___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + emscripten__wrapper_btDebugDraw___wrapper___28emscripten__val___29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$5 >> 2] = GOT_data_internal_vtable_20for_20btDebugDrawWrapper + 8 | 0; + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____c_str_5babi_v160004_5d_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____data_5babi_v160004_5d_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $5 | 0; + } + + function emscripten__val__as_handle_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[(HEAP32[($3 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0; + } + + function emscripten__val__take_ownership_28emscripten___EM_VAL__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + emscripten__val__val_28emscripten___EM_VAL__29($0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function void_20const__20emscripten__internal__getLightTypeID_btDebugDrawWrapper__28btDebugDrawWrapper_20const__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[(HEAP32[($3 + 12 | 0) >> 2] | 0) >> 2] | 0) + -4 | 0) >> 2] | 0 | 0; + } + + function btDebugDraw__20emscripten__base_btDebugDraw___convertPointer_btDebugDrawWrapper_2c_20btDebugDraw__28btDebugDrawWrapper__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btDebugDrawWrapper__20emscripten__base_btDebugDraw___convertPointer_btDebugDraw_2c_20btDebugDrawWrapper__28btDebugDraw__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function emscripten__internal__LightTypeID_btDebugDrawWrapper___get_28_29() { + return GOT_data_internal_typeinfo_20for_20btDebugDrawWrapper | 0; + } + + function emscripten__internal__LightTypeID_btDebugDrawWrapper____get_28_29() { + return GOT_data_internal_typeinfo_20for_20btDebugDrawWrapper_ | 0; + } + + function emscripten__internal__LightTypeID_btDebugDrawWrapper_20const____get_28_29() { + return GOT_data_internal_typeinfo_20for_20btDebugDrawWrapper_20const_ | 0; + } + + function emscripten__internal__FunctionInvoker_void_20_28__29_28btDebugDrawWrapper__29_2c_20void_2c_20btDebugDrawWrapper____invoke_28void_20_28___29_28btDebugDrawWrapper__29_2c_20btDebugDrawWrapper__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $6 = HEAP32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] | 0; + FUNCTION_TABLE[$6 | 0](emscripten__internal__GenericBindingType_btDebugDrawWrapper___fromWireType_28btDebugDrawWrapper__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void_2c_20btDebugDrawWrapper____getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 2 | 0; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void_2c_20btDebugDrawWrapper____getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20btDebugDrawWrapper_____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function void_20_28__emscripten__internal__getContext_void_20_28__29_28btDebugDrawWrapper__29__28void_20_28__20const__29_28btDebugDrawWrapper__29_29_29_28btDebugDrawWrapper__29($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0, $8 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = operator_20new_28unsigned_20long_29(4 | 0) | 0; + HEAP32[$5 >> 2] = HEAP32[(HEAP32[($3 + 12 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($3 + 8 | 0) >> 2] = $5; + $8 = HEAP32[($3 + 8 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $8 | 0; + } + + function emscripten__internal__GenericBindingType_btDebugDrawWrapper___fromWireType_28btDebugDrawWrapper__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20btDebugDrawWrapper_____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20btDebugDrawWrapper_____get_28_29__types | 0; + } + + function emscripten__class__btDebugDraw_2c_20emscripten__internal__NoBaseClass__20const__20emscripten__class__btDebugDraw_2c_20emscripten__internal__NoBaseClass___allow_subclass_btDebugDrawWrapper__28char_20const__2c_20emscripten__constructor___29_20const___lambda__28btDebugDrawWrapper__29__operator_28_29_28btDebugDrawWrapper__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + emscripten__internal__WrapperBase__setNotifyJSOnDestruction_28bool_29((HEAP32[($4 + 8 | 0) >> 2] | 0) + 136 | 0 | 0, 1 & 1 | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function emscripten__internal__WrapperBase__setNotifyJSOnDestruction_28bool_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP8[($4 + 11 | 0) >> 0] = $1; + HEAP8[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 0] = (HEAPU8[($4 + 11 | 0) >> 0] | 0) & 1 | 0; + return; + } + + function emscripten__internal__BindingType_emscripten__val___2c_20void___fromWireType_28emscripten___EM_VAL__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + emscripten__internal__BindingType_emscripten__val_2c_20void___fromWireType_28emscripten___EM_VAL__29($0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function emscripten__internal__BindingType_btDebugDrawWrapper__2c_20void___toWireType_28btDebugDrawWrapper__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function emscripten__val___val_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + _emval_decref(HEAP32[$4 >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_emscripten__internal__AllowedRawPointer_btDebugDrawWrapper__2c_20emscripten__val______get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_emscripten__internal__AllowedRawPointer_btDebugDrawWrapper__2c_20emscripten__val______get_28_29__types | 0; + } + + function emscripten__internal__BindingType_emscripten__val_2c_20void___fromWireType_28emscripten___EM_VAL__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + emscripten__val__take_ownership_28emscripten___EM_VAL__29($0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function emscripten__val__val_28emscripten___EM_VAL__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return $5 | 0; + } + + function emscripten__wrapper_btDebugDraw___wrapper___28emscripten__val___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $6 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + $6 = 136; + __memset($5 | 0, 0 | 0, $6 | 0) | 0; + btDebugDraw__btDebugDraw_28_29($5 | 0) | 0; + emscripten__internal__WrapperBase__WrapperBase_28_29($5 + $6 | 0 | 0) | 0; + HEAP32[$5 >> 2] = GOT_data_internal_vtable_20for_20emscripten__wrapper_btDebugDraw_ + 8 | 0; + emscripten__val__val_28emscripten__val___29($5 + 140 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function btDebugDraw__btDebugDraw_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btIDebugDraw__btIDebugDraw_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = GOT_data_internal_vtable_20for_20btDebugDraw + 8 | 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + btIDebugDraw__DefaultColors__DefaultColors_28_29($4 + 8 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function emscripten__internal__WrapperBase__WrapperBase_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[$4 >> 0] = 0; + return $4 | 0; + } + + function emscripten__val__val_28emscripten__val___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] = 0; + return $5 | 0; + } + + function btDebugDrawWrapper___btDebugDrawWrapper_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + emscripten__wrapper_btDebugDraw____wrapper_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function emscripten__wrapper_btDebugDraw____wrapper_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $16 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $4; + HEAP32[$4 >> 2] = GOT_data_internal_vtable_20for_20emscripten__wrapper_btDebugDraw_ + 8 | 0; + label$1 : { + if (!((HEAPU8[($4 + 136 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + void_20emscripten__wrapper_btDebugDraw___call_void__28char_20const__29_20const($4 | 0, GOT_data_internal___memory_base + 68623 | 0 | 0); + } + emscripten__val___val_28_29($4 + 140 | 0 | 0) | 0; + btDebugDraw___btDebugDraw_28_29($4 | 0) | 0; + $16 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $16 | 0; + } + + function btDebugDrawWrapper___btDebugDrawWrapper_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btDebugDrawWrapper___btDebugDrawWrapper_28_29($4 | 0) | 0; + btDebugDraw__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btDebugDraw__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btDebugDraw__getDefaultColors_28_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $1; + __memcpy($0 | 0, (HEAP32[($4 + 12 | 0) >> 2] | 0) + 8 | 0 | 0, 128 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btDebugDraw__setDefaultColors_28btIDebugDraw__DefaultColors_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + __memcpy((HEAP32[($4 + 12 | 0) >> 2] | 0) + 8 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 128 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btDebugDraw__drawLine_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 108 | 0) >> 2] | 0 | 0]($7, HEAP32[($6 + 8 | 0) >> 2] | 0, HEAP32[($6 + 4 | 0) >> 2] | 0, HEAP32[$6 >> 2] | 0); + __stack_pointer = $6 + 16 | 0; + return; + } + + function btIDebugDraw__drawLine_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($8, HEAP32[($7 + 24 | 0) >> 2] | 0, HEAP32[($7 + 20 | 0) >> 2] | 0, HEAP32[($7 + 16 | 0) >> 2] | 0); + __stack_pointer = $7 + 32 | 0; + return; + } + + function btIDebugDraw__drawSphere_28float_2c_20btTransform_20const__2c_20btVector3_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, $7 = 0, i64toi32_i32$1 = 0, $9 = 0, $10 = 0, $115 = 0, $119 = 0; + $6 = __stack_pointer - 112 | 0; + __stack_pointer = $6; + HEAP32[($6 + 108 | 0) >> 2] = $0; + HEAPF32[($6 + 104 | 0) >> 2] = $1; + HEAP32[($6 + 100 | 0) >> 2] = $2; + HEAP32[($6 + 96 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 108 | 0) >> 2] | 0; + $9 = btTransform__getOrigin_28_29_20const(HEAP32[($6 + 100 | 0) >> 2] | 0 | 0) | 0; + $10 = 8; + i64toi32_i32$2 = $9 + $10 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $115 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 80 | 0) + $10 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $115; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $9; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $119 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 80 | 0) >> 2] = $119; + HEAP32[($6 + 84 | 0) >> 2] = i64toi32_i32$0; + btMatrix3x3__getColumn_28int_29_20const($6 + 64 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($6 + 100 | 0) >> 2] | 0 | 0) | 0 | 0, 1 | 0); + btMatrix3x3__getColumn_28int_29_20const($6 + 48 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($6 + 100 | 0) >> 2] | 0 | 0) | 0 | 0, 0 | 0); + HEAPF32[($6 + 44 | 0) >> 2] = Math_fround(-1.5707963705062866); + HEAPF32[($6 + 40 | 0) >> 2] = Math_fround(1.5707963705062866); + HEAPF32[($6 + 36 | 0) >> 2] = Math_fround(-1.5707963705062866); + HEAPF32[($6 + 32 | 0) >> 2] = Math_fround(1.5707963705062866); + HEAPF32[($6 + 28 | 0) >> 2] = Math_fround(30.0); + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 72 | 0) >> 2] | 0 | 0]($7, $6 + 80 | 0, $6 + 64 | 0, $6 + 48 | 0, Math_fround(HEAPF32[($6 + 104 | 0) >> 2]), Math_fround(HEAPF32[($6 + 44 | 0) >> 2]), Math_fround(HEAPF32[($6 + 40 | 0) >> 2]), Math_fround(HEAPF32[($6 + 36 | 0) >> 2]), Math_fround(HEAPF32[($6 + 32 | 0) >> 2]), HEAP32[($6 + 96 | 0) >> 2] | 0, Math_fround(HEAPF32[($6 + 28 | 0) >> 2]), 0 & 1 | 0); + operator__28btVector3_20const__29($6 + 12 | 0 | 0, $6 + 48 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 72 | 0) >> 2] | 0 | 0]($7, $6 + 80 | 0, $6 + 64 | 0, $6 + 12 | 0, Math_fround(HEAPF32[($6 + 104 | 0) >> 2]), Math_fround(HEAPF32[($6 + 44 | 0) >> 2]), Math_fround(HEAPF32[($6 + 40 | 0) >> 2]), Math_fround(HEAPF32[($6 + 36 | 0) >> 2]), Math_fround(HEAPF32[($6 + 32 | 0) >> 2]), HEAP32[($6 + 96 | 0) >> 2] | 0, Math_fround(HEAPF32[($6 + 28 | 0) >> 2]), 0 & 1 | 0); + __stack_pointer = $6 + 112 | 0; + return; + } + + function btTransform__getOrigin_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 48 | 0 | 0; + } + + function btMatrix3x3__getColumn_28int_29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $1; + HEAP32[($5 + 8 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, (btVector3__operator_20float_20const__28_29_20const($6 | 0) | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const($6 + 16 | 0 | 0) | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const($6 + 32 | 0 | 0) | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return; + } + + function btIDebugDraw__drawSphere_28btVector3_20const__2c_20float_2c_20btVector3_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 80 | 0; + __stack_pointer = $6; + HEAP32[($6 + 76 | 0) >> 2] = $0; + HEAP32[($6 + 72 | 0) >> 2] = $1; + HEAPF32[($6 + 68 | 0) >> 2] = $2; + HEAP32[($6 + 64 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 76 | 0) >> 2] | 0; + btTransform__btTransform_28_29($6 | 0) | 0; + btTransform__setIdentity_28_29($6 | 0); + btTransform__setOrigin_28btVector3_20const__29($6 | 0, HEAP32[($6 + 72 | 0) >> 2] | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 24 | 0) >> 2] | 0 | 0]($7, Math_fround(HEAPF32[($6 + 68 | 0) >> 2]), $6, HEAP32[($6 + 64 | 0) >> 2] | 0); + __stack_pointer = $6 + 80 | 0; + return; + } + + function btIDebugDraw__drawTriangle_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_29($0, $1, $2, $3, $4, $5, $6, $7, $8) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + $8 = Math_fround($8); + var $11 = 0, $12 = 0; + $11 = __stack_pointer - 48 | 0; + __stack_pointer = $11; + HEAP32[($11 + 44 | 0) >> 2] = $0; + HEAP32[($11 + 40 | 0) >> 2] = $1; + HEAP32[($11 + 36 | 0) >> 2] = $2; + HEAP32[($11 + 32 | 0) >> 2] = $3; + HEAP32[($11 + 28 | 0) >> 2] = $4; + HEAP32[($11 + 24 | 0) >> 2] = $5; + HEAP32[($11 + 20 | 0) >> 2] = $6; + HEAP32[($11 + 16 | 0) >> 2] = $7; + HEAPF32[($11 + 12 | 0) >> 2] = $8; + $12 = HEAP32[($11 + 44 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$12 >> 2] | 0) + 36 | 0) >> 2] | 0 | 0]($12, HEAP32[($11 + 40 | 0) >> 2] | 0, HEAP32[($11 + 36 | 0) >> 2] | 0, HEAP32[($11 + 32 | 0) >> 2] | 0, HEAP32[($11 + 16 | 0) >> 2] | 0, Math_fround(HEAPF32[($11 + 12 | 0) >> 2])); + __stack_pointer = $11 + 48 | 0; + return; + } + + function btIDebugDraw__drawTriangle_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = Math_fround($5); + var $8 = 0, $9 = 0; + $8 = __stack_pointer - 32 | 0; + __stack_pointer = $8; + HEAP32[($8 + 28 | 0) >> 2] = $0; + HEAP32[($8 + 24 | 0) >> 2] = $1; + HEAP32[($8 + 20 | 0) >> 2] = $2; + HEAP32[($8 + 16 | 0) >> 2] = $3; + HEAP32[($8 + 12 | 0) >> 2] = $4; + HEAPF32[($8 + 8 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 28 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$9 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($9, HEAP32[($8 + 24 | 0) >> 2] | 0, HEAP32[($8 + 20 | 0) >> 2] | 0, HEAP32[($8 + 12 | 0) >> 2] | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$9 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($9, HEAP32[($8 + 20 | 0) >> 2] | 0, HEAP32[($8 + 16 | 0) >> 2] | 0, HEAP32[($8 + 12 | 0) >> 2] | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$9 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($9, HEAP32[($8 + 16 | 0) >> 2] | 0, HEAP32[($8 + 24 | 0) >> 2] | 0, HEAP32[($8 + 12 | 0) >> 2] | 0); + __stack_pointer = $8 + 32 | 0; + return; + } + + function btDebugDraw__drawContactPoint_28btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20int_2c_20btVector3_20const__29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, $9 = 0, $10 = 0, $11 = 0, $31 = 0, $32 = 0, $33 = 0; + $8 = __stack_pointer - 96 | 0; + __stack_pointer = $8; + HEAP32[($8 + 92 | 0) >> 2] = $0; + HEAP32[($8 + 88 | 0) >> 2] = $1; + HEAP32[($8 + 84 | 0) >> 2] = $2; + HEAPF32[($8 + 80 | 0) >> 2] = $3; + HEAP32[($8 + 76 | 0) >> 2] = $4; + HEAP32[($8 + 72 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 92 | 0) >> 2] | 0; + $10 = HEAP32[($8 + 88 | 0) >> 2] | 0; + $11 = HEAP32[($8 + 88 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20float_20const__29($8 + 40 | 0 | 0, HEAP32[($8 + 84 | 0) >> 2] | 0 | 0, $8 + 80 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 56 | 0 | 0, $11 | 0, $8 + 40 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$9 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($9, $10, $8 + 56 | 0, HEAP32[($8 + 72 | 0) >> 2] | 0); + $31 = HEAP32[($8 + 88 | 0) >> 2] | 0; + $32 = HEAP32[($8 + 88 | 0) >> 2] | 0; + $33 = HEAP32[($8 + 84 | 0) >> 2] | 0; + HEAPF32[($8 + 4 | 0) >> 2] = Math_fround(.009999999776482582); + operator__28btVector3_20const__2c_20float_20const__29($8 + 8 | 0 | 0, $33 | 0, $8 + 4 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 24 | 0 | 0, $32 | 0, $8 + 8 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$9 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($9, $31, $8 + 24 | 0, HEAP32[($8 + 72 | 0) >> 2] | 0); + __stack_pointer = $8 + 96 | 0; + return; + } + + function btDebugDraw__reportErrorWarning_28char_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return; + } + + function btDebugDraw__draw3dText_28btVector3_20const__2c_20char_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + return; + } + + function btDebugDraw__setDebugMode_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return; + } + + function btDebugDraw__getDebugMode_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btIDebugDraw__drawAabb_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $7 = 0, $120 = 0, $145 = 0, $194 = 0, $236 = 0, $259 = 0, $505 = 0, $509 = 0, $648 = 0, $652 = 0, $732 = 0, $736 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 256 | 0; + __stack_pointer = $6; + HEAP32[($6 + 252 | 0) >> 2] = $0; + HEAP32[($6 + 248 | 0) >> 2] = $1; + HEAP32[($6 + 244 | 0) >> 2] = $2; + HEAP32[($6 + 240 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 252 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 208 | 0 | 0, HEAP32[($6 + 244 | 0) >> 2] | 0 | 0, HEAP32[($6 + 248 | 0) >> 2] | 0 | 0); + HEAPF32[($6 + 204 | 0) >> 2] = Math_fround(.5); + operator__28btVector3_20const__2c_20float_20const__29($6 + 224 | 0 | 0, $6 + 208 | 0 | 0, $6 + 204 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 172 | 0 | 0, HEAP32[($6 + 244 | 0) >> 2] | 0 | 0, HEAP32[($6 + 248 | 0) >> 2] | 0 | 0); + HEAPF32[($6 + 168 | 0) >> 2] = Math_fround(.5); + operator__28btVector3_20const__2c_20float_20const__29($6 + 188 | 0 | 0, $6 + 172 | 0 | 0, $6 + 168 | 0 | 0); + HEAPF32[($6 + 140 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($6 + 136 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($6 + 132 | 0) >> 2] = Math_fround(1.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 144 | 0 | 0, $6 + 140 | 0 | 0, $6 + 136 | 0 | 0, $6 + 132 | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 112 | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 96 | 0 | 0) | 0; + HEAP32[($6 + 164 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 164 | 0) >> 2] | 0 | 0) < (4 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[($6 + 160 | 0) >> 2] = 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($6 + 160 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$3 + } + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float__28_29($6 + 144 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__operator_20float__28_29($6 + 224 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 76 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 144 | 0 | 0) | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 224 | 0 | 0) | 0) + 4 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 72 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 144 | 0 | 0) | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 224 | 0 | 0) | 0) + 8 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 68 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 80 | 0 | 0, $6 + 76 | 0 | 0, $6 + 72 | 0 | 0, $6 + 68 | 0 | 0) | 0; + $120 = 8; + i64toi32_i32$2 = ($6 + 80 | 0) + $120 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $505 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 112 | 0) + $120 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $505; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 80 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 84 | 0) >> 2] | 0; + $509 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 112 | 0) >> 2] = $509; + HEAP32[($6 + 116 | 0) >> 2] = i64toi32_i32$0; + btVector3__operator___28btVector3_20const__29_1($6 + 112 | 0 | 0, $6 + 188 | 0 | 0) | 0; + HEAP32[($6 + 64 | 0) >> 2] = (HEAP32[($6 + 160 | 0) >> 2] | 0 | 0) % (3 | 0) | 0; + $145 = (btVector3__operator_20float__28_29($6 + 144 | 0 | 0) | 0) + ((HEAP32[($6 + 64 | 0) >> 2] | 0) << 2 | 0) | 0; + HEAPF32[$145 >> 2] = Math_fround(Math_fround(HEAPF32[$145 >> 2]) * Math_fround(-1.0)); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float__28_29($6 + 144 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__operator_20float__28_29($6 + 224 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 144 | 0 | 0) | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 224 | 0 | 0) | 0) + 4 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 144 | 0 | 0) | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 224 | 0 | 0) | 0) + 8 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 48 | 0 | 0, $6 + 44 | 0 | 0, $6 + 40 | 0 | 0, $6 + 36 | 0 | 0) | 0; + $194 = 8; + i64toi32_i32$2 = ($6 + 48 | 0) + $194 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $648 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 96 | 0) + $194 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $648; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 48 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 52 | 0) >> 2] | 0; + $652 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 96 | 0) >> 2] = $652; + HEAP32[($6 + 100 | 0) >> 2] = i64toi32_i32$0; + btVector3__operator___28btVector3_20const__29_1($6 + 96 | 0 | 0, $6 + 188 | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($7, $6 + 112 | 0, $6 + 96 | 0, HEAP32[($6 + 240 | 0) >> 2] | 0); + HEAP32[($6 + 160 | 0) >> 2] = (HEAP32[($6 + 160 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + HEAPF32[($6 + 16 | 0) >> 2] = Math_fround(-1.0); + HEAPF32[($6 + 12 | 0) >> 2] = Math_fround(-1.0); + HEAPF32[($6 + 8 | 0) >> 2] = Math_fround(-1.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 20 | 0 | 0, $6 + 16 | 0 | 0, $6 + 12 | 0 | 0, $6 + 8 | 0 | 0) | 0; + $236 = 8; + i64toi32_i32$2 = ($6 + 20 | 0) + $236 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $732 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 144 | 0) + $236 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $732; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 20 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 24 | 0) >> 2] | 0; + $736 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 144 | 0) >> 2] = $736; + HEAP32[($6 + 148 | 0) >> 2] = i64toi32_i32$0; + label$5 : { + if (!((HEAP32[($6 + 164 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$5 + } + $259 = (btVector3__operator_20float__28_29($6 + 144 | 0 | 0) | 0) + ((HEAP32[($6 + 164 | 0) >> 2] | 0) << 2 | 0) | 0; + HEAPF32[$259 >> 2] = Math_fround(Math_fround(HEAPF32[$259 >> 2]) * Math_fround(-1.0)); + } + HEAP32[($6 + 164 | 0) >> 2] = (HEAP32[($6 + 164 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $6 + 256 | 0; + return; + } + + function btIDebugDraw__drawTransform_28btTransform_20const__2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0, $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $8 = 0, $9 = 0, $224 = 0, $228 = 0, $17 = 0, $76 = 0, $135 = 0; + $5 = __stack_pointer - 288 | 0; + __stack_pointer = $5; + HEAP32[($5 + 284 | 0) >> 2] = $0; + HEAP32[($5 + 280 | 0) >> 2] = $1; + HEAPF32[($5 + 276 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 284 | 0) >> 2] | 0; + $8 = btTransform__getOrigin_28_29_20const(HEAP32[($5 + 280 | 0) >> 2] | 0 | 0) | 0; + $9 = 8; + i64toi32_i32$2 = $8 + $9 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $224 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 256 | 0) + $9 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $224; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $228 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 256 | 0) >> 2] = $228; + HEAP32[($5 + 260 | 0) >> 2] = i64toi32_i32$0; + $17 = btTransform__getBasis_28_29_20const(HEAP32[($5 + 280 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($5 + 204 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 200 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 208 | 0 | 0, $5 + 276 | 0 | 0, $5 + 204 | 0 | 0, $5 + 200 | 0 | 0) | 0; + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($5 + 224 | 0 | 0, $17 | 0, $5 + 208 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($5 + 240 | 0 | 0, $5 + 256 | 0 | 0, $5 + 224 | 0 | 0); + HEAPF32[($5 + 180 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($5 + 176 | 0) >> 2] = Math_fround(.30000001192092896); + HEAPF32[($5 + 172 | 0) >> 2] = Math_fround(.30000001192092896); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 184 | 0 | 0, $5 + 180 | 0 | 0, $5 + 176 | 0 | 0, $5 + 172 | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($6, $5 + 256 | 0, $5 + 240 | 0, $5 + 184 | 0); + $76 = btTransform__getBasis_28_29_20const(HEAP32[($5 + 280 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($5 + 120 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 116 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 124 | 0 | 0, $5 + 120 | 0 | 0, $5 + 276 | 0 | 0, $5 + 116 | 0 | 0) | 0; + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($5 + 140 | 0 | 0, $76 | 0, $5 + 124 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($5 + 156 | 0 | 0, $5 + 256 | 0 | 0, $5 + 140 | 0 | 0); + HEAPF32[($5 + 96 | 0) >> 2] = Math_fround(.30000001192092896); + HEAPF32[($5 + 92 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($5 + 88 | 0) >> 2] = Math_fround(.30000001192092896); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 100 | 0 | 0, $5 + 96 | 0 | 0, $5 + 92 | 0 | 0, $5 + 88 | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($6, $5 + 256 | 0, $5 + 156 | 0, $5 + 100 | 0); + $135 = btTransform__getBasis_28_29_20const(HEAP32[($5 + 280 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($5 + 36 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 32 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 40 | 0 | 0, $5 + 36 | 0 | 0, $5 + 32 | 0 | 0, $5 + 276 | 0 | 0) | 0; + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($5 + 56 | 0 | 0, $135 | 0, $5 + 40 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($5 + 72 | 0 | 0, $5 + 256 | 0 | 0, $5 + 56 | 0 | 0); + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(.30000001192092896); + HEAPF32[($5 + 8 | 0) >> 2] = Math_fround(.30000001192092896); + HEAPF32[($5 + 4 | 0) >> 2] = Math_fround(1.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 16 | 0 | 0, $5 + 12 | 0 | 0, $5 + 8 | 0 | 0, $5 + 4 | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($6, $5 + 256 | 0, $5 + 72 | 0, $5 + 16 | 0); + __stack_pointer = $5 + 288 | 0; + return; + } + + function btIDebugDraw__drawArc_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20float_2c_20float_2c_20float_2c_20btVector3_20const__2c_20bool_2c_20float_29($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = Math_fround($4); + $5 = Math_fround($5); + $6 = Math_fround($6); + $7 = Math_fround($7); + $8 = $8 | 0; + $9 = $9 | 0; + $10 = Math_fround($10); + var $13 = 0, $15 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $30 = Math_fround(0), $36 = 0, $185 = 0, $41 = 0, $124 = 0, $590 = 0, $594 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $13 = __stack_pointer - 288 | 0; + __stack_pointer = $13; + HEAP32[($13 + 284 | 0) >> 2] = $0; + HEAP32[($13 + 280 | 0) >> 2] = $1; + HEAP32[($13 + 276 | 0) >> 2] = $2; + HEAP32[($13 + 272 | 0) >> 2] = $3; + HEAPF32[($13 + 268 | 0) >> 2] = $4; + HEAPF32[($13 + 264 | 0) >> 2] = $5; + HEAPF32[($13 + 260 | 0) >> 2] = $6; + HEAPF32[($13 + 256 | 0) >> 2] = $7; + HEAP32[($13 + 252 | 0) >> 2] = $8; + HEAP8[($13 + 251 | 0) >> 0] = $9; + HEAPF32[($13 + 244 | 0) >> 2] = $10; + $15 = HEAP32[($13 + 284 | 0) >> 2] | 0; + HEAP32[($13 + 240 | 0) >> 2] = HEAP32[($13 + 272 | 0) >> 2] | 0; + btVector3__cross_28btVector3_20const__29_20const($13 + 224 | 0 | 0, HEAP32[($13 + 276 | 0) >> 2] | 0 | 0, HEAP32[($13 + 272 | 0) >> 2] | 0 | 0); + HEAPF32[($13 + 220 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($13 + 244 | 0) >> 2]) * Math_fround(.01745329238474369)); + $30 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[($13 + 256 | 0) >> 2]) - Math_fround(HEAPF32[($13 + 260 | 0) >> 2])) / Math_fround(HEAPF32[($13 + 220 | 0) >> 2]))))); + label$1 : { + label$2 : { + if (!(Math_fround(Math_abs($30)) < Math_fround(2147483648.0))) { + break label$2 + } + $36 = ~~$30; + break label$1; + } + $36 = -2147483648; + } + HEAP32[($13 + 216 | 0) >> 2] = $36; + label$3 : { + if (HEAP32[($13 + 216 | 0) >> 2] | 0) { + break label$3 + } + HEAP32[($13 + 216 | 0) >> 2] = 1; + } + $41 = HEAP32[($13 + 280 | 0) >> 2] | 0; + operator__28float_20const__2c_20btVector3_20const__29($13 + 152 | 0 | 0, $13 + 268 | 0 | 0, HEAP32[($13 + 240 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $13, wasm2js_f32$0 = Math_fround(btCos_28float_29(Math_fround(Math_fround(HEAPF32[($13 + 260 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 148 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20float_20const__29($13 + 168 | 0 | 0, $13 + 152 | 0 | 0, $13 + 148 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($13 + 184 | 0 | 0, $41 | 0, $13 + 168 | 0 | 0); + operator__28float_20const__2c_20btVector3_20const__29($13 + 116 | 0 | 0, $13 + 264 | 0 | 0, $13 + 224 | 0 | 0); + (wasm2js_i32$0 = $13, wasm2js_f32$0 = Math_fround(btSin_28float_29(Math_fround(Math_fround(HEAPF32[($13 + 260 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 112 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20float_20const__29($13 + 132 | 0 | 0, $13 + 116 | 0 | 0, $13 + 112 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($13 + 200 | 0 | 0, $13 + 184 | 0 | 0, $13 + 132 | 0 | 0); + label$4 : { + if (!((HEAPU8[($13 + 251 | 0) >> 0] | 0) & 1 | 0)) { + break label$4 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$15 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($15, HEAP32[($13 + 280 | 0) >> 2] | 0, $13 + 200 | 0, HEAP32[($13 + 252 | 0) >> 2] | 0); + } + HEAP32[($13 + 108 | 0) >> 2] = 1; + label$5 : { + label$6 : while (1) { + if (!((HEAP32[($13 + 108 | 0) >> 2] | 0 | 0) <= (HEAP32[($13 + 216 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + HEAPF32[($13 + 104 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($13 + 260 | 0) >> 2]) + Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[($13 + 256 | 0) >> 2]) - Math_fround(HEAPF32[($13 + 260 | 0) >> 2])) * Math_fround(HEAP32[($13 + 108 | 0) >> 2] | 0 | 0)) / Math_fround(HEAP32[($13 + 216 | 0) >> 2] | 0 | 0))); + $124 = HEAP32[($13 + 280 | 0) >> 2] | 0; + operator__28float_20const__2c_20btVector3_20const__29($13 + 40 | 0 | 0, $13 + 268 | 0 | 0, HEAP32[($13 + 240 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $13, wasm2js_f32$0 = Math_fround(btCos_28float_29(Math_fround(Math_fround(HEAPF32[($13 + 104 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20float_20const__29($13 + 56 | 0 | 0, $13 + 40 | 0 | 0, $13 + 36 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($13 + 72 | 0 | 0, $124 | 0, $13 + 56 | 0 | 0); + operator__28float_20const__2c_20btVector3_20const__29($13 + 4 | 0 | 0, $13 + 264 | 0 | 0, $13 + 224 | 0 | 0); + (wasm2js_i32$0 = $13, wasm2js_f32$0 = Math_fround(btSin_28float_29(Math_fround(Math_fround(HEAPF32[($13 + 104 | 0) >> 2]))))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20float_20const__29($13 + 20 | 0 | 0, $13 + 4 | 0 | 0, $13 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($13 + 88 | 0 | 0, $13 + 72 | 0 | 0, $13 + 20 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$15 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($15, $13 + 200 | 0, $13 + 88 | 0, HEAP32[($13 + 252 | 0) >> 2] | 0); + $185 = 8; + i64toi32_i32$2 = ($13 + 88 | 0) + $185 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $590 = i64toi32_i32$0; + i64toi32_i32$0 = ($13 + 200 | 0) + $185 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $590; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $13; + i64toi32_i32$1 = HEAP32[($13 + 88 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($13 + 92 | 0) >> 2] | 0; + $594 = i64toi32_i32$1; + i64toi32_i32$1 = $13; + HEAP32[($13 + 200 | 0) >> 2] = $594; + HEAP32[($13 + 204 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($13 + 108 | 0) >> 2] = (HEAP32[($13 + 108 | 0) >> 2] | 0) + 1 | 0; + continue label$6; + }; + } + label$7 : { + if (!((HEAPU8[($13 + 251 | 0) >> 0] | 0) & 1 | 0)) { + break label$7 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$15 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($15, HEAP32[($13 + 280 | 0) >> 2] | 0, $13 + 200 | 0, HEAP32[($13 + 252 | 0) >> 2] | 0); + } + __stack_pointer = $13 + 288 | 0; + return; + } + + function btFabs_28float_29($0) { + $0 = Math_fround($0); + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAPF32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(Math_abs(Math_fround(HEAPF32[($3 + 12 | 0) >> 2])))); + } + + function operator__28float_20const__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $1; + HEAP32[($5 + 8 | 0) >> 2] = $2; + operator__28btVector3_20const__2c_20float_20const__29($0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function btCos_28float_29($0) { + $0 = Math_fround($0); + var $3 = 0, $5 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAPF32[($3 + 12 | 0) >> 2] = $0; + $5 = Math_fround(cosf(Math_fround(Math_fround(HEAPF32[($3 + 12 | 0) >> 2])))); + __stack_pointer = $3 + 16 | 0; + return Math_fround($5); + } + + function btSin_28float_29($0) { + $0 = Math_fround($0); + var $3 = 0, $5 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAPF32[($3 + 12 | 0) >> 2] = $0; + $5 = Math_fround(sinf(Math_fround(Math_fround(HEAPF32[($3 + 12 | 0) >> 2])))); + __stack_pointer = $3 + 16 | 0; + return Math_fround($5); + } + + function btIDebugDraw__drawSpherePatch_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20float_2c_20float_2c_20float_2c_20float_2c_20btVector3_20const__2c_20float_2c_20bool_29($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = Math_fround($4); + $5 = Math_fround($5); + $6 = Math_fround($6); + $7 = Math_fround($7); + $8 = Math_fround($8); + $9 = $9 | 0; + $10 = Math_fround($10); + $11 = $11 | 0; + var $14 = 0, i64toi32_i32$0 = 0, $16 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $19 = 0, $22 = 0, $23 = 0, $25 = 0, $33 = 0, $36 = 0, $37 = 0, $39 = 0, $129 = Math_fround(0), $135 = 0, $180 = Math_fround(0), $186 = 0, $305 = 0, $307 = 0, $361 = 0, $362 = 0, $21 = 0, $35 = 0, $51 = 0, $65 = 0, $247 = 0, $1091 = 0, $1104 = 0, $1232 = 0, $1236 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $14 = __stack_pointer - 2704 | 0; + __stack_pointer = $14; + HEAP32[($14 + 2700 | 0) >> 2] = $0; + HEAP32[($14 + 2696 | 0) >> 2] = $1; + HEAP32[($14 + 2692 | 0) >> 2] = $2; + HEAP32[($14 + 2688 | 0) >> 2] = $3; + HEAPF32[($14 + 2684 | 0) >> 2] = $4; + HEAPF32[($14 + 2680 | 0) >> 2] = $5; + HEAPF32[($14 + 2676 | 0) >> 2] = $6; + HEAPF32[($14 + 2672 | 0) >> 2] = $7; + HEAPF32[($14 + 2668 | 0) >> 2] = $8; + HEAP32[($14 + 2664 | 0) >> 2] = $9; + HEAPF32[($14 + 2660 | 0) >> 2] = $10; + HEAP8[($14 + 2659 | 0) >> 0] = $11; + $16 = HEAP32[($14 + 2700 | 0) >> 2] | 0; + $19 = $14 + 1472 | 0; + $21 = $19 + 1184 | 0; + $22 = $19; + label$1 : while (1) { + $23 = $22; + btVector3__btVector3_28_29($23 | 0) | 0; + $25 = $23 + 16 | 0; + $22 = $25; + if (!(($25 | 0) == ($21 | 0) & 1 | 0)) { + continue label$1 + } + break label$1; + }; + $33 = $14 + 288 | 0; + $35 = $33 + 1184 | 0; + $36 = $33; + label$2 : while (1) { + $37 = $36; + btVector3__btVector3_28_29($37 | 0) | 0; + $39 = $37 + 16 | 0; + $36 = $39; + if (!(($39 | 0) == ($35 | 0) & 1 | 0)) { + continue label$2 + } + break label$2; + }; + HEAP32[($14 + 284 | 0) >> 2] = $14 + 1472 | 0; + HEAP32[($14 + 280 | 0) >> 2] = $14 + 288 | 0; + $51 = HEAP32[($14 + 2696 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20float_20const__29($14 + 244 | 0 | 0, HEAP32[($14 + 2692 | 0) >> 2] | 0 | 0, $14 + 2684 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($14 + 260 | 0 | 0, $51 | 0, $14 + 244 | 0 | 0); + $65 = HEAP32[($14 + 2696 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20float_20const__29($14 + 212 | 0 | 0, HEAP32[($14 + 2692 | 0) >> 2] | 0 | 0, $14 + 2684 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($14 + 228 | 0 | 0, $65 | 0, $14 + 212 | 0 | 0); + btVector3__btVector3_28_29($14 + 192 | 0 | 0) | 0; + HEAPF32[($14 + 188 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($14 + 2660 | 0) >> 2]) * Math_fround(.01745329238474369)); + HEAP32[($14 + 184 | 0) >> 2] = HEAP32[($14 + 2692 | 0) >> 2] | 0; + HEAP32[($14 + 180 | 0) >> 2] = HEAP32[($14 + 2688 | 0) >> 2] | 0; + btVector3__cross_28btVector3_20const__29_20const($14 + 164 | 0 | 0, HEAP32[($14 + 184 | 0) >> 2] | 0 | 0, HEAP32[($14 + 180 | 0) >> 2] | 0 | 0); + HEAP8[($14 + 163 | 0) >> 0] = 0; + HEAP8[($14 + 162 | 0) >> 0] = 0; + label$3 : { + if (!(Math_fround(HEAPF32[($14 + 2680 | 0) >> 2]) <= Math_fround(-1.5707963705062866) & 1 | 0)) { + break label$3 + } + HEAPF32[($14 + 2680 | 0) >> 2] = Math_fround(Math_fround(-1.5707963705062866) + Math_fround(HEAPF32[($14 + 188 | 0) >> 2])); + HEAP8[($14 + 163 | 0) >> 0] = 1; + } + label$4 : { + if (!(Math_fround(HEAPF32[($14 + 2676 | 0) >> 2]) >= Math_fround(1.5707963705062866) & 1 | 0)) { + break label$4 + } + HEAPF32[($14 + 2676 | 0) >> 2] = Math_fround(Math_fround(1.5707963705062866) - Math_fround(HEAPF32[($14 + 188 | 0) >> 2])); + HEAP8[($14 + 162 | 0) >> 0] = 1; + } + label$5 : { + if (!(Math_fround(HEAPF32[($14 + 2680 | 0) >> 2]) > Math_fround(HEAPF32[($14 + 2676 | 0) >> 2]) & 1 | 0)) { + break label$5 + } + HEAPF32[($14 + 2680 | 0) >> 2] = Math_fround(Math_fround(-1.5707963705062866) + Math_fround(HEAPF32[($14 + 188 | 0) >> 2])); + HEAPF32[($14 + 2676 | 0) >> 2] = Math_fround(Math_fround(1.5707963705062866) - Math_fround(HEAPF32[($14 + 188 | 0) >> 2])); + HEAP8[($14 + 162 | 0) >> 0] = 1; + HEAP8[($14 + 163 | 0) >> 0] = 1; + } + $129 = Math_fround(Math_fround(Math_fround(HEAPF32[($14 + 2676 | 0) >> 2]) - Math_fround(HEAPF32[($14 + 2680 | 0) >> 2])) / Math_fround(HEAPF32[($14 + 188 | 0) >> 2])); + label$6 : { + label$7 : { + if (!(Math_fround(Math_abs($129)) < Math_fround(2147483648.0))) { + break label$7 + } + $135 = ~~$129; + break label$6; + } + $135 = -2147483648; + } + HEAP32[($14 + 156 | 0) >> 2] = $135 + 1 | 0; + label$8 : { + if (!((HEAP32[($14 + 156 | 0) >> 2] | 0 | 0) < (2 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[($14 + 156 | 0) >> 2] = 2; + } + HEAPF32[($14 + 152 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($14 + 2676 | 0) >> 2]) - Math_fround(HEAPF32[($14 + 2680 | 0) >> 2])) / Math_fround((HEAP32[($14 + 156 | 0) >> 2] | 0) - 1 | 0 | 0)); + HEAP8[($14 + 151 | 0) >> 0] = 0; + label$9 : { + label$10 : { + if (!(Math_fround(HEAPF32[($14 + 2672 | 0) >> 2]) > Math_fround(HEAPF32[($14 + 2668 | 0) >> 2]) & 1 | 0)) { + break label$10 + } + HEAPF32[($14 + 2672 | 0) >> 2] = Math_fround(Math_fround(-3.1415927410125732) + Math_fround(HEAPF32[($14 + 188 | 0) >> 2])); + HEAPF32[($14 + 2668 | 0) >> 2] = Math_fround(3.1415927410125732); + HEAP8[($14 + 151 | 0) >> 0] = 1; + break label$9; + } + label$11 : { + label$12 : { + if (!(Math_fround(Math_fround(HEAPF32[($14 + 2668 | 0) >> 2]) - Math_fround(HEAPF32[($14 + 2672 | 0) >> 2])) >= Math_fround(6.2831854820251465) & 1 | 0)) { + break label$12 + } + HEAP8[($14 + 151 | 0) >> 0] = 1; + break label$11; + } + HEAP8[($14 + 151 | 0) >> 0] = 0; + } + } + $180 = Math_fround(Math_fround(Math_fround(HEAPF32[($14 + 2668 | 0) >> 2]) - Math_fround(HEAPF32[($14 + 2672 | 0) >> 2])) / Math_fround(HEAPF32[($14 + 188 | 0) >> 2])); + label$13 : { + label$14 : { + if (!(Math_fround(Math_abs($180)) < Math_fround(2147483648.0))) { + break label$14 + } + $186 = ~~$180; + break label$13; + } + $186 = -2147483648; + } + HEAP32[($14 + 144 | 0) >> 2] = $186 + 1 | 0; + label$15 : { + if (!((HEAP32[($14 + 144 | 0) >> 2] | 0 | 0) < (2 | 0) & 1 | 0)) { + break label$15 + } + HEAP32[($14 + 144 | 0) >> 2] = 2; + } + HEAPF32[($14 + 140 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($14 + 2668 | 0) >> 2]) - Math_fround(HEAPF32[($14 + 2672 | 0) >> 2])) / Math_fround((HEAP32[($14 + 144 | 0) >> 2] | 0) - 1 | 0 | 0)); + HEAP32[($14 + 136 | 0) >> 2] = 0; + label$16 : { + label$17 : while (1) { + if (!((HEAP32[($14 + 136 | 0) >> 2] | 0 | 0) < (HEAP32[($14 + 156 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$16 + } + HEAPF32[($14 + 132 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAP32[($14 + 136 | 0) >> 2] | 0 | 0) * Math_fround(HEAPF32[($14 + 152 | 0) >> 2])) + Math_fround(HEAPF32[($14 + 2680 | 0) >> 2])); + (wasm2js_i32$0 = $14, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[($14 + 2684 | 0) >> 2]) * Math_fround(btSin_28float_29(Math_fround(Math_fround(HEAPF32[($14 + 132 | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 128 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $14, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[($14 + 2684 | 0) >> 2]) * Math_fround(btCos_28float_29(Math_fround(Math_fround(HEAPF32[($14 + 132 | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 124 | 0) >> 2] = wasm2js_f32$0; + HEAP32[($14 + 120 | 0) >> 2] = 0; + label$18 : { + label$19 : while (1) { + if (!((HEAP32[($14 + 120 | 0) >> 2] | 0 | 0) < (HEAP32[($14 + 144 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$18 + } + HEAPF32[($14 + 116 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAP32[($14 + 120 | 0) >> 2] | 0 | 0) * Math_fround(HEAPF32[($14 + 140 | 0) >> 2])) + Math_fround(HEAPF32[($14 + 2672 | 0) >> 2])); + (wasm2js_i32$0 = $14, wasm2js_f32$0 = Math_fround(btSin_28float_29(Math_fround(Math_fround(HEAPF32[($14 + 116 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 112 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $14, wasm2js_f32$0 = Math_fround(btCos_28float_29(Math_fround(Math_fround(HEAPF32[($14 + 116 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 108 | 0) >> 2] = wasm2js_f32$0; + $247 = HEAP32[($14 + 2696 | 0) >> 2] | 0; + HEAPF32[($14 + 40 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($14 + 124 | 0) >> 2]) * Math_fround(HEAPF32[($14 + 108 | 0) >> 2])); + operator__28float_20const__2c_20btVector3_20const__29($14 + 44 | 0 | 0, $14 + 40 | 0 | 0, HEAP32[($14 + 180 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($14 + 60 | 0 | 0, $247 | 0, $14 + 44 | 0 | 0); + HEAPF32[($14 + 20 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($14 + 124 | 0) >> 2]) * Math_fround(HEAPF32[($14 + 112 | 0) >> 2])); + operator__28float_20const__2c_20btVector3_20const__29($14 + 24 | 0 | 0, $14 + 20 | 0 | 0, $14 + 164 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($14 + 76 | 0 | 0, $14 + 60 | 0 | 0, $14 + 24 | 0 | 0); + operator__28float_20const__2c_20btVector3_20const__29($14 + 4 | 0 | 0, $14 + 128 | 0 | 0, HEAP32[($14 + 184 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($14 + 92 | 0 | 0, $14 + 76 | 0 | 0, $14 + 4 | 0 | 0); + $305 = (HEAP32[($14 + 280 | 0) >> 2] | 0) + ((HEAP32[($14 + 120 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = $14; + i64toi32_i32$0 = HEAP32[($14 + 92 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($14 + 96 | 0) >> 2] | 0; + $1091 = i64toi32_i32$0; + i64toi32_i32$0 = $305; + HEAP32[i64toi32_i32$0 >> 2] = $1091; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $307 = 8; + i64toi32_i32$2 = ($14 + 92 | 0) + $307 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1104 = i64toi32_i32$1; + i64toi32_i32$1 = $305 + $307 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1104; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + label$20 : { + label$21 : { + if (!(HEAP32[($14 + 136 | 0) >> 2] | 0)) { + break label$21 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$16 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($16, (HEAP32[($14 + 284 | 0) >> 2] | 0) + ((HEAP32[($14 + 120 | 0) >> 2] | 0) << 4 | 0) | 0, (HEAP32[($14 + 280 | 0) >> 2] | 0) + ((HEAP32[($14 + 120 | 0) >> 2] | 0) << 4 | 0) | 0, HEAP32[($14 + 2664 | 0) >> 2] | 0); + break label$20; + } + label$22 : { + if (!((HEAPU8[($14 + 162 | 0) >> 0] | 0) & 1 | 0)) { + break label$22 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$16 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($16, $14 + 228 | 0, (HEAP32[($14 + 280 | 0) >> 2] | 0) + ((HEAP32[($14 + 120 | 0) >> 2] | 0) << 4 | 0) | 0, HEAP32[($14 + 2664 | 0) >> 2] | 0); + } + } + label$23 : { + label$24 : { + if (!(HEAP32[($14 + 120 | 0) >> 2] | 0)) { + break label$24 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$16 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($16, (HEAP32[($14 + 280 | 0) >> 2] | 0) + (((HEAP32[($14 + 120 | 0) >> 2] | 0) - 1 | 0) << 4 | 0) | 0, (HEAP32[($14 + 280 | 0) >> 2] | 0) + ((HEAP32[($14 + 120 | 0) >> 2] | 0) << 4 | 0) | 0, HEAP32[($14 + 2664 | 0) >> 2] | 0); + break label$23; + } + $361 = (HEAP32[($14 + 280 | 0) >> 2] | 0) + ((HEAP32[($14 + 120 | 0) >> 2] | 0) << 4 | 0) | 0; + $362 = 8; + i64toi32_i32$2 = $361 + $362 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1232 = i64toi32_i32$0; + i64toi32_i32$0 = ($14 + 192 | 0) + $362 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1232; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $361; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1236 = i64toi32_i32$1; + i64toi32_i32$1 = $14; + HEAP32[($14 + 192 | 0) >> 2] = $1236; + HEAP32[($14 + 196 | 0) >> 2] = i64toi32_i32$0; + } + label$25 : { + if (!((HEAP32[($14 + 136 | 0) >> 2] | 0 | 0) == ((HEAP32[($14 + 156 | 0) >> 2] | 0) - 1 | 0 | 0) & 1 | 0)) { + break label$25 + } + if (!((HEAPU8[($14 + 163 | 0) >> 0] | 0) & 1 | 0)) { + break label$25 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$16 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($16, $14 + 260 | 0, (HEAP32[($14 + 280 | 0) >> 2] | 0) + ((HEAP32[($14 + 120 | 0) >> 2] | 0) << 4 | 0) | 0, HEAP32[($14 + 2664 | 0) >> 2] | 0); + } + label$26 : { + if (!((HEAPU8[($14 + 2659 | 0) >> 0] | 0) & 1 | 0)) { + break label$26 + } + label$27 : { + label$28 : { + if (!((HEAPU8[($14 + 151 | 0) >> 0] | 0) & 1 | 0)) { + break label$28 + } + label$29 : { + if (!((HEAP32[($14 + 120 | 0) >> 2] | 0 | 0) == ((HEAP32[($14 + 144 | 0) >> 2] | 0) - 1 | 0 | 0) & 1 | 0)) { + break label$29 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$16 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($16, $14 + 192 | 0, (HEAP32[($14 + 280 | 0) >> 2] | 0) + ((HEAP32[($14 + 120 | 0) >> 2] | 0) << 4 | 0) | 0, HEAP32[($14 + 2664 | 0) >> 2] | 0); + } + break label$27; + } + label$30 : { + label$31 : { + if (!(HEAP32[($14 + 136 | 0) >> 2] | 0)) { + break label$31 + } + if (!((HEAP32[($14 + 136 | 0) >> 2] | 0 | 0) == ((HEAP32[($14 + 156 | 0) >> 2] | 0) - 1 | 0 | 0) & 1 | 0)) { + break label$30 + } + } + label$32 : { + if (!(HEAP32[($14 + 120 | 0) >> 2] | 0)) { + break label$32 + } + if (!((HEAP32[($14 + 120 | 0) >> 2] | 0 | 0) == ((HEAP32[($14 + 144 | 0) >> 2] | 0) - 1 | 0 | 0) & 1 | 0)) { + break label$30 + } + } + FUNCTION_TABLE[HEAP32[((HEAP32[$16 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($16, HEAP32[($14 + 2696 | 0) >> 2] | 0, (HEAP32[($14 + 280 | 0) >> 2] | 0) + ((HEAP32[($14 + 120 | 0) >> 2] | 0) << 4 | 0) | 0, HEAP32[($14 + 2664 | 0) >> 2] | 0); + } + } + } + HEAP32[($14 + 120 | 0) >> 2] = (HEAP32[($14 + 120 | 0) >> 2] | 0) + 1 | 0; + continue label$19; + }; + } + HEAP32[($14 + 276 | 0) >> 2] = HEAP32[($14 + 284 | 0) >> 2] | 0; + HEAP32[($14 + 284 | 0) >> 2] = HEAP32[($14 + 280 | 0) >> 2] | 0; + HEAP32[($14 + 280 | 0) >> 2] = HEAP32[($14 + 276 | 0) >> 2] | 0; + HEAP32[($14 + 136 | 0) >> 2] = (HEAP32[($14 + 136 | 0) >> 2] | 0) + 1 | 0; + continue label$17; + }; + } + __stack_pointer = $14 + 2704 | 0; + return; + } + + function btIDebugDraw__drawBox_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 400 | 0; + __stack_pointer = $6; + HEAP32[($6 + 396 | 0) >> 2] = $0; + HEAP32[($6 + 392 | 0) >> 2] = $1; + HEAP32[($6 + 388 | 0) >> 2] = $2; + HEAP32[($6 + 384 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 396 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 368 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 352 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($7, $6 + 368 | 0, $6 + 352 | 0, HEAP32[($6 + 384 | 0) >> 2] | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 336 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 320 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($7, $6 + 336 | 0, $6 + 320 | 0, HEAP32[($6 + 384 | 0) >> 2] | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 304 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 288 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($7, $6 + 304 | 0, $6 + 288 | 0, HEAP32[($6 + 384 | 0) >> 2] | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 272 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 256 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($7, $6 + 272 | 0, $6 + 256 | 0, HEAP32[($6 + 384 | 0) >> 2] | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 240 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 224 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($7, $6 + 240 | 0, $6 + 224 | 0, HEAP32[($6 + 384 | 0) >> 2] | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 208 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 192 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($7, $6 + 208 | 0, $6 + 192 | 0, HEAP32[($6 + 384 | 0) >> 2] | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 176 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 160 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($7, $6 + 176 | 0, $6 + 160 | 0, HEAP32[($6 + 384 | 0) >> 2] | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 144 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 128 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($7, $6 + 144 | 0, $6 + 128 | 0, HEAP32[($6 + 384 | 0) >> 2] | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 112 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 96 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($7, $6 + 112 | 0, $6 + 96 | 0, HEAP32[($6 + 384 | 0) >> 2] | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 80 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 64 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($7, $6 + 80 | 0, $6 + 64 | 0, HEAP32[($6 + 384 | 0) >> 2] | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 48 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 32 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($7, $6 + 48 | 0, $6 + 32 | 0, HEAP32[($6 + 384 | 0) >> 2] | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 16 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 392 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 388 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($7, $6 + 16 | 0, $6, HEAP32[($6 + 384 | 0) >> 2] | 0); + __stack_pointer = $6 + 400 | 0; + return; + } + + function btIDebugDraw__drawBox_28btVector3_20const__2c_20btVector3_20const__2c_20btTransform_20const__2c_20btVector3_20const__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0, $9 = 0, $29 = 0, $58 = 0, $78 = 0, $107 = 0, $127 = 0, $156 = 0, $176 = 0, $205 = 0, $225 = 0, $254 = 0, $274 = 0, $303 = 0, $323 = 0, $352 = 0, $372 = 0, $401 = 0, $421 = 0, $450 = 0, $470 = 0, $499 = 0, $519 = 0, $548 = 0, $568 = 0; + $7 = __stack_pointer - 800 | 0; + __stack_pointer = $7; + HEAP32[($7 + 796 | 0) >> 2] = $0; + HEAP32[($7 + 792 | 0) >> 2] = $1; + HEAP32[($7 + 788 | 0) >> 2] = $2; + HEAP32[($7 + 784 | 0) >> 2] = $3; + HEAP32[($7 + 780 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 796 | 0) >> 2] | 0; + $9 = HEAP32[($7 + 784 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 748 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($7 + 764 | 0 | 0, $9 | 0, $7 + 748 | 0 | 0); + $29 = HEAP32[($7 + 784 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 716 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($7 + 732 | 0 | 0, $29 | 0, $7 + 716 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($8, $7 + 764 | 0, $7 + 732 | 0, HEAP32[($7 + 780 | 0) >> 2] | 0); + $58 = HEAP32[($7 + 784 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 684 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($7 + 700 | 0 | 0, $58 | 0, $7 + 684 | 0 | 0); + $78 = HEAP32[($7 + 784 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 652 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($7 + 668 | 0 | 0, $78 | 0, $7 + 652 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($8, $7 + 700 | 0, $7 + 668 | 0, HEAP32[($7 + 780 | 0) >> 2] | 0); + $107 = HEAP32[($7 + 784 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 620 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($7 + 636 | 0 | 0, $107 | 0, $7 + 620 | 0 | 0); + $127 = HEAP32[($7 + 784 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 588 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($7 + 604 | 0 | 0, $127 | 0, $7 + 588 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($8, $7 + 636 | 0, $7 + 604 | 0, HEAP32[($7 + 780 | 0) >> 2] | 0); + $156 = HEAP32[($7 + 784 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 556 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($7 + 572 | 0 | 0, $156 | 0, $7 + 556 | 0 | 0); + $176 = HEAP32[($7 + 784 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 524 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($7 + 540 | 0 | 0, $176 | 0, $7 + 524 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($8, $7 + 572 | 0, $7 + 540 | 0, HEAP32[($7 + 780 | 0) >> 2] | 0); + $205 = HEAP32[($7 + 784 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 492 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($7 + 508 | 0 | 0, $205 | 0, $7 + 492 | 0 | 0); + $225 = HEAP32[($7 + 784 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 460 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($7 + 476 | 0 | 0, $225 | 0, $7 + 460 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($8, $7 + 508 | 0, $7 + 476 | 0, HEAP32[($7 + 780 | 0) >> 2] | 0); + $254 = HEAP32[($7 + 784 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 428 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($7 + 444 | 0 | 0, $254 | 0, $7 + 428 | 0 | 0); + $274 = HEAP32[($7 + 784 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 396 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($7 + 412 | 0 | 0, $274 | 0, $7 + 396 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($8, $7 + 444 | 0, $7 + 412 | 0, HEAP32[($7 + 780 | 0) >> 2] | 0); + $303 = HEAP32[($7 + 784 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 364 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($7 + 380 | 0 | 0, $303 | 0, $7 + 364 | 0 | 0); + $323 = HEAP32[($7 + 784 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 332 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($7 + 348 | 0 | 0, $323 | 0, $7 + 332 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($8, $7 + 380 | 0, $7 + 348 | 0, HEAP32[($7 + 780 | 0) >> 2] | 0); + $352 = HEAP32[($7 + 784 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 300 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($7 + 316 | 0 | 0, $352 | 0, $7 + 300 | 0 | 0); + $372 = HEAP32[($7 + 784 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 268 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($7 + 284 | 0 | 0, $372 | 0, $7 + 268 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($8, $7 + 316 | 0, $7 + 284 | 0, HEAP32[($7 + 780 | 0) >> 2] | 0); + $401 = HEAP32[($7 + 784 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 236 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($7 + 252 | 0 | 0, $401 | 0, $7 + 236 | 0 | 0); + $421 = HEAP32[($7 + 784 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 204 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($7 + 220 | 0 | 0, $421 | 0, $7 + 204 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($8, $7 + 252 | 0, $7 + 220 | 0, HEAP32[($7 + 780 | 0) >> 2] | 0); + $450 = HEAP32[($7 + 784 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 172 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($7 + 188 | 0 | 0, $450 | 0, $7 + 172 | 0 | 0); + $470 = HEAP32[($7 + 784 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 140 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($7 + 156 | 0 | 0, $470 | 0, $7 + 140 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($8, $7 + 188 | 0, $7 + 156 | 0, HEAP32[($7 + 780 | 0) >> 2] | 0); + $499 = HEAP32[($7 + 784 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 108 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($7 + 124 | 0 | 0, $499 | 0, $7 + 108 | 0 | 0); + $519 = HEAP32[($7 + 784 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 76 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($7 + 92 | 0 | 0, $519 | 0, $7 + 76 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($8, $7 + 124 | 0, $7 + 92 | 0, HEAP32[($7 + 780 | 0) >> 2] | 0); + $548 = HEAP32[($7 + 784 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 44 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($7 + 60 | 0 | 0, $548 | 0, $7 + 44 | 0 | 0); + $568 = HEAP32[($7 + 784 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 12 | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 792 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($7 + 788 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($7 + 28 | 0 | 0, $568 | 0, $7 + 12 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($8, $7 + 60 | 0, $7 + 28 | 0, HEAP32[($7 + 780 | 0) >> 2] | 0); + __stack_pointer = $7 + 800 | 0; + return; + } + + function btTransform__operator__28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $1; + HEAP32[($5 + 8 | 0) >> 2] = $2; + btTransform__operator_28_29_28btVector3_20const__29_20const($0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function btIDebugDraw__drawCapsule_28float_2c_20float_2c_20int_2c_20btTransform_20const__2c_20btVector3_20const__29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $9 = 0, $80 = 0, $82 = 0, $91 = 0, $92 = 0, $165 = 0, $167 = 0, $176 = 0, $177 = 0, $231 = 0, $232 = 0, $253 = Math_fround(0), $284 = Math_fround(0), $30 = Math_fround(0), $57 = Math_fround(0), $513 = 0, $526 = 0, $545 = 0, $549 = 0, $683 = 0, $696 = 0, $715 = 0, $719 = 0, $828 = 0, $832 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $8 = __stack_pointer - 480 | 0; + __stack_pointer = $8; + HEAP32[($8 + 476 | 0) >> 2] = $0; + HEAPF32[($8 + 472 | 0) >> 2] = $1; + HEAPF32[($8 + 468 | 0) >> 2] = $2; + HEAP32[($8 + 464 | 0) >> 2] = $3; + HEAP32[($8 + 460 | 0) >> 2] = $4; + HEAP32[($8 + 456 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 476 | 0) >> 2] | 0; + HEAP32[($8 + 452 | 0) >> 2] = 30; + HEAPF32[($8 + 432 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 428 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 424 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 436 | 0 | 0, $8 + 432 | 0 | 0, $8 + 428 | 0 | 0, $8 + 424 | 0 | 0) | 0; + $30 = Math_fround(-Math_fround(HEAPF32[($8 + 468 | 0) >> 2])); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($8 + 436 | 0 | 0) | 0) + ((HEAP32[($8 + 464 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $30), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAPF32[($8 + 404 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 400 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 396 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 408 | 0 | 0, $8 + 404 | 0 | 0, $8 + 400 | 0 | 0, $8 + 396 | 0 | 0) | 0; + $57 = Math_fround(HEAPF32[($8 + 468 | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($8 + 408 | 0 | 0) | 0) + ((HEAP32[($8 + 464 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $57), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + btTransform__btTransform_28btTransform_20const__29($8 + 332 | 0 | 0, HEAP32[($8 + 460 | 0) >> 2] | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($8 + 316 | 0 | 0, HEAP32[($8 + 460 | 0) >> 2] | 0 | 0, $8 + 436 | 0 | 0); + $80 = btTransform__getOrigin_28_29($8 + 332 | 0 | 0) | 0; + i64toi32_i32$2 = $8; + i64toi32_i32$0 = HEAP32[($8 + 316 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($8 + 320 | 0) >> 2] | 0; + $513 = i64toi32_i32$0; + i64toi32_i32$0 = $80; + HEAP32[i64toi32_i32$0 >> 2] = $513; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $82 = 8; + i64toi32_i32$2 = ($8 + 316 | 0) + $82 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $526 = i64toi32_i32$1; + i64toi32_i32$1 = $80 + $82 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $526; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $91 = btTransform__getOrigin_28_29($8 + 332 | 0 | 0) | 0; + $92 = 8; + i64toi32_i32$2 = $91 + $92 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $545 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 296 | 0) + $92 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $545; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $91; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $549 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 296 | 0) >> 2] = $549; + HEAP32[($8 + 300 | 0) >> 2] = i64toi32_i32$0; + btMatrix3x3__getColumn_28int_29_20const($8 + 280 | 0 | 0, btTransform__getBasis_28_29($8 + 332 | 0 | 0) | 0 | 0, ((HEAP32[($8 + 464 | 0) >> 2] | 0) + 1 | 0 | 0) % (3 | 0) | 0 | 0); + btMatrix3x3__getColumn_28int_29_20const($8 + 248 | 0 | 0, btTransform__getBasis_28_29($8 + 332 | 0 | 0) | 0 | 0, HEAP32[($8 + 464 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__29($8 + 264 | 0 | 0, $8 + 248 | 0 | 0); + HEAPF32[($8 + 244 | 0) >> 2] = Math_fround(-1.5707963705062866); + HEAPF32[($8 + 240 | 0) >> 2] = Math_fround(1.5707963705062866); + HEAPF32[($8 + 236 | 0) >> 2] = Math_fround(-1.5707963705062866); + HEAPF32[($8 + 232 | 0) >> 2] = Math_fround(1.5707963705062866); + FUNCTION_TABLE[HEAP32[((HEAP32[$9 >> 2] | 0) + 72 | 0) >> 2] | 0 | 0]($9, $8 + 296 | 0, $8 + 280 | 0, $8 + 264 | 0, Math_fround(HEAPF32[($8 + 472 | 0) >> 2]), Math_fround(HEAPF32[($8 + 244 | 0) >> 2]), Math_fround(HEAPF32[($8 + 240 | 0) >> 2]), Math_fround(HEAPF32[($8 + 236 | 0) >> 2]), Math_fround(HEAPF32[($8 + 232 | 0) >> 2]), HEAP32[($8 + 456 | 0) >> 2] | 0, Math_fround(HEAP32[($8 + 452 | 0) >> 2] | 0 | 0), 0 & 1 | 0); + btTransform__btTransform_28btTransform_20const__29($8 + 168 | 0 | 0, HEAP32[($8 + 460 | 0) >> 2] | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($8 + 152 | 0 | 0, HEAP32[($8 + 460 | 0) >> 2] | 0 | 0, $8 + 408 | 0 | 0); + $165 = btTransform__getOrigin_28_29($8 + 168 | 0 | 0) | 0; + i64toi32_i32$2 = $8; + i64toi32_i32$0 = HEAP32[($8 + 152 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($8 + 156 | 0) >> 2] | 0; + $683 = i64toi32_i32$0; + i64toi32_i32$0 = $165; + HEAP32[i64toi32_i32$0 >> 2] = $683; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $167 = 8; + i64toi32_i32$2 = ($8 + 152 | 0) + $167 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $696 = i64toi32_i32$1; + i64toi32_i32$1 = $165 + $167 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $696; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $176 = btTransform__getOrigin_28_29($8 + 168 | 0 | 0) | 0; + $177 = 8; + i64toi32_i32$2 = $176 + $177 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $715 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 136 | 0) + $177 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $715; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $176; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $719 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 136 | 0) >> 2] = $719; + HEAP32[($8 + 140 | 0) >> 2] = i64toi32_i32$0; + btMatrix3x3__getColumn_28int_29_20const($8 + 120 | 0 | 0, btTransform__getBasis_28_29($8 + 168 | 0 | 0) | 0 | 0, ((HEAP32[($8 + 464 | 0) >> 2] | 0) + 1 | 0 | 0) % (3 | 0) | 0 | 0); + btMatrix3x3__getColumn_28int_29_20const($8 + 104 | 0 | 0, btTransform__getBasis_28_29($8 + 168 | 0 | 0) | 0 | 0, HEAP32[($8 + 464 | 0) >> 2] | 0 | 0); + HEAPF32[($8 + 100 | 0) >> 2] = Math_fround(-1.5707963705062866); + HEAPF32[($8 + 96 | 0) >> 2] = Math_fround(1.5707963705062866); + HEAPF32[($8 + 92 | 0) >> 2] = Math_fround(-1.5707963705062866); + HEAPF32[($8 + 88 | 0) >> 2] = Math_fround(1.5707963705062866); + FUNCTION_TABLE[HEAP32[((HEAP32[$9 >> 2] | 0) + 72 | 0) >> 2] | 0 | 0]($9, $8 + 136 | 0, $8 + 120 | 0, $8 + 104 | 0, Math_fround(HEAPF32[($8 + 472 | 0) >> 2]), Math_fround(HEAPF32[($8 + 100 | 0) >> 2]), Math_fround(HEAPF32[($8 + 96 | 0) >> 2]), Math_fround(HEAPF32[($8 + 92 | 0) >> 2]), Math_fround(HEAPF32[($8 + 88 | 0) >> 2]), HEAP32[($8 + 456 | 0) >> 2] | 0, Math_fround(HEAP32[($8 + 452 | 0) >> 2] | 0 | 0), 0 & 1 | 0); + $231 = btTransform__getOrigin_28_29_20const(HEAP32[($8 + 460 | 0) >> 2] | 0 | 0) | 0; + $232 = 8; + i64toi32_i32$2 = $231 + $232 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $828 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 72 | 0) + $232 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $828; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $231; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $832 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 72 | 0) >> 2] = $832; + HEAP32[($8 + 76 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($8 + 68 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($8 + 68 | 0) >> 2] | 0 | 0) < (360 | 0) & 1 | 0)) { + break label$1 + } + $253 = Math_fround(Math_fround(btSin_28float_29(Math_fround(Math_fround(Math_fround(HEAP32[($8 + 68 | 0) >> 2] | 0 | 0) * Math_fround(.01745329238474369))))) * Math_fround(HEAPF32[($8 + 472 | 0) >> 2])); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($8 + 436 | 0 | 0) | 0) + ((((HEAP32[($8 + 464 | 0) >> 2] | 0) + 1 | 0 | 0) % (3 | 0) | 0) << 2 | 0) | 0, wasm2js_f32$0 = $253), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($8 + 408 | 0 | 0) | 0) + ((((HEAP32[($8 + 464 | 0) >> 2] | 0) + 1 | 0 | 0) % (3 | 0) | 0) << 2 | 0) | 0, wasm2js_f32$0 = $253), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $284 = Math_fround(Math_fround(btCos_28float_29(Math_fround(Math_fround(Math_fround(HEAP32[($8 + 68 | 0) >> 2] | 0 | 0) * Math_fround(.01745329238474369))))) * Math_fround(HEAPF32[($8 + 472 | 0) >> 2])); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($8 + 436 | 0 | 0) | 0) + ((((HEAP32[($8 + 464 | 0) >> 2] | 0) + 2 | 0 | 0) % (3 | 0) | 0) << 2 | 0) | 0, wasm2js_f32$0 = $284), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($8 + 408 | 0 | 0) | 0) + ((((HEAP32[($8 + 464 | 0) >> 2] | 0) + 2 | 0 | 0) % (3 | 0) | 0) << 2 | 0) | 0, wasm2js_f32$0 = $284), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 36 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 460 | 0) >> 2] | 0 | 0) | 0 | 0, $8 + 436 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 52 | 0 | 0, $8 + 72 | 0 | 0, $8 + 36 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 4 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 460 | 0) >> 2] | 0 | 0) | 0 | 0, $8 + 408 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 20 | 0 | 0, $8 + 72 | 0 | 0, $8 + 4 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$9 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($9, $8 + 52 | 0, $8 + 20 | 0, HEAP32[($8 + 456 | 0) >> 2] | 0); + HEAP32[($8 + 68 | 0) >> 2] = (HEAP32[($8 + 68 | 0) >> 2] | 0) + (HEAP32[($8 + 452 | 0) >> 2] | 0) | 0; + continue label$2; + }; + } + __stack_pointer = $8 + 480 | 0; + return; + } + + function btIDebugDraw__drawCylinder_28float_2c_20float_2c_20int_2c_20btTransform_20const__2c_20btVector3_20const__29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, $9 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $11 = 0, $12 = 0, $116 = Math_fround(0), $147 = Math_fround(0), $421 = 0, $425 = 0, $37 = Math_fround(0), $66 = Math_fround(0), $93 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $8 = __stack_pointer - 384 | 0; + __stack_pointer = $8; + HEAP32[($8 + 380 | 0) >> 2] = $0; + HEAPF32[($8 + 376 | 0) >> 2] = $1; + HEAPF32[($8 + 372 | 0) >> 2] = $2; + HEAP32[($8 + 368 | 0) >> 2] = $3; + HEAP32[($8 + 364 | 0) >> 2] = $4; + HEAP32[($8 + 360 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 380 | 0) >> 2] | 0; + $11 = btTransform__getOrigin_28_29_20const(HEAP32[($8 + 364 | 0) >> 2] | 0 | 0) | 0; + $12 = 8; + i64toi32_i32$2 = $11 + $12 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $421 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 344 | 0) + $12 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $421; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $11; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $425 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 344 | 0) >> 2] = $425; + HEAP32[($8 + 348 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($8 + 324 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 320 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 316 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 328 | 0 | 0, $8 + 324 | 0 | 0, $8 + 320 | 0 | 0, $8 + 316 | 0 | 0) | 0; + $37 = Math_fround(HEAPF32[($8 + 372 | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($8 + 328 | 0 | 0) | 0) + ((HEAP32[($8 + 368 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $37), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP32[($8 + 312 | 0) >> 2] = 30; + HEAPF32[($8 + 292 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 288 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 284 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 296 | 0 | 0, $8 + 292 | 0 | 0, $8 + 288 | 0 | 0, $8 + 284 | 0 | 0) | 0; + $66 = Math_fround(-Math_fround(HEAPF32[($8 + 372 | 0) >> 2])); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($8 + 296 | 0 | 0) | 0) + ((HEAP32[($8 + 368 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $66), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAPF32[($8 + 264 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 260 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 256 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 268 | 0 | 0, $8 + 264 | 0 | 0, $8 + 260 | 0 | 0, $8 + 256 | 0 | 0) | 0; + $93 = Math_fround(HEAPF32[($8 + 372 | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($8 + 268 | 0 | 0) | 0) + ((HEAP32[($8 + 368 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $93), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP32[($8 + 252 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($8 + 252 | 0) >> 2] | 0 | 0) < (360 | 0) & 1 | 0)) { + break label$1 + } + $116 = Math_fround(Math_fround(btSin_28float_29(Math_fround(Math_fround(Math_fround(HEAP32[($8 + 252 | 0) >> 2] | 0 | 0) * Math_fround(.01745329238474369))))) * Math_fround(HEAPF32[($8 + 376 | 0) >> 2])); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($8 + 296 | 0 | 0) | 0) + ((((HEAP32[($8 + 368 | 0) >> 2] | 0) + 1 | 0 | 0) % (3 | 0) | 0) << 2 | 0) | 0, wasm2js_f32$0 = $116), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($8 + 268 | 0 | 0) | 0) + ((((HEAP32[($8 + 368 | 0) >> 2] | 0) + 1 | 0 | 0) % (3 | 0) | 0) << 2 | 0) | 0, wasm2js_f32$0 = $116), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $147 = Math_fround(Math_fround(btCos_28float_29(Math_fround(Math_fround(Math_fround(HEAP32[($8 + 252 | 0) >> 2] | 0 | 0) * Math_fround(.01745329238474369))))) * Math_fround(HEAPF32[($8 + 376 | 0) >> 2])); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($8 + 296 | 0 | 0) | 0) + ((((HEAP32[($8 + 368 | 0) >> 2] | 0) + 2 | 0 | 0) % (3 | 0) | 0) << 2 | 0) | 0, wasm2js_f32$0 = $147), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($8 + 268 | 0 | 0) | 0) + ((((HEAP32[($8 + 368 | 0) >> 2] | 0) + 2 | 0 | 0) % (3 | 0) | 0) << 2 | 0) | 0, wasm2js_f32$0 = $147), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 220 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 364 | 0) >> 2] | 0 | 0) | 0 | 0, $8 + 296 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 236 | 0 | 0, $8 + 344 | 0 | 0, $8 + 220 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 188 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 364 | 0) >> 2] | 0 | 0) | 0 | 0, $8 + 268 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 204 | 0 | 0, $8 + 344 | 0 | 0, $8 + 188 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$9 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($9, $8 + 236 | 0, $8 + 204 | 0, HEAP32[($8 + 360 | 0) >> 2] | 0); + HEAP32[($8 + 252 | 0) >> 2] = (HEAP32[($8 + 252 | 0) >> 2] | 0) + (HEAP32[($8 + 312 | 0) >> 2] | 0) | 0; + continue label$2; + }; + } + HEAPF32[($8 + 168 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 164 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 160 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 172 | 0 | 0, $8 + 168 | 0 | 0, $8 + 164 | 0 | 0, $8 + 160 | 0 | 0) | 0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($8 + 172 | 0 | 0) | 0) + ((HEAP32[($8 + 368 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = Math_fround(1.0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAPF32[($8 + 140 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 136 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 132 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 144 | 0 | 0, $8 + 140 | 0 | 0, $8 + 136 | 0 | 0, $8 + 132 | 0 | 0) | 0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($8 + 144 | 0 | 0) | 0) + ((((HEAP32[($8 + 368 | 0) >> 2] | 0) + 1 | 0 | 0) % (3 | 0) | 0) << 2 | 0) | 0, wasm2js_f32$0 = Math_fround(1.0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 100 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 364 | 0) >> 2] | 0 | 0) | 0 | 0, $8 + 328 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 116 | 0 | 0, $8 + 344 | 0 | 0, $8 + 100 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 84 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 364 | 0) >> 2] | 0 | 0) | 0 | 0, $8 + 172 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 68 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 364 | 0) >> 2] | 0 | 0) | 0 | 0, $8 + 144 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$9 >> 2] | 0) + 68 | 0) >> 2] | 0 | 0]($9, $8 + 116 | 0, $8 + 84 | 0, $8 + 68 | 0, Math_fround(HEAPF32[($8 + 376 | 0) >> 2]), Math_fround(HEAPF32[($8 + 376 | 0) >> 2]), Math_fround(0 | 0), Math_fround(6.2831854820251465), HEAP32[($8 + 360 | 0) >> 2] | 0, 0 & 1 | 0, Math_fround(10.0)); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 36 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 364 | 0) >> 2] | 0 | 0) | 0 | 0, $8 + 328 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 52 | 0 | 0, $8 + 344 | 0 | 0, $8 + 36 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 20 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 364 | 0) >> 2] | 0 | 0) | 0 | 0, $8 + 172 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 4 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 364 | 0) >> 2] | 0 | 0) | 0 | 0, $8 + 144 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$9 >> 2] | 0) + 68 | 0) >> 2] | 0 | 0]($9, $8 + 52 | 0, $8 + 20 | 0, $8 + 4 | 0, Math_fround(HEAPF32[($8 + 376 | 0) >> 2]), Math_fround(HEAPF32[($8 + 376 | 0) >> 2]), Math_fround(0 | 0), Math_fround(6.2831854820251465), HEAP32[($8 + 360 | 0) >> 2] | 0, 0 & 1 | 0, Math_fround(10.0)); + __stack_pointer = $8 + 384 | 0; + return; + } + + function btIDebugDraw__drawCone_28float_2c_20float_2c_20int_2c_20btTransform_20const__2c_20btVector3_20const__29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, $9 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $12 = 0, $13 = 0, $611 = 0, $615 = 0, $41 = Math_fround(0), $68 = Math_fround(0), $99 = Math_fround(0), $131 = Math_fround(0), $154 = Math_fround(0), $173 = Math_fround(0), $250 = 0, $308 = 0, $366 = 0, $424 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $8 = __stack_pointer - 736 | 0; + __stack_pointer = $8; + HEAP32[($8 + 732 | 0) >> 2] = $0; + HEAPF32[($8 + 728 | 0) >> 2] = $1; + HEAPF32[($8 + 724 | 0) >> 2] = $2; + HEAP32[($8 + 720 | 0) >> 2] = $3; + HEAP32[($8 + 716 | 0) >> 2] = $4; + HEAP32[($8 + 712 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 732 | 0) >> 2] | 0; + HEAP32[($8 + 708 | 0) >> 2] = 30; + $12 = btTransform__getOrigin_28_29_20const(HEAP32[($8 + 716 | 0) >> 2] | 0 | 0) | 0; + $13 = 8; + i64toi32_i32$2 = $12 + $13 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $611 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 688 | 0) + $13 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $611; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $12; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $615 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 688 | 0) >> 2] = $615; + HEAP32[($8 + 692 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($8 + 668 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 664 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 660 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 672 | 0 | 0, $8 + 668 | 0 | 0, $8 + 664 | 0 | 0, $8 + 660 | 0 | 0) | 0; + HEAPF32[($8 + 656 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($8 + 724 | 0) >> 2]) * Math_fround(.5)); + $41 = Math_fround(HEAPF32[($8 + 656 | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($8 + 672 | 0 | 0) | 0) + ((HEAP32[($8 + 720 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $41), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAPF32[($8 + 636 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 632 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 628 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 640 | 0 | 0, $8 + 636 | 0 | 0, $8 + 632 | 0 | 0, $8 + 628 | 0 | 0) | 0; + $68 = Math_fround(HEAPF32[($8 + 728 | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($8 + 640 | 0 | 0) | 0) + ((((HEAP32[($8 + 720 | 0) >> 2] | 0) + 1 | 0 | 0) % (3 | 0) | 0) << 2 | 0) | 0, wasm2js_f32$0 = $68), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAPF32[($8 + 608 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 604 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 600 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 612 | 0 | 0, $8 + 608 | 0 | 0, $8 + 604 | 0 | 0, $8 + 600 | 0 | 0) | 0; + $99 = Math_fround(HEAPF32[($8 + 728 | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($8 + 612 | 0 | 0) | 0) + ((((HEAP32[($8 + 720 | 0) >> 2] | 0) + 2 | 0 | 0) % (3 | 0) | 0) << 2 | 0) | 0, wasm2js_f32$0 = $99), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAPF32[($8 + 580 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 576 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 572 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 584 | 0 | 0, $8 + 580 | 0 | 0, $8 + 576 | 0 | 0, $8 + 572 | 0 | 0) | 0; + $131 = Math_fround(-Math_fround(HEAPF32[($8 + 656 | 0) >> 2])); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($8 + 584 | 0 | 0) | 0) + ((HEAP32[($8 + 720 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $131), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP32[($8 + 568 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($8 + 568 | 0) >> 2] | 0 | 0) < (360 | 0) & 1 | 0)) { + break label$1 + } + $154 = Math_fround(Math_fround(btSin_28float_29(Math_fround(Math_fround(Math_fround(HEAP32[($8 + 568 | 0) >> 2] | 0 | 0) * Math_fround(.01745329238474369))))) * Math_fround(HEAPF32[($8 + 728 | 0) >> 2])); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($8 + 584 | 0 | 0) | 0) + ((((HEAP32[($8 + 720 | 0) >> 2] | 0) + 1 | 0 | 0) % (3 | 0) | 0) << 2 | 0) | 0, wasm2js_f32$0 = $154), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $173 = Math_fround(Math_fround(btCos_28float_29(Math_fround(Math_fround(Math_fround(HEAP32[($8 + 568 | 0) >> 2] | 0 | 0) * Math_fround(.01745329238474369))))) * Math_fround(HEAPF32[($8 + 728 | 0) >> 2])); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($8 + 584 | 0 | 0) | 0) + ((((HEAP32[($8 + 720 | 0) >> 2] | 0) + 2 | 0 | 0) % (3 | 0) | 0) << 2 | 0) | 0, wasm2js_f32$0 = $173), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 536 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 716 | 0) >> 2] | 0 | 0) | 0 | 0, $8 + 672 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 552 | 0 | 0, $8 + 688 | 0 | 0, $8 + 536 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 504 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 716 | 0) >> 2] | 0 | 0) | 0 | 0, $8 + 584 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 520 | 0 | 0, $8 + 688 | 0 | 0, $8 + 504 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$9 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($9, $8 + 552 | 0, $8 + 520 | 0, HEAP32[($8 + 712 | 0) >> 2] | 0); + HEAP32[($8 + 568 | 0) >> 2] = (HEAP32[($8 + 568 | 0) >> 2] | 0) + (HEAP32[($8 + 708 | 0) >> 2] | 0) | 0; + continue label$2; + }; + } + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 472 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 716 | 0) >> 2] | 0 | 0) | 0 | 0, $8 + 672 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 488 | 0 | 0, $8 + 688 | 0 | 0, $8 + 472 | 0 | 0); + $250 = btTransform__getBasis_28_29_20const(HEAP32[($8 + 716 | 0) >> 2] | 0 | 0) | 0; + operator__28btVector3_20const__29($8 + 408 | 0 | 0, $8 + 672 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 424 | 0 | 0, $8 + 408 | 0 | 0, $8 + 640 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 440 | 0 | 0, $250 | 0, $8 + 424 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 456 | 0 | 0, $8 + 688 | 0 | 0, $8 + 440 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$9 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($9, $8 + 488 | 0, $8 + 456 | 0, HEAP32[($8 + 712 | 0) >> 2] | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 376 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 716 | 0) >> 2] | 0 | 0) | 0 | 0, $8 + 672 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 392 | 0 | 0, $8 + 688 | 0 | 0, $8 + 376 | 0 | 0); + $308 = btTransform__getBasis_28_29_20const(HEAP32[($8 + 716 | 0) >> 2] | 0 | 0) | 0; + operator__28btVector3_20const__29($8 + 312 | 0 | 0, $8 + 672 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 328 | 0 | 0, $8 + 312 | 0 | 0, $8 + 640 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 344 | 0 | 0, $308 | 0, $8 + 328 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 360 | 0 | 0, $8 + 688 | 0 | 0, $8 + 344 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$9 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($9, $8 + 392 | 0, $8 + 360 | 0, HEAP32[($8 + 712 | 0) >> 2] | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 280 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 716 | 0) >> 2] | 0 | 0) | 0 | 0, $8 + 672 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 296 | 0 | 0, $8 + 688 | 0 | 0, $8 + 280 | 0 | 0); + $366 = btTransform__getBasis_28_29_20const(HEAP32[($8 + 716 | 0) >> 2] | 0 | 0) | 0; + operator__28btVector3_20const__29($8 + 216 | 0 | 0, $8 + 672 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 232 | 0 | 0, $8 + 216 | 0 | 0, $8 + 612 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 248 | 0 | 0, $366 | 0, $8 + 232 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 264 | 0 | 0, $8 + 688 | 0 | 0, $8 + 248 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$9 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($9, $8 + 296 | 0, $8 + 264 | 0, HEAP32[($8 + 712 | 0) >> 2] | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 184 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 716 | 0) >> 2] | 0 | 0) | 0 | 0, $8 + 672 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 200 | 0 | 0, $8 + 688 | 0 | 0, $8 + 184 | 0 | 0); + $424 = btTransform__getBasis_28_29_20const(HEAP32[($8 + 716 | 0) >> 2] | 0 | 0) | 0; + operator__28btVector3_20const__29($8 + 120 | 0 | 0, $8 + 672 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 136 | 0 | 0, $8 + 120 | 0 | 0, $8 + 612 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 152 | 0 | 0, $424 | 0, $8 + 136 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 168 | 0 | 0, $8 + 688 | 0 | 0, $8 + 152 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$9 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($9, $8 + 200 | 0, $8 + 168 | 0, HEAP32[($8 + 712 | 0) >> 2] | 0); + HEAPF32[($8 + 100 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 96 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 92 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 104 | 0 | 0, $8 + 100 | 0 | 0, $8 + 96 | 0 | 0, $8 + 92 | 0 | 0) | 0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($8 + 104 | 0 | 0) | 0) + ((HEAP32[($8 + 720 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = Math_fround(1.0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAPF32[($8 + 72 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 68 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 64 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 76 | 0 | 0, $8 + 72 | 0 | 0, $8 + 68 | 0 | 0, $8 + 64 | 0 | 0) | 0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($8 + 76 | 0 | 0) | 0) + ((((HEAP32[($8 + 720 | 0) >> 2] | 0) + 1 | 0 | 0) % (3 | 0) | 0) << 2 | 0) | 0, wasm2js_f32$0 = Math_fround(1.0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 32 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 716 | 0) >> 2] | 0 | 0) | 0 | 0, $8 + 672 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 48 | 0 | 0, $8 + 688 | 0 | 0, $8 + 32 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 16 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 716 | 0) >> 2] | 0 | 0) | 0 | 0, $8 + 104 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 716 | 0) >> 2] | 0 | 0) | 0 | 0, $8 + 76 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$9 >> 2] | 0) + 68 | 0) >> 2] | 0 | 0]($9, $8 + 48 | 0, $8 + 16 | 0, $8, Math_fround(HEAPF32[($8 + 728 | 0) >> 2]), Math_fround(HEAPF32[($8 + 728 | 0) >> 2]), Math_fround(0 | 0), Math_fround(6.2831854820251465), HEAP32[($8 + 712 | 0) >> 2] | 0, 0 & 1 | 0, Math_fround(10.0)); + __stack_pointer = $8 + 736 | 0; + return; + } + + function btIDebugDraw__drawPlane_28btVector3_20const__2c_20float_2c_20btTransform_20const__2c_20btVector3_20const__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0; + $7 = __stack_pointer - 272 | 0; + __stack_pointer = $7; + HEAP32[($7 + 268 | 0) >> 2] = $0; + HEAP32[($7 + 264 | 0) >> 2] = $1; + HEAPF32[($7 + 260 | 0) >> 2] = $2; + HEAP32[($7 + 256 | 0) >> 2] = $3; + HEAP32[($7 + 252 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 268 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20float_20const__29($7 + 236 | 0 | 0, HEAP32[($7 + 264 | 0) >> 2] | 0 | 0, $7 + 260 | 0 | 0); + btVector3__btVector3_28_29($7 + 220 | 0 | 0) | 0; + btVector3__btVector3_28_29($7 + 204 | 0 | 0) | 0; + void_20btPlaneSpace1_btVector3__28btVector3_20const__2c_20btVector3__2c_20btVector3__29(HEAP32[($7 + 264 | 0) >> 2] | 0 | 0, $7 + 220 | 0 | 0, $7 + 204 | 0 | 0); + HEAPF32[($7 + 200 | 0) >> 2] = Math_fround(100.0); + operator__28btVector3_20const__2c_20float_20const__29($7 + 168 | 0 | 0, $7 + 220 | 0 | 0, $7 + 200 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($7 + 184 | 0 | 0, $7 + 236 | 0 | 0, $7 + 168 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($7 + 136 | 0 | 0, $7 + 220 | 0 | 0, $7 + 200 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($7 + 152 | 0 | 0, $7 + 236 | 0 | 0, $7 + 136 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($7 + 104 | 0 | 0, $7 + 204 | 0 | 0, $7 + 200 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($7 + 120 | 0 | 0, $7 + 236 | 0 | 0, $7 + 104 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($7 + 72 | 0 | 0, $7 + 204 | 0 | 0, $7 + 200 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($7 + 88 | 0 | 0, $7 + 236 | 0 | 0, $7 + 72 | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($7 + 56 | 0 | 0, HEAP32[($7 + 256 | 0) >> 2] | 0 | 0, $7 + 184 | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($7 + 40 | 0 | 0, HEAP32[($7 + 256 | 0) >> 2] | 0 | 0, $7 + 152 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($8, $7 + 56 | 0, $7 + 40 | 0, HEAP32[($7 + 252 | 0) >> 2] | 0); + btTransform__operator__28btVector3_20const__29_20const($7 + 24 | 0 | 0, HEAP32[($7 + 256 | 0) >> 2] | 0 | 0, $7 + 120 | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($7 + 8 | 0 | 0, HEAP32[($7 + 256 | 0) >> 2] | 0 | 0, $7 + 88 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($8, $7 + 24 | 0, $7 + 8 | 0, HEAP32[($7 + 252 | 0) >> 2] | 0); + __stack_pointer = $7 + 272 | 0; + return; + } + + function void_20btPlaneSpace1_btVector3__28btVector3_20const__2c_20btVector3__2c_20btVector3__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $42 = Math_fround(0), $49 = Math_fround(0), $54 = Math_fround(0), $64 = Math_fround(0), $73 = Math_fround(0), $100 = Math_fround(0), $107 = Math_fround(0), $121 = Math_fround(0), $130 = Math_fround(0), $135 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + label$1 : { + label$2 : { + if (!(Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2])))) > Math_fround(.7071067690849304) & 1 | 0)) { + break label$2 + } + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2])))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(1.0) / Math_fround(btSqrt_28float_29(Math_fround(Math_fround(HEAPF32[($5 + 16 | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $42 = Math_fround(Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2])) * Math_fround(HEAPF32[($5 + 12 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $42), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $49 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 12 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $49), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + $54 = Math_fround(Math_fround(HEAPF32[($5 + 16 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 12 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $54), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $64 = Math_fround(Math_fround(-Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2])) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $64), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $73 = Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $73), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + break label$1; + } + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2])))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(1.0) / Math_fround(btSqrt_28float_29(Math_fround(Math_fround(HEAPF32[($5 + 8 | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $100 = Math_fround(Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2])) * Math_fround(HEAPF32[($5 + 4 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $100), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $107 = Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($5 + 4 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $107), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + $121 = Math_fround(Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2])) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $121), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $130 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__operator_20float__28_29(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $130), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $135 = Math_fround(Math_fround(HEAPF32[($5 + 8 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 4 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $135), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + } + __stack_pointer = $5 + 32 | 0; + return; + } + + function btDebugDrawWrapper__clearLines_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + void_20emscripten__wrapper_btDebugDraw___call_void__28char_20const__29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0, GOT_data_internal___memory_base + 70055 | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function void_20emscripten__wrapper_btDebugDraw___call_void__28char_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + void_20emscripten__val__call_void__28char_20const__29_20const((HEAP32[($4 + 12 | 0) >> 2] | 0) + 140 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btDebugDrawWrapper__flushLines_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + void_20emscripten__wrapper_btDebugDraw___call_void__28char_20const__29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0, GOT_data_internal___memory_base + 70066 | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btDebugDrawWrapper__onDebugDrawLine_28int_2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + void_20emscripten__wrapper_btDebugDraw___call_void_2c_20int_20const__2c_20int_20const__2c_20int___28char_20const__2c_20int_20const__2c_20int_20const__2c_20int__29_20const(HEAP32[($6 + 12 | 0) >> 2] | 0 | 0, GOT_data_internal___memory_base + 81794 | 0 | 0, $6 + 8 | 0 | 0, $6 + 4 | 0 | 0, $6 | 0); + __stack_pointer = $6 + 16 | 0; + return; + } + + function void_20emscripten__wrapper_btDebugDraw___call_void_2c_20int_20const__2c_20int_20const__2c_20int___28char_20const__2c_20int_20const__2c_20int_20const__2c_20int__29_20const($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + void_20emscripten__val__call_void_2c_20int_20const__2c_20int_20const__2c_20int___28char_20const__2c_20int_20const__2c_20int_20const__2c_20int__29_20const((HEAP32[($7 + 28 | 0) >> 2] | 0) + 140 | 0 | 0, HEAP32[($7 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $7 + 32 | 0; + return; + } + + function btIDebugDraw__btIDebugDraw_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = GOT_data_internal_vtable_20for_20btIDebugDraw + 8 | 0; + return $4 | 0; + } + + function btIDebugDraw__DefaultColors__DefaultColors_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 112 | 0; + __stack_pointer = $3; + HEAP32[($3 + 108 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 108 | 0) >> 2] | 0; + HEAPF32[($3 + 104 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($3 + 100 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($3 + 96 | 0) >> 2] = Math_fround(1.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 | 0, $3 + 104 | 0 | 0, $3 + 100 | 0 | 0, $3 + 96 | 0 | 0) | 0; + HEAPF32[($3 + 92 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 88 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($3 + 84 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 16 | 0 | 0, $3 + 92 | 0 | 0, $3 + 88 | 0 | 0, $3 + 84 | 0 | 0) | 0; + HEAPF32[($3 + 80 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 76 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($3 + 72 | 0) >> 2] = Math_fround(1.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 32 | 0 | 0, $3 + 80 | 0 | 0, $3 + 76 | 0 | 0, $3 + 72 | 0 | 0) | 0; + HEAPF32[($3 + 68 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($3 + 64 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 60 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 48 | 0 | 0, $3 + 68 | 0 | 0, $3 + 64 | 0 | 0, $3 + 60 | 0 | 0) | 0; + HEAPF32[($3 + 56 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($3 + 52 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($3 + 48 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 64 | 0 | 0, $3 + 56 | 0 | 0, $3 + 52 | 0 | 0, $3 + 48 | 0 | 0) | 0; + HEAPF32[($3 + 44 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($3 + 40 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 36 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 80 | 0 | 0, $3 + 44 | 0 | 0, $3 + 40 | 0 | 0, $3 + 36 | 0 | 0) | 0; + HEAPF32[($3 + 32 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($3 + 28 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($3 + 24 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 96 | 0 | 0, $3 + 32 | 0 | 0, $3 + 28 | 0 | 0, $3 + 24 | 0 | 0) | 0; + HEAPF32[($3 + 20 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 16 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 12 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 112 | 0 | 0, $3 + 20 | 0 | 0, $3 + 16 | 0 | 0, $3 + 12 | 0 | 0) | 0; + __stack_pointer = $3 + 112 | 0; + return $4 | 0; + } + + function btDebugDraw___btDebugDraw_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btIDebugDraw___btIDebugDraw_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function emscripten__wrapper_btDebugDraw____wrapper_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btIDebugDraw__clearLines_28_29($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return; + } + + function btIDebugDraw__flushLines_28_29($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return; + } + + function btIDebugDraw___btIDebugDraw_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btDebugDraw___btDebugDraw_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btIDebugDraw___btIDebugDraw_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btIDebugDraw__getDefaultColors_28_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $1; + btIDebugDraw__DefaultColors__DefaultColors_28_29($0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btIDebugDraw__setDefaultColors_28btIDebugDraw__DefaultColors_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return; + } + + function void_20emscripten__val__call_void__28char_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + emscripten__internal__MethodCaller_void___call_28emscripten___EM_VAL__2c_20char_20const__29(HEAP32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function emscripten__internal__MethodCaller_void___call_28emscripten___EM_VAL__2c_20char_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = emscripten__internal__Signature_void___get_method_caller_28_29() | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + emscripten__internal__WireTypePack____WireTypePack_28_29($4 + 8 | 0 | 0) | 0; + _emval_call_void_method(HEAP32[($4 + 20 | 0) >> 2] | 0 | 0, HEAP32[($4 + 28 | 0) >> 2] | 0 | 0, HEAP32[($4 + 24 | 0) >> 2] | 0 | 0, emscripten__internal__WireTypePack____operator_20void_20const__28_29_20const($4 + 8 | 0 | 0) | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function emscripten__internal__Signature_void___get_method_caller_28_29() { + var $2 = 0, $26 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $2 = __stack_pointer - 16 | 0; + __stack_pointer = $2; + label$1 : { + if (!((((HEAPU8[GOT_data_internal_guard_20variable_20for_20emscripten__internal__Signature_void___get_method_caller_28_29__mc >> 0] | 0) & 1 | 0) & 255 | 0 | 0) == (0 & 255 | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = GOT_data_internal_emscripten__internal__Signature_void___get_method_caller_28_29__mc, wasm2js_i32$1 = _emval_get_method_caller(emscripten__internal__WithPolicies____ArgTypeList_void___getCount_28_29_20const($2 + 15 | 0 | 0) | 0 | 0, emscripten__internal__WithPolicies____ArgTypeList_void___getTypes_28_29_20const($2 + 15 | 0 | 0) | 0 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP8[GOT_data_internal_guard_20variable_20for_20emscripten__internal__Signature_void___get_method_caller_28_29__mc >> 0] = 1; + } + $26 = HEAP32[GOT_data_internal_emscripten__internal__Signature_void___get_method_caller_28_29__mc >> 2] | 0; + __stack_pointer = $2 + 16 | 0; + return $26 | 0; + } + + function emscripten__internal__WireTypePack____WireTypePack_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = std____2__array_emscripten__internal__GenericWireType_2c_200ul___data_5babi_v160004_5d_28_29($4 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + emscripten__internal__writeGenericWireTypes_28emscripten__internal__GenericWireType___29($3 + 8 | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function emscripten__internal__WireTypePack____operator_20void_20const__28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = std____2__array_emscripten__internal__GenericWireType_2c_200ul___data_5babi_v160004_5d_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $5 | 0; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 1 | 0; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function std____2__array_emscripten__internal__GenericWireType_2c_200ul___data_5babi_v160004_5d_28_29($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 0 | 0; + } + + function emscripten__internal__writeGenericWireTypes_28emscripten__internal__GenericWireType___29($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return; + } + + function std____2__array_emscripten__internal__GenericWireType_2c_200ul___data_5babi_v160004_5d_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 0 | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void____get_28_29__types | 0; + } + + function void_20emscripten__val__call_void_2c_20int_20const__2c_20int_20const__2c_20int___28char_20const__2c_20int_20const__2c_20int_20const__2c_20int__29_20const($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + emscripten__internal__MethodCaller_void_2c_20int_20const__2c_20int_20const__2c_20int____call_28emscripten___EM_VAL__2c_20char_20const__2c_20int_20const__2c_20int_20const__2c_20int__29(HEAP32[(HEAP32[($7 + 28 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[($7 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $7 + 32 | 0; + return; + } + + function emscripten__internal__MethodCaller_void_2c_20int_20const__2c_20int_20const__2c_20int____call_28emscripten___EM_VAL__2c_20char_20const__2c_20int_20const__2c_20int_20const__2c_20int__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $7 = __stack_pointer - 48 | 0; + __stack_pointer = $7; + HEAP32[($7 + 44 | 0) >> 2] = $0; + HEAP32[($7 + 40 | 0) >> 2] = $1; + HEAP32[($7 + 36 | 0) >> 2] = $2; + HEAP32[($7 + 32 | 0) >> 2] = $3; + HEAP32[($7 + 28 | 0) >> 2] = $4; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = emscripten__internal__Signature_void_2c_20int_20const__2c_20int_20const__2c_20int____get_method_caller_28_29() | 0), HEAP32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_i32$1; + emscripten__internal__WireTypePack_int_20const__2c_20int_20const__2c_20int____WireTypePack_28int_20const__2c_20int_20const__2c_20int__29($7 | 0, HEAP32[($7 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7 + 28 | 0) >> 2] | 0 | 0) | 0; + _emval_call_void_method(HEAP32[($7 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7 + 44 | 0) >> 2] | 0 | 0, HEAP32[($7 + 40 | 0) >> 2] | 0 | 0, emscripten__internal__WireTypePack_int_20const__2c_20int_20const__2c_20int____operator_20void_20const__28_29_20const($7 | 0) | 0 | 0); + __stack_pointer = $7 + 48 | 0; + return; + } + + function emscripten__internal__Signature_void_2c_20int_20const__2c_20int_20const__2c_20int____get_method_caller_28_29() { + var $2 = 0, $26 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $2 = __stack_pointer - 16 | 0; + __stack_pointer = $2; + label$1 : { + if (!((((HEAPU8[GOT_data_internal_guard_20variable_20for_20emscripten__internal__Signature_void_2c_20int_20const__2c_20int_20const__2c_20int____get_method_caller_28_29__mc >> 0] | 0) & 1 | 0) & 255 | 0 | 0) == (0 & 255 | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = GOT_data_internal_emscripten__internal__Signature_void_2c_20int_20const__2c_20int_20const__2c_20int____get_method_caller_28_29__mc, wasm2js_i32$1 = _emval_get_method_caller(emscripten__internal__WithPolicies____ArgTypeList_void_2c_20int_20const__2c_20int_20const__2c_20int____getCount_28_29_20const($2 + 15 | 0 | 0) | 0 | 0, emscripten__internal__WithPolicies____ArgTypeList_void_2c_20int_20const__2c_20int_20const__2c_20int____getTypes_28_29_20const($2 + 15 | 0 | 0) | 0 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP8[GOT_data_internal_guard_20variable_20for_20emscripten__internal__Signature_void_2c_20int_20const__2c_20int_20const__2c_20int____get_method_caller_28_29__mc >> 0] = 1; + } + $26 = HEAP32[GOT_data_internal_emscripten__internal__Signature_void_2c_20int_20const__2c_20int_20const__2c_20int____get_method_caller_28_29__mc >> 2] | 0; + __stack_pointer = $2 + 16 | 0; + return $26 | 0; + } + + function emscripten__internal__WireTypePack_int_20const__2c_20int_20const__2c_20int____WireTypePack_28int_20const__2c_20int_20const__2c_20int__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $9 = 0, $10 = 0, $11 = 0, $19 = 0, $20 = 0, $25 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 64 | 0; + __stack_pointer = $6; + HEAP32[($6 + 24 | 0) >> 2] = $0; + HEAP32[($6 + 20 | 0) >> 2] = $1; + HEAP32[($6 + 16 | 0) >> 2] = $2; + HEAP32[($6 + 12 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 24 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = std____2__array_emscripten__internal__GenericWireType_2c_203ul___data_5babi_v160004_5d_28_29($7 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + $9 = HEAP32[($6 + 20 | 0) >> 2] | 0; + $10 = HEAP32[($6 + 16 | 0) >> 2] | 0; + $11 = HEAP32[($6 + 12 | 0) >> 2] | 0; + HEAP32[($6 + 40 | 0) >> 2] = $6 + 8 | 0; + HEAP32[($6 + 36 | 0) >> 2] = $9; + HEAP32[($6 + 32 | 0) >> 2] = $10; + HEAP32[($6 + 28 | 0) >> 2] = $11; + void_20emscripten__internal__writeGenericWireType_int__28emscripten__internal__GenericWireType___2c_20int_29(HEAP32[($6 + 40 | 0) >> 2] | 0 | 0, emscripten__internal__BindingType_int_2c_20void___toWireType_28int_20const__29(HEAP32[($6 + 36 | 0) >> 2] | 0 | 0) | 0 | 0); + $19 = HEAP32[($6 + 32 | 0) >> 2] | 0; + $20 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 52 | 0) >> 2] = HEAP32[($6 + 40 | 0) >> 2] | 0; + HEAP32[($6 + 48 | 0) >> 2] = $19; + HEAP32[($6 + 44 | 0) >> 2] = $20; + void_20emscripten__internal__writeGenericWireType_int__28emscripten__internal__GenericWireType___2c_20int_29(HEAP32[($6 + 52 | 0) >> 2] | 0 | 0, emscripten__internal__BindingType_int_2c_20void___toWireType_28int_20const__29(HEAP32[($6 + 48 | 0) >> 2] | 0 | 0) | 0 | 0); + $25 = HEAP32[($6 + 44 | 0) >> 2] | 0; + HEAP32[($6 + 60 | 0) >> 2] = HEAP32[($6 + 52 | 0) >> 2] | 0; + HEAP32[($6 + 56 | 0) >> 2] = $25; + void_20emscripten__internal__writeGenericWireType_int__28emscripten__internal__GenericWireType___2c_20int_29(HEAP32[($6 + 60 | 0) >> 2] | 0 | 0, emscripten__internal__BindingType_int_2c_20void___toWireType_28int_20const__29(HEAP32[($6 + 56 | 0) >> 2] | 0 | 0) | 0 | 0); + emscripten__internal__writeGenericWireTypes_28emscripten__internal__GenericWireType___29(HEAP32[($6 + 60 | 0) >> 2] | 0 | 0); + __stack_pointer = $6 + 64 | 0; + return $7 | 0; + } + + function emscripten__internal__WireTypePack_int_20const__2c_20int_20const__2c_20int____operator_20void_20const__28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = std____2__array_emscripten__internal__GenericWireType_2c_203ul___data_5babi_v160004_5d_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $5 | 0; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void_2c_20int_20const__2c_20int_20const__2c_20int____getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 4 | 0; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void_2c_20int_20const__2c_20int_20const__2c_20int____getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_20const__2c_20int_20const__2c_20int_____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function std____2__array_emscripten__internal__GenericWireType_2c_203ul___data_5babi_v160004_5d_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function emscripten__internal__BindingType_int_2c_20void___toWireType_28int_20const__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[(HEAP32[($3 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0; + } + + function void_20emscripten__internal__writeGenericWireType_int__28emscripten__internal__GenericWireType___2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $8 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[(HEAP32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + $8 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[$8 >> 2] = (HEAP32[$8 >> 2] | 0) + 8 | 0; + return; + } + + function std____2__array_emscripten__internal__GenericWireType_2c_203ul___data_5babi_v160004_5d_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_20const__2c_20int_20const__2c_20int_____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_20const__2c_20int_20const__2c_20int_____get_28_29__types | 0; + } + + function emscripten__internal__BindingType_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___2c_20void___fromWireType_28emscripten__internal__BindingType_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___2c_20void____unnamed___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____basic_string_5babi_v160004_5d_28char_20const__2c_20unsigned_20long_29($0 | 0, (HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0 | 0, HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function emscripten__internal__BindingType_emscripten__val_2c_20void___toWireType_28emscripten__val_20const__29($0) { + $0 = $0 | 0; + var $3 = 0, $7 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + _emval_incref(HEAP32[(HEAP32[($3 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0); + $7 = HEAP32[(HEAP32[($3 + 12 | 0) >> 2] | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $7 | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_emscripten__val_2c_20std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const_____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_emscripten__val_2c_20std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const_____get_28_29__types | 0; + } + + function std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____basic_string_5babi_v160004_5d_28char_20const__2c_20unsigned_20long_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $15 = 0, $23 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 24 | 0) >> 2] = $0; + HEAP32[($5 + 20 | 0) >> 2] = $1; + HEAP32[($5 + 16 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 24 | 0) >> 2] | 0; + HEAP32[($5 + 28 | 0) >> 2] = $6; + std____2____compressed_pair_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______rep_2c_20std____2__allocator_char______compressed_pair_5babi_v160004_5d_std____2____default_init_tag_2c_20std____2____default_init_tag__28std____2____default_init_tag___2c_20std____2____default_init_tag___29($6 | 0, $5 + 15 | 0 | 0, $5 + 14 | 0 | 0) | 0; + $15 = 1; + label$1 : { + if (!(HEAP32[($5 + 16 | 0) >> 2] | 0)) { + break label$1 + } + $15 = (HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) != (0 | 0); + } + std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______init_28char_20const__2c_20unsigned_20long_29($6 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0, HEAP32[($5 + 16 | 0) >> 2] | 0 | 0); + void_20std____2____debug_db_insert_c_5babi_v160004_5d_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____28std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____29($6 | 0); + $23 = HEAP32[($5 + 28 | 0) >> 2] | 0; + __stack_pointer = $5 + 32 | 0; + return $23 | 0; + } + + function std____2____compressed_pair_elem_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______rep_2c_200_2c_20false_____compressed_pair_elem_5babi_v160004_5d_28std____2____default_init_tag_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 8 | 0) >> 2] = $0; + return HEAP32[($3 + 8 | 0) >> 2] | 0 | 0; + } + + function std____2____compressed_pair_elem_std____2__allocator_char__2c_201_2c_20true_____compressed_pair_elem_5babi_v160004_5d_28std____2____default_init_tag_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + std____2__allocator_char___allocator_5babi_v160004_5d_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function std____2__allocator_char___allocator_5babi_v160004_5d_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + std____2____non_trivial_if_true_2c_20std____2__allocator_char______non_trivial_if_5babi_v160004_5d_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function std____2____non_trivial_if_true_2c_20std____2__allocator_char______non_trivial_if_5babi_v160004_5d_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____data_5babi_v160004_5d_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = char_20const__20std____2____to_address_5babi_v160004_5d_char_20const__28char_20const__29(std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______get_pointer_5babi_v160004_5d_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______get_pointer_5babi_v160004_5d_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $9 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______is_long_5babi_v160004_5d_28_29_20const($4 | 0) | 0) & 1 | 0)) { + break label$2 + } + $9 = std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______get_long_pointer_5babi_v160004_5d_28_29_20const($4 | 0) | 0; + break label$1; + } + $9 = std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______get_short_pointer_5babi_v160004_5d_28_29_20const($4 | 0) | 0; + } + __stack_pointer = $3 + 16 | 0; + return $9 | 0; + } + + function char_20const__20std____2____to_address_5babi_v160004_5d_char_20const__28char_20const__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______is_long_5babi_v160004_5d_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $16 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $16 = (((HEAPU8[((std____2____compressed_pair_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______rep_2c_20std____2__allocator_char____first_5babi_v160004_5d_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0) + 11 | 0) >> 0] | 0) >>> 7 | 0) & 255 | 0 | 0) != (0 & 255 | 0 | 0) & 1 | 0; + __stack_pointer = $3 + 16 | 0; + return $16 | 0; + } + + function std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______get_long_pointer_5babi_v160004_5d_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = HEAP32[(std____2____compressed_pair_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______rep_2c_20std____2__allocator_char____first_5babi_v160004_5d_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______get_short_pointer_5babi_v160004_5d_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = std____2__pointer_traits_char_20const____pointer_to_5babi_v160004_5d_28char_20const__29(std____2____compressed_pair_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______rep_2c_20std____2__allocator_char____first_5babi_v160004_5d_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function std____2____compressed_pair_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______rep_2c_20std____2__allocator_char____first_5babi_v160004_5d_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = std____2____compressed_pair_elem_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______rep_2c_200_2c_20false_____get_5babi_v160004_5d_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $5 | 0; + } + + function std____2__pointer_traits_char_20const____pointer_to_5babi_v160004_5d_28char_20const__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function std____2____compressed_pair_elem_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______rep_2c_200_2c_20false_____get_5babi_v160004_5d_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function void_20const__20emscripten__internal__getLightTypeID_btControllerHitReport__28btControllerHitReport_20const__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[(HEAP32[($3 + 12 | 0) >> 2] | 0) >> 2] | 0) + -4 | 0) >> 2] | 0 | 0; + } + + function emscripten__internal__LightTypeID_btControllerHitReport___get_28_29() { + return GOT_data_internal_typeinfo_20for_20btControllerHitReport | 0; + } + + function emscripten__internal__LightTypeID_btControllerHitReport____get_28_29() { + return GOT_data_internal_typeinfo_20for_20btControllerHitReport_ | 0; + } + + function emscripten__internal__LightTypeID_btControllerHitReport_20const____get_28_29() { + return GOT_data_internal_typeinfo_20for_20btControllerHitReport_20const_ | 0; + } + + function emscripten__internal__MethodInvoker_void_20_28btControllerHitReport____29_28int_2c_20int_29_2c_20void_2c_20btControllerHitReport__2c_20int_2c_20int___invoke_28void_20_28btControllerHitReport____20const__29_28int_2c_20int_29_2c_20btControllerHitReport__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $9 = 0, $10 = 0, $11 = 0, $14 = 0, $20 = 0, $8 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $8 = emscripten__internal__BindingType_btControllerHitReport__2c_20void___fromWireType_28btControllerHitReport__29(HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0; + $9 = HEAP32[($6 + 12 | 0) >> 2] | 0; + $10 = HEAP32[($9 + 4 | 0) >> 2] | 0; + $11 = HEAP32[$9 >> 2] | 0; + $14 = $8 + ($10 >> 1 | 0) | 0; + label$1 : { + label$2 : { + if (!($10 & 1 | 0)) { + break label$2 + } + $20 = HEAP32[((HEAP32[$14 >> 2] | 0) + $11 | 0) >> 2] | 0; + break label$1; + } + $20 = $11; + } + FUNCTION_TABLE[$20 | 0]($14, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($6 + 4 | 0) >> 2] | 0 | 0) | 0, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[$6 >> 2] | 0 | 0) | 0); + __stack_pointer = $6 + 16 | 0; + return; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void_2c_20emscripten__internal__AllowedRawPointer_btControllerHitReport__2c_20int_2c_20int___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 4 | 0; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void_2c_20emscripten__internal__AllowedRawPointer_btControllerHitReport__2c_20int_2c_20int___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20emscripten__internal__AllowedRawPointer_btControllerHitReport__2c_20int_2c_20int____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function void_20_28btControllerHitReport____emscripten__internal__getContext_void_20_28btControllerHitReport____29_28int_2c_20int_29__28void_20_28btControllerHitReport____20const__29_28int_2c_20int_29_29_29_28int_2c_20int_29($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0, $6 = 0, $7 = 0, $9 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = operator_20new_28unsigned_20long_29(8 | 0) | 0; + $6 = HEAP32[($3 + 12 | 0) >> 2] | 0; + $7 = HEAP32[$6 >> 2] | 0; + HEAP32[($5 + 4 | 0) >> 2] = HEAP32[($6 + 4 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = $7; + HEAP32[($3 + 8 | 0) >> 2] = $5; + $9 = HEAP32[($3 + 8 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $9 | 0; + } + + function emscripten__internal__BindingType_btControllerHitReport__2c_20void___fromWireType_28btControllerHitReport__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20emscripten__internal__AllowedRawPointer_btControllerHitReport__2c_20int_2c_20int____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20emscripten__internal__AllowedRawPointer_btControllerHitReport__2c_20int_2c_20int____get_28_29__types | 0; + } + + function emscripten__class__btControllerHitReport_2c_20emscripten__internal__NoBaseClass__20const__20emscripten__class__btControllerHitReport_2c_20emscripten__internal__NoBaseClass___allow_subclass_btControllerHitReportWrapper__28char_20const__2c_20emscripten__constructor___29_20const___lambda__28btControllerHitReportWrapper__29____invoke_28btControllerHitReportWrapper__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + emscripten__class__btControllerHitReport_2c_20emscripten__internal__NoBaseClass__20const__20emscripten__class__btControllerHitReport_2c_20emscripten__internal__NoBaseClass___allow_subclass_btControllerHitReportWrapper__28char_20const__2c_20emscripten__constructor___29_20const___lambda__28btControllerHitReportWrapper__29__operator_28_29_28btControllerHitReportWrapper__29_20const($3 + 11 | 0 | 0, HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btControllerHitReportWrapper__btControllerHitReportWrapper___28emscripten__val___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + emscripten__wrapper_btControllerHitReport___wrapper___28emscripten__val___29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$5 >> 2] = GOT_data_internal_vtable_20for_20btControllerHitReportWrapper + 8 | 0; + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function void_20const__20emscripten__internal__getLightTypeID_btControllerHitReportWrapper__28btControllerHitReportWrapper_20const__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[(HEAP32[($3 + 12 | 0) >> 2] | 0) >> 2] | 0) + -4 | 0) >> 2] | 0 | 0; + } + + function btControllerHitReport__20emscripten__base_btControllerHitReport___convertPointer_btControllerHitReportWrapper_2c_20btControllerHitReport__28btControllerHitReportWrapper__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btControllerHitReportWrapper__20emscripten__base_btControllerHitReport___convertPointer_btControllerHitReport_2c_20btControllerHitReportWrapper__28btControllerHitReport__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function emscripten__internal__LightTypeID_btControllerHitReportWrapper___get_28_29() { + return GOT_data_internal_typeinfo_20for_20btControllerHitReportWrapper | 0; + } + + function emscripten__internal__LightTypeID_btControllerHitReportWrapper____get_28_29() { + return GOT_data_internal_typeinfo_20for_20btControllerHitReportWrapper_ | 0; + } + + function emscripten__internal__LightTypeID_btControllerHitReportWrapper_20const____get_28_29() { + return GOT_data_internal_typeinfo_20for_20btControllerHitReportWrapper_20const_ | 0; + } + + function emscripten__internal__FunctionInvoker_void_20_28__29_28btControllerHitReportWrapper__29_2c_20void_2c_20btControllerHitReportWrapper____invoke_28void_20_28___29_28btControllerHitReportWrapper__29_2c_20btControllerHitReportWrapper__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $6 = HEAP32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] | 0; + FUNCTION_TABLE[$6 | 0](emscripten__internal__GenericBindingType_btControllerHitReportWrapper___fromWireType_28btControllerHitReportWrapper__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void_2c_20btControllerHitReportWrapper____getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 2 | 0; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void_2c_20btControllerHitReportWrapper____getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20btControllerHitReportWrapper_____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function void_20_28__emscripten__internal__getContext_void_20_28__29_28btControllerHitReportWrapper__29__28void_20_28__20const__29_28btControllerHitReportWrapper__29_29_29_28btControllerHitReportWrapper__29($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0, $8 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = operator_20new_28unsigned_20long_29(4 | 0) | 0; + HEAP32[$5 >> 2] = HEAP32[(HEAP32[($3 + 12 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($3 + 8 | 0) >> 2] = $5; + $8 = HEAP32[($3 + 8 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $8 | 0; + } + + function emscripten__internal__GenericBindingType_btControllerHitReportWrapper___fromWireType_28btControllerHitReportWrapper__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20btControllerHitReportWrapper_____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20btControllerHitReportWrapper_____get_28_29__types | 0; + } + + function emscripten__class__btControllerHitReport_2c_20emscripten__internal__NoBaseClass__20const__20emscripten__class__btControllerHitReport_2c_20emscripten__internal__NoBaseClass___allow_subclass_btControllerHitReportWrapper__28char_20const__2c_20emscripten__constructor___29_20const___lambda__28btControllerHitReportWrapper__29__operator_28_29_28btControllerHitReportWrapper__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + emscripten__internal__WrapperBase__setNotifyJSOnDestruction_28bool_29((HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0 | 0, 1 & 1 | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function emscripten__internal__BindingType_btControllerHitReportWrapper__2c_20void___toWireType_28btControllerHitReportWrapper__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_emscripten__internal__AllowedRawPointer_btControllerHitReportWrapper__2c_20emscripten__val______get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_emscripten__internal__AllowedRawPointer_btControllerHitReportWrapper__2c_20emscripten__val______get_28_29__types | 0; + } + + function emscripten__wrapper_btControllerHitReport___wrapper___28emscripten__val___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = 0; + btControllerHitReport__btControllerHitReport_28_29($5 | 0) | 0; + emscripten__internal__WrapperBase__WrapperBase_28_29($5 + 4 | 0 | 0) | 0; + HEAP32[$5 >> 2] = GOT_data_internal_vtable_20for_20emscripten__wrapper_btControllerHitReport_ + 8 | 0; + emscripten__val__val_28emscripten__val___29($5 + 8 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function btControllerHitReport__btControllerHitReport_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btUserControllerHitReport__btUserControllerHitReport_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = GOT_data_internal_vtable_20for_20btControllerHitReport + 8 | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btControllerHitReport__onShapeHit_28btControllerShapeHit_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($5, HEAP32[($4 + 8 | 0) >> 2] | 0, HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btControllerHitReport__onControllerHit_28btControllersHit_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return; + } + + function btControllerHitReportWrapper___btControllerHitReportWrapper_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + emscripten__wrapper_btControllerHitReport____wrapper_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function emscripten__wrapper_btControllerHitReport____wrapper_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $16 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $4; + HEAP32[$4 >> 2] = GOT_data_internal_vtable_20for_20emscripten__wrapper_btControllerHitReport_ + 8 | 0; + label$1 : { + if (!((HEAPU8[($4 + 4 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + void_20emscripten__wrapper_btControllerHitReport___call_void__28char_20const__29_20const($4 | 0, GOT_data_internal___memory_base + 68623 | 0 | 0); + } + emscripten__val___val_28_29($4 + 8 | 0 | 0) | 0; + btControllerHitReport___btControllerHitReport_28_29($4 | 0) | 0; + $16 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $16 | 0; + } + + function btControllerHitReportWrapper___btControllerHitReportWrapper_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btControllerHitReportWrapper___btControllerHitReportWrapper_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btControllerHitReportWrapper__onShapeHitExt_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + void_20emscripten__wrapper_btControllerHitReport___call_void_2c_20int_20const__2c_20int_20const___28char_20const__2c_20int_20const__2c_20int_20const__29_20const(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0, GOT_data_internal___memory_base + 67323 | 0 | 0, $5 + 8 | 0 | 0, $5 + 4 | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function void_20emscripten__wrapper_btControllerHitReport___call_void_2c_20int_20const__2c_20int_20const___28char_20const__2c_20int_20const__2c_20int_20const__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + void_20emscripten__val__call_void_2c_20int_20const__2c_20int_20const___28char_20const__2c_20int_20const__2c_20int_20const__29_20const((HEAP32[($6 + 12 | 0) >> 2] | 0) + 8 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6 >> 2] | 0 | 0); + __stack_pointer = $6 + 16 | 0; + return; + } + + function btUserControllerHitReport__btUserControllerHitReport_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = GOT_data_internal_vtable_20for_20btUserControllerHitReport + 8 | 0; + return $4 | 0; + } + + function void_20emscripten__wrapper_btControllerHitReport___call_void__28char_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + void_20emscripten__val__call_void__28char_20const__29_20const((HEAP32[($4 + 12 | 0) >> 2] | 0) + 8 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btControllerHitReport___btControllerHitReport_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btUserControllerHitReport___btUserControllerHitReport_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function emscripten__wrapper_btControllerHitReport____wrapper_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btUserControllerHitReport___btUserControllerHitReport_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btControllerHitReport___btControllerHitReport_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btUserControllerHitReport___btUserControllerHitReport_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function void_20emscripten__val__call_void_2c_20int_20const__2c_20int_20const___28char_20const__2c_20int_20const__2c_20int_20const__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + emscripten__internal__MethodCaller_void_2c_20int_20const__2c_20int_20const____call_28emscripten___EM_VAL__2c_20char_20const__2c_20int_20const__2c_20int_20const__29(HEAP32[(HEAP32[($6 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6 >> 2] | 0 | 0); + __stack_pointer = $6 + 16 | 0; + return; + } + + function emscripten__internal__MethodCaller_void_2c_20int_20const__2c_20int_20const____call_28emscripten___EM_VAL__2c_20char_20const__2c_20int_20const__2c_20int_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 48 | 0; + __stack_pointer = $6; + HEAP32[($6 + 44 | 0) >> 2] = $0; + HEAP32[($6 + 40 | 0) >> 2] = $1; + HEAP32[($6 + 36 | 0) >> 2] = $2; + HEAP32[($6 + 32 | 0) >> 2] = $3; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = emscripten__internal__Signature_void_2c_20int_20const__2c_20int_20const____get_method_caller_28_29() | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + emscripten__internal__WireTypePack_int_20const__2c_20int_20const____WireTypePack_28int_20const__2c_20int_20const__29($6 + 8 | 0 | 0, HEAP32[($6 + 36 | 0) >> 2] | 0 | 0, HEAP32[($6 + 32 | 0) >> 2] | 0 | 0) | 0; + _emval_call_void_method(HEAP32[($6 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6 + 44 | 0) >> 2] | 0 | 0, HEAP32[($6 + 40 | 0) >> 2] | 0 | 0, emscripten__internal__WireTypePack_int_20const__2c_20int_20const____operator_20void_20const__28_29_20const($6 + 8 | 0 | 0) | 0 | 0); + __stack_pointer = $6 + 48 | 0; + return; + } + + function emscripten__internal__Signature_void_2c_20int_20const__2c_20int_20const____get_method_caller_28_29() { + var $2 = 0, $26 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $2 = __stack_pointer - 16 | 0; + __stack_pointer = $2; + label$1 : { + if (!((((HEAPU8[GOT_data_internal_guard_20variable_20for_20emscripten__internal__Signature_void_2c_20int_20const__2c_20int_20const____get_method_caller_28_29__mc >> 0] | 0) & 1 | 0) & 255 | 0 | 0) == (0 & 255 | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = GOT_data_internal_emscripten__internal__Signature_void_2c_20int_20const__2c_20int_20const____get_method_caller_28_29__mc, wasm2js_i32$1 = _emval_get_method_caller(emscripten__internal__WithPolicies____ArgTypeList_void_2c_20int_20const__2c_20int_20const____getCount_28_29_20const($2 + 15 | 0 | 0) | 0 | 0, emscripten__internal__WithPolicies____ArgTypeList_void_2c_20int_20const__2c_20int_20const____getTypes_28_29_20const($2 + 15 | 0 | 0) | 0 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP8[GOT_data_internal_guard_20variable_20for_20emscripten__internal__Signature_void_2c_20int_20const__2c_20int_20const____get_method_caller_28_29__mc >> 0] = 1; + } + $26 = HEAP32[GOT_data_internal_emscripten__internal__Signature_void_2c_20int_20const__2c_20int_20const____get_method_caller_28_29__mc >> 2] | 0; + __stack_pointer = $2 + 16 | 0; + return $26 | 0; + } + + function emscripten__internal__WireTypePack_int_20const__2c_20int_20const____WireTypePack_28int_20const__2c_20int_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $8 = 0, $9 = 0, $17 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 24 | 0) >> 2] = $0; + HEAP32[($5 + 20 | 0) >> 2] = $1; + HEAP32[($5 + 16 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 24 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = std____2__array_emscripten__internal__GenericWireType_2c_202ul___data_5babi_v160004_5d_28_29($6 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $8 = HEAP32[($5 + 20 | 0) >> 2] | 0; + $9 = HEAP32[($5 + 16 | 0) >> 2] | 0; + HEAP32[($5 + 36 | 0) >> 2] = $5 + 12 | 0; + HEAP32[($5 + 32 | 0) >> 2] = $8; + HEAP32[($5 + 28 | 0) >> 2] = $9; + void_20emscripten__internal__writeGenericWireType_int__28emscripten__internal__GenericWireType___2c_20int_29(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, emscripten__internal__BindingType_int_2c_20void___toWireType_28int_20const__29(HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0 | 0); + $17 = HEAP32[($5 + 28 | 0) >> 2] | 0; + HEAP32[($5 + 44 | 0) >> 2] = HEAP32[($5 + 36 | 0) >> 2] | 0; + HEAP32[($5 + 40 | 0) >> 2] = $17; + void_20emscripten__internal__writeGenericWireType_int__28emscripten__internal__GenericWireType___2c_20int_29(HEAP32[($5 + 44 | 0) >> 2] | 0 | 0, emscripten__internal__BindingType_int_2c_20void___toWireType_28int_20const__29(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0 | 0); + emscripten__internal__writeGenericWireTypes_28emscripten__internal__GenericWireType___29(HEAP32[($5 + 44 | 0) >> 2] | 0 | 0); + __stack_pointer = $5 + 48 | 0; + return $6 | 0; + } + + function emscripten__internal__WireTypePack_int_20const__2c_20int_20const____operator_20void_20const__28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = std____2__array_emscripten__internal__GenericWireType_2c_202ul___data_5babi_v160004_5d_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $5 | 0; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void_2c_20int_20const__2c_20int_20const____getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 3 | 0; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void_2c_20int_20const__2c_20int_20const____getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_20const__2c_20int_20const_____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function std____2__array_emscripten__internal__GenericWireType_2c_202ul___data_5babi_v160004_5d_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function std____2__array_emscripten__internal__GenericWireType_2c_202ul___data_5babi_v160004_5d_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_20const__2c_20int_20const_____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_20const__2c_20int_20const_____get_28_29__types | 0; + } + + function void_20const__20emscripten__internal__getLightTypeID_cc__ccMotionState__28cc__ccMotionState_20const__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[(HEAP32[($3 + 12 | 0) >> 2] | 0) >> 2] | 0) + -4 | 0) >> 2] | 0 | 0; + } + + function emscripten__internal__LightTypeID_cc__ccMotionState___get_28_29() { + return GOT_data_internal_typeinfo_20for_20cc__ccMotionState | 0; + } + + function emscripten__internal__LightTypeID_cc__ccMotionState____get_28_29() { + return GOT_data_internal_typeinfo_20for_20cc__ccMotionState_ | 0; + } + + function emscripten__internal__LightTypeID_cc__ccMotionState_20const____get_28_29() { + return GOT_data_internal_typeinfo_20for_20cc__ccMotionState_20const_ | 0; + } + + function emscripten__internal__MethodInvoker_void_20_28cc__ccMotionState____29_28int_29_2c_20void_2c_20cc__ccMotionState__2c_20int___invoke_28void_20_28cc__ccMotionState____20const__29_28int_29_2c_20cc__ccMotionState__2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $8 = 0, $9 = 0, $10 = 0, $13 = 0, $19 = 0, $7 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $7 = emscripten__internal__BindingType_cc__ccMotionState__2c_20void___fromWireType_28cc__ccMotionState__29(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0; + $8 = HEAP32[($5 + 12 | 0) >> 2] | 0; + $9 = HEAP32[($8 + 4 | 0) >> 2] | 0; + $10 = HEAP32[$8 >> 2] | 0; + $13 = $7 + ($9 >> 1 | 0) | 0; + label$1 : { + label$2 : { + if (!($9 & 1 | 0)) { + break label$2 + } + $19 = HEAP32[((HEAP32[$13 >> 2] | 0) + $10 | 0) >> 2] | 0; + break label$1; + } + $19 = $10; + } + FUNCTION_TABLE[$19 | 0]($13, emscripten__internal__BindingType_int_2c_20void___fromWireType_28int_29(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void_2c_20emscripten__internal__AllowedRawPointer_cc__ccMotionState__2c_20int___getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 3 | 0; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void_2c_20emscripten__internal__AllowedRawPointer_cc__ccMotionState__2c_20int___getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20emscripten__internal__AllowedRawPointer_cc__ccMotionState__2c_20int____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function void_20_28cc__ccMotionState____emscripten__internal__getContext_void_20_28cc__ccMotionState____29_28int_29__28void_20_28cc__ccMotionState____20const__29_28int_29_29_29_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0, $6 = 0, $7 = 0, $9 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = operator_20new_28unsigned_20long_29(8 | 0) | 0; + $6 = HEAP32[($3 + 12 | 0) >> 2] | 0; + $7 = HEAP32[$6 >> 2] | 0; + HEAP32[($5 + 4 | 0) >> 2] = HEAP32[($6 + 4 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = $7; + HEAP32[($3 + 8 | 0) >> 2] = $5; + $9 = HEAP32[($3 + 8 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $9 | 0; + } + + function emscripten__internal__BindingType_cc__ccMotionState__2c_20void___fromWireType_28cc__ccMotionState__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20emscripten__internal__AllowedRawPointer_cc__ccMotionState__2c_20int____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20emscripten__internal__AllowedRawPointer_cc__ccMotionState__2c_20int____get_28_29__types | 0; + } + + function emscripten__class__cc__ccMotionState_2c_20emscripten__internal__NoBaseClass__20const__20emscripten__class__cc__ccMotionState_2c_20emscripten__internal__NoBaseClass___allow_subclass_ccMotionStateWrapper__28char_20const__2c_20emscripten__constructor___29_20const___lambda__28ccMotionStateWrapper__29____invoke_28ccMotionStateWrapper__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + emscripten__class__cc__ccMotionState_2c_20emscripten__internal__NoBaseClass__20const__20emscripten__class__cc__ccMotionState_2c_20emscripten__internal__NoBaseClass___allow_subclass_ccMotionStateWrapper__28char_20const__2c_20emscripten__constructor___29_20const___lambda__28ccMotionStateWrapper__29__operator_28_29_28ccMotionStateWrapper__29_20const($3 + 11 | 0 | 0, HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function ccMotionStateWrapper__ccMotionStateWrapper___28emscripten__val___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + emscripten__wrapper_cc__ccMotionState___wrapper___28emscripten__val___29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$5 >> 2] = GOT_data_internal_vtable_20for_20ccMotionStateWrapper + 8 | 0; + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function void_20const__20emscripten__internal__getLightTypeID_ccMotionStateWrapper__28ccMotionStateWrapper_20const__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[(HEAP32[($3 + 12 | 0) >> 2] | 0) >> 2] | 0) + -4 | 0) >> 2] | 0 | 0; + } + + function cc__ccMotionState__20emscripten__base_cc__ccMotionState___convertPointer_ccMotionStateWrapper_2c_20cc__ccMotionState__28ccMotionStateWrapper__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function ccMotionStateWrapper__20emscripten__base_cc__ccMotionState___convertPointer_cc__ccMotionState_2c_20ccMotionStateWrapper__28cc__ccMotionState__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function emscripten__internal__LightTypeID_ccMotionStateWrapper___get_28_29() { + return GOT_data_internal_typeinfo_20for_20ccMotionStateWrapper | 0; + } + + function emscripten__internal__LightTypeID_ccMotionStateWrapper____get_28_29() { + return GOT_data_internal_typeinfo_20for_20ccMotionStateWrapper_ | 0; + } + + function emscripten__internal__LightTypeID_ccMotionStateWrapper_20const____get_28_29() { + return GOT_data_internal_typeinfo_20for_20ccMotionStateWrapper_20const_ | 0; + } + + function emscripten__internal__FunctionInvoker_void_20_28__29_28ccMotionStateWrapper__29_2c_20void_2c_20ccMotionStateWrapper____invoke_28void_20_28___29_28ccMotionStateWrapper__29_2c_20ccMotionStateWrapper__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $6 = HEAP32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] | 0; + FUNCTION_TABLE[$6 | 0](emscripten__internal__GenericBindingType_ccMotionStateWrapper___fromWireType_28ccMotionStateWrapper__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void_2c_20ccMotionStateWrapper____getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 2 | 0; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void_2c_20ccMotionStateWrapper____getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20ccMotionStateWrapper_____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function void_20_28__emscripten__internal__getContext_void_20_28__29_28ccMotionStateWrapper__29__28void_20_28__20const__29_28ccMotionStateWrapper__29_29_29_28ccMotionStateWrapper__29($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0, $8 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = operator_20new_28unsigned_20long_29(4 | 0) | 0; + HEAP32[$5 >> 2] = HEAP32[(HEAP32[($3 + 12 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($3 + 8 | 0) >> 2] = $5; + $8 = HEAP32[($3 + 8 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $8 | 0; + } + + function emscripten__internal__GenericBindingType_ccMotionStateWrapper___fromWireType_28ccMotionStateWrapper__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20ccMotionStateWrapper_____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20ccMotionStateWrapper_____get_28_29__types | 0; + } + + function emscripten__class__cc__ccMotionState_2c_20emscripten__internal__NoBaseClass__20const__20emscripten__class__cc__ccMotionState_2c_20emscripten__internal__NoBaseClass___allow_subclass_ccMotionStateWrapper__28char_20const__2c_20emscripten__constructor___29_20const___lambda__28ccMotionStateWrapper__29__operator_28_29_28ccMotionStateWrapper__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + emscripten__internal__WrapperBase__setNotifyJSOnDestruction_28bool_29((HEAP32[($4 + 8 | 0) >> 2] | 0) + 72 | 0 | 0, 1 & 1 | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function emscripten__internal__BindingType_ccMotionStateWrapper__2c_20void___toWireType_28ccMotionStateWrapper__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_emscripten__internal__AllowedRawPointer_ccMotionStateWrapper__2c_20emscripten__val______get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_emscripten__internal__AllowedRawPointer_ccMotionStateWrapper__2c_20emscripten__val______get_28_29__types | 0; + } + + function emscripten__wrapper_cc__ccMotionState___wrapper___28emscripten__val___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + cc__ccMotionState__ccMotionState_28_29($5 | 0) | 0; + emscripten__internal__WrapperBase__WrapperBase_28_29($5 + 72 | 0 | 0) | 0; + HEAP32[$5 >> 2] = GOT_data_internal_vtable_20for_20emscripten__wrapper_cc__ccMotionState_ + 8 | 0; + emscripten__val__val_28emscripten__val___29($5 + 76 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function cc__ccMotionState__ccMotionState_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btMotionState__btMotionState_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = GOT_data_internal_vtable_20for_20cc__ccMotionState + 8 | 0; + btTransform__btTransform_28_29($4 + 8 | 0 | 0) | 0; + HEAP32[($4 + 4 | 0) >> 2] = -1; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function ccMotionStateWrapper___ccMotionStateWrapper_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + emscripten__wrapper_cc__ccMotionState____wrapper_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function emscripten__wrapper_cc__ccMotionState____wrapper_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $16 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $4; + HEAP32[$4 >> 2] = GOT_data_internal_vtable_20for_20emscripten__wrapper_cc__ccMotionState_ + 8 | 0; + label$1 : { + if (!((HEAPU8[($4 + 72 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + void_20emscripten__wrapper_cc__ccMotionState___call_void__28char_20const__29_20const($4 | 0, GOT_data_internal___memory_base + 68623 | 0 | 0); + } + emscripten__val___val_28_29($4 + 76 | 0 | 0) | 0; + cc__ccMotionState___ccMotionState_28_29($4 | 0) | 0; + $16 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $16 | 0; + } + + function ccMotionStateWrapper___ccMotionStateWrapper_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + ccMotionStateWrapper___ccMotionStateWrapper_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function cc__ccMotionState__getWorldTransform_28btTransform__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btTransform__operator__28btTransform_20const__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, (HEAP32[($4 + 12 | 0) >> 2] | 0) + 8 | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function cc__ccMotionState__setWorldTransform_28btTransform_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btTransform__operator__28btTransform_20const__29($5 + 8 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($5, HEAP32[($5 + 4 | 0) >> 2] | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function ccMotionStateWrapper__syncPhysicsToGraphics_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + void_20emscripten__wrapper_cc__ccMotionState___call_void_2c_20int_20const___28char_20const__2c_20int_20const__29_20const(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, GOT_data_internal___memory_base + 70462 | 0 | 0, $4 + 8 | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function void_20emscripten__wrapper_cc__ccMotionState___call_void_2c_20int_20const___28char_20const__2c_20int_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + void_20emscripten__val__call_void_2c_20int_20const___28char_20const__2c_20int_20const__29_20const((HEAP32[($5 + 12 | 0) >> 2] | 0) + 76 | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function void_20emscripten__wrapper_cc__ccMotionState___call_void__28char_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + void_20emscripten__val__call_void__28char_20const__29_20const((HEAP32[($4 + 12 | 0) >> 2] | 0) + 76 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function cc__ccMotionState___ccMotionState_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btMotionState___btMotionState_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function emscripten__wrapper_cc__ccMotionState____wrapper_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function cc__ccMotionState___ccMotionState_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function void_20emscripten__val__call_void_2c_20int_20const___28char_20const__2c_20int_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + emscripten__internal__MethodCaller_void_2c_20int_20const____call_28emscripten___EM_VAL__2c_20char_20const__2c_20int_20const__29(HEAP32[(HEAP32[($5 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function emscripten__internal__MethodCaller_void_2c_20int_20const____call_28emscripten___EM_VAL__2c_20char_20const__2c_20int_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = emscripten__internal__Signature_void_2c_20int_20const____get_method_caller_28_29() | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + emscripten__internal__WireTypePack_int_20const____WireTypePack_28int_20const__29($5 + 8 | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0; + _emval_call_void_method(HEAP32[($5 + 16 | 0) >> 2] | 0 | 0, HEAP32[($5 + 28 | 0) >> 2] | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0, emscripten__internal__WireTypePack_int_20const____operator_20void_20const__28_29_20const($5 + 8 | 0 | 0) | 0 | 0); + __stack_pointer = $5 + 32 | 0; + return; + } + + function emscripten__internal__Signature_void_2c_20int_20const____get_method_caller_28_29() { + var $2 = 0, $26 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $2 = __stack_pointer - 16 | 0; + __stack_pointer = $2; + label$1 : { + if (!((((HEAPU8[GOT_data_internal_guard_20variable_20for_20emscripten__internal__Signature_void_2c_20int_20const____get_method_caller_28_29__mc >> 0] | 0) & 1 | 0) & 255 | 0 | 0) == (0 & 255 | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = GOT_data_internal_emscripten__internal__Signature_void_2c_20int_20const____get_method_caller_28_29__mc, wasm2js_i32$1 = _emval_get_method_caller(emscripten__internal__WithPolicies____ArgTypeList_void_2c_20int_20const____getCount_28_29_20const($2 + 15 | 0 | 0) | 0 | 0, emscripten__internal__WithPolicies____ArgTypeList_void_2c_20int_20const____getTypes_28_29_20const($2 + 15 | 0 | 0) | 0 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP8[GOT_data_internal_guard_20variable_20for_20emscripten__internal__Signature_void_2c_20int_20const____get_method_caller_28_29__mc >> 0] = 1; + } + $26 = HEAP32[GOT_data_internal_emscripten__internal__Signature_void_2c_20int_20const____get_method_caller_28_29__mc >> 2] | 0; + __stack_pointer = $2 + 16 | 0; + return $26 | 0; + } + + function emscripten__internal__WireTypePack_int_20const____WireTypePack_28int_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $7 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 20 | 0) >> 2] = $0; + HEAP32[($4 + 16 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 20 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = std____2__array_emscripten__internal__GenericWireType_2c_201ul___data_5babi_v160004_5d_28_29($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $7 = HEAP32[($4 + 16 | 0) >> 2] | 0; + HEAP32[($4 + 28 | 0) >> 2] = $4 + 12 | 0; + HEAP32[($4 + 24 | 0) >> 2] = $7; + void_20emscripten__internal__writeGenericWireType_int__28emscripten__internal__GenericWireType___2c_20int_29(HEAP32[($4 + 28 | 0) >> 2] | 0 | 0, emscripten__internal__BindingType_int_2c_20void___toWireType_28int_20const__29(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0 | 0); + emscripten__internal__writeGenericWireTypes_28emscripten__internal__GenericWireType___29(HEAP32[($4 + 28 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return $5 | 0; + } + + function emscripten__internal__WireTypePack_int_20const____operator_20void_20const__28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = std____2__array_emscripten__internal__GenericWireType_2c_201ul___data_5babi_v160004_5d_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $5 | 0; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void_2c_20int_20const____getCount_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 2 | 0; + } + + function emscripten__internal__WithPolicies____ArgTypeList_void_2c_20int_20const____getTypes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_20const_____get_28_29() | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function std____2__array_emscripten__internal__GenericWireType_2c_201ul___data_5babi_v160004_5d_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function std____2__array_emscripten__internal__GenericWireType_2c_201ul___data_5babi_v160004_5d_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_20const_____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_20const_____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int____get_28_29__types | 0; + } + + function emscripten__internal__BindingType_float_2c_20void___toWireType_28float_20const__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[(HEAP32[($3 + 12 | 0) >> 2] | 0) >> 2])); + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_float_2c_20int____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_float_2c_20int____get_28_29__types | 0; + } + + function emscripten__internal__BindingType_float_2c_20void___fromWireType_28float_29($0) { + $0 = Math_fround($0); + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAPF32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[($3 + 12 | 0) >> 2])); + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float_2c_20float_2c_20float____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float_2c_20float_2c_20float____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20float_2c_20float____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20float_2c_20float____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float_2c_20float_2c_20float_2c_20float____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float_2c_20float_2c_20float_2c_20float____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20int____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20int____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20int____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20int____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20int_2c_20int_2c_20int____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20int_2c_20int_2c_20int____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float____get_28_29__types | 0; + } + + function emscripten__internal__BindingType_bool_2c_20void___fromWireType_28bool_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP8[($3 + 15 | 0) >> 0] = $0; + return (HEAPU8[($3 + 15 | 0) >> 0] | 0) & 1 | 0 | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20bool____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20bool____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20float____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20float____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20float_2c_20float____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20float_2c_20float____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20bool____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20bool____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20float____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20float____get_28_29__types | 0; + } + + function emscripten__internal__BindingType_bool_2c_20void___toWireType_28bool_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP8[($3 + 15 | 0) >> 0] = $0; + return (HEAPU8[($3 + 15 | 0) >> 0] | 0) & 1 | 0 | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_bool_2c_20int____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_bool_2c_20int____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20int____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20int____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20int_2c_20int____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20int_2c_20int____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20float_2c_20int____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20float_2c_20int____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float_2c_20float____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float_2c_20float____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20float____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20float____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20bool____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20bool____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20bool_2c_20bool____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20bool_2c_20bool____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20float_2c_20float_2c_20float____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20float_2c_20float_2c_20float____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20int_2c_20bool____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20int_2c_20bool____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float_2c_20int____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float_2c_20int____get_28_29__types | 0; + } + + function emscripten__internal__BindingType_unsigned_20int_2c_20void___fromWireType_28unsigned_20int_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20int_2c_20int____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20int_2c_20int____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20int_2c_20float____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20float_2c_20int_2c_20float____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_void_2c_20int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20int_2c_20float_2c_20float____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20int_2c_20int_2c_20float_2c_20float____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float____get_28_29__types | 0; + } + + function emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float____get_28_29() { + return GOT_data_internal_emscripten__internal__ArgArrayGetter_emscripten__internal__TypeList_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float____get_28_29__types | 0; + } + + function std____2____constexpr_strlen_5babi_v160004_5d_28char_20const__29($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = strlen(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $5 | 0; + } + + function _GLOBAL__sub_I_BulletWebBindings_cpp() { + __cxx_global_var_init(); + __cxx_global_var_init_1(); + __cxx_global_var_init_12(); + return; + } + + function __cxx_global_var_init_2() { + btInfMaskConverter__btInfMaskConverter_28int_29(113920 | 0, 2139095040 | 0) | 0; + return; + } + + function btAlignedAllocDefault_28unsigned_20long_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $32 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[(0 + 112816 | 0) >> 2] | 0 | 0](((HEAP32[($4 + 12 | 0) >> 2] | 0) + 4 | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) - 1 | 0) | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[$4 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = char__20btAlignPointer_char__28char__2c_20unsigned_20long_29((HEAP32[$4 >> 2] | 0) + 4 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + HEAP32[((HEAP32[($4 + 4 | 0) >> 2] | 0) + -4 | 0) >> 2] = HEAP32[$4 >> 2] | 0; + break label$1; + } + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[$4 >> 2] | 0; + } + $32 = HEAP32[($4 + 4 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btAlignedFreeDefault_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + label$1 : { + if (!((HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + -4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(0 + 112820 | 0) >> 2] | 0 | 0](HEAP32[($3 + 8 | 0) >> 2] | 0); + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function char__20btAlignPointer_char__28char__2c_20unsigned_20long_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[$4 >> 2] = ((HEAP32[($4 + 8 | 0) >> 2] | 0) - 1 | 0) ^ -1 | 0; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) - 1 | 0) | 0; + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) & (HEAP32[$4 >> 2] | 0) | 0; + return HEAP32[($4 + 4 | 0) >> 2] | 0 | 0; + } + + function btAllocDefault_28unsigned_20long_29($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = dlmalloc(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $5 | 0; + } + + function btFreeDefault_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + dlfree(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocInternal_28unsigned_20long_2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $15 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[(0 + 113924 | 0) >> 2] = (HEAP32[(0 + 113924 | 0) >> 2] | 0) + 1 | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[(0 + 112808 | 0) >> 2] | 0 | 0](HEAP32[($4 + 12 | 0) >> 2] | 0, HEAP32[($4 + 8 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + $15 = HEAP32[($4 + 4 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $15 | 0; + } + + function btAlignedFreeInternal_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + label$1 : { + label$2 : { + if ((HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$2 + } + break label$1; + } + HEAP32[(0 + 113928 | 0) >> 2] = (HEAP32[(0 + 113928 | 0) >> 2] | 0) + 1 | 0; + FUNCTION_TABLE[HEAP32[(0 + 112812 | 0) >> 2] | 0 | 0](HEAP32[($3 + 12 | 0) >> 2] | 0); + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function _GLOBAL__sub_I_btAlignedAllocator_cpp() { + __cxx_global_var_init_2(); + return; + } + + function __cxx_global_var_init_3() { + btInfMaskConverter__btInfMaskConverter_28int_29(113932 | 0, 2139095040 | 0) | 0; + return; + } + + function btDbvt__btDbvt_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btDbvt__sStkNN___btAlignedObjectArray_28_29($4 + 20 | 0 | 0) | 0; + HEAP32[$4 >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = -1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 16 | 0) >> 2] = 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btDbvt__sStkNN___btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btDbvt__sStkNN_2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btDbvt__sStkNN___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedAllocator_btDbvt__sStkNN_2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btDbvt__sStkNN___init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btDbvt___btDbvt_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btDbvt__clear_28_29($4 | 0); + btAlignedObjectArray_btDbvt__sStkNN____btAlignedObjectArray_28_29($4 + 20 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btDbvt__clear_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[$4 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + recursedeletenode_28btDbvt__2c_20btDbvtNode__29($4 | 0, HEAP32[$4 >> 2] | 0 | 0); + } + btAlignedFreeInternal_28void__29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = -1; + btAlignedObjectArray_btDbvt__sStkNN___clear_28_29($4 + 20 | 0 | 0); + HEAP32[($4 + 16 | 0) >> 2] = 0; + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btDbvt__sStkNN____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btDbvt__sStkNN___clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function recursedeletenode_28btDbvt__2c_20btDbvtNode__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + if ((btDbvtNode__isleaf_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$1 + } + recursedeletenode_28btDbvt__2c_20btDbvtNode__29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0); + recursedeletenode_28btDbvt__2c_20btDbvtNode__29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0); + } + label$2 : { + if (!((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) == (HEAP32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] = 0; + } + deletenode_28btDbvt__2c_20btDbvtNode__29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btDbvt__sStkNN___clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btDbvt__sStkNN___destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btDbvt__sStkNN___size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btDbvt__sStkNN___deallocate_28_29($4 | 0); + btAlignedObjectArray_btDbvt__sStkNN___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function deletenode_28btDbvt__2c_20btDbvtNode__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function createnode_28btDbvt__2c_20btDbvtNode__2c_20btDbvtAabbMm_20const__2c_20btDbvtAabbMm_20const__2c_20void__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $15 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = createnode_28btDbvt__2c_20btDbvtNode__2c_20void__29(HEAP32[($7 + 28 | 0) >> 2] | 0 | 0, HEAP32[($7 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + Merge_28btDbvtAabbMm_20const__2c_20btDbvtAabbMm_20const__2c_20btDbvtAabbMm__29(HEAP32[($7 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7 + 8 | 0) >> 2] | 0 | 0); + $15 = HEAP32[($7 + 8 | 0) >> 2] | 0; + __stack_pointer = $7 + 32 | 0; + return $15 | 0; + } + + function btDot_28btVector3_20const__2c_20btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $7 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $7 = Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0)); + __stack_pointer = $4 + 16 | 0; + return Math_fround($7); + } + + function createnode_28btDbvt__2c_20btDbvtNode__2c_20btDbvtAabbMm_20const__2c_20void__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $12 = 0, $11 = 0, $14 = 0, $18 = 0, $22 = 0, $61 = 0, $71 = 0, $81 = 0, $91 = 0, $26 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = createnode_28btDbvt__2c_20btDbvtNode__2c_20void__29(HEAP32[($6 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $11 = HEAP32[($6 + 20 | 0) >> 2] | 0; + $12 = HEAP32[($6 + 12 | 0) >> 2] | 0; + i64toi32_i32$2 = $11; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $61 = i64toi32_i32$0; + i64toi32_i32$0 = $12; + HEAP32[i64toi32_i32$0 >> 2] = $61; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $14 = 24; + i64toi32_i32$2 = i64toi32_i32$2 + $14 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $71 = i64toi32_i32$1; + i64toi32_i32$1 = $12 + $14 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $71; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $18 = 16; + i64toi32_i32$2 = $11 + $18 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $81 = i64toi32_i32$0; + i64toi32_i32$0 = $12 + $18 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $81; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $22 = 8; + i64toi32_i32$2 = $11 + $22 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $91 = i64toi32_i32$1; + i64toi32_i32$1 = $12 + $22 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $91; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $26 = HEAP32[($6 + 12 | 0) >> 2] | 0; + __stack_pointer = $6 + 32 | 0; + return $26 | 0; + } + + function btDbvt__optimizeIncremental_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $59 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[($4 + 8 | 0) >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + } + label$2 : { + if (!((HEAP32[$5 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + if (!((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0)) { + break label$2 + } + label$3 : while (1) { + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[$5 >> 2] | 0; + HEAP32[$4 >> 2] = 0; + label$4 : { + label$5 : while (1) { + if (!((btDbvtNode__isinternal_28_29_20const(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$4 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[(((sort_28btDbvtNode__2c_20btDbvtNode___29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, $5 | 0) | 0) + 36 | 0) + ((((HEAP32[($5 + 16 | 0) >> 2] | 0) >>> (HEAP32[$4 >> 2] | 0) | 0) & 1 | 0) << 2 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + HEAP32[$4 >> 2] = ((HEAP32[$4 >> 2] | 0) + 1 | 0) & 31 | 0; + continue label$5; + }; + } + btDbvt__update_28btDbvtNode__2c_20int_29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, -1 | 0); + HEAP32[($5 + 16 | 0) >> 2] = (HEAP32[($5 + 16 | 0) >> 2] | 0) + 1 | 0; + $59 = (HEAP32[($4 + 8 | 0) >> 2] | 0) + -1 | 0; + HEAP32[($4 + 8 | 0) >> 2] = $59; + if ($59) { + continue label$3 + } + break label$3; + }; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function sort_28btDbvtNode__2c_20btDbvtNode___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $62 = 0, $111 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 24 | 0) >> 2] = $0; + HEAP32[($4 + 20 | 0) >> 2] = $1; + HEAP32[($4 + 16 | 0) >> 2] = HEAP32[((HEAP32[($4 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + label$1 : { + if ((btDbvtNode__isinternal_28_29_20const(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$1 + } + __assert_fail(87305 | 0, 71457 | 0, 406 | 0, 67455 | 0); + wasm2js_trap(); + } + label$2 : { + label$3 : { + if (!((HEAP32[($4 + 16 | 0) >> 2] | 0) >>> 0 > (HEAP32[($4 + 24 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$3 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = indexof_28btDbvtNode_20const__29(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($4 + 8 | 0) >> 2] = 1 - (HEAP32[($4 + 12 | 0) >> 2] | 0) | 0; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[(((HEAP32[($4 + 16 | 0) >> 2] | 0) + 36 | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[$4 >> 2] = HEAP32[((HEAP32[($4 + 16 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + label$4 : { + if ((HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) == (HEAP32[(((HEAP32[($4 + 16 | 0) >> 2] | 0) + 36 | 0) + ((HEAP32[($4 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$4 + } + __assert_fail(83885 | 0, 71457 | 0, 413 | 0, 67455 | 0); + wasm2js_trap(); + } + label$5 : { + label$6 : { + if (!((HEAP32[$4 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $62 = HEAP32[($4 + 24 | 0) >> 2] | 0; + (wasm2js_i32$0 = ((HEAP32[$4 >> 2] | 0) + 36 | 0) + ((indexof_28btDbvtNode_20const__29(HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) | 0) << 2 | 0) | 0, wasm2js_i32$1 = $62), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + break label$5; + } + HEAP32[(HEAP32[($4 + 20 | 0) >> 2] | 0) >> 2] = HEAP32[($4 + 24 | 0) >> 2] | 0; + } + HEAP32[((HEAP32[($4 + 4 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[($4 + 24 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4 + 16 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[($4 + 24 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[$4 >> 2] | 0; + HEAP32[((HEAP32[($4 + 16 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[((HEAP32[($4 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4 + 16 | 0) >> 2] | 0) + 40 | 0) >> 2] = HEAP32[((HEAP32[($4 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[((HEAP32[((HEAP32[($4 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[($4 + 16 | 0) >> 2] | 0; + HEAP32[((HEAP32[((HEAP32[($4 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[($4 + 16 | 0) >> 2] | 0; + HEAP32[(((HEAP32[($4 + 24 | 0) >> 2] | 0) + 36 | 0) + ((HEAP32[($4 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[($4 + 16 | 0) >> 2] | 0; + HEAP32[(((HEAP32[($4 + 24 | 0) >> 2] | 0) + 36 | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + void_20btSwap_btDbvtAabbMm__28btDbvtAabbMm__2c_20btDbvtAabbMm__29(HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, HEAP32[($4 + 24 | 0) >> 2] | 0 | 0); + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 16 | 0) >> 2] | 0; + break label$2; + } + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 24 | 0) >> 2] | 0; + } + $111 = HEAP32[($4 + 28 | 0) >> 2] | 0; + __stack_pointer = $4 + 32 | 0; + return $111 | 0; + } + + function btDbvt__update_28btDbvtNode__2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $32 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = removeleaf_28btDbvt__2c_20btDbvtNode__29($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + label$3 : { + if (!((HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 12 | 0) >> 2] = 0; + label$4 : while (1) { + $32 = 0; + label$5 : { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + $32 = (HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0) != (0 | 0); + } + label$6 : { + if (!($32 & 1 | 0)) { + break label$6 + } + HEAP32[($5 + 16 | 0) >> 2] = HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + } + break label$4; + }; + break label$2; + } + HEAP32[($5 + 16 | 0) >> 2] = HEAP32[$6 >> 2] | 0; + } + } + insertleaf_28btDbvt__2c_20btDbvtNode__2c_20btDbvtNode__29($6 | 0, HEAP32[($5 + 16 | 0) >> 2] | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + __stack_pointer = $5 + 32 | 0; + return; + } + + function indexof_28btDbvtNode_20const__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[((HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) == (HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) & 1 | 0 | 0; + } + + function void_20btSwap_btDbvtAabbMm__28btDbvtAabbMm__2c_20btDbvtAabbMm__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, $4 = 0, $5 = 0, $26 = 0, $40 = 0, $25 = 0, $6 = 0, $12 = 0, $18 = 0, $28 = 0, $32 = 0, $36 = 0, $42 = 0, $48 = 0, $54 = 0, $82 = 0, $95 = 0, $108 = 0, $112 = 0, $120 = 0, $130 = 0, $140 = 0, $150 = 0, $156 = 0, $169 = 0, $182 = 0, $195 = 0; + $4 = __stack_pointer - 48 | 0; + HEAP32[($4 + 44 | 0) >> 2] = $0; + HEAP32[($4 + 40 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 44 | 0) >> 2] | 0; + $6 = 24; + i64toi32_i32$2 = $5 + $6 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $82 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 8 | 0) + $6 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $82; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $12 = 16; + i64toi32_i32$2 = $5 + $12 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $95 = i64toi32_i32$1; + i64toi32_i32$1 = ($4 + 8 | 0) + $12 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $95; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $18 = 8; + i64toi32_i32$2 = $5 + $18 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $108 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 8 | 0) + $18 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $108; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $5; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $112 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[(i64toi32_i32$1 + 8 | 0) >> 2] = $112; + HEAP32[(i64toi32_i32$1 + 12 | 0) >> 2] = i64toi32_i32$0; + $25 = HEAP32[(i64toi32_i32$1 + 40 | 0) >> 2] | 0; + $26 = HEAP32[(i64toi32_i32$1 + 44 | 0) >> 2] | 0; + i64toi32_i32$2 = $25; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $120 = i64toi32_i32$0; + i64toi32_i32$0 = $26; + HEAP32[i64toi32_i32$0 >> 2] = $120; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $28 = 24; + i64toi32_i32$2 = i64toi32_i32$2 + $28 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $130 = i64toi32_i32$1; + i64toi32_i32$1 = $26 + $28 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $130; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $32 = 16; + i64toi32_i32$2 = $25 + $32 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $140 = i64toi32_i32$0; + i64toi32_i32$0 = $26 + $32 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $140; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $36 = 8; + i64toi32_i32$2 = $25 + $36 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $150 = i64toi32_i32$1; + i64toi32_i32$1 = $26 + $36 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $150; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $40 = HEAP32[($4 + 40 | 0) >> 2] | 0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 12 | 0) >> 2] | 0; + $156 = i64toi32_i32$0; + i64toi32_i32$0 = $40; + HEAP32[i64toi32_i32$0 >> 2] = $156; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $42 = 24; + i64toi32_i32$2 = (i64toi32_i32$2 + 8 | 0) + $42 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $169 = i64toi32_i32$1; + i64toi32_i32$1 = $40 + $42 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $169; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $48 = 16; + i64toi32_i32$2 = ($4 + 8 | 0) + $48 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $182 = i64toi32_i32$0; + i64toi32_i32$0 = $40 + $48 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $182; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $54 = 8; + i64toi32_i32$2 = ($4 + 8 | 0) + $54 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $195 = i64toi32_i32$1; + i64toi32_i32$1 = $40 + $54 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $195; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function removeleaf_28btDbvt__2c_20btDbvtNode__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $58 = 0, $59 = 0, $65 = 0, $71 = 0, $100 = 0, $38 = 0, $249 = 0, $262 = 0, $275 = 0, $279 = 0, $112 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 64 | 0; + __stack_pointer = $4; + HEAP32[($4 + 56 | 0) >> 2] = $0; + HEAP32[($4 + 52 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!((HEAP32[($4 + 52 | 0) >> 2] | 0 | 0) == (HEAP32[(HEAP32[($4 + 56 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[(HEAP32[($4 + 56 | 0) >> 2] | 0) >> 2] = 0; + HEAP32[($4 + 60 | 0) >> 2] = 0; + break label$1; + } + HEAP32[($4 + 48 | 0) >> 2] = HEAP32[((HEAP32[($4 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[($4 + 44 | 0) >> 2] = HEAP32[((HEAP32[($4 + 48 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[(((HEAP32[($4 + 48 | 0) >> 2] | 0) + 36 | 0) + ((1 - (indexof_28btDbvtNode_20const__29(HEAP32[($4 + 52 | 0) >> 2] | 0 | 0) | 0) | 0) << 2 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_i32$1; + label$3 : { + if (!((HEAP32[($4 + 44 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $38 = HEAP32[($4 + 40 | 0) >> 2] | 0; + (wasm2js_i32$0 = ((HEAP32[($4 + 44 | 0) >> 2] | 0) + 36 | 0) + ((indexof_28btDbvtNode_20const__29(HEAP32[($4 + 48 | 0) >> 2] | 0 | 0) | 0) << 2 | 0) | 0, wasm2js_i32$1 = $38), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[((HEAP32[($4 + 40 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[($4 + 44 | 0) >> 2] | 0; + deletenode_28btDbvt__2c_20btDbvtNode__29(HEAP32[($4 + 56 | 0) >> 2] | 0 | 0, HEAP32[($4 + 48 | 0) >> 2] | 0 | 0); + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($4 + 44 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $58 = HEAP32[($4 + 44 | 0) >> 2] | 0; + $59 = 24; + i64toi32_i32$2 = $58 + $59 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $249 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 8 | 0) + $59 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $249; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $65 = 16; + i64toi32_i32$2 = $58 + $65 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $262 = i64toi32_i32$1; + i64toi32_i32$1 = ($4 + 8 | 0) + $65 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $262; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $71 = 8; + i64toi32_i32$2 = $58 + $71 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $275 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 8 | 0) + $71 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $275; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $58; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $279 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 8 | 0) >> 2] = $279; + HEAP32[($4 + 12 | 0) >> 2] = i64toi32_i32$0; + Merge_28btDbvtAabbMm_20const__2c_20btDbvtAabbMm_20const__2c_20btDbvtAabbMm__29(HEAP32[((HEAP32[($4 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($4 + 44 | 0) >> 2] | 0 | 0); + label$6 : { + label$7 : { + if (!((NotEqual_28btDbvtAabbMm_20const__2c_20btDbvtAabbMm_20const__29($4 + 8 | 0 | 0, HEAP32[($4 + 44 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$7 + } + HEAP32[($4 + 44 | 0) >> 2] = HEAP32[((HEAP32[($4 + 44 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + break label$6; + } + break label$4; + } + continue label$5; + }; + } + label$8 : { + label$9 : { + if (!((HEAP32[($4 + 44 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$9 + } + $100 = HEAP32[($4 + 44 | 0) >> 2] | 0; + break label$8; + } + $100 = HEAP32[(HEAP32[($4 + 56 | 0) >> 2] | 0) >> 2] | 0; + } + HEAP32[($4 + 60 | 0) >> 2] = $100; + break label$1; + } + HEAP32[(HEAP32[($4 + 56 | 0) >> 2] | 0) >> 2] = HEAP32[($4 + 40 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4 + 40 | 0) >> 2] | 0) + 32 | 0) >> 2] = 0; + deletenode_28btDbvt__2c_20btDbvtNode__29(HEAP32[($4 + 56 | 0) >> 2] | 0 | 0, HEAP32[($4 + 48 | 0) >> 2] | 0 | 0); + HEAP32[($4 + 60 | 0) >> 2] = HEAP32[(HEAP32[($4 + 56 | 0) >> 2] | 0) >> 2] | 0; + } + $112 = HEAP32[($4 + 60 | 0) >> 2] | 0; + __stack_pointer = $4 + 64 | 0; + return $112 | 0; + } + + function insertleaf_28btDbvt__2c_20btDbvtNode__2c_20btDbvtNode__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $85 = 0, $56 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + label$1 : { + label$2 : { + if ((HEAP32[(HEAP32[($5 + 28 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$2 + } + HEAP32[(HEAP32[($5 + 28 | 0) >> 2] | 0) >> 2] = HEAP32[($5 + 20 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 20 | 0) >> 2] | 0) + 32 | 0) >> 2] = 0; + break label$1; + } + label$3 : { + if ((btDbvtNode__isleaf_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$3 + } + label$4 : while (1) { + (wasm2js_i32$0 = $5, wasm2js_i32$1 = HEAP32[(((HEAP32[($5 + 24 | 0) >> 2] | 0) + 36 | 0) + ((Select_28btDbvtAabbMm_20const__2c_20btDbvtAabbMm_20const__2c_20btDbvtAabbMm_20const__29(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) | 0) << 2 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_i32$1; + if (((btDbvtNode__isleaf_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) ^ -1 | 0) & 1 | 0) { + continue label$4 + } + break label$4; + }; + } + HEAP32[($5 + 16 | 0) >> 2] = HEAP32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = createnode_28btDbvt__2c_20btDbvtNode__2c_20btDbvtAabbMm_20const__2c_20btDbvtAabbMm_20const__2c_20void__29(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0, HEAP32[($5 + 16 | 0) >> 2] | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + label$5 : { + label$6 : { + if (!((HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $56 = HEAP32[($5 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = ((HEAP32[($5 + 16 | 0) >> 2] | 0) + 36 | 0) + ((indexof_28btDbvtNode_20const__29(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) << 2 | 0) | 0, wasm2js_i32$1 = $56), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] = HEAP32[($5 + 20 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 20 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + label$7 : { + label$8 : while (1) { + label$9 : { + label$10 : { + if ((btDbvtAabbMm__Contain_28btDbvtAabbMm_20const__29_20const(HEAP32[($5 + 16 | 0) >> 2] | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$10 + } + Merge_28btDbvtAabbMm_20const__2c_20btDbvtAabbMm_20const__2c_20btDbvtAabbMm__29(HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($5 + 16 | 0) >> 2] | 0 | 0); + break label$9; + } + break label$7; + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + $85 = HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[($5 + 16 | 0) >> 2] = $85; + if ((0 | 0) != ($85 | 0) & 1 | 0) { + continue label$8 + } + break label$8; + }; + } + break label$5; + } + HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] = HEAP32[($5 + 20 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 20 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[(HEAP32[($5 + 28 | 0) >> 2] | 0) >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + } + } + __stack_pointer = $5 + 32 | 0; + return; + } + + function btDbvt__insert_28btDbvtAabbMm_20const__2c_20void__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $16 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = createnode_28btDbvt__2c_20btDbvtNode__2c_20btDbvtAabbMm_20const__2c_20void__29($6 | 0, 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + insertleaf_28btDbvt__2c_20btDbvtNode__2c_20btDbvtNode__29($6 | 0, HEAP32[$6 >> 2] | 0 | 0, HEAP32[$5 >> 2] | 0 | 0); + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + $16 = HEAP32[$5 >> 2] | 0; + __stack_pointer = $5 + 16 | 0; + return $16 | 0; + } + + function createnode_28btDbvt__2c_20btDbvtNode__2c_20void__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$1 = 0, $20 = 0, i64toi32_i32$0 = 0, $21 = 0, $39 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + label$1 : { + label$2 : { + if (!((HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[$5 >> 2] = HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = 0; + break label$1; + } + $20 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(44 | 0, 16 | 0) | 0; + i64toi32_i32$0 = 0; + $21 = 0; + i64toi32_i32$1 = $20; + HEAP32[i64toi32_i32$1 >> 2] = $21; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[(i64toi32_i32$1 + 40 | 0) >> 2] = 0; + i64toi32_i32$1 = i64toi32_i32$1 + 32 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $21; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $20 + 24 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $21; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $20 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $21; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $20 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $21; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btDbvtNode__btDbvtNode_28_29($20 | 0) | 0; + HEAP32[$5 >> 2] = $20; + } + HEAP32[((HEAP32[$5 >> 2] | 0) + 32 | 0) >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5 >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($5 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5 >> 2] | 0) + 40 | 0) >> 2] = 0; + $39 = HEAP32[$5 >> 2] | 0; + __stack_pointer = $5 + 16 | 0; + return $39 | 0; + } + + function Select_28btDbvtAabbMm_20const__2c_20btDbvtAabbMm_20const__2c_20btDbvtAabbMm_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $17 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $17 = Math_fround(Proximity_28btDbvtAabbMm_20const__2c_20btDbvtAabbMm_20const__29(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0)) < Math_fround(Proximity_28btDbvtAabbMm_20const__2c_20btDbvtAabbMm_20const__29(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0)) & 1 | 0 ? 0 : 1; + __stack_pointer = $5 + 16 | 0; + return $17 | 0; + } + + function btDbvtAabbMm__Contain_28btDbvtAabbMm_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $15 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + $15 = 0; + label$1 : { + if (!(Math_fround(HEAPF32[(btVector3__x_28_29_20const($5 | 0) | 0) >> 2]) <= Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2]) & 1 | 0)) { + break label$1 + } + $15 = 0; + if (!(Math_fround(HEAPF32[(btVector3__y_28_29_20const($5 | 0) | 0) >> 2]) <= Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2]) & 1 | 0)) { + break label$1 + } + $15 = 0; + if (!(Math_fround(HEAPF32[(btVector3__z_28_29_20const($5 | 0) | 0) >> 2]) <= Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2]) & 1 | 0)) { + break label$1 + } + $15 = 0; + if (!(Math_fround(HEAPF32[(btVector3__x_28_29_20const($5 + 16 | 0 | 0) | 0) >> 2]) >= Math_fround(HEAPF32[(btVector3__x_28_29_20const((HEAP32[($4 + 8 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) >> 2]) & 1 | 0)) { + break label$1 + } + $15 = 0; + if (!(Math_fround(HEAPF32[(btVector3__y_28_29_20const($5 + 16 | 0 | 0) | 0) >> 2]) >= Math_fround(HEAPF32[(btVector3__y_28_29_20const((HEAP32[($4 + 8 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) >> 2]) & 1 | 0)) { + break label$1 + } + $15 = Math_fround(HEAPF32[(btVector3__z_28_29_20const($5 + 16 | 0 | 0) | 0) >> 2]) >= Math_fround(HEAPF32[(btVector3__z_28_29_20const((HEAP32[($4 + 8 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) >> 2]); + } + __stack_pointer = $4 + 16 | 0; + return $15 & 1 | 0 | 0; + } + + function NotEqual_28btDbvtAabbMm_20const__2c_20btDbvtAabbMm_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $15 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $15 = 1; + label$1 : { + if (Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0) >> 2]) != Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2]) & 1 | 0) { + break label$1 + } + $15 = 1; + if (Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0) >> 2]) != Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2]) & 1 | 0) { + break label$1 + } + $15 = 1; + if (Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0) >> 2]) != Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2]) & 1 | 0) { + break label$1 + } + $15 = 1; + if (Math_fround(HEAPF32[(btVector3__x_28_29_20const((HEAP32[($4 + 12 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) >> 2]) != Math_fround(HEAPF32[(btVector3__x_28_29_20const((HEAP32[($4 + 8 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) >> 2]) & 1 | 0) { + break label$1 + } + $15 = 1; + if (Math_fround(HEAPF32[(btVector3__y_28_29_20const((HEAP32[($4 + 12 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) >> 2]) != Math_fround(HEAPF32[(btVector3__y_28_29_20const((HEAP32[($4 + 8 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) >> 2]) & 1 | 0) { + break label$1 + } + $15 = Math_fround(HEAPF32[(btVector3__z_28_29_20const((HEAP32[($4 + 12 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) >> 2]) != Math_fround(HEAPF32[(btVector3__z_28_29_20const((HEAP32[($4 + 8 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) >> 2]); + } + __stack_pointer = $4 + 16 | 0; + return $15 & 1 | 0 | 0; + } + + function btDbvt__update_28btDbvtNode__2c_20btDbvtAabbMm__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $6 = 0, $49 = 0, $48 = 0, $32 = 0, $51 = 0, $55 = 0, $59 = 0, $168 = 0, $178 = 0, $188 = 0, $198 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = removeleaf_28btDbvt__2c_20btDbvtNode__29($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + label$3 : { + if (!((HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 12 | 0) >> 2] = 0; + label$4 : while (1) { + $32 = 0; + label$5 : { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + $32 = (HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0) != (0 | 0); + } + label$6 : { + if (!($32 & 1 | 0)) { + break label$6 + } + HEAP32[($5 + 16 | 0) >> 2] = HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + } + break label$4; + }; + break label$2; + } + HEAP32[($5 + 16 | 0) >> 2] = HEAP32[$6 >> 2] | 0; + } + } + $48 = HEAP32[($5 + 20 | 0) >> 2] | 0; + $49 = HEAP32[($5 + 24 | 0) >> 2] | 0; + i64toi32_i32$2 = $48; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $168 = i64toi32_i32$0; + i64toi32_i32$0 = $49; + HEAP32[i64toi32_i32$0 >> 2] = $168; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $51 = 24; + i64toi32_i32$2 = i64toi32_i32$2 + $51 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $178 = i64toi32_i32$1; + i64toi32_i32$1 = $49 + $51 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $178; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $55 = 16; + i64toi32_i32$2 = $48 + $55 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $188 = i64toi32_i32$0; + i64toi32_i32$0 = $49 + $55 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $188; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $59 = 8; + i64toi32_i32$2 = $48 + $59 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $198 = i64toi32_i32$1; + i64toi32_i32$1 = $49 + $59 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $198; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + insertleaf_28btDbvt__2c_20btDbvtNode__2c_20btDbvtNode__29($6 | 0, HEAP32[($5 + 16 | 0) >> 2] | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + __stack_pointer = $5 + 32 | 0; + return; + } + + function btDbvt__update_28btDbvtNode__2c_20btDbvtAabbMm__2c_20btVector3_20const__2c_20float_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = Math_fround($4); + var $7 = 0, $23 = 0, $8 = 0, $17 = 0, $36 = 0; + $7 = __stack_pointer - 48 | 0; + __stack_pointer = $7; + HEAP32[($7 + 40 | 0) >> 2] = $0; + HEAP32[($7 + 36 | 0) >> 2] = $1; + HEAP32[($7 + 32 | 0) >> 2] = $2; + HEAP32[($7 + 28 | 0) >> 2] = $3; + HEAPF32[($7 + 24 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 40 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((btDbvtAabbMm__Contain_28btDbvtAabbMm_20const__29_20const(HEAP32[($7 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7 + 32 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$2 + } + HEAP8[($7 + 47 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + $17 = HEAP32[($7 + 32 | 0) >> 2] | 0; + $23 = $7 + 24 | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 8 | 0 | 0, $23 | 0, $23 | 0, $23 | 0) | 0; + btDbvtAabbMm__Expand_28btVector3_20const__29($17 | 0, $7 + 8 | 0 | 0); + btDbvtAabbMm__SignedExpand_28btVector3_20const__29(HEAP32[($7 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7 + 28 | 0) >> 2] | 0 | 0); + btDbvt__update_28btDbvtNode__2c_20btDbvtAabbMm__29($8 | 0, HEAP32[($7 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7 + 32 | 0) >> 2] | 0 | 0); + HEAP8[($7 + 47 | 0) >> 0] = 1 & 1 | 0; + } + $36 = (HEAPU8[($7 + 47 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $7 + 48 | 0; + return $36 | 0; + } + + function btDbvtAabbMm__Expand_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btVector3__operator___28btVector3_20const__29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($5 + 16 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btDbvtAabbMm__SignedExpand_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + btVector3__setX_28float_29($5 + 16 | 0 | 0, Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($5 + 16 | 0 | 0) | 0) >> 2]) + Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2])))); + break label$1; + } + btVector3__setX_28float_29($5 | 0, Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($5 | 0) | 0) >> 2]) + Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2])))); + } + label$3 : { + label$4 : { + if (!(Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$4 + } + btVector3__setY_28float_29($5 + 16 | 0 | 0, Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($5 + 16 | 0 | 0) | 0) >> 2]) + Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2])))); + break label$3; + } + btVector3__setY_28float_29($5 | 0, Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($5 | 0) | 0) >> 2]) + Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2])))); + } + label$5 : { + label$6 : { + if (!(Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$6 + } + btVector3__setZ_28float_29($5 + 16 | 0 | 0, Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($5 + 16 | 0 | 0) | 0) >> 2]) + Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2])))); + break label$5; + } + btVector3__setZ_28float_29($5 | 0, Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($5 | 0) | 0) >> 2]) + Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2])))); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btDbvt__remove_28btDbvtNode__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + removeleaf_28btDbvt__2c_20btDbvtNode__29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + deletenode_28btDbvt__2c_20btDbvtNode__29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + -1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btDbvtNode__btDbvtNode_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btDbvtAabbMm__btDbvtAabbMm_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function Proximity_28btDbvtAabbMm_20const__2c_20btDbvtAabbMm_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $47 = Math_fround(0); + $4 = __stack_pointer - 64 | 0; + __stack_pointer = $4; + HEAP32[($4 + 60 | 0) >> 2] = $0; + HEAP32[($4 + 56 | 0) >> 2] = $1; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($4 + 24 | 0 | 0, HEAP32[($4 + 60 | 0) >> 2] | 0 | 0, (HEAP32[($4 + 60 | 0) >> 2] | 0) + 16 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($4 + 8 | 0 | 0, HEAP32[($4 + 56 | 0) >> 2] | 0 | 0, (HEAP32[($4 + 56 | 0) >> 2] | 0) + 16 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($4 + 40 | 0 | 0, $4 + 24 | 0 | 0, $4 + 8 | 0 | 0); + $47 = Math_fround(Math_fround(Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($4 + 40 | 0 | 0) | 0) >> 2])))) + Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($4 + 40 | 0 | 0) | 0) >> 2]))))) + Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($4 + 40 | 0 | 0) | 0) >> 2]))))); + __stack_pointer = $4 + 64 | 0; + return Math_fround($47); + } + + function _GLOBAL__sub_I_btDbvt_cpp() { + __cxx_global_var_init_3(); + return; + } + + function __cxx_global_var_init_4() { + btInfMaskConverter__btInfMaskConverter_28int_29(113936 | 0, 2139095040 | 0) | 0; + return; + } + + function btDbvtBroadphase__btDbvtBroadphase_28btOverlappingPairCache__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0, $66 = 0, $10 = 0, $13 = 0, $14 = 0, $16 = 0, $61 = 0, $64 = 0, $12 = 0, $54 = 0, $98 = 0; + $4 = __stack_pointer - 48 | 0; + __stack_pointer = $4; + HEAP32[($4 + 40 | 0) >> 2] = $0; + HEAP32[($4 + 36 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 40 | 0) >> 2] | 0; + HEAP32[($4 + 44 | 0) >> 2] = $5; + btBroadphaseInterface__btBroadphaseInterface_28_29($5 | 0) | 0; + HEAP32[$5 >> 2] = 90076 + 8 | 0; + $10 = $5 + 4 | 0; + $12 = $10 + 80 | 0; + $13 = $10; + label$1 : while (1) { + $14 = $13; + btDbvt__btDbvt_28_29($14 | 0) | 0; + $16 = $14 + 40 | 0; + $13 = $16; + if (!(($16 | 0) == ($12 | 0) & 1 | 0)) { + continue label$1 + } + break label$1; + }; + btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____btAlignedObjectArray_28_29($5 + 156 | 0 | 0) | 0; + HEAP8[($5 + 153 | 0) >> 0] = 0; + HEAP8[($5 + 154 | 0) >> 0] = 1; + HEAP8[($5 + 152 | 0) >> 0] = ((HEAP32[($4 + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0 ? 0 : 1) & 1 | 0; + HEAPF32[($5 + 100 | 0) >> 2] = Math_fround(0 | 0); + HEAP32[($5 + 104 | 0) >> 2] = 0; + HEAP32[($5 + 124 | 0) >> 2] = 0; + HEAP32[($5 + 108 | 0) >> 2] = 1; + HEAP32[($5 + 112 | 0) >> 2] = 0; + HEAP32[($5 + 116 | 0) >> 2] = 10; + HEAP32[($5 + 120 | 0) >> 2] = 1; + HEAP32[($5 + 128 | 0) >> 2] = 0; + HEAP32[($5 + 132 | 0) >> 2] = 0; + HEAPF32[($5 + 136 | 0) >> 2] = Math_fround(0 | 0); + $54 = (HEAP32[($4 + 36 | 0) >> 2] | 0 | 0) != (0 | 0); + HEAP8[($4 + 27 | 0) >> 0] = 0 & 1 | 0; + label$2 : { + label$3 : { + if (!($54 & 1 | 0)) { + break label$3 + } + $61 = HEAP32[($4 + 36 | 0) >> 2] | 0; + break label$2; + } + $64 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(72 | 0, 16 | 0) | 0; + $66 = btHashedOverlappingPairCache__operator_20new_28unsigned_20long_2c_20void__29(72 | 0, $64 | 0) | 0; + HEAP32[($4 + 32 | 0) >> 2] = $66; + HEAP32[($4 + 28 | 0) >> 2] = $64; + HEAP8[($4 + 27 | 0) >> 0] = 1 & 1 | 0; + btHashedOverlappingPairCache__btHashedOverlappingPairCache_28_29($66 | 0) | 0; + $61 = $66; + } + HEAP32[($5 + 96 | 0) >> 2] = $61; + HEAP32[($5 + 148 | 0) >> 2] = 0; + HEAP32[($5 + 140 | 0) >> 2] = 0; + HEAP32[($5 + 144 | 0) >> 2] = 0; + HEAP32[($4 + 20 | 0) >> 2] = 0; + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($4 + 20 | 0) >> 2] | 0 | 0) <= (2 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[(($5 + 84 | 0) + ((HEAP32[($4 + 20 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = 0; + HEAP32[($4 + 20 | 0) >> 2] = (HEAP32[($4 + 20 | 0) >> 2] | 0) + 1 | 0; + continue label$5; + }; + } + btAlignedObjectArray_btDbvtNode_20const____btAlignedObjectArray_28_29($4 | 0) | 0; + btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____resize_28int_2c_20btAlignedObjectArray_btDbvtNode_20const___20const__29($5 + 156 | 0 | 0, 1 | 0, $4 | 0); + btAlignedObjectArray_btDbvtNode_20const_____btAlignedObjectArray_28_29($4 | 0) | 0; + $98 = HEAP32[($4 + 44 | 0) >> 2] | 0; + __stack_pointer = $4 + 48 | 0; + return $98 | 0; + } + + function btBroadphaseInterface__btBroadphaseInterface_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 90204 + 8 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btAlignedObjectArray_btDbvtNode_20const___2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btHashedOverlappingPairCache__operator_20new_28unsigned_20long_2c_20void__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return HEAP32[($4 + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btDbvtNode_20const____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btDbvtNode_20const__2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btDbvtNode_20const____init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____resize_28int_2c_20btAlignedObjectArray_btDbvtNode_20const___20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____size_28_29_20const($6 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + btAlignedObjectArray_btDbvtNode_20const_____btAlignedObjectArray_28_29((HEAP32[($6 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 12 | 0) >> 2] | 0, 20) | 0 | 0) | 0; + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + break label$1; + } + label$5 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) > (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____reserve_28int_29($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + btAlignedObjectArray_btDbvtNode_20const____btAlignedObjectArray_28btAlignedObjectArray_btDbvtNode_20const___20const__29((HEAP32[($6 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 8 | 0) >> 2] | 0, 20) | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btAlignedObjectArray_btDbvtNode_20const_____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btDbvtNode_20const____clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedAllocator_btAlignedObjectArray_btDbvtNode_20const___2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____copy_28int_2c_20int_2c_20btAlignedObjectArray_btDbvtNode_20const____29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btDbvtNode_20const____btAlignedObjectArray_28btAlignedObjectArray_btDbvtNode_20const___20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $8 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btDbvtNode_20const__2c_2016u___btAlignedAllocator_28_29($5 | 0) | 0; + btAlignedObjectArray_btDbvtNode_20const____init_28_29($5 | 0); + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btDbvtNode_20const____size_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + $8 = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 0; + btAlignedObjectArray_btDbvtNode_20const____resize_28int_2c_20btDbvtNode_20const__20const__29($5 | 0, $8 | 0, $4 | 0); + btAlignedObjectArray_btDbvtNode_20const____copy_28int_2c_20int_2c_20btDbvtNode_20const___29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function btAlignedAllocator_btDbvtNode_20const__2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btDbvtNode_20const____init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btAlignedObjectArray_btDbvtNode_20const____clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btDbvtNode_20const____destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btDbvtNode_20const____size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btDbvtNode_20const____deallocate_28_29($4 | 0); + btAlignedObjectArray_btDbvtNode_20const____init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btDbvtBroadphase___btDbvtBroadphase_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0, $24 = 0, $11 = 0, $18 = 0, $21 = 0, $30 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $4; + HEAP32[$4 >> 2] = 90076 + 8 | 0; + label$1 : { + if (!((HEAPU8[($4 + 152 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + $11 = HEAP32[($4 + 96 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$11 >> 2] | 0) >> 2] | 0 | 0]($11) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 96 | 0) >> 2] | 0 | 0); + } + btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const______btAlignedObjectArray_28_29($4 + 156 | 0 | 0) | 0; + $18 = $4 + 4 | 0; + $21 = $18 + 80 | 0; + label$2 : while (1) { + $24 = $21 + -40 | 0; + btDbvt___btDbvt_28_29($24 | 0) | 0; + $21 = $24; + if (!(($24 | 0) == ($18 | 0) & 1 | 0)) { + continue label$2 + } + break label$2; + }; + btBroadphaseInterface___btBroadphaseInterface_28_29($4 | 0) | 0; + $30 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $30 | 0; + } + + function btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const______btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btBroadphaseInterface___btBroadphaseInterface_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____deallocate_28_29($4 | 0); + btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btDbvtBroadphase___btDbvtBroadphase_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[443 | 0]($4) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btDbvtBroadphase__createProxy_28btVector3_20const__2c_20btVector3_20const__2c_20int_2c_20void__2c_20int_2c_20int_2c_20btDispatcher__29($0, $1, $2, $3, $4, $5, $6, $7) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + var $10 = 0, $11 = 0, $16 = 0, $31 = 0, $39 = 0, $70 = 0; + $10 = __stack_pointer - 80 | 0; + __stack_pointer = $10; + HEAP32[($10 + 76 | 0) >> 2] = $0; + HEAP32[($10 + 72 | 0) >> 2] = $1; + HEAP32[($10 + 68 | 0) >> 2] = $2; + HEAP32[($10 + 64 | 0) >> 2] = $3; + HEAP32[($10 + 60 | 0) >> 2] = $4; + HEAP32[($10 + 56 | 0) >> 2] = $5; + HEAP32[($10 + 52 | 0) >> 2] = $6; + HEAP32[($10 + 48 | 0) >> 2] = $7; + $11 = HEAP32[($10 + 76 | 0) >> 2] | 0; + $16 = btBroadphaseProxy__operator_20new_28unsigned_20long_2c_20void__29(64 | 0, btAlignedAllocInternal_28unsigned_20long_2c_20int_29(64 | 0, 16 | 0) | 0 | 0) | 0; + btDbvtProxy__btDbvtProxy_28btVector3_20const__2c_20btVector3_20const__2c_20void__2c_20int_2c_20int_29($16 | 0, HEAP32[($10 + 72 | 0) >> 2] | 0 | 0, HEAP32[($10 + 68 | 0) >> 2] | 0 | 0, HEAP32[($10 + 60 | 0) >> 2] | 0 | 0, HEAP32[($10 + 56 | 0) >> 2] | 0 | 0, HEAP32[($10 + 52 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($10 + 44 | 0) >> 2] = $16; + btDbvtAabbMm__FromMM_28btVector3_20const__2c_20btVector3_20const__29($10 + 12 | 0 | 0, HEAP32[($10 + 72 | 0) >> 2] | 0 | 0, HEAP32[($10 + 68 | 0) >> 2] | 0 | 0); + HEAP32[((HEAP32[($10 + 44 | 0) >> 2] | 0) + 60 | 0) >> 2] = HEAP32[($11 + 104 | 0) >> 2] | 0; + $31 = (HEAP32[($11 + 148 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($11 + 148 | 0) >> 2] = $31; + HEAP32[((HEAP32[($10 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] = $31; + $39 = btDbvt__insert_28btDbvtAabbMm_20const__2c_20void__29($11 + 4 | 0 | 0, $10 + 12 | 0 | 0, HEAP32[($10 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($10 + 44 | 0) >> 2] | 0) + 48 | 0) >> 2] = $39; + void_20listappend_btDbvtProxy__28btDbvtProxy__2c_20btDbvtProxy___29(HEAP32[($10 + 44 | 0) >> 2] | 0 | 0, ($11 + 84 | 0) + ((HEAP32[($11 + 104 | 0) >> 2] | 0) << 2 | 0) | 0 | 0); + label$1 : { + if ((HEAPU8[($11 + 153 | 0) >> 0] | 0) & 1 | 0) { + break label$1 + } + btDbvtTreeCollider__btDbvtTreeCollider_28btDbvtBroadphase__29($10 | 0, $11 | 0) | 0; + HEAP32[($10 + 8 | 0) >> 2] = HEAP32[($10 + 44 | 0) >> 2] | 0; + btDbvt__collideTV_28btDbvtNode_20const__2c_20btDbvtAabbMm_20const__2c_20btDbvt__ICollide__29_20const($11 + 4 | 0 | 0, HEAP32[($11 + 4 | 0) >> 2] | 0 | 0, $10 + 12 | 0 | 0, $10 | 0); + btDbvt__collideTV_28btDbvtNode_20const__2c_20btDbvtAabbMm_20const__2c_20btDbvt__ICollide__29_20const(($11 + 4 | 0) + 40 | 0 | 0, HEAP32[($11 + 44 | 0) >> 2] | 0 | 0, $10 + 12 | 0 | 0, $10 | 0); + btDbvtTreeCollider___btDbvtTreeCollider_28_29($10 | 0) | 0; + } + $70 = HEAP32[($10 + 44 | 0) >> 2] | 0; + __stack_pointer = $10 + 80 | 0; + return $70 | 0; + } + + function btBroadphaseProxy__operator_20new_28unsigned_20long_2c_20void__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return HEAP32[($4 + 8 | 0) >> 2] | 0 | 0; + } + + function btDbvtProxy__btDbvtProxy_28btVector3_20const__2c_20btVector3_20const__2c_20void__2c_20int_2c_20int_29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, $9 = 0; + $8 = __stack_pointer - 32 | 0; + __stack_pointer = $8; + HEAP32[($8 + 28 | 0) >> 2] = $0; + HEAP32[($8 + 24 | 0) >> 2] = $1; + HEAP32[($8 + 20 | 0) >> 2] = $2; + HEAP32[($8 + 16 | 0) >> 2] = $3; + HEAP32[($8 + 12 | 0) >> 2] = $4; + HEAP32[($8 + 8 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 28 | 0) >> 2] | 0; + btBroadphaseProxy__btBroadphaseProxy_28btVector3_20const__2c_20btVector3_20const__2c_20void__2c_20int_2c_20int_29($9 | 0, HEAP32[($8 + 24 | 0) >> 2] | 0 | 0, HEAP32[($8 + 20 | 0) >> 2] | 0 | 0, HEAP32[($8 + 16 | 0) >> 2] | 0 | 0, HEAP32[($8 + 12 | 0) >> 2] | 0 | 0, HEAP32[($8 + 8 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($9 + 56 | 0) >> 2] = 0; + HEAP32[($9 + 52 | 0) >> 2] = 0; + __stack_pointer = $8 + 32 | 0; + return $9 | 0; + } + + function btDbvtAabbMm__FromMM_28btVector3_20const__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5 = 0, $8 = 0, $14 = 0, $16 = 0, $38 = 0, $48 = 0, $57 = 0, $67 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $1; + HEAP32[($5 + 8 | 0) >> 2] = $2; + btDbvtAabbMm__btDbvtAabbMm_28_29($0 | 0) | 0; + i64toi32_i32$2 = HEAP32[($5 + 12 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $38 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $38; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $8 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $48 = i64toi32_i32$1; + i64toi32_i32$1 = $0 + $8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $48; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $14 = $0 + 16 | 0; + i64toi32_i32$2 = HEAP32[($5 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $57 = i64toi32_i32$0; + i64toi32_i32$0 = $14; + HEAP32[i64toi32_i32$0 >> 2] = $57; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $16 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $16 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $67 = i64toi32_i32$1; + i64toi32_i32$1 = $14 + $16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $67; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $5 + 16 | 0; + return; + } + + function void_20listappend_btDbvtProxy__28btDbvtProxy__2c_20btDbvtProxy___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 52 | 0) >> 2] = 0; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 56 | 0) >> 2] = HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[((HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0) + 52 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + } + HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + return; + } + + function btDbvtTreeCollider__btDbvtTreeCollider_28btDbvtBroadphase__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btDbvt__ICollide__ICollide_28_29($5 | 0) | 0; + HEAP32[$5 >> 2] = 90268 + 8 | 0; + HEAP32[($5 + 4 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function btDbvt__collideTV_28btDbvtNode_20const__2c_20btDbvtAabbMm_20const__2c_20btDbvt__ICollide__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $14 = 0, $15 = 0, $21 = 0, $27 = 0, $98 = 0, $156 = 0, $169 = 0, $182 = 0, $186 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 352 | 0; + __stack_pointer = $6; + HEAP32[($6 + 348 | 0) >> 2] = $0; + HEAP32[($6 + 344 | 0) >> 2] = $1; + HEAP32[($6 + 340 | 0) >> 2] = $2; + HEAP32[($6 + 336 | 0) >> 2] = $3; + label$1 : { + if (!((HEAP32[($6 + 344 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + $14 = HEAP32[($6 + 340 | 0) >> 2] | 0; + $15 = 24; + i64toi32_i32$2 = $14 + $15 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $156 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 304 | 0) + $15 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $156; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $21 = 16; + i64toi32_i32$2 = $14 + $21 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $169 = i64toi32_i32$1; + i64toi32_i32$1 = ($6 + 304 | 0) + $21 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $169; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $27 = 8; + i64toi32_i32$2 = $14 + $27 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $182 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 304 | 0) + $27 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $182; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $14; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $186 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 304 | 0) >> 2] = $186; + HEAP32[($6 + 308 | 0) >> 2] = i64toi32_i32$0; + btAlignedObjectArray_btDbvtNode_20const____btAlignedObjectArray_28_29($6 + 284 | 0 | 0) | 0; + HEAP32[($6 + 280 | 0) >> 2] = 0; + btAlignedObjectArray_btDbvtNode_20const____resize_28int_2c_20btDbvtNode_20const__20const__29($6 + 284 | 0 | 0, 0 | 0, $6 + 280 | 0 | 0); + btAlignedObjectArray_btDbvtNode_20const____initializeFromBuffer_28void__2c_20int_2c_20int_29($6 + 284 | 0 | 0, $6 + 16 | 0 | 0, 0 | 0, 64 | 0); + btAlignedObjectArray_btDbvtNode_20const____push_back_28btDbvtNode_20const__20const__29($6 + 284 | 0 | 0, $6 + 344 | 0 | 0); + label$2 : while (1) { + (wasm2js_i32$0 = $6, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btDbvtNode_20const____operator_5b_5d_28int_29($6 + 284 | 0 | 0, (btAlignedObjectArray_btDbvtNode_20const____size_28_29_20const($6 + 284 | 0 | 0) | 0) - 1 | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btDbvtNode_20const____pop_back_28_29($6 + 284 | 0 | 0); + label$3 : { + if (!((Intersect_28btDbvtAabbMm_20const__2c_20btDbvtAabbMm_20const__29(HEAP32[($6 + 12 | 0) >> 2] | 0 | 0, $6 + 304 | 0 | 0) | 0) & 1 | 0)) { + break label$3 + } + label$4 : { + label$5 : { + if (!((btDbvtNode__isinternal_28_29_20const(HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$5 + } + btAlignedObjectArray_btDbvtNode_20const____push_back_28btDbvtNode_20const__20const__29($6 + 284 | 0 | 0, (HEAP32[($6 + 12 | 0) >> 2] | 0) + 36 | 0 | 0); + btAlignedObjectArray_btDbvtNode_20const____push_back_28btDbvtNode_20const__20const__29($6 + 284 | 0 | 0, ((HEAP32[($6 + 12 | 0) >> 2] | 0) + 36 | 0) + 4 | 0 | 0); + break label$4; + } + $98 = HEAP32[($6 + 336 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$98 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($98, HEAP32[($6 + 12 | 0) >> 2] | 0); + } + } + if ((btAlignedObjectArray_btDbvtNode_20const____size_28_29_20const($6 + 284 | 0 | 0) | 0 | 0) > (0 | 0) & 1 | 0) { + continue label$2 + } + break label$2; + }; + btAlignedObjectArray_btDbvtNode_20const_____btAlignedObjectArray_28_29($6 + 284 | 0 | 0) | 0; + } + __stack_pointer = $6 + 352 | 0; + return; + } + + function btDbvtTreeCollider___btDbvtTreeCollider_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btDbvt__ICollide___ICollide_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btBroadphaseProxy__btBroadphaseProxy_28btVector3_20const__2c_20btVector3_20const__2c_20void__2c_20int_2c_20int_29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $8 = 0, $9 = 0, $14 = 0, $17 = 0, $22 = 0, $25 = 0, $67 = 0, $77 = 0, $86 = 0, $96 = 0; + $8 = __stack_pointer - 32 | 0; + HEAP32[($8 + 28 | 0) >> 2] = $0; + HEAP32[($8 + 24 | 0) >> 2] = $1; + HEAP32[($8 + 20 | 0) >> 2] = $2; + HEAP32[($8 + 16 | 0) >> 2] = $3; + HEAP32[($8 + 12 | 0) >> 2] = $4; + HEAP32[($8 + 8 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 28 | 0) >> 2] | 0; + HEAP32[$9 >> 2] = HEAP32[($8 + 16 | 0) >> 2] | 0; + HEAP32[($9 + 4 | 0) >> 2] = HEAP32[($8 + 12 | 0) >> 2] | 0; + HEAP32[($9 + 8 | 0) >> 2] = HEAP32[($8 + 8 | 0) >> 2] | 0; + $14 = $9 + 16 | 0; + i64toi32_i32$2 = HEAP32[($8 + 24 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $67 = i64toi32_i32$0; + i64toi32_i32$0 = $14; + HEAP32[i64toi32_i32$0 >> 2] = $67; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $17 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $17 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $77 = i64toi32_i32$1; + i64toi32_i32$1 = $14 + $17 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $77; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $22 = $9 + 32 | 0; + i64toi32_i32$2 = HEAP32[($8 + 20 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $86 = i64toi32_i32$0; + i64toi32_i32$0 = $22; + HEAP32[i64toi32_i32$0 >> 2] = $86; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $25 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $25 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $96 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $25 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $96; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return $9 | 0; + } + + function btDbvtAabbMm__btDbvtAabbMm_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btVector3__btVector3_28_29($4 | 0) | 0; + btVector3__btVector3_28_29($4 + 16 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btDbvt__ICollide__ICollide_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 90364 + 8 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btDbvtNode_20const____resize_28int_2c_20btDbvtNode_20const__20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btDbvtNode_20const____size_28_29_20const($6 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + break label$1; + } + label$5 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) > (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + btAlignedObjectArray_btDbvtNode_20const____reserve_28int_29($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[(HEAP32[($5 + 20 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btAlignedObjectArray_btDbvtNode_20const____initializeFromBuffer_28void__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btDbvtNode_20const____clear_28_29($7 | 0); + HEAP8[($7 + 16 | 0) >> 0] = 0; + HEAP32[($7 + 12 | 0) >> 2] = HEAP32[($6 + 8 | 0) >> 2] | 0; + HEAP32[($7 + 4 | 0) >> 2] = HEAP32[($6 + 4 | 0) >> 2] | 0; + HEAP32[($7 + 8 | 0) >> 2] = HEAP32[$6 >> 2] | 0; + __stack_pointer = $6 + 16 | 0; + return; + } + + function btAlignedObjectArray_btDbvtNode_20const____push_back_28btDbvtNode_20const__20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btDbvtNode_20const____size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btDbvtNode_20const____capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btDbvtNode_20const____reserve_28int_29($5 | 0, btAlignedObjectArray_btDbvtNode_20const____allocSize_28int_29($5 | 0, btAlignedObjectArray_btDbvtNode_20const____size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btDbvtNode_20const____size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btDbvtNode_20const____operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btDbvtNode_20const____size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 2 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btAlignedObjectArray_btDbvtNode_20const____pop_back_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85800 | 0, 78192 | 0, 201 | 0, 77711 | 0); + wasm2js_trap(); + } + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + -1 | 0; + __stack_pointer = $3 + 16 | 0; + return; + } + + function Intersect_28btDbvtAabbMm_20const__2c_20btDbvtAabbMm_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $17 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $17 = 0; + label$1 : { + if (!(Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0) >> 2]) <= Math_fround(HEAPF32[(btVector3__x_28_29_20const((HEAP32[($4 + 8 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) >> 2]) & 1 | 0)) { + break label$1 + } + $17 = 0; + if (!(Math_fround(HEAPF32[(btVector3__x_28_29_20const((HEAP32[($4 + 12 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) >> 2]) >= Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2]) & 1 | 0)) { + break label$1 + } + $17 = 0; + if (!(Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0) >> 2]) <= Math_fround(HEAPF32[(btVector3__y_28_29_20const((HEAP32[($4 + 8 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) >> 2]) & 1 | 0)) { + break label$1 + } + $17 = 0; + if (!(Math_fround(HEAPF32[(btVector3__y_28_29_20const((HEAP32[($4 + 12 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) >> 2]) >= Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2]) & 1 | 0)) { + break label$1 + } + $17 = 0; + if (!(Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0) >> 2]) <= Math_fround(HEAPF32[(btVector3__z_28_29_20const((HEAP32[($4 + 8 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) >> 2]) & 1 | 0)) { + break label$1 + } + $17 = Math_fround(HEAPF32[(btVector3__z_28_29_20const((HEAP32[($4 + 12 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) >> 2]) >= Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2]); + } + __stack_pointer = $4 + 16 | 0; + return $17 & 1 | 0 | 0; + } + + function btDbvtNode__isinternal_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $9 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $9 = ((btDbvtNode__isleaf_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0) ^ -1 | 0) & 1 | 0; + __stack_pointer = $3 + 16 | 0; + return $9 | 0; + } + + function btDbvt__ICollide___ICollide_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btDbvtBroadphase__destroyProxy_28btBroadphaseProxy__2c_20btDispatcher__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $34 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[((HEAP32[$5 >> 2] | 0) + 60 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$2 + } + btDbvt__remove_28btDbvtNode__29(($6 + 4 | 0) + 40 | 0 | 0, HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0); + break label$1; + } + btDbvt__remove_28btDbvtNode__29($6 + 4 | 0 | 0, HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0); + } + void_20listremove_btDbvtProxy__28btDbvtProxy__2c_20btDbvtProxy___29(HEAP32[$5 >> 2] | 0 | 0, ($6 + 84 | 0) + ((HEAP32[((HEAP32[$5 >> 2] | 0) + 60 | 0) >> 2] | 0) << 2 | 0) | 0 | 0); + $34 = HEAP32[($6 + 96 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$34 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($34, HEAP32[$5 >> 2] | 0, HEAP32[($5 + 4 | 0) >> 2] | 0); + btAlignedFreeInternal_28void__29(HEAP32[$5 >> 2] | 0 | 0); + HEAP8[($6 + 154 | 0) >> 0] = 1; + __stack_pointer = $5 + 16 | 0; + return; + } + + function void_20listremove_btDbvtProxy__28btDbvtProxy__2c_20btDbvtProxy___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!((HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 52 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[((HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 52 | 0) >> 2] | 0) + 56 | 0) >> 2] = HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 56 | 0) >> 2] | 0; + break label$1; + } + HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] = HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 56 | 0) >> 2] | 0; + } + label$3 : { + if (!((HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 56 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[((HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 56 | 0) >> 2] | 0) + 52 | 0) >> 2] = HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 52 | 0) >> 2] | 0; + } + return; + } + + function btDbvtBroadphase__getAabb_28btBroadphaseProxy__2c_20btVector3__2c_20btVector3__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0, $11 = 0, $13 = 0, $20 = 0, $22 = 0, $52 = 0, $62 = 0, $73 = 0, $83 = 0; + $6 = __stack_pointer - 32 | 0; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + $11 = HEAP32[($6 + 20 | 0) >> 2] | 0; + i64toi32_i32$2 = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $52 = i64toi32_i32$0; + i64toi32_i32$0 = $11; + HEAP32[i64toi32_i32$0 >> 2] = $52; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $13 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $13 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $62 = i64toi32_i32$1; + i64toi32_i32$1 = $11 + $13 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $62; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $20 = HEAP32[($6 + 16 | 0) >> 2] | 0; + i64toi32_i32$2 = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 32 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $73 = i64toi32_i32$0; + i64toi32_i32$0 = $20; + HEAP32[i64toi32_i32$0 >> 2] = $73; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $22 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $22 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $83 = i64toi32_i32$1; + i64toi32_i32$1 = $20 + $22 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $83; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function btDbvtBroadphase__rayTest_28btVector3_20const__2c_20btVector3_20const__2c_20btBroadphaseRayCallback__2c_20btVector3_20const__2c_20btVector3_20const__29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, $9 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $8 = __stack_pointer - 48 | 0; + __stack_pointer = $8; + HEAP32[($8 + 44 | 0) >> 2] = $0; + HEAP32[($8 + 40 | 0) >> 2] = $1; + HEAP32[($8 + 36 | 0) >> 2] = $2; + HEAP32[($8 + 32 | 0) >> 2] = $3; + HEAP32[($8 + 28 | 0) >> 2] = $4; + HEAP32[($8 + 24 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 44 | 0) >> 2] | 0; + BroadphaseRayTester__BroadphaseRayTester_28btBroadphaseRayCallback__29($8 + 16 | 0 | 0, HEAP32[($8 + 32 | 0) >> 2] | 0 | 0) | 0; + (wasm2js_i32$0 = $8, wasm2js_i32$1 = btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____operator_5b_5d_28int_29($9 + 156 | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + btDbvt__rayTestInternal_28btDbvtNode_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20unsigned_20int__2c_20float_2c_20btVector3_20const__2c_20btVector3_20const__2c_20btAlignedObjectArray_btDbvtNode_20const____2c_20btDbvt__ICollide__29_20const($9 + 4 | 0 | 0, HEAP32[($9 + 4 | 0) >> 2] | 0 | 0, HEAP32[($8 + 40 | 0) >> 2] | 0 | 0, HEAP32[($8 + 36 | 0) >> 2] | 0 | 0, (HEAP32[($8 + 32 | 0) >> 2] | 0) + 4 | 0 | 0, (HEAP32[($8 + 32 | 0) >> 2] | 0) + 20 | 0 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($8 + 32 | 0) >> 2] | 0) + 32 | 0) >> 2])), HEAP32[($8 + 28 | 0) >> 2] | 0 | 0, HEAP32[($8 + 24 | 0) >> 2] | 0 | 0, HEAP32[($8 + 12 | 0) >> 2] | 0 | 0, $8 + 16 | 0 | 0); + btDbvt__rayTestInternal_28btDbvtNode_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20unsigned_20int__2c_20float_2c_20btVector3_20const__2c_20btVector3_20const__2c_20btAlignedObjectArray_btDbvtNode_20const____2c_20btDbvt__ICollide__29_20const(($9 + 4 | 0) + 40 | 0 | 0, HEAP32[($9 + 44 | 0) >> 2] | 0 | 0, HEAP32[($8 + 40 | 0) >> 2] | 0 | 0, HEAP32[($8 + 36 | 0) >> 2] | 0 | 0, (HEAP32[($8 + 32 | 0) >> 2] | 0) + 4 | 0 | 0, (HEAP32[($8 + 32 | 0) >> 2] | 0) + 20 | 0 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($8 + 32 | 0) >> 2] | 0) + 32 | 0) >> 2])), HEAP32[($8 + 28 | 0) >> 2] | 0 | 0, HEAP32[($8 + 24 | 0) >> 2] | 0 | 0, HEAP32[($8 + 12 | 0) >> 2] | 0 | 0, $8 + 16 | 0 | 0); + BroadphaseRayTester___BroadphaseRayTester_28_29($8 + 16 | 0 | 0) | 0; + __stack_pointer = $8 + 48 | 0; + return; + } + + function BroadphaseRayTester__BroadphaseRayTester_28btBroadphaseRayCallback__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btDbvt__ICollide__ICollide_28_29($5 | 0) | 0; + HEAP32[$5 >> 2] = 90400 + 8 | 0; + HEAP32[($5 + 4 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($4 + 8 | 0) >> 2] | 0, 20) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btDbvt__rayTestInternal_28btDbvtNode_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20unsigned_20int__2c_20float_2c_20btVector3_20const__2c_20btVector3_20const__2c_20btAlignedObjectArray_btDbvtNode_20const____2c_20btDbvt__ICollide__29_20const($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = Math_fround($6); + $7 = $7 | 0; + $8 = $8 | 0; + $9 = $9 | 0; + $10 = $10 | 0; + var $13 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $38 = 0, $41 = 0, $42 = 0, $44 = 0, $53 = 0, $64 = 0, $66 = 0, $82 = 0, $84 = 0, $136 = 0, $143 = 0, $147 = 0, $26 = 0, $32 = 0, $40 = 0, $50 = 0, $284 = 0, $297 = 0, $321 = 0, $334 = 0, $120 = 0, $124 = 0, $134 = 0, $135 = 0, $141 = 0, $142 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $13 = __stack_pointer - 176 | 0; + __stack_pointer = $13; + HEAP32[($13 + 172 | 0) >> 2] = $0; + HEAP32[($13 + 168 | 0) >> 2] = $1; + HEAP32[($13 + 164 | 0) >> 2] = $2; + HEAP32[($13 + 160 | 0) >> 2] = $3; + HEAP32[($13 + 156 | 0) >> 2] = $4; + HEAP32[($13 + 152 | 0) >> 2] = $5; + HEAPF32[($13 + 148 | 0) >> 2] = $6; + HEAP32[($13 + 144 | 0) >> 2] = $7; + HEAP32[($13 + 140 | 0) >> 2] = $8; + HEAP32[($13 + 136 | 0) >> 2] = $9; + HEAP32[($13 + 132 | 0) >> 2] = $10; + label$1 : { + if (!((HEAP32[($13 + 168 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + btVector3__btVector3_28_29($13 + 116 | 0 | 0) | 0; + HEAP32[($13 + 112 | 0) >> 2] = 1; + HEAP32[($13 + 108 | 0) >> 2] = 126; + $26 = HEAP32[($13 + 136 | 0) >> 2] | 0; + HEAP32[($13 + 104 | 0) >> 2] = 0; + btAlignedObjectArray_btDbvtNode_20const____resize_28int_2c_20btDbvtNode_20const__20const__29($26 | 0, 128 | 0, $13 + 104 | 0 | 0); + $32 = HEAP32[($13 + 168 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btDbvtNode_20const____operator_5b_5d_28int_29(HEAP32[($13 + 136 | 0) >> 2] | 0 | 0, 0 | 0) | 0, wasm2js_i32$1 = $32), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $38 = $13 + 64 | 0; + $40 = $38 + 32 | 0; + $41 = $38; + label$2 : while (1) { + $42 = $41; + btVector3__btVector3_28_29($42 | 0) | 0; + $44 = $42 + 16 | 0; + $41 = $44; + if (!(($44 | 0) == ($40 | 0) & 1 | 0)) { + continue label$2 + } + break label$2; + }; + label$3 : while (1) { + $50 = HEAP32[($13 + 136 | 0) >> 2] | 0; + $53 = (HEAP32[($13 + 112 | 0) >> 2] | 0) + -1 | 0; + HEAP32[($13 + 112 | 0) >> 2] = $53; + (wasm2js_i32$0 = $13, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btDbvtNode_20const____operator_5b_5d_28int_29($50 | 0, $53 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 60 | 0) >> 2] = wasm2js_i32$1; + operator__28btVector3_20const__2c_20btVector3_20const__29($13 + 44 | 0 | 0, btDbvtAabbMm__Mins_28_29_20const(HEAP32[($13 + 60 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($13 + 140 | 0) >> 2] | 0 | 0); + $64 = $13 + 64 | 0; + i64toi32_i32$2 = $13; + i64toi32_i32$0 = HEAP32[($13 + 44 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($13 + 48 | 0) >> 2] | 0; + $284 = i64toi32_i32$0; + i64toi32_i32$0 = $64; + HEAP32[i64toi32_i32$0 >> 2] = $284; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $66 = 8; + i64toi32_i32$2 = ($13 + 44 | 0) + $66 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $297 = i64toi32_i32$1; + i64toi32_i32$1 = $64 + $66 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $297; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($13 + 28 | 0 | 0, btDbvtAabbMm__Maxs_28_29_20const(HEAP32[($13 + 60 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($13 + 144 | 0) >> 2] | 0 | 0); + $82 = ($13 + 64 | 0) + 16 | 0; + i64toi32_i32$2 = $13; + i64toi32_i32$0 = HEAP32[($13 + 28 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($13 + 32 | 0) >> 2] | 0; + $321 = i64toi32_i32$0; + i64toi32_i32$0 = $82; + HEAP32[i64toi32_i32$0 >> 2] = $321; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $84 = 8; + i64toi32_i32$2 = ($13 + 28 | 0) + $84 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $334 = i64toi32_i32$1; + i64toi32_i32$1 = $82 + $84 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $334; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($13 + 24 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($13 + 20 | 0) >> 2] = Math_fround(0 | 0); + HEAP32[($13 + 16 | 0) >> 2] = 0; + (wasm2js_i32$0 = $13, wasm2js_i32$1 = (btRayAabb2_28btVector3_20const__2c_20btVector3_20const__2c_20unsigned_20int_20const__2c_20btVector3_20const__2c_20float__2c_20float_2c_20float_29(HEAP32[($13 + 164 | 0) >> 2] | 0 | 0, HEAP32[($13 + 156 | 0) >> 2] | 0 | 0, HEAP32[($13 + 152 | 0) >> 2] | 0 | 0, $13 + 64 | 0 | 0, $13 + 24 | 0 | 0, Math_fround(Math_fround(HEAPF32[($13 + 20 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($13 + 148 | 0) >> 2]))) | 0) & 1 | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$4 : { + if (!(HEAP32[($13 + 16 | 0) >> 2] | 0)) { + break label$4 + } + label$5 : { + label$6 : { + if (!((btDbvtNode__isinternal_28_29_20const(HEAP32[($13 + 60 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$6 + } + label$7 : { + if (!((HEAP32[($13 + 112 | 0) >> 2] | 0 | 0) > (HEAP32[($13 + 108 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$7 + } + $120 = HEAP32[($13 + 136 | 0) >> 2] | 0; + $124 = (btAlignedObjectArray_btDbvtNode_20const____size_28_29_20const(HEAP32[($13 + 136 | 0) >> 2] | 0 | 0) | 0) << 1 | 0; + HEAP32[($13 + 12 | 0) >> 2] = 0; + btAlignedObjectArray_btDbvtNode_20const____resize_28int_2c_20btDbvtNode_20const__20const__29($120 | 0, $124 | 0, $13 + 12 | 0 | 0); + (wasm2js_i32$0 = $13, wasm2js_i32$1 = (btAlignedObjectArray_btDbvtNode_20const____size_28_29_20const(HEAP32[($13 + 136 | 0) >> 2] | 0 | 0) | 0) - 2 | 0), HEAP32[(wasm2js_i32$0 + 108 | 0) >> 2] = wasm2js_i32$1; + } + $134 = HEAP32[((HEAP32[($13 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + $135 = HEAP32[($13 + 136 | 0) >> 2] | 0; + $136 = HEAP32[($13 + 112 | 0) >> 2] | 0; + HEAP32[($13 + 112 | 0) >> 2] = $136 + 1 | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btDbvtNode_20const____operator_5b_5d_28int_29($135 | 0, $136 | 0) | 0, wasm2js_i32$1 = $134), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $141 = HEAP32[((HEAP32[($13 + 60 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + $142 = HEAP32[($13 + 136 | 0) >> 2] | 0; + $143 = HEAP32[($13 + 112 | 0) >> 2] | 0; + HEAP32[($13 + 112 | 0) >> 2] = $143 + 1 | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btDbvtNode_20const____operator_5b_5d_28int_29($142 | 0, $143 | 0) | 0, wasm2js_i32$1 = $141), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + break label$5; + } + $147 = HEAP32[($13 + 132 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$147 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($147, HEAP32[($13 + 60 | 0) >> 2] | 0); + } + } + if (HEAP32[($13 + 112 | 0) >> 2] | 0) { + continue label$3 + } + break label$3; + }; + } + __stack_pointer = $13 + 176 | 0; + return; + } + + function BroadphaseRayTester___BroadphaseRayTester_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btDbvt__ICollide___ICollide_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btDbvtAabbMm__Mins_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btDbvtAabbMm__Maxs_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 16 | 0 | 0; + } + + function btRayAabb2_28btVector3_20const__2c_20btVector3_20const__2c_20unsigned_20int_20const__2c_20btVector3_20const__2c_20float__2c_20float_2c_20float_29($0, $1, $2, $3, $4, $5, $6) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = Math_fround($5); + $6 = Math_fround($6); + var $9 = 0, $176 = 0, $25 = Math_fround(0), $185 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $9 = __stack_pointer - 64 | 0; + __stack_pointer = $9; + HEAP32[($9 + 56 | 0) >> 2] = $0; + HEAP32[($9 + 52 | 0) >> 2] = $1; + HEAP32[($9 + 48 | 0) >> 2] = $2; + HEAP32[($9 + 44 | 0) >> 2] = $3; + HEAP32[($9 + 40 | 0) >> 2] = $4; + HEAPF32[($9 + 36 | 0) >> 2] = $5; + HEAPF32[($9 + 32 | 0) >> 2] = $6; + $25 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__getX_28_29_20const((HEAP32[($9 + 44 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($9 + 48 | 0) >> 2] | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0) >> 2]) - Math_fround(HEAPF32[(btVector3__getX_28_29_20const(HEAP32[($9 + 56 | 0) >> 2] | 0 | 0) | 0) >> 2])) * Math_fround(HEAPF32[(btVector3__getX_28_29_20const(HEAP32[($9 + 52 | 0) >> 2] | 0 | 0) | 0) >> 2])); + HEAPF32[(HEAP32[($9 + 40 | 0) >> 2] | 0) >> 2] = $25; + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__getX_28_29_20const((HEAP32[($9 + 44 | 0) >> 2] | 0) + ((1 - (HEAP32[(HEAP32[($9 + 48 | 0) >> 2] | 0) >> 2] | 0) | 0) << 4 | 0) | 0 | 0) | 0) >> 2]) - Math_fround(HEAPF32[(btVector3__getX_28_29_20const(HEAP32[($9 + 56 | 0) >> 2] | 0 | 0) | 0) >> 2])) * Math_fround(HEAPF32[(btVector3__getX_28_29_20const(HEAP32[($9 + 52 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__getY_28_29_20const((HEAP32[($9 + 44 | 0) >> 2] | 0) + ((HEAP32[((HEAP32[($9 + 48 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0) >> 2]) - Math_fround(HEAPF32[(btVector3__getY_28_29_20const(HEAP32[($9 + 56 | 0) >> 2] | 0 | 0) | 0) >> 2])) * Math_fround(HEAPF32[(btVector3__getY_28_29_20const(HEAP32[($9 + 52 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__getY_28_29_20const((HEAP32[($9 + 44 | 0) >> 2] | 0) + ((1 - (HEAP32[((HEAP32[($9 + 48 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0) << 4 | 0) | 0 | 0) | 0) >> 2]) - Math_fround(HEAPF32[(btVector3__getY_28_29_20const(HEAP32[($9 + 56 | 0) >> 2] | 0 | 0) | 0) >> 2])) * Math_fround(HEAPF32[(btVector3__getY_28_29_20const(HEAP32[($9 + 52 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + label$3 : { + if (Math_fround(HEAPF32[(HEAP32[($9 + 40 | 0) >> 2] | 0) >> 2]) > Math_fround(HEAPF32[($9 + 20 | 0) >> 2]) & 1 | 0) { + break label$3 + } + if (!(Math_fround(HEAPF32[($9 + 24 | 0) >> 2]) > Math_fround(HEAPF32[($9 + 28 | 0) >> 2]) & 1 | 0)) { + break label$2 + } + } + HEAP8[($9 + 63 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + label$4 : { + if (!(Math_fround(HEAPF32[($9 + 24 | 0) >> 2]) > Math_fround(HEAPF32[(HEAP32[($9 + 40 | 0) >> 2] | 0) >> 2]) & 1 | 0)) { + break label$4 + } + HEAPF32[(HEAP32[($9 + 40 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[($9 + 24 | 0) >> 2]); + } + label$5 : { + if (!(Math_fround(HEAPF32[($9 + 20 | 0) >> 2]) < Math_fround(HEAPF32[($9 + 28 | 0) >> 2]) & 1 | 0)) { + break label$5 + } + HEAPF32[($9 + 28 | 0) >> 2] = Math_fround(HEAPF32[($9 + 20 | 0) >> 2]); + } + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__getZ_28_29_20const((HEAP32[($9 + 44 | 0) >> 2] | 0) + ((HEAP32[((HEAP32[($9 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0) >> 2]) - Math_fround(HEAPF32[(btVector3__getZ_28_29_20const(HEAP32[($9 + 56 | 0) >> 2] | 0 | 0) | 0) >> 2])) * Math_fround(HEAPF32[(btVector3__getZ_28_29_20const(HEAP32[($9 + 52 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__getZ_28_29_20const((HEAP32[($9 + 44 | 0) >> 2] | 0) + ((1 - (HEAP32[((HEAP32[($9 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) | 0) << 4 | 0) | 0 | 0) | 0) >> 2]) - Math_fround(HEAPF32[(btVector3__getZ_28_29_20const(HEAP32[($9 + 56 | 0) >> 2] | 0 | 0) | 0) >> 2])) * Math_fround(HEAPF32[(btVector3__getZ_28_29_20const(HEAP32[($9 + 52 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + label$6 : { + label$7 : { + if (Math_fround(HEAPF32[(HEAP32[($9 + 40 | 0) >> 2] | 0) >> 2]) > Math_fround(HEAPF32[($9 + 12 | 0) >> 2]) & 1 | 0) { + break label$7 + } + if (!(Math_fround(HEAPF32[($9 + 16 | 0) >> 2]) > Math_fround(HEAPF32[($9 + 28 | 0) >> 2]) & 1 | 0)) { + break label$6 + } + } + HEAP8[($9 + 63 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + label$8 : { + if (!(Math_fround(HEAPF32[($9 + 16 | 0) >> 2]) > Math_fround(HEAPF32[(HEAP32[($9 + 40 | 0) >> 2] | 0) >> 2]) & 1 | 0)) { + break label$8 + } + HEAPF32[(HEAP32[($9 + 40 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[($9 + 16 | 0) >> 2]); + } + label$9 : { + if (!(Math_fround(HEAPF32[($9 + 12 | 0) >> 2]) < Math_fround(HEAPF32[($9 + 28 | 0) >> 2]) & 1 | 0)) { + break label$9 + } + HEAPF32[($9 + 28 | 0) >> 2] = Math_fround(HEAPF32[($9 + 12 | 0) >> 2]); + } + $176 = 0; + label$10 : { + if (!(Math_fround(HEAPF32[(HEAP32[($9 + 40 | 0) >> 2] | 0) >> 2]) < Math_fround(HEAPF32[($9 + 32 | 0) >> 2]) & 1 | 0)) { + break label$10 + } + $176 = Math_fround(HEAPF32[($9 + 28 | 0) >> 2]) > Math_fround(HEAPF32[($9 + 36 | 0) >> 2]); + } + HEAP8[($9 + 63 | 0) >> 0] = $176 & 1 | 0; + } + $185 = (HEAPU8[($9 + 63 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $9 + 64 | 0; + return $185 | 0; + } + + function btDbvtBroadphase__aabbTest_28btVector3_20const__2c_20btVector3_20const__2c_20btBroadphaseAabbCallback__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 64 | 0; + __stack_pointer = $6; + HEAP32[($6 + 60 | 0) >> 2] = $0; + HEAP32[($6 + 56 | 0) >> 2] = $1; + HEAP32[($6 + 52 | 0) >> 2] = $2; + HEAP32[($6 + 48 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 60 | 0) >> 2] | 0; + BroadphaseAabbTester__BroadphaseAabbTester_28btBroadphaseAabbCallback__29($6 + 40 | 0 | 0, HEAP32[($6 + 48 | 0) >> 2] | 0 | 0) | 0; + btDbvtAabbMm__FromMM_28btVector3_20const__2c_20btVector3_20const__29($6 + 8 | 0 | 0, HEAP32[($6 + 56 | 0) >> 2] | 0 | 0, HEAP32[($6 + 52 | 0) >> 2] | 0 | 0); + btDbvt__collideTV_28btDbvtNode_20const__2c_20btDbvtAabbMm_20const__2c_20btDbvt__ICollide__29_20const($7 + 4 | 0 | 0, HEAP32[($7 + 4 | 0) >> 2] | 0 | 0, $6 + 8 | 0 | 0, $6 + 40 | 0 | 0); + btDbvt__collideTV_28btDbvtNode_20const__2c_20btDbvtAabbMm_20const__2c_20btDbvt__ICollide__29_20const(($7 + 4 | 0) + 40 | 0 | 0, HEAP32[($7 + 44 | 0) >> 2] | 0 | 0, $6 + 8 | 0 | 0, $6 + 40 | 0 | 0); + BroadphaseAabbTester___BroadphaseAabbTester_28_29($6 + 40 | 0 | 0) | 0; + __stack_pointer = $6 + 64 | 0; + return; + } + + function BroadphaseAabbTester__BroadphaseAabbTester_28btBroadphaseAabbCallback__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btDbvt__ICollide__ICollide_28_29($5 | 0) | 0; + HEAP32[$5 >> 2] = 90472 + 8 | 0; + HEAP32[($5 + 4 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function BroadphaseAabbTester___BroadphaseAabbTester_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btDbvt__ICollide___ICollide_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btDbvtBroadphase__setAabb_28btBroadphaseProxy__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btDispatcher__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $184 = 0, $186 = 0, $193 = 0, $195 = 0, $36 = 0, $99 = Math_fround(0), $119 = Math_fround(0), $139 = Math_fround(0), $598 = 0, $608 = 0, $619 = 0, $629 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $7 = __stack_pointer - 144 | 0; + __stack_pointer = $7; + HEAP32[($7 + 140 | 0) >> 2] = $0; + HEAP32[($7 + 136 | 0) >> 2] = $1; + HEAP32[($7 + 132 | 0) >> 2] = $2; + HEAP32[($7 + 128 | 0) >> 2] = $3; + HEAP32[($7 + 124 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 140 | 0) >> 2] | 0; + HEAP32[($7 + 120 | 0) >> 2] = HEAP32[($7 + 136 | 0) >> 2] | 0; + btDbvtAabbMm__FromMM_28btVector3_20const__2c_20btVector3_20const__29($7 + 88 | 0 | 0, HEAP32[($7 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7 + 128 | 0) >> 2] | 0 | 0); + HEAP8[($7 + 87 | 0) >> 0] = 0; + label$1 : { + label$2 : { + if (!((HEAP32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + 60 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$2 + } + btDbvt__remove_28btDbvtNode__29(($8 + 4 | 0) + 40 | 0 | 0, HEAP32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0 | 0); + $36 = btDbvt__insert_28btDbvtAabbMm_20const__2c_20void__29($8 + 4 | 0 | 0, $7 + 88 | 0 | 0, HEAP32[($7 + 120 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + 48 | 0) >> 2] = $36; + HEAP8[($7 + 87 | 0) >> 0] = 1; + break label$1; + } + HEAP32[($8 + 128 | 0) >> 2] = (HEAP32[($8 + 128 | 0) >> 2] | 0) + 1 | 0; + label$3 : { + label$4 : { + if (!((Intersect_28btDbvtAabbMm_20const__2c_20btDbvtAabbMm_20const__29(HEAP32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0 | 0, $7 + 88 | 0 | 0) | 0) & 1 | 0)) { + break label$4 + } + operator__28btVector3_20const__2c_20btVector3_20const__29($7 + 68 | 0 | 0, HEAP32[($7 + 132 | 0) >> 2] | 0 | 0, (HEAP32[($7 + 120 | 0) >> 2] | 0) + 16 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($7 + 20 | 0 | 0, (HEAP32[($7 + 120 | 0) >> 2] | 0) + 32 | 0 | 0, (HEAP32[($7 + 120 | 0) >> 2] | 0) + 16 | 0 | 0); + HEAPF32[($7 + 16 | 0) >> 2] = Math_fround(2.0); + operator__28btVector3_20const__2c_20float_20const__29_1($7 + 36 | 0 | 0, $7 + 20 | 0 | 0, $7 + 16 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($7 + 52 | 0 | 0, $7 + 36 | 0 | 0, $8 + 100 | 0 | 0); + label$5 : { + if (!(Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const($7 + 68 | 0 | 0) | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$5 + } + $99 = Math_fround(-Math_fround(HEAPF32[(btVector3__operator_20float__28_29($7 + 52 | 0 | 0) | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($7 + 52 | 0 | 0) | 0, wasm2js_f32$0 = $99), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + } + label$6 : { + if (!(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const($7 + 68 | 0 | 0) | 0) + 4 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$6 + } + $119 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float__28_29($7 + 52 | 0 | 0) | 0) + 4 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($7 + 52 | 0 | 0) | 0, wasm2js_f32$0 = $119), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + } + label$7 : { + if (!(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const($7 + 68 | 0 | 0) | 0) + 8 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$7 + } + $139 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float__28_29($7 + 52 | 0 | 0) | 0) + 8 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($7 + 52 | 0 | 0) | 0, wasm2js_f32$0 = $139), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + } + label$8 : { + if (!((btDbvt__update_28btDbvtNode__2c_20btDbvtAabbMm__2c_20btVector3_20const__2c_20float_29($8 + 4 | 0 | 0, HEAP32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0 | 0, $7 + 88 | 0 | 0, $7 + 52 | 0 | 0, Math_fround(Math_fround(.05000000074505806))) | 0) & 1 | 0)) { + break label$8 + } + HEAP32[($8 + 132 | 0) >> 2] = (HEAP32[($8 + 132 | 0) >> 2] | 0) + 1 | 0; + HEAP8[($7 + 87 | 0) >> 0] = 1; + } + break label$3; + } + btDbvt__update_28btDbvtNode__2c_20btDbvtAabbMm__29($8 + 4 | 0 | 0, HEAP32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0 | 0, $7 + 88 | 0 | 0); + HEAP32[($8 + 132 | 0) >> 2] = (HEAP32[($8 + 132 | 0) >> 2] | 0) + 1 | 0; + HEAP8[($7 + 87 | 0) >> 0] = 1; + } + } + void_20listremove_btDbvtProxy__28btDbvtProxy__2c_20btDbvtProxy___29(HEAP32[($7 + 120 | 0) >> 2] | 0 | 0, ($8 + 84 | 0) + ((HEAP32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + 60 | 0) >> 2] | 0) << 2 | 0) | 0 | 0); + $184 = (HEAP32[($7 + 120 | 0) >> 2] | 0) + 16 | 0; + i64toi32_i32$2 = HEAP32[($7 + 132 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $598 = i64toi32_i32$0; + i64toi32_i32$0 = $184; + HEAP32[i64toi32_i32$0 >> 2] = $598; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $186 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $186 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $608 = i64toi32_i32$1; + i64toi32_i32$1 = $184 + $186 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $608; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $193 = (HEAP32[($7 + 120 | 0) >> 2] | 0) + 32 | 0; + i64toi32_i32$2 = HEAP32[($7 + 128 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $619 = i64toi32_i32$0; + i64toi32_i32$0 = $193; + HEAP32[i64toi32_i32$0 >> 2] = $619; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $195 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $195 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $629 = i64toi32_i32$1; + i64toi32_i32$1 = $193 + $195 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $629; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + 60 | 0) >> 2] = HEAP32[($8 + 104 | 0) >> 2] | 0; + void_20listappend_btDbvtProxy__28btDbvtProxy__2c_20btDbvtProxy___29(HEAP32[($7 + 120 | 0) >> 2] | 0 | 0, ($8 + 84 | 0) + ((HEAP32[($8 + 104 | 0) >> 2] | 0) << 2 | 0) | 0 | 0); + label$9 : { + if (!((HEAPU8[($7 + 87 | 0) >> 0] | 0) & 1 | 0)) { + break label$9 + } + HEAP8[($8 + 154 | 0) >> 0] = 1; + label$10 : { + if ((HEAPU8[($8 + 153 | 0) >> 0] | 0) & 1 | 0) { + break label$10 + } + btDbvtTreeCollider__btDbvtTreeCollider_28btDbvtBroadphase__29($7 + 4 | 0 | 0, $8 | 0) | 0; + btDbvt__collideTTpersistentStack_28btDbvtNode_20const__2c_20btDbvtNode_20const__2c_20btDbvt__ICollide__29(($8 + 4 | 0) + 40 | 0 | 0, HEAP32[($8 + 44 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0 | 0, $7 + 4 | 0 | 0); + btDbvt__collideTTpersistentStack_28btDbvtNode_20const__2c_20btDbvtNode_20const__2c_20btDbvt__ICollide__29($8 + 4 | 0 | 0, HEAP32[($8 + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0 | 0, $7 + 4 | 0 | 0); + btDbvtTreeCollider___btDbvtTreeCollider_28_29($7 + 4 | 0 | 0) | 0; + } + } + __stack_pointer = $7 + 144 | 0; + return; + } + + function operator__28btVector3_20const__2c_20float_20const__29_1($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $1; + HEAP32[($5 + 8 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAPF32[($5 + 4 | 0) >> 2] = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[(HEAP32[($5 + 8 | 0) >> 2] | 0) >> 2])); + operator__28btVector3_20const__2c_20float_20const__29($0 | 0, $6 | 0, $5 + 4 | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function btDbvt__collideTTpersistentStack_28btDbvtNode_20const__2c_20btDbvtNode_20const__2c_20btDbvt__ICollide__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $7 = 0, i64toi32_i32$2 = 0, $47 = 0, $95 = 0, $109 = 0, $123 = 0, $150 = 0, $164 = 0, $178 = 0, $192 = 0, $205 = 0, $218 = 0, $235 = 0, $246 = 0, $251 = 0, $41 = 0, $339 = 0, $356 = 0, $63 = 0, $98 = 0, $460 = 0, $112 = 0, $493 = 0, $126 = 0, $526 = 0, $153 = 0, $589 = 0, $167 = 0, $622 = 0, $181 = 0, $655 = 0, $195 = 0, $688 = 0, $208 = 0, $719 = 0, $221 = 0, $750 = 0, $238 = 0, $790 = 0, $249 = 0, $818 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 144 | 0; + __stack_pointer = $6; + HEAP32[($6 + 140 | 0) >> 2] = $0; + HEAP32[($6 + 136 | 0) >> 2] = $1; + HEAP32[($6 + 132 | 0) >> 2] = $2; + HEAP32[($6 + 128 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 140 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($6 + 136 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + if (!((HEAP32[($6 + 132 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[($6 + 124 | 0) >> 2] = 1; + HEAP32[($6 + 120 | 0) >> 2] = 124; + btDbvt__sStkNN__sStkNN_28_29($6 + 112 | 0 | 0) | 0; + btAlignedObjectArray_btDbvt__sStkNN___resize_28int_2c_20btDbvt__sStkNN_20const__29($7 + 20 | 0 | 0, 128 | 0, $6 + 112 | 0 | 0); + btDbvt__sStkNN__sStkNN_28btDbvtNode_20const__2c_20btDbvtNode_20const__29($6 + 104 | 0 | 0, HEAP32[($6 + 136 | 0) >> 2] | 0 | 0, HEAP32[($6 + 132 | 0) >> 2] | 0 | 0) | 0; + $41 = btAlignedObjectArray_btDbvt__sStkNN___operator_5b_5d_28int_29($7 + 20 | 0 | 0, 0 | 0) | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 104 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 108 | 0) >> 2] | 0; + $339 = i64toi32_i32$0; + i64toi32_i32$0 = $41; + HEAP32[i64toi32_i32$0 >> 2] = $339; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + label$2 : while (1) { + $47 = (HEAP32[($6 + 124 | 0) >> 2] | 0) + -1 | 0; + HEAP32[($6 + 124 | 0) >> 2] = $47; + i64toi32_i32$2 = btAlignedObjectArray_btDbvt__sStkNN___operator_5b_5d_28int_29($7 + 20 | 0 | 0, $47 | 0) | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $356 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 96 | 0) >> 2] = $356; + HEAP32[($6 + 100 | 0) >> 2] = i64toi32_i32$0; + label$3 : { + if (!((HEAP32[($6 + 124 | 0) >> 2] | 0 | 0) > (HEAP32[($6 + 120 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + $63 = (btAlignedObjectArray_btDbvt__sStkNN___size_28_29_20const($7 + 20 | 0 | 0) | 0) << 1 | 0; + btDbvt__sStkNN__sStkNN_28_29($6 + 88 | 0 | 0) | 0; + btAlignedObjectArray_btDbvt__sStkNN___resize_28int_2c_20btDbvt__sStkNN_20const__29($7 + 20 | 0 | 0, $63 | 0, $6 + 88 | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_i32$1 = (btAlignedObjectArray_btDbvt__sStkNN___size_28_29_20const($7 + 20 | 0 | 0) | 0) - 4 | 0), HEAP32[(wasm2js_i32$0 + 120 | 0) >> 2] = wasm2js_i32$1; + } + label$4 : { + label$5 : { + if (!((HEAP32[($6 + 96 | 0) >> 2] | 0 | 0) == (HEAP32[($6 + 100 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + label$6 : { + if (!((btDbvtNode__isinternal_28_29_20const(HEAP32[($6 + 96 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$6 + } + btDbvt__sStkNN__sStkNN_28btDbvtNode_20const__2c_20btDbvtNode_20const__29($6 + 80 | 0 | 0, HEAP32[((HEAP32[($6 + 96 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6 + 96 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) | 0; + $95 = HEAP32[($6 + 124 | 0) >> 2] | 0; + HEAP32[($6 + 124 | 0) >> 2] = $95 + 1 | 0; + $98 = btAlignedObjectArray_btDbvt__sStkNN___operator_5b_5d_28int_29($7 + 20 | 0 | 0, $95 | 0) | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 80 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 84 | 0) >> 2] | 0; + $460 = i64toi32_i32$0; + i64toi32_i32$0 = $98; + HEAP32[i64toi32_i32$0 >> 2] = $460; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + btDbvt__sStkNN__sStkNN_28btDbvtNode_20const__2c_20btDbvtNode_20const__29($6 + 72 | 0 | 0, HEAP32[((HEAP32[($6 + 96 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6 + 96 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) | 0; + $109 = HEAP32[($6 + 124 | 0) >> 2] | 0; + HEAP32[($6 + 124 | 0) >> 2] = $109 + 1 | 0; + $112 = btAlignedObjectArray_btDbvt__sStkNN___operator_5b_5d_28int_29($7 + 20 | 0 | 0, $109 | 0) | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 72 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 76 | 0) >> 2] | 0; + $493 = i64toi32_i32$1; + i64toi32_i32$1 = $112; + HEAP32[i64toi32_i32$1 >> 2] = $493; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btDbvt__sStkNN__sStkNN_28btDbvtNode_20const__2c_20btDbvtNode_20const__29($6 + 64 | 0 | 0, HEAP32[((HEAP32[($6 + 96 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6 + 96 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) | 0; + $123 = HEAP32[($6 + 124 | 0) >> 2] | 0; + HEAP32[($6 + 124 | 0) >> 2] = $123 + 1 | 0; + $126 = btAlignedObjectArray_btDbvt__sStkNN___operator_5b_5d_28int_29($7 + 20 | 0 | 0, $123 | 0) | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 64 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 68 | 0) >> 2] | 0; + $526 = i64toi32_i32$0; + i64toi32_i32$0 = $126; + HEAP32[i64toi32_i32$0 >> 2] = $526; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + } + break label$4; + } + label$7 : { + if (!((Intersect_28btDbvtAabbMm_20const__2c_20btDbvtAabbMm_20const__29(HEAP32[($6 + 96 | 0) >> 2] | 0 | 0, HEAP32[($6 + 100 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$7 + } + label$8 : { + label$9 : { + if (!((btDbvtNode__isinternal_28_29_20const(HEAP32[($6 + 96 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$9 + } + label$10 : { + label$11 : { + if (!((btDbvtNode__isinternal_28_29_20const(HEAP32[($6 + 100 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$11 + } + btDbvt__sStkNN__sStkNN_28btDbvtNode_20const__2c_20btDbvtNode_20const__29($6 + 56 | 0 | 0, HEAP32[((HEAP32[($6 + 96 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6 + 100 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) | 0; + $150 = HEAP32[($6 + 124 | 0) >> 2] | 0; + HEAP32[($6 + 124 | 0) >> 2] = $150 + 1 | 0; + $153 = btAlignedObjectArray_btDbvt__sStkNN___operator_5b_5d_28int_29($7 + 20 | 0 | 0, $150 | 0) | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 56 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 60 | 0) >> 2] | 0; + $589 = i64toi32_i32$1; + i64toi32_i32$1 = $153; + HEAP32[i64toi32_i32$1 >> 2] = $589; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btDbvt__sStkNN__sStkNN_28btDbvtNode_20const__2c_20btDbvtNode_20const__29($6 + 48 | 0 | 0, HEAP32[((HEAP32[($6 + 96 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6 + 100 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) | 0; + $164 = HEAP32[($6 + 124 | 0) >> 2] | 0; + HEAP32[($6 + 124 | 0) >> 2] = $164 + 1 | 0; + $167 = btAlignedObjectArray_btDbvt__sStkNN___operator_5b_5d_28int_29($7 + 20 | 0 | 0, $164 | 0) | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 48 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 52 | 0) >> 2] | 0; + $622 = i64toi32_i32$0; + i64toi32_i32$0 = $167; + HEAP32[i64toi32_i32$0 >> 2] = $622; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + btDbvt__sStkNN__sStkNN_28btDbvtNode_20const__2c_20btDbvtNode_20const__29($6 + 40 | 0 | 0, HEAP32[((HEAP32[($6 + 96 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6 + 100 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) | 0; + $178 = HEAP32[($6 + 124 | 0) >> 2] | 0; + HEAP32[($6 + 124 | 0) >> 2] = $178 + 1 | 0; + $181 = btAlignedObjectArray_btDbvt__sStkNN___operator_5b_5d_28int_29($7 + 20 | 0 | 0, $178 | 0) | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 40 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 44 | 0) >> 2] | 0; + $655 = i64toi32_i32$1; + i64toi32_i32$1 = $181; + HEAP32[i64toi32_i32$1 >> 2] = $655; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btDbvt__sStkNN__sStkNN_28btDbvtNode_20const__2c_20btDbvtNode_20const__29($6 + 32 | 0 | 0, HEAP32[((HEAP32[($6 + 96 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6 + 100 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) | 0; + $192 = HEAP32[($6 + 124 | 0) >> 2] | 0; + HEAP32[($6 + 124 | 0) >> 2] = $192 + 1 | 0; + $195 = btAlignedObjectArray_btDbvt__sStkNN___operator_5b_5d_28int_29($7 + 20 | 0 | 0, $192 | 0) | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 32 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 36 | 0) >> 2] | 0; + $688 = i64toi32_i32$0; + i64toi32_i32$0 = $195; + HEAP32[i64toi32_i32$0 >> 2] = $688; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + break label$10; + } + btDbvt__sStkNN__sStkNN_28btDbvtNode_20const__2c_20btDbvtNode_20const__29($6 + 24 | 0 | 0, HEAP32[((HEAP32[($6 + 96 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($6 + 100 | 0) >> 2] | 0 | 0) | 0; + $205 = HEAP32[($6 + 124 | 0) >> 2] | 0; + HEAP32[($6 + 124 | 0) >> 2] = $205 + 1 | 0; + $208 = btAlignedObjectArray_btDbvt__sStkNN___operator_5b_5d_28int_29($7 + 20 | 0 | 0, $205 | 0) | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 24 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 28 | 0) >> 2] | 0; + $719 = i64toi32_i32$1; + i64toi32_i32$1 = $208; + HEAP32[i64toi32_i32$1 >> 2] = $719; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btDbvt__sStkNN__sStkNN_28btDbvtNode_20const__2c_20btDbvtNode_20const__29($6 + 16 | 0 | 0, HEAP32[((HEAP32[($6 + 96 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($6 + 100 | 0) >> 2] | 0 | 0) | 0; + $218 = HEAP32[($6 + 124 | 0) >> 2] | 0; + HEAP32[($6 + 124 | 0) >> 2] = $218 + 1 | 0; + $221 = btAlignedObjectArray_btDbvt__sStkNN___operator_5b_5d_28int_29($7 + 20 | 0 | 0, $218 | 0) | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 16 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 20 | 0) >> 2] | 0; + $750 = i64toi32_i32$0; + i64toi32_i32$0 = $221; + HEAP32[i64toi32_i32$0 >> 2] = $750; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + } + break label$8; + } + label$12 : { + label$13 : { + if (!((btDbvtNode__isinternal_28_29_20const(HEAP32[($6 + 100 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$13 + } + btDbvt__sStkNN__sStkNN_28btDbvtNode_20const__2c_20btDbvtNode_20const__29($6 + 8 | 0 | 0, HEAP32[($6 + 96 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6 + 100 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) | 0; + $235 = HEAP32[($6 + 124 | 0) >> 2] | 0; + HEAP32[($6 + 124 | 0) >> 2] = $235 + 1 | 0; + $238 = btAlignedObjectArray_btDbvt__sStkNN___operator_5b_5d_28int_29($7 + 20 | 0 | 0, $235 | 0) | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 12 | 0) >> 2] | 0; + $790 = i64toi32_i32$1; + i64toi32_i32$1 = $238; + HEAP32[i64toi32_i32$1 >> 2] = $790; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btDbvt__sStkNN__sStkNN_28btDbvtNode_20const__2c_20btDbvtNode_20const__29($6 | 0, HEAP32[($6 + 96 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6 + 100 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) | 0; + $246 = HEAP32[($6 + 124 | 0) >> 2] | 0; + HEAP32[($6 + 124 | 0) >> 2] = $246 + 1 | 0; + $249 = btAlignedObjectArray_btDbvt__sStkNN___operator_5b_5d_28int_29($7 + 20 | 0 | 0, $246 | 0) | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[$6 >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 4 | 0) >> 2] | 0; + $818 = i64toi32_i32$0; + i64toi32_i32$0 = $249; + HEAP32[i64toi32_i32$0 >> 2] = $818; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + break label$12; + } + $251 = HEAP32[($6 + 128 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$251 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($251, HEAP32[($6 + 96 | 0) >> 2] | 0, HEAP32[($6 + 100 | 0) >> 2] | 0); + } + } + } + } + if (HEAP32[($6 + 124 | 0) >> 2] | 0) { + continue label$2 + } + break label$2; + }; + } + __stack_pointer = $6 + 144 | 0; + return; + } + + function btDbvt__sStkNN__sStkNN_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btDbvt__sStkNN___resize_28int_2c_20btDbvt__sStkNN_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $162 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btDbvt__sStkNN___size_28_29_20const($6 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + break label$1; + } + label$5 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) > (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + btAlignedObjectArray_btDbvt__sStkNN___reserve_28int_29($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + i64toi32_i32$2 = HEAP32[($5 + 20 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $162 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $162; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btDbvt__sStkNN__sStkNN_28btDbvtNode_20const__2c_20btDbvtNode_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$6 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 4 | 0) >> 2] | 0; + return $6 | 0; + } + + function btAlignedObjectArray_btDbvt__sStkNN___operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btDbvt__sStkNN___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 3 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btAlignedObjectArray_btDbvt__sStkNN___size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btDbvtBroadphase__calculateOverlappingPairs_28btDispatcher__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btDbvtBroadphase__collide_28btDispatcher__29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + btDbvtBroadphase__performDeferredRemoval_28btDispatcher__29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btDbvtBroadphase__collide_28btDispatcher__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $144 = 0, $202 = 0, $101 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 112 | 0; + __stack_pointer = $4; + HEAP32[($4 + 108 | 0) >> 2] = $0; + HEAP32[($4 + 104 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 108 | 0) >> 2] | 0; + btDbvt__optimizeIncremental_28int_29($5 + 4 | 0 | 0, ((Math_imul(HEAP32[($5 + 16 | 0) >> 2] | 0, HEAP32[($5 + 112 | 0) >> 2] | 0) | 0) / (100 | 0) | 0) + 1 | 0 | 0); + label$1 : { + if (!(HEAP32[($5 + 124 | 0) >> 2] | 0)) { + break label$1 + } + HEAP32[($4 + 100 | 0) >> 2] = ((Math_imul(HEAP32[($5 + 56 | 0) >> 2] | 0, HEAP32[($5 + 108 | 0) >> 2] | 0) | 0) / (100 | 0) | 0) + 1 | 0; + btDbvt__optimizeIncremental_28int_29(($5 + 4 | 0) + 40 | 0 | 0, ((Math_imul(HEAP32[($5 + 56 | 0) >> 2] | 0, HEAP32[($5 + 108 | 0) >> 2] | 0) | 0) / (100 | 0) | 0) + 1 | 0 | 0); + HEAP32[($4 + 96 | 0) >> 2] = 0; + HEAP32[($4 + 92 | 0) >> 2] = (HEAP32[($5 + 124 | 0) >> 2] | 0) - (HEAP32[($4 + 100 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = HEAP32[(int_20const__20btMax_int__28int_20const__2c_20int_20const__29($4 + 96 | 0 | 0, $4 + 92 | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 124 | 0) >> 2] = wasm2js_i32$1; + } + HEAP32[($5 + 104 | 0) >> 2] = ((HEAP32[($5 + 104 | 0) >> 2] | 0) + 1 | 0 | 0) % (2 | 0) | 0; + HEAP32[($4 + 88 | 0) >> 2] = HEAP32[(($5 + 84 | 0) + ((HEAP32[($5 + 104 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + label$2 : { + if (!((HEAP32[($4 + 88 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + label$3 : while (1) { + HEAP32[($4 + 84 | 0) >> 2] = HEAP32[((HEAP32[($4 + 88 | 0) >> 2] | 0) + 56 | 0) >> 2] | 0; + void_20listremove_btDbvtProxy__28btDbvtProxy__2c_20btDbvtProxy___29(HEAP32[($4 + 88 | 0) >> 2] | 0 | 0, ($5 + 84 | 0) + ((HEAP32[((HEAP32[($4 + 88 | 0) >> 2] | 0) + 60 | 0) >> 2] | 0) << 2 | 0) | 0 | 0); + void_20listappend_btDbvtProxy__28btDbvtProxy__2c_20btDbvtProxy___29(HEAP32[($4 + 88 | 0) >> 2] | 0 | 0, ($5 + 84 | 0) + 8 | 0 | 0); + btDbvt__remove_28btDbvtNode__29($5 + 4 | 0 | 0, HEAP32[((HEAP32[($4 + 88 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0 | 0); + btDbvtAabbMm__FromMM_28btVector3_20const__2c_20btVector3_20const__29($4 + 52 | 0 | 0, (HEAP32[($4 + 88 | 0) >> 2] | 0) + 16 | 0 | 0, (HEAP32[($4 + 88 | 0) >> 2] | 0) + 32 | 0 | 0); + $101 = btDbvt__insert_28btDbvtAabbMm_20const__2c_20void__29(($5 + 4 | 0) + 40 | 0 | 0, $4 + 52 | 0 | 0, HEAP32[($4 + 88 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($4 + 88 | 0) >> 2] | 0) + 48 | 0) >> 2] = $101; + HEAP32[((HEAP32[($4 + 88 | 0) >> 2] | 0) + 60 | 0) >> 2] = 2; + HEAP32[($4 + 88 | 0) >> 2] = HEAP32[($4 + 84 | 0) >> 2] | 0; + if ((HEAP32[($4 + 88 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + continue label$3 + } + break label$3; + }; + HEAP32[($5 + 124 | 0) >> 2] = HEAP32[($5 + 56 | 0) >> 2] | 0; + HEAP8[($5 + 154 | 0) >> 0] = 1; + } + btDbvtTreeCollider__btDbvtTreeCollider_28btDbvtBroadphase__29($4 + 40 | 0 | 0, $5 | 0) | 0; + label$4 : { + if (!((HEAPU8[($5 + 153 | 0) >> 0] | 0) & 1 | 0)) { + break label$4 + } + btDbvt__collideTTpersistentStack_28btDbvtNode_20const__2c_20btDbvtNode_20const__2c_20btDbvt__ICollide__29($5 + 4 | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0, HEAP32[($5 + 44 | 0) >> 2] | 0 | 0, $4 + 40 | 0 | 0); + } + label$5 : { + if (!((HEAPU8[($5 + 153 | 0) >> 0] | 0) & 1 | 0)) { + break label$5 + } + btDbvt__collideTTpersistentStack_28btDbvtNode_20const__2c_20btDbvtNode_20const__2c_20btDbvt__ICollide__29($5 + 4 | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0, $4 + 40 | 0 | 0); + } + btDbvtTreeCollider___btDbvtTreeCollider_28_29($4 + 40 | 0 | 0) | 0; + label$6 : { + if (!((HEAPU8[($5 + 154 | 0) >> 0] | 0) & 1 | 0)) { + break label$6 + } + $144 = HEAP32[($5 + 96 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$144 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($144) | 0), HEAP32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_i32$1; + label$7 : { + if (!((btAlignedObjectArray_btBroadphasePair___size_28_29_20const(HEAP32[($4 + 36 | 0) >> 2] | 0 | 0) | 0 | 0) > (0 | 0) & 1 | 0)) { + break label$7 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btBroadphasePair___size_28_29_20const(HEAP32[($4 + 36 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = (Math_imul(btAlignedObjectArray_btBroadphasePair___size_28_29_20const(HEAP32[($4 + 36 | 0) >> 2] | 0 | 0) | 0, HEAP32[($5 + 116 | 0) >> 2] | 0) | 0) / (100 | 0) | 0), HEAP32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[(int_20const__20btMin_int__28int_20const__2c_20int_20const__29($4 + 28 | 0 | 0, int_20const__20btMax_int__28int_20const__2c_20int_20const__29($5 + 120 | 0 | 0, $4 + 24 | 0 | 0) | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($4 + 20 | 0) >> 2] = 0; + label$8 : { + label$9 : while (1) { + if (!((HEAP32[($4 + 20 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 32 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btBroadphasePair___operator_5b_5d_28int_29(HEAP32[($4 + 36 | 0) >> 2] | 0 | 0, ((HEAP32[($5 + 144 | 0) >> 2] | 0) + (HEAP32[($4 + 20 | 0) >> 2] | 0) | 0 | 0) % (btAlignedObjectArray_btBroadphasePair___size_28_29_20const(HEAP32[($4 + 36 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($4 + 12 | 0) >> 2] = HEAP32[(HEAP32[($4 + 16 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($4 + 8 | 0) >> 2] = HEAP32[((HEAP32[($4 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$10 : { + if ((Intersect_28btDbvtAabbMm_20const__2c_20btDbvtAabbMm_20const__29(HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$10 + } + $202 = HEAP32[($5 + 96 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$202 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($202, HEAP32[($4 + 12 | 0) >> 2] | 0, HEAP32[($4 + 8 | 0) >> 2] | 0, HEAP32[($4 + 104 | 0) >> 2] | 0) | 0; + HEAP32[($4 + 32 | 0) >> 2] = (HEAP32[($4 + 32 | 0) >> 2] | 0) + -1 | 0; + HEAP32[($4 + 20 | 0) >> 2] = (HEAP32[($4 + 20 | 0) >> 2] | 0) + -1 | 0; + } + HEAP32[($4 + 20 | 0) >> 2] = (HEAP32[($4 + 20 | 0) >> 2] | 0) + 1 | 0; + continue label$9; + }; + } + label$11 : { + label$12 : { + if (!((btAlignedObjectArray_btBroadphasePair___size_28_29_20const(HEAP32[($4 + 36 | 0) >> 2] | 0 | 0) | 0 | 0) > (0 | 0) & 1 | 0)) { + break label$12 + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = ((HEAP32[($5 + 144 | 0) >> 2] | 0) + (HEAP32[($4 + 32 | 0) >> 2] | 0) | 0 | 0) % (btAlignedObjectArray_btBroadphasePair___size_28_29_20const(HEAP32[($4 + 36 | 0) >> 2] | 0 | 0) | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 144 | 0) >> 2] = wasm2js_i32$1; + break label$11; + } + HEAP32[($5 + 144 | 0) >> 2] = 0; + } + } + } + HEAP32[($5 + 140 | 0) >> 2] = (HEAP32[($5 + 140 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($5 + 120 | 0) >> 2] = 1; + HEAP8[($5 + 154 | 0) >> 0] = 0; + label$13 : { + label$14 : { + if (!((HEAP32[($5 + 128 | 0) >> 2] | 0) >>> 0 > 0 >>> 0 & 1 | 0)) { + break label$14 + } + HEAPF32[($5 + 136 | 0) >> 2] = Math_fround(Math_fround((HEAP32[($5 + 132 | 0) >> 2] | 0) >>> 0) / Math_fround((HEAP32[($5 + 128 | 0) >> 2] | 0) >>> 0)); + break label$13; + } + HEAPF32[($5 + 136 | 0) >> 2] = Math_fround(0 | 0); + } + HEAP32[($5 + 132 | 0) >> 2] = (HEAP32[($5 + 132 | 0) >> 2] | 0) >>> 1 | 0; + HEAP32[($5 + 128 | 0) >> 2] = (HEAP32[($5 + 128 | 0) >> 2] | 0) >>> 1 | 0; + __stack_pointer = $4 + 112 | 0; + return; + } + + function btDbvtBroadphase__performDeferredRemoval_28btDispatcher__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $5 = 0, $6 = 0, $12 = 0, $46 = 0, $47 = 0, $90 = 0, $235 = 0, $239 = 0, $109 = 0, $113 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 80 | 0; + __stack_pointer = $4; + HEAP32[($4 + 76 | 0) >> 2] = $0; + HEAP32[($4 + 72 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 76 | 0) >> 2] | 0; + $6 = HEAP32[($5 + 96 | 0) >> 2] | 0; + label$1 : { + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($6) | 0) & 1 | 0)) { + break label$1 + } + $12 = HEAP32[($5 + 96 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$12 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($12) | 0), HEAP32[(wasm2js_i32$0 + 68 | 0) >> 2] = wasm2js_i32$1; + void_20btAlignedObjectArray_btBroadphasePair___quickSort_btBroadphasePairSortPredicate__28btBroadphasePairSortPredicate_20const__29(HEAP32[($4 + 68 | 0) >> 2] | 0 | 0, $4 + 67 | 0 | 0); + HEAP32[($4 + 60 | 0) >> 2] = 0; + btBroadphasePair__btBroadphasePair_28_29($4 + 40 | 0 | 0) | 0; + HEAP32[($4 + 40 | 0) >> 2] = 0; + HEAP32[($4 + 44 | 0) >> 2] = 0; + HEAP32[($4 + 48 | 0) >> 2] = 0; + HEAP32[($4 + 56 | 0) >> 2] = 0; + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($4 + 56 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btBroadphasePair___size_28_29_20const(HEAP32[($4 + 68 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btBroadphasePair___operator_5b_5d_28int_29(HEAP32[($4 + 68 | 0) >> 2] | 0 | 0, HEAP32[($4 + 56 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = (operator___28btBroadphasePair_20const__2c_20btBroadphasePair_20const__29(HEAP32[($4 + 36 | 0) >> 2] | 0 | 0, $4 + 40 | 0 | 0) | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 35 | 0) >> 0] = wasm2js_i32$1; + $46 = HEAP32[($4 + 36 | 0) >> 2] | 0; + $47 = 8; + i64toi32_i32$2 = $46 + $47 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $235 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 40 | 0) + $47 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $235; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $46; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $239 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 40 | 0) >> 2] = $239; + HEAP32[($4 + 44 | 0) >> 2] = i64toi32_i32$0; + HEAP8[($4 + 34 | 0) >> 0] = 0; + label$4 : { + label$5 : { + if ((HEAPU8[($4 + 35 | 0) >> 0] | 0) & 1 | 0) { + break label$5 + } + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[(HEAP32[($4 + 36 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($4 + 24 | 0) >> 2] = HEAP32[((HEAP32[($4 + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = (Intersect_28btDbvtAabbMm_20const__2c_20btDbvtAabbMm_20const__29(HEAP32[((HEAP32[($4 + 28 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4 + 24 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0 | 0) | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 23 | 0) >> 0] = wasm2js_i32$1; + label$6 : { + label$7 : { + if (!((HEAPU8[($4 + 23 | 0) >> 0] | 0) & 1 | 0)) { + break label$7 + } + HEAP8[($4 + 34 | 0) >> 0] = 0; + break label$6; + } + HEAP8[($4 + 34 | 0) >> 0] = 1; + } + break label$4; + } + HEAP8[($4 + 34 | 0) >> 0] = 1; + label$8 : { + if (!((HEAP32[((HEAP32[($4 + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$8 + } + __assert_fail(77164 | 0, 74016 | 0, 493 | 0, 77271 | 0); + wasm2js_trap(); + } + } + label$9 : { + if (!((HEAPU8[($4 + 34 | 0) >> 0] | 0) & 1 | 0)) { + break label$9 + } + $90 = HEAP32[($5 + 96 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$90 >> 2] | 0) + 32 | 0) >> 2] | 0 | 0]($90, HEAP32[($4 + 36 | 0) >> 2] | 0, HEAP32[($4 + 72 | 0) >> 2] | 0); + HEAP32[(HEAP32[($4 + 36 | 0) >> 2] | 0) >> 2] = 0; + HEAP32[((HEAP32[($4 + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] = 0; + HEAP32[($4 + 60 | 0) >> 2] = (HEAP32[($4 + 60 | 0) >> 2] | 0) + 1 | 0; + } + HEAP32[($4 + 56 | 0) >> 2] = (HEAP32[($4 + 56 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + void_20btAlignedObjectArray_btBroadphasePair___quickSort_btBroadphasePairSortPredicate__28btBroadphasePairSortPredicate_20const__29(HEAP32[($4 + 68 | 0) >> 2] | 0 | 0, $4 + 22 | 0 | 0); + $109 = HEAP32[($4 + 68 | 0) >> 2] | 0; + $113 = (btAlignedObjectArray_btBroadphasePair___size_28_29_20const(HEAP32[($4 + 68 | 0) >> 2] | 0 | 0) | 0) - (HEAP32[($4 + 60 | 0) >> 2] | 0) | 0; + btBroadphasePair__btBroadphasePair_28_29($4 + 4 | 0 | 0) | 0; + btAlignedObjectArray_btBroadphasePair___resize_28int_2c_20btBroadphasePair_20const__29($109 | 0, $113 | 0, $4 + 4 | 0 | 0); + } + __stack_pointer = $4 + 80 | 0; + return; + } + + function int_20const__20btMax_int__28int_20const__2c_20int_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $15 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!((HEAP32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) > (HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + $15 = HEAP32[($4 + 12 | 0) >> 2] | 0; + break label$1; + } + $15 = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + return $15 | 0; + } + + function btAlignedObjectArray_btBroadphasePair___size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function int_20const__20btMin_int__28int_20const__2c_20int_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $15 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!((HEAP32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) < (HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + $15 = HEAP32[($4 + 12 | 0) >> 2] | 0; + break label$1; + } + $15 = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + return $15 | 0; + } + + function btAlignedObjectArray_btBroadphasePair___operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btBroadphasePair___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 4 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function void_20btAlignedObjectArray_btBroadphasePair___quickSort_btBroadphasePairSortPredicate__28btBroadphasePairSortPredicate_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btBroadphasePair___size_28_29_20const($5 | 0) | 0 | 0) > (1 | 0) & 1 | 0)) { + break label$1 + } + void_20btAlignedObjectArray_btBroadphasePair___quickSortInternal_btBroadphasePairSortPredicate__28btBroadphasePairSortPredicate_20const__2c_20int_2c_20int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 0 | 0, (btAlignedObjectArray_btBroadphasePair___size_28_29_20const($5 | 0) | 0) - 1 | 0 | 0); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btBroadphasePair__btBroadphasePair_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + HEAP32[($4 + 12 | 0) >> 2] = 0; + return $4 | 0; + } + + function operator___28btBroadphasePair_20const__2c_20btBroadphasePair_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $15 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $15 = 0; + label$1 : { + if (!((HEAP32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + $15 = (HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + return $15 & 1 | 0 | 0; + } + + function btAlignedObjectArray_btBroadphasePair___resize_28int_2c_20btBroadphasePair_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btBroadphasePair___size_28_29_20const($6 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + break label$1; + } + label$5 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) > (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + btAlignedObjectArray_btBroadphasePair___reserve_28int_29($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + btBroadphasePair__btBroadphasePair_28btBroadphasePair_20const__29(btBroadphasePair__operator_20new_28unsigned_20long_2c_20void__29(16 | 0, (HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function void_20btAlignedObjectArray_btBroadphasePair___quickSortInternal_btBroadphasePairSortPredicate__28btBroadphasePairSortPredicate_20const__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 48 | 0; + __stack_pointer = $6; + HEAP32[($6 + 44 | 0) >> 2] = $0; + HEAP32[($6 + 40 | 0) >> 2] = $1; + HEAP32[($6 + 36 | 0) >> 2] = $2; + HEAP32[($6 + 32 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 44 | 0) >> 2] | 0; + HEAP32[($6 + 28 | 0) >> 2] = HEAP32[($6 + 36 | 0) >> 2] | 0; + HEAP32[($6 + 24 | 0) >> 2] = HEAP32[($6 + 32 | 0) >> 2] | 0; + btBroadphasePair__btBroadphasePair_28btBroadphasePair_20const__29($6 + 8 | 0 | 0, (HEAP32[($7 + 12 | 0) >> 2] | 0) + ((((HEAP32[($6 + 36 | 0) >> 2] | 0) + (HEAP32[($6 + 32 | 0) >> 2] | 0) | 0 | 0) / (2 | 0) | 0) << 4 | 0) | 0 | 0) | 0; + label$1 : while (1) { + label$2 : { + label$3 : while (1) { + if (!((btBroadphasePairSortPredicate__operator_28_29_28btBroadphasePair_20const__2c_20btBroadphasePair_20const__29_20const(HEAP32[($6 + 40 | 0) >> 2] | 0 | 0, (HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 28 | 0) >> 2] | 0) << 4 | 0) | 0 | 0, $6 + 8 | 0 | 0) | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($6 + 28 | 0) >> 2] = (HEAP32[($6 + 28 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + label$4 : { + label$5 : while (1) { + if (!((btBroadphasePairSortPredicate__operator_28_29_28btBroadphasePair_20const__2c_20btBroadphasePair_20const__29_20const(HEAP32[($6 + 40 | 0) >> 2] | 0 | 0, $6 + 8 | 0 | 0, (HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 24 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($6 + 24 | 0) >> 2] = (HEAP32[($6 + 24 | 0) >> 2] | 0) + -1 | 0; + continue label$5; + }; + } + label$6 : { + if (!((HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) <= (HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + btAlignedObjectArray_btBroadphasePair___swap_28int_2c_20int_29($7 | 0, HEAP32[($6 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0); + HEAP32[($6 + 28 | 0) >> 2] = (HEAP32[($6 + 28 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($6 + 24 | 0) >> 2] = (HEAP32[($6 + 24 | 0) >> 2] | 0) + -1 | 0; + } + if ((HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) <= (HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) & 1 | 0) { + continue label$1 + } + break label$1; + }; + label$7 : { + if (!((HEAP32[($6 + 36 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$7 + } + void_20btAlignedObjectArray_btBroadphasePair___quickSortInternal_btBroadphasePairSortPredicate__28btBroadphasePairSortPredicate_20const__2c_20int_2c_20int_29($7 | 0, HEAP32[($6 + 40 | 0) >> 2] | 0 | 0, HEAP32[($6 + 36 | 0) >> 2] | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0); + } + label$8 : { + if (!((HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 32 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + void_20btAlignedObjectArray_btBroadphasePair___quickSortInternal_btBroadphasePairSortPredicate__28btBroadphasePairSortPredicate_20const__2c_20int_2c_20int_29($7 | 0, HEAP32[($6 + 40 | 0) >> 2] | 0 | 0, HEAP32[($6 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6 + 32 | 0) >> 2] | 0 | 0); + } + __stack_pointer = $6 + 48 | 0; + return; + } + + function btAlignedObjectArray_btBroadphasePair___reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btBroadphasePair___capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btBroadphasePair___allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btBroadphasePair___copy_28int_2c_20int_2c_20btBroadphasePair__29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btBroadphasePair___size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btBroadphasePair___destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btBroadphasePair___size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btBroadphasePair___deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btBroadphasePair__operator_20new_28unsigned_20long_2c_20void__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return HEAP32[($4 + 8 | 0) >> 2] | 0 | 0; + } + + function btBroadphasePair__btBroadphasePair_28btBroadphasePair_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + return $5 | 0; + } + + function btDbvtBroadphase__getOverlappingPairCache_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 96 | 0) >> 2] | 0 | 0; + } + + function btDbvtBroadphase__getOverlappingPairCache_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 96 | 0) >> 2] | 0 | 0; + } + + function btDbvtBroadphase__getBroadphaseAabb_28btVector3__2c_20btVector3__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $5 = 0, $6 = 0, $27 = 0, $54 = 0, $28 = 0, $34 = 0, $40 = 0, $55 = 0, $61 = 0, $67 = 0, $100 = 0, $108 = 0, $116 = 0, $129 = 0, $131 = 0, $139 = 0, $141 = 0, $212 = 0, $225 = 0, $238 = 0, $242 = 0, $269 = 0, $282 = 0, $295 = 0, $299 = 0, $361 = 0, $377 = 0, $393 = 0, $397 = 0, $128 = 0, $409 = 0, $419 = 0, $138 = 0, $431 = 0, $441 = 0; + $5 = __stack_pointer - 112 | 0; + __stack_pointer = $5; + HEAP32[($5 + 108 | 0) >> 2] = $0; + HEAP32[($5 + 104 | 0) >> 2] = $1; + HEAP32[($5 + 100 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 108 | 0) >> 2] | 0; + btDbvtAabbMm__btDbvtAabbMm_28_29($5 + 64 | 0 | 0) | 0; + label$1 : { + label$2 : { + if ((btDbvt__empty_28_29_20const($6 + 4 | 0 | 0) | 0) & 1 | 0) { + break label$2 + } + label$3 : { + label$4 : { + if ((btDbvt__empty_28_29_20const(($6 + 4 | 0) + 40 | 0 | 0) | 0) & 1 | 0) { + break label$4 + } + Merge_28btDbvtAabbMm_20const__2c_20btDbvtAabbMm_20const__2c_20btDbvtAabbMm__29(HEAP32[($6 + 4 | 0) >> 2] | 0 | 0, HEAP32[($6 + 44 | 0) >> 2] | 0 | 0, $5 + 64 | 0 | 0); + break label$3; + } + $27 = HEAP32[($6 + 4 | 0) >> 2] | 0; + $28 = 24; + i64toi32_i32$2 = $27 + $28 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $212 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 64 | 0) + $28 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $212; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $34 = 16; + i64toi32_i32$2 = $27 + $34 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $225 = i64toi32_i32$1; + i64toi32_i32$1 = ($5 + 64 | 0) + $34 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $225; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $40 = 8; + i64toi32_i32$2 = $27 + $40 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $238 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 64 | 0) + $40 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $238; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $27; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $242 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[(i64toi32_i32$1 + 64 | 0) >> 2] = $242; + HEAP32[(i64toi32_i32$1 + 68 | 0) >> 2] = i64toi32_i32$0; + } + break label$1; + } + label$5 : { + label$6 : { + if ((btDbvt__empty_28_29_20const(($6 + 4 | 0) + 40 | 0 | 0) | 0) & 1 | 0) { + break label$6 + } + $54 = HEAP32[($6 + 44 | 0) >> 2] | 0; + $55 = 24; + i64toi32_i32$2 = $54 + $55 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $269 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 64 | 0) + $55 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $269; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $61 = 16; + i64toi32_i32$2 = $54 + $61 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $282 = i64toi32_i32$1; + i64toi32_i32$1 = ($5 + 64 | 0) + $61 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $282; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $67 = 8; + i64toi32_i32$2 = $54 + $67 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $295 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 64 | 0) + $67 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $295; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $54; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $299 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[(i64toi32_i32$1 + 64 | 0) >> 2] = $299; + HEAP32[(i64toi32_i32$1 + 68 | 0) >> 2] = i64toi32_i32$0; + break label$5; + } + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 8 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 4 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 16 | 0 | 0, $5 + 12 | 0 | 0, $5 + 8 | 0 | 0, $5 + 4 | 0 | 0) | 0; + btDbvtAabbMm__FromCR_28btVector3_20const__2c_20float_29($5 + 32 | 0 | 0, $5 + 16 | 0 | 0, Math_fround(Math_fround(0 | 0))); + $100 = 24; + i64toi32_i32$2 = ($5 + 32 | 0) + $100 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $361 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 64 | 0) + $100 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $361; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $108 = 16; + i64toi32_i32$2 = ($5 + 32 | 0) + $108 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $377 = i64toi32_i32$1; + i64toi32_i32$1 = ($5 + 64 | 0) + $108 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $377; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $116 = 8; + i64toi32_i32$2 = ($5 + 32 | 0) + $116 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $393 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 64 | 0) + $116 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $393; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $5; + i64toi32_i32$1 = HEAP32[($5 + 32 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 36 | 0) >> 2] | 0; + $397 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[(i64toi32_i32$1 + 64 | 0) >> 2] = $397; + HEAP32[(i64toi32_i32$1 + 68 | 0) >> 2] = i64toi32_i32$0; + } + } + $128 = btDbvtAabbMm__Mins_28_29_20const($5 + 64 | 0 | 0) | 0; + $129 = HEAP32[($5 + 104 | 0) >> 2] | 0; + i64toi32_i32$2 = $128; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $409 = i64toi32_i32$0; + i64toi32_i32$0 = $129; + HEAP32[i64toi32_i32$0 >> 2] = $409; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $131 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $131 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $419 = i64toi32_i32$1; + i64toi32_i32$1 = $129 + $131 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $419; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $138 = btDbvtAabbMm__Maxs_28_29_20const($5 + 64 | 0 | 0) | 0; + $139 = HEAP32[($5 + 100 | 0) >> 2] | 0; + i64toi32_i32$2 = $138; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $431 = i64toi32_i32$0; + i64toi32_i32$0 = $139; + HEAP32[i64toi32_i32$0 >> 2] = $431; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $141 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $141 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $441 = i64toi32_i32$1; + i64toi32_i32$1 = $139 + $141 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $441; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $5 + 112 | 0; + return; + } + + function btDbvt__empty_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (0 | 0) == (HEAP32[(HEAP32[($3 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0 | 0; + } + + function Merge_28btDbvtAabbMm_20const__2c_20btDbvtAabbMm_20const__2c_20btDbvtAabbMm__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $37 = Math_fround(0), $50 = Math_fround(0), $86 = Math_fround(0), $103 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[$5 >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$1 + } + label$3 : { + label$4 : { + if (!(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0) + ((HEAP32[$5 >> 2] | 0) << 2 | 0) | 0) >> 2]) < Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) + ((HEAP32[$5 >> 2] | 0) << 2 | 0) | 0) >> 2]) & 1 | 0)) { + break label$4 + } + $37 = Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0) + ((HEAP32[$5 >> 2] | 0) << 2 | 0) | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) + ((HEAP32[$5 >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $37), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + break label$3; + } + $50 = Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) + ((HEAP32[$5 >> 2] | 0) << 2 | 0) | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) + ((HEAP32[$5 >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $50), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + } + label$5 : { + label$6 : { + if (!(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const((HEAP32[($5 + 12 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) + ((HEAP32[$5 >> 2] | 0) << 2 | 0) | 0) >> 2]) > Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const((HEAP32[($5 + 8 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) + ((HEAP32[$5 >> 2] | 0) << 2 | 0) | 0) >> 2]) & 1 | 0)) { + break label$6 + } + $86 = Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const((HEAP32[($5 + 12 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) + ((HEAP32[$5 >> 2] | 0) << 2 | 0) | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29((HEAP32[($5 + 4 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) + ((HEAP32[$5 >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $86), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + break label$5; + } + $103 = Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const((HEAP32[($5 + 8 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) + ((HEAP32[$5 >> 2] | 0) << 2 | 0) | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29((HEAP32[($5 + 4 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) + ((HEAP32[$5 >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $103), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $5 + 16 | 0; + return; + } + + function btDbvtAabbMm__FromCR_28btVector3_20const__2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0, $12 = 0, $6 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $1; + HEAPF32[($5 + 24 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + $12 = $5 + 24 | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 8 | 0 | 0, $12 | 0, $12 | 0, $12 | 0) | 0; + btDbvtAabbMm__FromCE_28btVector3_20const__2c_20btVector3_20const__29($0 | 0, $6 | 0, $5 + 8 | 0 | 0); + __stack_pointer = $5 + 32 | 0; + return; + } + + function btDbvtAabbMm__FromCE_28btVector3_20const__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $12 = 0, $24 = 0, $26 = 0, $59 = 0, $72 = 0, $90 = 0, $103 = 0; + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 44 | 0) >> 2] = $1; + HEAP32[($5 + 40 | 0) >> 2] = $2; + btDbvtAabbMm__btDbvtAabbMm_28_29($0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 24 | 0 | 0, HEAP32[($5 + 44 | 0) >> 2] | 0 | 0, HEAP32[($5 + 40 | 0) >> 2] | 0 | 0); + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 24 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 28 | 0) >> 2] | 0; + $59 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $59; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $12 = 8; + i64toi32_i32$2 = ($5 + 24 | 0) + $12 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $72 = i64toi32_i32$1; + i64toi32_i32$1 = $0 + $12 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $72; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($5 + 8 | 0 | 0, HEAP32[($5 + 44 | 0) >> 2] | 0 | 0, HEAP32[($5 + 40 | 0) >> 2] | 0 | 0); + $24 = $0 + 16 | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 12 | 0) >> 2] | 0; + $90 = i64toi32_i32$0; + i64toi32_i32$0 = $24; + HEAP32[i64toi32_i32$0 >> 2] = $90; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $26 = 8; + i64toi32_i32$2 = ($5 + 8 | 0) + $26 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $103 = i64toi32_i32$1; + i64toi32_i32$1 = $24 + $26 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $103; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $5 + 48 | 0; + return; + } + + function btDbvtBroadphase__resetPool_28btDispatcher__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($5 + 16 | 0) >> 2] | 0) + (HEAP32[($5 + 56 | 0) >> 2] | 0) | 0; + label$1 : { + if (HEAP32[($4 + 4 | 0) >> 2] | 0) { + break label$1 + } + btDbvt__clear_28_29($5 + 4 | 0 | 0); + btDbvt__clear_28_29(($5 + 4 | 0) + 40 | 0 | 0); + HEAP8[($5 + 153 | 0) >> 0] = 0; + HEAP8[($5 + 154 | 0) >> 0] = 1; + HEAP32[($5 + 104 | 0) >> 2] = 0; + HEAP32[($5 + 124 | 0) >> 2] = 0; + HEAP32[($5 + 108 | 0) >> 2] = 1; + HEAP32[($5 + 112 | 0) >> 2] = 0; + HEAP32[($5 + 116 | 0) >> 2] = 10; + HEAP32[($5 + 120 | 0) >> 2] = 1; + HEAP32[($5 + 128 | 0) >> 2] = 0; + HEAP32[($5 + 132 | 0) >> 2] = 0; + HEAPF32[($5 + 136 | 0) >> 2] = Math_fround(0 | 0); + HEAP32[($5 + 148 | 0) >> 2] = 0; + HEAP32[($5 + 140 | 0) >> 2] = 0; + HEAP32[($5 + 144 | 0) >> 2] = 0; + HEAP32[$4 >> 2] = 0; + label$2 : { + label$3 : while (1) { + if (!((HEAP32[$4 >> 2] | 0 | 0) <= (2 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[(($5 + 84 | 0) + ((HEAP32[$4 >> 2] | 0) << 2 | 0) | 0) >> 2] = 0; + HEAP32[$4 >> 2] = (HEAP32[$4 >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btDbvtBroadphase__printStats_28_29($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return; + } + + function btBroadphaseInterface___btBroadphaseInterface_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btBroadphaseInterface__resetPool_28btDispatcher__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return; + } + + function btDbvtTreeCollider___btDbvtTreeCollider_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btDbvtTreeCollider___btDbvtTreeCollider_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btDbvtTreeCollider__Process_28btDbvtNode_20const__2c_20btDbvtNode_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $19 = 0, $24 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) != (HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[($5 + 16 | 0) >> 2] = HEAP32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[((HEAP32[($5 + 20 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + $19 = HEAP32[((HEAP32[($6 + 4 | 0) >> 2] | 0) + 96 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$19 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($19, HEAP32[($5 + 16 | 0) >> 2] | 0, HEAP32[($5 + 12 | 0) >> 2] | 0) | 0; + $24 = HEAP32[($6 + 4 | 0) >> 2] | 0; + HEAP32[($24 + 120 | 0) >> 2] = (HEAP32[($24 + 120 | 0) >> 2] | 0) + 1 | 0; + } + __stack_pointer = $5 + 32 | 0; + return; + } + + function btDbvtTreeCollider__Process_28btDbvtNode_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($5, HEAP32[($4 + 8 | 0) >> 2] | 0, HEAP32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btDbvt__ICollide__Process_28btDbvtNode_20const__2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($6, HEAP32[($5 + 8 | 0) >> 2] | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function btDbvt__ICollide__Descent_28btDbvtNode_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return 1 & 1 | 0 | 0; + } + + function btDbvt__ICollide__AllLeaves_28btDbvtNode_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return 1 & 1 | 0 | 0; + } + + function btDbvt__ICollide___ICollide_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btDbvt__ICollide___ICollide_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btDbvt__ICollide__Process_28btDbvtNode_20const__2c_20btDbvtNode_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + return; + } + + function btDbvt__ICollide__Process_28btDbvtNode_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return; + } + + function btAlignedObjectArray_btDbvtNode_20const____reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btDbvtNode_20const____capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btDbvtNode_20const____allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btDbvtNode_20const____copy_28int_2c_20int_2c_20btDbvtNode_20const___29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btDbvtNode_20const____size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btDbvtNode_20const____destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btDbvtNode_20const____size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btDbvtNode_20const____deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btDbvtNode_20const____capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btDbvtNode_20const____allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btDbvtNode__isleaf_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0 | 0; + } + + function btAlignedObjectArray_btDbvtNode_20const____allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btDbvtNode_20const__2c_2016u___allocate_28int_2c_20btDbvtNode_20const__20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btDbvtNode_20const____copy_28int_2c_20int_2c_20btDbvtNode_20const___29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[((HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[((HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btDbvtNode_20const____destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btDbvtNode_20const____deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btDbvtNode_20const__2c_2016u___deallocate_28btDbvtNode_20const___29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocator_btDbvtNode_20const__2c_2016u___allocate_28int_2c_20btDbvtNode_20const__20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btAlignedAllocator_btDbvtNode_20const__2c_2016u___deallocate_28btDbvtNode_20const___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function BroadphaseRayTester___BroadphaseRayTester_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + BroadphaseRayTester___BroadphaseRayTester_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function BroadphaseRayTester__Process_28btDbvtNode_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $8 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + $8 = HEAP32[($5 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($8, HEAP32[($4 + 4 | 0) >> 2] | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btVector3__getX_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btVector3__getY_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0 | 0; + } + + function btVector3__getZ_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0 | 0; + } + + function BroadphaseAabbTester___BroadphaseAabbTester_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + BroadphaseAabbTester___BroadphaseAabbTester_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function BroadphaseAabbTester__Process_28btDbvtNode_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $8 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + $8 = HEAP32[($5 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($8, HEAP32[($4 + 4 | 0) >> 2] | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btDbvt__sStkNN___reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btDbvt__sStkNN___capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btDbvt__sStkNN___allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btDbvt__sStkNN___copy_28int_2c_20int_2c_20btDbvt__sStkNN__29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btDbvt__sStkNN___size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btDbvt__sStkNN___destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btDbvt__sStkNN___size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btDbvt__sStkNN___deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btDbvt__sStkNN___capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btDbvt__sStkNN___allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btDbvt__sStkNN_2c_2016u___allocate_28int_2c_20btDbvt__sStkNN_20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btDbvt__sStkNN___copy_28int_2c_20int_2c_20btDbvt__sStkNN__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, $7 = 0, i64toi32_i32$1 = 0, $85 = 0; + $6 = __stack_pointer - 32 | 0; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + i64toi32_i32$2 = (HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 3 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $85 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $85; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btDbvt__sStkNN___destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btDbvt__sStkNN___deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btDbvt__sStkNN_2c_2016u___deallocate_28btDbvt__sStkNN__29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocator_btDbvt__sStkNN_2c_2016u___allocate_28int_2c_20btDbvt__sStkNN_20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 3 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btAlignedAllocator_btDbvt__sStkNN_2c_2016u___deallocate_28btDbvt__sStkNN__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btDbvtNode_20const_____btAlignedObjectArray_28_29((HEAP32[($6 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[$5 >> 2] | 0, 20) | 0 | 0) | 0; + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $5 + 16 | 0; + return; + } + + function btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btAlignedObjectArray_btDbvtNode_20const___2c_2016u___deallocate_28btAlignedObjectArray_btDbvtNode_20const____29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocator_btAlignedObjectArray_btDbvtNode_20const___2c_2016u___deallocate_28btAlignedObjectArray_btDbvtNode_20const____29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btAlignedObjectArray_btDbvtNode_20const___2c_2016u___allocate_28int_2c_20btAlignedObjectArray_btDbvtNode_20const___20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btAlignedObjectArray_btDbvtNode_20const_____copy_28int_2c_20int_2c_20btAlignedObjectArray_btDbvtNode_20const____29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btDbvtNode_20const____btAlignedObjectArray_28btAlignedObjectArray_btDbvtNode_20const___20const__29((HEAP32[($6 + 16 | 0) >> 2] | 0) + Math_imul(HEAP32[($6 + 12 | 0) >> 2] | 0, 20) | 0 | 0, (HEAP32[($7 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($6 + 12 | 0) >> 2] | 0, 20) | 0 | 0) | 0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $6 + 32 | 0; + return; + } + + function btAlignedAllocator_btAlignedObjectArray_btDbvtNode_20const___2c_2016u___allocate_28int_2c_20btAlignedObjectArray_btDbvtNode_20const___20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(Math_imul(HEAP32[($5 + 8 | 0) >> 2] | 0, 20) | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btBroadphasePairSortPredicate__operator_28_29_28btBroadphasePair_20const__2c_20btBroadphasePair_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $70 = 0, $98 = 0, $17 = 0, $31 = 0, $45 = 0, $59 = 0; + $5 = __stack_pointer - 32 | 0; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + label$1 : { + label$2 : { + if (!((HEAP32[(HEAP32[($5 + 24 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + $17 = HEAP32[((HEAP32[(HEAP32[($5 + 24 | 0) >> 2] | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + break label$1; + } + $17 = -1; + } + HEAP32[($5 + 16 | 0) >> 2] = $17; + label$3 : { + label$4 : { + if (!((HEAP32[(HEAP32[($5 + 20 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $31 = HEAP32[((HEAP32[(HEAP32[($5 + 20 | 0) >> 2] | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + break label$3; + } + $31 = -1; + } + HEAP32[($5 + 12 | 0) >> 2] = $31; + label$5 : { + label$6 : { + if (!((HEAP32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $45 = HEAP32[((HEAP32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + break label$5; + } + $45 = -1; + } + HEAP32[($5 + 8 | 0) >> 2] = $45; + label$7 : { + label$8 : { + if (!((HEAP32[((HEAP32[($5 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$8 + } + $59 = HEAP32[((HEAP32[((HEAP32[($5 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + break label$7; + } + $59 = -1; + } + HEAP32[($5 + 4 | 0) >> 2] = $59; + $70 = 1; + label$9 : { + if ((HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) > (HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$9 + } + label$10 : { + if (!((HEAP32[(HEAP32[($5 + 24 | 0) >> 2] | 0) >> 2] | 0 | 0) == (HEAP32[(HEAP32[($5 + 20 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$10 + } + $70 = 1; + if ((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) > (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$9 + } + } + $98 = 0; + label$11 : { + if (!((HEAP32[(HEAP32[($5 + 24 | 0) >> 2] | 0) >> 2] | 0 | 0) == (HEAP32[(HEAP32[($5 + 20 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$11 + } + $98 = 0; + if (!((HEAP32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($5 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$11 + } + $98 = (HEAP32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >>> 0 > (HEAP32[((HEAP32[($5 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >>> 0; + } + $70 = $98; + } + return $70 & 1 | 0 | 0; + } + + function btAlignedObjectArray_btBroadphasePair___swap_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $6 = 0, $24 = 0, $26 = 0, $34 = 0, $36 = 0, $97 = 0, $107 = 0, $121 = 0, $134 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + btBroadphasePair__btBroadphasePair_28btBroadphasePair_20const__29($5 + 4 | 0 | 0, (HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 24 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0; + $24 = (HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 24 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = (HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 20 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $97 = i64toi32_i32$0; + i64toi32_i32$0 = $24; + HEAP32[i64toi32_i32$0 >> 2] = $97; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $26 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $26 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $107 = i64toi32_i32$1; + i64toi32_i32$1 = $24 + $26 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $107; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $34 = (HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 20 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 4 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 8 | 0) >> 2] | 0; + $121 = i64toi32_i32$0; + i64toi32_i32$0 = $34; + HEAP32[i64toi32_i32$0 >> 2] = $121; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $36 = 8; + i64toi32_i32$2 = ($5 + 4 | 0) + $36 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $134 = i64toi32_i32$1; + i64toi32_i32$1 = $34 + $36 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $134; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btAlignedObjectArray_btBroadphasePair___capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btBroadphasePair___allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btBroadphasePair_2c_2016u___allocate_28int_2c_20btBroadphasePair_20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btBroadphasePair___copy_28int_2c_20int_2c_20btBroadphasePair__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + btBroadphasePair__btBroadphasePair_28btBroadphasePair_20const__29(btBroadphasePair__operator_20new_28unsigned_20long_2c_20void__29(16 | 0, (HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0 | 0, (HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $6 + 32 | 0; + return; + } + + function btAlignedObjectArray_btBroadphasePair___destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btBroadphasePair___deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btBroadphasePair_2c_2016u___deallocate_28btBroadphasePair__29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocator_btBroadphasePair_2c_2016u___allocate_28int_2c_20btBroadphasePair_20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 4 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btAlignedAllocator_btBroadphasePair_2c_2016u___deallocate_28btBroadphasePair__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function _GLOBAL__sub_I_btDbvtBroadphase_cpp() { + __cxx_global_var_init_4(); + return; + } + + function __cxx_global_var_init_5() { + btInfMaskConverter__btInfMaskConverter_28int_29(113940 | 0, 2139095040 | 0) | 0; + return; + } + + function btEnterProfileZoneDefault_28char_20const__29($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return; + } + + function btLeaveProfileZoneDefault_28_29() { + + } + + function btEnterProfileZone_28char_20const__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + FUNCTION_TABLE[HEAP32[(0 + 112824 | 0) >> 2] | 0 | 0](HEAP32[($3 + 12 | 0) >> 2] | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btLeaveProfileZone_28_29() { + FUNCTION_TABLE[HEAP32[(0 + 112828 | 0) >> 2] | 0 | 0](); + return; + } + + function CProfileSample__CProfileSample_28char_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btEnterProfileZone_28char_20const__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function CProfileSample___CProfileSample_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btLeaveProfileZone_28_29(); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function _GLOBAL__sub_I_btQuickprof_cpp() { + __cxx_global_var_init_5(); + return; + } + + function __cxx_global_var_init_6() { + btInfMaskConverter__btInfMaskConverter_28int_29(113944 | 0, 2139095040 | 0) | 0; + return; + } + + function btHashedOverlappingPairCache__btHashedOverlappingPairCache_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btOverlappingPairCache__btOverlappingPairCache_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 90544 + 8 | 0; + btAlignedObjectArray_btBroadphasePair___btAlignedObjectArray_28_29($4 + 4 | 0 | 0) | 0; + HEAP32[($4 + 24 | 0) >> 2] = 0; + btAlignedObjectArray_int___btAlignedObjectArray_28_29($4 + 28 | 0 | 0) | 0; + btAlignedObjectArray_int___btAlignedObjectArray_28_29($4 + 48 | 0 | 0) | 0; + HEAP32[($4 + 68 | 0) >> 2] = 0; + HEAP32[($3 + 8 | 0) >> 2] = 2; + btAlignedObjectArray_btBroadphasePair___reserve_28int_29($4 + 4 | 0 | 0, HEAP32[($3 + 8 | 0) >> 2] | 0 | 0); + btHashedOverlappingPairCache__growTables_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btOverlappingPairCache__btOverlappingPairCache_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btOverlappingPairCallback__btOverlappingPairCallback_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 90736 + 8 | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btBroadphasePair___btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btBroadphasePair_2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btBroadphasePair___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btHashedOverlappingPairCache__growTables_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $22 = 0, $29 = 0, $97 = 0, $102 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $3 = __stack_pointer - 48 | 0; + __stack_pointer = $3; + HEAP32[($3 + 44 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 44 | 0) >> 2] | 0; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btAlignedObjectArray_btBroadphasePair___capacity_28_29_20const($4 + 4 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((btAlignedObjectArray_int___size_28_29_20const($4 + 28 | 0 | 0) | 0 | 0) < (HEAP32[($3 + 40 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btAlignedObjectArray_int___size_28_29_20const($4 + 28 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_i32$1; + $22 = HEAP32[($3 + 40 | 0) >> 2] | 0; + HEAP32[($3 + 32 | 0) >> 2] = 0; + btAlignedObjectArray_int___resize_28int_2c_20int_20const__29($4 + 28 | 0 | 0, $22 | 0, $3 + 32 | 0 | 0); + $29 = HEAP32[($3 + 40 | 0) >> 2] | 0; + HEAP32[($3 + 28 | 0) >> 2] = 0; + btAlignedObjectArray_int___resize_28int_2c_20int_20const__29($4 + 48 | 0 | 0, $29 | 0, $3 + 28 | 0 | 0); + HEAP32[($3 + 24 | 0) >> 2] = 0; + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($3 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($3 + 40 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($4 + 28 | 0 | 0, HEAP32[($3 + 24 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = -1), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[($3 + 24 | 0) >> 2] = (HEAP32[($3 + 24 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + HEAP32[($3 + 24 | 0) >> 2] = 0; + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($3 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($3 + 40 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($4 + 48 | 0 | 0, HEAP32[($3 + 24 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = -1), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[($3 + 24 | 0) >> 2] = (HEAP32[($3 + 24 | 0) >> 2] | 0) + 1 | 0; + continue label$5; + }; + } + HEAP32[($3 + 24 | 0) >> 2] = 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($3 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($3 + 36 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btAlignedObjectArray_btBroadphasePair___operator_5b_5d_28int_29($4 + 4 | 0 | 0, HEAP32[($3 + 24 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btBroadphaseProxy__getUid_28_29_20const(HEAP32[(HEAP32[($3 + 20 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btBroadphaseProxy__getUid_28_29_20const(HEAP32[((HEAP32[($3 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = (btHashedOverlappingPairCache__getHash_28unsigned_20int_2c_20unsigned_20int_29($4 | 0, HEAP32[($3 + 16 | 0) >> 2] | 0 | 0, HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0) & ((btAlignedObjectArray_btBroadphasePair___capacity_28_29_20const($4 + 4 | 0 | 0) | 0) - 1 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + $97 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($4 + 28 | 0 | 0, HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($4 + 48 | 0 | 0, HEAP32[($3 + 24 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $97), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $102 = HEAP32[($3 + 24 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($4 + 28 | 0 | 0, HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $102), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[($3 + 24 | 0) >> 2] = (HEAP32[($3 + 24 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + __stack_pointer = $3 + 48 | 0; + return; + } + + function btOverlappingPairCallback__btOverlappingPairCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 90812 + 8 | 0; + return $4 | 0; + } + + function btAlignedAllocator_btBroadphasePair_2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btBroadphasePair___init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btAlignedObjectArray_int___operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_int___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 2 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btBroadphaseProxy__getUid_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0; + } + + function btHashedOverlappingPairCache__getHash_28unsigned_20int_2c_20unsigned_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0 | ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 16 | 0) | 0; + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + (((HEAP32[$5 >> 2] | 0) << 15 | 0) ^ -1 | 0) | 0; + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) ^ ((HEAP32[$5 >> 2] | 0) >>> 10 | 0) | 0; + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + ((HEAP32[$5 >> 2] | 0) << 3 | 0) | 0; + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) ^ ((HEAP32[$5 >> 2] | 0) >>> 6 | 0) | 0; + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + (((HEAP32[$5 >> 2] | 0) << 11 | 0) ^ -1 | 0) | 0; + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) ^ ((HEAP32[$5 >> 2] | 0) >>> 16 | 0) | 0; + return HEAP32[$5 >> 2] | 0 | 0; + } + + function btHashedOverlappingPairCache___btHashedOverlappingPairCache_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 90544 + 8 | 0; + btAlignedObjectArray_int____btAlignedObjectArray_28_29($4 + 48 | 0 | 0) | 0; + btAlignedObjectArray_int____btAlignedObjectArray_28_29($4 + 28 | 0 | 0) | 0; + btAlignedObjectArray_btBroadphasePair____btAlignedObjectArray_28_29($4 + 4 | 0 | 0) | 0; + btOverlappingPairCache___btOverlappingPairCache_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btBroadphasePair____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btBroadphasePair___clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btOverlappingPairCache___btOverlappingPairCache_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btOverlappingPairCallback___btOverlappingPairCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btBroadphasePair___clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btBroadphasePair___destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btBroadphasePair___size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btBroadphasePair___deallocate_28_29($4 | 0); + btAlignedObjectArray_btBroadphasePair___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btHashedOverlappingPairCache___btHashedOverlappingPairCache_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[479 | 0]($4) | 0; + btHashedOverlappingPairCache__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btHashedOverlappingPairCache__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btHashedOverlappingPairCache__cleanOverlappingPair_28btBroadphasePair__2c_20btDispatcher__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $22 = 0, $25 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + label$1 : { + if (!((HEAP32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + if (!((HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + $22 = HEAP32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$22 >> 2] | 0) >> 2] | 0 | 0]($22) | 0; + $25 = HEAP32[($5 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$25 >> 2] | 0) + 60 | 0) >> 2] | 0 | 0]($25, HEAP32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0); + HEAP32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = 0; + } + __stack_pointer = $5 + 16 | 0; + return; + } + + function btHashedOverlappingPairCache__cleanProxyFromPairs_28btBroadphaseProxy__2c_20btDispatcher__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + btHashedOverlappingPairCache__cleanProxyFromPairs_28btBroadphaseProxy__2c_20btDispatcher__29__CleanPairCallback__CleanPairCallback_28btBroadphaseProxy__2c_20btOverlappingPairCache__2c_20btDispatcher__29($5 + 4 | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0, $6 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($6, $5 + 4 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0); + btHashedOverlappingPairCache__cleanProxyFromPairs_28btBroadphaseProxy__2c_20btDispatcher__29__CleanPairCallback___CleanPairCallback_28_29($5 + 4 | 0 | 0) | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btHashedOverlappingPairCache__cleanProxyFromPairs_28btBroadphaseProxy__2c_20btDispatcher__29__CleanPairCallback__CleanPairCallback_28btBroadphaseProxy__2c_20btOverlappingPairCache__2c_20btDispatcher__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btOverlapCallback__btOverlapCallback_28_29($7 | 0) | 0; + HEAP32[$7 >> 2] = 90840 + 8 | 0; + HEAP32[($7 + 4 | 0) >> 2] = HEAP32[($6 + 8 | 0) >> 2] | 0; + HEAP32[($7 + 8 | 0) >> 2] = HEAP32[($6 + 4 | 0) >> 2] | 0; + HEAP32[($7 + 12 | 0) >> 2] = HEAP32[$6 >> 2] | 0; + __stack_pointer = $6 + 16 | 0; + return $7 | 0; + } + + function btHashedOverlappingPairCache__cleanProxyFromPairs_28btBroadphaseProxy__2c_20btDispatcher__29__CleanPairCallback___CleanPairCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btOverlapCallback___btOverlapCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btOverlapCallback__btOverlapCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 91012 + 8 | 0; + return $4 | 0; + } + + function btOverlapCallback___btOverlapCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btHashedOverlappingPairCache__removeOverlappingPairsContainingProxy_28btBroadphaseProxy__2c_20btDispatcher__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + btHashedOverlappingPairCache__removeOverlappingPairsContainingProxy_28btBroadphaseProxy__2c_20btDispatcher__29__RemovePairCallback__RemovePairCallback_28btBroadphaseProxy__29($5 + 12 | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($6, $5 + 12 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0); + btHashedOverlappingPairCache__removeOverlappingPairsContainingProxy_28btBroadphaseProxy__2c_20btDispatcher__29__RemovePairCallback___RemovePairCallback_28_29($5 + 12 | 0 | 0) | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btHashedOverlappingPairCache__removeOverlappingPairsContainingProxy_28btBroadphaseProxy__2c_20btDispatcher__29__RemovePairCallback__RemovePairCallback_28btBroadphaseProxy__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btOverlapCallback__btOverlapCallback_28_29($5 | 0) | 0; + HEAP32[$5 >> 2] = 91032 + 8 | 0; + HEAP32[($5 + 4 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function btHashedOverlappingPairCache__removeOverlappingPairsContainingProxy_28btBroadphaseProxy__2c_20btDispatcher__29__RemovePairCallback___RemovePairCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btOverlapCallback___btOverlapCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btHashedOverlappingPairCache__findPair_28btBroadphaseProxy__2c_20btBroadphaseProxy__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $63 = 0, $110 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 24 | 0) >> 2] = $0; + HEAP32[($5 + 20 | 0) >> 2] = $1; + HEAP32[($5 + 16 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 24 | 0) >> 2] | 0; + HEAP32[(0 + 113960 | 0) >> 2] = (HEAP32[(0 + 113960 | 0) >> 2] | 0) + 1 | 0; + label$1 : { + if (!((HEAP32[((HEAP32[($5 + 20 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) > (HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + void_20btSwap_btBroadphaseProxy___28btBroadphaseProxy___2c_20btBroadphaseProxy___29($5 + 20 | 0 | 0, $5 + 16 | 0 | 0); + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btBroadphaseProxy__getUid_28_29_20const(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btBroadphaseProxy__getUid_28_29_20const(HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = (btHashedOverlappingPairCache__getHash_28unsigned_20int_2c_20unsigned_20int_29($6 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) & ((btAlignedObjectArray_btBroadphasePair___capacity_28_29_20const($6 + 4 | 0 | 0) | 0) - 1 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$2 : { + label$3 : { + if (!((HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) >= (btAlignedObjectArray_int___size_28_29_20const($6 + 28 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 28 | 0) >> 2] = 0; + break label$2; + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 28 | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + label$4 : while (1) { + $63 = 0; + label$5 : { + if (!((HEAP32[$5 >> 2] | 0 | 0) != (-1 | 0) & 1 | 0)) { + break label$5 + } + $63 = ((btHashedOverlappingPairCache__equalsPair_28btBroadphasePair_20const__2c_20int_2c_20int_29($6 | 0, btAlignedObjectArray_btBroadphasePair___operator_5b_5d_28int_29($6 + 4 | 0 | 0, HEAP32[$5 >> 2] | 0 | 0) | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) & 1 | 0 | 0) == (0 | 0); + } + label$6 : { + if (!($63 & 1 | 0)) { + break label$6 + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 48 | 0 | 0, HEAP32[$5 >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + continue label$4; + } + break label$4; + }; + label$7 : { + if (!((HEAP32[$5 >> 2] | 0 | 0) == (-1 | 0) & 1 | 0)) { + break label$7 + } + HEAP32[($5 + 28 | 0) >> 2] = 0; + break label$2; + } + label$8 : { + if ((HEAP32[$5 >> 2] | 0 | 0) < (btAlignedObjectArray_btBroadphasePair___size_28_29_20const($6 + 4 | 0 | 0) | 0 | 0) & 1 | 0) { + break label$8 + } + __assert_fail(87330 | 0, 75261 | 0, 164 | 0, 71055 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btBroadphasePair___operator_5b_5d_28int_29($6 + 4 | 0 | 0, HEAP32[$5 >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + } + $110 = HEAP32[($5 + 28 | 0) >> 2] | 0; + __stack_pointer = $5 + 32 | 0; + return $110 | 0; + } + + function void_20btSwap_btBroadphaseProxy___28btBroadphaseProxy___2c_20btBroadphaseProxy___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] = HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + return; + } + + function btHashedOverlappingPairCache__equalsPair_28btBroadphasePair_20const__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $17 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $17 = 0; + label$1 : { + if (!((btBroadphaseProxy__getUid_28_29_20const(HEAP32[(HEAP32[($6 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0 | 0) == (HEAP32[($6 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + $17 = (btBroadphaseProxy__getUid_28_29_20const(HEAP32[((HEAP32[($6 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0 | 0) == (HEAP32[$6 >> 2] | 0 | 0); + } + __stack_pointer = $6 + 16 | 0; + return $17 & 1 | 0 | 0; + } + + function btHashedOverlappingPairCache__internalAddPair_28btBroadphaseProxy__2c_20btBroadphaseProxy__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $63 = 0, $89 = 0, $100 = 0, $105 = 0, $111 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 40 | 0) >> 2] = $0; + HEAP32[($5 + 36 | 0) >> 2] = $1; + HEAP32[($5 + 32 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 40 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[((HEAP32[($5 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) > (HEAP32[((HEAP32[($5 + 32 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + void_20btSwap_btBroadphaseProxy___28btBroadphaseProxy___2c_20btBroadphaseProxy___29($5 + 36 | 0 | 0, $5 + 32 | 0 | 0); + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btBroadphaseProxy__getUid_28_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btBroadphaseProxy__getUid_28_29_20const(HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = (btHashedOverlappingPairCache__getHash_28unsigned_20int_2c_20unsigned_20int_29($6 | 0, HEAP32[($5 + 28 | 0) >> 2] | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) & ((btAlignedObjectArray_btBroadphasePair___capacity_28_29_20const($6 + 4 | 0 | 0) | 0) - 1 | 0) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btHashedOverlappingPairCache__internalFindPair_28btBroadphaseProxy__2c_20btBroadphaseProxy__2c_20int_29($6 | 0, HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, HEAP32[($5 + 32 | 0) >> 2] | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$2 : { + label$3 : { + if (!((HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 44 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + break label$2; + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btBroadphasePair___size_28_29_20const($6 + 4 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btBroadphasePair___capacity_28_29_20const($6 + 4 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btBroadphasePair___expandNonInitializing_28_29($6 + 4 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$4 : { + if (!((HEAP32[($6 + 68 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $63 = HEAP32[($6 + 68 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$63 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($63, HEAP32[($5 + 36 | 0) >> 2] | 0, HEAP32[($5 + 32 | 0) >> 2] | 0) | 0; + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btBroadphasePair___capacity_28_29_20const($6 + 4 | 0 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + label$5 : { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[$5 >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + btHashedOverlappingPairCache__growTables_28_29($6 | 0); + (wasm2js_i32$0 = $5, wasm2js_i32$1 = (btHashedOverlappingPairCache__getHash_28unsigned_20int_2c_20unsigned_20int_29($6 | 0, HEAP32[($5 + 28 | 0) >> 2] | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) & ((btAlignedObjectArray_btBroadphasePair___capacity_28_29_20const($6 + 4 | 0 | 0) | 0) - 1 | 0) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + } + $89 = btBroadphasePair__operator_20new_28unsigned_20long_2c_20void__29(16 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0; + btBroadphasePair__btBroadphasePair_28btBroadphaseProxy__2c_20btBroadphaseProxy__29($89 | 0, HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5 + 16 | 0) >> 2] = $89; + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] = 0; + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 12 | 0) >> 2] = 0; + $100 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 28 | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 48 | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $100), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $105 = HEAP32[($5 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 28 | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $105), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[($5 + 44 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + } + $111 = HEAP32[($5 + 44 | 0) >> 2] | 0; + __stack_pointer = $5 + 48 | 0; + return $111 | 0; + } + + function btHashedOverlappingPairCache__internalFindPair_28btBroadphaseProxy__2c_20btBroadphaseProxy__2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $25 = 0, $72 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 24 | 0) >> 2] = $0; + HEAP32[($6 + 20 | 0) >> 2] = $1; + HEAP32[($6 + 16 | 0) >> 2] = $2; + HEAP32[($6 + 12 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 24 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btBroadphaseProxy__getUid_28_29_20const(HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btBroadphaseProxy__getUid_28_29_20const(HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($7 + 28 | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + label$1 : while (1) { + $25 = 0; + label$2 : { + if (!((HEAP32[$6 >> 2] | 0 | 0) != (-1 | 0) & 1 | 0)) { + break label$2 + } + $25 = ((btHashedOverlappingPairCache__equalsPair_28btBroadphasePair_20const__2c_20int_2c_20int_29($7 | 0, btAlignedObjectArray_btBroadphasePair___operator_5b_5d_28int_29($7 + 4 | 0 | 0, HEAP32[$6 >> 2] | 0 | 0) | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6 + 4 | 0) >> 2] | 0 | 0) | 0) & 1 | 0 | 0) == (0 | 0); + } + label$3 : { + if (!($25 & 1 | 0)) { + break label$3 + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($7 + 48 | 0 | 0, HEAP32[$6 >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + continue label$1; + } + break label$1; + }; + label$4 : { + label$5 : { + if (!((HEAP32[$6 >> 2] | 0 | 0) == (-1 | 0) & 1 | 0)) { + break label$5 + } + HEAP32[($6 + 28 | 0) >> 2] = 0; + break label$4; + } + label$6 : { + if ((HEAP32[$6 >> 2] | 0 | 0) < (btAlignedObjectArray_btBroadphasePair___size_28_29_20const($7 + 4 | 0 | 0) | 0 | 0) & 1 | 0) { + break label$6 + } + __assert_fail(87330 | 0, 79562 | 0, 255 | 0, 71064 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btAlignedObjectArray_btBroadphasePair___operator_5b_5d_28int_29($7 + 4 | 0 | 0, HEAP32[$6 >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + } + $72 = HEAP32[($6 + 28 | 0) >> 2] | 0; + __stack_pointer = $6 + 32 | 0; + return $72 | 0; + } + + function btAlignedObjectArray_btBroadphasePair___expandNonInitializing_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0, $22 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btAlignedObjectArray_btBroadphasePair___size_28_29_20const($4 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btBroadphasePair___capacity_28_29_20const($4 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btBroadphasePair___reserve_28int_29($4 | 0, btAlignedObjectArray_btBroadphasePair___allocSize_28int_29($4 | 0, btAlignedObjectArray_btBroadphasePair___size_28_29_20const($4 | 0) | 0 | 0) | 0 | 0); + } + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 1 | 0; + $22 = (HEAP32[($4 + 12 | 0) >> 2] | 0) + ((HEAP32[($3 + 8 | 0) >> 2] | 0) << 4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $22 | 0; + } + + function btBroadphasePair__btBroadphasePair_28btBroadphaseProxy__2c_20btBroadphaseProxy__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 8 | 0) >> 2] = $0; + HEAP32[($5 + 4 | 0) >> 2] = $1; + HEAP32[$5 >> 2] = $2; + $6 = HEAP32[($5 + 8 | 0) >> 2] | 0; + HEAP32[($5 + 12 | 0) >> 2] = $6; + label$1 : { + label$2 : { + if (!((HEAP32[((HEAP32[($5 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) < (HEAP32[((HEAP32[$5 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[$6 >> 2] = HEAP32[($5 + 4 | 0) >> 2] | 0; + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[$5 >> 2] | 0; + break label$1; + } + HEAP32[$6 >> 2] = HEAP32[$5 >> 2] | 0; + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 4 | 0) >> 2] | 0; + } + HEAP32[($6 + 8 | 0) >> 2] = 0; + HEAP32[($6 + 12 | 0) >> 2] = 0; + return HEAP32[($5 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btBroadphasePair___allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btHashedOverlappingPairCache__removeOverlappingPair_28btBroadphaseProxy__2c_20btBroadphaseProxy__2c_20btDispatcher__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $188 = 0, $298 = 0, $300 = 0, $162 = 0, $171 = 0, $277 = 0, $286 = 0, $294 = 0, $922 = 0, $932 = 0, $308 = 0, $313 = 0, $321 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 64 | 0; + __stack_pointer = $6; + HEAP32[($6 + 56 | 0) >> 2] = $0; + HEAP32[($6 + 52 | 0) >> 2] = $1; + HEAP32[($6 + 48 | 0) >> 2] = $2; + HEAP32[($6 + 44 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 56 | 0) >> 2] | 0; + HEAP32[(0 + 113952 | 0) >> 2] = (HEAP32[(0 + 113952 | 0) >> 2] | 0) + 1 | 0; + label$1 : { + if (!((HEAP32[((HEAP32[($6 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) > (HEAP32[((HEAP32[($6 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + void_20btSwap_btBroadphaseProxy___28btBroadphaseProxy___2c_20btBroadphaseProxy___29($6 + 52 | 0 | 0, $6 + 48 | 0 | 0); + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btBroadphaseProxy__getUid_28_29_20const(HEAP32[($6 + 52 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btBroadphaseProxy__getUid_28_29_20const(HEAP32[($6 + 48 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = (btHashedOverlappingPairCache__getHash_28unsigned_20int_2c_20unsigned_20int_29($7 | 0, HEAP32[($6 + 40 | 0) >> 2] | 0 | 0, HEAP32[($6 + 36 | 0) >> 2] | 0 | 0) | 0) & ((btAlignedObjectArray_btBroadphasePair___capacity_28_29_20const($7 + 4 | 0 | 0) | 0) - 1 | 0) | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btHashedOverlappingPairCache__internalFindPair_28btBroadphaseProxy__2c_20btBroadphaseProxy__2c_20int_29($7 | 0, HEAP32[($6 + 52 | 0) >> 2] | 0 | 0, HEAP32[($6 + 48 | 0) >> 2] | 0 | 0, HEAP32[($6 + 32 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + label$2 : { + label$3 : { + if (!((HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6 + 60 | 0) >> 2] = 0; + break label$2; + } + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 32 | 0) >> 2] | 0 | 0]($7, HEAP32[($6 + 28 | 0) >> 2] | 0, HEAP32[($6 + 44 | 0) >> 2] | 0); + HEAP32[($6 + 24 | 0) >> 2] = HEAP32[((HEAP32[($6 + 28 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + label$4 : { + if ((btBroadphaseProxy__getUid_28_29_20const(HEAP32[(HEAP32[($6 + 28 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0 | 0) == (HEAP32[($6 + 40 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$4 + } + __assert_fail(85549 | 0, 75261 | 0, 295 | 0, 71006 | 0); + wasm2js_trap(); + } + label$5 : { + if ((btBroadphaseProxy__getUid_28_29_20const(HEAP32[((HEAP32[($6 + 28 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0 | 0) == (HEAP32[($6 + 36 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$5 + } + __assert_fail(85405 | 0, 75261 | 0, 296 | 0, 71006 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = ((HEAP32[($6 + 28 | 0) >> 2] | 0) - (btAlignedObjectArray_btBroadphasePair___operator_5b_5d_28int_29($7 + 4 | 0 | 0, 0 | 0) | 0) | 0) >> 4 | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + label$6 : { + if ((HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btBroadphasePair___size_28_29_20const($7 + 4 | 0 | 0) | 0 | 0) & 1 | 0) { + break label$6 + } + __assert_fail(87368 | 0, 75261 | 0, 299 | 0, 71006 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($7 + 28 | 0 | 0, HEAP32[($6 + 32 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$7 : { + if ((HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) != (-1 | 0) & 1 | 0) { + break label$7 + } + __assert_fail(84035 | 0, 75261 | 0, 303 | 0, 71006 | 0); + wasm2js_trap(); + } + HEAP32[($6 + 12 | 0) >> 2] = -1; + label$8 : { + label$9 : while (1) { + if (!((HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) != (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 16 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($7 + 48 | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + continue label$9; + }; + } + label$10 : { + label$11 : { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) != (-1 | 0) & 1 | 0)) { + break label$11 + } + label$12 : { + if ((HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($7 + 48 | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) == (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$12 + } + __assert_fail(66363 | 0, 75261 | 0, 314 | 0, 71006 | 0); + wasm2js_trap(); + } + $162 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($7 + 48 | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($7 + 48 | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $162), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + break label$10; + } + $171 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($7 + 48 | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($7 + 28 | 0 | 0, HEAP32[($6 + 32 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $171), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = (btAlignedObjectArray_btBroadphasePair___size_28_29_20const($7 + 4 | 0 | 0) | 0) - 1 | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + label$13 : { + if (!((HEAP32[($7 + 68 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$13 + } + $188 = HEAP32[($7 + 68 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$188 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($188, HEAP32[($6 + 52 | 0) >> 2] | 0, HEAP32[($6 + 48 | 0) >> 2] | 0, HEAP32[($6 + 44 | 0) >> 2] | 0) | 0; + } + label$14 : { + if (!((HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) == (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$14 + } + btAlignedObjectArray_btBroadphasePair___pop_back_28_29($7 + 4 | 0 | 0); + HEAP32[($6 + 60 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + break label$2; + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btAlignedObjectArray_btBroadphasePair___operator_5b_5d_28int_29($7 + 4 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = (btHashedOverlappingPairCache__getHash_28unsigned_20int_2c_20unsigned_20int_29($7 | 0, btBroadphaseProxy__getUid_28_29_20const(HEAP32[(HEAP32[($6 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0 | 0, btBroadphaseProxy__getUid_28_29_20const(HEAP32[((HEAP32[($6 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) & ((btAlignedObjectArray_btBroadphasePair___capacity_28_29_20const($7 + 4 | 0 | 0) | 0) - 1 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($7 + 28 | 0 | 0, HEAP32[$6 >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$15 : { + if ((HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) != (-1 | 0) & 1 | 0) { + break label$15 + } + __assert_fail(84035 | 0, 75261 | 0, 344 | 0, 71006 | 0); + wasm2js_trap(); + } + HEAP32[($6 + 12 | 0) >> 2] = -1; + label$16 : { + label$17 : while (1) { + if (!((HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) != (HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$16 + } + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 16 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($7 + 48 | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + continue label$17; + }; + } + label$18 : { + label$19 : { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) != (-1 | 0) & 1 | 0)) { + break label$19 + } + label$20 : { + if ((HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($7 + 48 | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) == (HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$20 + } + __assert_fail(66393 | 0, 75261 | 0, 355 | 0, 71006 | 0); + wasm2js_trap(); + } + $277 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($7 + 48 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($7 + 48 | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $277), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + break label$18; + } + $286 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($7 + 48 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($7 + 28 | 0 | 0, HEAP32[$6 >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $286), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + } + $294 = btAlignedObjectArray_btBroadphasePair___operator_5b_5d_28int_29($7 + 4 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0; + $298 = btAlignedObjectArray_btBroadphasePair___operator_5b_5d_28int_29($7 + 4 | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $294; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $922 = i64toi32_i32$0; + i64toi32_i32$0 = $298; + HEAP32[i64toi32_i32$0 >> 2] = $922; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $300 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $300 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $932 = i64toi32_i32$1; + i64toi32_i32$1 = $298 + $300 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $932; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $308 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($7 + 28 | 0 | 0, HEAP32[$6 >> 2] | 0 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($7 + 48 | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $308), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $313 = HEAP32[($6 + 20 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($7 + 28 | 0 | 0, HEAP32[$6 >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $313), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btBroadphasePair___pop_back_28_29($7 + 4 | 0 | 0); + HEAP32[($6 + 60 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + } + $321 = HEAP32[($6 + 60 | 0) >> 2] | 0; + __stack_pointer = $6 + 64 | 0; + return $321 | 0; + } + + function btAlignedObjectArray_btBroadphasePair___pop_back_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85800 | 0, 78192 | 0, 201 | 0, 77711 | 0); + wasm2js_trap(); + } + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + -1 | 0; + __stack_pointer = $3 + 16 | 0; + return; + } + + function btHashedOverlappingPairCache__processAllOverlappingPairs_28btOverlapCallback__2c_20btDispatcher__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $25 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + CProfileSample__CProfileSample_28char_20const__29($5 + 19 | 0 | 0, 69522 | 0) | 0; + HEAP32[($5 + 12 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btBroadphasePair___size_28_29_20const($6 + 4 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btBroadphasePair___operator_5b_5d_28int_29($6 + 4 | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + $25 = HEAP32[($5 + 24 | 0) >> 2] | 0; + label$3 : { + label$4 : { + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$25 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($25, HEAP32[($5 + 8 | 0) >> 2] | 0) | 0) & 1 | 0)) { + break label$4 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($6, HEAP32[(HEAP32[($5 + 8 | 0) >> 2] | 0) >> 2] | 0, HEAP32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0, HEAP32[($5 + 20 | 0) >> 2] | 0) | 0; + HEAP32[(0 + 113948 | 0) >> 2] = (HEAP32[(0 + 113948 | 0) >> 2] | 0) + -1 | 0; + break label$3; + } + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + } + continue label$2; + }; + } + CProfileSample___CProfileSample_28_29($5 + 19 | 0 | 0) | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btHashedOverlappingPairCache__sortOverlappingPairs_28btDispatcher__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0, wasm2js_i32$4 = 0; + $4 = __stack_pointer - 48 | 0; + __stack_pointer = $4; + HEAP32[($4 + 44 | 0) >> 2] = $0; + HEAP32[($4 + 40 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 44 | 0) >> 2] | 0; + btAlignedObjectArray_btBroadphasePair___btAlignedObjectArray_28_29($4 + 20 | 0 | 0) | 0; + HEAP32[($4 + 16 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btBroadphasePair___size_28_29_20const($5 + 4 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btBroadphasePair___push_back_28btBroadphasePair_20const__29($4 + 20 | 0 | 0, btAlignedObjectArray_btBroadphasePair___operator_5b_5d_28int_29($5 + 4 | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) | 0 | 0); + HEAP32[($4 + 16 | 0) >> 2] = (HEAP32[($4 + 16 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + HEAP32[($4 + 16 | 0) >> 2] = 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btBroadphasePair___size_28_29_20const($4 + 20 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$3 + } + ((((wasm2js_i32$1 = $5, wasm2js_i32$2 = HEAP32[(btAlignedObjectArray_btBroadphasePair___operator_5b_5d_28int_29($4 + 20 | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), wasm2js_i32$3 = HEAP32[((btAlignedObjectArray_btBroadphasePair___operator_5b_5d_28int_29($4 + 20 | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2] | 0), wasm2js_i32$4 = HEAP32[($4 + 40 | 0) >> 2] | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$5 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0, wasm2js_i32$3 | 0, wasm2js_i32$4 | 0) | 0; + HEAP32[($4 + 16 | 0) >> 2] = (HEAP32[($4 + 16 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + HEAP32[($4 + 16 | 0) >> 2] = 0; + label$5 : { + label$6 : while (1) { + if (!((HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_int___size_28_29_20const($5 + 48 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$5 + } + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($5 + 48 | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$4 = -1), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$4; + HEAP32[($4 + 16 | 0) >> 2] = (HEAP32[($4 + 16 | 0) >> 2] | 0) + 1 | 0; + continue label$6; + }; + } + void_20btAlignedObjectArray_btBroadphasePair___quickSort_btBroadphasePairSortPredicate__28btBroadphasePairSortPredicate_20const__29($4 + 20 | 0 | 0, $4 + 15 | 0 | 0); + HEAP32[($4 + 16 | 0) >> 2] = 0; + label$7 : { + label$8 : while (1) { + if (!((HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btBroadphasePair___size_28_29_20const($4 + 20 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$7 + } + (((wasm2js_i32$4 = $5, wasm2js_i32$3 = HEAP32[(btAlignedObjectArray_btBroadphasePair___operator_5b_5d_28int_29($4 + 20 | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), wasm2js_i32$2 = HEAP32[((btAlignedObjectArray_btBroadphasePair___operator_5b_5d_28int_29($4 + 20 | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2] | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$5 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$4 | 0, wasm2js_i32$3 | 0, wasm2js_i32$2 | 0) | 0; + HEAP32[($4 + 16 | 0) >> 2] = (HEAP32[($4 + 16 | 0) >> 2] | 0) + 1 | 0; + continue label$8; + }; + } + btAlignedObjectArray_btBroadphasePair____btAlignedObjectArray_28_29($4 + 20 | 0 | 0) | 0; + __stack_pointer = $4 + 48 | 0; + return; + } + + function btAlignedObjectArray_btBroadphasePair___push_back_28btBroadphasePair_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btBroadphasePair___size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btBroadphasePair___capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btBroadphasePair___reserve_28int_29($5 | 0, btAlignedObjectArray_btBroadphasePair___allocSize_28int_29($5 | 0, btAlignedObjectArray_btBroadphasePair___size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + btBroadphasePair__btBroadphasePair_28btBroadphasePair_20const__29(btBroadphasePair__operator_20new_28unsigned_20long_2c_20void__29(16 | 0, (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btHashedOverlappingPairCache__addOverlappingPair_28btBroadphaseProxy__2c_20btBroadphaseProxy__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $21 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 8 | 0) >> 2] = $0; + HEAP32[($5 + 4 | 0) >> 2] = $1; + HEAP32[$5 >> 2] = $2; + $6 = HEAP32[($5 + 8 | 0) >> 2] | 0; + HEAP32[(0 + 113956 | 0) >> 2] = (HEAP32[(0 + 113956 | 0) >> 2] | 0) + 1 | 0; + label$1 : { + label$2 : { + if ((btHashedOverlappingPairCache__needsBroadphaseCollision_28btBroadphaseProxy__2c_20btBroadphaseProxy__29_20const($6 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0, HEAP32[$5 >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$2 + } + HEAP32[($5 + 12 | 0) >> 2] = 0; + break label$1; + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btHashedOverlappingPairCache__internalAddPair_28btBroadphaseProxy__2c_20btBroadphaseProxy__29($6 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0, HEAP32[$5 >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + } + $21 = HEAP32[($5 + 12 | 0) >> 2] | 0; + __stack_pointer = $5 + 16 | 0; + return $21 | 0; + } + + function btHashedOverlappingPairCache__needsBroadphaseCollision_28btBroadphaseProxy__2c_20btBroadphaseProxy__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $14 = 0, $37 = 0, $55 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 24 | 0) >> 2] = $0; + HEAP32[($5 + 20 | 0) >> 2] = $1; + HEAP32[($5 + 16 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + $14 = HEAP32[($6 + 24 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = (FUNCTION_TABLE[HEAP32[((HEAP32[$14 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($14, HEAP32[($5 + 20 | 0) >> 2] | 0, HEAP32[($5 + 16 | 0) >> 2] | 0) | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 31 | 0) >> 0] = wasm2js_i32$1; + break label$1; + } + HEAP8[($5 + 15 | 0) >> 0] = ((HEAP32[((HEAP32[($5 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) & (HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) | 0 | 0) != (0 | 0) & 1 | 0; + $37 = 0; + label$3 : { + if (!((HEAPU8[($5 + 15 | 0) >> 0] | 0) & 1 | 0)) { + break label$3 + } + $37 = ((HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) & (HEAP32[((HEAP32[($5 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) | 0 | 0) != (0 | 0); + } + HEAP8[($5 + 15 | 0) >> 0] = $37 & 1 | 0; + HEAP8[($5 + 31 | 0) >> 0] = (HEAPU8[($5 + 15 | 0) >> 0] | 0) & 1 | 0; + } + $55 = (HEAPU8[($5 + 31 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $5 + 32 | 0; + return $55 | 0; + } + + function btHashedOverlappingPairCache__getOverlappingPairArrayPtr_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $8 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $8 = btAlignedObjectArray_btBroadphasePair___operator_5b_5d_28int_29((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0 | 0, 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $8 | 0; + } + + function btHashedOverlappingPairCache__getOverlappingPairArrayPtr_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $8 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $8 = btAlignedObjectArray_btBroadphasePair___operator_5b_5d_28int_29_20const((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0 | 0, 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $8 | 0; + } + + function btAlignedObjectArray_btBroadphasePair___operator_5b_5d_28int_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 176 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btBroadphasePair___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 177 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 4 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btHashedOverlappingPairCache__getOverlappingPairArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0 | 0; + } + + function btHashedOverlappingPairCache__getNumOverlappingPairs_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $7 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $7 = btAlignedObjectArray_btBroadphasePair___size_28_29_20const((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $7 | 0; + } + + function btHashedOverlappingPairCache__setOverlapFilterCallback_28btOverlapFilterCallback__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return; + } + + function btHashedOverlappingPairCache__hasDeferredRemoval_28_29($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 0 & 1 | 0 | 0; + } + + function btHashedOverlappingPairCache__setInternalGhostPairCallback_28btOverlappingPairCallback__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 68 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return; + } + + function btOverlappingPairCallback___btOverlappingPairCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btOverlappingPairCache___btOverlappingPairCache_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btOverlappingPairCallback___btOverlappingPairCallback_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btHashedOverlappingPairCache__cleanProxyFromPairs_28btBroadphaseProxy__2c_20btDispatcher__29__CleanPairCallback___CleanPairCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btHashedOverlappingPairCache__cleanProxyFromPairs_28btBroadphaseProxy__2c_20btDispatcher__29__CleanPairCallback___CleanPairCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btHashedOverlappingPairCache__cleanProxyFromPairs_28btBroadphaseProxy__2c_20btDispatcher__29__CleanPairCallback__processOverlap_28btBroadphasePair__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $22 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if ((HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$2 + } + if (!((HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + } + $22 = HEAP32[($5 + 8 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$22 >> 2] | 0) + 32 | 0) >> 2] | 0 | 0]($22, HEAP32[($4 + 8 | 0) >> 2] | 0, HEAP32[($5 + 12 | 0) >> 2] | 0); + } + __stack_pointer = $4 + 16 | 0; + return 0 & 1 | 0 | 0; + } + + function btOverlapCallback___btOverlapCallback_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btHashedOverlappingPairCache__removeOverlappingPairsContainingProxy_28btBroadphaseProxy__2c_20btDispatcher__29__RemovePairCallback___RemovePairCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btHashedOverlappingPairCache__removeOverlappingPairsContainingProxy_28btBroadphaseProxy__2c_20btDispatcher__29__RemovePairCallback___RemovePairCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btHashedOverlappingPairCache__removeOverlappingPairsContainingProxy_28btBroadphaseProxy__2c_20btDispatcher__29__RemovePairCallback__processOverlap_28btBroadphasePair__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $15 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + $15 = 1; + label$1 : { + if ((HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$1 + } + $15 = (HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0); + } + return $15 & 1 | 0 | 0; + } + + function _GLOBAL__sub_I_btOverlappingPairCache_cpp() { + __cxx_global_var_init_6(); + return; + } + + function __cxx_global_var_init_7() { + btInfMaskConverter__btInfMaskConverter_28int_29(113964 | 0, 2139095040 | 0) | 0; + return; + } + + function btDispatcher___btDispatcher_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btDispatcher___btDispatcher_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function _GLOBAL__sub_I_btDispatcher_cpp() { + __cxx_global_var_init_7(); + return; + } + + function __cxx_global_var_init_8() { + btInfMaskConverter__btInfMaskConverter_28int_29(113968 | 0, 2139095040 | 0) | 0; + return; + } + + function btCollisionDispatcher__btCollisionDispatcher_28btCollisionConfiguration__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $16 = 0, $20 = 0, $40 = 0, $77 = 0, $45 = 0, $82 = 0, $99 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 24 | 0) >> 2] = $0; + HEAP32[($4 + 20 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 24 | 0) >> 2] | 0; + HEAP32[($4 + 28 | 0) >> 2] = $5; + btDispatcher__btDispatcher_28_29($5 | 0) | 0; + HEAP32[$5 >> 2] = 91292 + 8 | 0; + HEAP32[($5 + 4 | 0) >> 2] = 2; + btAlignedObjectArray_btPersistentManifold____btAlignedObjectArray_28_29($5 + 8 | 0 | 0) | 0; + btManifoldResult__btManifoldResult_28_29($5 + 28 | 0 | 0) | 0; + HEAP32[($5 + 10444 | 0) >> 2] = HEAP32[($4 + 20 | 0) >> 2] | 0; + btCollisionDispatcher__setNearCallback_28void_20_28__29_28btBroadphasePair__2c_20btCollisionDispatcher__2c_20btDispatcherInfo_20const__29_29($5 | 0, 510 | 0); + $16 = HEAP32[($4 + 20 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$16 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($16) | 0), HEAP32[(wasm2js_i32$0 + 68 | 0) >> 2] = wasm2js_i32$1; + $20 = HEAP32[($4 + 20 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$20 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($20) | 0), HEAP32[(wasm2js_i32$0 + 72 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($4 + 16 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) < (36 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) < (36 | 0) & 1 | 0)) { + break label$3 + } + $40 = HEAP32[($5 + 10444 | 0) >> 2] | 0; + $45 = FUNCTION_TABLE[HEAP32[((HEAP32[$40 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($40, HEAP32[($4 + 16 | 0) >> 2] | 0, HEAP32[($4 + 12 | 0) >> 2] | 0) | 0; + HEAP32[((($5 + 76 | 0) + Math_imul(HEAP32[($4 + 16 | 0) >> 2] | 0, 144) | 0) + ((HEAP32[($4 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = $45; + label$5 : { + if ((HEAP32[((($5 + 76 | 0) + Math_imul(HEAP32[($4 + 16 | 0) >> 2] | 0, 144) | 0) + ((HEAP32[($4 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$5 + } + __assert_fail(83849 | 0, 72837 | 0, 54 | 0, 71229 | 0); + wasm2js_trap(); + } + $77 = HEAP32[($5 + 10444 | 0) >> 2] | 0; + $82 = FUNCTION_TABLE[HEAP32[((HEAP32[$77 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($77, HEAP32[($4 + 16 | 0) >> 2] | 0, HEAP32[($4 + 12 | 0) >> 2] | 0) | 0; + HEAP32[((($5 + 5260 | 0) + Math_imul(HEAP32[($4 + 16 | 0) >> 2] | 0, 144) | 0) + ((HEAP32[($4 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = $82; + HEAP32[($4 + 12 | 0) >> 2] = (HEAP32[($4 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + HEAP32[($4 + 16 | 0) >> 2] = (HEAP32[($4 + 16 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + $99 = HEAP32[($4 + 28 | 0) >> 2] | 0; + __stack_pointer = $4 + 32 | 0; + return $99 | 0; + } + + function btDispatcher__btDispatcher_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 91196 + 8 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btPersistentManifold____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btPersistentManifold__2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btPersistentManifold____init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btManifoldResult__btManifoldResult_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btDiscreteCollisionDetectorInterface__Result__Result_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 96512 + 8 | 0; + HEAPF32[($4 + 32 | 0) >> 2] = Math_fround(0 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCollisionDispatcher__defaultNearCallback_28btBroadphasePair__2c_20btCollisionDispatcher__2c_20btDispatcherInfo_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $12 = 0, $29 = 0, $39 = 0, $48 = 0, $87 = 0, $101 = 0, $59 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 112 | 0; + __stack_pointer = $5; + HEAP32[($5 + 108 | 0) >> 2] = $0; + HEAP32[($5 + 104 | 0) >> 2] = $1; + HEAP32[($5 + 100 | 0) >> 2] = $2; + HEAP32[($5 + 96 | 0) >> 2] = HEAP32[(HEAP32[(HEAP32[($5 + 108 | 0) >> 2] | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 92 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($5 + 108 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] | 0; + $12 = HEAP32[($5 + 104 | 0) >> 2] | 0; + label$1 : { + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$12 >> 2] | 0) + 24 | 0) >> 2] | 0 | 0]($12, HEAP32[($5 + 96 | 0) >> 2] | 0, HEAP32[($5 + 92 | 0) >> 2] | 0) | 0) & 1 | 0)) { + break label$1 + } + $29 = -1; + btCollisionObjectWrapper__btCollisionObjectWrapper_28btCollisionObjectWrapper_20const__2c_20btCollisionShape_20const__2c_20btCollisionObject_20const__2c_20btTransform_20const__2c_20int_2c_20int_29($5 + 68 | 0 | 0, 0 | 0, btCollisionObject__getCollisionShape_28_29(HEAP32[($5 + 96 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($5 + 96 | 0) >> 2] | 0 | 0, btCollisionObject__getWorldTransform_28_29(HEAP32[($5 + 96 | 0) >> 2] | 0 | 0) | 0 | 0, $29 | 0, $29 | 0) | 0; + $39 = -1; + btCollisionObjectWrapper__btCollisionObjectWrapper_28btCollisionObjectWrapper_20const__2c_20btCollisionShape_20const__2c_20btCollisionObject_20const__2c_20btTransform_20const__2c_20int_2c_20int_29($5 + 44 | 0 | 0, 0 | 0, btCollisionObject__getCollisionShape_28_29(HEAP32[($5 + 92 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($5 + 92 | 0) >> 2] | 0 | 0, btCollisionObject__getWorldTransform_28_29(HEAP32[($5 + 92 | 0) >> 2] | 0 | 0) | 0 | 0, $39 | 0, $39 | 0) | 0; + label$2 : { + if ((HEAP32[((HEAP32[($5 + 108 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$2 + } + $48 = HEAP32[($5 + 104 | 0) >> 2] | 0; + $59 = FUNCTION_TABLE[HEAP32[((HEAP32[$48 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($48, $5 + 68 | 0, $5 + 44 | 0, 0, 1) | 0; + HEAP32[((HEAP32[($5 + 108 | 0) >> 2] | 0) + 8 | 0) >> 2] = $59; + } + label$3 : { + if (!((HEAP32[((HEAP32[($5 + 108 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + btManifoldResult__btManifoldResult_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($5 + 8 | 0 | 0, $5 + 68 | 0 | 0, $5 + 44 | 0 | 0) | 0; + label$4 : { + label$5 : { + if (!((HEAP32[((HEAP32[($5 + 100 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$5 + } + $87 = HEAP32[((HEAP32[($5 + 108 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$87 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($87, $5 + 68 | 0, $5 + 44 | 0, HEAP32[($5 + 100 | 0) >> 2] | 0, $5 + 8 | 0); + break label$4; + } + $101 = HEAP32[((HEAP32[($5 + 108 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$101 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($101, HEAP32[($5 + 96 | 0) >> 2] | 0, HEAP32[($5 + 92 | 0) >> 2] | 0, HEAP32[($5 + 100 | 0) >> 2] | 0, $5 + 8 | 0))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + label$6 : { + if (!(Math_fround(HEAPF32[((HEAP32[($5 + 100 | 0) >> 2] | 0) + 12 | 0) >> 2]) > Math_fround(HEAPF32[($5 + 4 | 0) >> 2]) & 1 | 0)) { + break label$6 + } + HEAPF32[((HEAP32[($5 + 100 | 0) >> 2] | 0) + 12 | 0) >> 2] = Math_fround(HEAPF32[($5 + 4 | 0) >> 2]); + } + } + btManifoldResult___btManifoldResult_28_29($5 + 8 | 0 | 0) | 0; + } + } + __stack_pointer = $5 + 112 | 0; + return; + } + + function btCollisionDispatcher__setNearCallback_28void_20_28__29_28btBroadphasePair__2c_20btCollisionDispatcher__2c_20btDispatcherInfo_20const__29_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 64 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return; + } + + function btAlignedAllocator_btPersistentManifold__2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btPersistentManifold____init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btDiscreteCollisionDetectorInterface__Result__Result_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 91400 + 8 | 0; + return $4 | 0; + } + + function btCollisionObjectWrapper__btCollisionObjectWrapper_28btCollisionObjectWrapper_20const__2c_20btCollisionShape_20const__2c_20btCollisionObject_20const__2c_20btTransform_20const__2c_20int_2c_20int_29($0, $1, $2, $3, $4, $5, $6) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + var $9 = 0, $10 = 0; + $9 = __stack_pointer - 32 | 0; + HEAP32[($9 + 28 | 0) >> 2] = $0; + HEAP32[($9 + 24 | 0) >> 2] = $1; + HEAP32[($9 + 20 | 0) >> 2] = $2; + HEAP32[($9 + 16 | 0) >> 2] = $3; + HEAP32[($9 + 12 | 0) >> 2] = $4; + HEAP32[($9 + 8 | 0) >> 2] = $5; + HEAP32[($9 + 4 | 0) >> 2] = $6; + $10 = HEAP32[($9 + 28 | 0) >> 2] | 0; + HEAP32[$10 >> 2] = HEAP32[($9 + 24 | 0) >> 2] | 0; + HEAP32[($10 + 4 | 0) >> 2] = HEAP32[($9 + 20 | 0) >> 2] | 0; + HEAP32[($10 + 8 | 0) >> 2] = HEAP32[($9 + 16 | 0) >> 2] | 0; + HEAP32[($10 + 12 | 0) >> 2] = HEAP32[($9 + 12 | 0) >> 2] | 0; + HEAP32[($10 + 16 | 0) >> 2] = HEAP32[($9 + 8 | 0) >> 2] | 0; + HEAP32[($10 + 20 | 0) >> 2] = HEAP32[($9 + 4 | 0) >> 2] | 0; + return $10 | 0; + } + + function btManifoldResult___btManifoldResult_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btDiscreteCollisionDetectorInterface__Result___Result_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCollisionDispatcher___btCollisionDispatcher_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 91292 + 8 | 0; + btManifoldResult___btManifoldResult_28_29($4 + 28 | 0 | 0) | 0; + btAlignedObjectArray_btPersistentManifold_____btAlignedObjectArray_28_29($4 + 8 | 0 | 0) | 0; + btDispatcher___btDispatcher_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btPersistentManifold_____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btPersistentManifold____clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btDiscreteCollisionDetectorInterface__Result___Result_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btPersistentManifold____clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btPersistentManifold____destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btPersistentManifold____size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btPersistentManifold____deallocate_28_29($4 | 0); + btAlignedObjectArray_btPersistentManifold____init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCollisionDispatcher___btCollisionDispatcher_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[511 | 0]($4) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCollisionDispatcher__getNewManifold_28btCollisionObject_20const__2c_20btCollisionObject_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $16 = 0, $23 = 0, $37 = Math_fround(0), $75 = 0, $83 = 0, $90 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$1 = 0; + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 44 | 0) >> 2] = $0; + HEAP32[($5 + 40 | 0) >> 2] = $1; + HEAP32[($5 + 36 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 44 | 0) >> 2] | 0; + HEAP32[(0 + 113972 | 0) >> 2] = (HEAP32[(0 + 113972 | 0) >> 2] | 0) + 1 | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($6 + 4 | 0) >> 2] | 0) & 2 | 0)) { + break label$2 + } + $16 = btCollisionObject__getCollisionShape_28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$16 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($16, Math_fround(HEAPF32[(0 + 112840 | 0) >> 2])))), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + $23 = btCollisionObject__getCollisionShape_28_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$23 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($23, Math_fround(HEAPF32[(0 + 112840 | 0) >> 2])))), HEAPF32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_f32$0; + $37 = Math_fround(HEAPF32[(float_20const__20btMin_float__28float_20const__2c_20float_20const__29($5 + 28 | 0 | 0, $5 + 24 | 0 | 0) | 0) >> 2]); + break label$1; + } + $37 = Math_fround(HEAPF32[(0 + 112840 | 0) >> 2]); + } + HEAPF32[($5 + 32 | 0) >> 2] = $37; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btCollisionObject__getContactProcessingThreshold_28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btCollisionObject__getContactProcessingThreshold_28_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(HEAPF32[(float_20const__20btMin_float__28float_20const__2c_20float_20const__29($5 + 16 | 0 | 0, $5 + 12 | 0 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btPoolAllocator__allocate_28int_29(HEAP32[($6 + 72 | 0) >> 2] | 0 | 0, 868 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + label$3 : { + if (!((0 | 0) == (HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + label$4 : { + label$5 : { + if ((HEAP32[($6 + 4 | 0) >> 2] | 0) & 4 | 0) { + break label$5 + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(868 | 0, 16 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + break label$4; + } + __assert_fail(86177 | 0, 72837 | 0, 103 | 0, 82734 | 0); + wasm2js_trap(); + } + } + $75 = btPersistentManifold__operator_20new_28unsigned_20long_2c_20void__29(868 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0; + btPersistentManifold__btPersistentManifold_28btCollisionObject_20const__2c_20btCollisionObject_20const__2c_20int_2c_20float_2c_20float_29($75 | 0, HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 32 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($5 + 20 | 0) >> 2]))) | 0; + HEAP32[($5 + 4 | 0) >> 2] = $75; + $83 = btAlignedObjectArray_btPersistentManifold____size_28_29_20const($6 + 8 | 0 | 0) | 0; + HEAP32[((HEAP32[($5 + 4 | 0) >> 2] | 0) + 864 | 0) >> 2] = $83; + btAlignedObjectArray_btPersistentManifold____push_back_28btPersistentManifold__20const__29($6 + 8 | 0 | 0, $5 + 4 | 0 | 0); + $90 = HEAP32[($5 + 4 | 0) >> 2] | 0; + __stack_pointer = $5 + 48 | 0; + return $90 | 0; + } + + function float_20const__20btMin_float__28float_20const__2c_20float_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $13 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2]) < Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2]) & 1 | 0)) { + break label$2 + } + $13 = HEAP32[($4 + 12 | 0) >> 2] | 0; + break label$1; + } + $13 = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + return $13 | 0; + } + + function btCollisionObject__getContactProcessingThreshold_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 184 | 0) >> 2])); + } + + function btPoolAllocator__allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $35 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btMutexLock_28btSpinMutex__29($5 + 20 | 0 | 0); + label$1 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$1 + } + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) <= (HEAP32[$5 >> 2] | 0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(80907 | 0, 78639 | 0, 77 | 0, 81385 | 0); + wasm2js_trap(); + } + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + label$2 : { + if (!((0 | 0) != (HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[(HEAP32[($5 + 12 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + -1 | 0; + } + btMutexUnlock_28btSpinMutex__29($5 + 20 | 0 | 0); + $35 = HEAP32[($4 + 4 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $35 | 0; + } + + function btPersistentManifold__operator_20new_28unsigned_20long_2c_20void__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return HEAP32[($4 + 8 | 0) >> 2] | 0 | 0; + } + + function btPersistentManifold__btPersistentManifold_28btCollisionObject_20const__2c_20btCollisionObject_20const__2c_20int_2c_20float_2c_20float_29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = Math_fround($4); + $5 = Math_fround($5); + var $8 = 0, $9 = 0, $12 = 0, $15 = 0, $16 = 0, $18 = 0, $14 = 0, $29 = 0; + $8 = __stack_pointer - 32 | 0; + __stack_pointer = $8; + HEAP32[($8 + 24 | 0) >> 2] = $0; + HEAP32[($8 + 20 | 0) >> 2] = $1; + HEAP32[($8 + 16 | 0) >> 2] = $2; + HEAP32[($8 + 12 | 0) >> 2] = $3; + HEAPF32[($8 + 8 | 0) >> 2] = $4; + HEAPF32[($8 + 4 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 24 | 0) >> 2] | 0; + HEAP32[($8 + 28 | 0) >> 2] = $9; + btTypedObject__btTypedObject_28int_29($9 | 0, 1025 | 0) | 0; + $12 = $9 + 4 | 0; + $14 = $12 + 832 | 0; + $15 = $12; + label$1 : while (1) { + $16 = $15; + btManifoldPoint__btManifoldPoint_28_29($16 | 0) | 0; + $18 = $16 + 208 | 0; + $15 = $18; + if (!(($18 | 0) == ($14 | 0) & 1 | 0)) { + continue label$1 + } + break label$1; + }; + HEAP32[($9 + 836 | 0) >> 2] = HEAP32[($8 + 20 | 0) >> 2] | 0; + HEAP32[($9 + 840 | 0) >> 2] = HEAP32[($8 + 16 | 0) >> 2] | 0; + HEAP32[($9 + 844 | 0) >> 2] = 0; + HEAPF32[($9 + 848 | 0) >> 2] = Math_fround(HEAPF32[($8 + 8 | 0) >> 2]); + HEAPF32[($9 + 852 | 0) >> 2] = Math_fround(HEAPF32[($8 + 4 | 0) >> 2]); + $29 = HEAP32[($8 + 28 | 0) >> 2] | 0; + __stack_pointer = $8 + 32 | 0; + return $29 | 0; + } + + function btAlignedObjectArray_btPersistentManifold____size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btPersistentManifold____push_back_28btPersistentManifold__20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btPersistentManifold____size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btPersistentManifold____capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btPersistentManifold____reserve_28int_29($5 | 0, btAlignedObjectArray_btPersistentManifold____allocSize_28int_29($5 | 0, btAlignedObjectArray_btPersistentManifold____size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btMutexLock_28btSpinMutex__29($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return; + } + + function btMutexUnlock_28btSpinMutex__29($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return; + } + + function btTypedObject__btTypedObject_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return $5 | 0; + } + + function btManifoldPoint__btManifoldPoint_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btVector3__btVector3_28_29($4 | 0) | 0; + btVector3__btVector3_28_29($4 + 16 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 32 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 48 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 64 | 0 | 0) | 0; + HEAP32[($4 + 116 | 0) >> 2] = 0; + HEAP32[($4 + 120 | 0) >> 2] = 0; + HEAP32[($4 + 124 | 0) >> 2] = 0; + HEAP32[($4 + 128 | 0) >> 2] = 0; + HEAPF32[($4 + 132 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 136 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 140 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 144 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 148 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 152 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 156 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 160 | 0) >> 2] = Math_fround(0 | 0); + HEAP32[($4 + 164 | 0) >> 2] = 0; + btVector3__btVector3_28_29($4 + 168 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 184 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btPersistentManifold____capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btPersistentManifold____allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btAlignedObjectArray_btPersistentManifold____reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btPersistentManifold____capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btPersistentManifold____allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btPersistentManifold____copy_28int_2c_20int_2c_20btPersistentManifold___29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btPersistentManifold____size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btPersistentManifold____destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btPersistentManifold____size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btPersistentManifold____deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCollisionDispatcher__clearManifold_28btPersistentManifold__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btPersistentManifold__clearManifold_28_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btPersistentManifold__clearManifold_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $32 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[($3 + 8 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 844 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + btPersistentManifold__clearUserCache_28btManifoldPoint__29($4 | 0, ($4 + 4 | 0) + Math_imul(HEAP32[($3 + 8 | 0) >> 2] | 0, 208) | 0 | 0); + HEAP32[($3 + 8 | 0) >> 2] = (HEAP32[($3 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + label$3 : { + if (!((HEAP32[(0 + 115364 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + if (!(HEAP32[($4 + 844 | 0) >> 2] | 0)) { + break label$3 + } + $32 = HEAP32[(0 + 115364 | 0) >> 2] | 0; + HEAP32[($3 + 4 | 0) >> 2] = $4; + FUNCTION_TABLE[$32 | 0]($3 + 4 | 0); + } + HEAP32[($4 + 844 | 0) >> 2] = 0; + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCollisionDispatcher__releaseManifold_28btPersistentManifold__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $37 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[(0 + 113972 | 0) >> 2] = (HEAP32[(0 + 113972 | 0) >> 2] | 0) + -1 | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5, HEAP32[($4 + 8 | 0) >> 2] | 0); + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 864 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btPersistentManifold____size_28_29_20const($5 + 8 | 0 | 0) | 0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(87569 | 0, 72837 | 0, 130 | 0, 82749 | 0); + wasm2js_trap(); + } + btAlignedObjectArray_btPersistentManifold____swap_28int_2c_20int_29($5 + 8 | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, (btAlignedObjectArray_btPersistentManifold____size_28_29_20const($5 + 8 | 0 | 0) | 0) - 1 | 0 | 0); + $37 = HEAP32[($4 + 4 | 0) >> 2] | 0; + (wasm2js_i32$0 = HEAP32[(btAlignedObjectArray_btPersistentManifold____operator_5b_5d_28int_29($5 + 8 | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0, wasm2js_i32$1 = $37), HEAP32[(wasm2js_i32$0 + 864 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btPersistentManifold____pop_back_28_29($5 + 8 | 0 | 0); + label$2 : { + label$3 : { + if (!((btPoolAllocator__validPtr_28void__29(HEAP32[($5 + 72 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$3 + } + btPoolAllocator__freeMemory_28void__29(HEAP32[($5 + 72 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + break label$2; + } + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btPersistentManifold____swap_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[$5 >> 2] | 0; + return; + } + + function btAlignedObjectArray_btPersistentManifold____operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btPersistentManifold____size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 2 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btAlignedObjectArray_btPersistentManifold____pop_back_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85800 | 0, 78192 | 0, 201 | 0, 77711 | 0); + wasm2js_trap(); + } + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + -1 | 0; + __stack_pointer = $3 + 16 | 0; + return; + } + + function btPoolAllocator__validPtr_28void__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + label$3 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0) >>> 0 >= (HEAP32[($5 + 16 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$3 + } + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0) >>> 0 < ((HEAP32[($5 + 16 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 4 | 0) >> 2] | 0, HEAP32[$5 >> 2] | 0) | 0) >>> 0 & 1 | 0)) { + break label$3 + } + HEAP8[($4 + 15 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + } + HEAP8[($4 + 15 | 0) >> 0] = 0 & 1 | 0; + } + return (HEAPU8[($4 + 15 | 0) >> 0] | 0) & 1 | 0 | 0; + } + + function btPoolAllocator__freeMemory_28void__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + label$3 : { + if (!((HEAP32[($4 + 8 | 0) >> 2] | 0) >>> 0 >= (HEAP32[($5 + 16 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$3 + } + if ((HEAP32[($4 + 8 | 0) >> 2] | 0) >>> 0 < ((HEAP32[($5 + 16 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 4 | 0) >> 2] | 0, HEAP32[$5 >> 2] | 0) | 0) >>> 0 & 1 | 0) { + break label$2 + } + } + __assert_fail(80933 | 0, 78639 | 0, 103 | 0, 65938 | 0); + wasm2js_trap(); + } + btMutexLock_28btSpinMutex__29($5 + 20 | 0 | 0); + HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 1 | 0; + btMutexUnlock_28btSpinMutex__29($5 + 20 | 0 | 0); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCollisionDispatcher__findAlgorithm_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btPersistentManifold__2c_20ebtDispatcherQueryType_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0, $35 = 0, $58 = 0, $67 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + btCollisionAlgorithmConstructionInfo__btCollisionAlgorithmConstructionInfo_28_29($7 + 4 | 0 | 0) | 0; + HEAP32[($7 + 4 | 0) >> 2] = $8; + HEAP32[($7 + 8 | 0) >> 2] = HEAP32[($7 + 16 | 0) >> 2] | 0; + HEAP32[$7 >> 2] = 0; + label$1 : { + label$2 : { + if (!((HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$2 + } + $35 = HEAP32[((($8 + 76 | 0) + Math_imul(btCollisionShape__getShapeType_28_29_20const(btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 24 | 0) >> 2] | 0 | 0) | 0 | 0) | 0, 144) | 0) + ((btCollisionShape__getShapeType_28_29_20const(btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 20 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) << 2 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$35 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($35, $7 + 4 | 0, HEAP32[($7 + 24 | 0) >> 2] | 0, HEAP32[($7 + 20 | 0) >> 2] | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + break label$1; + } + $58 = HEAP32[((($8 + 5260 | 0) + Math_imul(btCollisionShape__getShapeType_28_29_20const(btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 24 | 0) >> 2] | 0 | 0) | 0 | 0) | 0, 144) | 0) + ((btCollisionShape__getShapeType_28_29_20const(btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 20 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) << 2 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$58 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($58, $7 + 4 | 0, HEAP32[($7 + 24 | 0) >> 2] | 0, HEAP32[($7 + 20 | 0) >> 2] | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + } + $67 = HEAP32[$7 >> 2] | 0; + __stack_pointer = $7 + 32 | 0; + return $67 | 0; + } + + function btCollisionAlgorithmConstructionInfo__btCollisionAlgorithmConstructionInfo_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + return $4 | 0; + } + + function btCollisionObjectWrapper__getCollisionShape_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btCollisionDispatcher__needsResponse_28btCollisionObject_20const__2c_20btCollisionObject_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $11 = 0, $21 = 0, $27 = 0, $38 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $11 = 0; + label$1 : { + if (!((btCollisionObject__hasContactResponse_28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$1 + } + $11 = btCollisionObject__hasContactResponse_28_29_20const(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0; + } + HEAP8[($5 + 3 | 0) >> 0] = $11 & 1 | 0; + $21 = 0; + label$2 : { + if (!((HEAPU8[($5 + 3 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + $27 = 1; + label$3 : { + if (!((btCollisionObject__isStaticOrKinematicObject_28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$3 + } + $27 = (btCollisionObject__isStaticOrKinematicObject_28_29_20const(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) ^ -1 | 0; + } + $21 = $27; + } + HEAP8[($5 + 3 | 0) >> 0] = $21 & 1 | 0; + $38 = (HEAPU8[($5 + 3 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $5 + 16 | 0; + return $38 | 0; + } + + function btCollisionDispatcher__needsCollision_28btCollisionObject_20const__2c_20btCollisionObject_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $68 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85674 | 0, 72837 | 0, 185 | 0, 76874 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(85464 | 0, 72837 | 0, 186 | 0, 76874 | 0); + wasm2js_trap(); + } + HEAP8[($5 + 3 | 0) >> 0] = 1; + label$3 : { + if ((HEAP32[($6 + 4 | 0) >> 2] | 0) & 1 | 0) { + break label$3 + } + label$4 : { + if (!((btCollisionObject__isStaticOrKinematicObject_28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$4 + } + if (!((btCollisionObject__isStaticOrKinematicObject_28_29_20const(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($6 + 4 | 0) >> 2] | 0 | 1 | 0; + printf(88581 | 0, 0 | 0) | 0; + } + } + label$5 : { + label$6 : { + if ((btCollisionObject__isActive_28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$6 + } + if ((btCollisionObject__isActive_28_29_20const(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$6 + } + HEAP8[($5 + 3 | 0) >> 0] = 0; + break label$5; + } + label$7 : { + label$8 : { + if (!((btCollisionObject__checkCollideWith_28btCollisionObject_20const__29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$8 + } + if ((btCollisionObject__checkCollideWith_28btCollisionObject_20const__29_20const(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$7 + } + } + HEAP8[($5 + 3 | 0) >> 0] = 0; + } + } + $68 = (HEAPU8[($5 + 3 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $5 + 16 | 0; + return $68 | 0; + } + + function btCollisionObject__checkCollideWith_28btCollisionObject_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $18 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($5 + 280 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = (FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($5, HEAP32[($4 + 4 | 0) >> 2] | 0) | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 15 | 0) >> 0] = wasm2js_i32$1; + break label$1; + } + HEAP8[($4 + 15 | 0) >> 0] = 1 & 1 | 0; + } + $18 = (HEAPU8[($4 + 15 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $4 + 16 | 0; + return $18 | 0; + } + + function btCollisionDispatcher__dispatchAllCollisionPairs_28btOverlappingPairCache__2c_20btDispatcherInfo_20const__2c_20btDispatcher__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $12 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + btCollisionPairCallback__btCollisionPairCallback_28btDispatcherInfo_20const__2c_20btCollisionDispatcher__29($6 + 4 | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0; + $12 = HEAP32[($6 + 24 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$12 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($12, $6 + 4 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0); + btCollisionPairCallback___btCollisionPairCallback_28_29($6 + 4 | 0 | 0) | 0; + __stack_pointer = $6 + 32 | 0; + return; + } + + function btCollisionPairCallback__btCollisionPairCallback_28btDispatcherInfo_20const__2c_20btCollisionDispatcher__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btOverlapCallback__btOverlapCallback_28_29($6 | 0) | 0; + HEAP32[$6 >> 2] = 91484 + 8 | 0; + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + HEAP32[($6 + 8 | 0) >> 2] = HEAP32[($5 + 4 | 0) >> 2] | 0; + __stack_pointer = $5 + 16 | 0; + return $6 | 0; + } + + function btCollisionPairCallback___btCollisionPairCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btOverlapCallback___btOverlapCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCollisionDispatcher__allocateCollisionAlgorithm_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $20 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btPoolAllocator__allocate_28int_29(HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 68 | 0) >> 2] | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((0 | 0) == (HEAP32[$4 >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 16 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = HEAP32[$4 >> 2] | 0; + } + $20 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $20 | 0; + } + + function btCollisionDispatcher__freeCollisionAlgorithm_28void__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((btPoolAllocator__validPtr_28void__29(HEAP32[($5 + 68 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$2 + } + btPoolAllocator__freeMemory_28void__29(HEAP32[($5 + 68 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + break label$1; + } + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCollisionDispatcher__getNumManifolds_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $7 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $7 = btAlignedObjectArray_btPersistentManifold____size_28_29_20const((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $7 | 0; + } + + function btCollisionDispatcher__getManifoldByIndexInternal_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $10 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $10 = HEAP32[(btAlignedObjectArray_btPersistentManifold____operator_5b_5d_28int_29((HEAP32[($4 + 12 | 0) >> 2] | 0) + 8 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $10 | 0; + } + + function btCollisionDispatcher__getInternalManifoldPointer_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $12 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(btAlignedObjectArray_btPersistentManifold____size_28_29_20const($4 + 8 | 0 | 0) | 0)) { + break label$2 + } + $12 = btAlignedObjectArray_btPersistentManifold____operator_5b_5d_28int_29($4 + 8 | 0 | 0, 0 | 0) | 0; + break label$1; + } + $12 = 0; + } + __stack_pointer = $3 + 16 | 0; + return $12 | 0; + } + + function btCollisionDispatcher__getInternalManifoldPool_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0 | 0; + } + + function btCollisionDispatcher__getInternalManifoldPool_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0 | 0; + } + + function btDiscreteCollisionDetectorInterface__Result___Result_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btCollisionPairCallback___btCollisionPairCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionPairCallback___btCollisionPairCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCollisionPairCallback__processOverlap_28btBroadphasePair__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $7 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + $7 = btCollisionDispatcher__getNearCallback_28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0; + FUNCTION_TABLE[$7 | 0](HEAP32[($4 + 8 | 0) >> 2] | 0, HEAP32[($5 + 8 | 0) >> 2] | 0, HEAP32[($5 + 4 | 0) >> 2] | 0); + __stack_pointer = $4 + 16 | 0; + return 0 & 1 | 0 | 0; + } + + function btCollisionDispatcher__getNearCallback_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 64 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btPersistentManifold____destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btPersistentManifold____deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btPersistentManifold__2c_2016u___deallocate_28btPersistentManifold___29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocator_btPersistentManifold__2c_2016u___deallocate_28btPersistentManifold___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btPersistentManifold____allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btPersistentManifold__2c_2016u___allocate_28int_2c_20btPersistentManifold__20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btPersistentManifold____copy_28int_2c_20int_2c_20btPersistentManifold___29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[((HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[((HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedAllocator_btPersistentManifold__2c_2016u___allocate_28int_2c_20btPersistentManifold__20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function _GLOBAL__sub_I_btCollisionDispatcher_cpp() { + __cxx_global_var_init_8(); + return; + } + + function __cxx_global_var_init_9() { + btInfMaskConverter__btInfMaskConverter_28int_29(113976 | 0, 2139095040 | 0) | 0; + return; + } + + function btCollisionObject__btCollisionObject_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 48 | 0; + __stack_pointer = $3; + HEAP32[($3 + 44 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 44 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 91544 + 8 | 0; + btTransform__btTransform_28_29($4 + 4 | 0 | 0) | 0; + btTransform__btTransform_28_29($4 + 68 | 0 | 0) | 0; + HEAPF32[($3 + 40 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 36 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 32 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 132 | 0 | 0, $3 + 40 | 0 | 0, $3 + 36 | 0 | 0, $3 + 32 | 0 | 0) | 0; + HEAPF32[($3 + 28 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 24 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 20 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 148 | 0 | 0, $3 + 28 | 0 | 0, $3 + 24 | 0 | 0, $3 + 20 | 0 | 0) | 0; + HEAPF32[($3 + 16 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($3 + 12 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($3 + 8 | 0) >> 2] = Math_fround(1.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 164 | 0 | 0, $3 + 16 | 0 | 0, $3 + 12 | 0 | 0, $3 + 8 | 0 | 0) | 0; + HEAP32[($4 + 180 | 0) >> 2] = 0; + HEAPF32[($4 + 184 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAP32[($4 + 188 | 0) >> 2] = 0; + HEAP32[($4 + 192 | 0) >> 2] = 0; + HEAP32[($4 + 196 | 0) >> 2] = 0; + HEAP32[($4 + 200 | 0) >> 2] = 0; + HEAP32[($4 + 204 | 0) >> 2] = 1; + HEAP32[($4 + 208 | 0) >> 2] = -1; + HEAP32[($4 + 212 | 0) >> 2] = -1; + HEAP32[($4 + 216 | 0) >> 2] = -1; + HEAP32[($4 + 220 | 0) >> 2] = 1; + HEAPF32[($4 + 224 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 228 | 0) >> 2] = Math_fround(.5); + HEAPF32[($4 + 232 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 236 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 240 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 244 | 0) >> 2] = Math_fround(.10000000149011612); + HEAPF32[($4 + 248 | 0) >> 2] = Math_fround(1.0e4); + HEAP32[($4 + 252 | 0) >> 2] = 1; + HEAP32[($4 + 256 | 0) >> 2] = 0; + HEAP32[($4 + 260 | 0) >> 2] = -1; + HEAP32[($4 + 264 | 0) >> 2] = -1; + HEAPF32[($4 + 268 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($4 + 272 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 276 | 0) >> 2] = Math_fround(0 | 0); + HEAP32[($4 + 280 | 0) >> 2] = 0; + btAlignedObjectArray_btCollisionObject_20const____btAlignedObjectArray_28_29($4 + 284 | 0 | 0) | 0; + HEAP32[($4 + 304 | 0) >> 2] = 0; + btVector3__btVector3_28_29($4 + 308 | 0 | 0) | 0; + btTransform__setIdentity_28_29($4 + 4 | 0 | 0); + btTransform__setIdentity_28_29($4 + 68 | 0 | 0); + __stack_pointer = $3 + 48 | 0; + return $4 | 0; + } + + function btCollisionObject___btCollisionObject_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 91544 + 8 | 0; + btAlignedObjectArray_btCollisionObject_20const_____btAlignedObjectArray_28_29($4 + 284 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCollisionObject___btCollisionObject_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[532 | 0]($4) | 0; + btCollisionObject__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCollisionObject__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCollisionObject__setActivationState_28int_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($5 + 220 | 0) >> 2] | 0 | 0) != (4 | 0) & 1 | 0)) { + break label$1 + } + if (!((HEAP32[($5 + 220 | 0) >> 2] | 0 | 0) != (5 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[($5 + 220 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + return; + } + + function btCollisionObject__forceActivationState_28int_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 220 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return; + } + + function btCollisionObject__activate_28bool_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP8[($4 + 11 | 0) >> 0] = $1; + $6 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if ((HEAPU8[($4 + 11 | 0) >> 0] | 0) & 1 | 0) { + break label$2 + } + if ((HEAP32[($6 + 204 | 0) >> 2] | 0) & 3 | 0) { + break label$1 + } + } + btCollisionObject__setActivationState_28int_29_20const($6 | 0, 1 | 0); + HEAPF32[($6 + 224 | 0) >> 2] = Math_fround(0 | 0); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCollisionObject__serialize_28void__2c_20btSerializer__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $39 = 0, $69 = 0, $73 = 0, $87 = 0, $43 = 0, $77 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + HEAP32[($5 + 16 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + btTransform__serialize_28btTransformFloatData__29_20const($6 + 4 | 0 | 0, (HEAP32[($5 + 16 | 0) >> 2] | 0) + 16 | 0 | 0); + btTransform__serialize_28btTransformFloatData__29_20const($6 + 68 | 0 | 0, (HEAP32[($5 + 16 | 0) >> 2] | 0) + 80 | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const($6 + 132 | 0 | 0, (HEAP32[($5 + 16 | 0) >> 2] | 0) + 144 | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const($6 + 148 | 0 | 0, (HEAP32[($5 + 16 | 0) >> 2] | 0) + 160 | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const($6 + 164 | 0 | 0, (HEAP32[($5 + 16 | 0) >> 2] | 0) + 176 | 0 | 0); + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 232 | 0) >> 2] = HEAP32[($6 + 180 | 0) >> 2] | 0; + HEAPF32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 192 | 0) >> 2] = Math_fround(HEAPF32[($6 + 184 | 0) >> 2]); + HEAP32[(HEAP32[($5 + 16 | 0) >> 2] | 0) >> 2] = 0; + $39 = HEAP32[($5 + 20 | 0) >> 2] | 0; + $43 = FUNCTION_TABLE[HEAP32[((HEAP32[$39 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($39, HEAP32[($6 + 192 | 0) >> 2] | 0) | 0; + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] = $43; + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] = 0; + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 236 | 0) >> 2] = HEAP32[($6 + 204 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 240 | 0) >> 2] = HEAP32[($6 + 208 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 244 | 0) >> 2] = HEAP32[($6 + 212 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 248 | 0) >> 2] = HEAP32[($6 + 220 | 0) >> 2] | 0; + HEAPF32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 196 | 0) >> 2] = Math_fround(HEAPF32[($6 + 224 | 0) >> 2]); + HEAPF32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 200 | 0) >> 2] = Math_fround(HEAPF32[($6 + 228 | 0) >> 2]); + HEAPF32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 204 | 0) >> 2] = Math_fround(HEAPF32[($6 + 236 | 0) >> 2]); + HEAPF32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 208 | 0) >> 2] = Math_fround(HEAPF32[($6 + 244 | 0) >> 2]); + HEAPF32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 212 | 0) >> 2] = Math_fround(HEAPF32[($6 + 248 | 0) >> 2]); + HEAPF32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 216 | 0) >> 2] = Math_fround(HEAPF32[($6 + 232 | 0) >> 2]); + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 252 | 0) >> 2] = HEAP32[($6 + 252 | 0) >> 2] | 0; + $69 = HEAP32[($5 + 20 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$69 >> 2] | 0) + 40 | 0) >> 2] | 0 | 0]($69, $6) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $73 = HEAP32[($5 + 20 | 0) >> 2] | 0; + $77 = FUNCTION_TABLE[HEAP32[((HEAP32[$73 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($73, HEAP32[($5 + 12 | 0) >> 2] | 0) | 0; + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 12 | 0) >> 2] = $77; + label$1 : { + if (!((HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + $87 = HEAP32[($5 + 20 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$87 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($87, HEAP32[($5 + 12 | 0) >> 2] | 0); + } + HEAPF32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 220 | 0) >> 2] = Math_fround(HEAPF32[($6 + 268 | 0) >> 2]); + HEAPF32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 224 | 0) >> 2] = Math_fround(HEAPF32[($6 + 272 | 0) >> 2]); + HEAPF32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 228 | 0) >> 2] = Math_fround(HEAPF32[($6 + 276 | 0) >> 2]); + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 256 | 0) >> 2] = HEAP32[($6 + 280 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 260 | 0) >> 2] = 0; + __stack_pointer = $5 + 32 | 0; + return 83318 | 0; + } + + function btTransform__serialize_28btTransformFloatData__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btMatrix3x3__serialize_28btMatrix3x3FloatData__29_20const($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const($5 + 48 | 0 | 0, (HEAP32[($4 + 8 | 0) >> 2] | 0) + 48 | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btVector3__serialize_28btVector3FloatData__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) < (4 | 0) & 1 | 0)) { + break label$1 + } + HEAPF32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + ((HEAP32[($4 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($5 + ((HEAP32[($4 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btMatrix3x3__serialize_28btMatrix3x3FloatData__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$1 + } + btVector3__serialize_28btVector3FloatData__29_20const($5 + ((HEAP32[($4 + 4 | 0) >> 2] | 0) << 4 | 0) | 0 | 0, (HEAP32[($4 + 8 | 0) >> 2] | 0) + ((HEAP32[($4 + 4 | 0) >> 2] | 0) << 4 | 0) | 0 | 0); + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCollisionObject__serializeSingleObject_28btSerializer__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $9 = 0, $21 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($5) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + $9 = HEAP32[($4 + 24 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$9 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($9, HEAP32[($4 + 20 | 0) >> 2] | 0, 1) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5, HEAP32[((HEAP32[($4 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0, HEAP32[($4 + 24 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $21 = HEAP32[($4 + 24 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$21 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($21, HEAP32[($4 + 16 | 0) >> 2] | 0, HEAP32[($4 + 12 | 0) >> 2] | 0, 1245859651, $5); + __stack_pointer = $4 + 32 | 0; + return; + } + + function btCollisionObject__setCollisionShape_28btCollisionShape__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($5 + 304 | 0) >> 2] = (HEAP32[($5 + 304 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($5 + 192 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + HEAP32[($5 + 200 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return; + } + + function btCollisionObject__checkCollideWithOverride_28btCollisionObject_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $29 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btCollisionObject_20const____findLinearSearch_28btCollisionObject_20const__20const__29_20const($5 + 284 | 0 | 0, $4 + 4 | 0 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[$4 >> 2] | 0 | 0) < (btAlignedObjectArray_btCollisionObject_20const____size_28_29_20const($5 + 284 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP8[($4 + 15 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + HEAP8[($4 + 15 | 0) >> 0] = 1 & 1 | 0; + } + $29 = (HEAPU8[($4 + 15 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $4 + 16 | 0; + return $29 | 0; + } + + function btCollisionObject__calculateSerializeBufferSize_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 264 | 0; + } + + function _GLOBAL__sub_I_btCollisionObject_cpp() { + __cxx_global_var_init_9(); + return; + } + + function __cxx_global_var_init_10() { + btInfMaskConverter__btInfMaskConverter_28int_29(113980 | 0, 2139095040 | 0) | 0; + return; + } + + function btCollisionWorld__btCollisionWorld_28btDispatcher__2c_20btBroadphaseInterface__2c_20btCollisionConfiguration__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + HEAP32[$7 >> 2] = 91608 + 8 | 0; + btAlignedObjectArray_btCollisionObject____btAlignedObjectArray_28_29($7 + 4 | 0 | 0) | 0; + HEAP32[($7 + 24 | 0) >> 2] = HEAP32[($6 + 8 | 0) >> 2] | 0; + btDispatcherInfo__btDispatcherInfo_28_29($7 + 28 | 0 | 0) | 0; + HEAP32[($7 + 68 | 0) >> 2] = HEAP32[($6 + 4 | 0) >> 2] | 0; + HEAP32[($7 + 72 | 0) >> 2] = 0; + HEAP8[($7 + 76 | 0) >> 0] = 1; + __stack_pointer = $6 + 16 | 0; + return $7 | 0; + } + + function btAlignedObjectArray_btCollisionObject____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btCollisionObject__2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btCollisionObject____init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btDispatcherInfo__btDispatcherInfo_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAPF32[$4 >> 2] = Math_fround(0 | 0); + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 1; + HEAPF32[($4 + 12 | 0) >> 2] = Math_fround(1.0); + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 20 | 0) >> 2] = 0; + HEAP8[($4 + 24 | 0) >> 0] = 0; + HEAP8[($4 + 25 | 0) >> 0] = 1; + HEAP8[($4 + 26 | 0) >> 0] = 1; + HEAPF32[($4 + 28 | 0) >> 2] = Math_fround(.03999999910593033); + HEAP8[($4 + 32 | 0) >> 0] = 0; + HEAPF32[($4 + 36 | 0) >> 2] = Math_fround(0 | 0); + return $4 | 0; + } + + function btAlignedAllocator_btCollisionObject__2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btCollisionObject____init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btCollisionWorld___btCollisionWorld_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $32 = 0, $35 = 0, $40 = 0, $52 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $3 = __stack_pointer - 32 | 0; + __stack_pointer = $3; + HEAP32[($3 + 24 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 24 | 0) >> 2] | 0; + HEAP32[($3 + 28 | 0) >> 2] = $4; + HEAP32[$4 >> 2] = 91608 + 8 | 0; + HEAP32[($3 + 20 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3 + 20 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btCollisionObject____size_28_29_20const($4 + 4 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $3, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btCollisionObject____operator_5b_5d_28int_29($4 + 4 | 0 | 0, HEAP32[($3 + 20 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btCollisionObject__getBroadphaseHandle_28_29(HEAP32[($3 + 16 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + label$3 : { + if (!((HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $32 = btCollisionWorld__getBroadphase_28_29($4 | 0) | 0; + $35 = FUNCTION_TABLE[HEAP32[((HEAP32[$32 >> 2] | 0) + 36 | 0) >> 2] | 0 | 0]($32) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$35 >> 2] | 0) + 40 | 0) >> 2] | 0 | 0]($35, HEAP32[($3 + 12 | 0) >> 2] | 0, HEAP32[($4 + 24 | 0) >> 2] | 0); + $40 = btCollisionWorld__getBroadphase_28_29($4 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$40 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($40, HEAP32[($3 + 12 | 0) >> 2] | 0, HEAP32[($4 + 24 | 0) >> 2] | 0); + btCollisionObject__setBroadphaseHandle_28btBroadphaseProxy__29(HEAP32[($3 + 16 | 0) >> 2] | 0 | 0, 0 | 0); + } + HEAP32[($3 + 20 | 0) >> 2] = (HEAP32[($3 + 20 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + btAlignedObjectArray_btCollisionObject_____btAlignedObjectArray_28_29($4 + 4 | 0 | 0) | 0; + $52 = HEAP32[($3 + 28 | 0) >> 2] | 0; + __stack_pointer = $3 + 32 | 0; + return $52 | 0; + } + + function btAlignedObjectArray_btCollisionObject____size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btCollisionObject____operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btCollisionObject____size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 2 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btCollisionObject__getBroadphaseHandle_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 188 | 0) >> 2] | 0 | 0; + } + + function btCollisionWorld__getBroadphase_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 68 | 0) >> 2] | 0 | 0; + } + + function btCollisionObject__setBroadphaseHandle_28btBroadphaseProxy__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 188 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return; + } + + function btAlignedObjectArray_btCollisionObject_____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btCollisionObject____clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btCollisionObject____clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btCollisionObject____destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btCollisionObject____size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btCollisionObject____deallocate_28_29($4 | 0); + btAlignedObjectArray_btCollisionObject____init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCollisionWorld___btCollisionWorld_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[539 | 0]($4) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCollisionWorld__addCollisionObject_28btCollisionObject__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $70 = 0, $86 = 0, $85 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 128 | 0; + __stack_pointer = $6; + HEAP32[($6 + 124 | 0) >> 2] = $0; + HEAP32[($6 + 120 | 0) >> 2] = $1; + HEAP32[($6 + 116 | 0) >> 2] = $2; + HEAP32[($6 + 112 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 124 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($6 + 120 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(68696 | 0, 75774 | 0, 114 | 0, 68805 | 0); + wasm2js_trap(); + } + label$2 : { + if ((btAlignedObjectArray_btCollisionObject____findLinearSearch_28btCollisionObject__20const__29_20const($7 + 4 | 0 | 0, $6 + 120 | 0 | 0) | 0 | 0) == (btAlignedObjectArray_btCollisionObject____size_28_29_20const($7 + 4 | 0 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87410 | 0, 75774 | 0, 117 | 0, 68805 | 0); + wasm2js_trap(); + } + label$3 : { + if ((btCollisionObject__getWorldArrayIndex_28_29_20const(HEAP32[($6 + 120 | 0) >> 2] | 0 | 0) | 0 | 0) == (-1 | 0) & 1 | 0) { + break label$3 + } + __assert_fail(85587 | 0, 75774 | 0, 118 | 0, 68805 | 0); + wasm2js_trap(); + } + btCollisionObject__setWorldArrayIndex_28int_29(HEAP32[($6 + 120 | 0) >> 2] | 0 | 0, btAlignedObjectArray_btCollisionObject____size_28_29_20const($7 + 4 | 0 | 0) | 0 | 0); + btAlignedObjectArray_btCollisionObject____push_back_28btCollisionObject__20const__29($7 + 4 | 0 | 0, $6 + 120 | 0 | 0); + btTransform__btTransform_28btTransform_20const__29($6 + 48 | 0 | 0, btCollisionObject__getWorldTransform_28_29(HEAP32[($6 + 120 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 32 | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 16 | 0 | 0) | 0; + $70 = btCollisionObject__getCollisionShape_28_29(HEAP32[($6 + 120 | 0) >> 2] | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$70 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($70, $6 + 48 | 0, $6 + 32 | 0, $6 + 16 | 0); + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btCollisionShape__getShapeType_28_29_20const(btCollisionObject__getCollisionShape_28_29(HEAP32[($6 + 120 | 0) >> 2] | 0 | 0) | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $85 = HEAP32[($6 + 120 | 0) >> 2] | 0; + $86 = btCollisionWorld__getBroadphase_28_29($7 | 0) | 0; + btCollisionObject__setBroadphaseHandle_28btBroadphaseProxy__29($85 | 0, FUNCTION_TABLE[HEAP32[((HEAP32[$86 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($86, $6 + 32 | 0, $6 + 16 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0, HEAP32[($6 + 120 | 0) >> 2] | 0, HEAP32[($6 + 116 | 0) >> 2] | 0, HEAP32[($6 + 112 | 0) >> 2] | 0, HEAP32[($7 + 24 | 0) >> 2] | 0) | 0 | 0); + __stack_pointer = $6 + 128 | 0; + return; + } + + function btAlignedObjectArray_btCollisionObject____findLinearSearch_28btCollisionObject__20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btCollisionObject____size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + HEAP32[$4 >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$4 >> 2] | 0 | 0) < (btAlignedObjectArray_btCollisionObject____size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + label$3 : { + if (!((HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[$4 >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) == (HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[$4 >> 2] | 0; + break label$1; + } + HEAP32[$4 >> 2] = (HEAP32[$4 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + $32 = HEAP32[($4 + 4 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btCollisionObject__getWorldArrayIndex_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 216 | 0) >> 2] | 0 | 0; + } + + function btCollisionObject__setWorldArrayIndex_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 216 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return; + } + + function btAlignedObjectArray_btCollisionObject____push_back_28btCollisionObject__20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btCollisionObject____size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btCollisionObject____capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btCollisionObject____reserve_28int_29($5 | 0, btAlignedObjectArray_btCollisionObject____allocSize_28int_29($5 | 0, btAlignedObjectArray_btCollisionObject____size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btCollisionObject____capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btCollisionObject____allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btAlignedObjectArray_btCollisionObject____reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btCollisionObject____capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btCollisionObject____allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btCollisionObject____copy_28int_2c_20int_2c_20btCollisionObject___29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btCollisionObject____size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btCollisionObject____destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btCollisionObject____size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btCollisionObject____deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCollisionWorld__updateSingleAabb_28btCollisionObject__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $27 = 0, $13 = 0, $63 = 0, $104 = 0, $123 = 0, $150 = 0, $154 = 0, $158 = 0, $162 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0, wasm2js_i32$4 = 0, wasm2js_i32$5 = 0; + $4 = __stack_pointer - 112 | 0; + __stack_pointer = $4; + HEAP32[($4 + 108 | 0) >> 2] = $0; + HEAP32[($4 + 104 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 108 | 0) >> 2] | 0; + btVector3__btVector3_28_29($4 + 88 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 72 | 0 | 0) | 0; + $13 = btCollisionObject__getCollisionShape_28_29(HEAP32[($4 + 104 | 0) >> 2] | 0 | 0) | 0; + ((((wasm2js_i32$1 = $13, wasm2js_i32$2 = btCollisionObject__getWorldTransform_28_29(HEAP32[($4 + 104 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$3 = $4 + 88 | 0), wasm2js_i32$4 = $4 + 72 | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$13 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0, wasm2js_i32$3 | 0, wasm2js_i32$4 | 0); + $27 = 112840; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 56 | 0 | 0, $27 | 0, $27 | 0, $27 | 0) | 0; + btVector3__operator___28btVector3_20const__29($4 + 88 | 0 | 0, $4 + 56 | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($4 + 72 | 0 | 0, $4 + 56 | 0 | 0) | 0; + label$1 : { + if (!((HEAPU8[((btCollisionWorld__getDispatchInfo_28_29($5 | 0) | 0) + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + if (!((btCollisionObject__getInternalType_28_29_20const(HEAP32[($4 + 104 | 0) >> 2] | 0 | 0) | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$1 + } + if ((btCollisionObject__isStaticOrKinematicObject_28_29_20const(HEAP32[($4 + 104 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$1 + } + btVector3__btVector3_28_29($4 + 40 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 24 | 0 | 0) | 0; + $63 = btCollisionObject__getCollisionShape_28_29(HEAP32[($4 + 104 | 0) >> 2] | 0 | 0) | 0; + ((((wasm2js_i32$4 = $63, wasm2js_i32$3 = btCollisionObject__getInterpolationWorldTransform_28_29(HEAP32[($4 + 104 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$2 = $4 + 40 | 0), wasm2js_i32$1 = $4 + 24 | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$63 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$4 | 0, wasm2js_i32$3 | 0, wasm2js_i32$2 | 0, wasm2js_i32$1 | 0); + btVector3__operator___28btVector3_20const__29($4 + 40 | 0 | 0, $4 + 56 | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($4 + 24 | 0 | 0, $4 + 56 | 0 | 0) | 0; + btVector3__setMin_28btVector3_20const__29($4 + 88 | 0 | 0, $4 + 40 | 0 | 0); + btVector3__setMax_28btVector3_20const__29($4 + 72 | 0 | 0, $4 + 24 | 0 | 0); + } + HEAP32[($4 + 20 | 0) >> 2] = HEAP32[($5 + 68 | 0) >> 2] | 0; + $104 = 1; + label$2 : { + if ((btCollisionObject__isStaticObject_28_29_20const(HEAP32[($4 + 104 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$2 + } + operator__28btVector3_20const__2c_20btVector3_20const__29($4 + 4 | 0 | 0, $4 + 72 | 0 | 0, $4 + 88 | 0 | 0); + $104 = Math_fround(btVector3__length2_28_29_20const($4 + 4 | 0 | 0)) < Math_fround(999999995904.0); + } + label$3 : { + label$4 : { + if (!($104 & 1 | 0)) { + break label$4 + } + $123 = HEAP32[($4 + 20 | 0) >> 2] | 0; + (((((wasm2js_i32$1 = $123, wasm2js_i32$2 = btCollisionObject__getBroadphaseHandle_28_29(HEAP32[($4 + 104 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$3 = $4 + 88 | 0), wasm2js_i32$4 = $4 + 72 | 0), wasm2js_i32$5 = HEAP32[($5 + 24 | 0) >> 2] | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$123 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0, wasm2js_i32$3 | 0, wasm2js_i32$4 | 0, wasm2js_i32$5 | 0); + break label$3; + } + btCollisionObject__setActivationState_28int_29_20const(HEAP32[($4 + 104 | 0) >> 2] | 0 | 0, 5 | 0); + label$5 : { + if (!((HEAPU8[(0 + 112832 | 0) >> 0] | 0) & 1 | 0)) { + break label$5 + } + if (!((HEAP32[($5 + 72 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + HEAP8[(0 + 112832 | 0) >> 0] = 0; + $150 = HEAP32[($5 + 72 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$150 >> 2] | 0) + 44 | 0) >> 2] | 0 | 0]($150, 76682); + $154 = HEAP32[($5 + 72 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$154 >> 2] | 0) + 44 | 0) >> 2] | 0 | 0]($154, 88329); + $158 = HEAP32[($5 + 72 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$158 >> 2] | 0) + 44 | 0) >> 2] | 0 | 0]($158, 88516); + $162 = HEAP32[($5 + 72 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$162 >> 2] | 0) + 44 | 0) >> 2] | 0 | 0]($162, 88507); + } + } + __stack_pointer = $4 + 112 | 0; + return; + } + + function btCollisionObject__getInternalType_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 252 | 0) >> 2] | 0 | 0; + } + + function btCollisionObject__getInterpolationWorldTransform_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 68 | 0 | 0; + } + + function btVector3__setMin_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + void_20btSetMin_float__28float__2c_20float_20const__29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + void_20btSetMin_float__28float__2c_20float_20const__29($5 + 4 | 0 | 0, (HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0 | 0); + void_20btSetMin_float__28float__2c_20float_20const__29($5 + 8 | 0 | 0, (HEAP32[($4 + 8 | 0) >> 2] | 0) + 8 | 0 | 0); + void_20btSetMin_float__28float__2c_20float_20const__29($5 + 12 | 0 | 0, btVector3__w_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btVector3__setMax_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + void_20btSetMax_float__28float__2c_20float_20const__29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + void_20btSetMax_float__28float__2c_20float_20const__29($5 + 4 | 0 | 0, (HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0 | 0); + void_20btSetMax_float__28float__2c_20float_20const__29($5 + 8 | 0 | 0, (HEAP32[($4 + 8 | 0) >> 2] | 0) + 8 | 0 | 0); + void_20btSetMax_float__28float__2c_20float_20const__29($5 + 12 | 0 | 0, btVector3__w_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function void_20btSetMin_float__28float__2c_20float_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + if (!(Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2]) < Math_fround(HEAPF32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2]) & 1 | 0)) { + break label$1 + } + HEAPF32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2]); + } + return; + } + + function btVector3__w_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 12 | 0 | 0; + } + + function void_20btSetMax_float__28float__2c_20float_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + if (!(Math_fround(HEAPF32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2]) < Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2]) & 1 | 0)) { + break label$1 + } + HEAPF32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2]); + } + return; + } + + function btCollisionWorld__updateAabbs_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $3 = __stack_pointer - 80 | 0; + __stack_pointer = $3; + HEAP32[($3 + 76 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 76 | 0) >> 2] | 0; + CProfileSample__CProfileSample_28char_20const__29($3 + 75 | 0 | 0, 70484 | 0) | 0; + btTransform__btTransform_28_29($3 + 8 | 0 | 0) | 0; + HEAP32[($3 + 4 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btCollisionObject____size_28_29_20const($4 + 4 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $3, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btCollisionObject____operator_5b_5d_28int_29($4 + 4 | 0 | 0, HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + label$3 : { + if ((btCollisionObject__getWorldArrayIndex_28_29_20const(HEAP32[$3 >> 2] | 0 | 0) | 0 | 0) == (HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$3 + } + __assert_fail(77720 | 0, 75774 | 0, 199 | 0, 70484 | 0); + wasm2js_trap(); + } + label$4 : { + label$5 : { + if ((HEAPU8[($4 + 76 | 0) >> 0] | 0) & 1 | 0) { + break label$5 + } + if (!((btCollisionObject__isActive_28_29_20const(HEAP32[$3 >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$4 + } + } + btCollisionWorld__updateSingleAabb_28btCollisionObject__29($4 | 0, HEAP32[$3 >> 2] | 0 | 0); + } + HEAP32[($3 + 4 | 0) >> 2] = (HEAP32[($3 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + CProfileSample___CProfileSample_28_29($3 + 75 | 0 | 0) | 0; + __stack_pointer = $3 + 80 | 0; + return; + } + + function btCollisionWorld__computeOverlappingPairs_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $9 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + CProfileSample__CProfileSample_28char_20const__29($3 + 11 | 0 | 0, 69579 | 0) | 0; + $9 = HEAP32[($4 + 68 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$9 >> 2] | 0) + 32 | 0) >> 2] | 0 | 0]($9, HEAP32[($4 + 24 | 0) >> 2] | 0); + CProfileSample___CProfileSample_28_29($3 + 11 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCollisionWorld__performDiscreteCollisionDetection_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $26 = 0, $27 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0, wasm2js_i32$4 = 0; + $3 = __stack_pointer - 32 | 0; + __stack_pointer = $3; + HEAP32[($3 + 28 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 28 | 0) >> 2] | 0; + CProfileSample__CProfileSample_28char_20const__29($3 + 27 | 0 | 0, 76354 | 0) | 0; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btCollisionWorld__getDispatchInfo_28_29($4 | 0) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($4); + FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($4); + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btCollisionWorld__getDispatcher_28_29($4 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + CProfileSample__CProfileSample_28char_20const__29($3 + 15 | 0 | 0, 69496 | 0) | 0; + label$1 : { + if (!((HEAP32[($3 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + $26 = HEAP32[($3 + 16 | 0) >> 2] | 0; + $27 = HEAP32[($4 + 68 | 0) >> 2] | 0; + ((((wasm2js_i32$1 = $26, wasm2js_i32$2 = FUNCTION_TABLE[HEAP32[((HEAP32[$27 >> 2] | 0) + 36 | 0) >> 2] | 0 | 0]($27) | 0), wasm2js_i32$3 = HEAP32[($3 + 20 | 0) >> 2] | 0), wasm2js_i32$4 = HEAP32[($4 + 24 | 0) >> 2] | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$26 >> 2] | 0) + 32 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0, wasm2js_i32$3 | 0, wasm2js_i32$4 | 0); + } + CProfileSample___CProfileSample_28_29($3 + 15 | 0 | 0) | 0; + CProfileSample___CProfileSample_28_29($3 + 27 | 0 | 0) | 0; + __stack_pointer = $3 + 32 | 0; + return; + } + + function btCollisionWorld__getDispatcher_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0; + } + + function btCollisionWorld__removeCollisionObject_28btCollisionObject__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $15 = 0, $18 = 0, $23 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btCollisionObject__getBroadphaseHandle_28_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + $15 = btCollisionWorld__getBroadphase_28_29($5 | 0) | 0; + $18 = FUNCTION_TABLE[HEAP32[((HEAP32[$15 >> 2] | 0) + 36 | 0) >> 2] | 0 | 0]($15) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$18 >> 2] | 0) + 40 | 0) >> 2] | 0 | 0]($18, HEAP32[($4 + 4 | 0) >> 2] | 0, HEAP32[($5 + 24 | 0) >> 2] | 0); + $23 = btCollisionWorld__getBroadphase_28_29($5 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$23 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($23, HEAP32[($4 + 4 | 0) >> 2] | 0, HEAP32[($5 + 24 | 0) >> 2] | 0); + btCollisionObject__setBroadphaseHandle_28btBroadphaseProxy__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 0 | 0); + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btCollisionObject__getWorldArrayIndex_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + label$2 : { + label$3 : { + if (!((HEAP32[$4 >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$3 + } + if (!((HEAP32[$4 >> 2] | 0 | 0) < (btAlignedObjectArray_btCollisionObject____size_28_29_20const($5 + 4 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$3 + } + label$4 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) == (HEAP32[(btAlignedObjectArray_btCollisionObject____operator_5b_5d_28int_29($5 + 4 | 0 | 0, HEAP32[$4 >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$4 + } + __assert_fail(83805 | 0, 75774 | 0, 262 | 0, 68768 | 0); + wasm2js_trap(); + } + btAlignedObjectArray_btCollisionObject____swap_28int_2c_20int_29($5 + 4 | 0 | 0, HEAP32[$4 >> 2] | 0 | 0, (btAlignedObjectArray_btCollisionObject____size_28_29_20const($5 + 4 | 0 | 0) | 0) - 1 | 0 | 0); + btAlignedObjectArray_btCollisionObject____pop_back_28_29($5 + 4 | 0 | 0); + label$5 : { + if (!((HEAP32[$4 >> 2] | 0 | 0) < (btAlignedObjectArray_btCollisionObject____size_28_29_20const($5 + 4 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$5 + } + btCollisionObject__setWorldArrayIndex_28int_29(HEAP32[(btAlignedObjectArray_btCollisionObject____operator_5b_5d_28int_29($5 + 4 | 0 | 0, HEAP32[$4 >> 2] | 0 | 0) | 0) >> 2] | 0 | 0, HEAP32[$4 >> 2] | 0 | 0); + } + break label$2; + } + btAlignedObjectArray_btCollisionObject____remove_28btCollisionObject__20const__29($5 + 4 | 0 | 0, $4 + 8 | 0 | 0); + } + btCollisionObject__setWorldArrayIndex_28int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, -1 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btCollisionObject____swap_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[$5 >> 2] | 0; + return; + } + + function btAlignedObjectArray_btCollisionObject____pop_back_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85800 | 0, 78192 | 0, 201 | 0, 77711 | 0); + wasm2js_trap(); + } + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + -1 | 0; + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btCollisionObject____remove_28btCollisionObject__20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btCollisionObject____findLinearSearch_28btCollisionObject__20const__29_20const($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btCollisionObject____removeAtIndex_28int_29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btCollisionObject____removeAtIndex_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btCollisionObject____size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btCollisionObject____swap_28int_2c_20int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, (btAlignedObjectArray_btCollisionObject____size_28_29_20const($5 | 0) | 0) - 1 | 0 | 0); + btAlignedObjectArray_btCollisionObject____pop_back_28_29($5 | 0); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCollisionWorld__rayTestSingle_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObject__2c_20btCollisionShape_20const__2c_20btTransform_20const__2c_20btCollisionWorld__RayResultCallback__29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, $14 = 0; + $8 = __stack_pointer - 48 | 0; + __stack_pointer = $8; + HEAP32[($8 + 44 | 0) >> 2] = $0; + HEAP32[($8 + 40 | 0) >> 2] = $1; + HEAP32[($8 + 36 | 0) >> 2] = $2; + HEAP32[($8 + 32 | 0) >> 2] = $3; + HEAP32[($8 + 28 | 0) >> 2] = $4; + HEAP32[($8 + 24 | 0) >> 2] = $5; + $14 = -1; + btCollisionObjectWrapper__btCollisionObjectWrapper_28btCollisionObjectWrapper_20const__2c_20btCollisionShape_20const__2c_20btCollisionObject_20const__2c_20btTransform_20const__2c_20int_2c_20int_29($8 | 0, 0 | 0, HEAP32[($8 + 32 | 0) >> 2] | 0 | 0, HEAP32[($8 + 36 | 0) >> 2] | 0 | 0, HEAP32[($8 + 28 | 0) >> 2] | 0 | 0, $14 | 0, $14 | 0) | 0; + btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29(HEAP32[($8 + 44 | 0) >> 2] | 0 | 0, HEAP32[($8 + 40 | 0) >> 2] | 0 | 0, $8 | 0, HEAP32[($8 + 24 | 0) >> 2] | 0 | 0); + __stack_pointer = $8 + 48 | 0; + return; + } + + function btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $65 = 0, $112 = 0, $229 = 0, $244 = 0, $259 = 0, $306 = 0, $307 = 0, $322 = 0, $323 = 0, $858 = 0, $862 = 0, $888 = 0, $892 = 0, $1018 = 0, $1022 = 0, $1052 = 0, $1056 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 1392 | 0; + __stack_pointer = $6; + HEAP32[($6 + 1388 | 0) >> 2] = $0; + HEAP32[($6 + 1384 | 0) >> 2] = $1; + HEAP32[($6 + 1380 | 0) >> 2] = $2; + HEAP32[($6 + 1376 | 0) >> 2] = $3; + btSphereShape__btSphereShape_28float_29($6 + 1316 | 0 | 0, Math_fround(Math_fround(0 | 0))) | 0; + btSphereShape__setMargin_28float_29($6 + 1316 | 0 | 0, Math_fround(Math_fround(0 | 0))); + HEAP32[($6 + 1312 | 0) >> 2] = $6 + 1316 | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($6 + 1380 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 1308 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($6 + 1380 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 1304 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((btCollisionShape__isConvex_28_29_20const(HEAP32[($6 + 1308 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$2 + } + btConvexCast__CastResult__CastResult_28_29($6 + 1128 | 0 | 0) | 0; + HEAPF32[($6 + 1292 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($6 + 1376 | 0) >> 2] | 0) + 4 | 0) >> 2]); + HEAP32[($6 + 1124 | 0) >> 2] = HEAP32[($6 + 1308 | 0) >> 2] | 0; + btVoronoiSimplexSolver__btVoronoiSimplexSolver_28_29($6 + 764 | 0 | 0) | 0; + btSubsimplexConvexCast__btSubsimplexConvexCast_28btConvexShape_20const__2c_20btConvexShape_20const__2c_20btVoronoiSimplexSolver__29($6 + 748 | 0 | 0, HEAP32[($6 + 1312 | 0) >> 2] | 0 | 0, HEAP32[($6 + 1124 | 0) >> 2] | 0 | 0, $6 + 764 | 0 | 0) | 0; + btGjkConvexCast__btGjkConvexCast_28btConvexShape_20const__2c_20btConvexShape_20const__2c_20btVoronoiSimplexSolver__29($6 + 732 | 0 | 0, HEAP32[($6 + 1312 | 0) >> 2] | 0 | 0, HEAP32[($6 + 1124 | 0) >> 2] | 0 | 0, $6 + 764 | 0 | 0) | 0; + HEAP32[($6 + 728 | 0) >> 2] = 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($6 + 1376 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) & 8 | 0)) { + break label$4 + } + HEAP32[($6 + 728 | 0) >> 2] = $6 + 732 | 0; + break label$3; + } + HEAP32[($6 + 728 | 0) >> 2] = $6 + 748 | 0; + } + HEAP32[($6 + 724 | 0) >> 2] = HEAP32[($6 + 728 | 0) >> 2] | 0; + $65 = HEAP32[($6 + 724 | 0) >> 2] | 0; + label$5 : { + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$65 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($65, HEAP32[($6 + 1388 | 0) >> 2] | 0, HEAP32[($6 + 1384 | 0) >> 2] | 0, HEAP32[($6 + 1304 | 0) >> 2] | 0, HEAP32[($6 + 1304 | 0) >> 2] | 0, $6 + 1128 | 0) | 0) & 1 | 0)) { + break label$5 + } + label$6 : { + if (!(Math_fround(btVector3__length2_28_29_20const(($6 + 1128 | 0) + 132 | 0 | 0)) > Math_fround(9.999999747378752e-05) & 1 | 0)) { + break label$6 + } + label$7 : { + if (!(Math_fround(HEAPF32[($6 + 1292 | 0) >> 2]) < Math_fround(HEAPF32[((HEAP32[($6 + 1376 | 0) >> 2] | 0) + 4 | 0) >> 2]) & 1 | 0)) { + break label$7 + } + btVector3__normalize_28_29(($6 + 1128 | 0) + 132 | 0 | 0) | 0; + btCollisionWorld__LocalRayResult__LocalRayResult_28btCollisionObject_20const__2c_20btCollisionWorld__LocalShapeInfo__2c_20btVector3_20const__2c_20float_29($6 + 696 | 0 | 0, btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($6 + 1380 | 0) >> 2] | 0 | 0) | 0 | 0, 0 | 0, ($6 + 1128 | 0) + 132 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 1292 | 0) >> 2]))) | 0; + HEAP8[($6 + 695 | 0) >> 0] = 1; + $112 = HEAP32[($6 + 1376 | 0) >> 2] | 0; + Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$112 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($112, $6 + 696 | 0, (HEAPU8[($6 + 695 | 0) >> 0] | 0) & 1 | 0)); + } + } + } + btGjkConvexCast___btGjkConvexCast_28_29($6 + 732 | 0 | 0) | 0; + btSubsimplexConvexCast___btSubsimplexConvexCast_28_29($6 + 748 | 0 | 0) | 0; + btConvexCast__CastResult___CastResult_28_29($6 + 1128 | 0 | 0) | 0; + break label$1; + } + label$8 : { + label$9 : { + if (!((btCollisionShape__isConcave_28_29_20const(HEAP32[($6 + 1308 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$9 + } + btTransform__inverse_28_29_20const($6 + 628 | 0 | 0, HEAP32[($6 + 1304 | 0) >> 2] | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($6 + 612 | 0 | 0, $6 + 628 | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($6 + 1388 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($6 + 596 | 0 | 0, $6 + 628 | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($6 + 1384 | 0) >> 2] | 0 | 0) | 0 | 0); + label$10 : { + label$11 : { + if (!((btCollisionShape__getShapeType_28_29_20const(HEAP32[($6 + 1308 | 0) >> 2] | 0 | 0) | 0 | 0) == (21 | 0) & 1 | 0)) { + break label$11 + } + HEAP32[($6 + 592 | 0) >> 2] = HEAP32[($6 + 1308 | 0) >> 2] | 0; + btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__BridgeTriangleRaycastCallback__BridgeTriangleRaycastCallback_28btVector3_20const__2c_20btVector3_20const__2c_20btCollisionWorld__RayResultCallback__2c_20btCollisionObject_20const__2c_20btConcaveShape_20const__2c_20btTransform_20const__29($6 + 472 | 0 | 0, $6 + 612 | 0 | 0, $6 + 596 | 0 | 0, HEAP32[($6 + 1376 | 0) >> 2] | 0 | 0, btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($6 + 1380 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($6 + 592 | 0) >> 2] | 0 | 0, HEAP32[($6 + 1304 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($6 + 512 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($6 + 1376 | 0) >> 2] | 0) + 4 | 0) >> 2]); + btBvhTriangleMeshShape__performRaycast_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29(HEAP32[($6 + 592 | 0) >> 2] | 0 | 0, $6 + 472 | 0 | 0, $6 + 612 | 0 | 0, $6 + 596 | 0 | 0); + btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__BridgeTriangleRaycastCallback___BridgeTriangleRaycastCallback_28_29($6 + 472 | 0 | 0) | 0; + break label$10; + } + HEAP32[($6 + 468 | 0) >> 2] = HEAP32[($6 + 1308 | 0) >> 2] | 0; + btTransform__inverse_28_29_20const($6 + 404 | 0 | 0, HEAP32[($6 + 1304 | 0) >> 2] | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($6 + 388 | 0 | 0, $6 + 404 | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($6 + 1388 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($6 + 372 | 0 | 0, $6 + 404 | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($6 + 1384 | 0) >> 2] | 0 | 0) | 0 | 0); + btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__BridgeTriangleRaycastCallback__BridgeTriangleRaycastCallback_28btVector3_20const__2c_20btVector3_20const__2c_20btCollisionWorld__RayResultCallback__2c_20btCollisionObject_20const__2c_20btConcaveShape_20const__2c_20btTransform_20const__29($6 + 252 | 0 | 0, $6 + 388 | 0 | 0, $6 + 372 | 0 | 0, HEAP32[($6 + 1376 | 0) >> 2] | 0 | 0, btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($6 + 1380 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($6 + 468 | 0) >> 2] | 0 | 0, HEAP32[($6 + 1304 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($6 + 292 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($6 + 1376 | 0) >> 2] | 0) + 4 | 0) >> 2]); + $229 = 8; + i64toi32_i32$2 = ($6 + 388 | 0) + $229 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $858 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 232 | 0) + $229 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $858; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 388 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 392 | 0) >> 2] | 0; + $862 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 232 | 0) >> 2] = $862; + HEAP32[($6 + 236 | 0) >> 2] = i64toi32_i32$0; + btVector3__setMin_28btVector3_20const__29($6 + 232 | 0 | 0, $6 + 372 | 0 | 0); + $244 = 8; + i64toi32_i32$2 = ($6 + 388 | 0) + $244 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $888 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 216 | 0) + $244 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $888; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 388 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 392 | 0) >> 2] | 0; + $892 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 216 | 0) >> 2] = $892; + HEAP32[($6 + 220 | 0) >> 2] = i64toi32_i32$0; + btVector3__setMax_28btVector3_20const__29($6 + 216 | 0 | 0, $6 + 372 | 0 | 0); + $259 = HEAP32[($6 + 468 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$259 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($259, $6 + 252 | 0, $6 + 232 | 0, $6 + 216 | 0); + btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__BridgeTriangleRaycastCallback___BridgeTriangleRaycastCallback_28_29($6 + 252 | 0 | 0) | 0; + } + break label$8; + } + label$12 : { + if (!((btCollisionShape__isCompound_28_29_20const(HEAP32[($6 + 1308 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$12 + } + HEAP32[($6 + 212 | 0) >> 2] = HEAP32[($6 + 1308 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btCompoundShape__getDynamicAabbTree_28_29_20const(HEAP32[($6 + 212 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 208 | 0) >> 2] = wasm2js_i32$1; + btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__RayTester__RayTester_28btCollisionObject_20const__2c_20btCompoundShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionWorld__RayResultCallback__29($6 + 180 | 0 | 0, btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($6 + 1380 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($6 + 212 | 0) >> 2] | 0 | 0, HEAP32[($6 + 1304 | 0) >> 2] | 0 | 0, HEAP32[($6 + 1388 | 0) >> 2] | 0 | 0, HEAP32[($6 + 1384 | 0) >> 2] | 0 | 0, HEAP32[($6 + 1376 | 0) >> 2] | 0 | 0) | 0; + label$13 : { + label$14 : { + if (!((HEAP32[($6 + 208 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$14 + } + btTransform__inverseTimes_28btTransform_20const__29_20const($6 + 96 | 0 | 0, HEAP32[($6 + 1304 | 0) >> 2] | 0 | 0, HEAP32[($6 + 1388 | 0) >> 2] | 0 | 0); + $306 = btTransform__getOrigin_28_29($6 + 96 | 0 | 0) | 0; + $307 = 8; + i64toi32_i32$2 = $306 + $307 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1018 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 160 | 0) + $307 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1018; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $306; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1022 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 160 | 0) >> 2] = $1022; + HEAP32[($6 + 164 | 0) >> 2] = i64toi32_i32$0; + btTransform__inverseTimes_28btTransform_20const__29_20const($6 + 16 | 0 | 0, HEAP32[($6 + 1304 | 0) >> 2] | 0 | 0, HEAP32[($6 + 1384 | 0) >> 2] | 0 | 0); + $322 = btTransform__getOrigin_28_29($6 + 16 | 0 | 0) | 0; + $323 = 8; + i64toi32_i32$2 = $322 + $323 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1052 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 80 | 0) + $323 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1052; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $322; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1056 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 80 | 0) >> 2] = $1056; + HEAP32[($6 + 84 | 0) >> 2] = i64toi32_i32$0; + btDbvt__rayTest_28btDbvtNode_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btDbvt__ICollide__29(HEAP32[(HEAP32[($6 + 208 | 0) >> 2] | 0) >> 2] | 0 | 0, $6 + 160 | 0 | 0, $6 + 80 | 0 | 0, $6 + 180 | 0 | 0); + break label$13; + } + HEAP32[($6 + 12 | 0) >> 2] = 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btCompoundShape__getNumChildShapes_28_29_20const(HEAP32[($6 + 212 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + label$15 : { + label$16 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$15 + } + btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__RayTester__ProcessLeaf_28int_29($6 + 180 | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0); + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$16; + }; + } + } + btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__RayTester___RayTester_28_29($6 + 180 | 0 | 0) | 0; + } + } + } + btSphereShape___btSphereShape_28_29($6 + 1316 | 0 | 0) | 0; + __stack_pointer = $6 + 1392 | 0; + return; + } + + function btSphereShape__setMargin_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + btConvexInternalShape__setMargin_28float_29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCollisionObjectWrapper__getWorldTransform_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0; + } + + function btCollisionShape__isConvex_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $8 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $8 = (btBroadphaseProxy__isConvex_28int_29(btCollisionShape__getShapeType_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) & 1 | 0; + __stack_pointer = $3 + 16 | 0; + return $8 | 0; + } + + function btConvexCast__CastResult__CastResult_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 91696 + 8 | 0; + btTransform__btTransform_28_29($4 + 4 | 0 | 0) | 0; + btTransform__btTransform_28_29($4 + 68 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 132 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 148 | 0 | 0) | 0; + HEAPF32[($4 + 164 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAP32[($4 + 168 | 0) >> 2] = 0; + HEAPF32[($4 + 172 | 0) >> 2] = Math_fround(0 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btVoronoiSimplexSolver__btVoronoiSimplexSolver_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0, $6 = 0, $9 = 0, $10 = 0, $12 = 0, $19 = 0, $22 = 0, $23 = 0, $25 = 0, $32 = 0, $35 = 0, $36 = 0, $38 = 0, $8 = 0, $21 = 0, $34 = 0, $55 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $4; + $6 = $4 + 4 | 0; + $8 = $6 + 80 | 0; + $9 = $6; + label$1 : while (1) { + $10 = $9; + btVector3__btVector3_28_29($10 | 0) | 0; + $12 = $10 + 16 | 0; + $9 = $12; + if (!(($12 | 0) == ($8 | 0) & 1 | 0)) { + continue label$1 + } + break label$1; + }; + $19 = $4 + 84 | 0; + $21 = $19 + 80 | 0; + $22 = $19; + label$2 : while (1) { + $23 = $22; + btVector3__btVector3_28_29($23 | 0) | 0; + $25 = $23 + 16 | 0; + $22 = $25; + if (!(($25 | 0) == ($21 | 0) & 1 | 0)) { + continue label$2 + } + break label$2; + }; + $32 = $4 + 164 | 0; + $34 = $32 + 80 | 0; + $35 = $32; + label$3 : while (1) { + $36 = $35; + btVector3__btVector3_28_29($36 | 0) | 0; + $38 = $36 + 16 | 0; + $35 = $38; + if (!(($38 | 0) == ($34 | 0) & 1 | 0)) { + continue label$3 + } + break label$3; + }; + btVector3__btVector3_28_29($4 + 244 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 260 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 276 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 292 | 0 | 0) | 0; + HEAPF32[($4 + 308 | 0) >> 2] = Math_fround(9.999999747378752e-05); + btSubSimplexClosestResult__btSubSimplexClosestResult_28_29($4 + 316 | 0 | 0) | 0; + $55 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $55 | 0; + } + + function btVector3__normalize_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $16 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btVector3__fuzzyZero_28_29_20const($4 | 0) | 0) & 1 | 0)) { + break label$1 + } + __assert_fail(87253 | 0, 80295 | 0, 312 | 0, 80814 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(btVector3__length_28_29_20const($4 | 0))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + $16 = btVector3__operator___28float_20const__29($4 | 0, $3 + 8 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $16 | 0; + } + + function btCollisionObjectWrapper__getCollisionObject_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btCollisionWorld__LocalRayResult__LocalRayResult_28btCollisionObject_20const__2c_20btCollisionWorld__LocalShapeInfo__2c_20btVector3_20const__2c_20float_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = Math_fround($4); + var $7 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $8 = 0, $12 = 0, $15 = 0, $52 = 0, $62 = 0; + $7 = __stack_pointer - 32 | 0; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAPF32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + HEAP32[$8 >> 2] = HEAP32[($7 + 24 | 0) >> 2] | 0; + HEAP32[($8 + 4 | 0) >> 2] = HEAP32[($7 + 20 | 0) >> 2] | 0; + $12 = $8 + 8 | 0; + i64toi32_i32$2 = HEAP32[($7 + 16 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $52 = i64toi32_i32$0; + i64toi32_i32$0 = $12; + HEAP32[i64toi32_i32$0 >> 2] = $52; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $15 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $15 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $62 = i64toi32_i32$1; + i64toi32_i32$1 = $12 + $15 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $62; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($8 + 24 | 0) >> 2] = Math_fround(HEAPF32[($7 + 12 | 0) >> 2]); + return $8 | 0; + } + + function btGjkConvexCast___btGjkConvexCast_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConvexCast___btConvexCast_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btSubsimplexConvexCast___btSubsimplexConvexCast_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConvexCast___btConvexCast_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConvexCast__CastResult___CastResult_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btCollisionShape__isConcave_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $8 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $8 = (btBroadphaseProxy__isConcave_28int_29(btCollisionShape__getShapeType_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) & 1 | 0; + __stack_pointer = $3 + 16 | 0; + return $8 | 0; + } + + function btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__BridgeTriangleRaycastCallback__BridgeTriangleRaycastCallback_28btVector3_20const__2c_20btVector3_20const__2c_20btCollisionWorld__RayResultCallback__2c_20btCollisionObject_20const__2c_20btConcaveShape_20const__2c_20btTransform_20const__29($0, $1, $2, $3, $4, $5, $6) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + var $9 = 0, $10 = 0; + $9 = __stack_pointer - 32 | 0; + __stack_pointer = $9; + HEAP32[($9 + 28 | 0) >> 2] = $0; + HEAP32[($9 + 24 | 0) >> 2] = $1; + HEAP32[($9 + 20 | 0) >> 2] = $2; + HEAP32[($9 + 16 | 0) >> 2] = $3; + HEAP32[($9 + 12 | 0) >> 2] = $4; + HEAP32[($9 + 8 | 0) >> 2] = $5; + HEAP32[($9 + 4 | 0) >> 2] = $6; + $10 = HEAP32[($9 + 28 | 0) >> 2] | 0; + btTriangleRaycastCallback__btTriangleRaycastCallback_28btVector3_20const__2c_20btVector3_20const__2c_20unsigned_20int_29($10 | 0, HEAP32[($9 + 24 | 0) >> 2] | 0 | 0, HEAP32[($9 + 20 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($9 + 16 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$10 >> 2] = 91764 + 8 | 0; + HEAP32[($10 + 44 | 0) >> 2] = HEAP32[($9 + 16 | 0) >> 2] | 0; + HEAP32[($10 + 48 | 0) >> 2] = HEAP32[($9 + 12 | 0) >> 2] | 0; + HEAP32[($10 + 52 | 0) >> 2] = HEAP32[($9 + 8 | 0) >> 2] | 0; + btTransform__btTransform_28btTransform_20const__29($10 + 56 | 0 | 0, HEAP32[($9 + 4 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $9 + 32 | 0; + return $10 | 0; + } + + function btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__BridgeTriangleRaycastCallback___BridgeTriangleRaycastCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btTriangleRaycastCallback___btTriangleRaycastCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCompoundShape__getDynamicAabbTree_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0 | 0; + } + + function btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__RayTester__RayTester_28btCollisionObject_20const__2c_20btCompoundShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionWorld__RayResultCallback__29($0, $1, $2, $3, $4, $5, $6) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + var $9 = 0, $10 = 0; + $9 = __stack_pointer - 32 | 0; + __stack_pointer = $9; + HEAP32[($9 + 28 | 0) >> 2] = $0; + HEAP32[($9 + 24 | 0) >> 2] = $1; + HEAP32[($9 + 20 | 0) >> 2] = $2; + HEAP32[($9 + 16 | 0) >> 2] = $3; + HEAP32[($9 + 12 | 0) >> 2] = $4; + HEAP32[($9 + 8 | 0) >> 2] = $5; + HEAP32[($9 + 4 | 0) >> 2] = $6; + $10 = HEAP32[($9 + 28 | 0) >> 2] | 0; + btDbvt__ICollide__ICollide_28_29($10 | 0) | 0; + HEAP32[$10 >> 2] = 91948 + 8 | 0; + HEAP32[($10 + 4 | 0) >> 2] = HEAP32[($9 + 24 | 0) >> 2] | 0; + HEAP32[($10 + 8 | 0) >> 2] = HEAP32[($9 + 20 | 0) >> 2] | 0; + HEAP32[($10 + 12 | 0) >> 2] = HEAP32[($9 + 16 | 0) >> 2] | 0; + HEAP32[($10 + 16 | 0) >> 2] = HEAP32[($9 + 12 | 0) >> 2] | 0; + HEAP32[($10 + 20 | 0) >> 2] = HEAP32[($9 + 8 | 0) >> 2] | 0; + HEAP32[($10 + 24 | 0) >> 2] = HEAP32[($9 + 4 | 0) >> 2] | 0; + __stack_pointer = $9 + 32 | 0; + return $10 | 0; + } + + function btTransform__inverseTimes_28btTransform_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 96 | 0; + __stack_pointer = $5; + HEAP32[($5 + 92 | 0) >> 2] = $0; + HEAP32[($5 + 88 | 0) >> 2] = $1; + HEAP32[($5 + 84 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 88 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 68 | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($5 + 84 | 0) >> 2] | 0 | 0) | 0 | 0, $6 + 48 | 0 | 0); + btMatrix3x3__transposeTimes_28btMatrix3x3_20const__29_20const($5 + 20 | 0 | 0, $6 | 0, HEAP32[($5 + 84 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btMatrix3x3_20const__29($5 + 4 | 0 | 0, $5 + 68 | 0 | 0, $6 | 0); + btTransform__btTransform_28btMatrix3x3_20const__2c_20btVector3_20const__29($0 | 0, $5 + 20 | 0 | 0, $5 + 4 | 0 | 0) | 0; + __stack_pointer = $5 + 96 | 0; + return; + } + + function btDbvt__rayTest_28btDbvtNode_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btDbvt__ICollide__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $36 = Math_fround(0), $60 = Math_fround(0), $84 = Math_fround(0), $101 = 0.0, $145 = 0, $154 = 0, $157 = 0, $158 = 0, $160 = 0, $168 = 0, $178 = 0, $180 = 0, $190 = 0, $192 = 0, $250 = 0, $259 = 0, $266 = 0, $146 = 0, $156 = 0, $607 = 0, $617 = 0, $632 = 0, $642 = 0, $234 = 0, $249 = 0, $258 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$1 = 0; + $6 = __stack_pointer - 704 | 0; + __stack_pointer = $6; + HEAP32[($6 + 700 | 0) >> 2] = $0; + HEAP32[($6 + 696 | 0) >> 2] = $1; + HEAP32[($6 + 692 | 0) >> 2] = $2; + HEAP32[($6 + 688 | 0) >> 2] = $3; + label$1 : { + if (!((HEAP32[($6 + 700 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 672 | 0 | 0, HEAP32[($6 + 692 | 0) >> 2] | 0 | 0, HEAP32[($6 + 696 | 0) >> 2] | 0 | 0); + btVector3__normalize_28_29($6 + 672 | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 656 | 0 | 0) | 0; + label$2 : { + label$3 : { + if (!(Math_fround(HEAPF32[(btVector3__operator_20float__28_29($6 + 672 | 0 | 0) | 0) >> 2]) == Math_fround(0 | 0) & 1 | 0)) { + break label$3 + } + $36 = Math_fround(999999984306749440.0); + break label$2; + } + $36 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[(btVector3__operator_20float__28_29($6 + 672 | 0 | 0) | 0) >> 2])); + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($6 + 656 | 0 | 0) | 0, wasm2js_f32$0 = $36), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + label$4 : { + label$5 : { + if (!(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 672 | 0 | 0) | 0) + 4 | 0) >> 2]) == Math_fround(0 | 0) & 1 | 0)) { + break label$5 + } + $60 = Math_fround(999999984306749440.0); + break label$4; + } + $60 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 672 | 0 | 0) | 0) + 4 | 0) >> 2])); + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($6 + 656 | 0 | 0) | 0, wasm2js_f32$0 = $60), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + label$6 : { + label$7 : { + if (!(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 672 | 0 | 0) | 0) + 8 | 0) >> 2]) == Math_fround(0 | 0) & 1 | 0)) { + break label$7 + } + $84 = Math_fround(999999984306749440.0); + break label$6; + } + $84 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 672 | 0 | 0) | 0) + 8 | 0) >> 2])); + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($6 + 656 | 0 | 0) | 0, wasm2js_f32$0 = $84), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + $101 = 0.0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = +Math_fround(HEAPF32[(btVector3__operator_20float__28_29($6 + 656 | 0 | 0) | 0) >> 2]) < $101), HEAP32[(wasm2js_i32$0 + 644 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = +Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 656 | 0 | 0) | 0) + 4 | 0) >> 2]) < $101), HEAP32[(wasm2js_i32$0 + 648 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = +Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 656 | 0 | 0) | 0) + 8 | 0) >> 2]) < +(0 | 0) & 1 | 0), HEAP32[(wasm2js_i32$0 + 652 | 0) >> 2] = wasm2js_i32$1; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 624 | 0 | 0, HEAP32[($6 + 692 | 0) >> 2] | 0 | 0, HEAP32[($6 + 696 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($6 + 672 | 0 | 0, $6 + 624 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 640 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28_29($6 + 608 | 0 | 0) | 0; + btAlignedObjectArray_btDbvtNode_20const____btAlignedObjectArray_28_29($6 + 588 | 0 | 0) | 0; + HEAP32[($6 + 584 | 0) >> 2] = 1; + HEAP32[($6 + 580 | 0) >> 2] = 126; + $145 = 128; + btAlignedObjectArray_btDbvtNode_20const____initializeFromBuffer_28void__2c_20int_2c_20int_29($6 + 588 | 0 | 0, $6 + 64 | 0 | 0, $145 | 0, $145 | 0); + $146 = HEAP32[($6 + 700 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btDbvtNode_20const____operator_5b_5d_28int_29($6 + 588 | 0 | 0, 0 | 0) | 0, wasm2js_i32$1 = $146), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $154 = $6 + 32 | 0; + $156 = $154 + 32 | 0; + $157 = $154; + label$8 : while (1) { + $158 = $157; + btVector3__btVector3_28_29($158 | 0) | 0; + $160 = $158 + 16 | 0; + $157 = $160; + if (!(($160 | 0) == ($156 | 0) & 1 | 0)) { + continue label$8 + } + break label$8; + }; + label$9 : while (1) { + $168 = (HEAP32[($6 + 584 | 0) >> 2] | 0) + -1 | 0; + HEAP32[($6 + 584 | 0) >> 2] = $168; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btDbvtNode_20const____operator_5b_5d_28int_29($6 + 588 | 0 | 0, $168 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + $178 = $6 + 32 | 0; + i64toi32_i32$2 = btDbvtAabbMm__Mins_28_29_20const(HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $607 = i64toi32_i32$0; + i64toi32_i32$0 = $178; + HEAP32[i64toi32_i32$0 >> 2] = $607; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $180 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $180 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $617 = i64toi32_i32$1; + i64toi32_i32$1 = $178 + $180 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $617; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $190 = ($6 + 32 | 0) + 16 | 0; + i64toi32_i32$2 = btDbvtAabbMm__Maxs_28_29_20const(HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $632 = i64toi32_i32$0; + i64toi32_i32$0 = $190; + HEAP32[i64toi32_i32$0 >> 2] = $632; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $192 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $192 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $642 = i64toi32_i32$1; + i64toi32_i32$1 = $190 + $192 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $642; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($6 + 24 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($6 + 20 | 0) >> 2] = Math_fround(0 | 0); + (wasm2js_i32$0 = $6, wasm2js_i32$1 = (btRayAabb2_28btVector3_20const__2c_20btVector3_20const__2c_20unsigned_20int_20const__2c_20btVector3_20const__2c_20float__2c_20float_2c_20float_29(HEAP32[($6 + 696 | 0) >> 2] | 0 | 0, $6 + 656 | 0 | 0, $6 + 644 | 0 | 0, $6 + 32 | 0 | 0, $6 + 24 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 20 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($6 + 640 | 0) >> 2]))) | 0) & 1 | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$10 : { + if (!(HEAP32[($6 + 16 | 0) >> 2] | 0)) { + break label$10 + } + label$11 : { + label$12 : { + if (!((btDbvtNode__isinternal_28_29_20const(HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$12 + } + label$13 : { + if (!((HEAP32[($6 + 584 | 0) >> 2] | 0 | 0) > (HEAP32[($6 + 580 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$13 + } + $234 = (btAlignedObjectArray_btDbvtNode_20const____size_28_29_20const($6 + 588 | 0 | 0) | 0) << 1 | 0; + HEAP32[($6 + 12 | 0) >> 2] = 0; + btAlignedObjectArray_btDbvtNode_20const____resize_28int_2c_20btDbvtNode_20const__20const__29($6 + 588 | 0 | 0, $234 | 0, $6 + 12 | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_i32$1 = (btAlignedObjectArray_btDbvtNode_20const____size_28_29_20const($6 + 588 | 0 | 0) | 0) - 2 | 0), HEAP32[(wasm2js_i32$0 + 580 | 0) >> 2] = wasm2js_i32$1; + } + $249 = HEAP32[((HEAP32[($6 + 28 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + $250 = HEAP32[($6 + 584 | 0) >> 2] | 0; + HEAP32[($6 + 584 | 0) >> 2] = $250 + 1 | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btDbvtNode_20const____operator_5b_5d_28int_29($6 + 588 | 0 | 0, $250 | 0) | 0, wasm2js_i32$1 = $249), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $258 = HEAP32[((HEAP32[($6 + 28 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + $259 = HEAP32[($6 + 584 | 0) >> 2] | 0; + HEAP32[($6 + 584 | 0) >> 2] = $259 + 1 | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btDbvtNode_20const____operator_5b_5d_28int_29($6 + 588 | 0 | 0, $259 | 0) | 0, wasm2js_i32$1 = $258), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + break label$11; + } + $266 = HEAP32[($6 + 688 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$266 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($266, HEAP32[($6 + 28 | 0) >> 2] | 0); + } + } + if (HEAP32[($6 + 584 | 0) >> 2] | 0) { + continue label$9 + } + break label$9; + }; + btAlignedObjectArray_btDbvtNode_20const_____btAlignedObjectArray_28_29($6 + 588 | 0 | 0) | 0; + } + __stack_pointer = $6 + 704 | 0; + return; + } + + function btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__RayTester__ProcessLeaf_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 144 | 0; + __stack_pointer = $4; + HEAP32[($4 + 140 | 0) >> 2] = $0; + HEAP32[($4 + 136 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 140 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btCompoundShape__getChildShape_28int_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 136 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 132 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btCompoundShape__getChildTransform_28int_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4 + 136 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 128 | 0) >> 2] = wasm2js_i32$1; + btTransform__operator__28btTransform_20const__29_20const($4 + 64 | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4 + 128 | 0) >> 2] | 0 | 0); + btCollisionObjectWrapper__btCollisionObjectWrapper_28btCollisionObjectWrapper_20const__2c_20btCollisionShape_20const__2c_20btCollisionObject_20const__2c_20btTransform_20const__2c_20int_2c_20int_29($4 + 40 | 0 | 0, 0 | 0, HEAP32[($4 + 132 | 0) >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0, $4 + 64 | 0 | 0, -1 | 0, HEAP32[($4 + 136 | 0) >> 2] | 0 | 0) | 0; + btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__LocalInfoAdder2__LocalInfoAdder2_28int_2c_20btCollisionWorld__RayResultCallback__2c_20btCollisionShape_20const__29($4 + 8 | 0 | 0, HEAP32[($4 + 136 | 0) >> 2] | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0, HEAP32[($4 + 132 | 0) >> 2] | 0 | 0) | 0; + btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29(HEAP32[($5 + 16 | 0) >> 2] | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0, $4 + 40 | 0 | 0, $4 + 8 | 0 | 0); + btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__LocalInfoAdder2___LocalInfoAdder2_28_29($4 + 8 | 0 | 0) | 0; + __stack_pointer = $4 + 144 | 0; + return; + } + + function btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__RayTester___RayTester_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btDbvt__ICollide___ICollide_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btSphereShape___btSphereShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConvexInternalShape___btConvexInternalShape_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btBroadphaseProxy__isConvex_28int_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) < (20 | 0) & 1 | 0 | 0; + } + + function btSubSimplexClosestResult__btSubSimplexClosestResult_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btVector3__btVector3_28_29($4 | 0) | 0; + btUsageBitfield__btUsageBitfield_28_29($4 + 16 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btVector3__fuzzyZero_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $9 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $9 = Math_fround(btVector3__length2_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0)) < Math_fround(1.4210854715202004e-14) & 1 | 0; + __stack_pointer = $3 + 16 | 0; + return $9 | 0; + } + + function btVector3__operator___28float_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $13 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAPF32[($4 + 4 | 0) >> 2] = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2])); + $13 = btVector3__operator___28float_20const__29_1($5 | 0, $4 + 4 | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $13 | 0; + } + + function btBroadphaseProxy__isConcave_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $12 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $12 = 0; + label$1 : { + if (!((HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) > (20 | 0) & 1 | 0)) { + break label$1 + } + $12 = (HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) < (30 | 0); + } + return $12 & 1 | 0 | 0; + } + + function btTriangleRaycastCallback___btTriangleRaycastCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btTriangleCallback___btTriangleCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btMatrix3x3__transposeTimes_28btMatrix3x3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $25 = Math_fround(0), $55 = Math_fround(0), $85 = Math_fround(0), $115 = Math_fround(0), $145 = Math_fround(0), $175 = Math_fround(0), $205 = Math_fround(0), $235 = Math_fround(0), $265 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 44 | 0) >> 2] = $0; + HEAP32[($5 + 40 | 0) >> 2] = $1; + HEAP32[($5 + 36 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 40 | 0) >> 2] | 0; + $25 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($6 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__x_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($6 + 16 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__x_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0) | 0) >> 2]))); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($6 + 32 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__x_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0) | 0) >> 2])) + $25)), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + $55 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($6 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__y_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($6 + 16 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__y_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0) | 0) >> 2]))); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($6 + 32 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__y_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0) | 0) >> 2])) + $55)), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + $85 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($6 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__z_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($6 + 16 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__z_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0) | 0) >> 2]))); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($6 + 32 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__z_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0) | 0) >> 2])) + $85)), HEAPF32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_f32$0; + $115 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($6 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__x_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($6 + 16 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__x_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0) | 0) >> 2]))); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($6 + 32 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__x_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0) | 0) >> 2])) + $115)), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + $145 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($6 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__y_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($6 + 16 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__y_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0) | 0) >> 2]))); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($6 + 32 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__y_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0) | 0) >> 2])) + $145)), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + $175 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($6 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__z_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($6 + 16 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__z_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0) | 0) >> 2]))); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($6 + 32 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__z_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0) | 0) >> 2])) + $175)), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + $205 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($6 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__x_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($6 + 16 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__x_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0) | 0) >> 2]))); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($6 + 32 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__x_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0) | 0) >> 2])) + $205)), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + $235 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($6 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__y_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($6 + 16 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__y_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0) | 0) >> 2]))); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($6 + 32 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__y_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0) | 0) >> 2])) + $235)), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $265 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($6 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__z_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($6 + 16 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__z_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0) | 0) >> 2]))); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($6 + 32 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__z_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0) | 0) >> 2])) + $265)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + btMatrix3x3__btMatrix3x3_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $5 + 32 | 0 | 0, $5 + 28 | 0 | 0, $5 + 24 | 0 | 0, $5 + 20 | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0, $5 + 8 | 0 | 0, $5 + 4 | 0 | 0, $5 | 0) | 0; + __stack_pointer = $5 + 48 | 0; + return; + } + + function operator__28btVector3_20const__2c_20btMatrix3x3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $1; + HEAP32[($5 + 24 | 0) >> 2] = $2; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btMatrix3x3__tdotx_28btVector3_20const__29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0, HEAP32[($5 + 28 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btMatrix3x3__tdoty_28btVector3_20const__29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0, HEAP32[($5 + 28 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btMatrix3x3__tdotz_28btVector3_20const__29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0, HEAP32[($5 + 28 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $5 + 20 | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0) | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btCompoundShape__getChildTransform_28int_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $9 = btAlignedObjectArray_btCompoundShapeChild___operator_5b_5d_28int_29_20const((HEAP32[($4 + 12 | 0) >> 2] | 0) + 20 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $9 | 0; + } + + function btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__LocalInfoAdder2__LocalInfoAdder2_28int_2c_20btCollisionWorld__RayResultCallback__2c_20btCollisionShape_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btCollisionWorld__RayResultCallback__RayResultCallback_28_29($7 | 0) | 0; + HEAP32[$7 >> 2] = 92124 + 8 | 0; + HEAP32[($7 + 20 | 0) >> 2] = HEAP32[$6 >> 2] | 0; + HEAP32[($7 + 24 | 0) >> 2] = HEAP32[($6 + 4 | 0) >> 2] | 0; + HEAP32[($7 + 28 | 0) >> 2] = HEAP32[($6 + 8 | 0) >> 2] | 0; + HEAPF32[($7 + 4 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($7 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2]); + HEAP32[($7 + 16 | 0) >> 2] = HEAP32[((HEAP32[($7 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + __stack_pointer = $6 + 16 | 0; + return $7 | 0; + } + + function btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__LocalInfoAdder2___LocalInfoAdder2_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionWorld__RayResultCallback___RayResultCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConvexInternalShape___btConvexInternalShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConvexShape___btConvexShape_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCollisionWorld__objectQuerySingle_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObject__2c_20btCollisionShape_20const__2c_20btTransform_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29($0, $1, $2, $3, $4, $5, $6, $7) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = Math_fround($7); + var $10 = 0, $18 = 0; + $10 = __stack_pointer - 64 | 0; + __stack_pointer = $10; + HEAP32[($10 + 60 | 0) >> 2] = $0; + HEAP32[($10 + 56 | 0) >> 2] = $1; + HEAP32[($10 + 52 | 0) >> 2] = $2; + HEAP32[($10 + 48 | 0) >> 2] = $3; + HEAP32[($10 + 44 | 0) >> 2] = $4; + HEAP32[($10 + 40 | 0) >> 2] = $5; + HEAP32[($10 + 36 | 0) >> 2] = $6; + HEAPF32[($10 + 32 | 0) >> 2] = $7; + $18 = -1; + btCollisionObjectWrapper__btCollisionObjectWrapper_28btCollisionObjectWrapper_20const__2c_20btCollisionShape_20const__2c_20btCollisionObject_20const__2c_20btTransform_20const__2c_20int_2c_20int_29($10 + 8 | 0 | 0, 0 | 0, HEAP32[($10 + 44 | 0) >> 2] | 0 | 0, HEAP32[($10 + 48 | 0) >> 2] | 0 | 0, HEAP32[($10 + 40 | 0) >> 2] | 0 | 0, $18 | 0, $18 | 0) | 0; + btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29(HEAP32[($10 + 60 | 0) >> 2] | 0 | 0, HEAP32[($10 + 56 | 0) >> 2] | 0 | 0, HEAP32[($10 + 52 | 0) >> 2] | 0 | 0, $10 + 8 | 0 | 0, HEAP32[($10 + 36 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($10 + 32 | 0) >> 2]))); + __stack_pointer = $10 + 64 | 0; + return; + } + + function btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = Math_fround($5); + var $8 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $44 = 0, $99 = 0, $206 = 0, $260 = 0, $315 = 0, $407 = 0, $419 = 0, $434 = 0, $461 = 0, $497 = 0, $520 = 0, $1506 = 0, $1510 = 0, $1536 = 0, $1540 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $8 = __stack_pointer - 2432 | 0; + __stack_pointer = $8; + HEAP32[($8 + 2428 | 0) >> 2] = $0; + HEAP32[($8 + 2424 | 0) >> 2] = $1; + HEAP32[($8 + 2420 | 0) >> 2] = $2; + HEAP32[($8 + 2416 | 0) >> 2] = $3; + HEAP32[($8 + 2412 | 0) >> 2] = $4; + HEAPF32[($8 + 2408 | 0) >> 2] = $5; + (wasm2js_i32$0 = $8, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($8 + 2416 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 2404 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $8, wasm2js_i32$1 = btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($8 + 2416 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 2400 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((btCollisionShape__isConvex_28_29_20const(HEAP32[($8 + 2404 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$2 + } + btConvexCast__CastResult__CastResult_28_29($8 + 2224 | 0 | 0) | 0; + HEAPF32[($8 + 2396 | 0) >> 2] = Math_fround(HEAPF32[($8 + 2408 | 0) >> 2]); + HEAPF32[($8 + 2388 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($8 + 2412 | 0) >> 2] | 0) + 4 | 0) >> 2]); + HEAP32[($8 + 2220 | 0) >> 2] = HEAP32[($8 + 2404 | 0) >> 2] | 0; + btVoronoiSimplexSolver__btVoronoiSimplexSolver_28_29($8 + 1860 | 0 | 0) | 0; + btGjkEpaPenetrationDepthSolver__btGjkEpaPenetrationDepthSolver_28_29($8 + 1856 | 0 | 0) | 0; + btContinuousConvexCollision__btContinuousConvexCollision_28btConvexShape_20const__2c_20btConvexShape_20const__2c_20btVoronoiSimplexSolver__2c_20btConvexPenetrationDepthSolver__29($8 + 1832 | 0 | 0, HEAP32[($8 + 2428 | 0) >> 2] | 0 | 0, HEAP32[($8 + 2220 | 0) >> 2] | 0 | 0, $8 + 1860 | 0 | 0, $8 + 1856 | 0 | 0) | 0; + HEAP32[($8 + 1828 | 0) >> 2] = $8 + 1832 | 0; + $44 = HEAP32[($8 + 1828 | 0) >> 2] | 0; + label$3 : { + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$44 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($44, HEAP32[($8 + 2424 | 0) >> 2] | 0, HEAP32[($8 + 2420 | 0) >> 2] | 0, HEAP32[($8 + 2400 | 0) >> 2] | 0, HEAP32[($8 + 2400 | 0) >> 2] | 0, $8 + 2224 | 0) | 0) & 1 | 0)) { + break label$3 + } + label$4 : { + if (!(Math_fround(btVector3__length2_28_29_20const(($8 + 2224 | 0) + 132 | 0 | 0)) > Math_fround(9.999999747378752e-05) & 1 | 0)) { + break label$4 + } + label$5 : { + if (!(Math_fround(HEAPF32[($8 + 2388 | 0) >> 2]) < Math_fround(HEAPF32[((HEAP32[($8 + 2412 | 0) >> 2] | 0) + 4 | 0) >> 2]) & 1 | 0)) { + break label$5 + } + btVector3__normalize_28_29(($8 + 2224 | 0) + 132 | 0 | 0) | 0; + HEAP32[($8 + 1824 | 0) >> 2] = HEAP32[($8 + 2404 | 0) >> 2] | 0; + btCollisionWorld__LocalConvexResult__LocalConvexResult_28btCollisionObject_20const__2c_20btCollisionWorld__LocalShapeInfo__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_29($8 + 1772 | 0 | 0, btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($8 + 2416 | 0) >> 2] | 0 | 0) | 0 | 0, $8 + 1816 | 0 | 0, ($8 + 2224 | 0) + 132 | 0 | 0, ($8 + 2224 | 0) + 148 | 0 | 0, Math_fround(Math_fround(HEAPF32[($8 + 2388 | 0) >> 2]))) | 0; + HEAP8[($8 + 1771 | 0) >> 0] = 1; + $99 = HEAP32[($8 + 2412 | 0) >> 2] | 0; + Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$99 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($99, $8 + 1772 | 0, (HEAPU8[($8 + 1771 | 0) >> 0] | 0) & 1 | 0)); + } + } + } + btContinuousConvexCollision___btContinuousConvexCollision_28_29($8 + 1832 | 0 | 0) | 0; + btGjkEpaPenetrationDepthSolver___btGjkEpaPenetrationDepthSolver_28_29($8 + 1856 | 0 | 0) | 0; + btConvexCast__CastResult___CastResult_28_29($8 + 2224 | 0 | 0) | 0; + break label$1; + } + label$6 : { + label$7 : { + if (!((btCollisionShape__isConcave_28_29_20const(HEAP32[($8 + 2404 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$7 + } + label$8 : { + label$9 : { + if (!((btCollisionShape__getShapeType_28_29_20const(HEAP32[($8 + 2404 | 0) >> 2] | 0 | 0) | 0 | 0) == (21 | 0) & 1 | 0)) { + break label$9 + } + HEAP32[($8 + 1764 | 0) >> 2] = HEAP32[($8 + 2404 | 0) >> 2] | 0; + btTransform__inverse_28_29_20const($8 + 1700 | 0 | 0, HEAP32[($8 + 2400 | 0) >> 2] | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($8 + 1684 | 0 | 0, $8 + 1700 | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($8 + 2424 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($8 + 1668 | 0 | 0, $8 + 1700 | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($8 + 2420 | 0) >> 2] | 0 | 0) | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btMatrix3x3_20const__29($8 + 1556 | 0 | 0, btTransform__getBasis_28_29($8 + 1700 | 0 | 0) | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 2420 | 0) >> 2] | 0 | 0) | 0 | 0); + HEAPF32[($8 + 1536 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 1532 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 1528 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 1540 | 0 | 0, $8 + 1536 | 0 | 0, $8 + 1532 | 0 | 0, $8 + 1528 | 0 | 0) | 0; + btTransform__btTransform_28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 1604 | 0 | 0, $8 + 1556 | 0 | 0, $8 + 1540 | 0 | 0) | 0; + btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__BridgeTriangleConvexcastCallback__BridgeTriangleConvexcastCallback_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20btCollisionObject_20const__2c_20btTriangleMeshShape__2c_20btTransform_20const__29($8 + 1304 | 0 | 0, HEAP32[($8 + 2428 | 0) >> 2] | 0 | 0, HEAP32[($8 + 2424 | 0) >> 2] | 0 | 0, HEAP32[($8 + 2420 | 0) >> 2] | 0 | 0, HEAP32[($8 + 2412 | 0) >> 2] | 0 | 0, btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($8 + 2416 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($8 + 1764 | 0) >> 2] | 0 | 0, HEAP32[($8 + 2400 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($8 + 1504 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($8 + 2412 | 0) >> 2] | 0) + 4 | 0) >> 2]); + HEAPF32[($8 + 1512 | 0) >> 2] = Math_fround(HEAPF32[($8 + 2408 | 0) >> 2]); + btVector3__btVector3_28_29($8 + 1288 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 1272 | 0 | 0) | 0; + $206 = HEAP32[($8 + 2428 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$206 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($206, $8 + 1604 | 0, $8 + 1288 | 0, $8 + 1272 | 0); + btBvhTriangleMeshShape__performConvexcast_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29(HEAP32[($8 + 1764 | 0) >> 2] | 0 | 0, $8 + 1304 | 0 | 0, $8 + 1684 | 0 | 0, $8 + 1668 | 0 | 0, $8 + 1288 | 0 | 0, $8 + 1272 | 0 | 0); + btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__BridgeTriangleConvexcastCallback___BridgeTriangleConvexcastCallback_28_29($8 + 1304 | 0 | 0) | 0; + break label$8; + } + label$10 : { + label$11 : { + if (!((btCollisionShape__getShapeType_28_29_20const(HEAP32[($8 + 2404 | 0) >> 2] | 0 | 0) | 0 | 0) == (28 | 0) & 1 | 0)) { + break label$11 + } + btConvexCast__CastResult__CastResult_28_29($8 + 1096 | 0 | 0) | 0; + HEAPF32[($8 + 1268 | 0) >> 2] = Math_fround(HEAPF32[($8 + 2408 | 0) >> 2]); + HEAPF32[($8 + 1260 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($8 + 2412 | 0) >> 2] | 0) + 4 | 0) >> 2]); + HEAP32[($8 + 1092 | 0) >> 2] = HEAP32[($8 + 2404 | 0) >> 2] | 0; + btContinuousConvexCollision__btContinuousConvexCollision_28btConvexShape_20const__2c_20btStaticPlaneShape_20const__29($8 + 1068 | 0 | 0, HEAP32[($8 + 2428 | 0) >> 2] | 0 | 0, HEAP32[($8 + 1092 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($8 + 1064 | 0) >> 2] = $8 + 1068 | 0; + $260 = HEAP32[($8 + 1064 | 0) >> 2] | 0; + label$12 : { + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$260 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($260, HEAP32[($8 + 2424 | 0) >> 2] | 0, HEAP32[($8 + 2420 | 0) >> 2] | 0, HEAP32[($8 + 2400 | 0) >> 2] | 0, HEAP32[($8 + 2400 | 0) >> 2] | 0, $8 + 1096 | 0) | 0) & 1 | 0)) { + break label$12 + } + label$13 : { + if (!(Math_fround(btVector3__length2_28_29_20const(($8 + 1096 | 0) + 132 | 0 | 0)) > Math_fround(9.999999747378752e-05) & 1 | 0)) { + break label$13 + } + label$14 : { + if (!(Math_fround(HEAPF32[($8 + 1260 | 0) >> 2]) < Math_fround(HEAPF32[((HEAP32[($8 + 2412 | 0) >> 2] | 0) + 4 | 0) >> 2]) & 1 | 0)) { + break label$14 + } + btVector3__normalize_28_29(($8 + 1096 | 0) + 132 | 0 | 0) | 0; + HEAP32[($8 + 1060 | 0) >> 2] = HEAP32[($8 + 2404 | 0) >> 2] | 0; + btCollisionWorld__LocalConvexResult__LocalConvexResult_28btCollisionObject_20const__2c_20btCollisionWorld__LocalShapeInfo__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_29($8 + 1008 | 0 | 0, btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($8 + 2416 | 0) >> 2] | 0 | 0) | 0 | 0, $8 + 1052 | 0 | 0, ($8 + 1096 | 0) + 132 | 0 | 0, ($8 + 1096 | 0) + 148 | 0 | 0, Math_fround(Math_fround(HEAPF32[($8 + 1260 | 0) >> 2]))) | 0; + HEAP8[($8 + 1007 | 0) >> 0] = 1; + $315 = HEAP32[($8 + 2412 | 0) >> 2] | 0; + Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$315 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($315, $8 + 1008 | 0, (HEAPU8[($8 + 1007 | 0) >> 0] | 0) & 1 | 0)); + } + } + } + btContinuousConvexCollision___btContinuousConvexCollision_28_29($8 + 1068 | 0 | 0) | 0; + btConvexCast__CastResult___CastResult_28_29($8 + 1096 | 0 | 0) | 0; + break label$10; + } + HEAP32[($8 + 1e3 | 0) >> 2] = HEAP32[($8 + 2404 | 0) >> 2] | 0; + btTransform__inverse_28_29_20const($8 + 936 | 0 | 0, HEAP32[($8 + 2400 | 0) >> 2] | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($8 + 920 | 0 | 0, $8 + 936 | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($8 + 2424 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($8 + 904 | 0 | 0, $8 + 936 | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($8 + 2420 | 0) >> 2] | 0 | 0) | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btMatrix3x3_20const__29($8 + 792 | 0 | 0, btTransform__getBasis_28_29($8 + 936 | 0 | 0) | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 2420 | 0) >> 2] | 0 | 0) | 0 | 0); + HEAPF32[($8 + 772 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 768 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 764 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 776 | 0 | 0, $8 + 772 | 0 | 0, $8 + 768 | 0 | 0, $8 + 764 | 0 | 0) | 0; + btTransform__btTransform_28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 840 | 0 | 0, $8 + 792 | 0 | 0, $8 + 776 | 0 | 0) | 0; + btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__BridgeTriangleConvexcastCallback__BridgeTriangleConvexcastCallback_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20btCollisionObject_20const__2c_20btConcaveShape__2c_20btTransform_20const__29($8 + 540 | 0 | 0, HEAP32[($8 + 2428 | 0) >> 2] | 0 | 0, HEAP32[($8 + 2424 | 0) >> 2] | 0 | 0, HEAP32[($8 + 2420 | 0) >> 2] | 0 | 0, HEAP32[($8 + 2412 | 0) >> 2] | 0 | 0, btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($8 + 2416 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($8 + 1e3 | 0) >> 2] | 0 | 0, HEAP32[($8 + 2400 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($8 + 740 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($8 + 2412 | 0) >> 2] | 0) + 4 | 0) >> 2]); + HEAPF32[($8 + 748 | 0) >> 2] = Math_fround(HEAPF32[($8 + 2408 | 0) >> 2]); + btVector3__btVector3_28_29($8 + 524 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 508 | 0 | 0) | 0; + $407 = HEAP32[($8 + 2428 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$407 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($407, $8 + 840 | 0, $8 + 524 | 0, $8 + 508 | 0); + $419 = 8; + i64toi32_i32$2 = ($8 + 920 | 0) + $419 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1506 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 488 | 0) + $419 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1506; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 920 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 924 | 0) >> 2] | 0; + $1510 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 488 | 0) >> 2] = $1510; + HEAP32[($8 + 492 | 0) >> 2] = i64toi32_i32$0; + btVector3__setMin_28btVector3_20const__29($8 + 488 | 0 | 0, $8 + 904 | 0 | 0); + $434 = 8; + i64toi32_i32$2 = ($8 + 920 | 0) + $434 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1536 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 472 | 0) + $434 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1536; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 920 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 924 | 0) >> 2] | 0; + $1540 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 472 | 0) >> 2] = $1540; + HEAP32[($8 + 476 | 0) >> 2] = i64toi32_i32$0; + btVector3__setMax_28btVector3_20const__29($8 + 472 | 0 | 0, $8 + 904 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($8 + 488 | 0 | 0, $8 + 524 | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($8 + 472 | 0 | 0, $8 + 508 | 0 | 0) | 0; + $461 = HEAP32[($8 + 1e3 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$461 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($461, $8 + 540 | 0, $8 + 488 | 0, $8 + 472 | 0); + btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__BridgeTriangleConvexcastCallback___BridgeTriangleConvexcastCallback_28_29_1($8 + 540 | 0 | 0) | 0; + } + } + break label$6; + } + label$15 : { + if (!((btCollisionShape__isCompound_28_29_20const(HEAP32[($8 + 2404 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$15 + } + CProfileSample__CProfileSample_28char_20const__29($8 + 471 | 0 | 0, 82213 | 0) | 0; + HEAP32[($8 + 464 | 0) >> 2] = HEAP32[($8 + 2404 | 0) >> 2] | 0; + btVector3__btVector3_28_29($8 + 448 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 432 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 416 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 400 | 0 | 0) | 0; + $497 = HEAP32[($8 + 2428 | 0) >> 2] | 0; + btTransform__inverse_28_29_20const($8 + 272 | 0 | 0, HEAP32[($8 + 2400 | 0) >> 2] | 0 | 0); + btTransform__operator__28btTransform_20const__29_20const($8 + 336 | 0 | 0, $8 + 272 | 0 | 0, HEAP32[($8 + 2424 | 0) >> 2] | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$497 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($497, $8 + 336 | 0, $8 + 448 | 0, $8 + 432 | 0); + $520 = HEAP32[($8 + 2428 | 0) >> 2] | 0; + btTransform__inverse_28_29_20const($8 + 144 | 0 | 0, HEAP32[($8 + 2400 | 0) >> 2] | 0 | 0); + btTransform__operator__28btTransform_20const__29_20const($8 + 208 | 0 | 0, $8 + 144 | 0 | 0, HEAP32[($8 + 2420 | 0) >> 2] | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$520 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($520, $8 + 208 | 0, $8 + 416 | 0, $8 + 400 | 0); + btVector3__setMin_28btVector3_20const__29($8 + 448 | 0 | 0, $8 + 416 | 0 | 0); + btVector3__setMax_28btVector3_20const__29($8 + 432 | 0 | 0, $8 + 400 | 0 | 0); + btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__btCompoundLeafCallback__btCompoundLeafCallback_28btCollisionObjectWrapper_20const__2c_20btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20float_2c_20btCompoundShape_20const__2c_20btTransform_20const__2c_20btCollisionWorld__ConvexResultCallback__29($8 + 108 | 0 | 0, HEAP32[($8 + 2416 | 0) >> 2] | 0 | 0, HEAP32[($8 + 2428 | 0) >> 2] | 0 | 0, HEAP32[($8 + 2424 | 0) >> 2] | 0 | 0, HEAP32[($8 + 2420 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($8 + 2408 | 0) >> 2])), HEAP32[($8 + 464 | 0) >> 2] | 0 | 0, HEAP32[($8 + 2400 | 0) >> 2] | 0 | 0, HEAP32[($8 + 2412 | 0) >> 2] | 0 | 0) | 0; + (wasm2js_i32$0 = $8, wasm2js_i32$1 = btCompoundShape__getDynamicAabbTree_28_29_20const(HEAP32[($8 + 464 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 104 | 0) >> 2] = wasm2js_i32$1; + label$16 : { + label$17 : { + if (!((HEAP32[($8 + 104 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$17 + } + btDbvtAabbMm__FromMM_28btVector3_20const__2c_20btVector3_20const__29($8 + 72 | 0 | 0, $8 + 448 | 0 | 0, $8 + 432 | 0 | 0); + btDbvt__collideTV_28btDbvtNode_20const__2c_20btDbvtAabbMm_20const__2c_20btDbvt__ICollide__29_20const(HEAP32[($8 + 104 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[($8 + 104 | 0) >> 2] | 0) >> 2] | 0 | 0, $8 + 72 | 0 | 0, $8 + 108 | 0 | 0); + break label$16; + } + HEAP32[($8 + 68 | 0) >> 2] = 0; + label$18 : { + label$19 : while (1) { + if (!((HEAP32[($8 + 68 | 0) >> 2] | 0 | 0) < (btCompoundShape__getNumChildShapes_28_29_20const(HEAP32[($8 + 464 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$18 + } + (wasm2js_i32$0 = $8, wasm2js_i32$1 = btCompoundShape__getChildShape_28int_29_20const(HEAP32[($8 + 464 | 0) >> 2] | 0 | 0, HEAP32[($8 + 68 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 64 | 0) >> 2] = wasm2js_i32$1; + btTransform__btTransform_28btTransform_20const__29($8 | 0, btCompoundShape__getChildTransform_28int_29_20const(HEAP32[($8 + 464 | 0) >> 2] | 0 | 0, HEAP32[($8 + 68 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__btCompoundLeafCallback__ProcessChild_28int_2c_20btTransform_20const__2c_20btCollisionShape_20const__29($8 + 108 | 0 | 0, HEAP32[($8 + 68 | 0) >> 2] | 0 | 0, $8 | 0, HEAP32[($8 + 64 | 0) >> 2] | 0 | 0); + HEAP32[($8 + 68 | 0) >> 2] = (HEAP32[($8 + 68 | 0) >> 2] | 0) + 1 | 0; + continue label$19; + }; + } + } + btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__btCompoundLeafCallback___btCompoundLeafCallback_28_29($8 + 108 | 0 | 0) | 0; + CProfileSample___CProfileSample_28_29($8 + 471 | 0 | 0) | 0; + } + } + } + __stack_pointer = $8 + 2432 | 0; + return; + } + + function btGjkEpaPenetrationDepthSolver__btGjkEpaPenetrationDepthSolver_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConvexPenetrationDepthSolver__btConvexPenetrationDepthSolver_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 101400 + 8 | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCollisionWorld__LocalConvexResult__LocalConvexResult_28btCollisionObject_20const__2c_20btCollisionWorld__LocalShapeInfo__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = Math_fround($5); + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $8 = 0, $9 = 0, $13 = 0, $16 = 0, $21 = 0, $24 = 0, $63 = 0, $73 = 0, $82 = 0, $92 = 0; + $8 = __stack_pointer - 32 | 0; + HEAP32[($8 + 28 | 0) >> 2] = $0; + HEAP32[($8 + 24 | 0) >> 2] = $1; + HEAP32[($8 + 20 | 0) >> 2] = $2; + HEAP32[($8 + 16 | 0) >> 2] = $3; + HEAP32[($8 + 12 | 0) >> 2] = $4; + HEAPF32[($8 + 8 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 28 | 0) >> 2] | 0; + HEAP32[$9 >> 2] = HEAP32[($8 + 24 | 0) >> 2] | 0; + HEAP32[($9 + 4 | 0) >> 2] = HEAP32[($8 + 20 | 0) >> 2] | 0; + $13 = $9 + 8 | 0; + i64toi32_i32$2 = HEAP32[($8 + 16 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $63 = i64toi32_i32$0; + i64toi32_i32$0 = $13; + HEAP32[i64toi32_i32$0 >> 2] = $63; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $16 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $16 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $73 = i64toi32_i32$1; + i64toi32_i32$1 = $13 + $16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $73; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $21 = $9 + 24 | 0; + i64toi32_i32$2 = HEAP32[($8 + 12 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $82 = i64toi32_i32$0; + i64toi32_i32$0 = $21; + HEAP32[i64toi32_i32$0 >> 2] = $82; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $24 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $24 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $92 = i64toi32_i32$1; + i64toi32_i32$1 = $21 + $24 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $92; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($9 + 40 | 0) >> 2] = Math_fround(HEAPF32[($8 + 8 | 0) >> 2]); + return $9 | 0; + } + + function btContinuousConvexCollision___btContinuousConvexCollision_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConvexCast___btConvexCast_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btGjkEpaPenetrationDepthSolver___btGjkEpaPenetrationDepthSolver_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConvexPenetrationDepthSolver___btConvexPenetrationDepthSolver_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__BridgeTriangleConvexcastCallback__BridgeTriangleConvexcastCallback_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20btCollisionObject_20const__2c_20btTriangleMeshShape__2c_20btTransform_20const__29($0, $1, $2, $3, $4, $5, $6, $7) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + var $10 = 0, $11 = 0, $16 = 0; + $10 = __stack_pointer - 32 | 0; + __stack_pointer = $10; + HEAP32[($10 + 28 | 0) >> 2] = $0; + HEAP32[($10 + 24 | 0) >> 2] = $1; + HEAP32[($10 + 20 | 0) >> 2] = $2; + HEAP32[($10 + 16 | 0) >> 2] = $3; + HEAP32[($10 + 12 | 0) >> 2] = $4; + HEAP32[($10 + 8 | 0) >> 2] = $5; + HEAP32[($10 + 4 | 0) >> 2] = $6; + HEAP32[$10 >> 2] = $7; + $11 = HEAP32[($10 + 28 | 0) >> 2] | 0; + $16 = HEAP32[($10 + 4 | 0) >> 2] | 0; + btTriangleConvexcastCallback__btTriangleConvexcastCallback_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20float_29($11 | 0, HEAP32[($10 + 24 | 0) >> 2] | 0 | 0, HEAP32[($10 + 20 | 0) >> 2] | 0 | 0, HEAP32[($10 + 16 | 0) >> 2] | 0 | 0, HEAP32[$10 >> 2] | 0 | 0, Math_fround(Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$16 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($16)))) | 0; + HEAP32[$11 >> 2] = 92360 + 8 | 0; + HEAP32[($11 + 212 | 0) >> 2] = HEAP32[($10 + 12 | 0) >> 2] | 0; + HEAP32[($11 + 216 | 0) >> 2] = HEAP32[($10 + 8 | 0) >> 2] | 0; + HEAP32[($11 + 220 | 0) >> 2] = HEAP32[($10 + 4 | 0) >> 2] | 0; + __stack_pointer = $10 + 32 | 0; + return $11 | 0; + } + + function btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__BridgeTriangleConvexcastCallback___BridgeTriangleConvexcastCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btTriangleConvexcastCallback___btTriangleConvexcastCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__BridgeTriangleConvexcastCallback__BridgeTriangleConvexcastCallback_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20btCollisionObject_20const__2c_20btConcaveShape__2c_20btTransform_20const__29($0, $1, $2, $3, $4, $5, $6, $7) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + var $10 = 0, $11 = 0, $16 = 0; + $10 = __stack_pointer - 32 | 0; + __stack_pointer = $10; + HEAP32[($10 + 28 | 0) >> 2] = $0; + HEAP32[($10 + 24 | 0) >> 2] = $1; + HEAP32[($10 + 20 | 0) >> 2] = $2; + HEAP32[($10 + 16 | 0) >> 2] = $3; + HEAP32[($10 + 12 | 0) >> 2] = $4; + HEAP32[($10 + 8 | 0) >> 2] = $5; + HEAP32[($10 + 4 | 0) >> 2] = $6; + HEAP32[$10 >> 2] = $7; + $11 = HEAP32[($10 + 28 | 0) >> 2] | 0; + $16 = HEAP32[($10 + 4 | 0) >> 2] | 0; + btTriangleConvexcastCallback__btTriangleConvexcastCallback_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20float_29($11 | 0, HEAP32[($10 + 24 | 0) >> 2] | 0 | 0, HEAP32[($10 + 20 | 0) >> 2] | 0 | 0, HEAP32[($10 + 16 | 0) >> 2] | 0 | 0, HEAP32[$10 >> 2] | 0 | 0, Math_fround(Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$16 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($16)))) | 0; + HEAP32[$11 >> 2] = 92572 + 8 | 0; + HEAP32[($11 + 212 | 0) >> 2] = HEAP32[($10 + 12 | 0) >> 2] | 0; + HEAP32[($11 + 216 | 0) >> 2] = HEAP32[($10 + 8 | 0) >> 2] | 0; + HEAP32[($11 + 220 | 0) >> 2] = HEAP32[($10 + 4 | 0) >> 2] | 0; + __stack_pointer = $10 + 32 | 0; + return $11 | 0; + } + + function btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__BridgeTriangleConvexcastCallback___BridgeTriangleConvexcastCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btTriangleConvexcastCallback___btTriangleConvexcastCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__btCompoundLeafCallback__btCompoundLeafCallback_28btCollisionObjectWrapper_20const__2c_20btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20float_2c_20btCompoundShape_20const__2c_20btTransform_20const__2c_20btCollisionWorld__ConvexResultCallback__29($0, $1, $2, $3, $4, $5, $6, $7, $8) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = Math_fround($5); + $6 = $6 | 0; + $7 = $7 | 0; + $8 = $8 | 0; + var $11 = 0, $12 = 0; + $11 = __stack_pointer - 48 | 0; + __stack_pointer = $11; + HEAP32[($11 + 44 | 0) >> 2] = $0; + HEAP32[($11 + 40 | 0) >> 2] = $1; + HEAP32[($11 + 36 | 0) >> 2] = $2; + HEAP32[($11 + 32 | 0) >> 2] = $3; + HEAP32[($11 + 28 | 0) >> 2] = $4; + HEAPF32[($11 + 24 | 0) >> 2] = $5; + HEAP32[($11 + 20 | 0) >> 2] = $6; + HEAP32[($11 + 16 | 0) >> 2] = $7; + HEAP32[($11 + 12 | 0) >> 2] = $8; + $12 = HEAP32[($11 + 44 | 0) >> 2] | 0; + btDbvt__ICollide__ICollide_28_29($12 | 0) | 0; + HEAP32[$12 >> 2] = 92788 + 8 | 0; + HEAP32[($12 + 4 | 0) >> 2] = HEAP32[($11 + 40 | 0) >> 2] | 0; + HEAP32[($12 + 8 | 0) >> 2] = HEAP32[($11 + 36 | 0) >> 2] | 0; + HEAP32[($12 + 12 | 0) >> 2] = HEAP32[($11 + 32 | 0) >> 2] | 0; + HEAP32[($12 + 16 | 0) >> 2] = HEAP32[($11 + 28 | 0) >> 2] | 0; + HEAPF32[($12 + 20 | 0) >> 2] = Math_fround(HEAPF32[($11 + 24 | 0) >> 2]); + HEAP32[($12 + 24 | 0) >> 2] = HEAP32[($11 + 20 | 0) >> 2] | 0; + HEAP32[($12 + 28 | 0) >> 2] = HEAP32[($11 + 16 | 0) >> 2] | 0; + HEAP32[($12 + 32 | 0) >> 2] = HEAP32[($11 + 12 | 0) >> 2] | 0; + __stack_pointer = $11 + 48 | 0; + return $12 | 0; + } + + function btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__btCompoundLeafCallback__ProcessChild_28int_2c_20btTransform_20const__2c_20btCollisionShape_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 144 | 0; + __stack_pointer = $6; + HEAP32[($6 + 140 | 0) >> 2] = $0; + HEAP32[($6 + 136 | 0) >> 2] = $1; + HEAP32[($6 + 132 | 0) >> 2] = $2; + HEAP32[($6 + 128 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 140 | 0) >> 2] | 0; + btTransform__operator__28btTransform_20const__29_20const($6 + 64 | 0 | 0, HEAP32[($7 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6 + 132 | 0) >> 2] | 0 | 0); + btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__btCompoundLeafCallback__ProcessChild_28int_2c_20btTransform_20const__2c_20btCollisionShape_20const__29__LocalInfoAdder__LocalInfoAdder_28int_2c_20btCollisionWorld__ConvexResultCallback__2c_20btCollisionShape_20const__29($6 + 32 | 0 | 0, HEAP32[($6 + 136 | 0) >> 2] | 0 | 0, HEAP32[($7 + 32 | 0) >> 2] | 0 | 0, HEAP32[($6 + 128 | 0) >> 2] | 0 | 0) | 0; + btCollisionObjectWrapper__btCollisionObjectWrapper_28btCollisionObjectWrapper_20const__2c_20btCollisionShape_20const__2c_20btCollisionObject_20const__2c_20btTransform_20const__2c_20int_2c_20int_29($6 + 8 | 0 | 0, HEAP32[($7 + 4 | 0) >> 2] | 0 | 0, HEAP32[($6 + 128 | 0) >> 2] | 0 | 0, btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 4 | 0) >> 2] | 0 | 0) | 0 | 0, $6 + 64 | 0 | 0, -1 | 0, HEAP32[($6 + 136 | 0) >> 2] | 0 | 0) | 0; + btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0, HEAP32[($7 + 12 | 0) >> 2] | 0 | 0, HEAP32[($7 + 16 | 0) >> 2] | 0 | 0, $6 + 8 | 0 | 0, $6 + 32 | 0 | 0, Math_fround(Math_fround(HEAPF32[($7 + 20 | 0) >> 2]))); + btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__btCompoundLeafCallback__ProcessChild_28int_2c_20btTransform_20const__2c_20btCollisionShape_20const__29__LocalInfoAdder___LocalInfoAdder_28_29($6 + 32 | 0 | 0) | 0; + __stack_pointer = $6 + 144 | 0; + return; + } + + function btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__btCompoundLeafCallback___btCompoundLeafCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btDbvt__ICollide___ICollide_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConvexPenetrationDepthSolver__btConvexPenetrationDepthSolver_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 92296 + 8 | 0; + return $4 | 0; + } + + function btConvexPenetrationDepthSolver___btConvexPenetrationDepthSolver_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btTriangleConvexcastCallback___btTriangleConvexcastCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btTriangleCallback___btTriangleCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__btCompoundLeafCallback__ProcessChild_28int_2c_20btTransform_20const__2c_20btCollisionShape_20const__29__LocalInfoAdder__LocalInfoAdder_28int_2c_20btCollisionWorld__ConvexResultCallback__2c_20btCollisionShape_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btCollisionWorld__ConvexResultCallback__ConvexResultCallback_28_29($7 | 0) | 0; + HEAP32[$7 >> 2] = 93004 + 8 | 0; + HEAP32[($7 + 20 | 0) >> 2] = HEAP32[$6 >> 2] | 0; + HEAP32[($7 + 24 | 0) >> 2] = HEAP32[($6 + 4 | 0) >> 2] | 0; + HEAP32[($7 + 28 | 0) >> 2] = HEAP32[($6 + 8 | 0) >> 2] | 0; + HEAPF32[($7 + 4 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($7 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2]); + __stack_pointer = $6 + 16 | 0; + return $7 | 0; + } + + function btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__btCompoundLeafCallback__ProcessChild_28int_2c_20btTransform_20const__2c_20btCollisionShape_20const__29__LocalInfoAdder___LocalInfoAdder_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionWorld__ConvexResultCallback___ConvexResultCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCollisionWorld__rayTest_28btVector3_20const__2c_20btVector3_20const__2c_20btCollisionWorld__RayResultCallback__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $14 = 0, $15 = 0, $16 = 0; + $6 = __stack_pointer - 304 | 0; + __stack_pointer = $6; + HEAP32[($6 + 300 | 0) >> 2] = $0; + HEAP32[($6 + 296 | 0) >> 2] = $1; + HEAP32[($6 + 292 | 0) >> 2] = $2; + HEAP32[($6 + 288 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 300 | 0) >> 2] | 0; + btSingleRayCallback__btSingleRayCallback_28btVector3_20const__2c_20btVector3_20const__2c_20btCollisionWorld_20const__2c_20btCollisionWorld__RayResultCallback__29($6 + 68 | 0 | 0, HEAP32[($6 + 296 | 0) >> 2] | 0 | 0, HEAP32[($6 + 292 | 0) >> 2] | 0 | 0, $7 | 0, HEAP32[($6 + 288 | 0) >> 2] | 0 | 0) | 0; + $14 = HEAP32[($7 + 68 | 0) >> 2] | 0; + $15 = HEAP32[($6 + 296 | 0) >> 2] | 0; + $16 = HEAP32[($6 + 292 | 0) >> 2] | 0; + HEAPF32[($6 + 48 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 44 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 40 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 52 | 0 | 0, $6 + 48 | 0 | 0, $6 + 44 | 0 | 0, $6 + 40 | 0 | 0) | 0; + HEAPF32[($6 + 20 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 16 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 12 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 24 | 0 | 0, $6 + 20 | 0 | 0, $6 + 16 | 0 | 0, $6 + 12 | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$14 >> 2] | 0) + 24 | 0) >> 2] | 0 | 0]($14, $15, $16, $6 + 68 | 0, $6 + 52 | 0, $6 + 24 | 0); + btSingleRayCallback___btSingleRayCallback_28_29($6 + 68 | 0 | 0) | 0; + __stack_pointer = $6 + 304 | 0; + return; + } + + function btSingleRayCallback__btSingleRayCallback_28btVector3_20const__2c_20btVector3_20const__2c_20btCollisionWorld_20const__2c_20btCollisionWorld__RayResultCallback__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $123 = 0, $13 = 0, $16 = 0, $21 = 0, $24 = 0, $67 = Math_fround(0), $90 = Math_fround(0), $113 = Math_fround(0), $128 = 0.0, $195 = 0, $205 = 0, $214 = 0, $224 = 0, $158 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$1 = 0; + $7 = __stack_pointer - 64 | 0; + __stack_pointer = $7; + HEAP32[($7 + 56 | 0) >> 2] = $0; + HEAP32[($7 + 52 | 0) >> 2] = $1; + HEAP32[($7 + 48 | 0) >> 2] = $2; + HEAP32[($7 + 44 | 0) >> 2] = $3; + HEAP32[($7 + 40 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 56 | 0) >> 2] | 0; + HEAP32[($7 + 60 | 0) >> 2] = $8; + btBroadphaseRayCallback__btBroadphaseRayCallback_28_29($8 | 0) | 0; + HEAP32[$8 >> 2] = 93264 + 8 | 0; + $13 = $8 + 36 | 0; + i64toi32_i32$2 = HEAP32[($7 + 52 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $195 = i64toi32_i32$0; + i64toi32_i32$0 = $13; + HEAP32[i64toi32_i32$0 >> 2] = $195; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $16 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $16 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $205 = i64toi32_i32$1; + i64toi32_i32$1 = $13 + $16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $205; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $21 = $8 + 52 | 0; + i64toi32_i32$2 = HEAP32[($7 + 48 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $214 = i64toi32_i32$0; + i64toi32_i32$0 = $21; + HEAP32[i64toi32_i32$0 >> 2] = $214; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $24 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $24 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $224 = i64toi32_i32$1; + i64toi32_i32$1 = $21 + $24 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $224; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btTransform__btTransform_28_29($8 + 68 | 0 | 0) | 0; + btTransform__btTransform_28_29($8 + 132 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 196 | 0 | 0) | 0; + HEAP32[($8 + 212 | 0) >> 2] = HEAP32[($7 + 44 | 0) >> 2] | 0; + HEAP32[($8 + 216 | 0) >> 2] = HEAP32[($7 + 40 | 0) >> 2] | 0; + btTransform__setIdentity_28_29($8 + 68 | 0 | 0); + btTransform__setOrigin_28btVector3_20const__29($8 + 68 | 0 | 0, $8 + 36 | 0 | 0); + btTransform__setIdentity_28_29($8 + 132 | 0 | 0); + btTransform__setOrigin_28btVector3_20const__29($8 + 132 | 0 | 0, $8 + 52 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($7 + 24 | 0 | 0, HEAP32[($7 + 48 | 0) >> 2] | 0 | 0, HEAP32[($7 + 52 | 0) >> 2] | 0 | 0); + btVector3__normalize_28_29($7 + 24 | 0 | 0) | 0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[(btVector3__operator_20float__28_29($7 + 24 | 0 | 0) | 0) >> 2]) == Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + $67 = Math_fround(999999984306749440.0); + break label$1; + } + $67 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[(btVector3__operator_20float__28_29($7 + 24 | 0 | 0) | 0) >> 2])); + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($8 + 4 | 0 | 0) | 0, wasm2js_f32$0 = $67), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + label$3 : { + label$4 : { + if (!(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($7 + 24 | 0 | 0) | 0) + 4 | 0) >> 2]) == Math_fround(0 | 0) & 1 | 0)) { + break label$4 + } + $90 = Math_fround(999999984306749440.0); + break label$3; + } + $90 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[((btVector3__operator_20float__28_29($7 + 24 | 0 | 0) | 0) + 4 | 0) >> 2])); + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($8 + 4 | 0 | 0) | 0, wasm2js_f32$0 = $90), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + label$5 : { + label$6 : { + if (!(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($7 + 24 | 0 | 0) | 0) + 8 | 0) >> 2]) == Math_fround(0 | 0) & 1 | 0)) { + break label$6 + } + $113 = Math_fround(999999984306749440.0); + break label$5; + } + $113 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[((btVector3__operator_20float__28_29($7 + 24 | 0 | 0) | 0) + 8 | 0) >> 2])); + } + $123 = $8 + 4 | 0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29($123 | 0) | 0, wasm2js_f32$0 = $113), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + $128 = 0.0; + (wasm2js_i32$0 = $8, wasm2js_i32$1 = +Math_fround(HEAPF32[(btVector3__operator_20float__28_29($123 | 0) | 0) >> 2]) < $128), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $8 + 24 | 0, wasm2js_i32$1 = +Math_fround(HEAPF32[((btVector3__operator_20float__28_29($123 | 0) | 0) + 4 | 0) >> 2]) < $128), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $8, wasm2js_i32$1 = +Math_fround(HEAPF32[((btVector3__operator_20float__28_29($123 | 0) | 0) + 8 | 0) >> 2]) < +(0 | 0) & 1 | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + operator__28btVector3_20const__2c_20btVector3_20const__29($7 + 8 | 0 | 0, $8 + 52 | 0 | 0, $8 + 36 | 0 | 0); + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($7 + 24 | 0 | 0, $7 + 8 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + $158 = HEAP32[($7 + 60 | 0) >> 2] | 0; + __stack_pointer = $7 + 64 | 0; + return $158 | 0; + } + + function btSingleRayCallback___btSingleRayCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btBroadphaseRayCallback___btBroadphaseRayCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btBroadphaseRayCallback__btBroadphaseRayCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btBroadphaseAabbCallback__btBroadphaseAabbCallback_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 93392 + 8 | 0; + btVector3__btVector3_28_29($4 + 4 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btBroadphaseRayCallback___btBroadphaseRayCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btBroadphaseAabbCallback___btBroadphaseAabbCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCollisionWorld__convexSweepTest_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29_20const($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = Math_fround($5); + var $8 = 0, $9 = 0, $117 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0, wasm2js_i32$4 = 0, wasm2js_i32$5 = 0, wasm2js_i32$6 = 0; + $8 = __stack_pointer - 528 | 0; + __stack_pointer = $8; + HEAP32[($8 + 524 | 0) >> 2] = $0; + HEAP32[($8 + 520 | 0) >> 2] = $1; + HEAP32[($8 + 516 | 0) >> 2] = $2; + HEAP32[($8 + 512 | 0) >> 2] = $3; + HEAP32[($8 + 508 | 0) >> 2] = $4; + HEAPF32[($8 + 504 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 524 | 0) >> 2] | 0; + CProfileSample__CProfileSample_28char_20const__29($8 + 503 | 0 | 0, 67439 | 0) | 0; + btTransform__btTransform_28_29($8 + 436 | 0 | 0) | 0; + btTransform__btTransform_28_29($8 + 372 | 0 | 0) | 0; + btTransform__operator__28btTransform_20const__29($8 + 436 | 0 | 0, HEAP32[($8 + 516 | 0) >> 2] | 0 | 0) | 0; + btTransform__operator__28btTransform_20const__29($8 + 372 | 0 | 0, HEAP32[($8 + 512 | 0) >> 2] | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 356 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 340 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 324 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 308 | 0 | 0) | 0; + btTransformUtil__calculateVelocity_28btTransform_20const__2c_20btTransform_20const__2c_20float_2c_20btVector3__2c_20btVector3__29($8 + 436 | 0 | 0, $8 + 372 | 0 | 0, Math_fround(Math_fround(1.0)), $8 + 324 | 0 | 0, $8 + 308 | 0 | 0); + btVector3__btVector3_28_29($8 + 292 | 0 | 0) | 0; + HEAPF32[($8 + 288 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 284 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 280 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 292 | 0 | 0, $8 + 288 | 0 | 0, $8 + 284 | 0 | 0, $8 + 280 | 0 | 0); + btTransform__btTransform_28_29($8 + 216 | 0 | 0) | 0; + btTransform__setIdentity_28_29($8 + 216 | 0 | 0); + btTransform__getRotation_28_29_20const($8 + 200 | 0 | 0, $8 + 436 | 0 | 0); + btTransform__setRotation_28btQuaternion_20const__29($8 + 216 | 0 | 0, $8 + 200 | 0 | 0); + btCollisionShape__calculateTemporalAabb_28btTransform_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20btVector3__2c_20btVector3__29_20const(HEAP32[($8 + 520 | 0) >> 2] | 0 | 0, $8 + 216 | 0 | 0, $8 + 292 | 0 | 0, $8 + 308 | 0 | 0, Math_fround(Math_fround(1.0)), $8 + 356 | 0 | 0, $8 + 340 | 0 | 0); + btSingleSweepCallback__btSingleSweepCallback_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionWorld_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29($8 + 4 | 0 | 0, HEAP32[($8 + 520 | 0) >> 2] | 0 | 0, HEAP32[($8 + 516 | 0) >> 2] | 0 | 0, HEAP32[($8 + 512 | 0) >> 2] | 0 | 0, $9 | 0, HEAP32[($8 + 508 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($8 + 504 | 0) >> 2]))) | 0; + $117 = HEAP32[($9 + 68 | 0) >> 2] | 0; + ((((((wasm2js_i32$1 = $117, wasm2js_i32$2 = btTransform__getOrigin_28_29($8 + 436 | 0 | 0) | 0), wasm2js_i32$3 = btTransform__getOrigin_28_29($8 + 372 | 0 | 0) | 0), wasm2js_i32$4 = $8 + 4 | 0), wasm2js_i32$5 = $8 + 356 | 0), wasm2js_i32$6 = $8 + 340 | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$117 >> 2] | 0) + 24 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0, wasm2js_i32$3 | 0, wasm2js_i32$4 | 0, wasm2js_i32$5 | 0, wasm2js_i32$6 | 0); + btSingleSweepCallback___btSingleSweepCallback_28_29($8 + 4 | 0 | 0) | 0; + CProfileSample___CProfileSample_28_29($8 + 503 | 0 | 0) | 0; + __stack_pointer = $8 + 528 | 0; + return; + } + + function btTransformUtil__calculateVelocity_28btTransform_20const__2c_20btTransform_20const__2c_20float_2c_20btVector3__2c_20btVector3__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $24 = 0, $26 = 0, $61 = 0, $63 = 0, $121 = 0, $134 = 0, $192 = 0, $205 = 0; + $7 = __stack_pointer - 112 | 0; + __stack_pointer = $7; + HEAP32[($7 + 108 | 0) >> 2] = $0; + HEAP32[($7 + 104 | 0) >> 2] = $1; + HEAPF32[($7 + 100 | 0) >> 2] = $2; + HEAP32[($7 + 96 | 0) >> 2] = $3; + HEAP32[($7 + 92 | 0) >> 2] = $4; + operator__28btVector3_20const__2c_20btVector3_20const__29($7 + 60 | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($7 + 104 | 0) >> 2] | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($7 + 108 | 0) >> 2] | 0 | 0) | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29_1($7 + 76 | 0 | 0, $7 + 60 | 0 | 0, $7 + 100 | 0 | 0); + $24 = HEAP32[($7 + 96 | 0) >> 2] | 0; + i64toi32_i32$2 = $7; + i64toi32_i32$0 = HEAP32[($7 + 76 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7 + 80 | 0) >> 2] | 0; + $121 = i64toi32_i32$0; + i64toi32_i32$0 = $24; + HEAP32[i64toi32_i32$0 >> 2] = $121; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $26 = 8; + i64toi32_i32$2 = ($7 + 76 | 0) + $26 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $134 = i64toi32_i32$1; + i64toi32_i32$1 = $24 + $26 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $134; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__btVector3_28_29($7 + 44 | 0 | 0) | 0; + btTransformUtil__calculateDiffAxisAngle_28btTransform_20const__2c_20btTransform_20const__2c_20btVector3__2c_20float__29(HEAP32[($7 + 108 | 0) >> 2] | 0 | 0, HEAP32[($7 + 104 | 0) >> 2] | 0 | 0, $7 + 44 | 0 | 0, $7 + 40 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($7 + 8 | 0 | 0, $7 + 44 | 0 | 0, $7 + 40 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29_1($7 + 24 | 0 | 0, $7 + 8 | 0 | 0, $7 + 100 | 0 | 0); + $61 = HEAP32[($7 + 92 | 0) >> 2] | 0; + i64toi32_i32$2 = $7; + i64toi32_i32$0 = HEAP32[($7 + 24 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7 + 28 | 0) >> 2] | 0; + $192 = i64toi32_i32$0; + i64toi32_i32$0 = $61; + HEAP32[i64toi32_i32$0 >> 2] = $192; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $63 = 8; + i64toi32_i32$2 = ($7 + 24 | 0) + $63 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $205 = i64toi32_i32$1; + i64toi32_i32$1 = $61 + $63 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $205; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $7 + 112 | 0; + return; + } + + function btTransform__getRotation_28_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btQuaternion__btQuaternion_28_29($0 | 0) | 0; + btMatrix3x3__getRotation_28btQuaternion__29_20const($5 | 0, $0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btSingleSweepCallback__btSingleSweepCallback_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionWorld_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29($0, $1, $2, $3, $4, $5, $6) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = Math_fround($6); + var $9 = 0, $10 = 0, $94 = 0, $48 = Math_fround(0), $67 = Math_fround(0), $86 = Math_fround(0), $99 = 0.0, $120 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$1 = 0; + $9 = __stack_pointer - 64 | 0; + __stack_pointer = $9; + HEAP32[($9 + 56 | 0) >> 2] = $0; + HEAP32[($9 + 52 | 0) >> 2] = $1; + HEAP32[($9 + 48 | 0) >> 2] = $2; + HEAP32[($9 + 44 | 0) >> 2] = $3; + HEAP32[($9 + 40 | 0) >> 2] = $4; + HEAP32[($9 + 36 | 0) >> 2] = $5; + HEAPF32[($9 + 32 | 0) >> 2] = $6; + $10 = HEAP32[($9 + 56 | 0) >> 2] | 0; + HEAP32[($9 + 60 | 0) >> 2] = $10; + btBroadphaseRayCallback__btBroadphaseRayCallback_28_29($10 | 0) | 0; + HEAP32[$10 >> 2] = 93432 + 8 | 0; + btTransform__btTransform_28btTransform_20const__29($10 + 36 | 0 | 0, HEAP32[($9 + 48 | 0) >> 2] | 0 | 0) | 0; + btTransform__btTransform_28btTransform_20const__29($10 + 100 | 0 | 0, HEAP32[($9 + 44 | 0) >> 2] | 0 | 0) | 0; + btVector3__btVector3_28_29($10 + 164 | 0 | 0) | 0; + HEAP32[($10 + 180 | 0) >> 2] = HEAP32[($9 + 40 | 0) >> 2] | 0; + HEAP32[($10 + 184 | 0) >> 2] = HEAP32[($9 + 36 | 0) >> 2] | 0; + HEAPF32[($10 + 188 | 0) >> 2] = Math_fround(HEAPF32[($9 + 32 | 0) >> 2]); + HEAP32[($10 + 192 | 0) >> 2] = HEAP32[($9 + 52 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($9 + 16 | 0 | 0, btTransform__getOrigin_28_29($10 + 100 | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29($10 + 36 | 0 | 0) | 0 | 0); + btVector3__normalized_28_29_20const($9 | 0, $9 + 16 | 0 | 0); + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[(btVector3__operator_20float__28_29($9 | 0) | 0) >> 2]) == Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + $48 = Math_fround(999999984306749440.0); + break label$1; + } + $48 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[(btVector3__operator_20float__28_29($9 | 0) | 0) >> 2])); + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($10 + 4 | 0 | 0) | 0, wasm2js_f32$0 = $48), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + label$3 : { + label$4 : { + if (!(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($9 | 0) | 0) + 4 | 0) >> 2]) == Math_fround(0 | 0) & 1 | 0)) { + break label$4 + } + $67 = Math_fround(999999984306749440.0); + break label$3; + } + $67 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[((btVector3__operator_20float__28_29($9 | 0) | 0) + 4 | 0) >> 2])); + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($10 + 4 | 0 | 0) | 0, wasm2js_f32$0 = $67), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + label$5 : { + label$6 : { + if (!(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($9 | 0) | 0) + 8 | 0) >> 2]) == Math_fround(0 | 0) & 1 | 0)) { + break label$6 + } + $86 = Math_fround(999999984306749440.0); + break label$5; + } + $86 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[((btVector3__operator_20float__28_29($9 | 0) | 0) + 8 | 0) >> 2])); + } + $94 = $10 + 4 | 0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29($94 | 0) | 0, wasm2js_f32$0 = $86), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + $99 = 0.0; + (wasm2js_i32$0 = $10, wasm2js_i32$1 = +Math_fround(HEAPF32[(btVector3__operator_20float__28_29($94 | 0) | 0) >> 2]) < $99), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $10 + 24 | 0, wasm2js_i32$1 = +Math_fround(HEAPF32[((btVector3__operator_20float__28_29($94 | 0) | 0) + 4 | 0) >> 2]) < $99), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $10, wasm2js_i32$1 = +Math_fround(HEAPF32[((btVector3__operator_20float__28_29($94 | 0) | 0) + 8 | 0) >> 2]) < +(0 | 0) & 1 | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $10, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($9 | 0, $9 + 16 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + $120 = HEAP32[($9 + 60 | 0) >> 2] | 0; + __stack_pointer = $9 + 64 | 0; + return $120 | 0; + } + + function btSingleSweepCallback___btSingleSweepCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btBroadphaseRayCallback___btBroadphaseRayCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btTransformUtil__calculateDiffAxisAngle_28btTransform_20const__2c_20btTransform_20const__2c_20btVector3__2c_20float__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $52 = 0, $54 = 0, $88 = 0, $90 = 0, $8 = 0, $35 = Math_fround(0), $206 = 0, $219 = 0, $280 = 0, $293 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 192 | 0; + __stack_pointer = $6; + HEAP32[($6 + 188 | 0) >> 2] = $0; + HEAP32[($6 + 184 | 0) >> 2] = $1; + HEAP32[($6 + 180 | 0) >> 2] = $2; + HEAP32[($6 + 176 | 0) >> 2] = $3; + $8 = btTransform__getBasis_28_29_20const(HEAP32[($6 + 184 | 0) >> 2] | 0 | 0) | 0; + btMatrix3x3__inverse_28_29_20const($6 + 80 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($6 + 188 | 0) >> 2] | 0 | 0) | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btMatrix3x3_20const__29($6 + 128 | 0 | 0, $8 | 0, $6 + 80 | 0 | 0); + btQuaternion__btQuaternion_28_29($6 + 64 | 0 | 0) | 0; + btMatrix3x3__getRotation_28btQuaternion__29_20const($6 + 128 | 0 | 0, $6 + 64 | 0 | 0); + btQuaternion__normalize_28_29($6 + 64 | 0 | 0) | 0; + $35 = Math_fround(btQuaternion__getAngle_28_29_20const($6 + 64 | 0 | 0)); + HEAPF32[(HEAP32[($6 + 176 | 0) >> 2] | 0) >> 2] = $35; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 48 | 0 | 0, btQuadWord__x_28_29_20const($6 + 64 | 0 | 0) | 0 | 0, btQuadWord__y_28_29_20const($6 + 64 | 0 | 0) | 0 | 0, btQuadWord__z_28_29_20const($6 + 64 | 0 | 0) | 0 | 0) | 0; + $52 = HEAP32[($6 + 180 | 0) >> 2] | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 48 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 52 | 0) >> 2] | 0; + $206 = i64toi32_i32$0; + i64toi32_i32$0 = $52; + HEAP32[i64toi32_i32$0 >> 2] = $206; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $54 = 8; + i64toi32_i32$2 = ($6 + 48 | 0) + $54 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $219 = i64toi32_i32$1; + i64toi32_i32$1 = $52 + $54 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $219; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($6 + 180 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const(HEAP32[($6 + 180 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($6 + 44 | 0) >> 2]) < Math_fround(1.4210854715202004e-14) & 1 | 0)) { + break label$2 + } + HEAPF32[($6 + 24 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($6 + 20 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 16 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 28 | 0 | 0, $6 + 24 | 0 | 0, $6 + 20 | 0 | 0, $6 + 16 | 0 | 0) | 0; + $88 = HEAP32[($6 + 180 | 0) >> 2] | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 28 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 32 | 0) >> 2] | 0; + $280 = i64toi32_i32$0; + i64toi32_i32$0 = $88; + HEAP32[i64toi32_i32$0 >> 2] = $280; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $90 = 8; + i64toi32_i32$2 = ($6 + 28 | 0) + $90 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $293 = i64toi32_i32$1; + i64toi32_i32$1 = $88 + $90 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $293; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$1; + } + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btSqrt_28float_29(Math_fround(Math_fround(HEAPF32[($6 + 44 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + btVector3__operator___28float_20const__29(HEAP32[($6 + 180 | 0) >> 2] | 0 | 0, $6 + 12 | 0 | 0) | 0; + } + __stack_pointer = $6 + 192 | 0; + return; + } + + function btQuaternion__btQuaternion_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btQuadWord__btQuadWord_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btVector3__normalized_28_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, $4 = 0, $5 = 0, $6 = 0, $18 = 0, $45 = 0, $49 = 0, $59 = 0, $69 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + $6 = 8; + i64toi32_i32$2 = $5 + $6 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $45 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 8 | 0) + $6 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $45; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $5; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $49 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[(i64toi32_i32$1 + 8 | 0) >> 2] = $49; + HEAP32[(i64toi32_i32$1 + 12 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = btVector3__normalize_28_29(i64toi32_i32$1 + 8 | 0 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $59 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $59; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $18 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $18 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $69 = i64toi32_i32$1; + i64toi32_i32$1 = $0 + $18 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $69; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $4 + 32 | 0; + return; + } + + function btBroadphaseAabbCallback__btBroadphaseAabbCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 93412 + 8 | 0; + return $4 | 0; + } + + function btBroadphaseAabbCallback___btBroadphaseAabbCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btCollisionWorld__debugDrawObject_28btTransform_20const__2c_20btCollisionShape_20const__2c_20btVector3_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $19 = 0, $27 = 0, $79 = 0, $88 = 0, $106 = 0, $112 = 0, $144 = 0, $173 = 0, $190 = 0, $201 = 0, $220 = 0, $236 = 0, $335 = 0, $379 = 0, $431 = 0, $471 = 0, $486 = 0, $512 = 0, $568 = 0, $631 = 0, $642 = 0, $147 = Math_fround(0), $439 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 976 | 0; + __stack_pointer = $6; + HEAP32[($6 + 972 | 0) >> 2] = $0; + HEAP32[($6 + 968 | 0) >> 2] = $1; + HEAP32[($6 + 964 | 0) >> 2] = $2; + HEAP32[($6 + 960 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 972 | 0) >> 2] | 0; + label$1 : { + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($7) | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + $19 = FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($7) | 0; + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$19 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($19) | 0) & 32768 | 0)) { + break label$1 + } + $27 = FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($7) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$27 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($27, HEAP32[($6 + 968 | 0) >> 2] | 0, Math_fround(.10000000149011612)); + } + label$2 : { + label$3 : { + if (!((btCollisionShape__getShapeType_28_29_20const(HEAP32[($6 + 964 | 0) >> 2] | 0 | 0) | 0 | 0) == (31 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6 + 956 | 0) >> 2] = HEAP32[($6 + 964 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = (btCompoundShape__getNumChildShapes_28_29_20const(HEAP32[($6 + 956 | 0) >> 2] | 0 | 0) | 0) - 1 | 0), HEAP32[(wasm2js_i32$0 + 952 | 0) >> 2] = wasm2js_i32$1; + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($6 + 952 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$4 + } + btTransform__btTransform_28btTransform_20const__29($6 + 888 | 0 | 0, btCompoundShape__getChildTransform_28int_29_20const(HEAP32[($6 + 956 | 0) >> 2] | 0 | 0, HEAP32[($6 + 952 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btCompoundShape__getChildShape_28int_29_20const(HEAP32[($6 + 956 | 0) >> 2] | 0 | 0, HEAP32[($6 + 952 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 884 | 0) >> 2] = wasm2js_i32$1; + btTransform__operator__28btTransform_20const__29_20const($6 + 820 | 0 | 0, HEAP32[($6 + 968 | 0) >> 2] | 0 | 0, $6 + 888 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($7, $6 + 820 | 0, HEAP32[($6 + 884 | 0) >> 2] | 0, HEAP32[($6 + 960 | 0) >> 2] | 0); + HEAP32[($6 + 952 | 0) >> 2] = (HEAP32[($6 + 952 | 0) >> 2] | 0) + -1 | 0; + continue label$5; + }; + } + break label$2; + } + $79 = btCollisionShape__getShapeType_28_29_20const(HEAP32[($6 + 964 | 0) >> 2] | 0 | 0) | 0; + label$6 : { + label$7 : { + switch ($79 | 0) { + case 0: + HEAP32[($6 + 816 | 0) >> 2] = HEAP32[($6 + 964 | 0) >> 2] | 0; + btBoxShape__getHalfExtentsWithMargin_28_29_20const($6 + 800 | 0 | 0, HEAP32[($6 + 816 | 0) >> 2] | 0 | 0); + $88 = FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($7) | 0; + operator__28btVector3_20const__29($6 + 784 | 0 | 0, $6 + 800 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$88 >> 2] | 0) + 80 | 0) >> 2] | 0 | 0]($88, $6 + 784 | 0, $6 + 800 | 0, HEAP32[($6 + 968 | 0) >> 2] | 0, HEAP32[($6 + 960 | 0) >> 2] | 0); + break label$6; + case 8: + HEAP32[($6 + 780 | 0) >> 2] = HEAP32[($6 + 964 | 0) >> 2] | 0; + $106 = HEAP32[($6 + 780 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$106 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($106))), HEAPF32[(wasm2js_i32$0 + 776 | 0) >> 2] = wasm2js_f32$0; + $112 = FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($7) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$112 >> 2] | 0) + 24 | 0) >> 2] | 0 | 0]($112, Math_fround(HEAPF32[($6 + 776 | 0) >> 2]), HEAP32[($6 + 968 | 0) >> 2] | 0, HEAP32[($6 + 960 | 0) >> 2] | 0); + break label$6; + case 9: + HEAP32[($6 + 772 | 0) >> 2] = HEAP32[($6 + 964 | 0) >> 2] | 0; + btTransform__btTransform_28_29($6 + 708 | 0 | 0) | 0; + btTransform__setIdentity_28_29($6 + 708 | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_i32$1 = (btMultiSphereShape__getSphereCount_28_29_20const(HEAP32[($6 + 772 | 0) >> 2] | 0 | 0) | 0) - 1 | 0), HEAP32[(wasm2js_i32$0 + 704 | 0) >> 2] = wasm2js_i32$1; + label$15 : { + label$16 : while (1) { + if (!((HEAP32[($6 + 704 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$15 + } + btTransform__setOrigin_28btVector3_20const__29($6 + 708 | 0 | 0, btMultiSphereShape__getSpherePosition_28int_29_20const(HEAP32[($6 + 772 | 0) >> 2] | 0 | 0, HEAP32[($6 + 704 | 0) >> 2] | 0 | 0) | 0 | 0); + $144 = FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($7) | 0; + $147 = Math_fround(btMultiSphereShape__getSphereRadius_28int_29_20const(HEAP32[($6 + 772 | 0) >> 2] | 0 | 0, HEAP32[($6 + 704 | 0) >> 2] | 0 | 0)); + btTransform__operator__28btTransform_20const__29_20const($6 + 640 | 0 | 0, HEAP32[($6 + 968 | 0) >> 2] | 0 | 0, $6 + 708 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$144 >> 2] | 0) + 24 | 0) >> 2] | 0 | 0]($144, $147, $6 + 640 | 0, HEAP32[($6 + 960 | 0) >> 2] | 0); + HEAP32[($6 + 704 | 0) >> 2] = (HEAP32[($6 + 704 | 0) >> 2] | 0) + -1 | 0; + continue label$16; + }; + } + break label$6; + case 10: + HEAP32[($6 + 636 | 0) >> 2] = HEAP32[($6 + 964 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btCapsuleShape__getRadius_28_29_20const(HEAP32[($6 + 636 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 632 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btCapsuleShape__getHalfHeight_28_29_20const(HEAP32[($6 + 636 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 628 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btCapsuleShape__getUpAxis_28_29_20const(HEAP32[($6 + 636 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 624 | 0) >> 2] = wasm2js_i32$1; + $173 = FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($7) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$173 >> 2] | 0) + 84 | 0) >> 2] | 0 | 0]($173, Math_fround(HEAPF32[($6 + 632 | 0) >> 2]), Math_fround(HEAPF32[($6 + 628 | 0) >> 2]), HEAP32[($6 + 624 | 0) >> 2] | 0, HEAP32[($6 + 968 | 0) >> 2] | 0, HEAP32[($6 + 960 | 0) >> 2] | 0); + break label$6; + case 11: + HEAP32[($6 + 620 | 0) >> 2] = HEAP32[($6 + 964 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btConeShape__getRadius_28_29_20const(HEAP32[($6 + 620 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 616 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btConeShape__getHeight_28_29_20const(HEAP32[($6 + 620 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 612 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btConeShape__getConeUpIndex_28_29_20const(HEAP32[($6 + 620 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 608 | 0) >> 2] = wasm2js_i32$1; + $190 = FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($7) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$190 >> 2] | 0) + 92 | 0) >> 2] | 0 | 0]($190, Math_fround(HEAPF32[($6 + 616 | 0) >> 2]), Math_fround(HEAPF32[($6 + 612 | 0) >> 2]), HEAP32[($6 + 608 | 0) >> 2] | 0, HEAP32[($6 + 968 | 0) >> 2] | 0, HEAP32[($6 + 960 | 0) >> 2] | 0); + break label$6; + case 13: + HEAP32[($6 + 604 | 0) >> 2] = HEAP32[($6 + 964 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btCylinderShape__getUpAxis_28_29_20const(HEAP32[($6 + 604 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 600 | 0) >> 2] = wasm2js_i32$1; + $201 = HEAP32[($6 + 604 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$201 >> 2] | 0) + 92 | 0) >> 2] | 0 | 0]($201))), HEAPF32[(wasm2js_i32$0 + 596 | 0) >> 2] = wasm2js_f32$0; + btCylinderShape__getHalfExtentsWithMargin_28_29_20const($6 + 576 | 0 | 0, HEAP32[($6 + 604 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 576 | 0 | 0) | 0) + ((HEAP32[($6 + 600 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 592 | 0) >> 2] = wasm2js_f32$0; + $220 = FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($7) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$220 >> 2] | 0) + 88 | 0) >> 2] | 0 | 0]($220, Math_fround(HEAPF32[($6 + 596 | 0) >> 2]), Math_fround(HEAPF32[($6 + 592 | 0) >> 2]), HEAP32[($6 + 600 | 0) >> 2] | 0, HEAP32[($6 + 968 | 0) >> 2] | 0, HEAP32[($6 + 960 | 0) >> 2] | 0); + break label$6; + case 28: + HEAP32[($6 + 572 | 0) >> 2] = HEAP32[($6 + 964 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(HEAPF32[(btStaticPlaneShape__getPlaneConstant_28_29_20const(HEAP32[($6 + 572 | 0) >> 2] | 0 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 568 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btStaticPlaneShape__getPlaneNormal_28_29_20const(HEAP32[($6 + 572 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 564 | 0) >> 2] = wasm2js_i32$1; + $236 = FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($7) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$236 >> 2] | 0) + 96 | 0) >> 2] | 0 | 0]($236, HEAP32[($6 + 564 | 0) >> 2] | 0, Math_fround(HEAPF32[($6 + 568 | 0) >> 2]), HEAP32[($6 + 968 | 0) >> 2] | 0, HEAP32[($6 + 960 | 0) >> 2] | 0); + break label$6; + default: + break label$7; + }; + } + label$17 : { + if (!((btCollisionShape__isPolyhedral_28_29_20const(HEAP32[($6 + 964 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$17 + } + HEAP32[($6 + 560 | 0) >> 2] = HEAP32[($6 + 964 | 0) >> 2] | 0; + label$18 : { + label$19 : { + if (!((btPolyhedralConvexShape__getConvexPolyhedron_28_29_20const(HEAP32[($6 + 560 | 0) >> 2] | 0 | 0) | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$19 + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btPolyhedralConvexShape__getConvexPolyhedron_28_29_20const(HEAP32[($6 + 560 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 552 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($6 + 556 | 0) >> 2] = 0; + label$20 : { + label$21 : while (1) { + if (!((HEAP32[($6 + 556 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btFace___size_28_29_20const((HEAP32[($6 + 552 | 0) >> 2] | 0) + 24 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$20 + } + HEAPF32[($6 + 532 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 528 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 524 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 536 | 0 | 0, $6 + 532 | 0 | 0, $6 + 528 | 0 | 0, $6 + 524 | 0 | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btAlignedObjectArray_int___size_28_29_20const(btAlignedObjectArray_btFace___operator_5b_5d_28int_29_20const((HEAP32[($6 + 552 | 0) >> 2] | 0) + 24 | 0 | 0, HEAP32[($6 + 556 | 0) >> 2] | 0 | 0) | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 520 | 0) >> 2] = wasm2js_i32$1; + label$22 : { + if (!(HEAP32[($6 + 520 | 0) >> 2] | 0)) { + break label$22 + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29_20const(btAlignedObjectArray_btFace___operator_5b_5d_28int_29_20const((HEAP32[($6 + 552 | 0) >> 2] | 0) + 24 | 0 | 0, HEAP32[($6 + 556 | 0) >> 2] | 0 | 0) | 0 | 0, (HEAP32[($6 + 520 | 0) >> 2] | 0) - 1 | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 516 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($6 + 512 | 0) >> 2] = 0; + label$23 : { + label$24 : while (1) { + if (!((HEAP32[($6 + 512 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_int___size_28_29_20const(btAlignedObjectArray_btFace___operator_5b_5d_28int_29_20const((HEAP32[($6 + 552 | 0) >> 2] | 0) + 24 | 0 | 0, HEAP32[($6 + 556 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$23 + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29_20const(btAlignedObjectArray_btFace___operator_5b_5d_28int_29_20const((HEAP32[($6 + 552 | 0) >> 2] | 0) + 24 | 0 | 0, HEAP32[($6 + 556 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($6 + 512 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 508 | 0) >> 2] = wasm2js_i32$1; + btVector3__operator___28btVector3_20const__29_1($6 + 536 | 0 | 0, btAlignedObjectArray_btVector3___operator_5b_5d_28int_29_20const((HEAP32[($6 + 552 | 0) >> 2] | 0) + 4 | 0 | 0, HEAP32[($6 + 508 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + $335 = FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($7) | 0; + btTransform__operator__28btVector3_20const__29_20const($6 + 492 | 0 | 0, HEAP32[($6 + 968 | 0) >> 2] | 0 | 0, btAlignedObjectArray_btVector3___operator_5b_5d_28int_29_20const((HEAP32[($6 + 552 | 0) >> 2] | 0) + 4 | 0 | 0, HEAP32[($6 + 516 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($6 + 476 | 0 | 0, HEAP32[($6 + 968 | 0) >> 2] | 0 | 0, btAlignedObjectArray_btVector3___operator_5b_5d_28int_29_20const((HEAP32[($6 + 552 | 0) >> 2] | 0) + 4 | 0 | 0, HEAP32[($6 + 508 | 0) >> 2] | 0 | 0) | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$335 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($335, $6 + 492 | 0, $6 + 476 | 0, HEAP32[($6 + 960 | 0) >> 2] | 0); + HEAP32[($6 + 516 | 0) >> 2] = HEAP32[($6 + 508 | 0) >> 2] | 0; + HEAP32[($6 + 512 | 0) >> 2] = (HEAP32[($6 + 512 | 0) >> 2] | 0) + 1 | 0; + continue label$24; + }; + } + } + HEAPF32[($6 + 472 | 0) >> 2] = Math_fround(Math_fround(1.0) / Math_fround(HEAP32[($6 + 520 | 0) >> 2] | 0 | 0)); + btVector3__operator___28float_20const__29_1($6 + 536 | 0 | 0, $6 + 472 | 0 | 0) | 0; + $379 = FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($7) | 0; + label$25 : { + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$379 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($379) | 0) & 16384 | 0)) { + break label$25 + } + HEAPF32[($6 + 452 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($6 + 448 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($6 + 444 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 456 | 0 | 0, $6 + 452 | 0 | 0, $6 + 448 | 0 | 0, $6 + 444 | 0 | 0) | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 428 | 0 | 0, (btAlignedObjectArray_btFace___operator_5b_5d_28int_29_20const((HEAP32[($6 + 552 | 0) >> 2] | 0) + 24 | 0 | 0, HEAP32[($6 + 556 | 0) >> 2] | 0 | 0) | 0) + 20 | 0 | 0, ((btAlignedObjectArray_btFace___operator_5b_5d_28int_29_20const((HEAP32[($6 + 552 | 0) >> 2] | 0) + 24 | 0 | 0, HEAP32[($6 + 556 | 0) >> 2] | 0 | 0) | 0) + 20 | 0) + 4 | 0 | 0, ((btAlignedObjectArray_btFace___operator_5b_5d_28int_29_20const((HEAP32[($6 + 552 | 0) >> 2] | 0) + 24 | 0 | 0, HEAP32[($6 + 556 | 0) >> 2] | 0 | 0) | 0) + 20 | 0) + 8 | 0 | 0) | 0; + $431 = FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($7) | 0; + btTransform__operator__28btVector3_20const__29_20const($6 + 412 | 0 | 0, HEAP32[($6 + 968 | 0) >> 2] | 0 | 0, $6 + 536 | 0 | 0); + $439 = HEAP32[($6 + 968 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 380 | 0 | 0, $6 + 536 | 0 | 0, $6 + 428 | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($6 + 396 | 0 | 0, $439 | 0, $6 + 380 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$431 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($431, $6 + 412 | 0, $6 + 396 | 0, $6 + 456 | 0); + } + HEAP32[($6 + 556 | 0) >> 2] = (HEAP32[($6 + 556 | 0) >> 2] | 0) + 1 | 0; + continue label$21; + }; + } + break label$18; + } + HEAP32[($6 + 556 | 0) >> 2] = 0; + label$26 : { + label$27 : while (1) { + $471 = HEAP32[($6 + 560 | 0) >> 2] | 0; + if (!((HEAP32[($6 + 556 | 0) >> 2] | 0 | 0) < (FUNCTION_TABLE[HEAP32[((HEAP32[$471 >> 2] | 0) + 100 | 0) >> 2] | 0 | 0]($471) | 0 | 0) & 1 | 0)) { + break label$26 + } + btVector3__btVector3_28_29($6 + 364 | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 348 | 0 | 0) | 0; + $486 = HEAP32[($6 + 560 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$486 >> 2] | 0) + 104 | 0) >> 2] | 0 | 0]($486, HEAP32[($6 + 556 | 0) >> 2] | 0, $6 + 364 | 0, $6 + 348 | 0); + btTransform__operator__28btVector3_20const__29_20const($6 + 332 | 0 | 0, HEAP32[($6 + 968 | 0) >> 2] | 0 | 0, $6 + 364 | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($6 + 316 | 0 | 0, HEAP32[($6 + 968 | 0) >> 2] | 0 | 0, $6 + 348 | 0 | 0); + $512 = FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($7) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$512 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($512, $6 + 332 | 0, $6 + 316 | 0, HEAP32[($6 + 960 | 0) >> 2] | 0); + HEAP32[($6 + 556 | 0) >> 2] = (HEAP32[($6 + 556 | 0) >> 2] | 0) + 1 | 0; + continue label$27; + }; + } + } + } + label$28 : { + if (!((btCollisionShape__isConcave_28_29_20const(HEAP32[($6 + 964 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$28 + } + HEAP32[($6 + 312 | 0) >> 2] = HEAP32[($6 + 964 | 0) >> 2] | 0; + HEAPF32[($6 + 292 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAPF32[($6 + 288 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAPF32[($6 + 284 | 0) >> 2] = Math_fround(999999984306749440.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 296 | 0 | 0, $6 + 292 | 0 | 0, $6 + 288 | 0 | 0, $6 + 284 | 0 | 0) | 0; + HEAPF32[($6 + 264 | 0) >> 2] = Math_fround(-999999984306749440.0); + HEAPF32[($6 + 260 | 0) >> 2] = Math_fround(-999999984306749440.0); + HEAPF32[($6 + 256 | 0) >> 2] = Math_fround(-999999984306749440.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 268 | 0 | 0, $6 + 264 | 0 | 0, $6 + 260 | 0 | 0, $6 + 256 | 0 | 0) | 0; + DebugDrawcallback__DebugDrawcallback_28btIDebugDraw__2c_20btTransform_20const__2c_20btVector3_20const__29($6 + 164 | 0 | 0, FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($7) | 0 | 0, HEAP32[($6 + 968 | 0) >> 2] | 0 | 0, HEAP32[($6 + 960 | 0) >> 2] | 0 | 0) | 0; + $568 = HEAP32[($6 + 312 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$568 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($568, $6 + 164 | 0, $6 + 268 | 0, $6 + 296 | 0); + DebugDrawcallback___DebugDrawcallback_28_29($6 + 164 | 0 | 0) | 0; + } + label$29 : { + if (!((btCollisionShape__getShapeType_28_29_20const(HEAP32[($6 + 964 | 0) >> 2] | 0 | 0) | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$29 + } + HEAP32[($6 + 160 | 0) >> 2] = HEAP32[($6 + 964 | 0) >> 2] | 0; + HEAPF32[($6 + 140 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAPF32[($6 + 136 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAPF32[($6 + 132 | 0) >> 2] = Math_fround(999999984306749440.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 144 | 0 | 0, $6 + 140 | 0 | 0, $6 + 136 | 0 | 0, $6 + 132 | 0 | 0) | 0; + HEAPF32[($6 + 112 | 0) >> 2] = Math_fround(-999999984306749440.0); + HEAPF32[($6 + 108 | 0) >> 2] = Math_fround(-999999984306749440.0); + HEAPF32[($6 + 104 | 0) >> 2] = Math_fround(-999999984306749440.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 116 | 0 | 0, $6 + 112 | 0 | 0, $6 + 108 | 0 | 0, $6 + 104 | 0 | 0) | 0; + DebugDrawcallback__DebugDrawcallback_28btIDebugDraw__2c_20btTransform_20const__2c_20btVector3_20const__29($6 + 12 | 0 | 0, FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($7) | 0 | 0, HEAP32[($6 + 968 | 0) >> 2] | 0 | 0, HEAP32[($6 + 960 | 0) >> 2] | 0 | 0) | 0; + $631 = btConvexTriangleMeshShape__getMeshInterface_28_29(HEAP32[($6 + 160 | 0) >> 2] | 0 | 0) | 0; + $642 = 0; + label$30 : { + if (($6 + 12 | 0 | 0) == (0 | 0) & 1 | 0) { + break label$30 + } + $642 = ($6 + 12 | 0) + 4 | 0; + } + FUNCTION_TABLE[HEAP32[((HEAP32[$631 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($631, $642, $6 + 116 | 0, $6 + 144 | 0); + DebugDrawcallback___DebugDrawcallback_28_29($6 + 12 | 0 | 0) | 0; + } + } + } + __stack_pointer = $6 + 976 | 0; + return; + } + + function btBoxShape__getHalfExtentsWithMargin_28_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $8 = 0, $50 = 0, $60 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + i64toi32_i32$2 = btBoxShape__getHalfExtentsWithoutMargin_28_29_20const($5 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $50 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $50; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $8 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $60 = i64toi32_i32$1; + i64toi32_i32$1 = $0 + $8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $60; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 12 | 0 | 0, $4 + 8 | 0 | 0, $4 + 4 | 0 | 0, $4 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($0 | 0, $4 + 12 | 0 | 0) | 0; + __stack_pointer = $4 + 32 | 0; + return; + } + + function btMultiSphereShape__getSphereCount_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $7 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $7 = btAlignedObjectArray_btVector3___size_28_29_20const((HEAP32[($3 + 12 | 0) >> 2] | 0) + 96 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $7 | 0; + } + + function btMultiSphereShape__getSpherePosition_28int_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $9 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29_20const((HEAP32[($4 + 12 | 0) >> 2] | 0) + 96 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $9 | 0; + } + + function btMultiSphereShape__getSphereRadius_28int_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $10 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $10 = Math_fround(HEAPF32[(btAlignedObjectArray_float___operator_5b_5d_28int_29_20const((HEAP32[($4 + 12 | 0) >> 2] | 0) + 116 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2]); + __stack_pointer = $4 + 16 | 0; + return Math_fround($10); + } + + function btCapsuleShape__getRadius_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $17 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[($3 + 8 | 0) >> 2] = ((HEAP32[($4 + 60 | 0) >> 2] | 0) + 2 | 0 | 0) % (3 | 0) | 0; + $17 = Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const($4 + 36 | 0 | 0) | 0) + ((HEAP32[($3 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + __stack_pointer = $3 + 16 | 0; + return Math_fround($17); + } + + function btCapsuleShape__getHalfHeight_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $12 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + $12 = Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const($4 + 36 | 0 | 0) | 0) + ((HEAP32[($4 + 60 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + __stack_pointer = $3 + 16 | 0; + return Math_fround($12); + } + + function btCapsuleShape__getUpAxis_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 60 | 0) >> 2] | 0 | 0; + } + + function btConeShape__getRadius_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 64 | 0) >> 2])); + } + + function btConeShape__getHeight_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 68 | 0) >> 2])); + } + + function btConeShape__getConeUpIndex_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 76 | 0) >> 2] | 0 | 0; + } + + function btCylinderShape__getUpAxis_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 60 | 0) >> 2] | 0 | 0; + } + + function btCylinderShape__getHalfExtentsWithMargin_28_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $8 = 0, $50 = 0, $60 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + i64toi32_i32$2 = btCylinderShape__getHalfExtentsWithoutMargin_28_29_20const($5 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $50 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $50; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $8 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $60 = i64toi32_i32$1; + i64toi32_i32$1 = $0 + $8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $60; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 12 | 0 | 0, $4 + 8 | 0 | 0, $4 + 4 | 0 | 0, $4 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($0 | 0, $4 + 12 | 0 | 0) | 0; + __stack_pointer = $4 + 32 | 0; + return; + } + + function btStaticPlaneShape__getPlaneConstant_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 72 | 0 | 0; + } + + function btCollisionShape__isPolyhedral_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $8 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $8 = (btBroadphaseProxy__isPolyhedral_28int_29(btCollisionShape__getShapeType_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) & 1 | 0; + __stack_pointer = $3 + 16 | 0; + return $8 | 0; + } + + function btPolyhedralConvexShape__getConvexPolyhedron_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 60 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btFace___size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btFace___operator_5b_5d_28int_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 176 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btFace___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 177 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($4 + 8 | 0) >> 2] | 0, 36) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btAlignedObjectArray_int___operator_5b_5d_28int_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 176 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_int___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 177 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 2 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btAlignedObjectArray_btVector3___operator_5b_5d_28int_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 176 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btVector3___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 177 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 4 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btVector3__operator___28float_20const__29_1($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAPF32[$5 >> 2] = Math_fround(Math_fround(HEAPF32[$5 >> 2]) * Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2])); + HEAPF32[($5 + 4 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]) * Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2])); + HEAPF32[($5 + 8 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 8 | 0) >> 2]) * Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2])); + return $5 | 0; + } + + function DebugDrawcallback__DebugDrawcallback_28btIDebugDraw__2c_20btTransform_20const__2c_20btVector3_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $18 = 0, $21 = 0, $74 = 0, $84 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btTriangleCallback__btTriangleCallback_28_29($7 | 0) | 0; + btInternalTriangleIndexCallback__btInternalTriangleIndexCallback_28_29($7 + 4 | 0 | 0) | 0; + HEAP32[$7 >> 2] = 93488 + 8 | 0; + HEAP32[($7 + 4 | 0) >> 2] = 93488 + 32 | 0; + HEAP32[($7 + 8 | 0) >> 2] = HEAP32[($6 + 8 | 0) >> 2] | 0; + $18 = $7 + 12 | 0; + i64toi32_i32$2 = HEAP32[$6 >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $74 = i64toi32_i32$0; + i64toi32_i32$0 = $18; + HEAP32[i64toi32_i32$0 >> 2] = $74; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $21 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $21 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $84 = i64toi32_i32$1; + i64toi32_i32$1 = $18 + $21 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $84; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btTransform__btTransform_28btTransform_20const__29($7 + 28 | 0 | 0, HEAP32[($6 + 4 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $6 + 16 | 0; + return $7 | 0; + } + + function DebugDrawcallback___DebugDrawcallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btInternalTriangleIndexCallback___btInternalTriangleIndexCallback_28_29($4 + 4 | 0 | 0) | 0; + btTriangleCallback___btTriangleCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConvexTriangleMeshShape__getMeshInterface_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 100 | 0) >> 2] | 0 | 0; + } + + function btBoxShape__getHalfExtentsWithoutMargin_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 36 | 0 | 0; + } + + function btAlignedObjectArray_float___operator_5b_5d_28int_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 176 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_float___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 177 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 2 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btCylinderShape__getHalfExtentsWithoutMargin_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 36 | 0 | 0; + } + + function btBroadphaseProxy__isPolyhedral_28int_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) < (7 | 0) & 1 | 0 | 0; + } + + function btTriangleCallback__btTriangleCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 100388 + 8 | 0; + return $4 | 0; + } + + function btInternalTriangleIndexCallback__btInternalTriangleIndexCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 100440 + 8 | 0; + return $4 | 0; + } + + function btCollisionWorld__debugDrawWorld_28_29($0) { + $0 = $0 | 0; + var $3 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $4 = 0, $142 = 0, $297 = 0, $16 = 0, $21 = 0, $29 = 0, $42 = 0, $54 = 0, $74 = 0, $100 = 0, $136 = 0, $154 = 0, $158 = 0, $159 = 0, $170 = 0, $171 = 0, $182 = 0, $183 = 0, $194 = 0, $195 = 0, $206 = 0, $207 = 0, $229 = 0, $258 = 0, $274 = 0, $275 = 0, $283 = 0, $331 = 0, $360 = 0, $738 = 0, $742 = 0, $762 = 0, $766 = 0, $786 = 0, $790 = 0, $810 = 0, $814 = 0, $834 = 0, $838 = 0, $881 = 0, $885 = 0, $973 = 0, $977 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$4 = 0, wasm2js_i32$5 = 0; + $3 = __stack_pointer - 320 | 0; + __stack_pointer = $3; + HEAP32[($3 + 316 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 316 | 0) >> 2] | 0; + label$1 : { + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($4) | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + $16 = FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($4) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$16 >> 2] | 0) + 100 | 0) >> 2] | 0 | 0]($16); + $21 = FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($4) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$21 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($3 + 188 | 0, $21); + $29 = FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($4) | 0; + label$2 : { + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$29 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($29) | 0) & 8 | 0)) { + break label$2 + } + label$3 : { + if (!((btCollisionWorld__getDispatcher_28_29($4 | 0) | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $42 = btCollisionWorld__getDispatcher_28_29($4 | 0) | 0; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$42 >> 2] | 0) + 36 | 0) >> 2] | 0 | 0]($42) | 0), HEAP32[(wasm2js_i32$0 + 184 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($3 + 180 | 0) >> 2] = 0; + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($3 + 180 | 0) >> 2] | 0 | 0) < (HEAP32[($3 + 184 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + $54 = btCollisionWorld__getDispatcher_28_29($4 | 0) | 0; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$54 >> 2] | 0) + 40 | 0) >> 2] | 0 | 0]($54, HEAP32[($3 + 180 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 176 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btPersistentManifold__getNumContacts_28_29_20const(HEAP32[($3 + 176 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 172 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($3 + 168 | 0) >> 2] = 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($3 + 168 | 0) >> 2] | 0 | 0) < (HEAP32[($3 + 172 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btPersistentManifold__getContactPoint_28int_29(HEAP32[($3 + 176 | 0) >> 2] | 0 | 0, HEAP32[($3 + 168 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 164 | 0) >> 2] = wasm2js_i32$1; + $74 = FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($4) | 0; + ((((((wasm2js_i32$1 = $74, wasm2js_i32$2 = (HEAP32[($3 + 164 | 0) >> 2] | 0) + 32 | 0), wasm2js_i32$3 = (HEAP32[($3 + 164 | 0) >> 2] | 0) + 64 | 0), wasm2js_f32$0 = Math_fround(btManifoldPoint__getDistance_28_29_20const(HEAP32[($3 + 164 | 0) >> 2] | 0 | 0))), wasm2js_i32$4 = btManifoldPoint__getLifeTime_28_29_20const(HEAP32[($3 + 164 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$5 = ($3 + 188 | 0) + 96 | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$74 >> 2] | 0) + 40 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0, wasm2js_i32$3 | 0, Math_fround(wasm2js_f32$0), wasm2js_i32$4 | 0, wasm2js_i32$5 | 0); + HEAP32[($3 + 168 | 0) >> 2] = (HEAP32[($3 + 168 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + HEAP32[($3 + 180 | 0) >> 2] = (HEAP32[($3 + 180 | 0) >> 2] | 0) + 1 | 0; + continue label$5; + }; + } + } + } + $100 = FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($4) | 0; + label$8 : { + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$100 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($100) | 0) & 3 | 0)) { + break label$8 + } + HEAP32[($3 + 160 | 0) >> 2] = 0; + label$9 : { + label$10 : while (1) { + if (!((HEAP32[($3 + 160 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btCollisionObject____size_28_29_20const($4 + 4 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$9 + } + (wasm2js_i32$0 = $3, wasm2js_i32$5 = HEAP32[(btAlignedObjectArray_btCollisionObject____operator_5b_5d_28int_29($4 + 4 | 0 | 0, HEAP32[($3 + 160 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 156 | 0) >> 2] = wasm2js_i32$5; + label$11 : { + if ((btCollisionObject__getCollisionFlags_28_29_20const(HEAP32[($3 + 156 | 0) >> 2] | 0 | 0) | 0) & 32 | 0) { + break label$11 + } + label$12 : { + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($4) | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$12 + } + $136 = FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($4) | 0; + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$136 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($136) | 0) & 1 | 0)) { + break label$12 + } + $142 = 1053609165; + HEAP32[($3 + 132 | 0) >> 2] = $142; + HEAP32[($3 + 128 | 0) >> 2] = $142; + HEAP32[($3 + 124 | 0) >> 2] = $142; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 136 | 0 | 0, $3 + 132 | 0 | 0, $3 + 128 | 0 | 0, $3 + 124 | 0 | 0) | 0; + $154 = (btCollisionObject__getActivationState_28_29_20const(HEAP32[($3 + 156 | 0) >> 2] | 0 | 0) | 0) + -1 | 0; + label$13 : { + label$14 : { + switch ($154 | 0) { + case 0: + $158 = $3 + 188 | 0; + $159 = 8; + i64toi32_i32$2 = $158 + $159 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $738 = i64toi32_i32$0; + i64toi32_i32$0 = ($3 + 136 | 0) + $159 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $738; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $158; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $742 = i64toi32_i32$1; + i64toi32_i32$1 = $3; + HEAP32[($3 + 136 | 0) >> 2] = $742; + HEAP32[($3 + 140 | 0) >> 2] = i64toi32_i32$0; + break label$13; + case 1: + $170 = ($3 + 188 | 0) + 16 | 0; + $171 = 8; + i64toi32_i32$2 = $170 + $171 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $762 = i64toi32_i32$0; + i64toi32_i32$0 = ($3 + 136 | 0) + $171 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $762; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $170; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $766 = i64toi32_i32$1; + i64toi32_i32$1 = $3; + HEAP32[($3 + 136 | 0) >> 2] = $766; + HEAP32[($3 + 140 | 0) >> 2] = i64toi32_i32$0; + break label$13; + case 2: + $182 = ($3 + 188 | 0) + 32 | 0; + $183 = 8; + i64toi32_i32$2 = $182 + $183 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $786 = i64toi32_i32$0; + i64toi32_i32$0 = ($3 + 136 | 0) + $183 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $786; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $182; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $790 = i64toi32_i32$1; + i64toi32_i32$1 = $3; + HEAP32[($3 + 136 | 0) >> 2] = $790; + HEAP32[($3 + 140 | 0) >> 2] = i64toi32_i32$0; + break label$13; + case 3: + $194 = ($3 + 188 | 0) + 48 | 0; + $195 = 8; + i64toi32_i32$2 = $194 + $195 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $810 = i64toi32_i32$0; + i64toi32_i32$0 = ($3 + 136 | 0) + $195 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $810; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $194; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $814 = i64toi32_i32$1; + i64toi32_i32$1 = $3; + HEAP32[($3 + 136 | 0) >> 2] = $814; + HEAP32[($3 + 140 | 0) >> 2] = i64toi32_i32$0; + break label$13; + case 4: + $206 = ($3 + 188 | 0) + 64 | 0; + $207 = 8; + i64toi32_i32$2 = $206 + $207 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $834 = i64toi32_i32$0; + i64toi32_i32$0 = ($3 + 136 | 0) + $207 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $834; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $206; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $838 = i64toi32_i32$1; + i64toi32_i32$1 = $3; + HEAP32[($3 + 136 | 0) >> 2] = $838; + HEAP32[($3 + 140 | 0) >> 2] = i64toi32_i32$0; + break label$13; + default: + break label$14; + }; + } + HEAPF32[($3 + 104 | 0) >> 2] = Math_fround(.30000001192092896); + HEAPF32[($3 + 100 | 0) >> 2] = Math_fround(.30000001192092896); + HEAPF32[($3 + 96 | 0) >> 2] = Math_fround(.30000001192092896); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 108 | 0 | 0, $3 + 104 | 0 | 0, $3 + 100 | 0 | 0, $3 + 96 | 0 | 0) | 0; + $229 = 8; + i64toi32_i32$2 = ($3 + 108 | 0) + $229 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $881 = i64toi32_i32$0; + i64toi32_i32$0 = ($3 + 136 | 0) + $229 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $881; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $3; + i64toi32_i32$1 = HEAP32[($3 + 108 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($3 + 112 | 0) >> 2] | 0; + $885 = i64toi32_i32$1; + i64toi32_i32$1 = $3; + HEAP32[($3 + 136 | 0) >> 2] = $885; + HEAP32[($3 + 140 | 0) >> 2] = i64toi32_i32$0; + } + btCollisionObject__getCustomDebugColor_28btVector3__29_20const(HEAP32[($3 + 156 | 0) >> 2] | 0 | 0, $3 + 136 | 0 | 0) | 0; + ((((wasm2js_i32$5 = $4, wasm2js_i32$4 = btCollisionObject__getWorldTransform_28_29(HEAP32[($3 + 156 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$3 = btCollisionObject__getCollisionShape_28_29(HEAP32[($3 + 156 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$2 = $3 + 136 | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$4 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$5 | 0, wasm2js_i32$4 | 0, wasm2js_i32$3 | 0, wasm2js_i32$2 | 0); + } + label$20 : { + if (!((HEAP32[($4 + 72 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$20 + } + $258 = HEAP32[($4 + 72 | 0) >> 2] | 0; + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$258 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($258) | 0) & 2 | 0)) { + break label$20 + } + btVector3__btVector3_28_29($3 + 80 | 0 | 0) | 0; + btVector3__btVector3_28_29($3 + 64 | 0 | 0) | 0; + $274 = ($3 + 188 | 0) + 80 | 0; + $275 = 8; + i64toi32_i32$2 = $274 + $275 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $973 = i64toi32_i32$0; + i64toi32_i32$0 = ($3 + 48 | 0) + $275 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $973; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $274; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $977 = i64toi32_i32$1; + i64toi32_i32$1 = $3; + HEAP32[($3 + 48 | 0) >> 2] = $977; + HEAP32[($3 + 52 | 0) >> 2] = i64toi32_i32$0; + $283 = btCollisionObject__getCollisionShape_28_29(HEAP32[($3 + 156 | 0) >> 2] | 0 | 0) | 0; + ((((wasm2js_i32$2 = $283, wasm2js_i32$3 = btCollisionObject__getWorldTransform_28_29(HEAP32[($3 + 156 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$4 = $3 + 80 | 0), wasm2js_i32$5 = $3 + 64 | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$283 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$2 | 0, wasm2js_i32$3 | 0, wasm2js_i32$4 | 0, wasm2js_i32$5 | 0); + $297 = 112840; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 32 | 0 | 0, $297 | 0, $297 | 0, $297 | 0) | 0; + btVector3__operator___28btVector3_20const__29($3 + 80 | 0 | 0, $3 + 32 | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($3 + 64 | 0 | 0, $3 + 32 | 0 | 0) | 0; + btVector3__btVector3_28_29($3 + 16 | 0 | 0) | 0; + btVector3__btVector3_28_29($3 | 0) | 0; + label$21 : { + if (!((HEAPU8[((btCollisionWorld__getDispatchInfo_28_29($4 | 0) | 0) + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$21 + } + if (!((btCollisionObject__getInternalType_28_29_20const(HEAP32[($3 + 156 | 0) >> 2] | 0 | 0) | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$21 + } + if ((btCollisionObject__isStaticOrKinematicObject_28_29_20const(HEAP32[($3 + 156 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$21 + } + $331 = btCollisionObject__getCollisionShape_28_29(HEAP32[($3 + 156 | 0) >> 2] | 0 | 0) | 0; + ((((wasm2js_i32$5 = $331, wasm2js_i32$4 = btCollisionObject__getInterpolationWorldTransform_28_29(HEAP32[($3 + 156 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$3 = $3 + 16 | 0), wasm2js_i32$2 = $3), wasm2js_i32$0 = HEAP32[((HEAP32[$331 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$5 | 0, wasm2js_i32$4 | 0, wasm2js_i32$3 | 0, wasm2js_i32$2 | 0); + btVector3__operator___28btVector3_20const__29($3 + 16 | 0 | 0, $3 + 32 | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($3 | 0, $3 + 32 | 0 | 0) | 0; + btVector3__setMin_28btVector3_20const__29($3 + 80 | 0 | 0, $3 + 16 | 0 | 0); + btVector3__setMax_28btVector3_20const__29($3 + 64 | 0 | 0, $3 | 0); + } + $360 = HEAP32[($4 + 72 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$360 >> 2] | 0) + 60 | 0) >> 2] | 0 | 0]($360, $3 + 80 | 0, $3 + 64 | 0, $3 + 48 | 0); + } + } + HEAP32[($3 + 160 | 0) >> 2] = (HEAP32[($3 + 160 | 0) >> 2] | 0) + 1 | 0; + continue label$10; + }; + } + } + } + __stack_pointer = $3 + 320 | 0; + return; + } + + function btManifoldPoint__getLifeTime_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 164 | 0) >> 2] | 0 | 0; + } + + function btCollisionObject__getCustomDebugColor_28btVector3__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5 = 0, $20 = 0, $22 = 0, $69 = 0, $79 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 7 | 0) >> 0] = (0 | 0) != ((HEAP32[($5 + 204 | 0) >> 2] | 0) & 256 | 0 | 0) & 1 | 0; + label$1 : { + if (!((HEAPU8[($4 + 7 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + $20 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$2 = $5 + 308 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $69 = i64toi32_i32$0; + i64toi32_i32$0 = $20; + HEAP32[i64toi32_i32$0 >> 2] = $69; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $22 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $22 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $79 = i64toi32_i32$1; + i64toi32_i32$1 = $20 + $22 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $79; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + return (HEAPU8[($4 + 7 | 0) >> 0] | 0) & 1 | 0 | 0; + } + + function btCollisionWorld__serializeCollisionObjects_28btSerializer__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $58 = 0, $96 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 128 | 0; + __stack_pointer = $4; + HEAP32[($4 + 124 | 0) >> 2] = $0; + HEAP32[($4 + 120 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 124 | 0) >> 2] | 0; + btHashMap_btHashPtr_2c_20btCollisionShape____btHashMap_28_29($4 + 36 | 0 | 0) | 0; + HEAP32[($4 + 116 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 116 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btCollisionObject____size_28_29_20const($5 + 4 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btCollisionObject____operator_5b_5d_28int_29($5 + 4 | 0 | 0, HEAP32[($4 + 116 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btCollisionObject__getCollisionShape_28_29(HEAP32[($4 + 32 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + btHashPtr__btHashPtr_28void_20const__29($4 + 20 | 0 | 0, HEAP32[($4 + 28 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + if (!(((btHashMap_btHashPtr_2c_20btCollisionShape____find_28btHashPtr_20const__29($4 + 36 | 0 | 0, $4 + 20 | 0 | 0) | 0 | 0) != (0 | 0) ^ -1 | 0) & 1 | 0)) { + break label$3 + } + btHashPtr__btHashPtr_28void_20const__29($4 + 12 | 0 | 0, HEAP32[($4 + 28 | 0) >> 2] | 0 | 0) | 0; + btHashMap_btHashPtr_2c_20btCollisionShape____insert_28btHashPtr_20const__2c_20btCollisionShape__20const__29($4 + 36 | 0 | 0, $4 + 12 | 0 | 0, $4 + 28 | 0 | 0); + $58 = HEAP32[($4 + 28 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$58 >> 2] | 0) + 60 | 0) >> 2] | 0 | 0]($58, HEAP32[($4 + 120 | 0) >> 2] | 0); + } + HEAP32[($4 + 116 | 0) >> 2] = (HEAP32[($4 + 116 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + HEAP32[($4 + 116 | 0) >> 2] = 0; + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($4 + 116 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btCollisionObject____size_28_29_20const($5 + 4 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$4 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btCollisionObject____operator_5b_5d_28int_29($5 + 4 | 0 | 0, HEAP32[($4 + 116 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + label$6 : { + label$7 : { + if ((btCollisionObject__getInternalType_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) == (1 | 0) & 1 | 0) { + break label$7 + } + if (!((btCollisionObject__getInternalType_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) == (64 | 0) & 1 | 0)) { + break label$6 + } + } + $96 = HEAP32[($4 + 8 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$96 >> 2] | 0) + 24 | 0) >> 2] | 0 | 0]($96, HEAP32[($4 + 120 | 0) >> 2] | 0); + } + HEAP32[($4 + 116 | 0) >> 2] = (HEAP32[($4 + 116 | 0) >> 2] | 0) + 1 | 0; + continue label$5; + }; + } + btHashMap_btHashPtr_2c_20btCollisionShape_____btHashMap_28_29($4 + 36 | 0 | 0) | 0; + __stack_pointer = $4 + 128 | 0; + return; + } + + function btHashMap_btHashPtr_2c_20btCollisionShape____btHashMap_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_int___btAlignedObjectArray_28_29($4 | 0) | 0; + btAlignedObjectArray_int___btAlignedObjectArray_28_29($4 + 20 | 0 | 0) | 0; + btAlignedObjectArray_btCollisionShape____btAlignedObjectArray_28_29($4 + 40 | 0 | 0) | 0; + btAlignedObjectArray_btHashPtr___btAlignedObjectArray_28_29($4 + 60 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btHashPtr__btHashPtr_28void_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return $5 | 0; + } + + function btHashMap_btHashPtr_2c_20btCollisionShape____find_28btHashPtr_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $20 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btHashMap_btHashPtr_2c_20btCollisionShape____findIndex_28btHashPtr_20const__29_20const($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[$4 >> 2] | 0 | 0) == (-1 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + break label$1; + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btCollisionShape____operator_5b_5d_28int_29($5 + 40 | 0 | 0, HEAP32[$4 >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + } + $20 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $20 | 0; + } + + function btHashMap_btHashPtr_2c_20btCollisionShape____insert_28btHashPtr_20const__2c_20btCollisionShape__20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $25 = 0, $63 = 0, $68 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = (btHashPtr__getHash_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) & ((btAlignedObjectArray_btCollisionShape____capacity_28_29_20const($6 + 40 | 0 | 0) | 0) - 1 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btHashMap_btHashPtr_2c_20btCollisionShape____findIndex_28btHashPtr_20const__29_20const($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) != (-1 | 0) & 1 | 0)) { + break label$2 + } + $25 = HEAP32[(HEAP32[($5 + 20 | 0) >> 2] | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btCollisionShape____operator_5b_5d_28int_29($6 + 40 | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $25), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + break label$1; + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btCollisionShape____size_28_29_20const($6 + 40 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btCollisionShape____capacity_28_29_20const($6 + 40 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btCollisionShape____push_back_28btCollisionShape__20const__29($6 + 40 | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btHashPtr___push_back_28btHashPtr_20const__29($6 + 60 | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btCollisionShape____capacity_28_29_20const($6 + 40 | 0 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + label$3 : { + if (!((HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) < (HEAP32[$5 >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + btHashMap_btHashPtr_2c_20btCollisionShape____growTables_28btHashPtr_20const__29($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $5, wasm2js_i32$1 = (btHashPtr__getHash_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) & ((btAlignedObjectArray_btCollisionShape____capacity_28_29_20const($6 + 40 | 0 | 0) | 0) - 1 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + } + $63 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($6 | 0, HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 20 | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $63), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $68 = HEAP32[($5 + 8 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($6 | 0, HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $68), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + } + __stack_pointer = $5 + 32 | 0; + return; + } + + function btHashMap_btHashPtr_2c_20btCollisionShape_____btHashMap_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btHashPtr____btAlignedObjectArray_28_29($4 + 60 | 0 | 0) | 0; + btAlignedObjectArray_btCollisionShape_____btAlignedObjectArray_28_29($4 + 40 | 0 | 0) | 0; + btAlignedObjectArray_int____btAlignedObjectArray_28_29($4 + 20 | 0 | 0) | 0; + btAlignedObjectArray_int____btAlignedObjectArray_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btCollisionShape____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btCollisionShape__2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btCollisionShape____init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btHashPtr___btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btHashPtr_2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btHashPtr___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btHashMap_btHashPtr_2c_20btCollisionShape____findIndex_28btHashPtr_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $33 = 0, $55 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 24 | 0) >> 2] = $0; + HEAP32[($4 + 20 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 24 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = (btHashPtr__getHash_28_29_20const(HEAP32[($4 + 20 | 0) >> 2] | 0 | 0) | 0) & ((btAlignedObjectArray_btCollisionShape____capacity_28_29_20const($5 + 40 | 0 | 0) | 0) - 1 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($4 + 16 | 0) >> 2] | 0) >>> 0 >= (btAlignedObjectArray_int___size_28_29_20const($5 | 0) | 0) >>> 0 & 1 | 0)) { + break label$2 + } + HEAP32[($4 + 28 | 0) >> 2] = -1; + break label$1; + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29_20const($5 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + label$3 : while (1) { + $33 = 0; + label$4 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (-1 | 0) & 1 | 0)) { + break label$4 + } + $33 = ((btHashPtr__equals_28btHashPtr_20const__29_20const(HEAP32[($4 + 20 | 0) >> 2] | 0 | 0, btAlignedObjectArray_btHashPtr___operator_5b_5d_28int_29_20const($5 + 60 | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) & 1 | 0 | 0) == (0 | 0); + } + label$5 : { + if (!($33 & 1 | 0)) { + break label$5 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29_20const($5 + 20 | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + continue label$3; + } + break label$3; + }; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + } + $55 = HEAP32[($4 + 28 | 0) >> 2] | 0; + __stack_pointer = $4 + 32 | 0; + return $55 | 0; + } + + function btAlignedObjectArray_btCollisionShape____operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btCollisionShape____size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 2 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btHashPtr__getHash_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($3 + 11 | 0) >> 0] = 0; + HEAP32[($3 + 4 | 0) >> 2] = HEAP32[$4 >> 2] | 0; + HEAP32[($3 + 4 | 0) >> 2] = (HEAP32[($3 + 4 | 0) >> 2] | 0) + (((HEAP32[($3 + 4 | 0) >> 2] | 0) << 15 | 0) ^ -1 | 0) | 0; + HEAP32[($3 + 4 | 0) >> 2] = (HEAP32[($3 + 4 | 0) >> 2] | 0) ^ ((HEAP32[($3 + 4 | 0) >> 2] | 0) >>> 10 | 0) | 0; + HEAP32[($3 + 4 | 0) >> 2] = (HEAP32[($3 + 4 | 0) >> 2] | 0) + ((HEAP32[($3 + 4 | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[($3 + 4 | 0) >> 2] = (HEAP32[($3 + 4 | 0) >> 2] | 0) ^ ((HEAP32[($3 + 4 | 0) >> 2] | 0) >>> 6 | 0) | 0; + HEAP32[($3 + 4 | 0) >> 2] = (HEAP32[($3 + 4 | 0) >> 2] | 0) + (((HEAP32[($3 + 4 | 0) >> 2] | 0) << 11 | 0) ^ -1 | 0) | 0; + HEAP32[($3 + 4 | 0) >> 2] = (HEAP32[($3 + 4 | 0) >> 2] | 0) ^ ((HEAP32[($3 + 4 | 0) >> 2] | 0) >>> 16 | 0) | 0; + return HEAP32[($3 + 4 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btCollisionShape____capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btCollisionShape____size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btCollisionShape____push_back_28btCollisionShape__20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btCollisionShape____size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btCollisionShape____capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btCollisionShape____reserve_28int_29($5 | 0, btAlignedObjectArray_btCollisionShape____allocSize_28int_29($5 | 0, btAlignedObjectArray_btCollisionShape____size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btHashPtr___push_back_28btHashPtr_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $79 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btHashPtr___size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btHashPtr___capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btHashPtr___reserve_28int_29($5 | 0, btAlignedObjectArray_btHashPtr___allocSize_28int_29($5 | 0, btAlignedObjectArray_btHashPtr___size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $79 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $79; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btHashMap_btHashPtr_2c_20btCollisionShape____growTables_28btHashPtr_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $17 = 0, $24 = 0, $80 = 0, $85 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btCollisionShape____capacity_28_29_20const($5 + 40 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((btAlignedObjectArray_int___size_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_int___size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + $17 = HEAP32[($4 + 20 | 0) >> 2] | 0; + HEAP32[($4 + 12 | 0) >> 2] = 0; + btAlignedObjectArray_int___resize_28int_2c_20int_20const__29($5 | 0, $17 | 0, $4 + 12 | 0 | 0); + $24 = HEAP32[($4 + 20 | 0) >> 2] | 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + btAlignedObjectArray_int___resize_28int_2c_20int_20const__29($5 + 20 | 0 | 0, $24 | 0, $4 + 8 | 0 | 0); + HEAP32[($4 + 4 | 0) >> 2] = 0; + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = -1), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + HEAP32[($4 + 4 | 0) >> 2] = 0; + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($5 + 20 | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = -1), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$5; + }; + } + HEAP32[($4 + 4 | 0) >> 2] = 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = (btHashPtr__getHash_28_29_20const(btAlignedObjectArray_btHashPtr___operator_5b_5d_28int_29($5 + 60 | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) & ((btAlignedObjectArray_btCollisionShape____capacity_28_29_20const($5 + 40 | 0 | 0) | 0) - 1 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $80 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($5 | 0, HEAP32[$4 >> 2] | 0 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($5 + 20 | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $80), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $85 = HEAP32[($4 + 4 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($5 | 0, HEAP32[$4 >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $85), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + __stack_pointer = $4 + 32 | 0; + return; + } + + function btAlignedObjectArray_btHashPtr____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btHashPtr___clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btCollisionShape_____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btCollisionShape____clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCollisionWorld__serialize_28btSerializer__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $10 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + $6 = HEAP32[($4 + 8 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 32 | 0) >> 2] | 0 | 0]($6); + btCollisionWorld__serializeCollisionObjects_28btSerializer__29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + $10 = HEAP32[($4 + 8 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$10 >> 2] | 0) + 36 | 0) >> 2] | 0 | 0]($10); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCollisionWorld__setDebugDrawer_28btIDebugDraw__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 72 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return; + } + + function btCollisionWorld__getDebugDrawer_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0 | 0; + } + + function btConvexCast__CastResult__DebugDraw_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + return; + } + + function btConvexCast__CastResult__drawCoordSystem_28btTransform_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return; + } + + function btConvexCast__CastResult__reportFailure_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + return; + } + + function btConvexCast__CastResult___CastResult_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConvexCast__CastResult___CastResult_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btUsageBitfield__btUsageBitfield_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btUsageBitfield__reset_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btUsageBitfield__reset_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[$4 >> 0] = (HEAPU8[$4 >> 0] | 0) & 254 | 0; + HEAP8[$4 >> 0] = (HEAPU8[$4 >> 0] | 0) & 253 | 0; + HEAP8[$4 >> 0] = (HEAPU8[$4 >> 0] | 0) & 251 | 0; + HEAP8[$4 >> 0] = (HEAPU8[$4 >> 0] | 0) & -9 | 0; + return; + } + + function btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__BridgeTriangleRaycastCallback___BridgeTriangleRaycastCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__BridgeTriangleRaycastCallback___BridgeTriangleRaycastCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__BridgeTriangleRaycastCallback__reportHit_28btVector3_20const__2c_20float_2c_20int_2c_20int_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0, $31 = 0, $40 = Math_fround(0); + $7 = __stack_pointer - 80 | 0; + __stack_pointer = $7; + HEAP32[($7 + 76 | 0) >> 2] = $0; + HEAP32[($7 + 72 | 0) >> 2] = $1; + HEAPF32[($7 + 68 | 0) >> 2] = $2; + HEAP32[($7 + 64 | 0) >> 2] = $3; + HEAP32[($7 + 60 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 76 | 0) >> 2] | 0; + HEAP32[($7 + 48 | 0) >> 2] = HEAP32[($7 + 64 | 0) >> 2] | 0; + HEAP32[($7 + 52 | 0) >> 2] = HEAP32[($7 + 60 | 0) >> 2] | 0; + HEAP32[($7 + 56 | 0) >> 2] = HEAP32[($8 + 52 | 0) >> 2] | 0; + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($7 + 32 | 0 | 0, btTransform__getBasis_28_29($8 + 56 | 0 | 0) | 0 | 0, HEAP32[($7 + 72 | 0) >> 2] | 0 | 0); + btCollisionWorld__LocalRayResult__LocalRayResult_28btCollisionObject_20const__2c_20btCollisionWorld__LocalShapeInfo__2c_20btVector3_20const__2c_20float_29($7 + 4 | 0 | 0, HEAP32[($8 + 48 | 0) >> 2] | 0 | 0, $7 + 48 | 0 | 0, $7 + 32 | 0 | 0, Math_fround(Math_fround(HEAPF32[($7 + 68 | 0) >> 2]))) | 0; + HEAP8[($7 + 3 | 0) >> 0] = 1; + $31 = HEAP32[($8 + 44 | 0) >> 2] | 0; + $40 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$31 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($31, $7 + 4 | 0, (HEAPU8[($7 + 3 | 0) >> 0] | 0) & 1 | 0)); + __stack_pointer = $7 + 80 | 0; + return Math_fround($40); + } + + function btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__RayTester___RayTester_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__RayTester___RayTester_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__RayTester__Process_28btDbvtNode_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__RayTester__ProcessLeaf_28int_29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__LocalInfoAdder2___LocalInfoAdder2_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__LocalInfoAdder2___LocalInfoAdder2_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__LocalInfoAdder2__needsCollision_28btBroadphaseProxy__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $12 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $6 = HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + $12 = (FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($6, HEAP32[($4 + 8 | 0) >> 2] | 0) | 0) & 1 | 0; + __stack_pointer = $4 + 16 | 0; + return $12 | 0; + } + + function btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__LocalInfoAdder2__addSingleResult_28btCollisionWorld__LocalRayResult__2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $7 = 0, $28 = 0, $38 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP8[($5 + 23 | 0) >> 0] = $2; + $7 = HEAP32[($5 + 28 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($7 + 28 | 0) >> 2] | 0; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($7 + 28 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $5 + 8 | 0; + break label$1; + } + HEAP32[(HEAP32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] = HEAP32[($7 + 28 | 0) >> 2] | 0; + HEAP32[((HEAP32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($7 + 28 | 0) >> 2] | 0; + } + $28 = HEAP32[($7 + 24 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$28 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($28, HEAP32[($5 + 24 | 0) >> 2] | 0, (HEAPU8[($5 + 23 | 0) >> 0] | 0) & 1 | 0))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($7 + 4 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($7 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2]); + $38 = Math_fround(HEAPF32[($5 + 4 | 0) >> 2]); + __stack_pointer = $5 + 32 | 0; + return Math_fround($38); + } + + function btConvexPenetrationDepthSolver___btConvexPenetrationDepthSolver_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__BridgeTriangleConvexcastCallback___BridgeTriangleConvexcastCallback_28_29_2($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__BridgeTriangleConvexcastCallback___BridgeTriangleConvexcastCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__BridgeTriangleConvexcastCallback__reportHit_28btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20int_2c_20int_29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, $9 = 0, $30 = 0, $41 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $8 = __stack_pointer - 96 | 0; + __stack_pointer = $8; + HEAP32[($8 + 88 | 0) >> 2] = $0; + HEAP32[($8 + 84 | 0) >> 2] = $1; + HEAP32[($8 + 80 | 0) >> 2] = $2; + HEAPF32[($8 + 76 | 0) >> 2] = $3; + HEAP32[($8 + 72 | 0) >> 2] = $4; + HEAP32[($8 + 68 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 88 | 0) >> 2] | 0; + HEAP32[($8 + 56 | 0) >> 2] = HEAP32[($8 + 72 | 0) >> 2] | 0; + HEAP32[($8 + 60 | 0) >> 2] = HEAP32[($8 + 68 | 0) >> 2] | 0; + HEAP32[($8 + 64 | 0) >> 2] = HEAP32[($9 + 220 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($8 + 76 | 0) >> 2]) <= Math_fround(HEAPF32[((HEAP32[($9 + 212 | 0) >> 2] | 0) + 4 | 0) >> 2]) & 1 | 0)) { + break label$2 + } + btCollisionWorld__LocalConvexResult__LocalConvexResult_28btCollisionObject_20const__2c_20btCollisionWorld__LocalShapeInfo__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_29($8 + 12 | 0 | 0, HEAP32[($9 + 216 | 0) >> 2] | 0 | 0, $8 + 56 | 0 | 0, HEAP32[($8 + 84 | 0) >> 2] | 0 | 0, HEAP32[($8 + 80 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($8 + 76 | 0) >> 2]))) | 0; + HEAP8[($8 + 11 | 0) >> 0] = 1; + $30 = HEAP32[($9 + 212 | 0) >> 2] | 0; + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$30 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($30, $8 + 12 | 0, (HEAPU8[($8 + 11 | 0) >> 0] | 0) & 1 | 0))), HEAPF32[(wasm2js_i32$0 + 92 | 0) >> 2] = wasm2js_f32$0; + break label$1; + } + HEAPF32[($8 + 92 | 0) >> 2] = Math_fround(HEAPF32[($8 + 76 | 0) >> 2]); + } + $41 = Math_fround(HEAPF32[($8 + 92 | 0) >> 2]); + __stack_pointer = $8 + 96 | 0; + return Math_fround($41); + } + + function btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__BridgeTriangleConvexcastCallback___BridgeTriangleConvexcastCallback_28_29_3($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__BridgeTriangleConvexcastCallback___BridgeTriangleConvexcastCallback_28_29_1($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__BridgeTriangleConvexcastCallback__reportHit_28btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20int_2c_20int_29_1($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, $9 = 0, $30 = 0, $41 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $8 = __stack_pointer - 96 | 0; + __stack_pointer = $8; + HEAP32[($8 + 88 | 0) >> 2] = $0; + HEAP32[($8 + 84 | 0) >> 2] = $1; + HEAP32[($8 + 80 | 0) >> 2] = $2; + HEAPF32[($8 + 76 | 0) >> 2] = $3; + HEAP32[($8 + 72 | 0) >> 2] = $4; + HEAP32[($8 + 68 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 88 | 0) >> 2] | 0; + HEAP32[($8 + 56 | 0) >> 2] = HEAP32[($8 + 72 | 0) >> 2] | 0; + HEAP32[($8 + 60 | 0) >> 2] = HEAP32[($8 + 68 | 0) >> 2] | 0; + HEAP32[($8 + 64 | 0) >> 2] = HEAP32[($9 + 220 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($8 + 76 | 0) >> 2]) <= Math_fround(HEAPF32[((HEAP32[($9 + 212 | 0) >> 2] | 0) + 4 | 0) >> 2]) & 1 | 0)) { + break label$2 + } + btCollisionWorld__LocalConvexResult__LocalConvexResult_28btCollisionObject_20const__2c_20btCollisionWorld__LocalShapeInfo__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_29($8 + 12 | 0 | 0, HEAP32[($9 + 216 | 0) >> 2] | 0 | 0, $8 + 56 | 0 | 0, HEAP32[($8 + 84 | 0) >> 2] | 0 | 0, HEAP32[($8 + 80 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($8 + 76 | 0) >> 2]))) | 0; + HEAP8[($8 + 11 | 0) >> 0] = 1; + $30 = HEAP32[($9 + 212 | 0) >> 2] | 0; + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$30 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($30, $8 + 12 | 0, (HEAPU8[($8 + 11 | 0) >> 0] | 0) & 1 | 0))), HEAPF32[(wasm2js_i32$0 + 92 | 0) >> 2] = wasm2js_f32$0; + break label$1; + } + HEAPF32[($8 + 92 | 0) >> 2] = Math_fround(HEAPF32[($8 + 76 | 0) >> 2]); + } + $41 = Math_fround(HEAPF32[($8 + 92 | 0) >> 2]); + __stack_pointer = $8 + 96 | 0; + return Math_fround($41); + } + + function btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__btCompoundLeafCallback___btCompoundLeafCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__btCompoundLeafCallback___btCompoundLeafCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__btCompoundLeafCallback__Process_28btDbvtNode_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 80 | 0; + __stack_pointer = $4; + HEAP32[($4 + 76 | 0) >> 2] = $0; + HEAP32[($4 + 72 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 76 | 0) >> 2] | 0; + HEAP32[($4 + 68 | 0) >> 2] = HEAP32[((HEAP32[($4 + 72 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + btTransform__btTransform_28btTransform_20const__29($4 + 4 | 0 | 0, btCompoundShape__getChildTransform_28int_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0, HEAP32[($4 + 68 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btCompoundShape__getChildShape_28int_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0, HEAP32[($4 + 68 | 0) >> 2] | 0 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__btCompoundLeafCallback__ProcessChild_28int_2c_20btTransform_20const__2c_20btCollisionShape_20const__29($5 | 0, HEAP32[($4 + 68 | 0) >> 2] | 0 | 0, $4 + 4 | 0 | 0, HEAP32[$4 >> 2] | 0 | 0); + __stack_pointer = $4 + 80 | 0; + return; + } + + function btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__btCompoundLeafCallback__ProcessChild_28int_2c_20btTransform_20const__2c_20btCollisionShape_20const__29__LocalInfoAdder___LocalInfoAdder_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__btCompoundLeafCallback__ProcessChild_28int_2c_20btTransform_20const__2c_20btCollisionShape_20const__29__LocalInfoAdder___LocalInfoAdder_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__btCompoundLeafCallback__ProcessChild_28int_2c_20btTransform_20const__2c_20btCollisionShape_20const__29__LocalInfoAdder__needsCollision_28btBroadphaseProxy__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0, $12 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $6 = HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + $12 = (FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($6, HEAP32[($4 + 8 | 0) >> 2] | 0) | 0) & 1 | 0; + __stack_pointer = $4 + 16 | 0; + return $12 | 0; + } + + function btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__btCompoundLeafCallback__ProcessChild_28int_2c_20btTransform_20const__2c_20btCollisionShape_20const__29__LocalInfoAdder__addSingleResult_28btCollisionWorld__LocalConvexResult__2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $7 = 0, $23 = 0, $33 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP8[($5 + 23 | 0) >> 0] = $2; + $7 = HEAP32[($5 + 28 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = -1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($7 + 28 | 0) >> 2] | 0; + HEAP32[($5 + 16 | 0) >> 2] = HEAP32[($7 + 20 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $5 + 8 | 0; + } + $23 = HEAP32[($7 + 24 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$23 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($23, HEAP32[($5 + 24 | 0) >> 2] | 0, (HEAPU8[($5 + 23 | 0) >> 0] | 0) & 1 | 0))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($7 + 4 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($7 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2]); + $33 = Math_fround(HEAPF32[($5 + 4 | 0) >> 2]); + __stack_pointer = $5 + 32 | 0; + return Math_fround($33); + } + + function btSingleRayCallback___btSingleRayCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btSingleRayCallback___btSingleRayCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btSingleRayCallback__process_28btBroadphaseProxy_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $18 = 0, $41 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[((HEAP32[($5 + 216 | 0) >> 2] | 0) + 4 | 0) >> 2]) == Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + HEAP8[($4 + 15 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + HEAP32[$4 >> 2] = HEAP32[(HEAP32[($4 + 4 | 0) >> 2] | 0) >> 2] | 0; + $18 = HEAP32[($5 + 216 | 0) >> 2] | 0; + label$3 : { + if (!((((wasm2js_i32$1 = $18, wasm2js_i32$2 = btCollisionObject__getBroadphaseHandle_28_29(HEAP32[$4 >> 2] | 0 | 0) | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$18 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0) | 0) & 1 | 0)) { + break label$3 + } + btCollisionWorld__rayTestSingle_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObject__2c_20btCollisionShape_20const__2c_20btTransform_20const__2c_20btCollisionWorld__RayResultCallback__29($5 + 68 | 0 | 0, $5 + 132 | 0 | 0, HEAP32[$4 >> 2] | 0 | 0, btCollisionObject__getCollisionShape_28_29(HEAP32[$4 >> 2] | 0 | 0) | 0 | 0, btCollisionObject__getWorldTransform_28_29(HEAP32[$4 >> 2] | 0 | 0) | 0 | 0, HEAP32[($5 + 216 | 0) >> 2] | 0 | 0); + } + HEAP8[($4 + 15 | 0) >> 0] = 1 & 1 | 0; + } + $41 = (HEAPU8[($4 + 15 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $4 + 16 | 0; + return $41 | 0; + } + + function btBroadphaseRayCallback___btBroadphaseRayCallback_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btBroadphaseAabbCallback___btBroadphaseAabbCallback_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btMatrix3x3__inverse_28_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $10 = 0, $13 = 0, $56 = 0, $62 = 0, $74 = 0, $75 = 0, $79 = 0, $92 = 0, $98 = 0, $99 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 80 | 0; + __stack_pointer = $4; + HEAP32[($4 + 76 | 0) >> 2] = $0; + HEAP32[($4 + 72 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 72 | 0) >> 2] | 0; + $6 = 1; + $7 = 2; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btMatrix3x3__cofac_28int_2c_20int_2c_20int_2c_20int_29_20const($5 | 0, $6 | 0, $6 | 0, $7 | 0, $7 | 0))), HEAPF32[(wasm2js_i32$0 + 52 | 0) >> 2] = wasm2js_f32$0; + $10 = 2; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btMatrix3x3__cofac_28int_2c_20int_2c_20int_2c_20int_29_20const($5 | 0, 1 | 0, $10 | 0, $10 | 0, 0 | 0))), HEAPF32[(wasm2js_i32$0 + 48 | 0) >> 2] = wasm2js_f32$0; + $13 = 1; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btMatrix3x3__cofac_28int_2c_20int_2c_20int_2c_20int_29_20const($5 | 0, $13 | 0, 0 | 0, 2 | 0, $13 | 0))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 56 | 0 | 0, $4 + 52 | 0 | 0, $4 + 48 | 0 | 0, $4 + 44 | 0 | 0) | 0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const($5 | 0, 0 | 0) | 0 | 0, $4 + 56 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + if (Math_fround(HEAPF32[($4 + 40 | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(86667 | 0, 80201 | 0, 1008 | 0, 81394 | 0); + wasm2js_trap(); + } + HEAPF32[($4 + 36 | 0) >> 2] = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[($4 + 40 | 0) >> 2])); + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($4 + 56 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($4 + 36 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + $56 = 2; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(btMatrix3x3__cofac_28int_2c_20int_2c_20int_2c_20int_29_20const($5 | 0, 0 | 0, $56 | 0, $56 | 0, 1 | 0)) * Math_fround(HEAPF32[($4 + 36 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + $62 = 1; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(btMatrix3x3__cofac_28int_2c_20int_2c_20int_2c_20int_29_20const($5 | 0, 0 | 0, $62 | 0, $62 | 0, 2 | 0)) * Math_fround(HEAPF32[($4 + 36 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($4 + 56 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($4 + 36 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + $74 = 0; + $75 = 2; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(btMatrix3x3__cofac_28int_2c_20int_2c_20int_2c_20int_29_20const($5 | 0, $74 | 0, $74 | 0, $75 | 0, $75 | 0)) * Math_fround(HEAPF32[($4 + 36 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + $79 = 0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(btMatrix3x3__cofac_28int_2c_20int_2c_20int_2c_20int_29_20const($5 | 0, $79 | 0, 2 | 0, 1 | 0, $79 | 0)) * Math_fround(HEAPF32[($4 + 36 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($4 + 56 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($4 + 36 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + $92 = 0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(btMatrix3x3__cofac_28int_2c_20int_2c_20int_2c_20int_29_20const($5 | 0, $92 | 0, 1 | 0, 2 | 0, $92 | 0)) * Math_fround(HEAPF32[($4 + 36 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $98 = 0; + $99 = 1; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(btMatrix3x3__cofac_28int_2c_20int_2c_20int_2c_20int_29_20const($5 | 0, $98 | 0, $98 | 0, $99 | 0, $99 | 0)) * Math_fround(HEAPF32[($4 + 36 | 0) >> 2]))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + btMatrix3x3__btMatrix3x3_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $4 + 32 | 0 | 0, $4 + 28 | 0 | 0, $4 + 24 | 0 | 0, $4 + 20 | 0 | 0, $4 + 16 | 0 | 0, $4 + 12 | 0 | 0, $4 + 8 | 0 | 0, $4 + 4 | 0 | 0, $4 | 0) | 0; + __stack_pointer = $4 + 80 | 0; + return; + } + + function btQuaternion__normalize_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $9 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(btQuaternion__length_28_29_20const($4 | 0))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + $9 = btQuaternion__operator___28float_20const__29($4 | 0, $3 + 8 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $9 | 0; + } + + function btQuaternion__getAngle_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $9 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(Math_fround(2.0) * Math_fround(btAcos_28float_29(Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + $9 = Math_fround(HEAPF32[($3 + 8 | 0) >> 2]); + __stack_pointer = $3 + 16 | 0; + return Math_fround($9); + } + + function btMatrix3x3__cofac_28int_2c_20int_2c_20int_2c_20int_29_20const($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0, $52 = Math_fround(0); + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + $52 = Math_fround(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const($8 + ((HEAP32[($7 + 24 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0) + ((HEAP32[($7 + 20 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const($8 + ((HEAP32[($7 + 16 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0) + ((HEAP32[($7 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const($8 + ((HEAP32[($7 + 24 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0) + ((HEAP32[($7 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const($8 + ((HEAP32[($7 + 16 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0) + ((HEAP32[($7 + 20 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])))); + __stack_pointer = $7 + 32 | 0; + return Math_fround($52); + } + + function btQuadWord__btQuadWord_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btQuaternion__length_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $6 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = Math_fround(btSqrt_28float_29(Math_fround(Math_fround(btQuaternion__length2_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0))))); + __stack_pointer = $3 + 16 | 0; + return Math_fround($6); + } + + function btQuaternion__operator___28float_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $24 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(86688 | 0, 78737 | 0, 421 | 0, 85339 | 0); + wasm2js_trap(); + } + HEAPF32[($4 + 4 | 0) >> 2] = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2])); + $24 = btQuaternion__operator___28float_20const__29_1($5 | 0, $4 + 4 | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $24 | 0; + } + + function btAcos_28float_29($0) { + $0 = Math_fround($0); + var $3 = 0, $17 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAPF32[($3 + 12 | 0) >> 2] = $0; + label$1 : { + if (!(Math_fround(HEAPF32[($3 + 12 | 0) >> 2]) < Math_fround(-1.0) & 1 | 0)) { + break label$1 + } + HEAPF32[($3 + 12 | 0) >> 2] = Math_fround(-1.0); + } + label$2 : { + if (!(Math_fround(HEAPF32[($3 + 12 | 0) >> 2]) > Math_fround(1.0) & 1 | 0)) { + break label$2 + } + HEAPF32[($3 + 12 | 0) >> 2] = Math_fround(1.0); + } + $17 = Math_fround(acosf(Math_fround(Math_fround(HEAPF32[($3 + 12 | 0) >> 2])))); + __stack_pointer = $3 + 16 | 0; + return Math_fround($17); + } + + function btQuaternion__operator___28float_20const__29_1($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAPF32[$5 >> 2] = Math_fround(Math_fround(HEAPF32[$5 >> 2]) * Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2])); + HEAPF32[($5 + 4 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]) * Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2])); + HEAPF32[($5 + 8 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 8 | 0) >> 2]) * Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2])); + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 12 | 0) >> 2]) * Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2])); + return $5 | 0; + } + + function btSingleSweepCallback___btSingleSweepCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btSingleSweepCallback___btSingleSweepCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btSingleSweepCallback__process_28btBroadphaseProxy_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $18 = 0, $43 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[((HEAP32[($5 + 184 | 0) >> 2] | 0) + 4 | 0) >> 2]) == Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + HEAP8[($4 + 15 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + HEAP32[$4 >> 2] = HEAP32[(HEAP32[($4 + 4 | 0) >> 2] | 0) >> 2] | 0; + $18 = HEAP32[($5 + 184 | 0) >> 2] | 0; + label$3 : { + if (!((((wasm2js_i32$1 = $18, wasm2js_i32$2 = btCollisionObject__getBroadphaseHandle_28_29(HEAP32[$4 >> 2] | 0 | 0) | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$18 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0) | 0) & 1 | 0)) { + break label$3 + } + btCollisionWorld__objectQuerySingle_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObject__2c_20btCollisionShape_20const__2c_20btTransform_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29(HEAP32[($5 + 192 | 0) >> 2] | 0 | 0, $5 + 36 | 0 | 0, $5 + 100 | 0 | 0, HEAP32[$4 >> 2] | 0 | 0, btCollisionObject__getCollisionShape_28_29(HEAP32[$4 >> 2] | 0 | 0) | 0 | 0, btCollisionObject__getWorldTransform_28_29(HEAP32[$4 >> 2] | 0 | 0) | 0 | 0, HEAP32[($5 + 184 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 188 | 0) >> 2]))); + } + HEAP8[($4 + 15 | 0) >> 0] = 1 & 1 | 0; + } + $43 = (HEAPU8[($4 + 15 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $4 + 16 | 0; + return $43 | 0; + } + + function btManifoldResult__setShapeIdentifiersA_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[($6 + 16 | 0) >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + HEAP32[($6 + 24 | 0) >> 2] = HEAP32[($5 + 4 | 0) >> 2] | 0; + return; + } + + function btManifoldResult__setShapeIdentifiersB_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[($6 + 20 | 0) >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + HEAP32[($6 + 28 | 0) >> 2] = HEAP32[($5 + 4 | 0) >> 2] | 0; + return; + } + + function btTransform__invXform_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 80 | 0; + __stack_pointer = $5; + HEAP32[($5 + 76 | 0) >> 2] = $1; + HEAP32[($5 + 72 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 76 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 56 | 0 | 0, HEAP32[($5 + 72 | 0) >> 2] | 0 | 0, $6 + 48 | 0 | 0); + btMatrix3x3__transpose_28_29_20const($5 + 8 | 0 | 0, $6 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($0 | 0, $5 + 8 | 0 | 0, $5 + 56 | 0 | 0); + __stack_pointer = $5 + 80 | 0; + return; + } + + function btManifoldPoint__btManifoldPoint_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = Math_fround($4); + var $8 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $7 = 0, $11 = 0, $16 = 0, $19 = 0, $28 = 0, $31 = 0, $93 = 0, $103 = 0, $112 = 0, $122 = 0, $141 = 0, $151 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAPF32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($7 + 24 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $93 = i64toi32_i32$0; + i64toi32_i32$0 = $8; + HEAP32[$8 >> 2] = $93; + HEAP32[($8 + 4 | 0) >> 2] = i64toi32_i32$1; + $11 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $11 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $103 = i64toi32_i32$1; + i64toi32_i32$1 = $8 + $11 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $103; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $16 = $8 + 16 | 0; + i64toi32_i32$2 = HEAP32[($7 + 20 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $112 = i64toi32_i32$0; + i64toi32_i32$0 = $16; + HEAP32[i64toi32_i32$0 >> 2] = $112; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $19 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $19 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $122 = i64toi32_i32$1; + i64toi32_i32$1 = $16 + $19 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $122; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__btVector3_28_29($8 + 32 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 48 | 0 | 0) | 0; + $28 = $8 + 64 | 0; + i64toi32_i32$2 = HEAP32[($7 + 16 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $141 = i64toi32_i32$0; + i64toi32_i32$0 = $28; + HEAP32[i64toi32_i32$0 >> 2] = $141; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $31 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $31 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $151 = i64toi32_i32$1; + i64toi32_i32$1 = $28 + $31 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $151; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($8 + 80 | 0) >> 2] = Math_fround(HEAPF32[($7 + 12 | 0) >> 2]); + HEAPF32[($8 + 84 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 88 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 92 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 96 | 0) >> 2] = Math_fround(0 | 0); + HEAP32[($8 + 116 | 0) >> 2] = 0; + HEAP32[($8 + 120 | 0) >> 2] = 0; + HEAP32[($8 + 124 | 0) >> 2] = 0; + HEAP32[($8 + 128 | 0) >> 2] = 0; + HEAPF32[($8 + 132 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 136 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 140 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 144 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 148 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 152 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 156 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 160 | 0) >> 2] = Math_fround(0 | 0); + HEAP32[($8 + 164 | 0) >> 2] = 0; + btVector3__btVector3_28_29($8 + 168 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 184 | 0 | 0) | 0; + __stack_pointer = $7 + 32 | 0; + return $8 | 0; + } + + function DebugDrawcallback___DebugDrawcallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + DebugDrawcallback___DebugDrawcallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function DebugDrawcallback__processTriangle_28btVector3__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $7 = 0, i64toi32_i32$2 = 0, $23 = 0, $40 = 0, $57 = 0, $94 = 0, $146 = 0, $163 = 0, $174 = 0, $185 = 0, $258 = 0, $262 = 0, $293 = 0, $297 = 0, $328 = 0, $332 = 0; + $6 = __stack_pointer - 256 | 0; + __stack_pointer = $6; + HEAP32[($6 + 252 | 0) >> 2] = $0; + HEAP32[($6 + 248 | 0) >> 2] = $1; + HEAP32[($6 + 244 | 0) >> 2] = $2; + HEAP32[($6 + 240 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 252 | 0) >> 2] | 0; + btVector3__btVector3_28_29($6 + 224 | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 208 | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 192 | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($6 + 176 | 0 | 0, $7 + 28 | 0 | 0, HEAP32[($6 + 248 | 0) >> 2] | 0 | 0); + $23 = 8; + i64toi32_i32$2 = ($6 + 176 | 0) + $23 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $258 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 224 | 0) + $23 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $258; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 176 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 180 | 0) >> 2] | 0; + $262 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 224 | 0) >> 2] = $262; + HEAP32[($6 + 228 | 0) >> 2] = i64toi32_i32$0; + btTransform__operator__28btVector3_20const__29_20const($6 + 160 | 0 | 0, $7 + 28 | 0 | 0, (HEAP32[($6 + 248 | 0) >> 2] | 0) + 16 | 0 | 0); + $40 = 8; + i64toi32_i32$2 = ($6 + 160 | 0) + $40 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $293 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 208 | 0) + $40 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $293; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 160 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 164 | 0) >> 2] | 0; + $297 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 208 | 0) >> 2] = $297; + HEAP32[($6 + 212 | 0) >> 2] = i64toi32_i32$0; + btTransform__operator__28btVector3_20const__29_20const($6 + 144 | 0 | 0, $7 + 28 | 0 | 0, (HEAP32[($6 + 248 | 0) >> 2] | 0) + 32 | 0 | 0); + $57 = 8; + i64toi32_i32$2 = ($6 + 144 | 0) + $57 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $328 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 192 | 0) + $57 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $328; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 144 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 148 | 0) >> 2] | 0; + $332 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 192 | 0) >> 2] = $332; + HEAP32[($6 + 196 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 96 | 0 | 0, $6 + 224 | 0 | 0, $6 + 208 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 112 | 0 | 0, $6 + 96 | 0 | 0, $6 + 192 | 0 | 0); + HEAPF32[($6 + 92 | 0) >> 2] = Math_fround(.3333333432674408); + operator__28btVector3_20const__2c_20float_20const__29($6 + 128 | 0 | 0, $6 + 112 | 0 | 0, $6 + 92 | 0 | 0); + $94 = HEAP32[($7 + 8 | 0) >> 2] | 0; + label$1 : { + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$94 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($94) | 0) & 16384 | 0)) { + break label$1 + } + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 60 | 0 | 0, $6 + 208 | 0 | 0, $6 + 224 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 44 | 0 | 0, $6 + 192 | 0 | 0, $6 + 224 | 0 | 0); + btVector3__cross_28btVector3_20const__29_20const($6 + 76 | 0 | 0, $6 + 60 | 0 | 0, $6 + 44 | 0 | 0); + btVector3__normalize_28_29($6 + 76 | 0 | 0) | 0; + HEAPF32[($6 + 24 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($6 + 20 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($6 + 16 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 28 | 0 | 0, $6 + 24 | 0 | 0, $6 + 20 | 0 | 0, $6 + 16 | 0 | 0) | 0; + $146 = HEAP32[($7 + 8 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 | 0, $6 + 128 | 0 | 0, $6 + 76 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$146 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($146, $6 + 128 | 0, $6, $6 + 28 | 0); + } + $163 = HEAP32[($7 + 8 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$163 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($163, $6 + 224 | 0, $6 + 208 | 0, $7 + 12 | 0); + $174 = HEAP32[($7 + 8 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$174 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($174, $6 + 208 | 0, $6 + 192 | 0, $7 + 12 | 0); + $185 = HEAP32[($7 + 8 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$185 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($185, $6 + 192 | 0, $6 + 224 | 0, $7 + 12 | 0); + __stack_pointer = $6 + 256 | 0; + return; + } + + function DebugDrawcallback__internalProcessTriangleIndex_28btVector3__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($7, HEAP32[($6 + 8 | 0) >> 2] | 0, HEAP32[($6 + 4 | 0) >> 2] | 0, HEAP32[$6 >> 2] | 0); + __stack_pointer = $6 + 16 | 0; + return; + } + + function non_virtual_20thunk_20to_20DebugDrawcallback___DebugDrawcallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $7 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $4; + $7 = DebugDrawcallback___DebugDrawcallback_28_29($4 + -4 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $7 | 0; + } + + function non_virtual_20thunk_20to_20DebugDrawcallback___DebugDrawcallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + DebugDrawcallback___DebugDrawcallback_28_29_1((HEAP32[($3 + 12 | 0) >> 2] | 0) + -4 | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function non_virtual_20thunk_20to_20DebugDrawcallback__internalProcessTriangleIndex_28btVector3__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + DebugDrawcallback__internalProcessTriangleIndex_28btVector3__2c_20int_2c_20int_29((HEAP32[($6 + 12 | 0) >> 2] | 0) + -4 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6 >> 2] | 0 | 0); + __stack_pointer = $6 + 16 | 0; + return; + } + + function btAlignedAllocator_btCollisionShape__2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btCollisionShape____init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btAlignedAllocator_btHashPtr_2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btHashPtr___init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btAlignedObjectArray_btHashPtr___clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btHashPtr___destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btHashPtr___size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btHashPtr___deallocate_28_29($4 | 0); + btAlignedObjectArray_btHashPtr___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btCollisionShape____clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btCollisionShape____destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btCollisionShape____size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btCollisionShape____deallocate_28_29($4 | 0); + btAlignedObjectArray_btCollisionShape____init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btHashPtr___size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btHashPtr___destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btHashPtr___deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btHashPtr_2c_2016u___deallocate_28btHashPtr__29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocator_btHashPtr_2c_2016u___deallocate_28btHashPtr__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btCollisionShape____destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btCollisionShape____deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btCollisionShape__2c_2016u___deallocate_28btCollisionShape___29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocator_btCollisionShape__2c_2016u___deallocate_28btCollisionShape___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btCollisionObject____destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btCollisionObject____deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btCollisionObject__2c_2016u___deallocate_28btCollisionObject___29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocator_btCollisionObject__2c_2016u___deallocate_28btCollisionObject___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btCollisionObject____allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btCollisionObject__2c_2016u___allocate_28int_2c_20btCollisionObject__20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btCollisionObject____copy_28int_2c_20int_2c_20btCollisionObject___29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[((HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[((HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedAllocator_btCollisionObject__2c_2016u___allocate_28int_2c_20btCollisionObject__20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btAlignedObjectArray_btHashPtr___operator_5b_5d_28int_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 176 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btHashPtr___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 177 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 3 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btHashPtr__equals_28btHashPtr_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $13 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $13 = (btHashPtr__getPointer_28_29_20const(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0 | 0) == (btHashPtr__getPointer_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0; + __stack_pointer = $4 + 16 | 0; + return $13 | 0; + } + + function btHashPtr__getPointer_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[(HEAP32[($3 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btCollisionShape____allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btAlignedObjectArray_btCollisionShape____reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btCollisionShape____capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btCollisionShape____allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btCollisionShape____copy_28int_2c_20int_2c_20btCollisionShape___29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btCollisionShape____size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btCollisionShape____destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btCollisionShape____size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btCollisionShape____deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btHashPtr___capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btHashPtr___allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btAlignedObjectArray_btHashPtr___reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btHashPtr___capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btHashPtr___allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btHashPtr___copy_28int_2c_20int_2c_20btHashPtr__29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btHashPtr___size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btHashPtr___destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btHashPtr___size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btHashPtr___deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btHashPtr___operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btHashPtr___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 3 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btAlignedObjectArray_btCollisionShape____allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btCollisionShape__2c_2016u___allocate_28int_2c_20btCollisionShape__20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btCollisionShape____copy_28int_2c_20int_2c_20btCollisionShape___29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[((HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[((HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedAllocator_btCollisionShape__2c_2016u___allocate_28int_2c_20btCollisionShape__20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btAlignedObjectArray_btHashPtr___allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btHashPtr_2c_2016u___allocate_28int_2c_20btHashPtr_20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btHashPtr___copy_28int_2c_20int_2c_20btHashPtr__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, $7 = 0, i64toi32_i32$1 = 0, $85 = 0; + $6 = __stack_pointer - 32 | 0; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + i64toi32_i32$2 = (HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 3 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $85 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $85; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedAllocator_btHashPtr_2c_2016u___allocate_28int_2c_20btHashPtr_20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 3 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function _GLOBAL__sub_I_btCollisionWorld_cpp() { + __cxx_global_var_init_10(); + return; + } + + function __cxx_global_var_init_11() { + btInfMaskConverter__btInfMaskConverter_28int_29(113984 | 0, 2139095040 | 0) | 0; + return; + } + + function btCollisionAlgorithm__btCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = 93584 + 8 | 0; + HEAP32[($5 + 4 | 0) >> 2] = HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0; + return $5 | 0; + } + + function btCollisionAlgorithm___btCollisionAlgorithm_28_29($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function _GLOBAL__sub_I_btCollisionAlgorithm_cpp() { + __cxx_global_var_init_11(); + return; + } + + function __cxx_global_var_init_13() { + btInfMaskConverter__btInfMaskConverter_28int_29(113988 | 0, 2139095040 | 0) | 0; + return; + } + + function btActivatingCollisionAlgorithm__btActivatingCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btCollisionAlgorithm__btCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo_20const__29($7 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$7 >> 2] = 93612 + 8 | 0; + __stack_pointer = $6 + 16 | 0; + return $7 | 0; + } + + function btActivatingCollisionAlgorithm___btActivatingCollisionAlgorithm_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionAlgorithm___btCollisionAlgorithm_28_29_1($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCollisionAlgorithm___btCollisionAlgorithm_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btActivatingCollisionAlgorithm___btActivatingCollisionAlgorithm_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function _GLOBAL__sub_I_btActivatingCollisionAlgorithm_cpp() { + __cxx_global_var_init_13(); + return; + } + + function __cxx_global_var_init_14() { + btInfMaskConverter__btInfMaskConverter_28int_29(113992 | 0, 2139095040 | 0) | 0; + return; + } + + function btConvexConvexAlgorithm__CreateFunc__CreateFunc_28btConvexPenetrationDepthSolver__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btCollisionAlgorithmCreateFunc__btCollisionAlgorithmCreateFunc_28_29($5 | 0) | 0; + HEAP32[$5 >> 2] = 93716 + 8 | 0; + HEAP32[($5 + 12 | 0) >> 2] = 0; + HEAP32[($5 + 16 | 0) >> 2] = 3; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function btConvexConvexAlgorithm__CreateFunc___CreateFunc_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionAlgorithmCreateFunc___btCollisionAlgorithmCreateFunc_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConvexConvexAlgorithm__CreateFunc___CreateFunc_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[605 | 0]($4) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btConvexConvexAlgorithm__btConvexConvexAlgorithm_28btPersistentManifold__2c_20btCollisionAlgorithmConstructionInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btConvexPenetrationDepthSolver__2c_20int_2c_20int_29($0, $1, $2, $3, $4, $5, $6, $7) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + var $10 = 0, $11 = 0; + $10 = __stack_pointer - 32 | 0; + __stack_pointer = $10; + HEAP32[($10 + 28 | 0) >> 2] = $0; + HEAP32[($10 + 24 | 0) >> 2] = $1; + HEAP32[($10 + 20 | 0) >> 2] = $2; + HEAP32[($10 + 16 | 0) >> 2] = $3; + HEAP32[($10 + 12 | 0) >> 2] = $4; + HEAP32[($10 + 8 | 0) >> 2] = $5; + HEAP32[($10 + 4 | 0) >> 2] = $6; + HEAP32[$10 >> 2] = $7; + $11 = HEAP32[($10 + 28 | 0) >> 2] | 0; + btActivatingCollisionAlgorithm__btActivatingCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($11 | 0, HEAP32[($10 + 20 | 0) >> 2] | 0 | 0, HEAP32[($10 + 16 | 0) >> 2] | 0 | 0, HEAP32[($10 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$11 >> 2] = 93736 + 8 | 0; + HEAP32[($11 + 8 | 0) >> 2] = HEAP32[($10 + 8 | 0) >> 2] | 0; + btAlignedObjectArray_btVector3___btAlignedObjectArray_28_29($11 + 12 | 0 | 0) | 0; + btAlignedObjectArray_btVector3___btAlignedObjectArray_28_29($11 + 32 | 0 | 0) | 0; + HEAP8[($11 + 52 | 0) >> 0] = 0; + HEAP32[($11 + 56 | 0) >> 2] = HEAP32[($10 + 24 | 0) >> 2] | 0; + HEAP8[($11 + 60 | 0) >> 0] = 0; + HEAP32[($11 + 64 | 0) >> 2] = HEAP32[($10 + 4 | 0) >> 2] | 0; + HEAP32[($11 + 68 | 0) >> 2] = HEAP32[$10 >> 2] | 0; + __stack_pointer = $10 + 32 | 0; + return $11 | 0; + } + + function btConvexConvexAlgorithm___btConvexConvexAlgorithm_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0, $18 = 0, $26 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $4; + HEAP32[$4 >> 2] = 93736 + 8 | 0; + label$1 : { + if (!((HEAPU8[($4 + 52 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAP32[($4 + 56 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + $18 = HEAP32[($4 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$18 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($18, HEAP32[($4 + 56 | 0) >> 2] | 0); + } + } + btAlignedObjectArray_btVector3____btAlignedObjectArray_28_29($4 + 32 | 0 | 0) | 0; + btAlignedObjectArray_btVector3____btAlignedObjectArray_28_29($4 + 12 | 0 | 0) | 0; + btActivatingCollisionAlgorithm___btActivatingCollisionAlgorithm_28_29($4 | 0) | 0; + $26 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $26 | 0; + } + + function btConvexConvexAlgorithm___btConvexConvexAlgorithm_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[606 | 0]($4) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $16 = 0, $98 = 0, $169 = 0, $240 = 0, $274 = 0, $278 = 0, $319 = Math_fround(0), $320 = 0, $329 = Math_fround(0), $330 = 0, $403 = 0, $404 = 0, $416 = 0, $572 = 0, $585 = 0, $590 = 0, $693 = 0, $713 = 0, $717 = 0, $277 = Math_fround(0), $1814 = 0, $1818 = 0, $562 = 0, $2152 = 0, $2156 = 0, $584 = Math_fround(0), $589 = Math_fround(0), $683 = 0, $2406 = 0, $2410 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0, wasm2js_i32$4 = 0, wasm2js_i32$5 = 0, wasm2js_f32$0 = Math_fround(0); + $7 = __stack_pointer - 1664 | 0; + __stack_pointer = $7; + HEAP32[($7 + 1660 | 0) >> 2] = $0; + HEAP32[($7 + 1656 | 0) >> 2] = $1; + HEAP32[($7 + 1652 | 0) >> 2] = $2; + HEAP32[($7 + 1648 | 0) >> 2] = $3; + HEAP32[($7 + 1644 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 1660 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($8 + 56 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$1 + } + $16 = HEAP32[($8 + 4 | 0) >> 2] | 0; + (wasm2js_i32$0 = $8, wasm2js_i32$1 = ((((wasm2js_i32$3 = $16, wasm2js_i32$4 = btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 1656 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$5 = btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 1652 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$2 = HEAP32[((HEAP32[$16 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$2](wasm2js_i32$3 | 0, wasm2js_i32$4 | 0, wasm2js_i32$5 | 0) | 0)), HEAP32[(wasm2js_i32$0 + 56 | 0) >> 2] = wasm2js_i32$1; + HEAP8[($8 + 52 | 0) >> 0] = 1; + } + btManifoldResult__setPersistentManifold_28btPersistentManifold__29(HEAP32[($7 + 1644 | 0) >> 2] | 0 | 0, HEAP32[($8 + 56 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 1656 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 1640 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 1652 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 1636 | 0) >> 2] = wasm2js_i32$1; + btVector3__btVector3_28_29($7 + 1620 | 0 | 0) | 0; + btVector3__btVector3_28_29($7 + 1604 | 0 | 0) | 0; + label$2 : { + label$3 : { + if (!((btCollisionShape__getShapeType_28_29_20const(HEAP32[($7 + 1640 | 0) >> 2] | 0 | 0) | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$3 + } + if (!((btCollisionShape__getShapeType_28_29_20const(HEAP32[($7 + 1636 | 0) >> 2] | 0 | 0) | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($7 + 1600 | 0) >> 2] = HEAP32[($7 + 1640 | 0) >> 2] | 0; + HEAP32[($7 + 1596 | 0) >> 2] = HEAP32[($7 + 1636 | 0) >> 2] | 0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btPersistentManifold__getContactBreakingThreshold_28_29_20const(HEAP32[($8 + 56 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 1592 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(capsuleCapsuleDistance_28btVector3__2c_20btVector3__2c_20float_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20btTransform_20const__2c_20btTransform_20const__2c_20float_29($7 + 1620 | 0 | 0, $7 + 1604 | 0 | 0, Math_fround(Math_fround(btCapsuleShape__getHalfHeight_28_29_20const(HEAP32[($7 + 1600 | 0) >> 2] | 0 | 0))), Math_fround(Math_fround(btCapsuleShape__getRadius_28_29_20const(HEAP32[($7 + 1600 | 0) >> 2] | 0 | 0))), Math_fround(Math_fround(btCapsuleShape__getHalfHeight_28_29_20const(HEAP32[($7 + 1596 | 0) >> 2] | 0 | 0))), Math_fround(Math_fround(btCapsuleShape__getRadius_28_29_20const(HEAP32[($7 + 1596 | 0) >> 2] | 0 | 0))), btCapsuleShape__getUpAxis_28_29_20const(HEAP32[($7 + 1600 | 0) >> 2] | 0 | 0) | 0 | 0, btCapsuleShape__getUpAxis_28_29_20const(HEAP32[($7 + 1596 | 0) >> 2] | 0 | 0) | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 1656 | 0) >> 2] | 0 | 0) | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 1652 | 0) >> 2] | 0 | 0) | 0 | 0, Math_fround(Math_fround(HEAPF32[($7 + 1592 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 1588 | 0) >> 2] = wasm2js_f32$0; + label$4 : { + if (!(Math_fround(HEAPF32[($7 + 1588 | 0) >> 2]) < Math_fround(HEAPF32[($7 + 1592 | 0) >> 2]) & 1 | 0)) { + break label$4 + } + label$5 : { + if (Math_fround(btVector3__length2_28_29_20const($7 + 1620 | 0 | 0)) >= Math_fround(1.4210854715202004e-14) & 1 | 0) { + break label$5 + } + __assert_fail(86431 | 0, 73223 | 0, 326 | 0, 76857 | 0); + wasm2js_trap(); + } + $98 = HEAP32[($7 + 1644 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$98 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($98, $7 + 1620 | 0, $7 + 1604 | 0, Math_fround(HEAPF32[($7 + 1588 | 0) >> 2])); + } + btManifoldResult__refreshContactPoints_28_29(HEAP32[($7 + 1644 | 0) >> 2] | 0 | 0); + break label$2; + } + label$6 : { + if (!((btCollisionShape__getShapeType_28_29_20const(HEAP32[($7 + 1640 | 0) >> 2] | 0 | 0) | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$6 + } + if (!((btCollisionShape__getShapeType_28_29_20const(HEAP32[($7 + 1636 | 0) >> 2] | 0 | 0) | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[($7 + 1584 | 0) >> 2] = HEAP32[($7 + 1640 | 0) >> 2] | 0; + HEAP32[($7 + 1580 | 0) >> 2] = HEAP32[($7 + 1636 | 0) >> 2] | 0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btPersistentManifold__getContactBreakingThreshold_28_29_20const(HEAP32[($8 + 56 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 1576 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(capsuleCapsuleDistance_28btVector3__2c_20btVector3__2c_20float_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20btTransform_20const__2c_20btTransform_20const__2c_20float_29($7 + 1620 | 0 | 0, $7 + 1604 | 0 | 0, Math_fround(Math_fround(btCapsuleShape__getHalfHeight_28_29_20const(HEAP32[($7 + 1584 | 0) >> 2] | 0 | 0))), Math_fround(Math_fround(btCapsuleShape__getRadius_28_29_20const(HEAP32[($7 + 1584 | 0) >> 2] | 0 | 0))), Math_fround(Math_fround(0 | 0)), Math_fround(Math_fround(btSphereShape__getRadius_28_29_20const(HEAP32[($7 + 1580 | 0) >> 2] | 0 | 0))), btCapsuleShape__getUpAxis_28_29_20const(HEAP32[($7 + 1584 | 0) >> 2] | 0 | 0) | 0 | 0, 1 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 1656 | 0) >> 2] | 0 | 0) | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 1652 | 0) >> 2] | 0 | 0) | 0 | 0, Math_fround(Math_fround(HEAPF32[($7 + 1576 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 1572 | 0) >> 2] = wasm2js_f32$0; + label$7 : { + if (!(Math_fround(HEAPF32[($7 + 1572 | 0) >> 2]) < Math_fround(HEAPF32[($7 + 1576 | 0) >> 2]) & 1 | 0)) { + break label$7 + } + label$8 : { + if (Math_fround(btVector3__length2_28_29_20const($7 + 1620 | 0 | 0)) >= Math_fround(1.4210854715202004e-14) & 1 | 0) { + break label$8 + } + __assert_fail(86431 | 0, 73223 | 0, 348 | 0, 76857 | 0); + wasm2js_trap(); + } + $169 = HEAP32[($7 + 1644 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$169 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($169, $7 + 1620 | 0, $7 + 1604 | 0, Math_fround(HEAPF32[($7 + 1572 | 0) >> 2])); + } + btManifoldResult__refreshContactPoints_28_29(HEAP32[($7 + 1644 | 0) >> 2] | 0 | 0); + break label$2; + } + label$9 : { + if (!((btCollisionShape__getShapeType_28_29_20const(HEAP32[($7 + 1640 | 0) >> 2] | 0 | 0) | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$9 + } + if (!((btCollisionShape__getShapeType_28_29_20const(HEAP32[($7 + 1636 | 0) >> 2] | 0 | 0) | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$9 + } + HEAP32[($7 + 1568 | 0) >> 2] = HEAP32[($7 + 1640 | 0) >> 2] | 0; + HEAP32[($7 + 1564 | 0) >> 2] = HEAP32[($7 + 1636 | 0) >> 2] | 0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btPersistentManifold__getContactBreakingThreshold_28_29_20const(HEAP32[($8 + 56 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 1560 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(capsuleCapsuleDistance_28btVector3__2c_20btVector3__2c_20float_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20btTransform_20const__2c_20btTransform_20const__2c_20float_29($7 + 1620 | 0 | 0, $7 + 1604 | 0 | 0, Math_fround(Math_fround(0 | 0)), Math_fround(Math_fround(btSphereShape__getRadius_28_29_20const(HEAP32[($7 + 1568 | 0) >> 2] | 0 | 0))), Math_fround(Math_fround(btCapsuleShape__getHalfHeight_28_29_20const(HEAP32[($7 + 1564 | 0) >> 2] | 0 | 0))), Math_fround(Math_fround(btCapsuleShape__getRadius_28_29_20const(HEAP32[($7 + 1564 | 0) >> 2] | 0 | 0))), 1 | 0, btCapsuleShape__getUpAxis_28_29_20const(HEAP32[($7 + 1564 | 0) >> 2] | 0 | 0) | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 1656 | 0) >> 2] | 0 | 0) | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 1652 | 0) >> 2] | 0 | 0) | 0 | 0, Math_fround(Math_fround(HEAPF32[($7 + 1560 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 1556 | 0) >> 2] = wasm2js_f32$0; + label$10 : { + if (!(Math_fround(HEAPF32[($7 + 1556 | 0) >> 2]) < Math_fround(HEAPF32[($7 + 1560 | 0) >> 2]) & 1 | 0)) { + break label$10 + } + label$11 : { + if (Math_fround(btVector3__length2_28_29_20const($7 + 1620 | 0 | 0)) >= Math_fround(1.4210854715202004e-14) & 1 | 0) { + break label$11 + } + __assert_fail(86431 | 0, 73223 | 0, 370 | 0, 76857 | 0); + wasm2js_trap(); + } + $240 = HEAP32[($7 + 1644 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$240 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($240, $7 + 1620 | 0, $7 + 1604 | 0, Math_fround(HEAPF32[($7 + 1556 | 0) >> 2])); + } + btManifoldResult__refreshContactPoints_28_29(HEAP32[($7 + 1644 | 0) >> 2] | 0 | 0); + break label$2; + } + btDiscreteCollisionDetectorInterface__ClosestPointInput__ClosestPointInput_28_29($7 + 1424 | 0 | 0) | 0; + btVoronoiSimplexSolver__btVoronoiSimplexSolver_28_29($7 + 1064 | 0 | 0) | 0; + btGjkPairDetector__btGjkPairDetector_28btConvexShape_20const__2c_20btConvexShape_20const__2c_20btVoronoiSimplexSolver__2c_20btConvexPenetrationDepthSolver__29($7 + 984 | 0 | 0, HEAP32[($7 + 1640 | 0) >> 2] | 0 | 0, HEAP32[($7 + 1636 | 0) >> 2] | 0 | 0, $7 + 1064 | 0 | 0, HEAP32[($8 + 8 | 0) >> 2] | 0 | 0) | 0; + btGjkPairDetector__setMinkowskiA_28btConvexShape_20const__29($7 + 984 | 0 | 0, HEAP32[($7 + 1640 | 0) >> 2] | 0 | 0); + btGjkPairDetector__setMinkowskiB_28btConvexShape_20const__29($7 + 984 | 0 | 0, HEAP32[($7 + 1636 | 0) >> 2] | 0 | 0); + $274 = HEAP32[($7 + 1640 | 0) >> 2] | 0; + $277 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$274 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($274)); + $278 = HEAP32[($7 + 1636 | 0) >> 2] | 0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround($277 + Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$278 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($278))) + Math_fround(btPersistentManifold__getContactBreakingThreshold_28_29_20const(HEAP32[($8 + 56 | 0) >> 2] | 0 | 0))) + Math_fround(HEAPF32[((HEAP32[($7 + 1644 | 0) >> 2] | 0) + 32 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 1552 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($7 + 1552 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($7 + 1552 | 0) >> 2]) * Math_fround(HEAPF32[($7 + 1552 | 0) >> 2])); + btTransform__operator__28btTransform_20const__29($7 + 1424 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 1656 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + btTransform__operator__28btTransform_20const__29(($7 + 1424 | 0) + 64 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 1652 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + label$12 : { + label$13 : { + if (!((btCollisionShape__isPolyhedral_28_29_20const(HEAP32[($7 + 1640 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$13 + } + if (!((btCollisionShape__isPolyhedral_28_29_20const(HEAP32[($7 + 1636 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$13 + } + btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btDummyResult__btDummyResult_28_29($7 + 980 | 0 | 0) | 0; + label$14 : { + label$15 : { + if (btCollisionShape__getShapeType_28_29_20const(HEAP32[($7 + 1640 | 0) >> 2] | 0 | 0) | 0) { + break label$15 + } + $319 = Math_fround(0 | 0); + break label$14; + } + $320 = HEAP32[($7 + 1640 | 0) >> 2] | 0; + $319 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$320 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($320)); + } + HEAPF32[($7 + 976 | 0) >> 2] = $319; + label$16 : { + label$17 : { + if (btCollisionShape__getShapeType_28_29_20const(HEAP32[($7 + 1636 | 0) >> 2] | 0 | 0) | 0) { + break label$17 + } + $329 = Math_fround(0 | 0); + break label$16; + } + $330 = HEAP32[($7 + 1636 | 0) >> 2] | 0; + $329 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$330 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($330)); + } + HEAPF32[($7 + 972 | 0) >> 2] = $329; + btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btWithoutMarginResult__btWithoutMarginResult_28btDiscreteCollisionDetectorInterface__Result__2c_20float_2c_20float_29($7 + 932 | 0 | 0, HEAP32[($7 + 1644 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($7 + 976 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($7 + 972 | 0) >> 2]))) | 0; + HEAP32[($7 + 928 | 0) >> 2] = HEAP32[($7 + 1640 | 0) >> 2] | 0; + HEAP32[($7 + 924 | 0) >> 2] = HEAP32[($7 + 1636 | 0) >> 2] | 0; + label$18 : { + label$19 : { + if (!((btPolyhedralConvexShape__getConvexPolyhedron_28_29_20const(HEAP32[($7 + 928 | 0) >> 2] | 0 | 0) | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$19 + } + if (!((btPolyhedralConvexShape__getConvexPolyhedron_28_29_20const(HEAP32[($7 + 924 | 0) >> 2] | 0 | 0) | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$19 + } + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btPersistentManifold__getContactBreakingThreshold_28_29_20const(HEAP32[($8 + 56 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 920 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($7 + 916 | 0) >> 2] = Math_fround(-1000000015047466219876688.0e6); + btVector3__btVector3_28_29($7 + 896 | 0 | 0) | 0; + HEAP8[($7 + 895 | 0) >> 0] = 1; + label$20 : { + label$21 : { + if (!((HEAPU8[((HEAP32[($7 + 1648 | 0) >> 2] | 0) + 24 | 0) >> 0] | 0) & 1 | 0)) { + break label$21 + } + (wasm2js_i32$0 = $7, wasm2js_i32$1 = (btPolyhedralContactClipping__findSeparatingAxis_28btConvexPolyhedron_20const__2c_20btConvexPolyhedron_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3__2c_20btDiscreteCollisionDetectorInterface__Result__29(btPolyhedralConvexShape__getConvexPolyhedron_28_29_20const(HEAP32[($7 + 928 | 0) >> 2] | 0 | 0) | 0 | 0, btPolyhedralConvexShape__getConvexPolyhedron_28_29_20const(HEAP32[($7 + 924 | 0) >> 2] | 0 | 0) | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 1656 | 0) >> 2] | 0 | 0) | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 1652 | 0) >> 2] | 0 | 0) | 0 | 0, $7 + 896 | 0 | 0, HEAP32[($7 + 1644 | 0) >> 2] | 0 | 0) | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 895 | 0) >> 0] = wasm2js_i32$1; + break label$20; + } + btGjkPairDetector__getClosestPoints_28btDiscreteCollisionDetectorInterface__ClosestPointInput_20const__2c_20btDiscreteCollisionDetectorInterface__Result__2c_20btIDebugDraw__2c_20bool_29($7 + 984 | 0 | 0, $7 + 1424 | 0 | 0, $7 + 932 | 0 | 0, HEAP32[((HEAP32[($7 + 1648 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + $403 = ($7 + 932 | 0) + 8 | 0; + $404 = 8; + i64toi32_i32$2 = $403 + $404 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1814 = i64toi32_i32$0; + i64toi32_i32$0 = ($7 + 896 | 0) + $404 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1814; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $403; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1818 = i64toi32_i32$1; + i64toi32_i32$1 = $7; + HEAP32[($7 + 896 | 0) >> 2] = $1818; + HEAP32[($7 + 900 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($7 + 916 | 0) >> 2] = Math_fround(HEAPF32[($7 + 964 | 0) >> 2]); + $416 = 0; + label$22 : { + if (!((HEAPU8[($7 + 968 | 0) >> 0] | 0) & 1 | 0)) { + break label$22 + } + $416 = Math_fround(HEAPF32[($7 + 916 | 0) >> 2]) < Math_fround(0 | 0); + } + HEAP8[($7 + 895 | 0) >> 0] = $416 & 1 | 0; + } + label$23 : { + if (!((HEAPU8[($7 + 895 | 0) >> 0] | 0) & 1 | 0)) { + break label$23 + } + btVector3__btVector3_28_29($7 + 876 | 0 | 0) | 0; + btAlignedObjectArray_btVector3___resize_28int_2c_20btVector3_20const__29($8 + 12 | 0 | 0, 0 | 0, $7 + 876 | 0 | 0); + btPolyhedralContactClipping__clipHullAgainstHull_28btVector3_20const__2c_20btConvexPolyhedron_20const__2c_20btConvexPolyhedron_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20float_2c_20float_2c_20btAlignedObjectArray_btVector3___2c_20btAlignedObjectArray_btVector3___2c_20btDiscreteCollisionDetectorInterface__Result__29($7 + 896 | 0 | 0, btPolyhedralConvexShape__getConvexPolyhedron_28_29_20const(HEAP32[($7 + 928 | 0) >> 2] | 0 | 0) | 0 | 0, btPolyhedralConvexShape__getConvexPolyhedron_28_29_20const(HEAP32[($7 + 924 | 0) >> 2] | 0 | 0) | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 1656 | 0) >> 2] | 0 | 0) | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 1652 | 0) >> 2] | 0 | 0) | 0 | 0, Math_fround(Math_fround(Math_fround(HEAPF32[($7 + 916 | 0) >> 2]) - Math_fround(HEAPF32[($7 + 920 | 0) >> 2]))), Math_fround(Math_fround(HEAPF32[($7 + 920 | 0) >> 2])), $8 + 12 | 0 | 0, $8 + 32 | 0 | 0, HEAP32[($7 + 1644 | 0) >> 2] | 0 | 0); + } + label$24 : { + if (!((HEAPU8[($8 + 52 | 0) >> 0] | 0) & 1 | 0)) { + break label$24 + } + btManifoldResult__refreshContactPoints_28_29(HEAP32[($7 + 1644 | 0) >> 2] | 0 | 0); + } + HEAP32[($7 + 872 | 0) >> 2] = 1; + break label$18; + } + label$25 : { + if (!((btPolyhedralConvexShape__getConvexPolyhedron_28_29_20const(HEAP32[($7 + 928 | 0) >> 2] | 0 | 0) | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$25 + } + if (!((btCollisionShape__getShapeType_28_29_20const(HEAP32[($7 + 924 | 0) >> 2] | 0 | 0) | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$25 + } + btAlignedObjectArray_btVector3___btAlignedObjectArray_28_29($7 + 852 | 0 | 0) | 0; + HEAP32[($7 + 848 | 0) >> 2] = HEAP32[($7 + 924 | 0) >> 2] | 0; + btTransform__operator__28btVector3_20const__29_20const($7 + 832 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 1652 | 0) >> 2] | 0 | 0) | 0 | 0, (HEAP32[($7 + 848 | 0) >> 2] | 0) + 64 | 0 | 0); + btAlignedObjectArray_btVector3___push_back_28btVector3_20const__29($7 + 852 | 0 | 0, $7 + 832 | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($7 + 816 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 1652 | 0) >> 2] | 0 | 0) | 0 | 0, ((HEAP32[($7 + 848 | 0) >> 2] | 0) + 64 | 0) + 16 | 0 | 0); + btAlignedObjectArray_btVector3___push_back_28btVector3_20const__29($7 + 852 | 0 | 0, $7 + 816 | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($7 + 800 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 1652 | 0) >> 2] | 0 | 0) | 0 | 0, ((HEAP32[($7 + 848 | 0) >> 2] | 0) + 64 | 0) + 32 | 0 | 0); + btAlignedObjectArray_btVector3___push_back_28btVector3_20const__29($7 + 852 | 0 | 0, $7 + 800 | 0 | 0); + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btPersistentManifold__getContactBreakingThreshold_28_29_20const(HEAP32[($8 + 56 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 796 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28_29($7 + 776 | 0 | 0) | 0; + HEAPF32[($7 + 772 | 0) >> 2] = Math_fround(-1000000015047466219876688.0e6); + HEAPF32[($7 + 768 | 0) >> 2] = Math_fround(HEAPF32[($7 + 796 | 0) >> 2]); + HEAP8[($7 + 767 | 0) >> 0] = 0; + btGjkPairDetector__getClosestPoints_28btDiscreteCollisionDetectorInterface__ClosestPointInput_20const__2c_20btDiscreteCollisionDetectorInterface__Result__2c_20btIDebugDraw__2c_20bool_29($7 + 984 | 0 | 0, $7 + 1424 | 0 | 0, $7 + 980 | 0 | 0, HEAP32[((HEAP32[($7 + 1648 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const(btGjkPairDetector__getCachedSeparatingAxis_28_29_20const($7 + 984 | 0 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 760 | 0) >> 2] = wasm2js_f32$0; + label$26 : { + if (!(Math_fround(HEAPF32[($7 + 760 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$26 + } + $562 = btGjkPairDetector__getCachedSeparatingAxis_28_29_20const($7 + 984 | 0 | 0) | 0; + HEAPF32[($7 + 740 | 0) >> 2] = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[($7 + 760 | 0) >> 2])); + operator__28btVector3_20const__2c_20float_20const__29($7 + 744 | 0 | 0, $562 | 0, $7 + 740 | 0 | 0); + $572 = 8; + i64toi32_i32$2 = ($7 + 744 | 0) + $572 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2152 = i64toi32_i32$0; + i64toi32_i32$0 = ($7 + 776 | 0) + $572 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2152; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $7; + i64toi32_i32$1 = HEAP32[($7 + 744 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($7 + 748 | 0) >> 2] | 0; + $2156 = i64toi32_i32$1; + i64toi32_i32$1 = $7; + HEAP32[($7 + 776 | 0) >> 2] = $2156; + HEAP32[($7 + 780 | 0) >> 2] = i64toi32_i32$0; + $584 = Math_fround(btGjkPairDetector__getCachedSeparatingDistance_28_29_20const($7 + 984 | 0 | 0)); + $585 = HEAP32[($7 + 1640 | 0) >> 2] | 0; + $589 = Math_fround($584 - Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$585 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($585))); + $590 = HEAP32[($7 + 1636 | 0) >> 2] | 0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround($589 - Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$590 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($590)))), HEAPF32[(wasm2js_i32$0 + 772 | 0) >> 2] = wasm2js_f32$0; + HEAP8[($7 + 767 | 0) >> 0] = 1; + } + label$27 : { + if (!((HEAPU8[($7 + 767 | 0) >> 0] | 0) & 1 | 0)) { + break label$27 + } + btVector3__btVector3_28_29($7 + 724 | 0 | 0) | 0; + btAlignedObjectArray_btVector3___resize_28int_2c_20btVector3_20const__29($8 + 32 | 0 | 0, 0 | 0, $7 + 724 | 0 | 0); + btPolyhedralContactClipping__clipFaceAgainstHull_28btVector3_20const__2c_20btConvexPolyhedron_20const__2c_20btTransform_20const__2c_20btAlignedObjectArray_btVector3___2c_20btAlignedObjectArray_btVector3___2c_20float_2c_20float_2c_20btDiscreteCollisionDetectorInterface__Result__29($7 + 776 | 0 | 0, btPolyhedralConvexShape__getConvexPolyhedron_28_29_20const(HEAP32[($7 + 928 | 0) >> 2] | 0 | 0) | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 1656 | 0) >> 2] | 0 | 0) | 0 | 0, $7 + 852 | 0 | 0, $8 + 32 | 0 | 0, Math_fround(Math_fround(Math_fround(HEAPF32[($7 + 772 | 0) >> 2]) - Math_fround(HEAPF32[($7 + 796 | 0) >> 2]))), Math_fround(Math_fround(HEAPF32[($7 + 768 | 0) >> 2])), HEAP32[($7 + 1644 | 0) >> 2] | 0 | 0); + } + label$28 : { + if (!((HEAPU8[($8 + 52 | 0) >> 0] | 0) & 1 | 0)) { + break label$28 + } + btManifoldResult__refreshContactPoints_28_29(HEAP32[($7 + 1644 | 0) >> 2] | 0 | 0); + } + HEAP32[($7 + 872 | 0) >> 2] = 1; + btAlignedObjectArray_btVector3____btAlignedObjectArray_28_29($7 + 852 | 0 | 0) | 0; + break label$18; + } + HEAP32[($7 + 872 | 0) >> 2] = 0; + } + btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btWithoutMarginResult___btWithoutMarginResult_28_29($7 + 932 | 0 | 0) | 0; + btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btDummyResult___btDummyResult_28_29($7 + 980 | 0 | 0) | 0; + if (HEAP32[($7 + 872 | 0) >> 2] | 0) { + break label$12 + } + } + btGjkPairDetector__getClosestPoints_28btDiscreteCollisionDetectorInterface__ClosestPointInput_20const__2c_20btDiscreteCollisionDetectorInterface__Result__2c_20btIDebugDraw__2c_20bool_29($7 + 984 | 0 | 0, $7 + 1424 | 0 | 0, HEAP32[($7 + 1644 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7 + 1648 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + label$29 : { + if (!(HEAP32[($8 + 64 | 0) >> 2] | 0)) { + break label$29 + } + if (!((btPersistentManifold__getNumContacts_28_29_20const(btManifoldResult__getPersistentManifold_28_29(HEAP32[($7 + 1644 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0) < (HEAP32[($8 + 68 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$29 + } + btVector3__btVector3_28_29($7 + 704 | 0 | 0) | 0; + btVector3__btVector3_28_29($7 + 688 | 0 | 0) | 0; + btVector3__btVector3_28_29($7 + 672 | 0 | 0) | 0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const(btGjkPairDetector__getCachedSeparatingAxis_28_29_20const($7 + 984 | 0 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 668 | 0) >> 2] = wasm2js_f32$0; + label$30 : { + if (!(Math_fround(HEAPF32[($7 + 668 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$30 + } + $683 = btGjkPairDetector__getCachedSeparatingAxis_28_29_20const($7 + 984 | 0 | 0) | 0; + HEAPF32[($7 + 648 | 0) >> 2] = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[($7 + 668 | 0) >> 2])); + operator__28btVector3_20const__2c_20float_20const__29($7 + 652 | 0 | 0, $683 | 0, $7 + 648 | 0 | 0); + $693 = 8; + i64toi32_i32$2 = ($7 + 652 | 0) + $693 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2406 = i64toi32_i32$0; + i64toi32_i32$0 = ($7 + 672 | 0) + $693 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2406; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $7; + i64toi32_i32$1 = HEAP32[($7 + 652 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($7 + 656 | 0) >> 2] | 0; + $2410 = i64toi32_i32$1; + i64toi32_i32$1 = $7; + HEAP32[($7 + 672 | 0) >> 2] = $2410; + HEAP32[($7 + 676 | 0) >> 2] = i64toi32_i32$0; + void_20btPlaneSpace1_btVector3__28btVector3_20const__2c_20btVector3__2c_20btVector3__29($7 + 672 | 0 | 0, $7 + 704 | 0 | 0, $7 + 688 | 0 | 0); + HEAP8[($7 + 647 | 0) >> 0] = 1; + HEAPF32[($7 + 640 | 0) >> 2] = Math_fround(.39269909262657166); + $713 = HEAP32[($7 + 1640 | 0) >> 2] | 0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$713 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($713))), HEAPF32[(wasm2js_i32$0 + 632 | 0) >> 2] = wasm2js_f32$0; + $717 = HEAP32[($7 + 1636 | 0) >> 2] | 0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$717 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($717))), HEAPF32[(wasm2js_i32$0 + 628 | 0) >> 2] = wasm2js_f32$0; + label$31 : { + label$32 : { + if (!(Math_fround(HEAPF32[($7 + 632 | 0) >> 2]) < Math_fround(HEAPF32[($7 + 628 | 0) >> 2]) & 1 | 0)) { + break label$32 + } + HEAPF32[($7 + 636 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[(0 + 112840 | 0) >> 2]) / Math_fround(HEAPF32[($7 + 632 | 0) >> 2])); + HEAP8[($7 + 647 | 0) >> 0] = 1; + break label$31; + } + HEAPF32[($7 + 636 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[(0 + 112840 | 0) >> 2]) / Math_fround(HEAPF32[($7 + 628 | 0) >> 2])); + HEAP8[($7 + 647 | 0) >> 0] = 0; + } + label$33 : { + if (!(Math_fround(HEAPF32[($7 + 636 | 0) >> 2]) > Math_fround(.39269909262657166) & 1 | 0)) { + break label$33 + } + HEAPF32[($7 + 636 | 0) >> 2] = Math_fround(.39269909262657166); + } + btTransform__btTransform_28_29($7 + 564 | 0 | 0) | 0; + label$34 : { + label$35 : { + if (!((HEAPU8[($7 + 647 | 0) >> 0] | 0) & 1 | 0)) { + break label$35 + } + btTransform__operator__28btTransform_20const__29($7 + 564 | 0 | 0, $7 + 1424 | 0 | 0) | 0; + break label$34; + } + btTransform__operator__28btTransform_20const__29($7 + 564 | 0 | 0, ($7 + 1424 | 0) + 64 | 0 | 0) | 0; + } + HEAP32[($7 + 720 | 0) >> 2] = 0; + label$36 : { + label$37 : while (1) { + if (!((HEAP32[($7 + 720 | 0) >> 2] | 0 | 0) < (HEAP32[($8 + 64 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$36 + } + label$38 : { + if (!(Math_fround(btVector3__length2_28_29_20const($7 + 704 | 0 | 0)) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$38 + } + btQuaternion__btQuaternion_28btVector3_20const__2c_20float_20const__29($7 + 548 | 0 | 0, $7 + 704 | 0 | 0, $7 + 636 | 0 | 0) | 0; + HEAPF32[($7 + 544 | 0) >> 2] = Math_fround(Math_fround(HEAP32[($7 + 720 | 0) >> 2] | 0 | 0) * Math_fround(Math_fround(6.2831854820251465) / Math_fround(HEAP32[($8 + 64 | 0) >> 2] | 0 | 0))); + btQuaternion__btQuaternion_28btVector3_20const__2c_20float_20const__29($7 + 528 | 0 | 0, $7 + 672 | 0 | 0, $7 + 544 | 0 | 0) | 0; + label$39 : { + label$40 : { + if (!((HEAPU8[($7 + 647 | 0) >> 0] | 0) & 1 | 0)) { + break label$40 + } + btQuaternion__inverse_28_29_20const($7 + 384 | 0 | 0, $7 + 528 | 0 | 0); + operator__28btQuaternion_20const__2c_20btQuaternion_20const__29($7 + 400 | 0 | 0, $7 + 384 | 0 | 0, $7 + 548 | 0 | 0); + operator__28btQuaternion_20const__2c_20btQuaternion_20const__29($7 + 416 | 0 | 0, $7 + 400 | 0 | 0, $7 + 528 | 0 | 0); + btMatrix3x3__btMatrix3x3_28btQuaternion_20const__29($7 + 432 | 0 | 0, $7 + 416 | 0 | 0) | 0; + operator__28btMatrix3x3_20const__2c_20btMatrix3x3_20const__29($7 + 480 | 0 | 0, $7 + 432 | 0 | 0, btTransform__getBasis_28_29_20const(btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 1656 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + btTransform__setBasis_28btMatrix3x3_20const__29($7 + 1424 | 0 | 0, $7 + 480 | 0 | 0); + btTransform__operator__28btTransform_20const__29(($7 + 1424 | 0) + 64 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 1652 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + break label$39; + } + btTransform__operator__28btTransform_20const__29($7 + 1424 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 1656 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + btQuaternion__inverse_28_29_20const($7 + 240 | 0 | 0, $7 + 528 | 0 | 0); + operator__28btQuaternion_20const__2c_20btQuaternion_20const__29($7 + 256 | 0 | 0, $7 + 240 | 0 | 0, $7 + 548 | 0 | 0); + operator__28btQuaternion_20const__2c_20btQuaternion_20const__29($7 + 272 | 0 | 0, $7 + 256 | 0 | 0, $7 + 528 | 0 | 0); + btMatrix3x3__btMatrix3x3_28btQuaternion_20const__29($7 + 288 | 0 | 0, $7 + 272 | 0 | 0) | 0; + operator__28btMatrix3x3_20const__2c_20btMatrix3x3_20const__29($7 + 336 | 0 | 0, $7 + 288 | 0 | 0, btTransform__getBasis_28_29_20const(btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 1652 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + btTransform__setBasis_28btMatrix3x3_20const__29(($7 + 1424 | 0) + 64 | 0 | 0, $7 + 336 | 0 | 0); + } + btPerturbedContactResult__btPerturbedContactResult_28btManifoldResult__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20bool_2c_20btIDebugDraw__29($7 | 0, HEAP32[($7 + 1644 | 0) >> 2] | 0 | 0, $7 + 1424 | 0 | 0, ($7 + 1424 | 0) + 64 | 0 | 0, $7 + 564 | 0 | 0, (HEAPU8[($7 + 647 | 0) >> 0] | 0) & 1 | 0 | 0, HEAP32[((HEAP32[($7 + 1648 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) | 0; + btGjkPairDetector__getClosestPoints_28btDiscreteCollisionDetectorInterface__ClosestPointInput_20const__2c_20btDiscreteCollisionDetectorInterface__Result__2c_20btIDebugDraw__2c_20bool_29($7 + 984 | 0 | 0, $7 + 1424 | 0 | 0, $7 | 0, HEAP32[((HEAP32[($7 + 1648 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + btPerturbedContactResult___btPerturbedContactResult_28_29($7 | 0) | 0; + } + HEAP32[($7 + 720 | 0) >> 2] = (HEAP32[($7 + 720 | 0) >> 2] | 0) + 1 | 0; + continue label$37; + }; + } + } + } + HEAP32[($7 + 872 | 0) >> 2] = 0; + } + btGjkPairDetector___btGjkPairDetector_28_29($7 + 984 | 0 | 0) | 0; + label$41 : { + switch (HEAP32[($7 + 872 | 0) >> 2] | 0 | 0) { + case 1: + break label$2; + default: + break label$41; + }; + } + if (!((HEAPU8[($8 + 52 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btManifoldResult__refreshContactPoints_28_29(HEAP32[($7 + 1644 | 0) >> 2] | 0 | 0); + } + __stack_pointer = $7 + 1664 | 0; + return; + } + + function btManifoldResult__setPersistentManifold_28btPersistentManifold__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return; + } + + function capsuleCapsuleDistance_28btVector3__2c_20btVector3__2c_20float_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20btTransform_20const__2c_20btTransform_20const__2c_20float_29($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = Math_fround($3); + $4 = Math_fround($4); + $5 = Math_fround($5); + $6 = $6 | 0; + $7 = $7 | 0; + $8 = $8 | 0; + $9 = $9 | 0; + $10 = Math_fround($10); + var $13 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $21 = 0, $22 = 0, $36 = 0, $37 = 0, $135 = 0, $137 = 0, $167 = 0, $169 = 0, $235 = 0, $239 = 0, $269 = 0, $273 = 0, $455 = 0, $468 = 0, $517 = 0, $530 = 0, $176 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $13 = __stack_pointer - 288 | 0; + __stack_pointer = $13; + HEAP32[($13 + 280 | 0) >> 2] = $0; + HEAP32[($13 + 276 | 0) >> 2] = $1; + HEAPF32[($13 + 272 | 0) >> 2] = $2; + HEAPF32[($13 + 268 | 0) >> 2] = $3; + HEAPF32[($13 + 264 | 0) >> 2] = $4; + HEAPF32[($13 + 260 | 0) >> 2] = $5; + HEAP32[($13 + 256 | 0) >> 2] = $6; + HEAP32[($13 + 252 | 0) >> 2] = $7; + HEAP32[($13 + 248 | 0) >> 2] = $8; + HEAP32[($13 + 244 | 0) >> 2] = $9; + HEAPF32[($13 + 240 | 0) >> 2] = $10; + btMatrix3x3__getColumn_28int_29_20const($13 + 224 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($13 + 248 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($13 + 256 | 0) >> 2] | 0 | 0); + $21 = btTransform__getOrigin_28_29_20const(HEAP32[($13 + 248 | 0) >> 2] | 0 | 0) | 0; + $22 = 8; + i64toi32_i32$2 = $21 + $22 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $235 = i64toi32_i32$0; + i64toi32_i32$0 = ($13 + 208 | 0) + $22 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $235; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $21; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $239 = i64toi32_i32$1; + i64toi32_i32$1 = $13; + HEAP32[($13 + 208 | 0) >> 2] = $239; + HEAP32[($13 + 212 | 0) >> 2] = i64toi32_i32$0; + btMatrix3x3__getColumn_28int_29_20const($13 + 192 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($13 + 244 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($13 + 252 | 0) >> 2] | 0 | 0); + $36 = btTransform__getOrigin_28_29_20const(HEAP32[($13 + 244 | 0) >> 2] | 0 | 0) | 0; + $37 = 8; + i64toi32_i32$2 = $36 + $37 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $269 = i64toi32_i32$0; + i64toi32_i32$0 = ($13 + 176 | 0) + $37 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $269; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $36; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $273 = i64toi32_i32$1; + i64toi32_i32$1 = $13; + HEAP32[($13 + 176 | 0) >> 2] = $273; + HEAP32[($13 + 180 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($13 + 160 | 0 | 0, $13 + 176 | 0 | 0, $13 + 208 | 0 | 0); + btVector3__btVector3_28_29($13 + 144 | 0 | 0) | 0; + btVector3__btVector3_28_29($13 + 128 | 0 | 0) | 0; + btVector3__btVector3_28_29($13 + 112 | 0 | 0) | 0; + segmentsClosestPoints_28btVector3__2c_20btVector3__2c_20btVector3__2c_20float__2c_20float__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20btVector3_20const__2c_20float_29($13 + 144 | 0 | 0, $13 + 128 | 0 | 0, $13 + 112 | 0 | 0, $13 + 108 | 0 | 0, $13 + 104 | 0 | 0, $13 + 160 | 0 | 0, $13 + 224 | 0 | 0, Math_fround(Math_fround(HEAPF32[($13 + 272 | 0) >> 2])), $13 + 192 | 0 | 0, Math_fround(Math_fround(HEAPF32[($13 + 264 | 0) >> 2]))); + (wasm2js_i32$0 = $13, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(btVector3__length_28_29_20const($13 + 144 | 0 | 0)) - Math_fround(HEAPF32[($13 + 268 | 0) >> 2])) - Math_fround(HEAPF32[($13 + 260 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 100 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($13 + 100 | 0) >> 2]) > Math_fround(HEAPF32[($13 + 240 | 0) >> 2]) & 1 | 0)) { + break label$2 + } + HEAPF32[($13 + 284 | 0) >> 2] = Math_fround(HEAPF32[($13 + 100 | 0) >> 2]); + break label$1; + } + (wasm2js_i32$0 = $13, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($13 + 144 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 96 | 0) >> 2] = wasm2js_f32$0; + label$3 : { + label$4 : { + if (!(Math_fround(HEAPF32[($13 + 96 | 0) >> 2]) <= Math_fround(1.4210854715202004e-14) & 1 | 0)) { + break label$4 + } + btVector3__btVector3_28_29($13 + 80 | 0 | 0) | 0; + void_20btPlaneSpace1_btVector3__28btVector3_20const__2c_20btVector3__2c_20btVector3__29($13 + 224 | 0 | 0, HEAP32[($13 + 280 | 0) >> 2] | 0 | 0, $13 + 80 | 0 | 0); + break label$3; + } + (wasm2js_i32$0 = $13, wasm2js_f32$0 = Math_fround(-Math_fround(Math_fround(1.0) / Math_fround(btSqrt_28float_29(Math_fround(Math_fround(HEAPF32[($13 + 96 | 0) >> 2]))))))), HEAPF32[(wasm2js_i32$0 + 60 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20float_20const__29($13 + 64 | 0 | 0, $13 + 144 | 0 | 0, $13 + 60 | 0 | 0); + $135 = HEAP32[($13 + 280 | 0) >> 2] | 0; + i64toi32_i32$2 = $13; + i64toi32_i32$0 = HEAP32[($13 + 64 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($13 + 68 | 0) >> 2] | 0; + $455 = i64toi32_i32$0; + i64toi32_i32$0 = $135; + HEAP32[i64toi32_i32$0 >> 2] = $455; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $137 = 8; + i64toi32_i32$2 = ($13 + 64 | 0) + $137 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $468 = i64toi32_i32$1; + i64toi32_i32$1 = $135 + $137 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $468; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + operator__28btVector3_20const__2c_20btVector3_20const__29_2($13 + 28 | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($13 + 244 | 0) >> 2] | 0 | 0) | 0 | 0, $13 + 112 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($13 + 12 | 0 | 0, HEAP32[($13 + 280 | 0) >> 2] | 0 | 0, $13 + 260 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($13 + 44 | 0 | 0, $13 + 28 | 0 | 0, $13 + 12 | 0 | 0); + $167 = HEAP32[($13 + 276 | 0) >> 2] | 0; + i64toi32_i32$2 = $13; + i64toi32_i32$0 = HEAP32[($13 + 44 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($13 + 48 | 0) >> 2] | 0; + $517 = i64toi32_i32$0; + i64toi32_i32$0 = $167; + HEAP32[i64toi32_i32$0 >> 2] = $517; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $169 = 8; + i64toi32_i32$2 = ($13 + 44 | 0) + $169 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $530 = i64toi32_i32$1; + i64toi32_i32$1 = $167 + $169 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $530; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($13 + 284 | 0) >> 2] = Math_fround(HEAPF32[($13 + 100 | 0) >> 2]); + } + $176 = Math_fround(HEAPF32[($13 + 284 | 0) >> 2]); + __stack_pointer = $13 + 288 | 0; + return Math_fround($176); + } + + function btManifoldResult__refreshContactPoints_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(70583 | 0, 78398 | 0, 103 | 0, 69146 | 0); + wasm2js_trap(); + } + label$2 : { + label$3 : { + if (btPersistentManifold__getNumContacts_28_29_20const(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0) { + break label$3 + } + break label$2; + } + (wasm2js_i32$0 = $3, wasm2js_i32$1 = (btPersistentManifold__getBody0_28_29_20const(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0 | 0) != (btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 11 | 0) >> 0] = wasm2js_i32$1; + label$4 : { + if (!((HEAPU8[($3 + 11 | 0) >> 0] | 0) & 1 | 0)) { + break label$4 + } + btPersistentManifold__refreshContactPoints_28btTransform_20const__2c_20btTransform_20const__29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, btCollisionObject__getWorldTransform_28_29_20const(btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, btCollisionObject__getWorldTransform_28_29_20const(btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + break label$2; + } + btPersistentManifold__refreshContactPoints_28btTransform_20const__2c_20btTransform_20const__29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, btCollisionObject__getWorldTransform_28_29_20const(btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, btCollisionObject__getWorldTransform_28_29_20const(btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btSphereShape__getRadius_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $13 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + $13 = Math_fround(Math_fround(HEAPF32[(btVector3__getX_28_29_20const($4 + 36 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getX_28_29_20const($4 + 20 | 0 | 0) | 0) >> 2])); + __stack_pointer = $3 + 16 | 0; + return Math_fround($13); + } + + function btDiscreteCollisionDetectorInterface__ClosestPointInput__ClosestPointInput_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btTransform__btTransform_28_29($4 | 0) | 0; + btTransform__btTransform_28_29($4 + 64 | 0 | 0) | 0; + HEAPF32[($4 + 128 | 0) >> 2] = Math_fround(999999984306749440.0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btGjkPairDetector__setMinkowskiA_28btConvexShape_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return; + } + + function btGjkPairDetector__setMinkowskiB_28btConvexShape_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return; + } + + function btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btDummyResult__btDummyResult_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btDiscreteCollisionDetectorInterface__Result__Result_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 93856 + 8 | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btWithoutMarginResult__btWithoutMarginResult_28btDiscreteCollisionDetectorInterface__Result__2c_20float_2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = Math_fround($3); + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAPF32[($6 + 4 | 0) >> 2] = $2; + HEAPF32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btDiscreteCollisionDetectorInterface__Result__Result_28_29($7 | 0) | 0; + HEAP32[$7 >> 2] = 94032 + 8 | 0; + HEAP32[($7 + 4 | 0) >> 2] = HEAP32[($6 + 8 | 0) >> 2] | 0; + btVector3__btVector3_28_29($7 + 8 | 0 | 0) | 0; + HEAPF32[($7 + 24 | 0) >> 2] = Math_fround(HEAPF32[($6 + 4 | 0) >> 2]); + HEAPF32[($7 + 28 | 0) >> 2] = Math_fround(HEAPF32[$6 >> 2]); + HEAP8[($7 + 36 | 0) >> 0] = 0; + __stack_pointer = $6 + 16 | 0; + return $7 | 0; + } + + function btGjkPairDetector__getCachedSeparatingAxis_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0 | 0; + } + + function btGjkPairDetector__getCachedSeparatingDistance_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 56 | 0) >> 2])); + } + + function btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btWithoutMarginResult___btWithoutMarginResult_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btDiscreteCollisionDetectorInterface__Result___Result_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btDummyResult___btDummyResult_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btDiscreteCollisionDetectorInterface__Result___Result_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btManifoldResult__getPersistentManifold_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btQuaternion__btQuaternion_28btVector3_20const__2c_20float_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btQuadWord__btQuadWord_28_29($6 | 0) | 0; + btQuaternion__setRotation_28btVector3_20const__2c_20float_20const__29($6 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return $6 | 0; + } + + function btQuaternion__inverse_28_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAPF32[($4 + 8 | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[$5 >> 2])); + HEAPF32[($4 + 4 | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[($5 + 4 | 0) >> 2])); + HEAPF32[$4 >> 2] = Math_fround(-Math_fround(HEAPF32[($5 + 8 | 0) >> 2])); + btQuaternion__btQuaternion_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $4 + 8 | 0 | 0, $4 + 4 | 0 | 0, $4 | 0, $5 + 12 | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function operator__28btQuaternion_20const__2c_20btQuaternion_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $20 = Math_fround(0), $28 = Math_fround(0), $52 = Math_fround(0), $60 = Math_fround(0), $84 = Math_fround(0), $92 = Math_fround(0), $117 = Math_fround(0), $126 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $1; + HEAP32[($5 + 24 | 0) >> 2] = $2; + $20 = Math_fround(Math_fround(Math_fround(HEAPF32[(btQuadWord__w_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btQuadWord__x_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[(btQuadWord__x_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btQuadWord__w_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2]))); + $28 = Math_fround(Math_fround(Math_fround(HEAPF32[(btQuadWord__y_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btQuadWord__z_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $20); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[(btQuadWord__z_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2])) * Math_fround(HEAPF32[(btQuadWord__y_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $28)), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + $52 = Math_fround(Math_fround(Math_fround(HEAPF32[(btQuadWord__w_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btQuadWord__y_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[(btQuadWord__y_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btQuadWord__w_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2]))); + $60 = Math_fround(Math_fround(Math_fround(HEAPF32[(btQuadWord__z_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btQuadWord__x_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $52); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[(btQuadWord__x_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2])) * Math_fround(HEAPF32[(btQuadWord__z_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $60)), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + $84 = Math_fround(Math_fround(Math_fround(HEAPF32[(btQuadWord__w_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btQuadWord__z_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[(btQuadWord__z_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btQuadWord__w_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2]))); + $92 = Math_fround(Math_fround(Math_fround(HEAPF32[(btQuadWord__x_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btQuadWord__y_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $84); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[(btQuadWord__y_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2])) * Math_fround(HEAPF32[(btQuadWord__x_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $92)), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + $117 = Math_fround(Math_fround(Math_fround(HEAPF32[(btQuadWord__w_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btQuadWord__w_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[(btQuadWord__x_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btQuadWord__x_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])))); + $126 = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[(btQuadWord__y_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2])) * Math_fround(HEAPF32[(btQuadWord__y_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $117); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[(btQuadWord__z_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2])) * Math_fround(HEAPF32[(btQuadWord__z_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $126)), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + btQuaternion__btQuaternion_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $5 + 20 | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0, $5 + 8 | 0 | 0) | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btMatrix3x3__btMatrix3x3_28btQuaternion_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $8 = 0, $9 = 0, $11 = 0, $7 = 0, $18 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + HEAP32[($4 + 12 | 0) >> 2] = $5; + $7 = $5 + 48 | 0; + $8 = $5; + label$1 : while (1) { + $9 = $8; + btVector3__btVector3_28_29($9 | 0) | 0; + $11 = $9 + 16 | 0; + $8 = $11; + if (!(($11 | 0) == ($7 | 0) & 1 | 0)) { + continue label$1 + } + break label$1; + }; + btMatrix3x3__setRotation_28btQuaternion_20const__29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + $18 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $18 | 0; + } + + function btTransform__setBasis_28btMatrix3x3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btMatrix3x3__operator__28btMatrix3x3_20const__29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btPerturbedContactResult__btPerturbedContactResult_28btManifoldResult__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20bool_2c_20btIDebugDraw__29($0, $1, $2, $3, $4, $5, $6) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + var $9 = 0, $11 = 0; + $9 = __stack_pointer - 32 | 0; + __stack_pointer = $9; + HEAP32[($9 + 28 | 0) >> 2] = $0; + HEAP32[($9 + 24 | 0) >> 2] = $1; + HEAP32[($9 + 20 | 0) >> 2] = $2; + HEAP32[($9 + 16 | 0) >> 2] = $3; + HEAP32[($9 + 12 | 0) >> 2] = $4; + HEAP8[($9 + 11 | 0) >> 0] = $5; + HEAP32[($9 + 4 | 0) >> 2] = $6; + $11 = HEAP32[($9 + 28 | 0) >> 2] | 0; + btManifoldResult__btManifoldResult_28_29($11 | 0) | 0; + HEAP32[$11 >> 2] = 94216 + 8 | 0; + HEAP32[($11 + 36 | 0) >> 2] = HEAP32[($9 + 24 | 0) >> 2] | 0; + btTransform__btTransform_28btTransform_20const__29($11 + 40 | 0 | 0, HEAP32[($9 + 20 | 0) >> 2] | 0 | 0) | 0; + btTransform__btTransform_28btTransform_20const__29($11 + 104 | 0 | 0, HEAP32[($9 + 16 | 0) >> 2] | 0 | 0) | 0; + btTransform__btTransform_28btTransform_20const__29($11 + 168 | 0 | 0, HEAP32[($9 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP8[($11 + 232 | 0) >> 0] = (HEAPU8[($9 + 11 | 0) >> 0] | 0) & 1 | 0; + HEAP32[($11 + 236 | 0) >> 2] = HEAP32[($9 + 4 | 0) >> 2] | 0; + __stack_pointer = $9 + 32 | 0; + return $11 | 0; + } + + function btPerturbedContactResult___btPerturbedContactResult_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btManifoldResult___btManifoldResult_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btGjkPairDetector___btGjkPairDetector_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btDiscreteCollisionDetectorInterface___btDiscreteCollisionDetectorInterface_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function segmentsClosestPoints_28btVector3__2c_20btVector3__2c_20btVector3__2c_20float__2c_20float__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20btVector3_20const__2c_20float_29($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = Math_fround($7); + $8 = $8 | 0; + $9 = Math_fround($9); + var $12 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $145 = 0, $147 = 0, $158 = 0, $160 = 0, $178 = 0, $180 = 0, $543 = 0, $556 = 0, $573 = 0, $586 = 0, $616 = 0, $629 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $12 = __stack_pointer - 128 | 0; + __stack_pointer = $12; + HEAP32[($12 + 124 | 0) >> 2] = $0; + HEAP32[($12 + 120 | 0) >> 2] = $1; + HEAP32[($12 + 116 | 0) >> 2] = $2; + HEAP32[($12 + 112 | 0) >> 2] = $3; + HEAP32[($12 + 108 | 0) >> 2] = $4; + HEAP32[($12 + 104 | 0) >> 2] = $5; + HEAP32[($12 + 100 | 0) >> 2] = $6; + HEAPF32[($12 + 96 | 0) >> 2] = $7; + HEAP32[($12 + 92 | 0) >> 2] = $8; + HEAPF32[($12 + 88 | 0) >> 2] = $9; + (wasm2js_i32$0 = $12, wasm2js_f32$0 = Math_fround(btDot_28btVector3_20const__2c_20btVector3_20const__29(HEAP32[($12 + 100 | 0) >> 2] | 0 | 0, HEAP32[($12 + 92 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 84 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $12, wasm2js_f32$0 = Math_fround(btDot_28btVector3_20const__2c_20btVector3_20const__29(HEAP32[($12 + 100 | 0) >> 2] | 0 | 0, HEAP32[($12 + 104 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 80 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $12, wasm2js_f32$0 = Math_fround(btDot_28btVector3_20const__2c_20btVector3_20const__29(HEAP32[($12 + 92 | 0) >> 2] | 0 | 0, HEAP32[($12 + 104 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 76 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($12 + 72 | 0) >> 2] = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($12 + 84 | 0) >> 2])) * Math_fround(HEAPF32[($12 + 84 | 0) >> 2])) + Math_fround(1.0)); + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($12 + 72 | 0) >> 2]) == Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2] = Math_fround(0 | 0); + break label$1; + } + HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2] = Math_fround(Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($12 + 76 | 0) >> 2])) * Math_fround(HEAPF32[($12 + 84 | 0) >> 2])) + Math_fround(HEAPF32[($12 + 80 | 0) >> 2])) / Math_fround(HEAPF32[($12 + 72 | 0) >> 2])); + label$3 : { + label$4 : { + if (!(Math_fround(HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2]) < Math_fround(-Math_fround(HEAPF32[($12 + 96 | 0) >> 2])) & 1 | 0)) { + break label$4 + } + HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[($12 + 96 | 0) >> 2])); + break label$3; + } + label$5 : { + if (!(Math_fround(HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2]) > Math_fround(HEAPF32[($12 + 96 | 0) >> 2]) & 1 | 0)) { + break label$5 + } + HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[($12 + 96 | 0) >> 2]); + } + } + } + HEAPF32[(HEAP32[($12 + 108 | 0) >> 2] | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[($12 + 84 | 0) >> 2])) + Math_fround(-Math_fround(HEAPF32[($12 + 76 | 0) >> 2]))); + label$6 : { + label$7 : { + if (!(Math_fround(HEAPF32[(HEAP32[($12 + 108 | 0) >> 2] | 0) >> 2]) < Math_fround(-Math_fround(HEAPF32[($12 + 88 | 0) >> 2])) & 1 | 0)) { + break label$7 + } + HEAPF32[(HEAP32[($12 + 108 | 0) >> 2] | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[($12 + 88 | 0) >> 2])); + HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[(HEAP32[($12 + 108 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[($12 + 84 | 0) >> 2])) + Math_fround(HEAPF32[($12 + 80 | 0) >> 2])); + label$8 : { + label$9 : { + if (!(Math_fround(HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2]) < Math_fround(-Math_fround(HEAPF32[($12 + 96 | 0) >> 2])) & 1 | 0)) { + break label$9 + } + HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[($12 + 96 | 0) >> 2])); + break label$8; + } + label$10 : { + if (!(Math_fround(HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2]) > Math_fround(HEAPF32[($12 + 96 | 0) >> 2]) & 1 | 0)) { + break label$10 + } + HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[($12 + 96 | 0) >> 2]); + } + } + break label$6; + } + label$11 : { + if (!(Math_fround(HEAPF32[(HEAP32[($12 + 108 | 0) >> 2] | 0) >> 2]) > Math_fround(HEAPF32[($12 + 88 | 0) >> 2]) & 1 | 0)) { + break label$11 + } + HEAPF32[(HEAP32[($12 + 108 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[($12 + 88 | 0) >> 2]); + HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[(HEAP32[($12 + 108 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[($12 + 84 | 0) >> 2])) + Math_fround(HEAPF32[($12 + 80 | 0) >> 2])); + label$12 : { + label$13 : { + if (!(Math_fround(HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2]) < Math_fround(-Math_fround(HEAPF32[($12 + 96 | 0) >> 2])) & 1 | 0)) { + break label$13 + } + HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[($12 + 96 | 0) >> 2])); + break label$12; + } + label$14 : { + if (!(Math_fround(HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2]) > Math_fround(HEAPF32[($12 + 96 | 0) >> 2]) & 1 | 0)) { + break label$14 + } + HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[($12 + 96 | 0) >> 2]); + } + } + } + } + operator__28btVector3_20const__2c_20float_20const__29($12 + 56 | 0 | 0, HEAP32[($12 + 100 | 0) >> 2] | 0 | 0, HEAP32[($12 + 112 | 0) >> 2] | 0 | 0); + $145 = HEAP32[($12 + 120 | 0) >> 2] | 0; + i64toi32_i32$2 = $12; + i64toi32_i32$0 = HEAP32[($12 + 56 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($12 + 60 | 0) >> 2] | 0; + $543 = i64toi32_i32$0; + i64toi32_i32$0 = $145; + HEAP32[i64toi32_i32$0 >> 2] = $543; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $147 = 8; + i64toi32_i32$2 = ($12 + 56 | 0) + $147 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $556 = i64toi32_i32$1; + i64toi32_i32$1 = $145 + $147 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $556; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20float_20const__29($12 + 40 | 0 | 0, HEAP32[($12 + 92 | 0) >> 2] | 0 | 0, HEAP32[($12 + 108 | 0) >> 2] | 0 | 0); + $158 = HEAP32[($12 + 116 | 0) >> 2] | 0; + i64toi32_i32$2 = $12; + i64toi32_i32$0 = HEAP32[($12 + 40 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($12 + 44 | 0) >> 2] | 0; + $573 = i64toi32_i32$0; + i64toi32_i32$0 = $158; + HEAP32[i64toi32_i32$0 >> 2] = $573; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $160 = 8; + i64toi32_i32$2 = ($12 + 40 | 0) + $160 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $586 = i64toi32_i32$1; + i64toi32_i32$1 = $158 + $160 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $586; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($12 + 8 | 0 | 0, HEAP32[($12 + 104 | 0) >> 2] | 0 | 0, HEAP32[($12 + 120 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($12 + 24 | 0 | 0, $12 + 8 | 0 | 0, HEAP32[($12 + 116 | 0) >> 2] | 0 | 0); + $178 = HEAP32[($12 + 124 | 0) >> 2] | 0; + i64toi32_i32$2 = $12; + i64toi32_i32$0 = HEAP32[($12 + 24 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($12 + 28 | 0) >> 2] | 0; + $616 = i64toi32_i32$0; + i64toi32_i32$0 = $178; + HEAP32[i64toi32_i32$0 >> 2] = $616; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $180 = 8; + i64toi32_i32$2 = ($12 + 24 | 0) + $180 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $629 = i64toi32_i32$1; + i64toi32_i32$1 = $178 + $180 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $629; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $12 + 128 | 0; + return; + } + + function btQuaternion__setRotation_28btVector3_20const__2c_20float_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 44 | 0) >> 2] = $0; + HEAP32[($5 + 40 | 0) >> 2] = $1; + HEAP32[($5 + 36 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 44 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__length_28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + if (Math_fround(HEAPF32[($5 + 32 | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(86707 | 0, 78737 | 0, 115 | 0, 76633 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(btSin_28float_29(Math_fround(Math_fround(Math_fround(HEAPF32[(HEAP32[($5 + 36 | 0) >> 2] | 0) >> 2]) * Math_fround(.5))))) / Math_fround(HEAPF32[($5 + 32 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($5 + 28 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($5 + 28 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($5 + 28 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btCos_28float_29(Math_fround(Math_fround(Math_fround(HEAPF32[(HEAP32[($5 + 36 | 0) >> 2] | 0) >> 2]) * Math_fround(.5)))))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + btQuadWord__setValue_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($6 | 0, $5 + 24 | 0 | 0, $5 + 20 | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0); + __stack_pointer = $5 + 48 | 0; + return; + } + + function btDiscreteCollisionDetectorInterface___btDiscreteCollisionDetectorInterface_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btConvexConvexAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $196 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$1 = 0; + $7 = __stack_pointer - 1312 | 0; + __stack_pointer = $7; + HEAP32[($7 + 1304 | 0) >> 2] = $0; + HEAP32[($7 + 1300 | 0) >> 2] = $1; + HEAP32[($7 + 1296 | 0) >> 2] = $2; + HEAP32[($7 + 1292 | 0) >> 2] = $3; + HEAP32[($7 + 1288 | 0) >> 2] = $4; + HEAPF32[($7 + 1284 | 0) >> 2] = Math_fround(1.0); + operator__28btVector3_20const__2c_20btVector3_20const__29($7 + 1264 | 0 | 0, btTransform__getOrigin_28_29(btCollisionObject__getInterpolationWorldTransform_28_29(HEAP32[($7 + 1300 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29(btCollisionObject__getWorldTransform_28_29(HEAP32[($7 + 1300 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($7 + 1264 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 1280 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($7 + 1244 | 0 | 0, btTransform__getOrigin_28_29(btCollisionObject__getInterpolationWorldTransform_28_29(HEAP32[($7 + 1296 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29(btCollisionObject__getWorldTransform_28_29(HEAP32[($7 + 1296 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($7 + 1244 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 1260 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($7 + 1280 | 0) >> 2]) < Math_fround(btCollisionObject__getCcdSquareMotionThreshold_28_29_20const(HEAP32[($7 + 1300 | 0) >> 2] | 0 | 0)) & 1 | 0)) { + break label$2 + } + if (!(Math_fround(HEAPF32[($7 + 1260 | 0) >> 2]) < Math_fround(btCollisionObject__getCcdSquareMotionThreshold_28_29_20const(HEAP32[($7 + 1296 | 0) >> 2] | 0 | 0)) & 1 | 0)) { + break label$2 + } + HEAPF32[($7 + 1308 | 0) >> 2] = Math_fround(HEAPF32[($7 + 1284 | 0) >> 2]); + break label$1; + } + label$3 : { + if (!((HEAPU8[(0 + 113996 | 0) >> 0] | 0) & 1 | 0)) { + break label$3 + } + HEAPF32[($7 + 1308 | 0) >> 2] = Math_fround(1.0); + break label$1; + } + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCollisionObject__getCollisionShape_28_29(HEAP32[($7 + 1300 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 1240 | 0) >> 2] = wasm2js_i32$1; + btSphereShape__btSphereShape_28float_29($7 + 1180 | 0 | 0, Math_fround(Math_fround(btCollisionObject__getCcdSweptSphereRadius_28_29_20const(HEAP32[($7 + 1296 | 0) >> 2] | 0 | 0)))) | 0; + btConvexCast__CastResult__CastResult_28_29($7 + 1004 | 0 | 0) | 0; + btVoronoiSimplexSolver__btVoronoiSimplexSolver_28_29($7 + 644 | 0 | 0) | 0; + btGjkConvexCast__btGjkConvexCast_28btConvexShape_20const__2c_20btConvexShape_20const__2c_20btVoronoiSimplexSolver__29($7 + 628 | 0 | 0, HEAP32[($7 + 1240 | 0) >> 2] | 0 | 0, $7 + 1180 | 0 | 0, $7 + 644 | 0 | 0) | 0; + label$4 : { + if (!((btGjkConvexCast__calcTimeOfImpact_28btTransform_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btConvexCast__CastResult__29($7 + 628 | 0 | 0, btCollisionObject__getWorldTransform_28_29(HEAP32[($7 + 1300 | 0) >> 2] | 0 | 0) | 0 | 0, btCollisionObject__getInterpolationWorldTransform_28_29(HEAP32[($7 + 1300 | 0) >> 2] | 0 | 0) | 0 | 0, btCollisionObject__getWorldTransform_28_29(HEAP32[($7 + 1296 | 0) >> 2] | 0 | 0) | 0 | 0, btCollisionObject__getInterpolationWorldTransform_28_29(HEAP32[($7 + 1296 | 0) >> 2] | 0 | 0) | 0 | 0, $7 + 1004 | 0 | 0) | 0) & 1 | 0)) { + break label$4 + } + label$5 : { + if (!(Math_fround(btCollisionObject__getHitFraction_28_29_20const(HEAP32[($7 + 1300 | 0) >> 2] | 0 | 0)) > Math_fround(HEAPF32[($7 + 1168 | 0) >> 2]) & 1 | 0)) { + break label$5 + } + btCollisionObject__setHitFraction_28float_29(HEAP32[($7 + 1300 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($7 + 1168 | 0) >> 2]))); + } + label$6 : { + if (!(Math_fround(btCollisionObject__getHitFraction_28_29_20const(HEAP32[($7 + 1296 | 0) >> 2] | 0 | 0)) > Math_fround(HEAPF32[($7 + 1168 | 0) >> 2]) & 1 | 0)) { + break label$6 + } + btCollisionObject__setHitFraction_28float_29(HEAP32[($7 + 1296 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($7 + 1168 | 0) >> 2]))); + } + label$7 : { + if (!(Math_fround(HEAPF32[($7 + 1284 | 0) >> 2]) > Math_fround(HEAPF32[($7 + 1168 | 0) >> 2]) & 1 | 0)) { + break label$7 + } + HEAPF32[($7 + 1284 | 0) >> 2] = Math_fround(HEAPF32[($7 + 1168 | 0) >> 2]); + } + } + btGjkConvexCast___btGjkConvexCast_28_29($7 + 628 | 0 | 0) | 0; + btConvexCast__CastResult___CastResult_28_29($7 + 1004 | 0 | 0) | 0; + btSphereShape___btSphereShape_28_29($7 + 1180 | 0 | 0) | 0; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCollisionObject__getCollisionShape_28_29(HEAP32[($7 + 1296 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 624 | 0) >> 2] = wasm2js_i32$1; + btSphereShape__btSphereShape_28float_29($7 + 564 | 0 | 0, Math_fround(Math_fround(btCollisionObject__getCcdSweptSphereRadius_28_29_20const(HEAP32[($7 + 1300 | 0) >> 2] | 0 | 0)))) | 0; + btConvexCast__CastResult__CastResult_28_29($7 + 388 | 0 | 0) | 0; + btVoronoiSimplexSolver__btVoronoiSimplexSolver_28_29($7 + 28 | 0 | 0) | 0; + btGjkConvexCast__btGjkConvexCast_28btConvexShape_20const__2c_20btConvexShape_20const__2c_20btVoronoiSimplexSolver__29($7 + 12 | 0 | 0, $7 + 564 | 0 | 0, HEAP32[($7 + 624 | 0) >> 2] | 0 | 0, $7 + 28 | 0 | 0) | 0; + label$8 : { + if (!((btGjkConvexCast__calcTimeOfImpact_28btTransform_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btConvexCast__CastResult__29($7 + 12 | 0 | 0, btCollisionObject__getWorldTransform_28_29(HEAP32[($7 + 1300 | 0) >> 2] | 0 | 0) | 0 | 0, btCollisionObject__getInterpolationWorldTransform_28_29(HEAP32[($7 + 1300 | 0) >> 2] | 0 | 0) | 0 | 0, btCollisionObject__getWorldTransform_28_29(HEAP32[($7 + 1296 | 0) >> 2] | 0 | 0) | 0 | 0, btCollisionObject__getInterpolationWorldTransform_28_29(HEAP32[($7 + 1296 | 0) >> 2] | 0 | 0) | 0 | 0, $7 + 388 | 0 | 0) | 0) & 1 | 0)) { + break label$8 + } + label$9 : { + if (!(Math_fround(btCollisionObject__getHitFraction_28_29_20const(HEAP32[($7 + 1300 | 0) >> 2] | 0 | 0)) > Math_fround(HEAPF32[($7 + 552 | 0) >> 2]) & 1 | 0)) { + break label$9 + } + btCollisionObject__setHitFraction_28float_29(HEAP32[($7 + 1300 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($7 + 552 | 0) >> 2]))); + } + label$10 : { + if (!(Math_fround(btCollisionObject__getHitFraction_28_29_20const(HEAP32[($7 + 1296 | 0) >> 2] | 0 | 0)) > Math_fround(HEAPF32[($7 + 552 | 0) >> 2]) & 1 | 0)) { + break label$10 + } + btCollisionObject__setHitFraction_28float_29(HEAP32[($7 + 1296 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($7 + 552 | 0) >> 2]))); + } + label$11 : { + if (!(Math_fround(HEAPF32[($7 + 1284 | 0) >> 2]) > Math_fround(HEAPF32[($7 + 552 | 0) >> 2]) & 1 | 0)) { + break label$11 + } + HEAPF32[($7 + 1284 | 0) >> 2] = Math_fround(HEAPF32[($7 + 552 | 0) >> 2]); + } + } + btGjkConvexCast___btGjkConvexCast_28_29($7 + 12 | 0 | 0) | 0; + btConvexCast__CastResult___CastResult_28_29($7 + 388 | 0 | 0) | 0; + btSphereShape___btSphereShape_28_29($7 + 564 | 0 | 0) | 0; + HEAPF32[($7 + 1308 | 0) >> 2] = Math_fround(HEAPF32[($7 + 1284 | 0) >> 2]); + } + $196 = Math_fround(HEAPF32[($7 + 1308 | 0) >> 2]); + __stack_pointer = $7 + 1312 | 0; + return Math_fround($196); + } + + function btCollisionObject__getCcdSquareMotionThreshold_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + return Math_fround(Math_fround(Math_fround(HEAPF32[($4 + 276 | 0) >> 2]) * Math_fround(HEAPF32[($4 + 276 | 0) >> 2]))); + } + + function btCollisionObject__getHitFraction_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 268 | 0) >> 2])); + } + + function btCollisionObject__setHitFraction_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 268 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + return; + } + + function btConvexConvexAlgorithm__CreateFunc__CreateCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $9 = 0, $14 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + $9 = HEAP32[(HEAP32[($6 + 24 | 0) >> 2] | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$9 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($9, 72) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $14 = HEAP32[($6 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[607 | 0]($14, HEAP32[((HEAP32[($6 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0, HEAP32[($6 + 24 | 0) >> 2] | 0, HEAP32[($6 + 20 | 0) >> 2] | 0, HEAP32[($6 + 16 | 0) >> 2] | 0, HEAP32[($7 + 8 | 0) >> 2] | 0, HEAP32[($7 + 12 | 0) >> 2] | 0, HEAP32[($7 + 16 | 0) >> 2] | 0) | 0; + __stack_pointer = $6 + 32 | 0; + return $14 | 0; + } + + function btConvexConvexAlgorithm__getAllContactManifolds_28btAlignedObjectArray_btPersistentManifold____29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($5 + 56 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + if (!((HEAPU8[($5 + 52 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btPersistentManifold____push_back_28btPersistentManifold__20const__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, $5 + 56 | 0 | 0); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btDummyResult___btDummyResult_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btDummyResult___btDummyResult_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btDummyResult__setShapeIdentifiersA_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + return; + } + + function btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btDummyResult__setShapeIdentifiersB_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + return; + } + + function btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btDummyResult__addContactPoint_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + var $6 = 0; + $6 = __stack_pointer - 16 | 0; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAPF32[$6 >> 2] = $3; + return; + } + + function btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btWithoutMarginResult___btWithoutMarginResult_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btWithoutMarginResult___btWithoutMarginResult_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btWithoutMarginResult__setShapeIdentifiersA_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + return; + } + + function btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btWithoutMarginResult__setShapeIdentifiersB_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + return; + } + + function btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btWithoutMarginResult__addContactPoint_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + var $6 = 0, $7 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $11 = 0, $13 = 0, $38 = 0, $75 = 0, $85 = 0, $17 = 0; + $6 = __stack_pointer - 48 | 0; + __stack_pointer = $6; + HEAP32[($6 + 44 | 0) >> 2] = $0; + HEAP32[($6 + 40 | 0) >> 2] = $1; + HEAP32[($6 + 36 | 0) >> 2] = $2; + HEAPF32[($6 + 32 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 44 | 0) >> 2] | 0; + HEAPF32[($7 + 32 | 0) >> 2] = Math_fround(HEAPF32[($6 + 32 | 0) >> 2]); + $11 = $7 + 8 | 0; + i64toi32_i32$2 = HEAP32[($6 + 40 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $75 = i64toi32_i32$0; + i64toi32_i32$0 = $11; + HEAP32[i64toi32_i32$0 >> 2] = $75; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $13 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $13 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $85 = i64toi32_i32$1; + i64toi32_i32$1 = $11 + $13 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $85; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $17 = HEAP32[($6 + 36 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20float_20const__29($6 | 0, HEAP32[($6 + 40 | 0) >> 2] | 0 | 0, $7 + 28 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 16 | 0 | 0, $17 | 0, $6 | 0); + HEAPF32[($7 + 32 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($6 + 32 | 0) >> 2]) + Math_fround(Math_fround(HEAPF32[($7 + 24 | 0) >> 2]) + Math_fround(HEAPF32[($7 + 28 | 0) >> 2]))); + label$1 : { + if (!(Math_fround(HEAPF32[($7 + 32 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$1 + } + HEAP8[($7 + 36 | 0) >> 0] = 1; + } + $38 = HEAP32[($7 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$38 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($38, HEAP32[($6 + 40 | 0) >> 2] | 0, $6 + 16 | 0, Math_fround(HEAPF32[($7 + 32 | 0) >> 2])); + __stack_pointer = $6 + 48 | 0; + return; + } + + function btPerturbedContactResult___btPerturbedContactResult_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btPerturbedContactResult___btPerturbedContactResult_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btPerturbedContactResult__addContactPoint_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $7 = 0, $56 = 0, $93 = 0, $116 = 0, $145 = 0, $168 = 0, $20 = 0, $297 = 0, $301 = 0, $369 = 0, $373 = 0, $102 = 0, $415 = 0, $419 = 0, $471 = 0, $475 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 496 | 0; + __stack_pointer = $6; + HEAP32[($6 + 492 | 0) >> 2] = $0; + HEAP32[($6 + 488 | 0) >> 2] = $1; + HEAP32[($6 + 484 | 0) >> 2] = $2; + HEAPF32[($6 + 480 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 492 | 0) >> 2] | 0; + btVector3__btVector3_28_29($6 + 464 | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 448 | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 428 | 0 | 0) | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($7 + 232 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + $20 = HEAP32[($6 + 484 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20float_20const__29($6 + 396 | 0 | 0, HEAP32[($6 + 488 | 0) >> 2] | 0 | 0, $6 + 480 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 412 | 0 | 0, $20 | 0, $6 + 396 | 0 | 0); + btTransform__inverse_28_29_20const($6 + 252 | 0 | 0, $7 + 40 | 0 | 0); + btTransform__operator__28btTransform_20const__29_20const($6 + 316 | 0 | 0, $7 + 168 | 0 | 0, $6 + 252 | 0 | 0); + btTransform__operator_28_29_28btVector3_20const__29_20const($6 + 380 | 0 | 0, $6 + 316 | 0 | 0, $6 + 412 | 0 | 0); + $56 = 8; + i64toi32_i32$2 = ($6 + 380 | 0) + $56 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $297 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 464 | 0) + $56 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $297; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 380 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 384 | 0) >> 2] | 0; + $301 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 464 | 0) >> 2] = $301; + HEAP32[($6 + 468 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 236 | 0 | 0, $6 + 464 | 0 | 0, HEAP32[($6 + 484 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($6 + 236 | 0 | 0, HEAP32[($6 + 488 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 444 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20float_20const__29($6 + 204 | 0 | 0, HEAP32[($6 + 488 | 0) >> 2] | 0 | 0, $6 + 444 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 220 | 0 | 0, $6 + 464 | 0 | 0, $6 + 204 | 0 | 0); + $93 = 8; + i64toi32_i32$2 = ($6 + 220 | 0) + $93 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $369 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 448 | 0) + $93 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $369; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 220 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 224 | 0) >> 2] | 0; + $373 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 448 | 0) >> 2] = $373; + HEAP32[($6 + 452 | 0) >> 2] = i64toi32_i32$0; + break label$1; + } + $102 = HEAP32[($6 + 484 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20float_20const__29($6 + 172 | 0 | 0, HEAP32[($6 + 488 | 0) >> 2] | 0 | 0, $6 + 480 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 188 | 0 | 0, $102 | 0, $6 + 172 | 0 | 0); + $116 = 8; + i64toi32_i32$2 = ($6 + 188 | 0) + $116 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $415 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 464 | 0) + $116 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $415; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 188 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 192 | 0) >> 2] | 0; + $419 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 464 | 0) >> 2] = $419; + HEAP32[($6 + 468 | 0) >> 2] = i64toi32_i32$0; + btTransform__inverse_28_29_20const($6 + 28 | 0 | 0, $7 + 104 | 0 | 0); + btTransform__operator__28btTransform_20const__29_20const($6 + 92 | 0 | 0, $7 + 168 | 0 | 0, $6 + 28 | 0 | 0); + btTransform__operator_28_29_28btVector3_20const__29_20const($6 + 156 | 0 | 0, $6 + 92 | 0 | 0, HEAP32[($6 + 484 | 0) >> 2] | 0 | 0); + $145 = 8; + i64toi32_i32$2 = ($6 + 156 | 0) + $145 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $471 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 448 | 0) + $145 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $471; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 156 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 160 | 0) >> 2] | 0; + $475 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 448 | 0) >> 2] = $475; + HEAP32[($6 + 452 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 12 | 0 | 0, $6 + 464 | 0 | 0, $6 + 448 | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($6 + 12 | 0 | 0, HEAP32[($6 + 488 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 444 | 0) >> 2] = wasm2js_f32$0; + } + $168 = HEAP32[($7 + 36 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$168 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($168, HEAP32[($6 + 488 | 0) >> 2] | 0, $6 + 448 | 0, Math_fround(HEAPF32[($6 + 444 | 0) >> 2])); + __stack_pointer = $6 + 496 | 0; + return; + } + + function _GLOBAL__sub_I_btConvexConvexAlgorithm_cpp() { + __cxx_global_var_init_14(); + return; + } + + function __cxx_global_var_init_15() { + btInfMaskConverter__btInfMaskConverter_28int_29(114e3 | 0, 2139095040 | 0) | 0; + return; + } + + function btConvexConcaveCollisionAlgorithm__btConvexConcaveCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20bool_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $9 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP8[($7 + 15 | 0) >> 0] = $4; + $9 = HEAP32[($7 + 28 | 0) >> 2] | 0; + btActivatingCollisionAlgorithm__btActivatingCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($9 | 0, HEAP32[($7 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7 + 16 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$9 >> 2] = 94284 + 8 | 0; + FUNCTION_TABLE[629 | 0]($9 + 8 | 0, HEAP32[(HEAP32[($7 + 24 | 0) >> 2] | 0) >> 2] | 0, HEAP32[($7 + 20 | 0) >> 2] | 0, HEAP32[($7 + 16 | 0) >> 2] | 0, (HEAPU8[($7 + 15 | 0) >> 0] | 0) & 1 | 0) | 0; + HEAP8[($9 + 76 | 0) >> 0] = (HEAPU8[($7 + 15 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $7 + 32 | 0; + return $9 | 0; + } + + function btConvexConcaveCollisionAlgorithm___btConvexConcaveCollisionAlgorithm_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 94284 + 8 | 0; + FUNCTION_TABLE[630 | 0]($4 + 8 | 0) | 0; + btActivatingCollisionAlgorithm___btActivatingCollisionAlgorithm_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConvexConcaveCollisionAlgorithm___btConvexConcaveCollisionAlgorithm_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[631 | 0]($4) | 0; + btConvexConcaveCollisionAlgorithm__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btConvexConcaveCollisionAlgorithm__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btConvexConcaveCollisionAlgorithm__getAllContactManifolds_28btAlignedObjectArray_btPersistentManifold____29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($5 + 72 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btPersistentManifold____push_back_28btPersistentManifold__20const__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, ($5 + 8 | 0) + 64 | 0 | 0); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btConvexTriangleCallback__btConvexTriangleCallback_28btDispatcher__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20bool_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $9 = 0, $23 = 0, $30 = 0, $33 = 0, $41 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0, wasm2js_i32$4 = 0, wasm2js_i32$5 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 24 | 0) >> 2] = $0; + HEAP32[($7 + 20 | 0) >> 2] = $1; + HEAP32[($7 + 16 | 0) >> 2] = $2; + HEAP32[($7 + 12 | 0) >> 2] = $3; + HEAP8[($7 + 11 | 0) >> 0] = $4; + $9 = HEAP32[($7 + 24 | 0) >> 2] | 0; + HEAP32[($7 + 28 | 0) >> 2] = $9; + btTriangleCallback__btTriangleCallback_28_29($9 | 0) | 0; + HEAP32[$9 >> 2] = 94312 + 8 | 0; + btVector3__btVector3_28_29($9 + 4 | 0 | 0) | 0; + btVector3__btVector3_28_29($9 + 20 | 0 | 0) | 0; + HEAP32[($9 + 48 | 0) >> 2] = HEAP32[($7 + 20 | 0) >> 2] | 0; + HEAP32[($9 + 52 | 0) >> 2] = 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($7 + 11 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + $23 = HEAP32[($7 + 12 | 0) >> 2] | 0; + break label$1; + } + $23 = HEAP32[($7 + 16 | 0) >> 2] | 0; + } + HEAP32[($9 + 36 | 0) >> 2] = $23; + label$3 : { + label$4 : { + if (!((HEAPU8[($7 + 11 | 0) >> 0] | 0) & 1 | 0)) { + break label$4 + } + $30 = HEAP32[($7 + 16 | 0) >> 2] | 0; + break label$3; + } + $30 = HEAP32[($7 + 12 | 0) >> 2] | 0; + } + HEAP32[($9 + 40 | 0) >> 2] = $30; + $33 = HEAP32[($9 + 48 | 0) >> 2] | 0; + (wasm2js_i32$0 = $9, wasm2js_i32$1 = ((((wasm2js_i32$3 = $33, wasm2js_i32$4 = btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($9 + 36 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$5 = btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($9 + 40 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$2 = HEAP32[((HEAP32[$33 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$2](wasm2js_i32$3 | 0, wasm2js_i32$4 | 0, wasm2js_i32$5 | 0) | 0)), HEAP32[(wasm2js_i32$0 + 64 | 0) >> 2] = wasm2js_i32$1; + btConvexTriangleCallback__clearCache_28_29($9 | 0); + $41 = HEAP32[($7 + 28 | 0) >> 2] | 0; + __stack_pointer = $7 + 32 | 0; + return $41 | 0; + } + + function btConvexTriangleCallback__clearCache_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + $5 = HEAP32[($4 + 48 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5, HEAP32[($4 + 64 | 0) >> 2] | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btConvexTriangleCallback___btConvexTriangleCallback_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0, $8 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 94312 + 8 | 0; + btConvexTriangleCallback__clearCache_28_29($4 | 0); + $8 = HEAP32[($4 + 48 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($8, HEAP32[($4 + 64 | 0) >> 2] | 0); + btTriangleCallback___btTriangleCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConvexTriangleCallback___btConvexTriangleCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[630 | 0]($4) | 0; + btConvexTriangleCallback__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btConvexTriangleCallback__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btConvexTriangleCallback__processTriangle_28btVector3__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $65 = 0, $75 = 0, $101 = 0, $112 = 0, $117 = 0, $139 = 0, $142 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 176 | 0; + __stack_pointer = $6; + HEAP32[($6 + 172 | 0) >> 2] = $0; + HEAP32[($6 + 168 | 0) >> 2] = $1; + HEAP32[($6 + 164 | 0) >> 2] = $2; + HEAP32[($6 + 160 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 172 | 0) >> 2] | 0; + CProfileSample__CProfileSample_28char_20const__29($6 + 159 | 0 | 0, 81819 | 0) | 0; + label$1 : { + label$2 : { + if ((TestTriangleAgainstAabb2_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29(HEAP32[($6 + 168 | 0) >> 2] | 0 | 0, $7 + 4 | 0 | 0, $7 + 20 | 0 | 0) | 0) & 1 | 0) { + break label$2 + } + HEAP32[($6 + 152 | 0) >> 2] = 1; + break label$1; + } + btCollisionAlgorithmConstructionInfo__btCollisionAlgorithmConstructionInfo_28_29($6 + 144 | 0 | 0) | 0; + HEAP32[($6 + 144 | 0) >> 2] = HEAP32[($7 + 48 | 0) >> 2] | 0; + label$3 : { + if (!((btCollisionShape__isConvex_28_29_20const(btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 36 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) & 1 | 0)) { + break label$3 + } + btTriangleShape__btTriangleShape_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($6 + 32 | 0 | 0, HEAP32[($6 + 168 | 0) >> 2] | 0 | 0, (HEAP32[($6 + 168 | 0) >> 2] | 0) + 16 | 0 | 0, (HEAP32[($6 + 168 | 0) >> 2] | 0) + 32 | 0 | 0) | 0; + btConvexInternalShape__setMargin_28float_29($6 + 32 | 0 | 0, Math_fround(Math_fround(HEAPF32[($7 + 56 | 0) >> 2]))); + btCollisionObjectWrapper__btCollisionObjectWrapper_28btCollisionObjectWrapper_20const__2c_20btCollisionShape_20const__2c_20btCollisionObject_20const__2c_20btTransform_20const__2c_20int_2c_20int_29($6 + 8 | 0 | 0, HEAP32[($7 + 40 | 0) >> 2] | 0 | 0, $6 + 32 | 0 | 0, btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 40 | 0) >> 2] | 0 | 0) | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 40 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($6 + 164 | 0) >> 2] | 0 | 0, HEAP32[($6 + 160 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($6 + 4 | 0) >> 2] = 0; + label$4 : { + label$5 : { + if (!(Math_fround(HEAPF32[((HEAP32[($7 + 44 | 0) >> 2] | 0) + 32 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$5 + } + $65 = HEAP32[($6 + 144 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$65 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($65, HEAP32[($7 + 36 | 0) >> 2] | 0, $6 + 8 | 0, 0, 2) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + break label$4; + } + $75 = HEAP32[($6 + 144 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$75 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($75, HEAP32[($7 + 36 | 0) >> 2] | 0, $6 + 8 | 0, HEAP32[($7 + 64 | 0) >> 2] | 0, 1) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + } + HEAP32[$6 >> 2] = 0; + label$6 : { + label$7 : { + if (!((btManifoldResult__getBody0Internal_28_29_20const(HEAP32[($7 + 44 | 0) >> 2] | 0 | 0) | 0 | 0) == (btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 40 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$7 + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btManifoldResult__getBody0Wrap_28_29_20const(HEAP32[($7 + 44 | 0) >> 2] | 0 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + btManifoldResult__setBody0Wrap_28btCollisionObjectWrapper_20const__29(HEAP32[($7 + 44 | 0) >> 2] | 0 | 0, $6 + 8 | 0 | 0); + $101 = HEAP32[($7 + 44 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$101 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($101, HEAP32[($6 + 164 | 0) >> 2] | 0, HEAP32[($6 + 160 | 0) >> 2] | 0); + break label$6; + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btManifoldResult__getBody1Wrap_28_29_20const(HEAP32[($7 + 44 | 0) >> 2] | 0 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + btManifoldResult__setBody1Wrap_28btCollisionObjectWrapper_20const__29(HEAP32[($7 + 44 | 0) >> 2] | 0 | 0, $6 + 8 | 0 | 0); + $112 = HEAP32[($7 + 44 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$112 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($112, HEAP32[($6 + 164 | 0) >> 2] | 0, HEAP32[($6 + 160 | 0) >> 2] | 0); + } + $117 = HEAP32[($6 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$117 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($117, HEAP32[($7 + 36 | 0) >> 2] | 0, $6 + 8 | 0, HEAP32[($7 + 52 | 0) >> 2] | 0, HEAP32[($7 + 44 | 0) >> 2] | 0); + label$8 : { + label$9 : { + if (!((btManifoldResult__getBody0Internal_28_29_20const(HEAP32[($7 + 44 | 0) >> 2] | 0 | 0) | 0 | 0) == (btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 40 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$9 + } + btManifoldResult__setBody0Wrap_28btCollisionObjectWrapper_20const__29(HEAP32[($7 + 44 | 0) >> 2] | 0 | 0, HEAP32[$6 >> 2] | 0 | 0); + break label$8; + } + btManifoldResult__setBody1Wrap_28btCollisionObjectWrapper_20const__29(HEAP32[($7 + 44 | 0) >> 2] | 0 | 0, HEAP32[$6 >> 2] | 0 | 0); + } + $139 = HEAP32[($6 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$139 >> 2] | 0) >> 2] | 0 | 0]($139) | 0; + $142 = HEAP32[($6 + 144 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$142 >> 2] | 0) + 60 | 0) >> 2] | 0 | 0]($142, HEAP32[($6 + 4 | 0) >> 2] | 0); + btTriangleShape___btTriangleShape_28_29($6 + 32 | 0 | 0) | 0; + } + HEAP32[($6 + 152 | 0) >> 2] = 0; + } + CProfileSample___CProfileSample_28_29($6 + 159 | 0 | 0) | 0; + __stack_pointer = $6 + 176 | 0; + return; + } + + function TestTriangleAgainstAabb2_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $150 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 24 | 0) >> 2] = $0; + HEAP32[($5 + 20 | 0) >> 2] = $1; + HEAP32[($5 + 16 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 24 | 0) >> 2] | 0) + 16 | 0; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 24 | 0) >> 2] | 0) + 32 | 0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[(float_20const__20btMin_float__28float_20const__2c_20float_20const__29(float_20const__20btMin_float__28float_20const__2c_20float_20const__29(btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) >> 2]) > Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) | 0) >> 2]) & 1 | 0)) { + break label$2 + } + HEAP8[($5 + 31 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + label$3 : { + if (!(Math_fround(HEAPF32[(float_20const__20btMax_float__28float_20const__2c_20float_20const__29(float_20const__20btMax_float__28float_20const__2c_20float_20const__29(btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) >> 2]) < Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0) >> 2]) & 1 | 0)) { + break label$3 + } + HEAP8[($5 + 31 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + label$4 : { + if (!(Math_fround(HEAPF32[(float_20const__20btMin_float__28float_20const__2c_20float_20const__29(float_20const__20btMin_float__28float_20const__2c_20float_20const__29((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0) >> 2]) > Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2]) & 1 | 0)) { + break label$4 + } + HEAP8[($5 + 31 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + label$5 : { + if (!(Math_fround(HEAPF32[(float_20const__20btMax_float__28float_20const__2c_20float_20const__29(float_20const__20btMax_float__28float_20const__2c_20float_20const__29((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) + 8 | 0 | 0) | 0) >> 2]) < Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2]) & 1 | 0)) { + break label$5 + } + HEAP8[($5 + 31 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + label$6 : { + if (!(Math_fround(HEAPF32[(float_20const__20btMin_float__28float_20const__2c_20float_20const__29(float_20const__20btMin_float__28float_20const__2c_20float_20const__29((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0) | 0) >> 2]) > Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2]) & 1 | 0)) { + break label$6 + } + HEAP8[($5 + 31 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + label$7 : { + if (!(Math_fround(HEAPF32[(float_20const__20btMax_float__28float_20const__2c_20float_20const__29(float_20const__20btMax_float__28float_20const__2c_20float_20const__29((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) + 4 | 0 | 0) | 0) >> 2]) < Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2]) & 1 | 0)) { + break label$7 + } + HEAP8[($5 + 31 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + HEAP8[($5 + 31 | 0) >> 0] = 1 & 1 | 0; + } + $150 = (HEAPU8[($5 + 31 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $5 + 32 | 0; + return $150 | 0; + } + + function btTriangleShape__btTriangleShape_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0, $7 = 0, $12 = 0, $15 = 0, $16 = 0, $18 = 0, $27 = 0, $29 = 0, $37 = 0, $39 = 0, $47 = 0, $49 = 0, $14 = 0, $114 = 0, $124 = 0, $136 = 0, $146 = 0, $158 = 0, $168 = 0, $53 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 24 | 0) >> 2] = $0; + HEAP32[($6 + 20 | 0) >> 2] = $1; + HEAP32[($6 + 16 | 0) >> 2] = $2; + HEAP32[($6 + 12 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 24 | 0) >> 2] | 0; + HEAP32[($6 + 28 | 0) >> 2] = $7; + btPolyhedralConvexShape__btPolyhedralConvexShape_28_29($7 | 0) | 0; + HEAP32[$7 >> 2] = 94420 + 8 | 0; + $12 = $7 + 64 | 0; + $14 = $12 + 48 | 0; + $15 = $12; + label$1 : while (1) { + $16 = $15; + btVector3__btVector3_28_29($16 | 0) | 0; + $18 = $16 + 16 | 0; + $15 = $18; + if (!(($18 | 0) == ($14 | 0) & 1 | 0)) { + continue label$1 + } + break label$1; + }; + HEAP32[($7 + 4 | 0) >> 2] = 1; + $27 = $7 + 64 | 0; + i64toi32_i32$2 = HEAP32[($6 + 20 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $114 = i64toi32_i32$0; + i64toi32_i32$0 = $27; + HEAP32[i64toi32_i32$0 >> 2] = $114; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $29 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $29 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $124 = i64toi32_i32$1; + i64toi32_i32$1 = $27 + $29 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $124; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $37 = ($7 + 64 | 0) + 16 | 0; + i64toi32_i32$2 = HEAP32[($6 + 16 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $136 = i64toi32_i32$0; + i64toi32_i32$0 = $37; + HEAP32[i64toi32_i32$0 >> 2] = $136; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $39 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $39 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $146 = i64toi32_i32$1; + i64toi32_i32$1 = $37 + $39 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $146; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $47 = ($7 + 64 | 0) + 32 | 0; + i64toi32_i32$2 = HEAP32[($6 + 12 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $158 = i64toi32_i32$0; + i64toi32_i32$0 = $47; + HEAP32[i64toi32_i32$0 >> 2] = $158; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $49 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $49 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $168 = i64toi32_i32$1; + i64toi32_i32$1 = $47 + $49 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $168; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $53 = HEAP32[($6 + 28 | 0) >> 2] | 0; + __stack_pointer = $6 + 32 | 0; + return $53 | 0; + } + + function btManifoldResult__getBody0Internal_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function btManifoldResult__getBody0Wrap_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btManifoldResult__setBody0Wrap_28btCollisionObjectWrapper_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return; + } + + function btManifoldResult__getBody1Wrap_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0; + } + + function btManifoldResult__setBody1Wrap_28btCollisionObjectWrapper_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return; + } + + function btTriangleShape___btTriangleShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btPolyhedralConvexShape___btPolyhedralConvexShape_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function float_20const__20btMax_float__28float_20const__2c_20float_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $13 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2]) > Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2]) & 1 | 0)) { + break label$2 + } + $13 = HEAP32[($4 + 12 | 0) >> 2] | 0; + break label$1; + } + $13 = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + return $13 | 0; + } + + function btConvexTriangleCallback__setTimeStepAndCounters_28float_2c_20btDispatcherInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btManifoldResult__29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, $9 = 0, $56 = 0, $39 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $8 = __stack_pointer - 240 | 0; + __stack_pointer = $8; + HEAP32[($8 + 236 | 0) >> 2] = $0; + HEAPF32[($8 + 232 | 0) >> 2] = $1; + HEAP32[($8 + 228 | 0) >> 2] = $2; + HEAP32[($8 + 224 | 0) >> 2] = $3; + HEAP32[($8 + 220 | 0) >> 2] = $4; + HEAP32[($8 + 216 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 236 | 0) >> 2] | 0; + HEAP32[($9 + 36 | 0) >> 2] = HEAP32[($8 + 224 | 0) >> 2] | 0; + HEAP32[($9 + 40 | 0) >> 2] = HEAP32[($8 + 220 | 0) >> 2] | 0; + HEAP32[($9 + 52 | 0) >> 2] = HEAP32[($8 + 228 | 0) >> 2] | 0; + HEAPF32[($9 + 56 | 0) >> 2] = Math_fround(HEAPF32[($8 + 232 | 0) >> 2]); + HEAP32[($9 + 44 | 0) >> 2] = HEAP32[($8 + 216 | 0) >> 2] | 0; + btTransform__btTransform_28_29($8 + 152 | 0 | 0) | 0; + btTransform__inverse_28_29_20const($8 + 24 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($9 + 40 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator__28btTransform_20const__29_20const($8 + 88 | 0 | 0, $8 + 24 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($9 + 36 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator__28btTransform_20const__29($8 + 152 | 0 | 0, $8 + 88 | 0 | 0) | 0; + (wasm2js_i32$0 = $8, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($9 + 36 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + $39 = HEAP32[($8 + 20 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$39 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($39, $8 + 152 | 0, $9 + 4 | 0, $9 + 20 | 0); + HEAPF32[($8 + 16 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($8 + 232 | 0) >> 2]) + Math_fround(HEAPF32[((HEAP32[($8 + 216 | 0) >> 2] | 0) + 32 | 0) >> 2])); + $56 = $8 + 16 | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 | 0, $56 | 0, $56 | 0, $56 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($9 + 20 | 0 | 0, $8 | 0) | 0; + btVector3__operator___28btVector3_20const__29($9 + 4 | 0 | 0, $8 | 0) | 0; + __stack_pointer = $8 + 240 | 0; + return; + } + + function btConvexConcaveCollisionAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0, $17 = 0, $24 = 0, $39 = 0, $57 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$2 = 0, wasm2js_i32$3 = 0, wasm2js_i32$4 = 0; + $7 = __stack_pointer - 48 | 0; + __stack_pointer = $7; + HEAP32[($7 + 44 | 0) >> 2] = $0; + HEAP32[($7 + 40 | 0) >> 2] = $1; + HEAP32[($7 + 36 | 0) >> 2] = $2; + HEAP32[($7 + 32 | 0) >> 2] = $3; + HEAP32[($7 + 28 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 44 | 0) >> 2] | 0; + CProfileSample__CProfileSample_28char_20const__29($7 + 27 | 0 | 0, 76822 | 0) | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($8 + 76 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + $17 = HEAP32[($7 + 36 | 0) >> 2] | 0; + break label$1; + } + $17 = HEAP32[($7 + 40 | 0) >> 2] | 0; + } + HEAP32[($7 + 20 | 0) >> 2] = $17; + label$3 : { + label$4 : { + if (!((HEAPU8[($8 + 76 | 0) >> 0] | 0) & 1 | 0)) { + break label$4 + } + $24 = HEAP32[($7 + 40 | 0) >> 2] | 0; + break label$3; + } + $24 = HEAP32[($7 + 36 | 0) >> 2] | 0; + } + HEAP32[($7 + 16 | 0) >> 2] = $24; + label$5 : { + if (!((btCollisionShape__isConcave_28_29_20const(btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 16 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) & 1 | 0)) { + break label$5 + } + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 16 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + label$6 : { + if (!((btCollisionShape__isConvex_28_29_20const(btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 20 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) & 1 | 0)) { + break label$6 + } + $39 = HEAP32[($7 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$39 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($39))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + btManifoldResult__setPersistentManifold_28btPersistentManifold__29(HEAP32[($7 + 28 | 0) >> 2] | 0 | 0, HEAP32[($8 + 72 | 0) >> 2] | 0 | 0); + btConvexTriangleCallback__setTimeStepAndCounters_28float_2c_20btDispatcherInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btManifoldResult__29($8 + 8 | 0 | 0, Math_fround(Math_fround(HEAPF32[($7 + 8 | 0) >> 2])), HEAP32[($7 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7 + 28 | 0) >> 2] | 0 | 0); + btPersistentManifold__setBodies_28btCollisionObject_20const__2c_20btCollisionObject_20const__29(HEAP32[($8 + 72 | 0) >> 2] | 0 | 0, btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 20 | 0) >> 2] | 0 | 0) | 0 | 0, btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 16 | 0) >> 2] | 0 | 0) | 0 | 0); + $57 = HEAP32[($7 + 12 | 0) >> 2] | 0; + ((((wasm2js_i32$1 = $57, wasm2js_i32$2 = $8 + 8 | 0), wasm2js_i32$3 = btConvexTriangleCallback__getAabbMin_28_29_20const($8 + 8 | 0 | 0) | 0), wasm2js_i32$4 = btConvexTriangleCallback__getAabbMax_28_29_20const($8 + 8 | 0 | 0) | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$57 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0, wasm2js_i32$3 | 0, wasm2js_i32$4 | 0); + btManifoldResult__refreshContactPoints_28_29(HEAP32[($7 + 28 | 0) >> 2] | 0 | 0); + btConvexTriangleCallback__clearWrapperData_28_29($8 + 8 | 0 | 0); + } + } + CProfileSample___CProfileSample_28_29($7 + 27 | 0 | 0) | 0; + __stack_pointer = $7 + 48 | 0; + return; + } + + function btPersistentManifold__setBodies_28btCollisionObject_20const__2c_20btCollisionObject_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[($6 + 836 | 0) >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + HEAP32[($6 + 840 | 0) >> 2] = HEAP32[($5 + 4 | 0) >> 2] | 0; + return; + } + + function btConvexTriangleCallback__getAabbMin_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0 | 0; + } + + function btConvexTriangleCallback__getAabbMax_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 20 | 0 | 0; + } + + function btConvexTriangleCallback__clearWrapperData_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[($4 + 36 | 0) >> 2] = 0; + HEAP32[($4 + 40 | 0) >> 2] = 0; + return; + } + + function btConvexConcaveCollisionAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $112 = 0, $124 = 0, $8 = 0, $13 = 0, $20 = 0, $72 = 0, $73 = 0, $90 = 0, $91 = 0, $156 = 0, $347 = 0, $351 = 0, $382 = 0, $386 = 0, $183 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$1 = 0; + $7 = __stack_pointer - 544 | 0; + __stack_pointer = $7; + HEAP32[($7 + 536 | 0) >> 2] = $0; + HEAP32[($7 + 532 | 0) >> 2] = $1; + HEAP32[($7 + 528 | 0) >> 2] = $2; + HEAP32[($7 + 524 | 0) >> 2] = $3; + HEAP32[($7 + 520 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 536 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($8 + 76 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + $13 = HEAP32[($7 + 528 | 0) >> 2] | 0; + break label$1; + } + $13 = HEAP32[($7 + 532 | 0) >> 2] | 0; + } + HEAP32[($7 + 516 | 0) >> 2] = $13; + label$3 : { + label$4 : { + if (!((HEAPU8[($8 + 76 | 0) >> 0] | 0) & 1 | 0)) { + break label$4 + } + $20 = HEAP32[($7 + 532 | 0) >> 2] | 0; + break label$3; + } + $20 = HEAP32[($7 + 528 | 0) >> 2] | 0; + } + HEAP32[($7 + 512 | 0) >> 2] = $20; + operator__28btVector3_20const__2c_20btVector3_20const__29($7 + 492 | 0 | 0, btTransform__getOrigin_28_29(btCollisionObject__getInterpolationWorldTransform_28_29(HEAP32[($7 + 516 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29(btCollisionObject__getWorldTransform_28_29(HEAP32[($7 + 516 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($7 + 492 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 508 | 0) >> 2] = wasm2js_f32$0; + label$5 : { + label$6 : { + if (!(Math_fround(HEAPF32[($7 + 508 | 0) >> 2]) < Math_fround(btCollisionObject__getCcdSquareMotionThreshold_28_29_20const(HEAP32[($7 + 516 | 0) >> 2] | 0 | 0)) & 1 | 0)) { + break label$6 + } + HEAPF32[($7 + 540 | 0) >> 2] = Math_fround(1.0); + break label$5; + } + btTransform__inverse_28_29_20const($7 + 428 | 0 | 0, btCollisionObject__getWorldTransform_28_29(HEAP32[($7 + 512 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator__28btTransform_20const__29_20const($7 + 364 | 0 | 0, $7 + 428 | 0 | 0, btCollisionObject__getWorldTransform_28_29(HEAP32[($7 + 516 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator__28btTransform_20const__29_20const($7 + 300 | 0 | 0, $7 + 428 | 0 | 0, btCollisionObject__getInterpolationWorldTransform_28_29(HEAP32[($7 + 516 | 0) >> 2] | 0 | 0) | 0 | 0); + label$7 : { + if (!((btCollisionShape__isConcave_28_29_20const(btCollisionObject__getCollisionShape_28_29(HEAP32[($7 + 512 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) & 1 | 0)) { + break label$7 + } + $72 = btTransform__getOrigin_28_29($7 + 364 | 0 | 0) | 0; + $73 = 8; + i64toi32_i32$2 = $72 + $73 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $347 = i64toi32_i32$0; + i64toi32_i32$0 = ($7 + 280 | 0) + $73 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $347; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $72; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $351 = i64toi32_i32$1; + i64toi32_i32$1 = $7; + HEAP32[($7 + 280 | 0) >> 2] = $351; + HEAP32[($7 + 284 | 0) >> 2] = i64toi32_i32$0; + btVector3__setMin_28btVector3_20const__29($7 + 280 | 0 | 0, btTransform__getOrigin_28_29($7 + 300 | 0 | 0) | 0 | 0); + $90 = btTransform__getOrigin_28_29($7 + 364 | 0 | 0) | 0; + $91 = 8; + i64toi32_i32$2 = $90 + $91 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $382 = i64toi32_i32$0; + i64toi32_i32$0 = ($7 + 264 | 0) + $91 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $382; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $90; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $386 = i64toi32_i32$1; + i64toi32_i32$1 = $7; + HEAP32[($7 + 264 | 0) >> 2] = $386; + HEAP32[($7 + 268 | 0) >> 2] = i64toi32_i32$0; + btVector3__setMax_28btVector3_20const__29($7 + 264 | 0 | 0, btTransform__getOrigin_28_29($7 + 300 | 0 | 0) | 0 | 0); + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btCollisionObject__getCcdSweptSphereRadius_28_29_20const(HEAP32[($7 + 516 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 260 | 0) >> 2] = wasm2js_f32$0; + $112 = $7 + 260 | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 244 | 0 | 0, $112 | 0, $112 | 0, $112 | 0) | 0; + btVector3__operator___28btVector3_20const__29($7 + 280 | 0 | 0, $7 + 244 | 0 | 0) | 0; + $124 = $7 + 260 | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 228 | 0 | 0, $124 | 0, $124 | 0, $124 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($7 + 264 | 0 | 0, $7 + 228 | 0 | 0) | 0; + HEAPF32[($7 + 224 | 0) >> 2] = Math_fround(1.0); + btConvexConcaveCollisionAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__LocalTriangleSphereCastCallback__LocalTriangleSphereCastCallback_28btTransform_20const__2c_20btTransform_20const__2c_20float_2c_20float_29($7 + 20 | 0 | 0, $7 + 364 | 0 | 0, $7 + 300 | 0 | 0, Math_fround(Math_fround(btCollisionObject__getCcdSweptSphereRadius_28_29_20const(HEAP32[($7 + 516 | 0) >> 2] | 0 | 0))), Math_fround(Math_fround(HEAPF32[($7 + 224 | 0) >> 2]))) | 0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btCollisionObject__getHitFraction_28_29_20const(HEAP32[($7 + 516 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 220 | 0) >> 2] = wasm2js_f32$0; + HEAP32[($7 + 16 | 0) >> 2] = HEAP32[($7 + 512 | 0) >> 2] | 0; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCollisionObject__getCollisionShape_28_29(HEAP32[($7 + 16 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + label$8 : { + if (!((HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$8 + } + $156 = HEAP32[($7 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$156 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($156, $7 + 20 | 0, $7 + 280 | 0, $7 + 264 | 0); + } + label$9 : { + label$10 : { + if (!(Math_fround(HEAPF32[($7 + 220 | 0) >> 2]) < Math_fround(btCollisionObject__getHitFraction_28_29_20const(HEAP32[($7 + 516 | 0) >> 2] | 0 | 0)) & 1 | 0)) { + break label$10 + } + btCollisionObject__setHitFraction_28float_29(HEAP32[($7 + 516 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($7 + 220 | 0) >> 2]))); + HEAPF32[($7 + 540 | 0) >> 2] = Math_fround(HEAPF32[($7 + 220 | 0) >> 2]); + HEAP32[($7 + 8 | 0) >> 2] = 1; + break label$9; + } + HEAP32[($7 + 8 | 0) >> 2] = 0; + } + btConvexConcaveCollisionAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__LocalTriangleSphereCastCallback___LocalTriangleSphereCastCallback_28_29($7 + 20 | 0 | 0) | 0; + label$11 : { + switch (HEAP32[($7 + 8 | 0) >> 2] | 0 | 0) { + case 1: + break label$5; + default: + break label$11; + }; + } + } + HEAPF32[($7 + 540 | 0) >> 2] = Math_fround(1.0); + } + $183 = Math_fround(HEAPF32[($7 + 540 | 0) >> 2]); + __stack_pointer = $7 + 544 | 0; + return Math_fround($183); + } + + function btConvexConcaveCollisionAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__LocalTriangleSphereCastCallback__LocalTriangleSphereCastCallback_28btTransform_20const__2c_20btTransform_20const__2c_20float_2c_20float_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + $4 = Math_fround($4); + var $7 = 0, $8 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAPF32[($7 + 16 | 0) >> 2] = $3; + HEAPF32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + btTriangleCallback__btTriangleCallback_28_29($8 | 0) | 0; + HEAP32[$8 >> 2] = 94588 + 8 | 0; + btTransform__btTransform_28btTransform_20const__29($8 + 4 | 0 | 0, HEAP32[($7 + 24 | 0) >> 2] | 0 | 0) | 0; + btTransform__btTransform_28btTransform_20const__29($8 + 68 | 0 | 0, HEAP32[($7 + 20 | 0) >> 2] | 0 | 0) | 0; + btTransform__btTransform_28_29($8 + 132 | 0 | 0) | 0; + HEAPF32[($8 + 196 | 0) >> 2] = Math_fround(HEAPF32[($7 + 16 | 0) >> 2]); + HEAPF32[($8 + 200 | 0) >> 2] = Math_fround(HEAPF32[($7 + 12 | 0) >> 2]); + __stack_pointer = $7 + 32 | 0; + return $8 | 0; + } + + function btConvexConcaveCollisionAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__LocalTriangleSphereCastCallback___LocalTriangleSphereCastCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btTriangleCallback___btTriangleCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btTriangleShape___btTriangleShape_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btTriangleShape___btTriangleShape_28_29($4 | 0) | 0; + btTriangleShape__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btTriangleShape__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btTriangleShape__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 80 | 0) >> 2] | 0 | 0]($7, HEAP32[($6 + 8 | 0) >> 2] | 0, HEAP32[($6 + 4 | 0) >> 2] | 0, HEAP32[$6 >> 2] | 0); + __stack_pointer = $6 + 16 | 0; + return; + } + + function btConvexInternalShape__getLocalScaling_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 20 | 0 | 0; + } + + function btTriangleShape__calculateLocalInertia_28float_2c_20btVector3__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAPF32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + __assert_fail(86177 | 0, 79443 | 0, 127 | 0, 83783 | 0); + wasm2js_trap(); + } + + function btTriangleShape__getName_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 81877 | 0; + } + + function btConvexInternalShape__getMargin_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 52 | 0) >> 2])); + } + + function btConvexInternalShape__calculateSerializeBufferSize_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 52 | 0; + } + + function btConvexInternalShape__serialize_28void__2c_20btSerializer__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + btCollisionShape__serialize_28void__2c_20btSerializer__29_20const($6 | 0, HEAP32[$5 >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0; + btVector3__serializeFloat_28btVector3FloatData__29_20const($6 + 36 | 0 | 0, (HEAP32[$5 >> 2] | 0) + 28 | 0 | 0); + btVector3__serializeFloat_28btVector3FloatData__29_20const($6 + 20 | 0 | 0, (HEAP32[$5 >> 2] | 0) + 12 | 0 | 0); + HEAPF32[((HEAP32[$5 >> 2] | 0) + 44 | 0) >> 2] = Math_fround(HEAPF32[($6 + 52 | 0) >> 2]); + HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] = 0; + __stack_pointer = $5 + 16 | 0; + return 83475 | 0; + } + + function btVector3__serializeFloat_28btVector3FloatData__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) < (4 | 0) & 1 | 0)) { + break label$1 + } + HEAPF32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + ((HEAP32[($4 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($5 + ((HEAP32[($4 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btTriangleShape__localGetSupportingVertexWithoutMargin_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0, $31 = 0, $92 = 0, $102 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $1; + HEAP32[($5 + 24 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + btVector3__dot3_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29_20const($5 + 8 | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0, $6 + 64 | 0 | 0, ($6 + 64 | 0) + 16 | 0 | 0, ($6 + 64 | 0) + 32 | 0 | 0); + i64toi32_i32$2 = ($6 + 64 | 0) + ((btVector3__maxAxis_28_29_20const($5 + 8 | 0 | 0) | 0) << 4 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $92 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $92; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $31 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $31 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $102 = i64toi32_i32$1; + i64toi32_i32$1 = $0 + $31 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $102; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btVector3__maxAxis_28_29_20const($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0, $18 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[$4 >> 2]) < Math_fround(HEAPF32[($4 + 4 | 0) >> 2]) & 1 | 0)) { + break label$2 + } + $18 = Math_fround(HEAPF32[($4 + 4 | 0) >> 2]) < Math_fround(HEAPF32[($4 + 8 | 0) >> 2]) & 1 | 0 ? 2 : 1; + break label$1; + } + $18 = Math_fround(HEAPF32[$4 >> 2]) < Math_fround(HEAPF32[($4 + 8 | 0) >> 2]) & 1 | 0 ? 2 : 0; + } + return $18 | 0; + } + + function btTriangleShape__batchedUnitVectorGetSupportingVertexWithoutMargin_28btVector3_20const__2c_20btVector3__2c_20int_29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $7 = 0, $48 = 0, $50 = 0, $43 = 0, $156 = 0, $166 = 0; + $6 = __stack_pointer - 48 | 0; + __stack_pointer = $6; + HEAP32[($6 + 44 | 0) >> 2] = $0; + HEAP32[($6 + 40 | 0) >> 2] = $1; + HEAP32[($6 + 36 | 0) >> 2] = $2; + HEAP32[($6 + 32 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 44 | 0) >> 2] | 0; + HEAP32[($6 + 28 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 32 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[($6 + 24 | 0) >> 2] = (HEAP32[($6 + 40 | 0) >> 2] | 0) + ((HEAP32[($6 + 28 | 0) >> 2] | 0) << 4 | 0) | 0; + btVector3__dot3_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29_20const($6 + 8 | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, $7 + 64 | 0 | 0, ($7 + 64 | 0) + 16 | 0 | 0, ($7 + 64 | 0) + 32 | 0 | 0); + $43 = ($7 + 64 | 0) + ((btVector3__maxAxis_28_29_20const($6 + 8 | 0 | 0) | 0) << 4 | 0) | 0; + $48 = (HEAP32[($6 + 36 | 0) >> 2] | 0) + ((HEAP32[($6 + 28 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = $43; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $156 = i64toi32_i32$0; + i64toi32_i32$0 = $48; + HEAP32[i64toi32_i32$0 >> 2] = $156; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $50 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $50 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $166 = i64toi32_i32$1; + i64toi32_i32$1 = $48 + $50 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $166; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6 + 28 | 0) >> 2] = (HEAP32[($6 + 28 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $6 + 48 | 0; + return; + } + + function btTriangleShape__getNumPreferredPenetrationDirections_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 2 | 0; + } + + function btTriangleShape__getPreferredPenetrationDirection_28int_2c_20btVector3__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + btTriangleShape__calcNormal_28btVector3__29_20const(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0); + label$1 : { + if (!(HEAP32[($5 + 8 | 0) >> 2] | 0)) { + break label$1 + } + HEAPF32[$5 >> 2] = Math_fround(-1.0); + btVector3__operator___28float_20const__29_1(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0, $5 | 0) | 0; + } + __stack_pointer = $5 + 16 | 0; + return; + } + + function btTriangleShape__calcNormal_28btVector3__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5 = 0, i64toi32_i32$2 = 0, $33 = 0, $35 = 0, $107 = 0, $120 = 0; + $4 = __stack_pointer - 64 | 0; + __stack_pointer = $4; + HEAP32[($4 + 60 | 0) >> 2] = $0; + HEAP32[($4 + 56 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 60 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($4 + 24 | 0 | 0, ($5 + 64 | 0) + 16 | 0 | 0, $5 + 64 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($4 + 8 | 0 | 0, ($5 + 64 | 0) + 32 | 0 | 0, $5 + 64 | 0 | 0); + btVector3__cross_28btVector3_20const__29_20const($4 + 40 | 0 | 0, $4 + 24 | 0 | 0, $4 + 8 | 0 | 0); + $33 = HEAP32[($4 + 56 | 0) >> 2] | 0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[($4 + 40 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($4 + 44 | 0) >> 2] | 0; + $107 = i64toi32_i32$0; + i64toi32_i32$0 = $33; + HEAP32[i64toi32_i32$0 >> 2] = $107; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $35 = 8; + i64toi32_i32$2 = ($4 + 40 | 0) + $35 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $120 = i64toi32_i32$1; + i64toi32_i32$1 = $33 + $35 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $120; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__normalize_28_29(HEAP32[($4 + 56 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $4 + 64 | 0; + return; + } + + function btTriangleShape__getNumVertices_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 3 | 0; + } + + function btTriangleShape__getNumEdges_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 3 | 0; + } + + function btTriangleShape__getEdge_28int_2c_20btVector3__2c_20btVector3__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 108 | 0) >> 2] | 0 | 0]($7, HEAP32[($6 + 8 | 0) >> 2] | 0, HEAP32[($6 + 4 | 0) >> 2] | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 108 | 0) >> 2] | 0 | 0]($7, ((HEAP32[($6 + 8 | 0) >> 2] | 0) + 1 | 0 | 0) % (3 | 0) | 0, HEAP32[$6 >> 2] | 0); + __stack_pointer = $6 + 16 | 0; + return; + } + + function btTriangleShape__getVertex_28int_2c_20btVector3__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $13 = 0, $15 = 0, $47 = 0, $57 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $13 = HEAP32[($5 + 4 | 0) >> 2] | 0; + i64toi32_i32$2 = ((HEAP32[($5 + 12 | 0) >> 2] | 0) + 64 | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $47 = i64toi32_i32$0; + i64toi32_i32$0 = $13; + HEAP32[i64toi32_i32$0 >> 2] = $47; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $15 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $15 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $57 = i64toi32_i32$1; + i64toi32_i32$1 = $13 + $15 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $57; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function btTriangleShape__getNumPlanes_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 1 | 0; + } + + function btTriangleShape__getPlane_28btVector3__2c_20btVector3__2c_20int_29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 124 | 0) >> 2] | 0 | 0]($7, HEAP32[$6 >> 2] | 0, HEAP32[($6 + 8 | 0) >> 2] | 0, HEAP32[($6 + 4 | 0) >> 2] | 0); + __stack_pointer = $6 + 16 | 0; + return; + } + + function btTriangleShape__isInside_28btVector3_20const__2c_20float_29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0, $6 = 0, $117 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 128 | 0; + __stack_pointer = $5; + HEAP32[($5 + 120 | 0) >> 2] = $0; + HEAP32[($5 + 116 | 0) >> 2] = $1; + HEAPF32[($5 + 112 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 120 | 0) >> 2] | 0; + btVector3__btVector3_28_29($5 + 96 | 0 | 0) | 0; + btTriangleShape__calcNormal_28btVector3__29_20const($6 | 0, $5 + 96 | 0 | 0); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($5 + 116 | 0) >> 2] | 0 | 0, $5 + 96 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 92 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($6 + 64 | 0 | 0, $5 + 96 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 88 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($5 + 92 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 92 | 0) >> 2]) - Math_fround(HEAPF32[($5 + 88 | 0) >> 2])); + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($5 + 92 | 0) >> 2]) >= Math_fround(-Math_fround(HEAPF32[($5 + 112 | 0) >> 2])) & 1 | 0)) { + break label$2 + } + if (!(Math_fround(HEAPF32[($5 + 92 | 0) >> 2]) <= Math_fround(HEAPF32[($5 + 112 | 0) >> 2]) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 84 | 0) >> 2] = 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 84 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$3 + } + btVector3__btVector3_28_29($5 + 68 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 52 | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 104 | 0) >> 2] | 0 | 0]($6, HEAP32[($5 + 84 | 0) >> 2] | 0, $5 + 68 | 0, $5 + 52 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 36 | 0 | 0, $5 + 52 | 0 | 0, $5 + 68 | 0 | 0); + btVector3__cross_28btVector3_20const__29_20const($5 + 20 | 0 | 0, $5 + 36 | 0 | 0, $5 + 96 | 0 | 0); + btVector3__normalize_28_29($5 + 20 | 0 | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($5 + 116 | 0) >> 2] | 0 | 0, $5 + 20 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($5 + 68 | 0 | 0, $5 + 20 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 16 | 0) >> 2]) - Math_fround(HEAPF32[($5 + 12 | 0) >> 2])); + label$5 : { + if (!(Math_fround(HEAPF32[($5 + 16 | 0) >> 2]) < Math_fround(-Math_fround(HEAPF32[($5 + 112 | 0) >> 2])) & 1 | 0)) { + break label$5 + } + HEAP8[($5 + 127 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + HEAP32[($5 + 84 | 0) >> 2] = (HEAP32[($5 + 84 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + HEAP8[($5 + 127 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + HEAP8[($5 + 127 | 0) >> 0] = 0 & 1 | 0; + } + $117 = (HEAPU8[($5 + 127 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $5 + 128 | 0; + return $117 | 0; + } + + function btTriangleShape__getPlaneEquation_28int_2c_20btVector3__2c_20btVector3__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $7 = 0, $11 = 0, $13 = 0, $46 = 0, $56 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btTriangleShape__calcNormal_28btVector3__29_20const($7 | 0, HEAP32[($6 + 4 | 0) >> 2] | 0 | 0); + $11 = HEAP32[$6 >> 2] | 0; + i64toi32_i32$2 = $7 + 64 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $46 = i64toi32_i32$0; + i64toi32_i32$0 = $11; + HEAP32[i64toi32_i32$0 >> 2] = $46; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $13 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $13 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $56 = i64toi32_i32$1; + i64toi32_i32$1 = $11 + $13 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $56; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $6 + 16 | 0; + return; + } + + function btConvexConcaveCollisionAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__LocalTriangleSphereCastCallback___LocalTriangleSphereCastCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConvexConcaveCollisionAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__LocalTriangleSphereCastCallback___LocalTriangleSphereCastCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btConvexConcaveCollisionAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__LocalTriangleSphereCastCallback__processTriangle_28btVector3__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $60 = 0; + $6 = __stack_pointer - 816 | 0; + __stack_pointer = $6; + HEAP32[($6 + 812 | 0) >> 2] = $0; + HEAP32[($6 + 808 | 0) >> 2] = $1; + HEAP32[($6 + 804 | 0) >> 2] = $2; + HEAP32[($6 + 800 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 812 | 0) >> 2] | 0; + CProfileSample__CProfileSample_28char_20const__29($6 + 799 | 0 | 0, 81845 | 0) | 0; + btTransform__btTransform_28_29($6 + 732 | 0 | 0) | 0; + btTransform__setIdentity_28_29($6 + 732 | 0 | 0); + btConvexCast__CastResult__CastResult_28_29($6 + 556 | 0 | 0) | 0; + HEAPF32[($6 + 720 | 0) >> 2] = Math_fround(HEAPF32[($7 + 200 | 0) >> 2]); + btSphereShape__btSphereShape_28float_29($6 + 496 | 0 | 0, Math_fround(Math_fround(HEAPF32[($7 + 196 | 0) >> 2]))) | 0; + btTriangleShape__btTriangleShape_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($6 + 384 | 0 | 0, HEAP32[($6 + 808 | 0) >> 2] | 0 | 0, (HEAP32[($6 + 808 | 0) >> 2] | 0) + 16 | 0 | 0, (HEAP32[($6 + 808 | 0) >> 2] | 0) + 32 | 0 | 0) | 0; + btVoronoiSimplexSolver__btVoronoiSimplexSolver_28_29($6 + 24 | 0 | 0) | 0; + btSubsimplexConvexCast__btSubsimplexConvexCast_28btConvexShape_20const__2c_20btConvexShape_20const__2c_20btVoronoiSimplexSolver__29($6 + 8 | 0 | 0, $6 + 496 | 0 | 0, $6 + 384 | 0 | 0, $6 + 24 | 0 | 0) | 0; + $60 = $6 + 732 | 0; + label$1 : { + if (!((btSubsimplexConvexCast__calcTimeOfImpact_28btTransform_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btConvexCast__CastResult__29($6 + 8 | 0 | 0, $7 + 4 | 0 | 0, $7 + 68 | 0 | 0, $60 | 0, $60 | 0, $6 + 556 | 0 | 0) | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!(Math_fround(HEAPF32[($7 + 200 | 0) >> 2]) > Math_fround(HEAPF32[($6 + 720 | 0) >> 2]) & 1 | 0)) { + break label$2 + } + HEAPF32[($7 + 200 | 0) >> 2] = Math_fround(HEAPF32[($6 + 720 | 0) >> 2]); + } + } + btSubsimplexConvexCast___btSubsimplexConvexCast_28_29($6 + 8 | 0 | 0) | 0; + btTriangleShape___btTriangleShape_28_29($6 + 384 | 0 | 0) | 0; + btSphereShape___btSphereShape_28_29($6 + 496 | 0 | 0) | 0; + btConvexCast__CastResult___CastResult_28_29($6 + 556 | 0 | 0) | 0; + CProfileSample___CProfileSample_28_29($6 + 799 | 0 | 0) | 0; + __stack_pointer = $6 + 816 | 0; + return; + } + + function _GLOBAL__sub_I_btConvexConcaveCollisionAlgorithm_cpp() { + __cxx_global_var_init_15(); + return; + } + + function __cxx_global_var_init_16() { + btInfMaskConverter__btInfMaskConverter_28int_29(114004 | 0, 2139095040 | 0) | 0; + return; + } + + function btCompoundCollisionAlgorithm__btCompoundCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20bool_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $9 = 0, $32 = 0, $50 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 24 | 0) >> 2] = $0; + HEAP32[($7 + 20 | 0) >> 2] = $1; + HEAP32[($7 + 16 | 0) >> 2] = $2; + HEAP32[($7 + 12 | 0) >> 2] = $3; + HEAP8[($7 + 11 | 0) >> 0] = $4; + $9 = HEAP32[($7 + 24 | 0) >> 2] | 0; + HEAP32[($7 + 28 | 0) >> 2] = $9; + btActivatingCollisionAlgorithm__btActivatingCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($9 | 0, HEAP32[($7 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$9 >> 2] = 94780 + 8 | 0; + btAlignedObjectArray_btDbvtNode_20const____btAlignedObjectArray_28_29($9 + 8 | 0 | 0) | 0; + btAlignedObjectArray_btPersistentManifold____btAlignedObjectArray_28_29($9 + 28 | 0 | 0) | 0; + btAlignedObjectArray_btCollisionAlgorithm____btAlignedObjectArray_28_29($9 + 48 | 0 | 0) | 0; + HEAP8[($9 + 68 | 0) >> 0] = (HEAPU8[($7 + 11 | 0) >> 0] | 0) & 1 | 0; + HEAP32[($9 + 72 | 0) >> 2] = HEAP32[((HEAP32[($7 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP8[($9 + 76 | 0) >> 0] = 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($9 + 68 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + $32 = HEAP32[($7 + 12 | 0) >> 2] | 0; + break label$1; + } + $32 = HEAP32[($7 + 16 | 0) >> 2] | 0; + } + HEAP32[($7 + 4 | 0) >> 2] = $32; + label$3 : { + if ((btCollisionShape__isCompound_28_29_20const(btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 4 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) & 1 | 0) { + break label$3 + } + __assert_fail(87719 | 0, 73354 | 0, 36 | 0, 77182 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 4 | 0) >> 2] | 0 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $9, wasm2js_i32$1 = btCompoundShape__getUpdateRevision_28_29_20const(HEAP32[$7 >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 80 | 0) >> 2] = wasm2js_i32$1; + btCompoundCollisionAlgorithm__preallocateChildAlgorithms_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($9 | 0, HEAP32[($7 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7 + 12 | 0) >> 2] | 0 | 0); + $50 = HEAP32[($7 + 28 | 0) >> 2] | 0; + __stack_pointer = $7 + 32 | 0; + return $50 | 0; + } + + function btAlignedObjectArray_btCollisionAlgorithm____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btCollisionAlgorithm__2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btCollisionAlgorithm____init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCompoundShape__getUpdateRevision_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 76 | 0) >> 2] | 0 | 0; + } + + function btCompoundCollisionAlgorithm__preallocateChildAlgorithms_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $11 = 0, $18 = 0, $76 = 0, $36 = 0, $85 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 112 | 0; + __stack_pointer = $5; + HEAP32[($5 + 108 | 0) >> 2] = $0; + HEAP32[($5 + 104 | 0) >> 2] = $1; + HEAP32[($5 + 100 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 108 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($6 + 68 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + $11 = HEAP32[($5 + 100 | 0) >> 2] | 0; + break label$1; + } + $11 = HEAP32[($5 + 104 | 0) >> 2] | 0; + } + HEAP32[($5 + 96 | 0) >> 2] = $11; + label$3 : { + label$4 : { + if (!((HEAPU8[($6 + 68 | 0) >> 0] | 0) & 1 | 0)) { + break label$4 + } + $18 = HEAP32[($5 + 104 | 0) >> 2] | 0; + break label$3; + } + $18 = HEAP32[($5 + 100 | 0) >> 2] | 0; + } + HEAP32[($5 + 92 | 0) >> 2] = $18; + label$5 : { + if ((btCollisionShape__isCompound_28_29_20const(btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($5 + 96 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) & 1 | 0) { + break label$5 + } + __assert_fail(87719 | 0, 73354 | 0, 49 | 0, 69793 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($5 + 96 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 88 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btCompoundShape__getNumChildShapes_28_29_20const(HEAP32[($5 + 88 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 84 | 0) >> 2] = wasm2js_i32$1; + $36 = HEAP32[($5 + 84 | 0) >> 2] | 0; + HEAP32[($5 + 76 | 0) >> 2] = 0; + btAlignedObjectArray_btCollisionAlgorithm____resize_28int_2c_20btCollisionAlgorithm__20const__29($6 + 48 | 0 | 0, $36 | 0, $5 + 76 | 0 | 0); + HEAP32[($5 + 80 | 0) >> 2] = 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($5 + 80 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 84 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + label$8 : { + label$9 : { + if (!((btCompoundShape__getDynamicAabbTree_28_29_20const(HEAP32[($5 + 88 | 0) >> 2] | 0 | 0) | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$9 + } + (wasm2js_i32$0 = btAlignedObjectArray_btCollisionAlgorithm____operator_5b_5d_28int_29($6 + 48 | 0 | 0, HEAP32[($5 + 80 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + break label$8; + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btCompoundShape__getChildShape_28int_29_20const(HEAP32[($5 + 88 | 0) >> 2] | 0 | 0, HEAP32[($5 + 80 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 72 | 0) >> 2] = wasm2js_i32$1; + btCollisionObjectWrapper__btCollisionObjectWrapper_28btCollisionObjectWrapper_20const__2c_20btCollisionShape_20const__2c_20btCollisionObject_20const__2c_20btTransform_20const__2c_20int_2c_20int_29($5 + 48 | 0 | 0, HEAP32[($5 + 96 | 0) >> 2] | 0 | 0, HEAP32[($5 + 72 | 0) >> 2] | 0 | 0, btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($5 + 96 | 0) >> 2] | 0 | 0) | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($5 + 96 | 0) >> 2] | 0 | 0) | 0 | 0, -1 | 0, HEAP32[($5 + 80 | 0) >> 2] | 0 | 0) | 0; + $76 = HEAP32[($6 + 4 | 0) >> 2] | 0; + $85 = FUNCTION_TABLE[HEAP32[((HEAP32[$76 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($76, $5 + 48 | 0, HEAP32[($5 + 92 | 0) >> 2] | 0, HEAP32[($6 + 72 | 0) >> 2] | 0, 1) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btCollisionAlgorithm____operator_5b_5d_28int_29($6 + 48 | 0 | 0, HEAP32[($5 + 80 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $85), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btCollisionAlgorithm____btAlignedObjectArray_28_29($5 + 28 | 0 | 0) | 0; + btAlignedObjectArray_btCollisionAlgorithm____btAlignedObjectArray_28_29($5 + 8 | 0 | 0) | 0; + btAlignedObjectArray_btCollisionAlgorithm_____btAlignedObjectArray_28_29($5 + 8 | 0 | 0) | 0; + btAlignedObjectArray_btCollisionAlgorithm_____btAlignedObjectArray_28_29($5 + 28 | 0 | 0) | 0; + } + HEAP32[($5 + 80 | 0) >> 2] = (HEAP32[($5 + 80 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + __stack_pointer = $5 + 112 | 0; + return; + } + + function btAlignedAllocator_btCollisionAlgorithm__2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btCollisionAlgorithm____init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btAlignedObjectArray_btCollisionAlgorithm____resize_28int_2c_20btCollisionAlgorithm__20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btCollisionAlgorithm____size_28_29_20const($6 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + break label$1; + } + label$5 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) > (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + btAlignedObjectArray_btCollisionAlgorithm____reserve_28int_29($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[(HEAP32[($5 + 20 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btAlignedObjectArray_btCollisionAlgorithm____operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btCollisionAlgorithm____size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 2 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btAlignedObjectArray_btCollisionAlgorithm_____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btCollisionAlgorithm____clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btCollisionAlgorithm____size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btCollisionAlgorithm____reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btCollisionAlgorithm____capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btCollisionAlgorithm____allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btCollisionAlgorithm____copy_28int_2c_20int_2c_20btCollisionAlgorithm___29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btCollisionAlgorithm____size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btCollisionAlgorithm____destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btCollisionAlgorithm____size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btCollisionAlgorithm____deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btCollisionAlgorithm____clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btCollisionAlgorithm____destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btCollisionAlgorithm____size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btCollisionAlgorithm____deallocate_28_29($4 | 0); + btAlignedObjectArray_btCollisionAlgorithm____init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCompoundCollisionAlgorithm__removeChildAlgorithms_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $31 = 0, $34 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btAlignedObjectArray_btCollisionAlgorithm____size_28_29_20const($4 + 48 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($3 + 4 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) < (HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + label$3 : { + if (!((HEAP32[(btAlignedObjectArray_btCollisionAlgorithm____operator_5b_5d_28int_29($4 + 48 | 0 | 0, HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $31 = HEAP32[(btAlignedObjectArray_btCollisionAlgorithm____operator_5b_5d_28int_29($4 + 48 | 0 | 0, HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$31 >> 2] | 0) >> 2] | 0 | 0]($31) | 0; + $34 = HEAP32[($4 + 4 | 0) >> 2] | 0; + ((wasm2js_i32$1 = $34, wasm2js_i32$2 = HEAP32[(btAlignedObjectArray_btCollisionAlgorithm____operator_5b_5d_28int_29($4 + 48 | 0 | 0, HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$34 >> 2] | 0) + 60 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0); + } + HEAP32[($3 + 4 | 0) >> 2] = (HEAP32[($3 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCompoundCollisionAlgorithm___btCompoundCollisionAlgorithm_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 94780 + 8 | 0; + btCompoundCollisionAlgorithm__removeChildAlgorithms_28_29($4 | 0); + btAlignedObjectArray_btCollisionAlgorithm_____btAlignedObjectArray_28_29($4 + 48 | 0 | 0) | 0; + btAlignedObjectArray_btPersistentManifold_____btAlignedObjectArray_28_29($4 + 28 | 0 | 0) | 0; + btAlignedObjectArray_btDbvtNode_20const_____btAlignedObjectArray_28_29($4 + 8 | 0 | 0) | 0; + btActivatingCollisionAlgorithm___btActivatingCollisionAlgorithm_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCompoundCollisionAlgorithm___btCompoundCollisionAlgorithm_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[668 | 0]($4) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCompoundCollisionAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0, $13 = 0, $20 = 0, $96 = 0, $175 = 0, $320 = 0, $333 = 0, $363 = 0, $366 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0, wasm2js_i32$4 = 0; + $7 = __stack_pointer - 640 | 0; + __stack_pointer = $7; + HEAP32[($7 + 636 | 0) >> 2] = $0; + HEAP32[($7 + 632 | 0) >> 2] = $1; + HEAP32[($7 + 628 | 0) >> 2] = $2; + HEAP32[($7 + 624 | 0) >> 2] = $3; + HEAP32[($7 + 620 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 636 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($8 + 68 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + $13 = HEAP32[($7 + 628 | 0) >> 2] | 0; + break label$1; + } + $13 = HEAP32[($7 + 632 | 0) >> 2] | 0; + } + HEAP32[($7 + 616 | 0) >> 2] = $13; + label$3 : { + label$4 : { + if (!((HEAPU8[($8 + 68 | 0) >> 0] | 0) & 1 | 0)) { + break label$4 + } + $20 = HEAP32[($7 + 632 | 0) >> 2] | 0; + break label$3; + } + $20 = HEAP32[($7 + 628 | 0) >> 2] | 0; + } + HEAP32[($7 + 612 | 0) >> 2] = $20; + label$5 : { + if ((btCollisionShape__isCompound_28_29_20const(btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 616 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) & 1 | 0) { + break label$5 + } + __assert_fail(87719 | 0, 73354 | 0, 242 | 0, 76857 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 616 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 608 | 0) >> 2] = wasm2js_i32$1; + label$6 : { + if (!((btCompoundShape__getUpdateRevision_28_29_20const(HEAP32[($7 + 608 | 0) >> 2] | 0 | 0) | 0 | 0) != (HEAP32[($8 + 80 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + btCompoundCollisionAlgorithm__removeChildAlgorithms_28_29($8 | 0); + btCompoundCollisionAlgorithm__preallocateChildAlgorithms_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($8 | 0, HEAP32[($7 + 632 | 0) >> 2] | 0 | 0, HEAP32[($7 + 628 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $8, wasm2js_i32$1 = btCompoundShape__getUpdateRevision_28_29_20const(HEAP32[($7 + 608 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 80 | 0) >> 2] = wasm2js_i32$1; + } + label$7 : { + label$8 : { + if (btAlignedObjectArray_btCollisionAlgorithm____size_28_29_20const($8 + 48 | 0 | 0) | 0) { + break label$8 + } + break label$7; + } + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCompoundShape__getDynamicAabbTree_28_29_20const(HEAP32[($7 + 608 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 604 | 0) >> 2] = wasm2js_i32$1; + btCompoundLeafCallback__btCompoundLeafCallback_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcher__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__2c_20btCollisionAlgorithm___2c_20btPersistentManifold__29($7 + 572 | 0 | 0, HEAP32[($7 + 616 | 0) >> 2] | 0 | 0, HEAP32[($7 + 612 | 0) >> 2] | 0 | 0, HEAP32[($8 + 4 | 0) >> 2] | 0 | 0, HEAP32[($7 + 624 | 0) >> 2] | 0 | 0, HEAP32[($7 + 620 | 0) >> 2] | 0 | 0, btAlignedObjectArray_btCollisionAlgorithm____operator_5b_5d_28int_29($8 + 48 | 0 | 0, 0 | 0) | 0 | 0, HEAP32[($8 + 72 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7 + 564 | 0) >> 2] = 0; + btAlignedObjectArray_btPersistentManifold____resize_28int_2c_20btPersistentManifold__20const__29($8 + 28 | 0 | 0, 0 | 0, $7 + 564 | 0 | 0); + HEAP32[($7 + 568 | 0) >> 2] = 0; + label$9 : { + label$10 : while (1) { + if (!((HEAP32[($7 + 568 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btCollisionAlgorithm____size_28_29_20const($8 + 48 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$9 + } + label$11 : { + if (!((HEAP32[(btAlignedObjectArray_btCollisionAlgorithm____operator_5b_5d_28int_29($8 + 48 | 0 | 0, HEAP32[($7 + 568 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$11 + } + $96 = HEAP32[(btAlignedObjectArray_btCollisionAlgorithm____operator_5b_5d_28int_29($8 + 48 | 0 | 0, HEAP32[($7 + 568 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$96 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($96, $8 + 28 | 0); + HEAP32[($7 + 560 | 0) >> 2] = 0; + label$12 : { + label$13 : while (1) { + if (!((HEAP32[($7 + 560 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btPersistentManifold____size_28_29_20const($8 + 28 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$12 + } + label$14 : { + if (!(btPersistentManifold__getNumContacts_28_29_20const(HEAP32[(btAlignedObjectArray_btPersistentManifold____operator_5b_5d_28int_29($8 + 28 | 0 | 0, HEAP32[($7 + 560 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) | 0)) { + break label$14 + } + btManifoldResult__setPersistentManifold_28btPersistentManifold__29(HEAP32[($7 + 620 | 0) >> 2] | 0 | 0, HEAP32[(btAlignedObjectArray_btPersistentManifold____operator_5b_5d_28int_29($8 + 28 | 0 | 0, HEAP32[($7 + 560 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0); + btManifoldResult__refreshContactPoints_28_29(HEAP32[($7 + 620 | 0) >> 2] | 0 | 0); + btManifoldResult__setPersistentManifold_28btPersistentManifold__29(HEAP32[($7 + 620 | 0) >> 2] | 0 | 0, 0 | 0); + } + HEAP32[($7 + 560 | 0) >> 2] = (HEAP32[($7 + 560 | 0) >> 2] | 0) + 1 | 0; + continue label$13; + }; + } + HEAP32[($7 + 556 | 0) >> 2] = 0; + btAlignedObjectArray_btPersistentManifold____resize_28int_2c_20btPersistentManifold__20const__29($8 + 28 | 0 | 0, 0 | 0, $7 + 556 | 0 | 0); + } + HEAP32[($7 + 568 | 0) >> 2] = (HEAP32[($7 + 568 | 0) >> 2] | 0) + 1 | 0; + continue label$10; + }; + } + label$15 : { + label$16 : { + if (!((HEAP32[($7 + 604 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$16 + } + btVector3__btVector3_28_29($7 + 540 | 0 | 0) | 0; + btVector3__btVector3_28_29($7 + 524 | 0 | 0) | 0; + btTransform__btTransform_28_29($7 + 460 | 0 | 0) | 0; + btTransform__inverse_28_29_20const($7 + 332 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 616 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator__28btTransform_20const__29_20const($7 + 396 | 0 | 0, $7 + 332 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 612 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator__28btTransform_20const__29($7 + 460 | 0 | 0, $7 + 396 | 0 | 0) | 0; + $175 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 612 | 0) >> 2] | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$175 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($175, $7 + 460 | 0, $7 + 540 | 0, $7 + 524 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 316 | 0 | 0, (HEAP32[($7 + 620 | 0) >> 2] | 0) + 32 | 0 | 0, (HEAP32[($7 + 620 | 0) >> 2] | 0) + 32 | 0 | 0, (HEAP32[($7 + 620 | 0) >> 2] | 0) + 32 | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29($7 + 540 | 0 | 0, $7 + 316 | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($7 + 524 | 0 | 0, $7 + 316 | 0 | 0) | 0; + btDbvtAabbMm__FromMM_28btVector3_20const__2c_20btVector3_20const__29($7 + 284 | 0 | 0, $7 + 540 | 0 | 0, $7 + 524 | 0 | 0); + btDbvt__collideTVNoStackAlloc_28btDbvtNode_20const__2c_20btDbvtAabbMm_20const__2c_20btAlignedObjectArray_btDbvtNode_20const____2c_20btDbvt__ICollide__29_20const(HEAP32[($7 + 604 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[($7 + 604 | 0) >> 2] | 0) >> 2] | 0 | 0, $7 + 284 | 0 | 0, $8 + 8 | 0 | 0, $7 + 572 | 0 | 0); + break label$15; + } + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btAlignedObjectArray_btCollisionAlgorithm____size_28_29_20const($8 + 48 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 280 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($7 + 276 | 0) >> 2] = 0; + label$17 : { + label$18 : while (1) { + if (!((HEAP32[($7 + 276 | 0) >> 2] | 0 | 0) < (HEAP32[($7 + 280 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$17 + } + btCompoundLeafCallback__ProcessChildShape_28btCollisionShape_20const__2c_20int_29($7 + 572 | 0 | 0, btCompoundShape__getChildShape_28int_29_20const(HEAP32[($7 + 608 | 0) >> 2] | 0 | 0, HEAP32[($7 + 276 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($7 + 276 | 0) >> 2] | 0 | 0); + HEAP32[($7 + 276 | 0) >> 2] = (HEAP32[($7 + 276 | 0) >> 2] | 0) + 1 | 0; + continue label$18; + }; + } + } + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btAlignedObjectArray_btCollisionAlgorithm____size_28_29_20const($8 + 48 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 272 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($7 + 264 | 0) >> 2] = 0; + btAlignedObjectArray_btPersistentManifold____resize_28int_2c_20btPersistentManifold__20const__29($8 + 28 | 0 | 0, 0 | 0, $7 + 264 | 0 | 0); + HEAP32[($7 + 260 | 0) >> 2] = 0; + btTransform__btTransform_28_29($7 + 196 | 0 | 0) | 0; + btTransform__btTransform_28_29($7 + 132 | 0 | 0) | 0; + btVector3__btVector3_28_29($7 + 116 | 0 | 0) | 0; + btVector3__btVector3_28_29($7 + 100 | 0 | 0) | 0; + btVector3__btVector3_28_29($7 + 84 | 0 | 0) | 0; + btVector3__btVector3_28_29($7 + 68 | 0 | 0) | 0; + HEAP32[($7 + 268 | 0) >> 2] = 0; + label$19 : { + label$20 : while (1) { + if (!((HEAP32[($7 + 268 | 0) >> 2] | 0 | 0) < (HEAP32[($7 + 272 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$19 + } + label$21 : { + if (!((HEAP32[(btAlignedObjectArray_btCollisionAlgorithm____operator_5b_5d_28int_29($8 + 48 | 0 | 0, HEAP32[($7 + 268 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$21 + } + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCompoundShape__getChildShape_28int_29_20const(HEAP32[($7 + 608 | 0) >> 2] | 0 | 0, HEAP32[($7 + 268 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 260 | 0) >> 2] = wasm2js_i32$1; + btTransform__operator__28btTransform_20const__29($7 + 196 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 616 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCompoundShape__getChildTransform_28int_29_20const(HEAP32[($7 + 608 | 0) >> 2] | 0 | 0, HEAP32[($7 + 268 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 64 | 0) >> 2] = wasm2js_i32$1; + btTransform__operator__28btTransform_20const__29_20const($7 | 0, $7 + 196 | 0 | 0, HEAP32[($7 + 64 | 0) >> 2] | 0 | 0); + btTransform__operator__28btTransform_20const__29($7 + 132 | 0 | 0, $7 | 0) | 0; + $320 = HEAP32[($7 + 260 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$320 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($320, $7 + 132 | 0, $7 + 116 | 0, $7 + 100 | 0); + $333 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 612 | 0) >> 2] | 0 | 0) | 0; + ((((wasm2js_i32$1 = $333, wasm2js_i32$2 = btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 612 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$3 = $7 + 84 | 0), wasm2js_i32$4 = $7 + 68 | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$333 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0, wasm2js_i32$3 | 0, wasm2js_i32$4 | 0); + label$22 : { + if ((TestAabbAgainstAabb2_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($7 + 116 | 0 | 0, $7 + 100 | 0 | 0, $7 + 84 | 0 | 0, $7 + 68 | 0 | 0) | 0) & 1 | 0) { + break label$22 + } + $363 = HEAP32[(btAlignedObjectArray_btCollisionAlgorithm____operator_5b_5d_28int_29($8 + 48 | 0 | 0, HEAP32[($7 + 268 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$363 >> 2] | 0) >> 2] | 0 | 0]($363) | 0; + $366 = HEAP32[($8 + 4 | 0) >> 2] | 0; + ((wasm2js_i32$4 = $366, wasm2js_i32$3 = HEAP32[(btAlignedObjectArray_btCollisionAlgorithm____operator_5b_5d_28int_29($8 + 48 | 0 | 0, HEAP32[($7 + 268 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$366 >> 2] | 0) + 60 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$4 | 0, wasm2js_i32$3 | 0); + (wasm2js_i32$0 = btAlignedObjectArray_btCollisionAlgorithm____operator_5b_5d_28int_29($8 + 48 | 0 | 0, HEAP32[($7 + 268 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$3 = 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$3; + } + } + HEAP32[($7 + 268 | 0) >> 2] = (HEAP32[($7 + 268 | 0) >> 2] | 0) + 1 | 0; + continue label$20; + }; + } + btCompoundLeafCallback___btCompoundLeafCallback_28_29($7 + 572 | 0 | 0) | 0; + } + __stack_pointer = $7 + 640 | 0; + return; + } + + function btCompoundLeafCallback__btCompoundLeafCallback_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcher__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__2c_20btCollisionAlgorithm___2c_20btPersistentManifold__29($0, $1, $2, $3, $4, $5, $6, $7) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + var $10 = 0, $11 = 0; + $10 = __stack_pointer - 32 | 0; + __stack_pointer = $10; + HEAP32[($10 + 28 | 0) >> 2] = $0; + HEAP32[($10 + 24 | 0) >> 2] = $1; + HEAP32[($10 + 20 | 0) >> 2] = $2; + HEAP32[($10 + 16 | 0) >> 2] = $3; + HEAP32[($10 + 12 | 0) >> 2] = $4; + HEAP32[($10 + 8 | 0) >> 2] = $5; + HEAP32[($10 + 4 | 0) >> 2] = $6; + HEAP32[$10 >> 2] = $7; + $11 = HEAP32[($10 + 28 | 0) >> 2] | 0; + btDbvt__ICollide__ICollide_28_29($11 | 0) | 0; + HEAP32[$11 >> 2] = 94852 + 8 | 0; + HEAP32[($11 + 4 | 0) >> 2] = HEAP32[($10 + 24 | 0) >> 2] | 0; + HEAP32[($11 + 8 | 0) >> 2] = HEAP32[($10 + 20 | 0) >> 2] | 0; + HEAP32[($11 + 12 | 0) >> 2] = HEAP32[($10 + 16 | 0) >> 2] | 0; + HEAP32[($11 + 16 | 0) >> 2] = HEAP32[($10 + 12 | 0) >> 2] | 0; + HEAP32[($11 + 20 | 0) >> 2] = HEAP32[($10 + 8 | 0) >> 2] | 0; + HEAP32[($11 + 24 | 0) >> 2] = HEAP32[($10 + 4 | 0) >> 2] | 0; + HEAP32[($11 + 28 | 0) >> 2] = HEAP32[$10 >> 2] | 0; + __stack_pointer = $10 + 32 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btPersistentManifold____resize_28int_2c_20btPersistentManifold__20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btPersistentManifold____size_28_29_20const($6 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + break label$1; + } + label$5 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) > (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + btAlignedObjectArray_btPersistentManifold____reserve_28int_29($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[(HEAP32[($5 + 20 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btDbvt__collideTVNoStackAlloc_28btDbvtNode_20const__2c_20btDbvtAabbMm_20const__2c_20btAlignedObjectArray_btDbvtNode_20const____2c_20btDbvt__ICollide__29_20const($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $15 = 0, $16 = 0, $22 = 0, $28 = 0, $76 = 0, $131 = 0, $144 = 0, $157 = 0, $161 = 0, $35 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $7 = __stack_pointer - 64 | 0; + __stack_pointer = $7; + HEAP32[($7 + 60 | 0) >> 2] = $0; + HEAP32[($7 + 56 | 0) >> 2] = $1; + HEAP32[($7 + 52 | 0) >> 2] = $2; + HEAP32[($7 + 48 | 0) >> 2] = $3; + HEAP32[($7 + 44 | 0) >> 2] = $4; + label$1 : { + if (!((HEAP32[($7 + 56 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + $15 = HEAP32[($7 + 52 | 0) >> 2] | 0; + $16 = 24; + i64toi32_i32$2 = $15 + $16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $131 = i64toi32_i32$0; + i64toi32_i32$0 = ($7 + 8 | 0) + $16 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $131; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $22 = 16; + i64toi32_i32$2 = $15 + $22 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $144 = i64toi32_i32$1; + i64toi32_i32$1 = ($7 + 8 | 0) + $22 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $144; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $28 = 8; + i64toi32_i32$2 = $15 + $28 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $157 = i64toi32_i32$0; + i64toi32_i32$0 = ($7 + 8 | 0) + $28 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $157; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $15; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $161 = i64toi32_i32$1; + i64toi32_i32$1 = $7; + HEAP32[($7 + 8 | 0) >> 2] = $161; + HEAP32[($7 + 12 | 0) >> 2] = i64toi32_i32$0; + $35 = HEAP32[($7 + 48 | 0) >> 2] | 0; + HEAP32[($7 + 4 | 0) >> 2] = 0; + btAlignedObjectArray_btDbvtNode_20const____resize_28int_2c_20btDbvtNode_20const__20const__29($35 | 0, 0 | 0, $7 + 4 | 0 | 0); + btAlignedObjectArray_btDbvtNode_20const____reserve_28int_29(HEAP32[($7 + 48 | 0) >> 2] | 0 | 0, 64 | 0); + btAlignedObjectArray_btDbvtNode_20const____push_back_28btDbvtNode_20const__20const__29(HEAP32[($7 + 48 | 0) >> 2] | 0 | 0, $7 + 56 | 0 | 0); + label$2 : while (1) { + (wasm2js_i32$0 = $7, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btDbvtNode_20const____operator_5b_5d_28int_29(HEAP32[($7 + 48 | 0) >> 2] | 0 | 0, (btAlignedObjectArray_btDbvtNode_20const____size_28_29_20const(HEAP32[($7 + 48 | 0) >> 2] | 0 | 0) | 0) - 1 | 0 | 0) | 0) >> 2] | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btDbvtNode_20const____pop_back_28_29(HEAP32[($7 + 48 | 0) >> 2] | 0 | 0); + label$3 : { + if (!((Intersect_28btDbvtAabbMm_20const__2c_20btDbvtAabbMm_20const__29(HEAP32[$7 >> 2] | 0 | 0, $7 + 8 | 0 | 0) | 0) & 1 | 0)) { + break label$3 + } + label$4 : { + label$5 : { + if (!((btDbvtNode__isinternal_28_29_20const(HEAP32[$7 >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$5 + } + btAlignedObjectArray_btDbvtNode_20const____push_back_28btDbvtNode_20const__20const__29(HEAP32[($7 + 48 | 0) >> 2] | 0 | 0, (HEAP32[$7 >> 2] | 0) + 36 | 0 | 0); + btAlignedObjectArray_btDbvtNode_20const____push_back_28btDbvtNode_20const__20const__29(HEAP32[($7 + 48 | 0) >> 2] | 0 | 0, ((HEAP32[$7 >> 2] | 0) + 36 | 0) + 4 | 0 | 0); + break label$4; + } + $76 = HEAP32[($7 + 44 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$76 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($76, HEAP32[$7 >> 2] | 0); + } + } + if ((btAlignedObjectArray_btDbvtNode_20const____size_28_29_20const(HEAP32[($7 + 48 | 0) >> 2] | 0 | 0) | 0 | 0) > (0 | 0) & 1 | 0) { + continue label$2 + } + break label$2; + }; + } + __stack_pointer = $7 + 64 | 0; + return; + } + + function btCompoundLeafCallback__ProcessChildShape_28btCollisionShape_20const__2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $53 = 0, $96 = 0, $158 = 0, $180 = 0, $217 = 0, $228 = 0, $233 = 0, $116 = 0, $189 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0, wasm2js_i32$4 = 0; + $5 = __stack_pointer - 272 | 0; + __stack_pointer = $5; + HEAP32[($5 + 268 | 0) >> 2] = $0; + HEAP32[($5 + 264 | 0) >> 2] = $1; + HEAP32[($5 + 260 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 268 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($5 + 260 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85814 | 0, 73354 | 0, 125 | 0, 81712 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($6 + 4 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 256 | 0) >> 2] = wasm2js_i32$1; + label$2 : { + if ((HEAP32[($5 + 260 | 0) >> 2] | 0 | 0) < (btCompoundShape__getNumChildShapes_28_29_20const(HEAP32[($5 + 256 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87116 | 0, 73354 | 0, 127 | 0, 81712 | 0); + wasm2js_trap(); + } + btTransform__btTransform_28btTransform_20const__29($5 + 192 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($6 + 4 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btCompoundShape__getChildTransform_28int_29_20const(HEAP32[($5 + 256 | 0) >> 2] | 0 | 0, HEAP32[($5 + 260 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 188 | 0) >> 2] = wasm2js_i32$1; + btTransform__operator__28btTransform_20const__29_20const($5 + 124 | 0 | 0, $5 + 192 | 0 | 0, HEAP32[($5 + 188 | 0) >> 2] | 0 | 0); + btVector3__btVector3_28_29($5 + 108 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 92 | 0 | 0) | 0; + $53 = HEAP32[($5 + 264 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$53 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($53, $5 + 124 | 0, $5 + 108 | 0, $5 + 92 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 76 | 0 | 0, (HEAP32[($6 + 20 | 0) >> 2] | 0) + 32 | 0 | 0, (HEAP32[($6 + 20 | 0) >> 2] | 0) + 32 | 0 | 0, (HEAP32[($6 + 20 | 0) >> 2] | 0) + 32 | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29($5 + 108 | 0 | 0, $5 + 76 | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($5 + 92 | 0 | 0, $5 + 76 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 60 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 44 | 0 | 0) | 0; + $96 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0; + ((((wasm2js_i32$1 = $96, wasm2js_i32$2 = btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$3 = $5 + 60 | 0), wasm2js_i32$4 = $5 + 44 | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$96 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0, wasm2js_i32$3 | 0, wasm2js_i32$4 | 0); + label$3 : { + label$4 : { + if (!((HEAP32[(0 + 114008 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $116 = HEAP32[(0 + 114008 | 0) >> 2] | 0; + label$5 : { + if ((FUNCTION_TABLE[$116 | 0](btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0, HEAP32[($5 + 264 | 0) >> 2] | 0) | 0) & 1 | 0) { + break label$5 + } + break label$3; + } + } + if (!((TestAabbAgainstAabb2_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($5 + 108 | 0 | 0, $5 + 92 | 0 | 0, $5 + 60 | 0 | 0, $5 + 44 | 0 | 0) | 0) & 1 | 0)) { + break label$3 + } + btCollisionObjectWrapper__btCollisionObjectWrapper_28btCollisionObjectWrapper_20const__2c_20btCollisionShape_20const__2c_20btCollisionObject_20const__2c_20btTransform_20const__2c_20int_2c_20int_29($5 + 20 | 0 | 0, HEAP32[($6 + 4 | 0) >> 2] | 0 | 0, HEAP32[($5 + 264 | 0) >> 2] | 0 | 0, btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($6 + 4 | 0) >> 2] | 0 | 0) | 0 | 0, $5 + 124 | 0 | 0, -1 | 0, HEAP32[($5 + 260 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5 + 16 | 0) >> 2] = 0; + label$6 : { + label$7 : { + if (!(Math_fround(HEAPF32[((HEAP32[($6 + 20 | 0) >> 2] | 0) + 32 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$7 + } + $158 = HEAP32[($6 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$4 = FUNCTION_TABLE[HEAP32[((HEAP32[$158 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($158, $5 + 20 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0, 0, 2) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$4; + break label$6; + } + label$8 : { + if ((HEAP32[((HEAP32[($6 + 24 | 0) >> 2] | 0) + ((HEAP32[($5 + 260 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$8 + } + $180 = HEAP32[($6 + 12 | 0) >> 2] | 0; + $189 = FUNCTION_TABLE[HEAP32[((HEAP32[$180 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($180, $5 + 20 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0, HEAP32[($6 + 28 | 0) >> 2] | 0, 1) | 0; + HEAP32[((HEAP32[($6 + 24 | 0) >> 2] | 0) + ((HEAP32[($5 + 260 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = $189; + } + HEAP32[($5 + 16 | 0) >> 2] = HEAP32[((HEAP32[($6 + 24 | 0) >> 2] | 0) + ((HEAP32[($5 + 260 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + } + HEAP32[($5 + 12 | 0) >> 2] = 0; + label$9 : { + label$10 : { + if (!((btManifoldResult__getBody0Internal_28_29_20const(HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0 | 0) == (btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($6 + 4 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$10 + } + (wasm2js_i32$0 = $5, wasm2js_i32$4 = btManifoldResult__getBody0Wrap_28_29_20const(HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$4; + btManifoldResult__setBody0Wrap_28btCollisionObjectWrapper_20const__29(HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, $5 + 20 | 0 | 0); + $217 = HEAP32[($6 + 20 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$217 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($217, -1, HEAP32[($5 + 260 | 0) >> 2] | 0); + break label$9; + } + (wasm2js_i32$0 = $5, wasm2js_i32$4 = btManifoldResult__getBody1Wrap_28_29_20const(HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$4; + btManifoldResult__setBody1Wrap_28btCollisionObjectWrapper_20const__29(HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, $5 + 20 | 0 | 0); + $228 = HEAP32[($6 + 20 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$228 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($228, -1, HEAP32[($5 + 260 | 0) >> 2] | 0); + } + $233 = HEAP32[($5 + 16 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$233 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($233, $5 + 20 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0, HEAP32[($6 + 16 | 0) >> 2] | 0, HEAP32[($6 + 20 | 0) >> 2] | 0); + label$11 : { + label$12 : { + if (!((btManifoldResult__getBody0Internal_28_29_20const(HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0 | 0) == (btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($6 + 4 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$12 + } + btManifoldResult__setBody0Wrap_28btCollisionObjectWrapper_20const__29(HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0); + break label$11; + } + btManifoldResult__setBody1Wrap_28btCollisionObjectWrapper_20const__29(HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0); + } + } + __stack_pointer = $5 + 272 | 0; + return; + } + + function TestAabbAgainstAabb2_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $27 = 0, $51 = 0, $75 = 0, $82 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + HEAP8[($6 + 15 | 0) >> 0] = 1; + label$1 : { + label$2 : { + label$3 : { + if (Math_fround(HEAPF32[(btVector3__getX_28_29_20const(HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2]) > Math_fround(HEAPF32[(btVector3__getX_28_29_20const(HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) | 0) >> 2]) & 1 | 0) { + break label$3 + } + if (!(Math_fround(HEAPF32[(btVector3__getX_28_29_20const(HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2]) < Math_fround(HEAPF32[(btVector3__getX_28_29_20const(HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0) >> 2]) & 1 | 0)) { + break label$2 + } + } + $27 = 0; + break label$1; + } + $27 = HEAPU8[($6 + 15 | 0) >> 0] | 0; + } + HEAP8[($6 + 15 | 0) >> 0] = $27 & 1 | 0; + label$4 : { + label$5 : { + label$6 : { + if (Math_fround(HEAPF32[(btVector3__getZ_28_29_20const(HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2]) > Math_fround(HEAPF32[(btVector3__getZ_28_29_20const(HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) | 0) >> 2]) & 1 | 0) { + break label$6 + } + if (!(Math_fround(HEAPF32[(btVector3__getZ_28_29_20const(HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2]) < Math_fround(HEAPF32[(btVector3__getZ_28_29_20const(HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0) >> 2]) & 1 | 0)) { + break label$5 + } + } + $51 = 0; + break label$4; + } + $51 = HEAPU8[($6 + 15 | 0) >> 0] | 0; + } + HEAP8[($6 + 15 | 0) >> 0] = $51 & 1 | 0; + label$7 : { + label$8 : { + label$9 : { + if (Math_fround(HEAPF32[(btVector3__getY_28_29_20const(HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2]) > Math_fround(HEAPF32[(btVector3__getY_28_29_20const(HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) | 0) >> 2]) & 1 | 0) { + break label$9 + } + if (!(Math_fround(HEAPF32[(btVector3__getY_28_29_20const(HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2]) < Math_fround(HEAPF32[(btVector3__getY_28_29_20const(HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0) >> 2]) & 1 | 0)) { + break label$8 + } + } + $75 = 0; + break label$7; + } + $75 = HEAPU8[($6 + 15 | 0) >> 0] | 0; + } + HEAP8[($6 + 15 | 0) >> 0] = $75 & 1 | 0; + $82 = (HEAPU8[($6 + 15 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $6 + 32 | 0; + return $82 | 0; + } + + function btCompoundLeafCallback___btCompoundLeafCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btDbvt__ICollide___ICollide_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCompoundCollisionAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0; + $7 = __stack_pointer - 112 | 0; + __stack_pointer = $7; + HEAP32[($7 + 108 | 0) >> 2] = $0; + HEAP32[($7 + 104 | 0) >> 2] = $1; + HEAP32[($7 + 100 | 0) >> 2] = $2; + HEAP32[($7 + 96 | 0) >> 2] = $3; + HEAP32[($7 + 92 | 0) >> 2] = $4; + __assert_fail(86177 | 0, 73354 | 0, 353 | 0, 68931 | 0); + wasm2js_trap(); + } + + function btCompoundCollisionAlgorithm__getAllContactManifolds_28btAlignedObjectArray_btPersistentManifold____29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $31 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btCollisionAlgorithm____size_28_29_20const($5 + 48 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + label$3 : { + if (!((HEAP32[(btAlignedObjectArray_btCollisionAlgorithm____operator_5b_5d_28int_29($5 + 48 | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $31 = HEAP32[(btAlignedObjectArray_btCollisionAlgorithm____operator_5b_5d_28int_29($5 + 48 | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$31 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($31, HEAP32[($4 + 8 | 0) >> 2] | 0); + } + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCompoundLeafCallback___btCompoundLeafCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCompoundLeafCallback___btCompoundLeafCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCompoundLeafCallback__Process_28btDbvtNode_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + HEAP32[($4 + 20 | 0) >> 2] = HEAP32[((HEAP32[($4 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btCompoundShape__getChildShape_28int_29_20const(HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, HEAP32[($4 + 20 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + btCompoundLeafCallback__ProcessChildShape_28btCollisionShape_20const__2c_20int_29($5 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4 + 20 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function btAlignedObjectArray_btCollisionAlgorithm____destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btCollisionAlgorithm____deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btCollisionAlgorithm__2c_2016u___deallocate_28btCollisionAlgorithm___29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocator_btCollisionAlgorithm__2c_2016u___deallocate_28btCollisionAlgorithm___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btCollisionAlgorithm____capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btCollisionAlgorithm____allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btCollisionAlgorithm__2c_2016u___allocate_28int_2c_20btCollisionAlgorithm__20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btCollisionAlgorithm____copy_28int_2c_20int_2c_20btCollisionAlgorithm___29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[((HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[((HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedAllocator_btCollisionAlgorithm__2c_2016u___allocate_28int_2c_20btCollisionAlgorithm__20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function _GLOBAL__sub_I_btCompoundCollisionAlgorithm_cpp() { + __cxx_global_var_init_16(); + return; + } + + function __cxx_global_var_init_17() { + btInfMaskConverter__btInfMaskConverter_28int_29(114012 | 0, 2139095040 | 0) | 0; + return; + } + + function btCompoundCompoundCollisionAlgorithm__btCompoundCompoundCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20bool_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $9 = 0, $24 = 0, $53 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $7 = __stack_pointer - 48 | 0; + __stack_pointer = $7; + HEAP32[($7 + 40 | 0) >> 2] = $0; + HEAP32[($7 + 36 | 0) >> 2] = $1; + HEAP32[($7 + 32 | 0) >> 2] = $2; + HEAP32[($7 + 28 | 0) >> 2] = $3; + HEAP8[($7 + 27 | 0) >> 0] = $4; + $9 = HEAP32[($7 + 40 | 0) >> 2] | 0; + HEAP32[($7 + 44 | 0) >> 2] = $9; + btCompoundCollisionAlgorithm__btCompoundCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20bool_29($9 | 0, HEAP32[($7 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7 + 28 | 0) >> 2] | 0 | 0, (HEAPU8[($7 + 27 | 0) >> 0] | 0) & 1 | 0 | 0) | 0; + HEAP32[$9 >> 2] = 94928 + 8 | 0; + btAlignedObjectArray_btSimplePair___btAlignedObjectArray_28_29($9 + 88 | 0 | 0) | 0; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(64 | 0, 16 | 0) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + $24 = HEAP32[($7 + 20 | 0) >> 2] | 0; + btHashedSimplePairCache__btHashedSimplePairCache_28_29($24 | 0) | 0; + HEAP32[($9 + 84 | 0) >> 2] = $24; + HEAP32[($7 + 16 | 0) >> 2] = HEAP32[($7 + 32 | 0) >> 2] | 0; + label$1 : { + if ((btCollisionShape__isCompound_28_29_20const(btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 16 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) & 1 | 0) { + break label$1 + } + __assert_fail(87812 | 0, 73490 | 0, 40 | 0, 77211 | 0); + wasm2js_trap(); + } + HEAP32[($7 + 12 | 0) >> 2] = HEAP32[($7 + 28 | 0) >> 2] | 0; + label$2 : { + if ((btCollisionShape__isCompound_28_29_20const(btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87765 | 0, 73490 | 0, 43 | 0, 77211 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 16 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $9, wasm2js_i32$1 = btCompoundShape__getUpdateRevision_28_29_20const(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 108 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $9, wasm2js_i32$1 = btCompoundShape__getUpdateRevision_28_29_20const(HEAP32[($7 + 4 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 112 | 0) >> 2] = wasm2js_i32$1; + $53 = HEAP32[($7 + 44 | 0) >> 2] | 0; + __stack_pointer = $7 + 48 | 0; + return $53 | 0; + } + + function btAlignedObjectArray_btSimplePair___btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btSimplePair_2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btSimplePair___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedAllocator_btSimplePair_2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btSimplePair___init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btCompoundCompoundCollisionAlgorithm___btCompoundCompoundCollisionAlgorithm_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0, $8 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 94928 + 8 | 0; + btCompoundCompoundCollisionAlgorithm__removeChildAlgorithms_28_29($4 | 0); + $8 = HEAP32[($4 + 84 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$8 >> 2] | 0) >> 2] | 0 | 0]($8) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 84 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btSimplePair____btAlignedObjectArray_28_29($4 + 88 | 0 | 0) | 0; + btCompoundCollisionAlgorithm___btCompoundCollisionAlgorithm_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCompoundCompoundCollisionAlgorithm__removeChildAlgorithms_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $31 = 0, $34 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $3 = __stack_pointer - 32 | 0; + __stack_pointer = $3; + HEAP32[($3 + 28 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btHashedSimplePairCache__getOverlappingPairArray_28_29(HEAP32[($4 + 84 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btAlignedObjectArray_btSimplePair___size_28_29_20const(HEAP32[($3 + 24 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($3 + 16 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3 + 16 | 0) >> 2] | 0 | 0) < (HEAP32[($3 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + label$3 : { + if (!((HEAP32[((btAlignedObjectArray_btSimplePair___operator_5b_5d_28int_29(HEAP32[($3 + 24 | 0) >> 2] | 0 | 0, HEAP32[($3 + 16 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + (wasm2js_i32$0 = $3, wasm2js_i32$1 = HEAP32[((btAlignedObjectArray_btSimplePair___operator_5b_5d_28int_29(HEAP32[($3 + 24 | 0) >> 2] | 0 | 0, HEAP32[($3 + 16 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $31 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$31 >> 2] | 0) >> 2] | 0 | 0]($31) | 0; + $34 = HEAP32[($4 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$34 >> 2] | 0) + 60 | 0) >> 2] | 0 | 0]($34, HEAP32[($3 + 12 | 0) >> 2] | 0); + } + HEAP32[($3 + 16 | 0) >> 2] = (HEAP32[($3 + 16 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + btHashedSimplePairCache__removeAllPairs_28_29(HEAP32[($4 + 84 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 32 | 0; + return; + } + + function btAlignedObjectArray_btSimplePair____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btSimplePair___clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btHashedSimplePairCache__getOverlappingPairArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0 | 0; + } + + function btAlignedObjectArray_btSimplePair___size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btSimplePair___operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btSimplePair___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($4 + 8 | 0) >> 2] | 0, 12) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btAlignedObjectArray_btSimplePair___clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btSimplePair___destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btSimplePair___size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btSimplePair___deallocate_28_29($4 | 0); + btAlignedObjectArray_btSimplePair___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCompoundCompoundCollisionAlgorithm___btCompoundCompoundCollisionAlgorithm_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[676 | 0]($4) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCompoundCompoundCollisionAlgorithm__getAllContactManifolds_28btAlignedObjectArray_btPersistentManifold____29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $30 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btHashedSimplePairCache__getOverlappingPairArray_28_29(HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 84 | 0) >> 2] | 0 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[($4 + 4 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btSimplePair___size_28_29_20const(HEAP32[$4 >> 2] | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + label$3 : { + if (!((HEAP32[((btAlignedObjectArray_btSimplePair___operator_5b_5d_28int_29(HEAP32[$4 >> 2] | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $30 = HEAP32[((btAlignedObjectArray_btSimplePair___operator_5b_5d_28int_29(HEAP32[$4 >> 2] | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$30 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($30, HEAP32[($4 + 8 | 0) >> 2] | 0); + } + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCompoundCompoundCollisionAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0, $80 = 0, $83 = 0, $84 = 0, $86 = 0, $125 = 0, $303 = 0, $384 = 0, $423 = 0, $426 = 0, $459 = 0, $82 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0; + $7 = __stack_pointer - 4400 | 0; + __stack_pointer = $7; + HEAP32[($7 + 4396 | 0) >> 2] = $0; + HEAP32[($7 + 4392 | 0) >> 2] = $1; + HEAP32[($7 + 4388 | 0) >> 2] = $2; + HEAP32[($7 + 4384 | 0) >> 2] = $3; + HEAP32[($7 + 4380 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 4396 | 0) >> 2] | 0; + HEAP32[($7 + 4376 | 0) >> 2] = HEAP32[($7 + 4392 | 0) >> 2] | 0; + HEAP32[($7 + 4372 | 0) >> 2] = HEAP32[($7 + 4388 | 0) >> 2] | 0; + label$1 : { + if ((btCollisionShape__isCompound_28_29_20const(btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 4376 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) & 1 | 0) { + break label$1 + } + __assert_fail(87812 | 0, 73490 | 0, 310 | 0, 76857 | 0); + wasm2js_trap(); + } + label$2 : { + if ((btCollisionShape__isCompound_28_29_20const(btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 4372 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87765 | 0, 73490 | 0, 311 | 0, 76857 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 4376 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4368 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 4372 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4364 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCompoundShape__getDynamicAabbTree_28_29_20const(HEAP32[($7 + 4368 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4360 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCompoundShape__getDynamicAabbTree_28_29_20const(HEAP32[($7 + 4364 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4356 | 0) >> 2] = wasm2js_i32$1; + label$3 : { + label$4 : { + label$5 : { + if (!((HEAP32[($7 + 4360 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + if ((HEAP32[($7 + 4356 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$4 + } + } + btCompoundCollisionAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29($8 | 0, HEAP32[($7 + 4392 | 0) >> 2] | 0 | 0, HEAP32[($7 + 4388 | 0) >> 2] | 0 | 0, HEAP32[($7 + 4384 | 0) >> 2] | 0 | 0, HEAP32[($7 + 4380 | 0) >> 2] | 0 | 0); + break label$3; + } + label$6 : { + label$7 : { + if ((btCompoundShape__getUpdateRevision_28_29_20const(HEAP32[($7 + 4368 | 0) >> 2] | 0 | 0) | 0 | 0) != (HEAP32[($8 + 108 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$7 + } + if (!((btCompoundShape__getUpdateRevision_28_29_20const(HEAP32[($7 + 4364 | 0) >> 2] | 0 | 0) | 0 | 0) != (HEAP32[($8 + 112 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + } + btCompoundCompoundCollisionAlgorithm__removeChildAlgorithms_28_29($8 | 0); + (wasm2js_i32$0 = $8, wasm2js_i32$1 = btCompoundShape__getUpdateRevision_28_29_20const(HEAP32[($7 + 4368 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 108 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $8, wasm2js_i32$1 = btCompoundShape__getUpdateRevision_28_29_20const(HEAP32[($7 + 4364 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 112 | 0) >> 2] = wasm2js_i32$1; + } + btAlignedObjectArray_btPersistentManifold____btAlignedObjectArray_28_29($7 + 4332 | 0 | 0) | 0; + $80 = $7 + 848 | 0; + $82 = $80 + 3472 | 0; + $83 = $80; + label$8 : while (1) { + $84 = $83; + btPersistentManifold__btPersistentManifold_28_29($84 | 0) | 0; + $86 = $84 + 868 | 0; + $83 = $86; + if (!(($86 | 0) == ($82 | 0) & 1 | 0)) { + continue label$8 + } + break label$8; + }; + btAlignedObjectArray_btPersistentManifold____initializeFromBuffer_28void__2c_20int_2c_20int_29($7 + 4332 | 0 | 0, $7 + 848 | 0 | 0, 0 | 0, 4 | 0); + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btHashedSimplePairCache__getOverlappingPairArray_28_29(HEAP32[($8 + 84 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 844 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($7 + 4352 | 0) >> 2] = 0; + label$9 : { + label$10 : while (1) { + if (!((HEAP32[($7 + 4352 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btSimplePair___size_28_29_20const(HEAP32[($7 + 844 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$9 + } + label$11 : { + if (!((HEAP32[((btAlignedObjectArray_btSimplePair___operator_5b_5d_28int_29(HEAP32[($7 + 844 | 0) >> 2] | 0 | 0, HEAP32[($7 + 4352 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$11 + } + (wasm2js_i32$0 = $7, wasm2js_i32$1 = HEAP32[((btAlignedObjectArray_btSimplePair___operator_5b_5d_28int_29(HEAP32[($7 + 844 | 0) >> 2] | 0 | 0, HEAP32[($7 + 4352 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 840 | 0) >> 2] = wasm2js_i32$1; + $125 = HEAP32[($7 + 840 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$125 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($125, $7 + 4332 | 0); + HEAP32[($7 + 836 | 0) >> 2] = 0; + label$12 : { + label$13 : while (1) { + if (!((HEAP32[($7 + 836 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btPersistentManifold____size_28_29_20const($7 + 4332 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$12 + } + label$14 : { + if (!(btPersistentManifold__getNumContacts_28_29_20const(HEAP32[(btAlignedObjectArray_btPersistentManifold____operator_5b_5d_28int_29($7 + 4332 | 0 | 0, HEAP32[($7 + 836 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) | 0)) { + break label$14 + } + btManifoldResult__setPersistentManifold_28btPersistentManifold__29(HEAP32[($7 + 4380 | 0) >> 2] | 0 | 0, HEAP32[(btAlignedObjectArray_btPersistentManifold____operator_5b_5d_28int_29($7 + 4332 | 0 | 0, HEAP32[($7 + 836 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0); + btManifoldResult__refreshContactPoints_28_29(HEAP32[($7 + 4380 | 0) >> 2] | 0 | 0); + btManifoldResult__setPersistentManifold_28btPersistentManifold__29(HEAP32[($7 + 4380 | 0) >> 2] | 0 | 0, 0 | 0); + } + HEAP32[($7 + 836 | 0) >> 2] = (HEAP32[($7 + 836 | 0) >> 2] | 0) + 1 | 0; + continue label$13; + }; + } + HEAP32[($7 + 832 | 0) >> 2] = 0; + btAlignedObjectArray_btPersistentManifold____resize_28int_2c_20btPersistentManifold__20const__29($7 + 4332 | 0 | 0, 0 | 0, $7 + 832 | 0 | 0); + } + HEAP32[($7 + 4352 | 0) >> 2] = (HEAP32[($7 + 4352 | 0) >> 2] | 0) + 1 | 0; + continue label$10; + }; + } + btAlignedObjectArray_btPersistentManifold_____btAlignedObjectArray_28_29($7 + 4332 | 0 | 0) | 0; + btCompoundCompoundLeafCallback__btCompoundCompoundLeafCallback_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcher__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__2c_20btHashedSimplePairCache__2c_20btPersistentManifold__29($7 + 796 | 0 | 0, HEAP32[($7 + 4376 | 0) >> 2] | 0 | 0, HEAP32[($7 + 4372 | 0) >> 2] | 0 | 0, HEAP32[($8 + 4 | 0) >> 2] | 0 | 0, HEAP32[($7 + 4384 | 0) >> 2] | 0 | 0, HEAP32[($7 + 4380 | 0) >> 2] | 0 | 0, HEAP32[($8 + 84 | 0) >> 2] | 0 | 0, HEAP32[($8 + 72 | 0) >> 2] | 0 | 0) | 0; + btTransform__inverse_28_29_20const($7 + 668 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 4376 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator__28btTransform_20const__29_20const($7 + 732 | 0 | 0, $7 + 668 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 4372 | 0) >> 2] | 0 | 0) | 0 | 0); + MycollideTT_28btDbvtNode_20const__2c_20btDbvtNode_20const__2c_20btTransform_20const__2c_20btCompoundCompoundLeafCallback__2c_20float_29(HEAP32[(HEAP32[($7 + 4360 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[($7 + 4356 | 0) >> 2] | 0) >> 2] | 0 | 0, $7 + 732 | 0 | 0, $7 + 796 | 0 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($7 + 4380 | 0) >> 2] | 0) + 32 | 0) >> 2]))); + label$15 : { + if (!(btAlignedObjectArray_btSimplePair___size_28_29_20const($8 + 88 | 0 | 0) | 0)) { + break label$15 + } + __assert_fail(85995 | 0, 73490 | 0, 378 | 0, 76857 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btHashedSimplePairCache__getOverlappingPairArray_28_29(HEAP32[($8 + 84 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 664 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btPersistentManifold____btAlignedObjectArray_28_29($7 + 640 | 0 | 0) | 0; + btVector3__btVector3_28_29($7 + 624 | 0 | 0) | 0; + btVector3__btVector3_28_29($7 + 608 | 0 | 0) | 0; + btVector3__btVector3_28_29($7 + 592 | 0 | 0) | 0; + btVector3__btVector3_28_29($7 + 576 | 0 | 0) | 0; + HEAP32[($7 + 660 | 0) >> 2] = 0; + label$16 : { + label$17 : while (1) { + if (!((HEAP32[($7 + 660 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btSimplePair___size_28_29_20const(HEAP32[($7 + 664 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$16 + } + label$18 : { + if (!((HEAP32[((btAlignedObjectArray_btSimplePair___operator_5b_5d_28int_29(HEAP32[($7 + 664 | 0) >> 2] | 0 | 0, HEAP32[($7 + 660 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$18 + } + (wasm2js_i32$0 = $7, wasm2js_i32$1 = HEAP32[((btAlignedObjectArray_btSimplePair___operator_5b_5d_28int_29(HEAP32[($7 + 664 | 0) >> 2] | 0 | 0, HEAP32[($7 + 660 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 572 | 0) >> 2] = wasm2js_i32$1; + btTransform__btTransform_28_29($7 + 508 | 0 | 0) | 0; + HEAP32[($7 + 504 | 0) >> 2] = 0; + btTransform__btTransform_28_29($7 + 440 | 0 | 0) | 0; + btTransform__btTransform_28_29($7 + 376 | 0 | 0) | 0; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCompoundShape__getChildShape_28int_29_20const(HEAP32[($7 + 4368 | 0) >> 2] | 0 | 0, HEAP32[(btAlignedObjectArray_btSimplePair___operator_5b_5d_28int_29(HEAP32[($7 + 664 | 0) >> 2] | 0 | 0, HEAP32[($7 + 660 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 504 | 0) >> 2] = wasm2js_i32$1; + btTransform__operator__28btTransform_20const__29($7 + 508 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 4376 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + btTransform__operator__28btTransform_20const__29($7 + 376 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 4376 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCompoundShape__getChildTransform_28int_29_20const(HEAP32[($7 + 4368 | 0) >> 2] | 0 | 0, HEAP32[(btAlignedObjectArray_btSimplePair___operator_5b_5d_28int_29(HEAP32[($7 + 664 | 0) >> 2] | 0 | 0, HEAP32[($7 + 660 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 372 | 0) >> 2] = wasm2js_i32$1; + btTransform__operator__28btTransform_20const__29_20const($7 + 308 | 0 | 0, $7 + 508 | 0 | 0, HEAP32[($7 + 372 | 0) >> 2] | 0 | 0); + btTransform__operator__28btTransform_20const__29($7 + 440 | 0 | 0, $7 + 308 | 0 | 0) | 0; + $303 = HEAP32[($7 + 504 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$303 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($303, $7 + 440 | 0, $7 + 624 | 0, $7 + 608 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 292 | 0 | 0, (HEAP32[($7 + 4380 | 0) >> 2] | 0) + 32 | 0 | 0, (HEAP32[($7 + 4380 | 0) >> 2] | 0) + 32 | 0 | 0, (HEAP32[($7 + 4380 | 0) >> 2] | 0) + 32 | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29($7 + 624 | 0 | 0, $7 + 292 | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($7 + 608 | 0 | 0, $7 + 292 | 0 | 0) | 0; + btTransform__btTransform_28_29($7 + 228 | 0 | 0) | 0; + HEAP32[($7 + 224 | 0) >> 2] = 0; + btTransform__btTransform_28_29($7 + 160 | 0 | 0) | 0; + btTransform__btTransform_28_29($7 + 96 | 0 | 0) | 0; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCompoundShape__getChildShape_28int_29_20const(HEAP32[($7 + 4364 | 0) >> 2] | 0 | 0, HEAP32[((btAlignedObjectArray_btSimplePair___operator_5b_5d_28int_29(HEAP32[($7 + 664 | 0) >> 2] | 0 | 0, HEAP32[($7 + 660 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 224 | 0) >> 2] = wasm2js_i32$1; + btTransform__operator__28btTransform_20const__29($7 + 160 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 4372 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + btTransform__operator__28btTransform_20const__29($7 + 228 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 4372 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCompoundShape__getChildTransform_28int_29_20const(HEAP32[($7 + 4364 | 0) >> 2] | 0 | 0, HEAP32[((btAlignedObjectArray_btSimplePair___operator_5b_5d_28int_29(HEAP32[($7 + 664 | 0) >> 2] | 0 | 0, HEAP32[($7 + 660 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 92 | 0) >> 2] = wasm2js_i32$1; + btTransform__operator__28btTransform_20const__29_20const($7 + 28 | 0 | 0, $7 + 160 | 0 | 0, HEAP32[($7 + 92 | 0) >> 2] | 0 | 0); + btTransform__operator__28btTransform_20const__29($7 + 96 | 0 | 0, $7 + 28 | 0 | 0) | 0; + $384 = HEAP32[($7 + 224 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$384 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($384, $7 + 96 | 0, $7 + 592 | 0, $7 + 576 | 0); + btVector3__operator___28btVector3_20const__29($7 + 592 | 0 | 0, $7 + 292 | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($7 + 576 | 0 | 0, $7 + 292 | 0 | 0) | 0; + label$19 : { + if ((TestAabbAgainstAabb2_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($7 + 624 | 0 | 0, $7 + 608 | 0 | 0, $7 + 592 | 0 | 0, $7 + 576 | 0 | 0) | 0) & 1 | 0) { + break label$19 + } + $423 = HEAP32[($7 + 572 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$423 >> 2] | 0) >> 2] | 0 | 0]($423) | 0; + $426 = HEAP32[($8 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$426 >> 2] | 0) + 60 | 0) >> 2] | 0 | 0]($426, HEAP32[($7 + 572 | 0) >> 2] | 0); + btSimplePair__btSimplePair_28int_2c_20int_29($7 + 16 | 0 | 0, HEAP32[(btAlignedObjectArray_btSimplePair___operator_5b_5d_28int_29(HEAP32[($7 + 664 | 0) >> 2] | 0 | 0, HEAP32[($7 + 660 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0, HEAP32[((btAlignedObjectArray_btSimplePair___operator_5b_5d_28int_29(HEAP32[($7 + 664 | 0) >> 2] | 0 | 0, HEAP32[($7 + 660 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + btAlignedObjectArray_btSimplePair___push_back_28btSimplePair_20const__29($8 + 88 | 0 | 0, $7 + 16 | 0 | 0); + } + } + HEAP32[($7 + 660 | 0) >> 2] = (HEAP32[($7 + 660 | 0) >> 2] | 0) + 1 | 0; + continue label$17; + }; + } + HEAP32[($7 + 12 | 0) >> 2] = 0; + label$20 : { + label$21 : while (1) { + if (!((HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btSimplePair___size_28_29_20const($8 + 88 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$20 + } + $459 = HEAP32[($8 + 84 | 0) >> 2] | 0; + (((wasm2js_i32$1 = $459, wasm2js_i32$2 = HEAP32[(btAlignedObjectArray_btSimplePair___operator_5b_5d_28int_29($8 + 88 | 0 | 0, HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), wasm2js_i32$3 = HEAP32[((btAlignedObjectArray_btSimplePair___operator_5b_5d_28int_29($8 + 88 | 0 | 0, HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2] | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$459 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0, wasm2js_i32$3 | 0) | 0; + HEAP32[($7 + 12 | 0) >> 2] = (HEAP32[($7 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$21; + }; + } + btAlignedObjectArray_btSimplePair___clear_28_29($8 + 88 | 0 | 0); + btAlignedObjectArray_btPersistentManifold_____btAlignedObjectArray_28_29($7 + 640 | 0 | 0) | 0; + btCompoundCompoundLeafCallback___btCompoundCompoundLeafCallback_28_29($7 + 796 | 0 | 0) | 0; + } + __stack_pointer = $7 + 4400 | 0; + return; + } + + function btAlignedObjectArray_btPersistentManifold____initializeFromBuffer_28void__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btPersistentManifold____clear_28_29($7 | 0); + HEAP8[($7 + 16 | 0) >> 0] = 0; + HEAP32[($7 + 12 | 0) >> 2] = HEAP32[($6 + 8 | 0) >> 2] | 0; + HEAP32[($7 + 4 | 0) >> 2] = HEAP32[($6 + 4 | 0) >> 2] | 0; + HEAP32[($7 + 8 | 0) >> 2] = HEAP32[$6 >> 2] | 0; + __stack_pointer = $6 + 16 | 0; + return; + } + + function btCompoundCompoundLeafCallback__btCompoundCompoundLeafCallback_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcher__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__2c_20btHashedSimplePairCache__2c_20btPersistentManifold__29($0, $1, $2, $3, $4, $5, $6, $7) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + var $10 = 0, $11 = 0; + $10 = __stack_pointer - 32 | 0; + __stack_pointer = $10; + HEAP32[($10 + 28 | 0) >> 2] = $0; + HEAP32[($10 + 24 | 0) >> 2] = $1; + HEAP32[($10 + 20 | 0) >> 2] = $2; + HEAP32[($10 + 16 | 0) >> 2] = $3; + HEAP32[($10 + 12 | 0) >> 2] = $4; + HEAP32[($10 + 8 | 0) >> 2] = $5; + HEAP32[($10 + 4 | 0) >> 2] = $6; + HEAP32[$10 >> 2] = $7; + $11 = HEAP32[($10 + 28 | 0) >> 2] | 0; + btDbvt__ICollide__ICollide_28_29($11 | 0) | 0; + HEAP32[$11 >> 2] = 95008 + 8 | 0; + HEAP32[($11 + 4 | 0) >> 2] = 0; + HEAP32[($11 + 8 | 0) >> 2] = HEAP32[($10 + 24 | 0) >> 2] | 0; + HEAP32[($11 + 12 | 0) >> 2] = HEAP32[($10 + 20 | 0) >> 2] | 0; + HEAP32[($11 + 16 | 0) >> 2] = HEAP32[($10 + 16 | 0) >> 2] | 0; + HEAP32[($11 + 20 | 0) >> 2] = HEAP32[($10 + 12 | 0) >> 2] | 0; + HEAP32[($11 + 24 | 0) >> 2] = HEAP32[($10 + 8 | 0) >> 2] | 0; + HEAP32[($11 + 28 | 0) >> 2] = HEAP32[($10 + 4 | 0) >> 2] | 0; + HEAP32[($11 + 32 | 0) >> 2] = HEAP32[$10 >> 2] | 0; + __stack_pointer = $10 + 32 | 0; + return $11 | 0; + } + + function MycollideTT_28btDbvtNode_20const__2c_20btDbvtNode_20const__2c_20btTransform_20const__2c_20btCompoundCompoundLeafCallback__2c_20float_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = Math_fround($4); + var $7 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $29 = 0, $32 = 0, $33 = 0, $35 = 0, $47 = 0, $61 = 0, $117 = 0, $132 = 0, $147 = 0, $162 = 0, $176 = 0, $190 = 0, $208 = 0, $222 = 0, $230 = 0, $31 = 0, $57 = 0, $349 = 0, $367 = 0, $86 = 0, $123 = 0, $488 = 0, $138 = 0, $522 = 0, $153 = 0, $556 = 0, $168 = 0, $590 = 0, $182 = 0, $622 = 0, $196 = 0, $654 = 0, $214 = 0, $695 = 0, $228 = 0, $727 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $7 = __stack_pointer - 1168 | 0; + __stack_pointer = $7; + HEAP32[($7 + 1164 | 0) >> 2] = $0; + HEAP32[($7 + 1160 | 0) >> 2] = $1; + HEAP32[($7 + 1156 | 0) >> 2] = $2; + HEAP32[($7 + 1152 | 0) >> 2] = $3; + HEAPF32[($7 + 1148 | 0) >> 2] = $4; + label$1 : { + if (!((HEAP32[($7 + 1164 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + if (!((HEAP32[($7 + 1160 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[($7 + 1144 | 0) >> 2] = 1; + HEAP32[($7 + 1140 | 0) >> 2] = 124; + btAlignedObjectArray_btDbvt__sStkNN___btAlignedObjectArray_28_29($7 + 1120 | 0 | 0) | 0; + $29 = $7 + 96 | 0; + $31 = $29 + 1024 | 0; + $32 = $29; + label$2 : while (1) { + $33 = $32; + btDbvt__sStkNN__sStkNN_28_29($33 | 0) | 0; + $35 = $33 + 8 | 0; + $32 = $35; + if (!(($35 | 0) == ($31 | 0) & 1 | 0)) { + continue label$2 + } + break label$2; + }; + $47 = 128; + btAlignedObjectArray_btDbvt__sStkNN___initializeFromBuffer_28void__2c_20int_2c_20int_29($7 + 1120 | 0 | 0, $7 + 96 | 0 | 0, $47 | 0, $47 | 0); + btDbvt__sStkNN__sStkNN_28btDbvtNode_20const__2c_20btDbvtNode_20const__29($7 + 88 | 0 | 0, HEAP32[($7 + 1164 | 0) >> 2] | 0 | 0, HEAP32[($7 + 1160 | 0) >> 2] | 0 | 0) | 0; + $57 = btAlignedObjectArray_btDbvt__sStkNN___operator_5b_5d_28int_29($7 + 1120 | 0 | 0, 0 | 0) | 0; + i64toi32_i32$2 = $7; + i64toi32_i32$0 = HEAP32[($7 + 88 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7 + 92 | 0) >> 2] | 0; + $349 = i64toi32_i32$0; + i64toi32_i32$0 = $57; + HEAP32[i64toi32_i32$0 >> 2] = $349; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + label$3 : while (1) { + $61 = (HEAP32[($7 + 1144 | 0) >> 2] | 0) + -1 | 0; + HEAP32[($7 + 1144 | 0) >> 2] = $61; + i64toi32_i32$2 = btAlignedObjectArray_btDbvt__sStkNN___operator_5b_5d_28int_29($7 + 1120 | 0 | 0, $61 | 0) | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $367 = i64toi32_i32$1; + i64toi32_i32$1 = $7; + HEAP32[($7 + 80 | 0) >> 2] = $367; + HEAP32[($7 + 84 | 0) >> 2] = i64toi32_i32$0; + label$4 : { + if (!((MyIntersect_28btDbvtAabbMm_20const__2c_20btDbvtAabbMm_20const__2c_20btTransform_20const__2c_20float_29(HEAP32[($7 + 80 | 0) >> 2] | 0 | 0, HEAP32[($7 + 84 | 0) >> 2] | 0 | 0, HEAP32[($7 + 1156 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($7 + 1148 | 0) >> 2]))) | 0) & 1 | 0)) { + break label$4 + } + label$5 : { + if (!((HEAP32[($7 + 1144 | 0) >> 2] | 0 | 0) > (HEAP32[($7 + 1140 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + $86 = (btAlignedObjectArray_btDbvt__sStkNN___size_28_29_20const($7 + 1120 | 0 | 0) | 0) << 1 | 0; + btDbvt__sStkNN__sStkNN_28_29($7 + 72 | 0 | 0) | 0; + btAlignedObjectArray_btDbvt__sStkNN___resize_28int_2c_20btDbvt__sStkNN_20const__29($7 + 1120 | 0 | 0, $86 | 0, $7 + 72 | 0 | 0); + (wasm2js_i32$0 = $7, wasm2js_i32$1 = (btAlignedObjectArray_btDbvt__sStkNN___size_28_29_20const($7 + 1120 | 0 | 0) | 0) - 4 | 0), HEAP32[(wasm2js_i32$0 + 1140 | 0) >> 2] = wasm2js_i32$1; + } + label$6 : { + label$7 : { + if (!((btDbvtNode__isinternal_28_29_20const(HEAP32[($7 + 80 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$7 + } + label$8 : { + label$9 : { + if (!((btDbvtNode__isinternal_28_29_20const(HEAP32[($7 + 84 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$9 + } + btDbvt__sStkNN__sStkNN_28btDbvtNode_20const__2c_20btDbvtNode_20const__29($7 + 64 | 0 | 0, HEAP32[((HEAP32[($7 + 80 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7 + 84 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) | 0; + $117 = HEAP32[($7 + 1144 | 0) >> 2] | 0; + HEAP32[($7 + 1144 | 0) >> 2] = $117 + 1 | 0; + $123 = btAlignedObjectArray_btDbvt__sStkNN___operator_5b_5d_28int_29($7 + 1120 | 0 | 0, $117 | 0) | 0; + i64toi32_i32$2 = $7; + i64toi32_i32$0 = HEAP32[($7 + 64 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7 + 68 | 0) >> 2] | 0; + $488 = i64toi32_i32$0; + i64toi32_i32$0 = $123; + HEAP32[i64toi32_i32$0 >> 2] = $488; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + btDbvt__sStkNN__sStkNN_28btDbvtNode_20const__2c_20btDbvtNode_20const__29($7 + 56 | 0 | 0, HEAP32[((HEAP32[($7 + 80 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7 + 84 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) | 0; + $132 = HEAP32[($7 + 1144 | 0) >> 2] | 0; + HEAP32[($7 + 1144 | 0) >> 2] = $132 + 1 | 0; + $138 = btAlignedObjectArray_btDbvt__sStkNN___operator_5b_5d_28int_29($7 + 1120 | 0 | 0, $132 | 0) | 0; + i64toi32_i32$2 = $7; + i64toi32_i32$1 = HEAP32[($7 + 56 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($7 + 60 | 0) >> 2] | 0; + $522 = i64toi32_i32$1; + i64toi32_i32$1 = $138; + HEAP32[i64toi32_i32$1 >> 2] = $522; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btDbvt__sStkNN__sStkNN_28btDbvtNode_20const__2c_20btDbvtNode_20const__29($7 + 48 | 0 | 0, HEAP32[((HEAP32[($7 + 80 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7 + 84 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) | 0; + $147 = HEAP32[($7 + 1144 | 0) >> 2] | 0; + HEAP32[($7 + 1144 | 0) >> 2] = $147 + 1 | 0; + $153 = btAlignedObjectArray_btDbvt__sStkNN___operator_5b_5d_28int_29($7 + 1120 | 0 | 0, $147 | 0) | 0; + i64toi32_i32$2 = $7; + i64toi32_i32$0 = HEAP32[($7 + 48 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7 + 52 | 0) >> 2] | 0; + $556 = i64toi32_i32$0; + i64toi32_i32$0 = $153; + HEAP32[i64toi32_i32$0 >> 2] = $556; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + btDbvt__sStkNN__sStkNN_28btDbvtNode_20const__2c_20btDbvtNode_20const__29($7 + 40 | 0 | 0, HEAP32[((HEAP32[($7 + 80 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7 + 84 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) | 0; + $162 = HEAP32[($7 + 1144 | 0) >> 2] | 0; + HEAP32[($7 + 1144 | 0) >> 2] = $162 + 1 | 0; + $168 = btAlignedObjectArray_btDbvt__sStkNN___operator_5b_5d_28int_29($7 + 1120 | 0 | 0, $162 | 0) | 0; + i64toi32_i32$2 = $7; + i64toi32_i32$1 = HEAP32[($7 + 40 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($7 + 44 | 0) >> 2] | 0; + $590 = i64toi32_i32$1; + i64toi32_i32$1 = $168; + HEAP32[i64toi32_i32$1 >> 2] = $590; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$8; + } + btDbvt__sStkNN__sStkNN_28btDbvtNode_20const__2c_20btDbvtNode_20const__29($7 + 32 | 0 | 0, HEAP32[((HEAP32[($7 + 80 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7 + 84 | 0) >> 2] | 0 | 0) | 0; + $176 = HEAP32[($7 + 1144 | 0) >> 2] | 0; + HEAP32[($7 + 1144 | 0) >> 2] = $176 + 1 | 0; + $182 = btAlignedObjectArray_btDbvt__sStkNN___operator_5b_5d_28int_29($7 + 1120 | 0 | 0, $176 | 0) | 0; + i64toi32_i32$2 = $7; + i64toi32_i32$0 = HEAP32[($7 + 32 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7 + 36 | 0) >> 2] | 0; + $622 = i64toi32_i32$0; + i64toi32_i32$0 = $182; + HEAP32[i64toi32_i32$0 >> 2] = $622; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + btDbvt__sStkNN__sStkNN_28btDbvtNode_20const__2c_20btDbvtNode_20const__29($7 + 24 | 0 | 0, HEAP32[((HEAP32[($7 + 80 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7 + 84 | 0) >> 2] | 0 | 0) | 0; + $190 = HEAP32[($7 + 1144 | 0) >> 2] | 0; + HEAP32[($7 + 1144 | 0) >> 2] = $190 + 1 | 0; + $196 = btAlignedObjectArray_btDbvt__sStkNN___operator_5b_5d_28int_29($7 + 1120 | 0 | 0, $190 | 0) | 0; + i64toi32_i32$2 = $7; + i64toi32_i32$1 = HEAP32[($7 + 24 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($7 + 28 | 0) >> 2] | 0; + $654 = i64toi32_i32$1; + i64toi32_i32$1 = $196; + HEAP32[i64toi32_i32$1 >> 2] = $654; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + break label$6; + } + label$10 : { + label$11 : { + if (!((btDbvtNode__isinternal_28_29_20const(HEAP32[($7 + 84 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$11 + } + btDbvt__sStkNN__sStkNN_28btDbvtNode_20const__2c_20btDbvtNode_20const__29($7 + 16 | 0 | 0, HEAP32[($7 + 80 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7 + 84 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) | 0; + $208 = HEAP32[($7 + 1144 | 0) >> 2] | 0; + HEAP32[($7 + 1144 | 0) >> 2] = $208 + 1 | 0; + $214 = btAlignedObjectArray_btDbvt__sStkNN___operator_5b_5d_28int_29($7 + 1120 | 0 | 0, $208 | 0) | 0; + i64toi32_i32$2 = $7; + i64toi32_i32$0 = HEAP32[($7 + 16 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7 + 20 | 0) >> 2] | 0; + $695 = i64toi32_i32$0; + i64toi32_i32$0 = $214; + HEAP32[i64toi32_i32$0 >> 2] = $695; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + btDbvt__sStkNN__sStkNN_28btDbvtNode_20const__2c_20btDbvtNode_20const__29($7 + 8 | 0 | 0, HEAP32[($7 + 80 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7 + 84 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) | 0; + $222 = HEAP32[($7 + 1144 | 0) >> 2] | 0; + HEAP32[($7 + 1144 | 0) >> 2] = $222 + 1 | 0; + $228 = btAlignedObjectArray_btDbvt__sStkNN___operator_5b_5d_28int_29($7 + 1120 | 0 | 0, $222 | 0) | 0; + i64toi32_i32$2 = $7; + i64toi32_i32$1 = HEAP32[($7 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($7 + 12 | 0) >> 2] | 0; + $727 = i64toi32_i32$1; + i64toi32_i32$1 = $228; + HEAP32[i64toi32_i32$1 >> 2] = $727; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$10; + } + $230 = HEAP32[($7 + 1152 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$230 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($230, HEAP32[($7 + 80 | 0) >> 2] | 0, HEAP32[($7 + 84 | 0) >> 2] | 0); + } + } + } + if (HEAP32[($7 + 1144 | 0) >> 2] | 0) { + continue label$3 + } + break label$3; + }; + btAlignedObjectArray_btDbvt__sStkNN____btAlignedObjectArray_28_29($7 + 1120 | 0 | 0) | 0; + } + __stack_pointer = $7 + 1168 | 0; + return; + } + + function btSimplePair__btSimplePair_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$6 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 4 | 0) >> 2] | 0; + HEAP32[($6 + 8 | 0) >> 2] = 0; + return $6 | 0; + } + + function btAlignedObjectArray_btSimplePair___push_back_28btSimplePair_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0, i64toi32_i32$0 = 0, $21 = 0, $23 = 0, i64toi32_i32$1 = 0, $83 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btSimplePair___size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btSimplePair___capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btSimplePair___reserve_28int_29($5 | 0, btAlignedObjectArray_btSimplePair___allocSize_28int_29($5 | 0, btAlignedObjectArray_btSimplePair___size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + $21 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[$21 >> 2] | 0; + i64toi32_i32$1 = HEAP32[($21 + 4 | 0) >> 2] | 0; + $83 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 4 | 0) >> 2] | 0, 12) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $83; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $23 = 8; + HEAP32[(i64toi32_i32$0 + $23 | 0) >> 2] = HEAP32[($21 + $23 | 0) >> 2] | 0; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCompoundCompoundLeafCallback___btCompoundCompoundLeafCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btDbvt__ICollide___ICollide_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btDbvt__sStkNN___initializeFromBuffer_28void__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btDbvt__sStkNN___clear_28_29($7 | 0); + HEAP8[($7 + 16 | 0) >> 0] = 0; + HEAP32[($7 + 12 | 0) >> 2] = HEAP32[($6 + 8 | 0) >> 2] | 0; + HEAP32[($7 + 4 | 0) >> 2] = HEAP32[($6 + 4 | 0) >> 2] | 0; + HEAP32[($7 + 8 | 0) >> 2] = HEAP32[$6 >> 2] | 0; + __stack_pointer = $6 + 16 | 0; + return; + } + + function MyIntersect_28btDbvtAabbMm_20const__2c_20btDbvtAabbMm_20const__2c_20btTransform_20const__2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + var $6 = 0, $31 = 0, $43 = 0, $61 = 0; + $6 = __stack_pointer - 112 | 0; + __stack_pointer = $6; + HEAP32[($6 + 108 | 0) >> 2] = $0; + HEAP32[($6 + 104 | 0) >> 2] = $1; + HEAP32[($6 + 100 | 0) >> 2] = $2; + HEAPF32[($6 + 96 | 0) >> 2] = $3; + btVector3__btVector3_28_29($6 + 80 | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 64 | 0 | 0) | 0; + btTransformAabb_28btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20btTransform_20const__2c_20btVector3__2c_20btVector3__29(btDbvtAabbMm__Mins_28_29_20const(HEAP32[($6 + 104 | 0) >> 2] | 0 | 0) | 0 | 0, btDbvtAabbMm__Maxs_28_29_20const(HEAP32[($6 + 104 | 0) >> 2] | 0 | 0) | 0 | 0, Math_fround(Math_fround(0 | 0)), HEAP32[($6 + 100 | 0) >> 2] | 0 | 0, $6 + 80 | 0 | 0, $6 + 64 | 0 | 0); + $31 = $6 + 96 | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 48 | 0 | 0, $31 | 0, $31 | 0, $31 | 0) | 0; + btVector3__operator___28btVector3_20const__29($6 + 80 | 0 | 0, $6 + 48 | 0 | 0) | 0; + $43 = $6 + 96 | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 32 | 0 | 0, $43 | 0, $43 | 0, $43 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($6 + 64 | 0 | 0, $6 + 32 | 0 | 0) | 0; + btDbvtAabbMm__FromMM_28btVector3_20const__2c_20btVector3_20const__29($6 | 0, $6 + 80 | 0 | 0, $6 + 64 | 0 | 0); + $61 = (Intersect_28btDbvtAabbMm_20const__2c_20btDbvtAabbMm_20const__29(HEAP32[($6 + 108 | 0) >> 2] | 0 | 0, $6 | 0) | 0) & 1 | 0; + __stack_pointer = $6 + 112 | 0; + return $61 | 0; + } + + function btAlignedObjectArray_btSimplePair___capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btSimplePair___allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btAlignedObjectArray_btSimplePair___reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btSimplePair___capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btSimplePair___allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btSimplePair___copy_28int_2c_20int_2c_20btSimplePair__29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btSimplePair___size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btSimplePair___destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btSimplePair___size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btSimplePair___deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btSimplePair___destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btSimplePair___deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btSimplePair_2c_2016u___deallocate_28btSimplePair__29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCompoundCompoundCollisionAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + __assert_fail(86177 | 0, 73490 | 0, 450 | 0, 68931 | 0); + wasm2js_trap(); + } + + function btCompoundCompoundLeafCallback___btCompoundCompoundLeafCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCompoundCompoundLeafCallback___btCompoundCompoundLeafCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCompoundCompoundLeafCallback__Process_28btDbvtNode_20const__2c_20btDbvtNode_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $116 = 0, $128 = 0, $231 = 0, $252 = 0, $264 = 0, $308 = 0, $313 = 0, $318 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 464 | 0; + __stack_pointer = $5; + HEAP32[($5 + 460 | 0) >> 2] = $0; + HEAP32[($5 + 456 | 0) >> 2] = $1; + HEAP32[($5 + 452 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 460 | 0) >> 2] | 0; + CProfileSample__CProfileSample_28char_20const__29($5 + 451 | 0 | 0, 69357 | 0) | 0; + HEAP32[($6 + 4 | 0) >> 2] = (HEAP32[($6 + 4 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($5 + 444 | 0) >> 2] = HEAP32[((HEAP32[($5 + 456 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($5 + 440 | 0) >> 2] = HEAP32[((HEAP32[($5 + 452 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($5 + 444 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85860 | 0, 73490 | 0, 138 | 0, 69389 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($5 + 440 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(85845 | 0, 73490 | 0, 139 | 0, 69389 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 436 | 0) >> 2] = wasm2js_i32$1; + label$3 : { + if ((HEAP32[($5 + 444 | 0) >> 2] | 0 | 0) < (btCompoundShape__getNumChildShapes_28_29_20const(HEAP32[($5 + 436 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0) { + break label$3 + } + __assert_fail(87205 | 0, 73490 | 0, 143 | 0, 69389 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 432 | 0) >> 2] = wasm2js_i32$1; + label$4 : { + if ((HEAP32[($5 + 440 | 0) >> 2] | 0 | 0) < (btCompoundShape__getNumChildShapes_28_29_20const(HEAP32[($5 + 432 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0) { + break label$4 + } + __assert_fail(87157 | 0, 73490 | 0, 146 | 0, 69389 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btCompoundShape__getChildShape_28int_29_20const(HEAP32[($5 + 436 | 0) >> 2] | 0 | 0, HEAP32[($5 + 444 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 428 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btCompoundShape__getChildShape_28int_29_20const(HEAP32[($5 + 432 | 0) >> 2] | 0 | 0, HEAP32[($5 + 440 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 424 | 0) >> 2] = wasm2js_i32$1; + btTransform__btTransform_28btTransform_20const__29($5 + 360 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btCompoundShape__getChildTransform_28int_29_20const(HEAP32[($5 + 436 | 0) >> 2] | 0 | 0, HEAP32[($5 + 444 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 356 | 0) >> 2] = wasm2js_i32$1; + btTransform__operator__28btTransform_20const__29_20const($5 + 292 | 0 | 0, $5 + 360 | 0 | 0, HEAP32[($5 + 356 | 0) >> 2] | 0 | 0); + btTransform__btTransform_28btTransform_20const__29($5 + 228 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btCompoundShape__getChildTransform_28int_29_20const(HEAP32[($5 + 432 | 0) >> 2] | 0 | 0, HEAP32[($5 + 440 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 224 | 0) >> 2] = wasm2js_i32$1; + btTransform__operator__28btTransform_20const__29_20const($5 + 160 | 0 | 0, $5 + 228 | 0 | 0, HEAP32[($5 + 224 | 0) >> 2] | 0 | 0); + btVector3__btVector3_28_29($5 + 144 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 128 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 112 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 96 | 0 | 0) | 0; + $116 = HEAP32[($5 + 428 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$116 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($116, $5 + 292 | 0, $5 + 144 | 0, $5 + 128 | 0); + $128 = HEAP32[($5 + 424 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$128 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($128, $5 + 160 | 0, $5 + 112 | 0, $5 + 96 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 80 | 0 | 0, (HEAP32[($6 + 24 | 0) >> 2] | 0) + 32 | 0 | 0, (HEAP32[($6 + 24 | 0) >> 2] | 0) + 32 | 0 | 0, (HEAP32[($6 + 24 | 0) >> 2] | 0) + 32 | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29($5 + 144 | 0 | 0, $5 + 80 | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($5 + 128 | 0 | 0, $5 + 80 | 0 | 0) | 0; + label$5 : { + label$6 : { + if (!((HEAP32[(0 + 114016 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + label$7 : { + if ((FUNCTION_TABLE[HEAP32[(0 + 114016 | 0) >> 2] | 0 | 0](HEAP32[($5 + 428 | 0) >> 2] | 0, HEAP32[($5 + 424 | 0) >> 2] | 0) | 0) & 1 | 0) { + break label$7 + } + HEAP32[($5 + 76 | 0) >> 2] = 1; + break label$5; + } + } + label$8 : { + if (!((TestAabbAgainstAabb2_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($5 + 144 | 0 | 0, $5 + 128 | 0 | 0, $5 + 112 | 0 | 0, $5 + 96 | 0 | 0) | 0) & 1 | 0)) { + break label$8 + } + btCollisionObjectWrapper__btCollisionObjectWrapper_28btCollisionObjectWrapper_20const__2c_20btCollisionShape_20const__2c_20btCollisionObject_20const__2c_20btTransform_20const__2c_20int_2c_20int_29($5 + 52 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5 + 428 | 0) >> 2] | 0 | 0, btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0 | 0, $5 + 292 | 0 | 0, -1 | 0, HEAP32[($5 + 444 | 0) >> 2] | 0 | 0) | 0; + btCollisionObjectWrapper__btCollisionObjectWrapper_28btCollisionObjectWrapper_20const__2c_20btCollisionShape_20const__2c_20btCollisionObject_20const__2c_20btTransform_20const__2c_20int_2c_20int_29($5 + 28 | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5 + 424 | 0) >> 2] | 0 | 0, btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0 | 0, $5 + 160 | 0 | 0, -1 | 0, HEAP32[($5 + 440 | 0) >> 2] | 0 | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btHashedSimplePairCache__findPair_28int_2c_20int_29(HEAP32[($6 + 28 | 0) >> 2] | 0 | 0, HEAP32[($5 + 444 | 0) >> 2] | 0 | 0, HEAP32[($5 + 440 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($5 + 20 | 0) >> 2] = 0; + label$9 : { + label$10 : { + if (!(Math_fround(HEAPF32[((HEAP32[($6 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$10 + } + $231 = HEAP32[($6 + 16 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$231 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($231, $5 + 52 | 0, $5 + 28 | 0, 0, 2) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + break label$9; + } + label$11 : { + label$12 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$12 + } + HEAP32[($5 + 20 | 0) >> 2] = HEAP32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + break label$11; + } + $252 = HEAP32[($6 + 16 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$252 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($252, $5 + 52 | 0, $5 + 28 | 0, HEAP32[($6 + 32 | 0) >> 2] | 0, 1) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + $264 = HEAP32[($6 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$264 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($264, HEAP32[($5 + 444 | 0) >> 2] | 0, HEAP32[($5 + 440 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_i32$1; + label$13 : { + if ((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$13 + } + __assert_fail(71001 | 0, 73490 | 0, 201 | 0, 69389 | 0); + wasm2js_trap(); + } + HEAP32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($5 + 20 | 0) >> 2] | 0; + } + } + label$14 : { + if ((HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$14 + } + __assert_fail(76200 | 0, 73490 | 0, 206 | 0, 69389 | 0); + wasm2js_trap(); + } + HEAP32[($5 + 16 | 0) >> 2] = 0; + HEAP32[($5 + 12 | 0) >> 2] = 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btManifoldResult__getBody0Wrap_28_29_20const(HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btManifoldResult__getBody1Wrap_28_29_20const(HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + btManifoldResult__setBody0Wrap_28btCollisionObjectWrapper_20const__29(HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, $5 + 52 | 0 | 0); + btManifoldResult__setBody1Wrap_28btCollisionObjectWrapper_20const__29(HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, $5 + 28 | 0 | 0); + $308 = HEAP32[($6 + 24 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$308 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($308, -1, HEAP32[($5 + 444 | 0) >> 2] | 0); + $313 = HEAP32[($6 + 24 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$313 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($313, -1, HEAP32[($5 + 440 | 0) >> 2] | 0); + $318 = HEAP32[($5 + 20 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$318 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($318, $5 + 52 | 0, $5 + 28 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0, HEAP32[($6 + 24 | 0) >> 2] | 0); + btManifoldResult__setBody0Wrap_28btCollisionObjectWrapper_20const__29(HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, HEAP32[($5 + 16 | 0) >> 2] | 0 | 0); + btManifoldResult__setBody1Wrap_28btCollisionObjectWrapper_20const__29(HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 76 | 0) >> 2] = 0; + } + CProfileSample___CProfileSample_28_29($5 + 451 | 0 | 0) | 0; + __stack_pointer = $5 + 464 | 0; + return; + } + + function btTransformAabb_28btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20btTransform_20const__2c_20btVector3__2c_20btVector3__29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $68 = 0, $132 = 0, $134 = 0, $147 = 0, $149 = 0, $398 = 0, $411 = 0, $429 = 0, $439 = 0; + $8 = __stack_pointer - 224 | 0; + __stack_pointer = $8; + HEAP32[($8 + 220 | 0) >> 2] = $0; + HEAP32[($8 + 216 | 0) >> 2] = $1; + HEAPF32[($8 + 212 | 0) >> 2] = $2; + HEAP32[($8 + 208 | 0) >> 2] = $3; + HEAP32[($8 + 204 | 0) >> 2] = $4; + HEAP32[($8 + 200 | 0) >> 2] = $5; + label$1 : { + if (Math_fround(HEAPF32[(btVector3__getX_28_29_20const(HEAP32[($8 + 220 | 0) >> 2] | 0 | 0) | 0) >> 2]) <= Math_fround(HEAPF32[(btVector3__getX_28_29_20const(HEAP32[($8 + 216 | 0) >> 2] | 0 | 0) | 0) >> 2]) & 1 | 0) { + break label$1 + } + __assert_fail(88089 | 0, 80387 | 0, 195 | 0, 83061 | 0); + wasm2js_trap(); + } + label$2 : { + if (Math_fround(HEAPF32[(btVector3__getY_28_29_20const(HEAP32[($8 + 220 | 0) >> 2] | 0 | 0) | 0) >> 2]) <= Math_fround(HEAPF32[(btVector3__getY_28_29_20const(HEAP32[($8 + 216 | 0) >> 2] | 0 | 0) | 0) >> 2]) & 1 | 0) { + break label$2 + } + __assert_fail(87974 | 0, 80387 | 0, 196 | 0, 83061 | 0); + wasm2js_trap(); + } + label$3 : { + if (Math_fround(HEAPF32[(btVector3__getZ_28_29_20const(HEAP32[($8 + 220 | 0) >> 2] | 0 | 0) | 0) >> 2]) <= Math_fround(HEAPF32[(btVector3__getZ_28_29_20const(HEAP32[($8 + 216 | 0) >> 2] | 0 | 0) | 0) >> 2]) & 1 | 0) { + break label$3 + } + __assert_fail(87859 | 0, 80387 | 0, 197 | 0, 83061 | 0); + wasm2js_trap(); + } + HEAPF32[($8 + 180 | 0) >> 2] = Math_fround(.5); + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 164 | 0 | 0, HEAP32[($8 + 216 | 0) >> 2] | 0 | 0, HEAP32[($8 + 220 | 0) >> 2] | 0 | 0); + operator__28float_20const__2c_20btVector3_20const__29($8 + 184 | 0 | 0, $8 + 180 | 0 | 0, $8 + 164 | 0 | 0); + $68 = $8 + 212 | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 148 | 0 | 0, $68 | 0, $68 | 0, $68 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($8 + 184 | 0 | 0, $8 + 148 | 0 | 0) | 0; + HEAPF32[($8 + 128 | 0) >> 2] = Math_fround(.5); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 112 | 0 | 0, HEAP32[($8 + 216 | 0) >> 2] | 0 | 0, HEAP32[($8 + 220 | 0) >> 2] | 0 | 0); + operator__28float_20const__2c_20btVector3_20const__29($8 + 132 | 0 | 0, $8 + 128 | 0 | 0, $8 + 112 | 0 | 0); + btMatrix3x3__absolute_28_29_20const($8 + 64 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 208 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator_28_29_28btVector3_20const__29_20const($8 + 48 | 0 | 0, HEAP32[($8 + 208 | 0) >> 2] | 0 | 0, $8 + 132 | 0 | 0); + btVector3__dot3_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29_20const($8 + 32 | 0 | 0, $8 + 184 | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($8 + 64 | 0 | 0, 0 | 0) | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($8 + 64 | 0 | 0, 1 | 0) | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($8 + 64 | 0 | 0, 2 | 0) | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 16 | 0 | 0, $8 + 48 | 0 | 0, $8 + 32 | 0 | 0); + $132 = HEAP32[($8 + 204 | 0) >> 2] | 0; + i64toi32_i32$2 = $8; + i64toi32_i32$0 = HEAP32[($8 + 16 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($8 + 20 | 0) >> 2] | 0; + $398 = i64toi32_i32$0; + i64toi32_i32$0 = $132; + HEAP32[i64toi32_i32$0 >> 2] = $398; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $134 = 8; + i64toi32_i32$2 = ($8 + 16 | 0) + $134 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $411 = i64toi32_i32$1; + i64toi32_i32$1 = $132 + $134 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $411; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 | 0, $8 + 48 | 0 | 0, $8 + 32 | 0 | 0); + $147 = HEAP32[($8 + 200 | 0) >> 2] | 0; + i64toi32_i32$2 = $8; + i64toi32_i32$0 = HEAP32[$8 >> 2] | 0; + i64toi32_i32$1 = HEAP32[($8 + 4 | 0) >> 2] | 0; + $429 = i64toi32_i32$0; + i64toi32_i32$0 = $147; + HEAP32[i64toi32_i32$0 >> 2] = $429; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $149 = 8; + i64toi32_i32$2 = $8 + $149 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $439 = i64toi32_i32$1; + i64toi32_i32$1 = $147 + $149 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $439; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $8 + 224 | 0; + return; + } + + function btMatrix3x3__absolute_28_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 48 | 0; + __stack_pointer = $4; + HEAP32[($4 + 44 | 0) >> 2] = $0; + HEAP32[($4 + 40 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 40 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($5 | 0) | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($5 | 0) | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($5 | 0) | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($5 + 16 | 0 | 0) | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($5 + 16 | 0 | 0) | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($5 + 16 | 0 | 0) | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($5 + 32 | 0 | 0) | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($5 + 32 | 0 | 0) | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($5 + 32 | 0 | 0) | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + btMatrix3x3__btMatrix3x3_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $4 + 36 | 0 | 0, $4 + 32 | 0 | 0, $4 + 28 | 0 | 0, $4 + 24 | 0 | 0, $4 + 20 | 0 | 0, $4 + 16 | 0 | 0, $4 + 12 | 0 | 0, $4 + 8 | 0 | 0, $4 + 4 | 0 | 0) | 0; + __stack_pointer = $4 + 48 | 0; + return; + } + + function btMatrix3x3__operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return (HEAP32[($4 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 4 | 0) | 0 | 0; + } + + function btAlignedObjectArray_btSimplePair___allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btSimplePair_2c_2016u___allocate_28int_2c_20btSimplePair_20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btSimplePair___copy_28int_2c_20int_2c_20btSimplePair__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, $25 = 0, $27 = 0, $7 = 0, i64toi32_i32$1 = 0, $89 = 0; + $6 = __stack_pointer - 32 | 0; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + $25 = (HEAP32[($7 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($6 + 12 | 0) >> 2] | 0, 12) | 0; + i64toi32_i32$0 = HEAP32[$25 >> 2] | 0; + i64toi32_i32$1 = HEAP32[($25 + 4 | 0) >> 2] | 0; + $89 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[($6 + 16 | 0) >> 2] | 0) + Math_imul(HEAP32[($6 + 12 | 0) >> 2] | 0, 12) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $89; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $27 = 8; + HEAP32[(i64toi32_i32$0 + $27 | 0) >> 2] = HEAP32[($25 + $27 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedAllocator_btSimplePair_2c_2016u___allocate_28int_2c_20btSimplePair_20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(Math_imul(HEAP32[($5 + 8 | 0) >> 2] | 0, 12) | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btAlignedAllocator_btSimplePair_2c_2016u___deallocate_28btSimplePair__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function _GLOBAL__sub_I_btCompoundCompoundCollisionAlgorithm_cpp() { + __cxx_global_var_init_17(); + return; + } + + function __cxx_global_var_init_18() { + btInfMaskConverter__btInfMaskConverter_28int_29(114020 | 0, 2139095040 | 0) | 0; + return; + } + + function btBoxBoxDetector__btBoxBoxDetector_28btBoxShape_20const__2c_20btBoxShape_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btDiscreteCollisionDetectorInterface__btDiscreteCollisionDetectorInterface_28_29($6 | 0) | 0; + HEAP32[$6 >> 2] = 95092 + 8 | 0; + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + HEAP32[($6 + 8 | 0) >> 2] = HEAP32[($5 + 4 | 0) >> 2] | 0; + __stack_pointer = $5 + 16 | 0; + return $6 | 0; + } + + function btDiscreteCollisionDetectorInterface__btDiscreteCollisionDetectorInterface_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 95192 + 8 | 0; + return $4 | 0; + } + + function dLineClosestApproach_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float__2c_20float__29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, $18 = Math_fround(0), $29 = Math_fround(0), $40 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $8 = __stack_pointer - 64 | 0; + __stack_pointer = $8; + HEAP32[($8 + 60 | 0) >> 2] = $0; + HEAP32[($8 + 56 | 0) >> 2] = $1; + HEAP32[($8 + 52 | 0) >> 2] = $2; + HEAP32[($8 + 48 | 0) >> 2] = $3; + HEAP32[($8 + 44 | 0) >> 2] = $4; + HEAP32[($8 + 40 | 0) >> 2] = $5; + btVector3__btVector3_28_29($8 + 24 | 0 | 0) | 0; + $18 = Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(HEAP32[($8 + 52 | 0) >> 2] | 0 | 0) | 0) >> 2]) - Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(HEAP32[($8 + 60 | 0) >> 2] | 0 | 0) | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($8 + 24 | 0 | 0) | 0, wasm2js_f32$0 = $18), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $29 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($8 + 52 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2]) - Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($8 + 60 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($8 + 24 | 0 | 0) | 0, wasm2js_f32$0 = $29), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $40 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($8 + 52 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2]) - Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($8 + 60 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($8 + 24 | 0 | 0) | 0, wasm2js_f32$0 = $40), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(dDOT_28float_20const__2c_20float_20const__29(btVector3__operator_20float_20const__28_29_20const(HEAP32[($8 + 56 | 0) >> 2] | 0 | 0) | 0 | 0, btVector3__operator_20float_20const__28_29_20const(HEAP32[($8 + 48 | 0) >> 2] | 0 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(dDOT_28float_20const__2c_20float_20const__29(btVector3__operator_20float_20const__28_29_20const(HEAP32[($8 + 56 | 0) >> 2] | 0 | 0) | 0 | 0, btVector3__operator_20float__28_29($8 + 24 | 0 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(-Math_fround(dDOT_28float_20const__2c_20float_20const__29(btVector3__operator_20float_20const__28_29_20const(HEAP32[($8 + 48 | 0) >> 2] | 0 | 0) | 0 | 0, btVector3__operator_20float__28_29($8 + 24 | 0 | 0) | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($8 + 8 | 0) >> 2] = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($8 + 20 | 0) >> 2])) * Math_fround(HEAPF32[($8 + 20 | 0) >> 2])) + Math_fround(1.0)); + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($8 + 8 | 0) >> 2]) <= Math_fround(9.999999747378752e-05) & 1 | 0)) { + break label$2 + } + HEAPF32[(HEAP32[($8 + 44 | 0) >> 2] | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[(HEAP32[($8 + 40 | 0) >> 2] | 0) >> 2] = Math_fround(0 | 0); + break label$1; + } + HEAPF32[($8 + 8 | 0) >> 2] = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[($8 + 8 | 0) >> 2])); + HEAPF32[(HEAP32[($8 + 44 | 0) >> 2] | 0) >> 2] = Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[($8 + 20 | 0) >> 2]) * Math_fround(HEAPF32[($8 + 12 | 0) >> 2])) + Math_fround(HEAPF32[($8 + 16 | 0) >> 2])) * Math_fround(HEAPF32[($8 + 8 | 0) >> 2])); + HEAPF32[(HEAP32[($8 + 40 | 0) >> 2] | 0) >> 2] = Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[($8 + 20 | 0) >> 2]) * Math_fround(HEAPF32[($8 + 16 | 0) >> 2])) + Math_fround(HEAPF32[($8 + 12 | 0) >> 2])) * Math_fround(HEAPF32[($8 + 8 | 0) >> 2])); + } + __stack_pointer = $8 + 64 | 0; + return; + } + + function dDOT_28float_20const__2c_20float_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2]))))); + } + + function cullPoints2_28int_2c_20float__2c_20int_2c_20int_2c_20int__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $264 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $7 = __stack_pointer - 128 | 0; + __stack_pointer = $7; + HEAP32[($7 + 124 | 0) >> 2] = $0; + HEAP32[($7 + 120 | 0) >> 2] = $1; + HEAP32[($7 + 116 | 0) >> 2] = $2; + HEAP32[($7 + 112 | 0) >> 2] = $3; + HEAP32[($7 + 108 | 0) >> 2] = $4; + label$1 : { + label$2 : { + if (!((HEAP32[($7 + 124 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$2 + } + HEAPF32[($7 + 92 | 0) >> 2] = Math_fround(HEAPF32[(HEAP32[($7 + 120 | 0) >> 2] | 0) >> 2]); + HEAPF32[($7 + 88 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + 4 | 0) >> 2]); + break label$1; + } + label$3 : { + label$4 : { + if (!((HEAP32[($7 + 124 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$4 + } + HEAPF32[($7 + 92 | 0) >> 2] = Math_fround(Math_fround(.5) * Math_fround(Math_fround(HEAPF32[(HEAP32[($7 + 120 | 0) >> 2] | 0) >> 2]) + Math_fround(HEAPF32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + 8 | 0) >> 2]))); + HEAPF32[($7 + 88 | 0) >> 2] = Math_fround(Math_fround(.5) * Math_fround(Math_fround(HEAPF32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + 4 | 0) >> 2]) + Math_fround(HEAPF32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + 12 | 0) >> 2]))); + break label$3; + } + HEAPF32[($7 + 96 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($7 + 92 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($7 + 88 | 0) >> 2] = Math_fround(0 | 0); + HEAP32[($7 + 104 | 0) >> 2] = 0; + label$5 : { + label$6 : while (1) { + if (!((HEAP32[($7 + 104 | 0) >> 2] | 0 | 0) < ((HEAP32[($7 + 124 | 0) >> 2] | 0) - 1 | 0 | 0) & 1 | 0)) { + break label$5 + } + HEAPF32[($7 + 84 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + (((HEAP32[($7 + 104 | 0) >> 2] | 0) << 1 | 0) << 2 | 0) | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + ((((HEAP32[($7 + 104 | 0) >> 2] | 0) << 1 | 0) + 3 | 0) << 2 | 0) | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + ((((HEAP32[($7 + 104 | 0) >> 2] | 0) << 1 | 0) + 2 | 0) << 2 | 0) | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + ((((HEAP32[($7 + 104 | 0) >> 2] | 0) << 1 | 0) + 1 | 0) << 2 | 0) | 0) >> 2])))); + HEAPF32[($7 + 96 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($7 + 96 | 0) >> 2]) + Math_fround(HEAPF32[($7 + 84 | 0) >> 2])); + HEAPF32[($7 + 92 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($7 + 84 | 0) >> 2]) * Math_fround(Math_fround(HEAPF32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + (((HEAP32[($7 + 104 | 0) >> 2] | 0) << 1 | 0) << 2 | 0) | 0) >> 2]) + Math_fround(HEAPF32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + ((((HEAP32[($7 + 104 | 0) >> 2] | 0) << 1 | 0) + 2 | 0) << 2 | 0) | 0) >> 2]))) + Math_fround(HEAPF32[($7 + 92 | 0) >> 2])); + HEAPF32[($7 + 88 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($7 + 84 | 0) >> 2]) * Math_fround(Math_fround(HEAPF32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + ((((HEAP32[($7 + 104 | 0) >> 2] | 0) << 1 | 0) + 1 | 0) << 2 | 0) | 0) >> 2]) + Math_fround(HEAPF32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + ((((HEAP32[($7 + 104 | 0) >> 2] | 0) << 1 | 0) + 3 | 0) << 2 | 0) | 0) >> 2]))) + Math_fround(HEAPF32[($7 + 88 | 0) >> 2])); + HEAP32[($7 + 104 | 0) >> 2] = (HEAP32[($7 + 104 | 0) >> 2] | 0) + 1 | 0; + continue label$6; + }; + } + HEAPF32[($7 + 84 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + ((((HEAP32[($7 + 124 | 0) >> 2] | 0) << 1 | 0) - 2 | 0) << 2 | 0) | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + 4 | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[(HEAP32[($7 + 120 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + ((((HEAP32[($7 + 124 | 0) >> 2] | 0) << 1 | 0) - 1 | 0) << 2 | 0) | 0) >> 2])))); + label$7 : { + label$8 : { + if (!(Math_fround(btFabs_28float_29(Math_fround(Math_fround(Math_fround(HEAPF32[($7 + 96 | 0) >> 2]) + Math_fround(HEAPF32[($7 + 84 | 0) >> 2]))))) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$8 + } + HEAPF32[($7 + 96 | 0) >> 2] = Math_fround(Math_fround(1.0) / Math_fround(Math_fround(3.0) * Math_fround(Math_fround(HEAPF32[($7 + 96 | 0) >> 2]) + Math_fround(HEAPF32[($7 + 84 | 0) >> 2])))); + break label$7; + } + HEAPF32[($7 + 96 | 0) >> 2] = Math_fround(999999984306749440.0); + } + HEAPF32[($7 + 92 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($7 + 96 | 0) >> 2]) * Math_fround(Math_fround(Math_fround(HEAPF32[($7 + 84 | 0) >> 2]) * Math_fround(Math_fround(HEAPF32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + ((((HEAP32[($7 + 124 | 0) >> 2] | 0) << 1 | 0) - 2 | 0) << 2 | 0) | 0) >> 2]) + Math_fround(HEAPF32[(HEAP32[($7 + 120 | 0) >> 2] | 0) >> 2]))) + Math_fround(HEAPF32[($7 + 92 | 0) >> 2]))); + HEAPF32[($7 + 88 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($7 + 96 | 0) >> 2]) * Math_fround(Math_fround(Math_fround(HEAPF32[($7 + 84 | 0) >> 2]) * Math_fround(Math_fround(HEAPF32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + ((((HEAP32[($7 + 124 | 0) >> 2] | 0) << 1 | 0) - 1 | 0) << 2 | 0) | 0) >> 2]) + Math_fround(HEAPF32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + 4 | 0) >> 2]))) + Math_fround(HEAPF32[($7 + 88 | 0) >> 2]))); + } + } + HEAP32[($7 + 104 | 0) >> 2] = 0; + label$9 : { + label$10 : while (1) { + if (!((HEAP32[($7 + 104 | 0) >> 2] | 0 | 0) < (HEAP32[($7 + 124 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$9 + } + $264 = Math_fround(btAtan2_28float_2c_20float_29(Math_fround(Math_fround(Math_fround(HEAPF32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + ((((HEAP32[($7 + 104 | 0) >> 2] | 0) << 1 | 0) + 1 | 0) << 2 | 0) | 0) >> 2]) - Math_fround(HEAPF32[($7 + 88 | 0) >> 2]))), Math_fround(Math_fround(Math_fround(HEAPF32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + (((HEAP32[($7 + 104 | 0) >> 2] | 0) << 1 | 0) << 2 | 0) | 0) >> 2]) - Math_fround(HEAPF32[($7 + 92 | 0) >> 2]))))); + HEAPF32[(($7 + 48 | 0) + ((HEAP32[($7 + 104 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = $264; + HEAP32[($7 + 104 | 0) >> 2] = (HEAP32[($7 + 104 | 0) >> 2] | 0) + 1 | 0; + continue label$10; + }; + } + HEAP32[($7 + 104 | 0) >> 2] = 0; + label$11 : { + label$12 : while (1) { + if (!((HEAP32[($7 + 104 | 0) >> 2] | 0 | 0) < (HEAP32[($7 + 124 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$11 + } + HEAP32[(($7 + 16 | 0) + ((HEAP32[($7 + 104 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = 1; + HEAP32[($7 + 104 | 0) >> 2] = (HEAP32[($7 + 104 | 0) >> 2] | 0) + 1 | 0; + continue label$12; + }; + } + HEAP32[(($7 + 16 | 0) + ((HEAP32[($7 + 112 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = 0; + HEAP32[(HEAP32[($7 + 108 | 0) >> 2] | 0) >> 2] = HEAP32[($7 + 112 | 0) >> 2] | 0; + HEAP32[($7 + 108 | 0) >> 2] = (HEAP32[($7 + 108 | 0) >> 2] | 0) + 4 | 0; + HEAP32[($7 + 100 | 0) >> 2] = 1; + label$13 : { + label$14 : while (1) { + if (!((HEAP32[($7 + 100 | 0) >> 2] | 0 | 0) < (HEAP32[($7 + 116 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$13 + } + HEAPF32[($7 + 96 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAP32[($7 + 100 | 0) >> 2] | 0 | 0) * Math_fround(Math_fround(6.2831854820251465) / Math_fround(HEAP32[($7 + 116 | 0) >> 2] | 0 | 0))) + Math_fround(HEAPF32[(($7 + 48 | 0) + ((HEAP32[($7 + 112 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])); + label$15 : { + if (!(Math_fround(HEAPF32[($7 + 96 | 0) >> 2]) > Math_fround(3.1415927410125732) & 1 | 0)) { + break label$15 + } + HEAPF32[($7 + 96 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($7 + 96 | 0) >> 2]) - Math_fround(6.2831854820251465)); + } + HEAPF32[($7 + 12 | 0) >> 2] = Math_fround(1.0e9); + HEAP32[(HEAP32[($7 + 108 | 0) >> 2] | 0) >> 2] = HEAP32[($7 + 112 | 0) >> 2] | 0; + HEAP32[($7 + 104 | 0) >> 2] = 0; + label$16 : { + label$17 : while (1) { + if (!((HEAP32[($7 + 104 | 0) >> 2] | 0 | 0) < (HEAP32[($7 + 124 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$16 + } + label$18 : { + if (!(HEAP32[(($7 + 16 | 0) + ((HEAP32[($7 + 104 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0)) { + break label$18 + } + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(Math_fround(HEAPF32[(($7 + 48 | 0) + ((HEAP32[($7 + 104 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) - Math_fround(HEAPF32[($7 + 96 | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + label$19 : { + if (!(Math_fround(HEAPF32[($7 + 8 | 0) >> 2]) > Math_fround(3.1415927410125732) & 1 | 0)) { + break label$19 + } + HEAPF32[($7 + 8 | 0) >> 2] = Math_fround(Math_fround(6.2831854820251465) - Math_fround(HEAPF32[($7 + 8 | 0) >> 2])); + } + label$20 : { + if (!(Math_fround(HEAPF32[($7 + 8 | 0) >> 2]) < Math_fround(HEAPF32[($7 + 12 | 0) >> 2]) & 1 | 0)) { + break label$20 + } + HEAPF32[($7 + 12 | 0) >> 2] = Math_fround(HEAPF32[($7 + 8 | 0) >> 2]); + HEAP32[(HEAP32[($7 + 108 | 0) >> 2] | 0) >> 2] = HEAP32[($7 + 104 | 0) >> 2] | 0; + } + } + HEAP32[($7 + 104 | 0) >> 2] = (HEAP32[($7 + 104 | 0) >> 2] | 0) + 1 | 0; + continue label$17; + }; + } + label$21 : { + if ((HEAP32[(HEAP32[($7 + 108 | 0) >> 2] | 0) >> 2] | 0 | 0) != (HEAP32[($7 + 112 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$21 + } + __assert_fail(85735 | 0, 72206 | 0, 248 | 0, 85393 | 0); + wasm2js_trap(); + } + HEAP32[(($7 + 16 | 0) + ((HEAP32[(HEAP32[($7 + 108 | 0) >> 2] | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = 0; + HEAP32[($7 + 108 | 0) >> 2] = (HEAP32[($7 + 108 | 0) >> 2] | 0) + 4 | 0; + HEAP32[($7 + 100 | 0) >> 2] = (HEAP32[($7 + 100 | 0) >> 2] | 0) + 1 | 0; + continue label$14; + }; + } + __stack_pointer = $7 + 128 | 0; + return; + } + + function btAtan2_28float_2c_20float_29($0, $1) { + $0 = Math_fround($0); + $1 = Math_fround($1); + var $4 = 0, $7 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAPF32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + $7 = Math_fround(atan2f(Math_fround(Math_fround(HEAPF32[($4 + 12 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2])))); + __stack_pointer = $4 + 16 | 0; + return Math_fround($7); + } + + function dBoxBox2_28btVector3_20const__2c_20float_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_20const__2c_20btVector3_20const__2c_20btVector3__2c_20float__2c_20int__2c_20int_2c_20dContactGeom__2c_20int_2c_20btDiscreteCollisionDetectorInterface__Result__29($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + $8 = $8 | 0; + $9 = $9 | 0; + $10 = $10 | 0; + $11 = $11 | 0; + $12 = $12 | 0; + var $15 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $47 = 0, $1698 = 0, $1796 = 0, $1921 = 0, $1953 = 0, $1963 = 0, $2828 = 0, $2920 = 0, $3051 = 0, $3080 = 0, $3248 = 0, $3252 = 0, $61 = Math_fround(0), $73 = Math_fround(0), $85 = Math_fround(0), $583 = Math_fround(0), $591 = Math_fround(0), $598 = Math_fround(0), $696 = Math_fround(0), $704 = Math_fround(0), $711 = Math_fround(0), $809 = Math_fround(0), $817 = Math_fround(0), $824 = Math_fround(0), $921 = Math_fround(0), $929 = Math_fround(0), $937 = Math_fround(0), $1034 = Math_fround(0), $1042 = Math_fround(0), $1050 = Math_fround(0), $1147 = Math_fround(0), $1155 = Math_fround(0), $1163 = Math_fround(0), $1262 = Math_fround(0), $1269 = Math_fround(0), $1277 = Math_fround(0), $1376 = Math_fround(0), $1383 = Math_fround(0), $1391 = Math_fround(0), $1490 = Math_fround(0), $1497 = Math_fround(0), $1505 = Math_fround(0), $1542 = Math_fround(0), $1546 = Math_fround(0), $1550 = Math_fround(0), $1558 = Math_fround(0), $1568 = Math_fround(0), $1578 = Math_fround(0), $1585 = Math_fround(0), $1591 = Math_fround(0), $1597 = Math_fround(0), $1627 = Math_fround(0), $1680 = Math_fround(0), $1690 = Math_fround(0), $1725 = Math_fround(0), $1778 = Math_fround(0), $1788 = Math_fround(0), $1833 = Math_fround(0), $1866 = Math_fround(0), $1912 = Math_fround(0), $1913 = Math_fround(0), $1944 = Math_fround(0), $1945 = Math_fround(0), $2031 = Math_fround(0), $2038 = Math_fround(0), $2045 = Math_fround(0), $2053 = Math_fround(0), $2061 = Math_fround(0), $2069 = Math_fround(0), $2079 = Math_fround(0), $2091 = Math_fround(0), $2103 = Math_fround(0), $2113 = Math_fround(0), $2123 = Math_fround(0), $2133 = Math_fround(0), $2244 = Math_fround(0), $2295 = Math_fround(0), $2606 = 0, $2672 = Math_fround(0), $2816 = Math_fround(0), $2890 = Math_fround(0), $2908 = Math_fround(0), $3032 = Math_fround(0), $3139 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$1 = 0; + $15 = __stack_pointer - 992 | 0; + __stack_pointer = $15; + HEAP32[($15 + 984 | 0) >> 2] = $0; + HEAP32[($15 + 980 | 0) >> 2] = $1; + HEAP32[($15 + 976 | 0) >> 2] = $2; + HEAP32[($15 + 972 | 0) >> 2] = $3; + HEAP32[($15 + 968 | 0) >> 2] = $4; + HEAP32[($15 + 964 | 0) >> 2] = $5; + HEAP32[($15 + 960 | 0) >> 2] = $6; + HEAP32[($15 + 956 | 0) >> 2] = $7; + HEAP32[($15 + 952 | 0) >> 2] = $8; + HEAP32[($15 + 948 | 0) >> 2] = $9; + HEAP32[($15 + 944 | 0) >> 2] = $10; + HEAP32[($15 + 940 | 0) >> 2] = $11; + HEAP32[($15 + 936 | 0) >> 2] = $12; + HEAPF32[($15 + 932 | 0) >> 2] = Math_fround(1.0499999523162842); + btVector3__btVector3_28_29($15 + 912 | 0 | 0) | 0; + btVector3__btVector3_28_29($15 + 896 | 0 | 0) | 0; + HEAPF32[($15 + 876 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($15 + 872 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($15 + 868 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($15 + 880 | 0 | 0, $15 + 876 | 0 | 0, $15 + 872 | 0 | 0, $15 + 868 | 0 | 0) | 0; + HEAP32[($15 + 864 | 0) >> 2] = 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($15 + 724 | 0 | 0, HEAP32[($15 + 972 | 0) >> 2] | 0 | 0, HEAP32[($15 + 984 | 0) >> 2] | 0 | 0); + $47 = 8; + i64toi32_i32$2 = ($15 + 724 | 0) + $47 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $3248 = i64toi32_i32$0; + i64toi32_i32$0 = ($15 + 912 | 0) + $47 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $3248; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $15; + i64toi32_i32$1 = HEAP32[($15 + 724 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($15 + 728 | 0) >> 2] | 0; + $3252 = i64toi32_i32$1; + i64toi32_i32$1 = $15; + HEAP32[($15 + 912 | 0) >> 2] = $3252; + HEAP32[($15 + 916 | 0) >> 2] = i64toi32_i32$0; + $61 = Math_fround(dDOT41_28float_20const__2c_20float_20const__29(HEAP32[($15 + 980 | 0) >> 2] | 0 | 0, btVector3__operator_20float__28_29($15 + 912 | 0 | 0) | 0 | 0)); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0, wasm2js_f32$0 = $61), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $73 = Math_fround(dDOT41_28float_20const__2c_20float_20const__29((HEAP32[($15 + 980 | 0) >> 2] | 0) + 4 | 0 | 0, btVector3__operator_20float__28_29($15 + 912 | 0 | 0) | 0 | 0)); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0, wasm2js_f32$0 = $73), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $85 = Math_fround(dDOT41_28float_20const__2c_20float_20const__29((HEAP32[($15 + 980 | 0) >> 2] | 0) + 8 | 0 | 0, btVector3__operator_20float__28_29($15 + 912 | 0 | 0) | 0 | 0)); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0, wasm2js_f32$0 = $85), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(HEAP32[($15 + 976 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(.5))), HEAPF32[(wasm2js_i32$0 + 852 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($15 + 976 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2]) * Math_fround(.5))), HEAPF32[(wasm2js_i32$0 + 856 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($15 + 976 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2]) * Math_fround(.5))), HEAPF32[(wasm2js_i32$0 + 860 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(HEAP32[($15 + 964 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(.5))), HEAPF32[(wasm2js_i32$0 + 840 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($15 + 964 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2]) * Math_fround(.5))), HEAPF32[(wasm2js_i32$0 + 844 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($15 + 964 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2]) * Math_fround(.5))), HEAPF32[(wasm2js_i32$0 + 848 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(dDOT44_28float_20const__2c_20float_20const__29(HEAP32[($15 + 980 | 0) >> 2] | 0 | 0, HEAP32[($15 + 968 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 836 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(dDOT44_28float_20const__2c_20float_20const__29(HEAP32[($15 + 980 | 0) >> 2] | 0 | 0, (HEAP32[($15 + 968 | 0) >> 2] | 0) + 4 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 832 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(dDOT44_28float_20const__2c_20float_20const__29(HEAP32[($15 + 980 | 0) >> 2] | 0 | 0, (HEAP32[($15 + 968 | 0) >> 2] | 0) + 8 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 828 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(dDOT44_28float_20const__2c_20float_20const__29((HEAP32[($15 + 980 | 0) >> 2] | 0) + 4 | 0 | 0, HEAP32[($15 + 968 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 824 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(dDOT44_28float_20const__2c_20float_20const__29((HEAP32[($15 + 980 | 0) >> 2] | 0) + 4 | 0 | 0, (HEAP32[($15 + 968 | 0) >> 2] | 0) + 4 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 820 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(dDOT44_28float_20const__2c_20float_20const__29((HEAP32[($15 + 980 | 0) >> 2] | 0) + 4 | 0 | 0, (HEAP32[($15 + 968 | 0) >> 2] | 0) + 8 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 816 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(dDOT44_28float_20const__2c_20float_20const__29((HEAP32[($15 + 980 | 0) >> 2] | 0) + 8 | 0 | 0, HEAP32[($15 + 968 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 812 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(dDOT44_28float_20const__2c_20float_20const__29((HEAP32[($15 + 980 | 0) >> 2] | 0) + 8 | 0 | 0, (HEAP32[($15 + 968 | 0) >> 2] | 0) + 4 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 808 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(dDOT44_28float_20const__2c_20float_20const__29((HEAP32[($15 + 980 | 0) >> 2] | 0) + 8 | 0 | 0, (HEAP32[($15 + 968 | 0) >> 2] | 0) + 8 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 804 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[($15 + 836 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 800 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[($15 + 832 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 796 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[($15 + 828 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 792 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[($15 + 824 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 788 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[($15 + 820 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 784 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[($15 + 816 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 780 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[($15 + 812 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 776 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[($15 + 808 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 772 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[($15 + 804 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 768 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($15 + 764 | 0) >> 2] = Math_fround(-3402823466385288598117041.0e14); + HEAP32[($15 + 744 | 0) >> 2] = 0; + HEAP32[($15 + 740 | 0) >> 2] = 0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) >> 2])))) - Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 848 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 792 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 844 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 796 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 840 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 800 | 0) >> 2])) + Math_fround(HEAPF32[($15 + 852 | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 760 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($15 + 988 | 0) >> 2] = 0; + break label$1; + } + label$3 : { + if (!(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) > Math_fround(HEAPF32[($15 + 764 | 0) >> 2]) & 1 | 0)) { + break label$3 + } + HEAPF32[($15 + 764 | 0) >> 2] = Math_fround(HEAPF32[($15 + 760 | 0) >> 2]); + HEAP32[($15 + 864 | 0) >> 2] = HEAP32[($15 + 980 | 0) >> 2] | 0; + (wasm2js_i32$0 = $15, wasm2js_i32$1 = Math_fround(HEAPF32[(btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0), HEAP32[(wasm2js_i32$0 + 744 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($15 + 740 | 0) >> 2] = 1; + } + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 4 | 0) >> 2])))) - Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 848 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 780 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 844 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 784 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 840 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 788 | 0) >> 2])) + Math_fround(HEAPF32[($15 + 856 | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 760 | 0) >> 2] = wasm2js_f32$0; + label$4 : { + if (!(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($15 + 988 | 0) >> 2] = 0; + break label$1; + } + label$5 : { + if (!(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) > Math_fround(HEAPF32[($15 + 764 | 0) >> 2]) & 1 | 0)) { + break label$5 + } + HEAPF32[($15 + 764 | 0) >> 2] = Math_fround(HEAPF32[($15 + 760 | 0) >> 2]); + HEAP32[($15 + 864 | 0) >> 2] = (HEAP32[($15 + 980 | 0) >> 2] | 0) + 4 | 0; + (wasm2js_i32$0 = $15, wasm2js_i32$1 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 4 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0), HEAP32[(wasm2js_i32$0 + 744 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($15 + 740 | 0) >> 2] = 2; + } + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 8 | 0) >> 2])))) - Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 848 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 768 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 844 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 772 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 840 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 776 | 0) >> 2])) + Math_fround(HEAPF32[($15 + 860 | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 760 | 0) >> 2] = wasm2js_f32$0; + label$6 : { + if (!(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[($15 + 988 | 0) >> 2] = 0; + break label$1; + } + label$7 : { + if (!(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) > Math_fround(HEAPF32[($15 + 764 | 0) >> 2]) & 1 | 0)) { + break label$7 + } + HEAPF32[($15 + 764 | 0) >> 2] = Math_fround(HEAPF32[($15 + 760 | 0) >> 2]); + HEAP32[($15 + 864 | 0) >> 2] = (HEAP32[($15 + 980 | 0) >> 2] | 0) + 8 | 0; + (wasm2js_i32$0 = $15, wasm2js_i32$1 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 8 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0), HEAP32[(wasm2js_i32$0 + 744 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($15 + 740 | 0) >> 2] = 3; + } + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(Math_fround(btFabs_28float_29(Math_fround(Math_fround(dDOT41_28float_20const__2c_20float_20const__29(HEAP32[($15 + 968 | 0) >> 2] | 0 | 0, btVector3__operator_20float__28_29($15 + 912 | 0 | 0) | 0 | 0))))) - Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 860 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 776 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 852 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 800 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($15 + 856 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 788 | 0) >> 2])))) + Math_fround(HEAPF32[($15 + 840 | 0) >> 2])))), HEAPF32[(wasm2js_i32$0 + 760 | 0) >> 2] = wasm2js_f32$0; + label$8 : { + if (!(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[($15 + 988 | 0) >> 2] = 0; + break label$1; + } + label$9 : { + if (!(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) > Math_fround(HEAPF32[($15 + 764 | 0) >> 2]) & 1 | 0)) { + break label$9 + } + HEAPF32[($15 + 764 | 0) >> 2] = Math_fround(HEAPF32[($15 + 760 | 0) >> 2]); + HEAP32[($15 + 864 | 0) >> 2] = HEAP32[($15 + 968 | 0) >> 2] | 0; + (wasm2js_i32$0 = $15, wasm2js_i32$1 = Math_fround(dDOT41_28float_20const__2c_20float_20const__29(HEAP32[($15 + 968 | 0) >> 2] | 0 | 0, btVector3__operator_20float__28_29($15 + 912 | 0 | 0) | 0 | 0)) < Math_fround(0 | 0) & 1 | 0), HEAP32[(wasm2js_i32$0 + 744 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($15 + 740 | 0) >> 2] = 4; + } + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(Math_fround(btFabs_28float_29(Math_fround(Math_fround(dDOT41_28float_20const__2c_20float_20const__29((HEAP32[($15 + 968 | 0) >> 2] | 0) + 4 | 0 | 0, btVector3__operator_20float__28_29($15 + 912 | 0 | 0) | 0 | 0))))) - Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 860 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 772 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 852 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 796 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($15 + 856 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 784 | 0) >> 2])))) + Math_fround(HEAPF32[($15 + 844 | 0) >> 2])))), HEAPF32[(wasm2js_i32$0 + 760 | 0) >> 2] = wasm2js_f32$0; + label$10 : { + if (!(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$10 + } + HEAP32[($15 + 988 | 0) >> 2] = 0; + break label$1; + } + label$11 : { + if (!(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) > Math_fround(HEAPF32[($15 + 764 | 0) >> 2]) & 1 | 0)) { + break label$11 + } + HEAPF32[($15 + 764 | 0) >> 2] = Math_fround(HEAPF32[($15 + 760 | 0) >> 2]); + HEAP32[($15 + 864 | 0) >> 2] = (HEAP32[($15 + 968 | 0) >> 2] | 0) + 4 | 0; + (wasm2js_i32$0 = $15, wasm2js_i32$1 = Math_fround(dDOT41_28float_20const__2c_20float_20const__29((HEAP32[($15 + 968 | 0) >> 2] | 0) + 4 | 0 | 0, btVector3__operator_20float__28_29($15 + 912 | 0 | 0) | 0 | 0)) < Math_fround(0 | 0) & 1 | 0), HEAP32[(wasm2js_i32$0 + 744 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($15 + 740 | 0) >> 2] = 5; + } + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(Math_fround(btFabs_28float_29(Math_fround(Math_fround(dDOT41_28float_20const__2c_20float_20const__29((HEAP32[($15 + 968 | 0) >> 2] | 0) + 8 | 0 | 0, btVector3__operator_20float__28_29($15 + 912 | 0 | 0) | 0 | 0))))) - Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 860 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 768 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 852 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 792 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($15 + 856 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 780 | 0) >> 2])))) + Math_fround(HEAPF32[($15 + 848 | 0) >> 2])))), HEAPF32[(wasm2js_i32$0 + 760 | 0) >> 2] = wasm2js_f32$0; + label$12 : { + if (!(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$12 + } + HEAP32[($15 + 988 | 0) >> 2] = 0; + break label$1; + } + label$13 : { + if (!(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) > Math_fround(HEAPF32[($15 + 764 | 0) >> 2]) & 1 | 0)) { + break label$13 + } + HEAPF32[($15 + 764 | 0) >> 2] = Math_fround(HEAPF32[($15 + 760 | 0) >> 2]); + HEAP32[($15 + 864 | 0) >> 2] = (HEAP32[($15 + 968 | 0) >> 2] | 0) + 8 | 0; + (wasm2js_i32$0 = $15, wasm2js_i32$1 = Math_fround(dDOT41_28float_20const__2c_20float_20const__29((HEAP32[($15 + 968 | 0) >> 2] | 0) + 8 | 0 | 0, btVector3__operator_20float__28_29($15 + 912 | 0 | 0) | 0 | 0)) < Math_fround(0 | 0) & 1 | 0), HEAP32[(wasm2js_i32$0 + 744 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($15 + 740 | 0) >> 2] = 6; + } + HEAPF32[($15 + 720 | 0) >> 2] = Math_fround(9.999999747378752e-06); + HEAPF32[($15 + 800 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 800 | 0) >> 2]) + Math_fround(HEAPF32[($15 + 720 | 0) >> 2])); + HEAPF32[($15 + 796 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 796 | 0) >> 2]) + Math_fround(HEAPF32[($15 + 720 | 0) >> 2])); + HEAPF32[($15 + 792 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 792 | 0) >> 2]) + Math_fround(HEAPF32[($15 + 720 | 0) >> 2])); + HEAPF32[($15 + 788 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 788 | 0) >> 2]) + Math_fround(HEAPF32[($15 + 720 | 0) >> 2])); + HEAPF32[($15 + 784 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 784 | 0) >> 2]) + Math_fround(HEAPF32[($15 + 720 | 0) >> 2])); + HEAPF32[($15 + 780 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 780 | 0) >> 2]) + Math_fround(HEAPF32[($15 + 720 | 0) >> 2])); + HEAPF32[($15 + 776 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 776 | 0) >> 2]) + Math_fround(HEAPF32[($15 + 720 | 0) >> 2])); + HEAPF32[($15 + 772 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 772 | 0) >> 2]) + Math_fround(HEAPF32[($15 + 720 | 0) >> 2])); + HEAPF32[($15 + 768 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 768 | 0) >> 2]) + Math_fround(HEAPF32[($15 + 720 | 0) >> 2])); + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(Math_fround(btFabs_28float_29(Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 824 | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 812 | 0) >> 2]))))))) - Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 848 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 796 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 844 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 792 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 856 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 776 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($15 + 860 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 788 | 0) >> 2]))))))), HEAPF32[(wasm2js_i32$0 + 760 | 0) >> 2] = wasm2js_f32$0; + label$14 : { + if (!(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$14 + } + HEAP32[($15 + 988 | 0) >> 2] = 0; + break label$1; + } + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(btSqrt_28float_29(Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 824 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 824 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($15 + 812 | 0) >> 2])) * Math_fround(-Math_fround(HEAPF32[($15 + 812 | 0) >> 2]))) + Math_fround(0.0))))))), HEAPF32[(wasm2js_i32$0 + 756 | 0) >> 2] = wasm2js_f32$0; + label$15 : { + if (!(Math_fround(HEAPF32[($15 + 756 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$15 + } + HEAPF32[($15 + 760 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + label$16 : { + if (!(Math_fround(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) * Math_fround(1.0499999523162842)) > Math_fround(HEAPF32[($15 + 764 | 0) >> 2]) & 1 | 0)) { + break label$16 + } + HEAPF32[($15 + 764 | 0) >> 2] = Math_fround(HEAPF32[($15 + 760 | 0) >> 2]); + HEAP32[($15 + 864 | 0) >> 2] = 0; + $583 = Math_fround(Math_fround(0 | 0) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0, wasm2js_f32$0 = $583), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $591 = Math_fround(Math_fround(-Math_fround(HEAPF32[($15 + 812 | 0) >> 2])) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0, wasm2js_f32$0 = $591), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $598 = Math_fround(Math_fround(HEAPF32[($15 + 824 | 0) >> 2]) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0, wasm2js_f32$0 = $598), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_i32$1 = Math_fround(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 824 | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 812 | 0) >> 2])))) < Math_fround(0 | 0) & 1 | 0), HEAP32[(wasm2js_i32$0 + 744 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($15 + 740 | 0) >> 2] = 7; + } + } + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(Math_fround(btFabs_28float_29(Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 820 | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 808 | 0) >> 2]))))))) - Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 848 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 800 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 840 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 792 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 856 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 772 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($15 + 860 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 784 | 0) >> 2]))))))), HEAPF32[(wasm2js_i32$0 + 760 | 0) >> 2] = wasm2js_f32$0; + label$17 : { + if (!(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$17 + } + HEAP32[($15 + 988 | 0) >> 2] = 0; + break label$1; + } + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(btSqrt_28float_29(Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 820 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 820 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($15 + 808 | 0) >> 2])) * Math_fround(-Math_fround(HEAPF32[($15 + 808 | 0) >> 2]))) + Math_fround(0.0))))))), HEAPF32[(wasm2js_i32$0 + 756 | 0) >> 2] = wasm2js_f32$0; + label$18 : { + if (!(Math_fround(HEAPF32[($15 + 756 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$18 + } + HEAPF32[($15 + 760 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + label$19 : { + if (!(Math_fround(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) * Math_fround(1.0499999523162842)) > Math_fround(HEAPF32[($15 + 764 | 0) >> 2]) & 1 | 0)) { + break label$19 + } + HEAPF32[($15 + 764 | 0) >> 2] = Math_fround(HEAPF32[($15 + 760 | 0) >> 2]); + HEAP32[($15 + 864 | 0) >> 2] = 0; + $696 = Math_fround(Math_fround(0 | 0) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0, wasm2js_f32$0 = $696), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $704 = Math_fround(Math_fround(-Math_fround(HEAPF32[($15 + 808 | 0) >> 2])) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0, wasm2js_f32$0 = $704), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $711 = Math_fround(Math_fround(HEAPF32[($15 + 820 | 0) >> 2]) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0, wasm2js_f32$0 = $711), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_i32$1 = Math_fround(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 820 | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 808 | 0) >> 2])))) < Math_fround(0 | 0) & 1 | 0), HEAP32[(wasm2js_i32$0 + 744 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($15 + 740 | 0) >> 2] = 8; + } + } + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(Math_fround(btFabs_28float_29(Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 816 | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 804 | 0) >> 2]))))))) - Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 844 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 800 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 840 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 796 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 856 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 768 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($15 + 860 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 780 | 0) >> 2]))))))), HEAPF32[(wasm2js_i32$0 + 760 | 0) >> 2] = wasm2js_f32$0; + label$20 : { + if (!(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$20 + } + HEAP32[($15 + 988 | 0) >> 2] = 0; + break label$1; + } + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(btSqrt_28float_29(Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 816 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 816 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($15 + 804 | 0) >> 2])) * Math_fround(-Math_fround(HEAPF32[($15 + 804 | 0) >> 2]))) + Math_fround(0.0))))))), HEAPF32[(wasm2js_i32$0 + 756 | 0) >> 2] = wasm2js_f32$0; + label$21 : { + if (!(Math_fround(HEAPF32[($15 + 756 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$21 + } + HEAPF32[($15 + 760 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + label$22 : { + if (!(Math_fround(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) * Math_fround(1.0499999523162842)) > Math_fround(HEAPF32[($15 + 764 | 0) >> 2]) & 1 | 0)) { + break label$22 + } + HEAPF32[($15 + 764 | 0) >> 2] = Math_fround(HEAPF32[($15 + 760 | 0) >> 2]); + HEAP32[($15 + 864 | 0) >> 2] = 0; + $809 = Math_fround(Math_fround(0 | 0) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0, wasm2js_f32$0 = $809), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $817 = Math_fround(Math_fround(-Math_fround(HEAPF32[($15 + 804 | 0) >> 2])) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0, wasm2js_f32$0 = $817), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $824 = Math_fround(Math_fround(HEAPF32[($15 + 816 | 0) >> 2]) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0, wasm2js_f32$0 = $824), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_i32$1 = Math_fround(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 816 | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 804 | 0) >> 2])))) < Math_fround(0 | 0) & 1 | 0), HEAP32[(wasm2js_i32$0 + 744 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($15 + 740 | 0) >> 2] = 9; + } + } + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(Math_fround(btFabs_28float_29(Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($15 + 812 | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 836 | 0) >> 2]))))))) - Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 848 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 784 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 844 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 780 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 852 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 776 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($15 + 860 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 800 | 0) >> 2]))))))), HEAPF32[(wasm2js_i32$0 + 760 | 0) >> 2] = wasm2js_f32$0; + label$23 : { + if (!(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$23 + } + HEAP32[($15 + 988 | 0) >> 2] = 0; + break label$1; + } + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(btSqrt_28float_29(Math_fround(Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($15 + 836 | 0) >> 2])) * Math_fround(-Math_fround(HEAPF32[($15 + 836 | 0) >> 2]))) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 812 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 812 | 0) >> 2])) + Math_fround(0.0))))))), HEAPF32[(wasm2js_i32$0 + 756 | 0) >> 2] = wasm2js_f32$0; + label$24 : { + if (!(Math_fround(HEAPF32[($15 + 756 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$24 + } + HEAPF32[($15 + 760 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + label$25 : { + if (!(Math_fround(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) * Math_fround(1.0499999523162842)) > Math_fround(HEAPF32[($15 + 764 | 0) >> 2]) & 1 | 0)) { + break label$25 + } + HEAPF32[($15 + 764 | 0) >> 2] = Math_fround(HEAPF32[($15 + 760 | 0) >> 2]); + HEAP32[($15 + 864 | 0) >> 2] = 0; + $921 = Math_fround(Math_fround(HEAPF32[($15 + 812 | 0) >> 2]) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0, wasm2js_f32$0 = $921), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $929 = Math_fround(Math_fround(0 | 0) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0, wasm2js_f32$0 = $929), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $937 = Math_fround(Math_fround(-Math_fround(HEAPF32[($15 + 836 | 0) >> 2])) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0, wasm2js_f32$0 = $937), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_i32$1 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($15 + 812 | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 836 | 0) >> 2])))) < Math_fround(0 | 0) & 1 | 0), HEAP32[(wasm2js_i32$0 + 744 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($15 + 740 | 0) >> 2] = 10; + } + } + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(Math_fround(btFabs_28float_29(Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($15 + 808 | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 832 | 0) >> 2]))))))) - Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 848 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 788 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 840 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 780 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 852 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 772 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($15 + 860 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 796 | 0) >> 2]))))))), HEAPF32[(wasm2js_i32$0 + 760 | 0) >> 2] = wasm2js_f32$0; + label$26 : { + if (!(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$26 + } + HEAP32[($15 + 988 | 0) >> 2] = 0; + break label$1; + } + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(btSqrt_28float_29(Math_fround(Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($15 + 832 | 0) >> 2])) * Math_fround(-Math_fround(HEAPF32[($15 + 832 | 0) >> 2]))) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 808 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 808 | 0) >> 2])) + Math_fround(0.0))))))), HEAPF32[(wasm2js_i32$0 + 756 | 0) >> 2] = wasm2js_f32$0; + label$27 : { + if (!(Math_fround(HEAPF32[($15 + 756 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$27 + } + HEAPF32[($15 + 760 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + label$28 : { + if (!(Math_fround(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) * Math_fround(1.0499999523162842)) > Math_fround(HEAPF32[($15 + 764 | 0) >> 2]) & 1 | 0)) { + break label$28 + } + HEAPF32[($15 + 764 | 0) >> 2] = Math_fround(HEAPF32[($15 + 760 | 0) >> 2]); + HEAP32[($15 + 864 | 0) >> 2] = 0; + $1034 = Math_fround(Math_fround(HEAPF32[($15 + 808 | 0) >> 2]) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0, wasm2js_f32$0 = $1034), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $1042 = Math_fround(Math_fround(0 | 0) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0, wasm2js_f32$0 = $1042), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $1050 = Math_fround(Math_fround(-Math_fround(HEAPF32[($15 + 832 | 0) >> 2])) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0, wasm2js_f32$0 = $1050), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_i32$1 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($15 + 808 | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 832 | 0) >> 2])))) < Math_fround(0 | 0) & 1 | 0), HEAP32[(wasm2js_i32$0 + 744 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($15 + 740 | 0) >> 2] = 11; + } + } + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(Math_fround(btFabs_28float_29(Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($15 + 804 | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 828 | 0) >> 2]))))))) - Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 844 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 788 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 840 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 784 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 852 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 768 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($15 + 860 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 792 | 0) >> 2]))))))), HEAPF32[(wasm2js_i32$0 + 760 | 0) >> 2] = wasm2js_f32$0; + label$29 : { + if (!(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$29 + } + HEAP32[($15 + 988 | 0) >> 2] = 0; + break label$1; + } + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(btSqrt_28float_29(Math_fround(Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($15 + 828 | 0) >> 2])) * Math_fround(-Math_fround(HEAPF32[($15 + 828 | 0) >> 2]))) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 804 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 804 | 0) >> 2])) + Math_fround(0.0))))))), HEAPF32[(wasm2js_i32$0 + 756 | 0) >> 2] = wasm2js_f32$0; + label$30 : { + if (!(Math_fround(HEAPF32[($15 + 756 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$30 + } + HEAPF32[($15 + 760 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + label$31 : { + if (!(Math_fround(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) * Math_fround(1.0499999523162842)) > Math_fround(HEAPF32[($15 + 764 | 0) >> 2]) & 1 | 0)) { + break label$31 + } + HEAPF32[($15 + 764 | 0) >> 2] = Math_fround(HEAPF32[($15 + 760 | 0) >> 2]); + HEAP32[($15 + 864 | 0) >> 2] = 0; + $1147 = Math_fround(Math_fround(HEAPF32[($15 + 804 | 0) >> 2]) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0, wasm2js_f32$0 = $1147), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $1155 = Math_fround(Math_fround(0 | 0) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0, wasm2js_f32$0 = $1155), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $1163 = Math_fround(Math_fround(-Math_fround(HEAPF32[($15 + 828 | 0) >> 2])) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0, wasm2js_f32$0 = $1163), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_i32$1 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($15 + 804 | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 828 | 0) >> 2])))) < Math_fround(0 | 0) & 1 | 0), HEAP32[(wasm2js_i32$0 + 744 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($15 + 740 | 0) >> 2] = 12; + } + } + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(Math_fround(btFabs_28float_29(Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 836 | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($15 + 824 | 0) >> 2]))))))) - Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 848 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 772 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 844 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 768 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 852 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 788 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($15 + 856 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 800 | 0) >> 2]))))))), HEAPF32[(wasm2js_i32$0 + 760 | 0) >> 2] = wasm2js_f32$0; + label$32 : { + if (!(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$32 + } + HEAP32[($15 + 988 | 0) >> 2] = 0; + break label$1; + } + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(btSqrt_28float_29(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($15 + 824 | 0) >> 2])) * Math_fround(-Math_fround(HEAPF32[($15 + 824 | 0) >> 2]))) + Math_fround(Math_fround(HEAPF32[($15 + 836 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 836 | 0) >> 2]))) + Math_fround(0 | 0)))))), HEAPF32[(wasm2js_i32$0 + 756 | 0) >> 2] = wasm2js_f32$0; + label$33 : { + if (!(Math_fround(HEAPF32[($15 + 756 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$33 + } + HEAPF32[($15 + 760 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + label$34 : { + if (!(Math_fround(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) * Math_fround(1.0499999523162842)) > Math_fround(HEAPF32[($15 + 764 | 0) >> 2]) & 1 | 0)) { + break label$34 + } + HEAPF32[($15 + 764 | 0) >> 2] = Math_fround(HEAPF32[($15 + 760 | 0) >> 2]); + HEAP32[($15 + 864 | 0) >> 2] = 0; + $1262 = Math_fround(Math_fround(-Math_fround(HEAPF32[($15 + 824 | 0) >> 2])) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0, wasm2js_f32$0 = $1262), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $1269 = Math_fround(Math_fround(HEAPF32[($15 + 836 | 0) >> 2]) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0, wasm2js_f32$0 = $1269), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $1277 = Math_fround(Math_fround(0 | 0) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0, wasm2js_f32$0 = $1277), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_i32$1 = Math_fround(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 836 | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($15 + 824 | 0) >> 2])))) < Math_fround(0 | 0) & 1 | 0), HEAP32[(wasm2js_i32$0 + 744 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($15 + 740 | 0) >> 2] = 13; + } + } + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(Math_fround(btFabs_28float_29(Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 832 | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($15 + 820 | 0) >> 2]))))))) - Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 848 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 776 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 840 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 768 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 852 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 784 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($15 + 856 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 796 | 0) >> 2]))))))), HEAPF32[(wasm2js_i32$0 + 760 | 0) >> 2] = wasm2js_f32$0; + label$35 : { + if (!(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$35 + } + HEAP32[($15 + 988 | 0) >> 2] = 0; + break label$1; + } + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(btSqrt_28float_29(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($15 + 820 | 0) >> 2])) * Math_fround(-Math_fround(HEAPF32[($15 + 820 | 0) >> 2]))) + Math_fround(Math_fround(HEAPF32[($15 + 832 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 832 | 0) >> 2]))) + Math_fround(0 | 0)))))), HEAPF32[(wasm2js_i32$0 + 756 | 0) >> 2] = wasm2js_f32$0; + label$36 : { + if (!(Math_fround(HEAPF32[($15 + 756 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$36 + } + HEAPF32[($15 + 760 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + label$37 : { + if (!(Math_fround(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) * Math_fround(1.0499999523162842)) > Math_fround(HEAPF32[($15 + 764 | 0) >> 2]) & 1 | 0)) { + break label$37 + } + HEAPF32[($15 + 764 | 0) >> 2] = Math_fround(HEAPF32[($15 + 760 | 0) >> 2]); + HEAP32[($15 + 864 | 0) >> 2] = 0; + $1376 = Math_fround(Math_fround(-Math_fround(HEAPF32[($15 + 820 | 0) >> 2])) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0, wasm2js_f32$0 = $1376), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $1383 = Math_fround(Math_fround(HEAPF32[($15 + 832 | 0) >> 2]) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0, wasm2js_f32$0 = $1383), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $1391 = Math_fround(Math_fround(0 | 0) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0, wasm2js_f32$0 = $1391), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_i32$1 = Math_fround(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 832 | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($15 + 820 | 0) >> 2])))) < Math_fround(0 | 0) & 1 | 0), HEAP32[(wasm2js_i32$0 + 744 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($15 + 740 | 0) >> 2] = 14; + } + } + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(Math_fround(btFabs_28float_29(Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 828 | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($15 + 816 | 0) >> 2]))))))) - Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 844 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 776 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 840 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 772 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 852 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 780 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($15 + 856 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 792 | 0) >> 2]))))))), HEAPF32[(wasm2js_i32$0 + 760 | 0) >> 2] = wasm2js_f32$0; + label$38 : { + if (!(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$38 + } + HEAP32[($15 + 988 | 0) >> 2] = 0; + break label$1; + } + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(btSqrt_28float_29(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($15 + 816 | 0) >> 2])) * Math_fround(-Math_fround(HEAPF32[($15 + 816 | 0) >> 2]))) + Math_fround(Math_fround(HEAPF32[($15 + 828 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 828 | 0) >> 2]))) + Math_fround(0 | 0)))))), HEAPF32[(wasm2js_i32$0 + 756 | 0) >> 2] = wasm2js_f32$0; + label$39 : { + if (!(Math_fround(HEAPF32[($15 + 756 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$39 + } + HEAPF32[($15 + 760 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + label$40 : { + if (!(Math_fround(Math_fround(HEAPF32[($15 + 760 | 0) >> 2]) * Math_fround(1.0499999523162842)) > Math_fround(HEAPF32[($15 + 764 | 0) >> 2]) & 1 | 0)) { + break label$40 + } + HEAPF32[($15 + 764 | 0) >> 2] = Math_fround(HEAPF32[($15 + 760 | 0) >> 2]); + HEAP32[($15 + 864 | 0) >> 2] = 0; + $1490 = Math_fround(Math_fround(-Math_fround(HEAPF32[($15 + 816 | 0) >> 2])) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0, wasm2js_f32$0 = $1490), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $1497 = Math_fround(Math_fround(HEAPF32[($15 + 828 | 0) >> 2]) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0, wasm2js_f32$0 = $1497), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $1505 = Math_fround(Math_fround(0 | 0) / Math_fround(HEAPF32[($15 + 756 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0, wasm2js_f32$0 = $1505), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_i32$1 = Math_fround(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 828 | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float__28_29($15 + 896 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($15 + 816 | 0) >> 2])))) < Math_fround(0 | 0) & 1 | 0), HEAP32[(wasm2js_i32$0 + 744 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($15 + 740 | 0) >> 2] = 15; + } + } + label$41 : { + if (HEAP32[($15 + 740 | 0) >> 2] | 0) { + break label$41 + } + HEAP32[($15 + 988 | 0) >> 2] = 0; + break label$1; + } + label$42 : { + label$43 : { + if (!((HEAP32[($15 + 864 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$43 + } + $1542 = Math_fround(HEAPF32[(HEAP32[($15 + 864 | 0) >> 2] | 0) >> 2]); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($15 + 960 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $1542), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $1546 = Math_fround(HEAPF32[((HEAP32[($15 + 864 | 0) >> 2] | 0) + 16 | 0) >> 2]); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($15 + 960 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $1546), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $1550 = Math_fround(HEAPF32[((HEAP32[($15 + 864 | 0) >> 2] | 0) + 32 | 0) >> 2]); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($15 + 960 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $1550), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + break label$42; + } + $1558 = Math_fround(dDOT_28float_20const__2c_20float_20const__29(HEAP32[($15 + 980 | 0) >> 2] | 0 | 0, btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0 | 0)); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($15 + 960 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $1558), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $1568 = Math_fround(dDOT_28float_20const__2c_20float_20const__29((HEAP32[($15 + 980 | 0) >> 2] | 0) + 16 | 0 | 0, btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0 | 0)); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($15 + 960 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $1568), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $1578 = Math_fround(dDOT_28float_20const__2c_20float_20const__29((HEAP32[($15 + 980 | 0) >> 2] | 0) + 32 | 0 | 0, btVector3__operator_20float__28_29($15 + 880 | 0 | 0) | 0 | 0)); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($15 + 960 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $1578), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + } + label$44 : { + if (!(HEAP32[($15 + 744 | 0) >> 2] | 0)) { + break label$44 + } + $1585 = Math_fround(-Math_fround(HEAPF32[(btVector3__operator_20float__28_29(HEAP32[($15 + 960 | 0) >> 2] | 0 | 0) | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($15 + 960 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $1585), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $1591 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float__28_29(HEAP32[($15 + 960 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($15 + 960 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $1591), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $1597 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float__28_29(HEAP32[($15 + 960 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($15 + 960 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $1597), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + } + HEAPF32[(HEAP32[($15 + 956 | 0) >> 2] | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[($15 + 764 | 0) >> 2])); + label$45 : { + if (!((HEAP32[($15 + 740 | 0) >> 2] | 0 | 0) > (6 | 0) & 1 | 0)) { + break label$45 + } + btVector3__btVector3_28_29($15 + 704 | 0 | 0) | 0; + HEAP32[($15 + 752 | 0) >> 2] = 0; + label$46 : { + label$47 : while (1) { + if (!((HEAP32[($15 + 752 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$46 + } + $1627 = Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($15 + 984 | 0) >> 2] | 0 | 0) | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($15 + 704 | 0 | 0) | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $1627), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP32[($15 + 752 | 0) >> 2] = (HEAP32[($15 + 752 | 0) >> 2] | 0) + 1 | 0; + continue label$47; + }; + } + HEAP32[($15 + 748 | 0) >> 2] = 0; + label$48 : { + label$49 : while (1) { + if (!((HEAP32[($15 + 748 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$48 + } + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(dDOT14_28float_20const__2c_20float_20const__29(btVector3__operator_20float__28_29(HEAP32[($15 + 960 | 0) >> 2] | 0 | 0) | 0 | 0, (HEAP32[($15 + 980 | 0) >> 2] | 0) + ((HEAP32[($15 + 748 | 0) >> 2] | 0) << 2 | 0) | 0 | 0)) > Math_fround(0 | 0) & 1 | 0 ? Math_fround(1.0) : Math_fround(-1.0)), HEAPF32[(wasm2js_i32$0 + 700 | 0) >> 2] = wasm2js_f32$0; + HEAP32[($15 + 752 | 0) >> 2] = 0; + label$50 : { + label$51 : while (1) { + if (!((HEAP32[($15 + 752 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$50 + } + $1680 = Math_fround(Math_fround(HEAPF32[($15 + 700 | 0) >> 2]) * Math_fround(HEAPF32[(($15 + 852 | 0) + ((HEAP32[($15 + 748 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])); + $1690 = Math_fround(HEAPF32[((HEAP32[($15 + 980 | 0) >> 2] | 0) + ((((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) + (HEAP32[($15 + 748 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2]); + $1698 = (btVector3__operator_20float__28_29($15 + 704 | 0 | 0) | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0; + HEAPF32[$1698 >> 2] = Math_fround(Math_fround($1680 * $1690) + Math_fround(HEAPF32[$1698 >> 2])); + HEAP32[($15 + 752 | 0) >> 2] = (HEAP32[($15 + 752 | 0) >> 2] | 0) + 1 | 0; + continue label$51; + }; + } + HEAP32[($15 + 748 | 0) >> 2] = (HEAP32[($15 + 748 | 0) >> 2] | 0) + 1 | 0; + continue label$49; + }; + } + btVector3__btVector3_28_29($15 + 684 | 0 | 0) | 0; + HEAP32[($15 + 752 | 0) >> 2] = 0; + label$52 : { + label$53 : while (1) { + if (!((HEAP32[($15 + 752 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$52 + } + $1725 = Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($15 + 972 | 0) >> 2] | 0 | 0) | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($15 + 684 | 0 | 0) | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $1725), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP32[($15 + 752 | 0) >> 2] = (HEAP32[($15 + 752 | 0) >> 2] | 0) + 1 | 0; + continue label$53; + }; + } + HEAP32[($15 + 748 | 0) >> 2] = 0; + label$54 : { + label$55 : while (1) { + if (!((HEAP32[($15 + 748 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$54 + } + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(dDOT14_28float_20const__2c_20float_20const__29(btVector3__operator_20float__28_29(HEAP32[($15 + 960 | 0) >> 2] | 0 | 0) | 0 | 0, (HEAP32[($15 + 968 | 0) >> 2] | 0) + ((HEAP32[($15 + 748 | 0) >> 2] | 0) << 2 | 0) | 0 | 0)) > Math_fround(0 | 0) & 1 | 0 ? Math_fround(-1.0) : Math_fround(1.0)), HEAPF32[(wasm2js_i32$0 + 700 | 0) >> 2] = wasm2js_f32$0; + HEAP32[($15 + 752 | 0) >> 2] = 0; + label$56 : { + label$57 : while (1) { + if (!((HEAP32[($15 + 752 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$56 + } + $1778 = Math_fround(Math_fround(HEAPF32[($15 + 700 | 0) >> 2]) * Math_fround(HEAPF32[(($15 + 840 | 0) + ((HEAP32[($15 + 748 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])); + $1788 = Math_fround(HEAPF32[((HEAP32[($15 + 968 | 0) >> 2] | 0) + ((((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) + (HEAP32[($15 + 748 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2]); + $1796 = (btVector3__operator_20float__28_29($15 + 684 | 0 | 0) | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0; + HEAPF32[$1796 >> 2] = Math_fround(Math_fround($1778 * $1788) + Math_fround(HEAPF32[$1796 >> 2])); + HEAP32[($15 + 752 | 0) >> 2] = (HEAP32[($15 + 752 | 0) >> 2] | 0) + 1 | 0; + continue label$57; + }; + } + HEAP32[($15 + 748 | 0) >> 2] = (HEAP32[($15 + 748 | 0) >> 2] | 0) + 1 | 0; + continue label$55; + }; + } + btVector3__btVector3_28_29($15 + 660 | 0 | 0) | 0; + btVector3__btVector3_28_29($15 + 644 | 0 | 0) | 0; + HEAP32[($15 + 752 | 0) >> 2] = 0; + label$58 : { + label$59 : while (1) { + if (!((HEAP32[($15 + 752 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$58 + } + $1833 = Math_fround(HEAPF32[((HEAP32[($15 + 980 | 0) >> 2] | 0) + (((((HEAP32[($15 + 740 | 0) >> 2] | 0) - 7 | 0 | 0) / (3 | 0) | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0) << 2 | 0) | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($15 + 660 | 0 | 0) | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $1833), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP32[($15 + 752 | 0) >> 2] = (HEAP32[($15 + 752 | 0) >> 2] | 0) + 1 | 0; + continue label$59; + }; + } + HEAP32[($15 + 752 | 0) >> 2] = 0; + label$60 : { + label$61 : while (1) { + if (!((HEAP32[($15 + 752 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$60 + } + $1866 = Math_fround(HEAPF32[((HEAP32[($15 + 968 | 0) >> 2] | 0) + (((((HEAP32[($15 + 740 | 0) >> 2] | 0) - 7 | 0 | 0) % (3 | 0) | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0) << 2 | 0) | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($15 + 644 | 0 | 0) | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $1866), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP32[($15 + 752 | 0) >> 2] = (HEAP32[($15 + 752 | 0) >> 2] | 0) + 1 | 0; + continue label$61; + }; + } + dLineClosestApproach_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float__2c_20float__29($15 + 704 | 0 | 0, $15 + 660 | 0 | 0, $15 + 684 | 0 | 0, $15 + 644 | 0 | 0, $15 + 680 | 0 | 0, $15 + 676 | 0 | 0); + HEAP32[($15 + 752 | 0) >> 2] = 0; + label$62 : { + label$63 : while (1) { + if (!((HEAP32[($15 + 752 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$62 + } + $1912 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 660 | 0 | 0) | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + $1913 = Math_fround(HEAPF32[($15 + 680 | 0) >> 2]); + $1921 = (btVector3__operator_20float__28_29($15 + 704 | 0 | 0) | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0; + HEAPF32[$1921 >> 2] = Math_fround(Math_fround($1912 * $1913) + Math_fround(HEAPF32[$1921 >> 2])); + HEAP32[($15 + 752 | 0) >> 2] = (HEAP32[($15 + 752 | 0) >> 2] | 0) + 1 | 0; + continue label$63; + }; + } + HEAP32[($15 + 752 | 0) >> 2] = 0; + label$64 : { + label$65 : while (1) { + if (!((HEAP32[($15 + 752 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$64 + } + $1944 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 644 | 0 | 0) | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + $1945 = Math_fround(HEAPF32[($15 + 676 | 0) >> 2]); + $1953 = (btVector3__operator_20float__28_29($15 + 684 | 0 | 0) | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0; + HEAPF32[$1953 >> 2] = Math_fround(Math_fround($1944 * $1945) + Math_fround(HEAPF32[$1953 >> 2])); + HEAP32[($15 + 752 | 0) >> 2] = (HEAP32[($15 + 752 | 0) >> 2] | 0) + 1 | 0; + continue label$65; + }; + } + btVector3__btVector3_28_29($15 + 628 | 0 | 0) | 0; + $1963 = HEAP32[($15 + 936 | 0) >> 2] | 0; + operator__28btVector3_20const__29($15 + 612 | 0 | 0, HEAP32[($15 + 960 | 0) >> 2] | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$1963 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($1963, $15 + 612 | 0, $15 + 684 | 0, Math_fround(-Math_fround(HEAPF32[(HEAP32[($15 + 956 | 0) >> 2] | 0) >> 2]))); + HEAP32[(HEAP32[($15 + 952 | 0) >> 2] | 0) >> 2] = HEAP32[($15 + 740 | 0) >> 2] | 0; + HEAP32[($15 + 988 | 0) >> 2] = 1; + break label$1; + } + label$66 : { + label$67 : { + if (!((HEAP32[($15 + 740 | 0) >> 2] | 0 | 0) <= (3 | 0) & 1 | 0)) { + break label$67 + } + HEAP32[($15 + 608 | 0) >> 2] = HEAP32[($15 + 980 | 0) >> 2] | 0; + HEAP32[($15 + 604 | 0) >> 2] = HEAP32[($15 + 968 | 0) >> 2] | 0; + (wasm2js_i32$0 = $15, wasm2js_i32$1 = btVector3__operator_20float_20const__28_29_20const(HEAP32[($15 + 984 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 600 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $15, wasm2js_i32$1 = btVector3__operator_20float_20const__28_29_20const(HEAP32[($15 + 972 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 596 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($15 + 592 | 0) >> 2] = $15 + 852 | 0; + HEAP32[($15 + 588 | 0) >> 2] = $15 + 840 | 0; + break label$66; + } + HEAP32[($15 + 608 | 0) >> 2] = HEAP32[($15 + 968 | 0) >> 2] | 0; + HEAP32[($15 + 604 | 0) >> 2] = HEAP32[($15 + 980 | 0) >> 2] | 0; + (wasm2js_i32$0 = $15, wasm2js_i32$1 = btVector3__operator_20float_20const__28_29_20const(HEAP32[($15 + 972 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 600 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $15, wasm2js_i32$1 = btVector3__operator_20float_20const__28_29_20const(HEAP32[($15 + 984 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 596 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($15 + 592 | 0) >> 2] = $15 + 840 | 0; + HEAP32[($15 + 588 | 0) >> 2] = $15 + 852 | 0; + } + btVector3__btVector3_28_29($15 + 572 | 0 | 0) | 0; + btVector3__btVector3_28_29($15 + 556 | 0 | 0) | 0; + btVector3__btVector3_28_29($15 + 540 | 0 | 0) | 0; + label$68 : { + label$69 : { + if (!((HEAP32[($15 + 740 | 0) >> 2] | 0 | 0) <= (3 | 0) & 1 | 0)) { + break label$69 + } + $2031 = Math_fround(HEAPF32[(btVector3__operator_20float__28_29(HEAP32[($15 + 960 | 0) >> 2] | 0 | 0) | 0) >> 2]); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 572 | 0 | 0) | 0, wasm2js_f32$0 = $2031), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $2038 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29(HEAP32[($15 + 960 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2]); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 572 | 0 | 0) | 0, wasm2js_f32$0 = $2038), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $2045 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29(HEAP32[($15 + 960 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2]); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 572 | 0 | 0) | 0, wasm2js_f32$0 = $2045), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + break label$68; + } + $2053 = Math_fround(-Math_fround(HEAPF32[(btVector3__operator_20float__28_29(HEAP32[($15 + 960 | 0) >> 2] | 0 | 0) | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 572 | 0 | 0) | 0, wasm2js_f32$0 = $2053), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $2061 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float__28_29(HEAP32[($15 + 960 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 572 | 0 | 0) | 0, wasm2js_f32$0 = $2061), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $2069 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float__28_29(HEAP32[($15 + 960 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 572 | 0 | 0) | 0, wasm2js_f32$0 = $2069), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + } + $2079 = Math_fround(dDOT41_28float_20const__2c_20float_20const__29(HEAP32[($15 + 604 | 0) >> 2] | 0 | 0, btVector3__operator_20float__28_29($15 + 572 | 0 | 0) | 0 | 0)); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 556 | 0 | 0) | 0, wasm2js_f32$0 = $2079), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $2091 = Math_fround(dDOT41_28float_20const__2c_20float_20const__29((HEAP32[($15 + 604 | 0) >> 2] | 0) + 4 | 0 | 0, btVector3__operator_20float__28_29($15 + 572 | 0 | 0) | 0 | 0)); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 556 | 0 | 0) | 0, wasm2js_f32$0 = $2091), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $2103 = Math_fround(dDOT41_28float_20const__2c_20float_20const__29((HEAP32[($15 + 604 | 0) >> 2] | 0) + 8 | 0 | 0, btVector3__operator_20float__28_29($15 + 572 | 0 | 0) | 0 | 0)); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 556 | 0 | 0) | 0, wasm2js_f32$0 = $2103), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + $2113 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float__28_29($15 + 556 | 0 | 0) | 0) >> 2])))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 540 | 0 | 0) | 0, wasm2js_f32$0 = $2113), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $2123 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 556 | 0 | 0) | 0) + 4 | 0) >> 2])))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 540 | 0 | 0) | 0, wasm2js_f32$0 = $2123), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $2133 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 556 | 0 | 0) | 0) + 8 | 0) >> 2])))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($15 + 540 | 0 | 0) | 0, wasm2js_f32$0 = $2133), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + label$70 : { + label$71 : { + if (!(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 540 | 0 | 0) | 0) + 4 | 0) >> 2]) > Math_fround(HEAPF32[(btVector3__operator_20float__28_29($15 + 540 | 0 | 0) | 0) >> 2]) & 1 | 0)) { + break label$71 + } + label$72 : { + label$73 : { + if (!(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 540 | 0 | 0) | 0) + 4 | 0) >> 2]) > Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 540 | 0 | 0) | 0) + 8 | 0) >> 2]) & 1 | 0)) { + break label$73 + } + HEAP32[($15 + 532 | 0) >> 2] = 0; + HEAP32[($15 + 536 | 0) >> 2] = 1; + HEAP32[($15 + 528 | 0) >> 2] = 2; + break label$72; + } + HEAP32[($15 + 532 | 0) >> 2] = 0; + HEAP32[($15 + 528 | 0) >> 2] = 1; + HEAP32[($15 + 536 | 0) >> 2] = 2; + } + break label$70; + } + label$74 : { + label$75 : { + if (!(Math_fround(HEAPF32[(btVector3__operator_20float__28_29($15 + 540 | 0 | 0) | 0) >> 2]) > Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 540 | 0 | 0) | 0) + 8 | 0) >> 2]) & 1 | 0)) { + break label$75 + } + HEAP32[($15 + 536 | 0) >> 2] = 0; + HEAP32[($15 + 532 | 0) >> 2] = 1; + HEAP32[($15 + 528 | 0) >> 2] = 2; + break label$74; + } + HEAP32[($15 + 532 | 0) >> 2] = 0; + HEAP32[($15 + 528 | 0) >> 2] = 1; + HEAP32[($15 + 536 | 0) >> 2] = 2; + } + } + btVector3__btVector3_28_29($15 + 512 | 0 | 0) | 0; + label$76 : { + label$77 : { + if (!(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($15 + 556 | 0 | 0) | 0) + ((HEAP32[($15 + 536 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$77 + } + HEAP32[($15 + 752 | 0) >> 2] = 0; + label$78 : { + label$79 : while (1) { + if (!((HEAP32[($15 + 752 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$78 + } + $2244 = Math_fround(Math_fround(Math_fround(HEAPF32[((HEAP32[($15 + 588 | 0) >> 2] | 0) + ((HEAP32[($15 + 536 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($15 + 604 | 0) >> 2] | 0) + ((((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) + (HEAP32[($15 + 536 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[((HEAP32[($15 + 596 | 0) >> 2] | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) - Math_fround(HEAPF32[((HEAP32[($15 + 600 | 0) >> 2] | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]))); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($15 + 512 | 0 | 0) | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $2244), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP32[($15 + 752 | 0) >> 2] = (HEAP32[($15 + 752 | 0) >> 2] | 0) + 1 | 0; + continue label$79; + }; + } + break label$76; + } + HEAP32[($15 + 752 | 0) >> 2] = 0; + label$80 : { + label$81 : while (1) { + if (!((HEAP32[($15 + 752 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$80 + } + $2295 = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[((HEAP32[($15 + 588 | 0) >> 2] | 0) + ((HEAP32[($15 + 536 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])) * Math_fround(HEAPF32[((HEAP32[($15 + 604 | 0) >> 2] | 0) + ((((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) + (HEAP32[($15 + 536 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[((HEAP32[($15 + 596 | 0) >> 2] | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) - Math_fround(HEAPF32[((HEAP32[($15 + 600 | 0) >> 2] | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]))); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($15 + 512 | 0 | 0) | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $2295), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP32[($15 + 752 | 0) >> 2] = (HEAP32[($15 + 752 | 0) >> 2] | 0) + 1 | 0; + continue label$81; + }; + } + } + label$82 : { + label$83 : { + if (!((HEAP32[($15 + 740 | 0) >> 2] | 0 | 0) <= (3 | 0) & 1 | 0)) { + break label$83 + } + HEAP32[($15 + 508 | 0) >> 2] = (HEAP32[($15 + 740 | 0) >> 2] | 0) - 1 | 0; + break label$82; + } + HEAP32[($15 + 508 | 0) >> 2] = (HEAP32[($15 + 740 | 0) >> 2] | 0) - 4 | 0; + } + label$84 : { + label$85 : { + if (HEAP32[($15 + 508 | 0) >> 2] | 0) { + break label$85 + } + HEAP32[($15 + 504 | 0) >> 2] = 1; + HEAP32[($15 + 500 | 0) >> 2] = 2; + break label$84; + } + label$86 : { + label$87 : { + if (!((HEAP32[($15 + 508 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$87 + } + HEAP32[($15 + 504 | 0) >> 2] = 0; + HEAP32[($15 + 500 | 0) >> 2] = 2; + break label$86; + } + HEAP32[($15 + 504 | 0) >> 2] = 0; + HEAP32[($15 + 500 | 0) >> 2] = 1; + } + } + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(dDOT14_28float_20const__2c_20float_20const__29(btVector3__operator_20float__28_29($15 + 512 | 0 | 0) | 0 | 0, (HEAP32[($15 + 608 | 0) >> 2] | 0) + ((HEAP32[($15 + 504 | 0) >> 2] | 0) << 2 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 460 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(dDOT14_28float_20const__2c_20float_20const__29(btVector3__operator_20float__28_29($15 + 512 | 0 | 0) | 0 | 0, (HEAP32[($15 + 608 | 0) >> 2] | 0) + ((HEAP32[($15 + 500 | 0) >> 2] | 0) << 2 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 456 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(dDOT44_28float_20const__2c_20float_20const__29((HEAP32[($15 + 608 | 0) >> 2] | 0) + ((HEAP32[($15 + 504 | 0) >> 2] | 0) << 2 | 0) | 0 | 0, (HEAP32[($15 + 604 | 0) >> 2] | 0) + ((HEAP32[($15 + 532 | 0) >> 2] | 0) << 2 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 452 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(dDOT44_28float_20const__2c_20float_20const__29((HEAP32[($15 + 608 | 0) >> 2] | 0) + ((HEAP32[($15 + 504 | 0) >> 2] | 0) << 2 | 0) | 0 | 0, (HEAP32[($15 + 604 | 0) >> 2] | 0) + ((HEAP32[($15 + 528 | 0) >> 2] | 0) << 2 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 448 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(dDOT44_28float_20const__2c_20float_20const__29((HEAP32[($15 + 608 | 0) >> 2] | 0) + ((HEAP32[($15 + 500 | 0) >> 2] | 0) << 2 | 0) | 0 | 0, (HEAP32[($15 + 604 | 0) >> 2] | 0) + ((HEAP32[($15 + 532 | 0) >> 2] | 0) << 2 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 444 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(dDOT44_28float_20const__2c_20float_20const__29((HEAP32[($15 + 608 | 0) >> 2] | 0) + ((HEAP32[($15 + 500 | 0) >> 2] | 0) << 2 | 0) | 0 | 0, (HEAP32[($15 + 604 | 0) >> 2] | 0) + ((HEAP32[($15 + 528 | 0) >> 2] | 0) << 2 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 440 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($15 + 436 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 452 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($15 + 588 | 0) >> 2] | 0) + ((HEAP32[($15 + 532 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])); + HEAPF32[($15 + 432 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 444 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($15 + 588 | 0) >> 2] | 0) + ((HEAP32[($15 + 532 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])); + HEAPF32[($15 + 428 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 448 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($15 + 588 | 0) >> 2] | 0) + ((HEAP32[($15 + 528 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])); + HEAPF32[($15 + 424 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 440 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($15 + 588 | 0) >> 2] | 0) + ((HEAP32[($15 + 528 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])); + HEAPF32[($15 + 464 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 460 | 0) >> 2]) - Math_fround(HEAPF32[($15 + 436 | 0) >> 2])) - Math_fround(HEAPF32[($15 + 428 | 0) >> 2])); + HEAPF32[($15 + 468 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 456 | 0) >> 2]) - Math_fround(HEAPF32[($15 + 432 | 0) >> 2])) - Math_fround(HEAPF32[($15 + 424 | 0) >> 2])); + HEAPF32[($15 + 472 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 460 | 0) >> 2]) - Math_fround(HEAPF32[($15 + 436 | 0) >> 2])) + Math_fround(HEAPF32[($15 + 428 | 0) >> 2])); + HEAPF32[($15 + 476 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 456 | 0) >> 2]) - Math_fround(HEAPF32[($15 + 432 | 0) >> 2])) + Math_fround(HEAPF32[($15 + 424 | 0) >> 2])); + HEAPF32[($15 + 480 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 460 | 0) >> 2]) + Math_fround(HEAPF32[($15 + 436 | 0) >> 2])) + Math_fround(HEAPF32[($15 + 428 | 0) >> 2])); + HEAPF32[($15 + 484 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 456 | 0) >> 2]) + Math_fround(HEAPF32[($15 + 432 | 0) >> 2])) + Math_fround(HEAPF32[($15 + 424 | 0) >> 2])); + HEAPF32[($15 + 488 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 460 | 0) >> 2]) + Math_fround(HEAPF32[($15 + 436 | 0) >> 2])) - Math_fround(HEAPF32[($15 + 428 | 0) >> 2])); + HEAPF32[($15 + 492 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 456 | 0) >> 2]) + Math_fround(HEAPF32[($15 + 432 | 0) >> 2])) - Math_fround(HEAPF32[($15 + 424 | 0) >> 2])); + HEAPF32[($15 + 416 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($15 + 592 | 0) >> 2] | 0) + ((HEAP32[($15 + 504 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + HEAPF32[($15 + 420 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($15 + 592 | 0) >> 2] | 0) + ((HEAP32[($15 + 500 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + (wasm2js_i32$0 = $15, wasm2js_i32$1 = intersectRectQuad2_28float__2c_20float__2c_20float__29($15 + 416 | 0 | 0, $15 + 464 | 0 | 0, $15 + 352 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 348 | 0) >> 2] = wasm2js_i32$1; + label$88 : { + if (!((HEAP32[($15 + 348 | 0) >> 2] | 0 | 0) < (1 | 0) & 1 | 0)) { + break label$88 + } + HEAP32[($15 + 988 | 0) >> 2] = 0; + break label$1; + } + HEAPF32[($15 + 204 | 0) >> 2] = Math_fround(Math_fround(1.0) / Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 452 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 440 | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[($15 + 448 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 444 | 0) >> 2]))))); + HEAPF32[($15 + 452 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 452 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 204 | 0) >> 2])); + HEAPF32[($15 + 448 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 448 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 204 | 0) >> 2])); + HEAPF32[($15 + 444 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 444 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 204 | 0) >> 2])); + HEAPF32[($15 + 440 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 440 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 204 | 0) >> 2])); + HEAP32[($15 + 200 | 0) >> 2] = 0; + HEAP32[($15 + 748 | 0) >> 2] = 0; + label$89 : { + label$90 : while (1) { + if (!((HEAP32[($15 + 748 | 0) >> 2] | 0 | 0) < (HEAP32[($15 + 348 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$89 + } + HEAPF32[($15 + 196 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 440 | 0) >> 2]) * Math_fround(Math_fround(HEAPF32[(($15 + 352 | 0) + (((HEAP32[($15 + 748 | 0) >> 2] | 0) << 1 | 0) << 2 | 0) | 0) >> 2]) - Math_fround(HEAPF32[($15 + 460 | 0) >> 2]))) + Math_fround(-Math_fround(Math_fround(HEAPF32[($15 + 448 | 0) >> 2]) * Math_fround(Math_fround(HEAPF32[(($15 + 352 | 0) + ((((HEAP32[($15 + 748 | 0) >> 2] | 0) << 1 | 0) + 1 | 0) << 2 | 0) | 0) >> 2]) - Math_fround(HEAPF32[($15 + 456 | 0) >> 2]))))); + HEAPF32[($15 + 192 | 0) >> 2] = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($15 + 444 | 0) >> 2])) * Math_fround(Math_fround(HEAPF32[(($15 + 352 | 0) + (((HEAP32[($15 + 748 | 0) >> 2] | 0) << 1 | 0) << 2 | 0) | 0) >> 2]) - Math_fround(HEAPF32[($15 + 460 | 0) >> 2]))) + Math_fround(Math_fround(HEAPF32[($15 + 452 | 0) >> 2]) * Math_fround(Math_fround(HEAPF32[(($15 + 352 | 0) + ((((HEAP32[($15 + 748 | 0) >> 2] | 0) << 1 | 0) + 1 | 0) << 2 | 0) | 0) >> 2]) - Math_fround(HEAPF32[($15 + 456 | 0) >> 2])))); + HEAP32[($15 + 752 | 0) >> 2] = 0; + label$91 : { + label$92 : while (1) { + if (!((HEAP32[($15 + 752 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$91 + } + $2606 = btVector3__operator_20float__28_29($15 + 512 | 0 | 0) | 0; + HEAPF32[(($15 + 240 | 0) + ((Math_imul(HEAP32[($15 + 200 | 0) >> 2] | 0, 3) + (HEAP32[($15 + 752 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 192 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($15 + 604 | 0) >> 2] | 0) + ((((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) + (HEAP32[($15 + 528 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 196 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($15 + 604 | 0) >> 2] | 0) + ((((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) + (HEAP32[($15 + 532 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2])) + Math_fround(HEAPF32[($2606 + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]))); + HEAP32[($15 + 752 | 0) >> 2] = (HEAP32[($15 + 752 | 0) >> 2] | 0) + 1 | 0; + continue label$92; + }; + } + $2672 = Math_fround(Math_fround(HEAPF32[((HEAP32[($15 + 592 | 0) >> 2] | 0) + ((HEAP32[($15 + 508 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) - Math_fround(dDOT_28float_20const__2c_20float_20const__29(btVector3__operator_20float__28_29($15 + 572 | 0 | 0) | 0 | 0, ($15 + 240 | 0) + (Math_imul(HEAP32[($15 + 200 | 0) >> 2] | 0, 3) << 2 | 0) | 0 | 0))); + HEAPF32[(($15 + 208 | 0) + ((HEAP32[($15 + 200 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = $2672; + label$93 : { + if (!(Math_fround(HEAPF32[(($15 + 208 | 0) + ((HEAP32[($15 + 200 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) >= Math_fround(0 | 0) & 1 | 0)) { + break label$93 + } + HEAPF32[(($15 + 352 | 0) + (((HEAP32[($15 + 200 | 0) >> 2] | 0) << 1 | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[(($15 + 352 | 0) + (((HEAP32[($15 + 748 | 0) >> 2] | 0) << 1 | 0) << 2 | 0) | 0) >> 2]); + HEAPF32[(($15 + 352 | 0) + ((((HEAP32[($15 + 200 | 0) >> 2] | 0) << 1 | 0) + 1 | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[(($15 + 352 | 0) + ((((HEAP32[($15 + 748 | 0) >> 2] | 0) << 1 | 0) + 1 | 0) << 2 | 0) | 0) >> 2]); + HEAP32[($15 + 200 | 0) >> 2] = (HEAP32[($15 + 200 | 0) >> 2] | 0) + 1 | 0; + } + HEAP32[($15 + 748 | 0) >> 2] = (HEAP32[($15 + 748 | 0) >> 2] | 0) + 1 | 0; + continue label$90; + }; + } + label$94 : { + if (!((HEAP32[($15 + 200 | 0) >> 2] | 0 | 0) < (1 | 0) & 1 | 0)) { + break label$94 + } + HEAP32[($15 + 988 | 0) >> 2] = 0; + break label$1; + } + label$95 : { + if (!((HEAP32[($15 + 948 | 0) >> 2] | 0 | 0) > (HEAP32[($15 + 200 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$95 + } + HEAP32[($15 + 948 | 0) >> 2] = HEAP32[($15 + 200 | 0) >> 2] | 0; + } + label$96 : { + if (!((HEAP32[($15 + 948 | 0) >> 2] | 0 | 0) < (1 | 0) & 1 | 0)) { + break label$96 + } + HEAP32[($15 + 948 | 0) >> 2] = 1; + } + label$97 : { + label$98 : { + if (!((HEAP32[($15 + 200 | 0) >> 2] | 0 | 0) <= (HEAP32[($15 + 948 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$98 + } + label$99 : { + label$100 : { + if (!((HEAP32[($15 + 740 | 0) >> 2] | 0 | 0) < (4 | 0) & 1 | 0)) { + break label$100 + } + HEAP32[($15 + 748 | 0) >> 2] = 0; + label$101 : { + label$102 : while (1) { + if (!((HEAP32[($15 + 748 | 0) >> 2] | 0 | 0) < (HEAP32[($15 + 200 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$101 + } + btVector3__btVector3_28_29($15 + 176 | 0 | 0) | 0; + HEAP32[($15 + 752 | 0) >> 2] = 0; + label$103 : { + label$104 : while (1) { + if (!((HEAP32[($15 + 752 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$103 + } + $2816 = Math_fround(Math_fround(HEAPF32[(($15 + 240 | 0) + ((Math_imul(HEAP32[($15 + 748 | 0) >> 2] | 0, 3) + (HEAP32[($15 + 752 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2]) + Math_fround(HEAPF32[((HEAP32[($15 + 600 | 0) >> 2] | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($15 + 176 | 0 | 0) | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $2816), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP32[($15 + 752 | 0) >> 2] = (HEAP32[($15 + 752 | 0) >> 2] | 0) + 1 | 0; + continue label$104; + }; + } + $2828 = HEAP32[($15 + 936 | 0) >> 2] | 0; + operator__28btVector3_20const__29($15 + 160 | 0 | 0, HEAP32[($15 + 960 | 0) >> 2] | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$2828 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($2828, $15 + 160 | 0, $15 + 176 | 0, Math_fround(-Math_fround(HEAPF32[(($15 + 208 | 0) + ((HEAP32[($15 + 748 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]))); + HEAP32[($15 + 748 | 0) >> 2] = (HEAP32[($15 + 748 | 0) >> 2] | 0) + 1 | 0; + continue label$102; + }; + } + break label$99; + } + HEAP32[($15 + 748 | 0) >> 2] = 0; + label$105 : { + label$106 : while (1) { + if (!((HEAP32[($15 + 748 | 0) >> 2] | 0 | 0) < (HEAP32[($15 + 200 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$105 + } + btVector3__btVector3_28_29($15 + 144 | 0 | 0) | 0; + HEAP32[($15 + 752 | 0) >> 2] = 0; + label$107 : { + label$108 : while (1) { + if (!((HEAP32[($15 + 752 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$107 + } + $2890 = Math_fround(Math_fround(HEAPF32[(($15 + 240 | 0) + ((Math_imul(HEAP32[($15 + 748 | 0) >> 2] | 0, 3) + (HEAP32[($15 + 752 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2]) + Math_fround(HEAPF32[((HEAP32[($15 + 600 | 0) >> 2] | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])); + $2908 = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float__28_29(HEAP32[($15 + 960 | 0) >> 2] | 0 | 0) | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])) * Math_fround(HEAPF32[(($15 + 208 | 0) + ((HEAP32[($15 + 748 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])) + $2890); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($15 + 144 | 0 | 0) | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $2908), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP32[($15 + 752 | 0) >> 2] = (HEAP32[($15 + 752 | 0) >> 2] | 0) + 1 | 0; + continue label$108; + }; + } + $2920 = HEAP32[($15 + 936 | 0) >> 2] | 0; + operator__28btVector3_20const__29($15 + 128 | 0 | 0, HEAP32[($15 + 960 | 0) >> 2] | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$2920 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($2920, $15 + 128 | 0, $15 + 144 | 0, Math_fround(-Math_fround(HEAPF32[(($15 + 208 | 0) + ((HEAP32[($15 + 748 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]))); + HEAP32[($15 + 748 | 0) >> 2] = (HEAP32[($15 + 748 | 0) >> 2] | 0) + 1 | 0; + continue label$106; + }; + } + } + break label$97; + } + HEAP32[($15 + 124 | 0) >> 2] = 0; + HEAPF32[($15 + 120 | 0) >> 2] = Math_fround(HEAPF32[($15 + 208 | 0) >> 2]); + HEAP32[($15 + 752 | 0) >> 2] = 1; + label$109 : { + label$110 : while (1) { + if (!((HEAP32[($15 + 752 | 0) >> 2] | 0 | 0) < (HEAP32[($15 + 200 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$109 + } + label$111 : { + if (!(Math_fround(HEAPF32[(($15 + 208 | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) > Math_fround(HEAPF32[($15 + 120 | 0) >> 2]) & 1 | 0)) { + break label$111 + } + HEAPF32[($15 + 120 | 0) >> 2] = Math_fround(HEAPF32[(($15 + 208 | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + HEAP32[($15 + 124 | 0) >> 2] = HEAP32[($15 + 752 | 0) >> 2] | 0; + } + HEAP32[($15 + 752 | 0) >> 2] = (HEAP32[($15 + 752 | 0) >> 2] | 0) + 1 | 0; + continue label$110; + }; + } + cullPoints2_28int_2c_20float__2c_20int_2c_20int_2c_20int__29(HEAP32[($15 + 200 | 0) >> 2] | 0 | 0, $15 + 352 | 0 | 0, HEAP32[($15 + 948 | 0) >> 2] | 0 | 0, HEAP32[($15 + 124 | 0) >> 2] | 0 | 0, $15 + 80 | 0 | 0); + HEAP32[($15 + 748 | 0) >> 2] = 0; + label$112 : { + label$113 : while (1) { + if (!((HEAP32[($15 + 748 | 0) >> 2] | 0 | 0) < (HEAP32[($15 + 948 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$112 + } + btVector3__btVector3_28_29($15 + 64 | 0 | 0) | 0; + HEAP32[($15 + 752 | 0) >> 2] = 0; + label$114 : { + label$115 : while (1) { + if (!((HEAP32[($15 + 752 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$114 + } + $3032 = Math_fround(Math_fround(HEAPF32[(($15 + 240 | 0) + ((Math_imul(HEAP32[(($15 + 80 | 0) + ((HEAP32[($15 + 748 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0, 3) + (HEAP32[($15 + 752 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2]) + Math_fround(HEAPF32[((HEAP32[($15 + 600 | 0) >> 2] | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($15 + 64 | 0 | 0) | 0) + ((HEAP32[($15 + 752 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $3032), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP32[($15 + 752 | 0) >> 2] = (HEAP32[($15 + 752 | 0) >> 2] | 0) + 1 | 0; + continue label$115; + }; + } + label$116 : { + label$117 : { + if (!((HEAP32[($15 + 740 | 0) >> 2] | 0 | 0) < (4 | 0) & 1 | 0)) { + break label$117 + } + $3051 = HEAP32[($15 + 936 | 0) >> 2] | 0; + operator__28btVector3_20const__29($15 + 48 | 0 | 0, HEAP32[($15 + 960 | 0) >> 2] | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$3051 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($3051, $15 + 48 | 0, $15 + 64 | 0, Math_fround(-Math_fround(HEAPF32[(($15 + 208 | 0) + ((HEAP32[(($15 + 80 | 0) + ((HEAP32[($15 + 748 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]))); + break label$116; + } + $3080 = HEAP32[($15 + 936 | 0) >> 2] | 0; + operator__28btVector3_20const__29($15 + 32 | 0 | 0, HEAP32[($15 + 960 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($15 | 0, HEAP32[($15 + 960 | 0) >> 2] | 0 | 0, ($15 + 208 | 0) + ((HEAP32[(($15 + 80 | 0) + ((HEAP32[($15 + 748 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) << 2 | 0) | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($15 + 16 | 0 | 0, $15 + 64 | 0 | 0, $15 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$3080 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($3080, $15 + 32 | 0, $15 + 16 | 0, Math_fround(-Math_fround(HEAPF32[(($15 + 208 | 0) + ((HEAP32[(($15 + 80 | 0) + ((HEAP32[($15 + 748 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]))); + } + HEAP32[($15 + 748 | 0) >> 2] = (HEAP32[($15 + 748 | 0) >> 2] | 0) + 1 | 0; + continue label$113; + }; + } + HEAP32[($15 + 200 | 0) >> 2] = HEAP32[($15 + 948 | 0) >> 2] | 0; + } + HEAP32[(HEAP32[($15 + 952 | 0) >> 2] | 0) >> 2] = HEAP32[($15 + 740 | 0) >> 2] | 0; + HEAP32[($15 + 988 | 0) >> 2] = HEAP32[($15 + 200 | 0) >> 2] | 0; + } + $3139 = HEAP32[($15 + 988 | 0) >> 2] | 0; + __stack_pointer = $15 + 992 | 0; + return $3139 | 0; + } + + function dDOT41_28float_20const__2c_20float_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 32 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2]))))); + } + + function dDOT44_28float_20const__2c_20float_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 32 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 32 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2]))))); + } + + function dDOT14_28float_20const__2c_20float_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 32 | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2]))))); + } + + function intersectRectQuad2_28float__2c_20float__2c_20float__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $81 = 0, $227 = 0, $251 = 0; + $5 = __stack_pointer - 128 | 0; + __stack_pointer = $5; + HEAP32[($5 + 124 | 0) >> 2] = $0; + HEAP32[($5 + 120 | 0) >> 2] = $1; + HEAP32[($5 + 116 | 0) >> 2] = $2; + HEAP32[($5 + 112 | 0) >> 2] = 4; + HEAP32[($5 + 108 | 0) >> 2] = 0; + HEAP32[($5 + 28 | 0) >> 2] = HEAP32[($5 + 120 | 0) >> 2] | 0; + HEAP32[($5 + 24 | 0) >> 2] = HEAP32[($5 + 116 | 0) >> 2] | 0; + HEAP32[($5 + 20 | 0) >> 2] = 0; + label$1 : { + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) <= (1 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 16 | 0) >> 2] = -1; + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) <= (1 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 28 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + HEAP32[($5 + 108 | 0) >> 2] = 0; + HEAP32[($5 + 4 | 0) >> 2] = HEAP32[($5 + 112 | 0) >> 2] | 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0)) { + break label$6 + } + label$8 : { + if (!(Math_fround(Math_fround(HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) * Math_fround(HEAPF32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 20 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])) < Math_fround(HEAPF32[((HEAP32[($5 + 124 | 0) >> 2] | 0) + ((HEAP32[($5 + 20 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) & 1 | 0)) { + break label$8 + } + HEAPF32[(HEAP32[($5 + 8 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[(HEAP32[($5 + 12 | 0) >> 2] | 0) >> 2]); + HEAPF32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2]); + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 8 | 0; + HEAP32[($5 + 108 | 0) >> 2] = (HEAP32[($5 + 108 | 0) >> 2] | 0) + 1 | 0; + label$9 : { + if (!((HEAP32[($5 + 108 | 0) >> 2] | 0) & 8 | 0)) { + break label$9 + } + HEAP32[($5 + 28 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + break label$1; + } + } + label$10 : { + label$11 : { + if (!((HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) > (1 | 0) & 1 | 0)) { + break label$11 + } + $81 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 8 | 0; + break label$10; + } + $81 = HEAP32[($5 + 28 | 0) >> 2] | 0; + } + HEAP32[$5 >> 2] = $81; + label$12 : { + if (!((Math_fround(Math_fround(HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) * Math_fround(HEAPF32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 20 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])) < Math_fround(HEAPF32[((HEAP32[($5 + 124 | 0) >> 2] | 0) + ((HEAP32[($5 + 20 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) & 1 | 0) ^ (Math_fround(Math_fround(HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) * Math_fround(HEAPF32[((HEAP32[$5 >> 2] | 0) + ((HEAP32[($5 + 20 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])) < Math_fround(HEAPF32[((HEAP32[($5 + 124 | 0) >> 2] | 0) + ((HEAP32[($5 + 20 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) & 1 | 0) | 0)) { + break label$12 + } + HEAPF32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + ((1 - (HEAP32[($5 + 20 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2] = Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[((HEAP32[$5 >> 2] | 0) + ((1 - (HEAP32[($5 + 20 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2]) - Math_fround(HEAPF32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((1 - (HEAP32[($5 + 20 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2])) / Math_fround(Math_fround(HEAPF32[((HEAP32[$5 >> 2] | 0) + ((HEAP32[($5 + 20 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) - Math_fround(HEAPF32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 20 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]))) * Math_fround(Math_fround(Math_fround(HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) * Math_fround(HEAPF32[((HEAP32[($5 + 124 | 0) >> 2] | 0) + ((HEAP32[($5 + 20 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])) + Math_fround(-Math_fround(HEAPF32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 20 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])))) + Math_fround(HEAPF32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((1 - (HEAP32[($5 + 20 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2])); + HEAPF32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + ((HEAP32[($5 + 20 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(Math_fround(HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) * Math_fround(HEAPF32[((HEAP32[($5 + 124 | 0) >> 2] | 0) + ((HEAP32[($5 + 20 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])); + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 8 | 0; + HEAP32[($5 + 108 | 0) >> 2] = (HEAP32[($5 + 108 | 0) >> 2] | 0) + 1 | 0; + label$13 : { + if (!((HEAP32[($5 + 108 | 0) >> 2] | 0) & 8 | 0)) { + break label$13 + } + HEAP32[($5 + 28 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + break label$1; + } + } + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 8 | 0; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + -1 | 0; + continue label$7; + }; + } + HEAP32[($5 + 28 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + label$14 : { + label$15 : { + if (!((HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) == (HEAP32[($5 + 116 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$15 + } + $227 = $5 + 32 | 0; + break label$14; + } + $227 = HEAP32[($5 + 116 | 0) >> 2] | 0; + } + HEAP32[($5 + 24 | 0) >> 2] = $227; + HEAP32[($5 + 112 | 0) >> 2] = HEAP32[($5 + 108 | 0) >> 2] | 0; + HEAP32[($5 + 16 | 0) >> 2] = (HEAP32[($5 + 16 | 0) >> 2] | 0) + 2 | 0; + continue label$5; + }; + } + HEAP32[($5 + 20 | 0) >> 2] = (HEAP32[($5 + 20 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + } + label$16 : { + if (!((HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) != (HEAP32[($5 + 116 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$16 + } + __memcpy(HEAP32[($5 + 116 | 0) >> 2] | 0 | 0, HEAP32[($5 + 28 | 0) >> 2] | 0 | 0, ((HEAP32[($5 + 108 | 0) >> 2] | 0) << 1 | 0) << 2 | 0 | 0) | 0; + } + $251 = HEAP32[($5 + 108 | 0) >> 2] | 0; + __stack_pointer = $5 + 128 | 0; + return $251 | 0; + } + + function btBoxBoxDetector__getClosestPoints_28btDiscreteCollisionDetectorInterface__ClosestPointInput_20const__2c_20btDiscreteCollisionDetectorInterface__Result__2c_20btIDebugDraw__2c_20bool_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $9 = 0, $29 = Math_fround(0), $46 = Math_fround(0), $63 = Math_fround(0), $80 = Math_fround(0), $97 = Math_fround(0), $114 = Math_fround(0), $134 = 0, $153 = 0; + $7 = __stack_pointer - 256 | 0; + __stack_pointer = $7; + HEAP32[($7 + 252 | 0) >> 2] = $0; + HEAP32[($7 + 248 | 0) >> 2] = $1; + HEAP32[($7 + 244 | 0) >> 2] = $2; + HEAP32[($7 + 240 | 0) >> 2] = $3; + HEAP8[($7 + 239 | 0) >> 0] = $4; + $9 = HEAP32[($7 + 252 | 0) >> 2] | 0; + HEAP32[($7 + 232 | 0) >> 2] = HEAP32[($7 + 248 | 0) >> 2] | 0; + HEAP32[($7 + 228 | 0) >> 2] = (HEAP32[($7 + 248 | 0) >> 2] | 0) + 64 | 0; + HEAP32[($7 + 224 | 0) >> 2] = 0; + HEAP32[($7 + 220 | 0) >> 2] = 0; + HEAP32[($7 + 108 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($7 + 108 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$1 + } + $29 = Math_fround(HEAPF32[(btVector3__x_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(btTransform__getBasis_28_29_20const(HEAP32[($7 + 232 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($7 + 108 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) >> 2]); + HEAPF32[(($7 + 160 | 0) + ((((HEAP32[($7 + 108 | 0) >> 2] | 0) << 2 | 0) + 0 | 0) << 2 | 0) | 0) >> 2] = $29; + $46 = Math_fround(HEAPF32[(btVector3__x_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(btTransform__getBasis_28_29_20const(HEAP32[($7 + 228 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($7 + 108 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) >> 2]); + HEAPF32[(($7 + 112 | 0) + ((((HEAP32[($7 + 108 | 0) >> 2] | 0) << 2 | 0) + 0 | 0) << 2 | 0) | 0) >> 2] = $46; + $63 = Math_fround(HEAPF32[(btVector3__y_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(btTransform__getBasis_28_29_20const(HEAP32[($7 + 232 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($7 + 108 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) >> 2]); + HEAPF32[(($7 + 160 | 0) + ((((HEAP32[($7 + 108 | 0) >> 2] | 0) << 2 | 0) + 1 | 0) << 2 | 0) | 0) >> 2] = $63; + $80 = Math_fround(HEAPF32[(btVector3__y_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(btTransform__getBasis_28_29_20const(HEAP32[($7 + 228 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($7 + 108 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) >> 2]); + HEAPF32[(($7 + 112 | 0) + ((((HEAP32[($7 + 108 | 0) >> 2] | 0) << 2 | 0) + 1 | 0) << 2 | 0) | 0) >> 2] = $80; + $97 = Math_fround(HEAPF32[(btVector3__z_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(btTransform__getBasis_28_29_20const(HEAP32[($7 + 232 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($7 + 108 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) >> 2]); + HEAPF32[(($7 + 160 | 0) + ((((HEAP32[($7 + 108 | 0) >> 2] | 0) << 2 | 0) + 2 | 0) << 2 | 0) | 0) >> 2] = $97; + $114 = Math_fround(HEAPF32[(btVector3__z_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(btTransform__getBasis_28_29_20const(HEAP32[($7 + 228 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($7 + 108 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) >> 2]); + HEAPF32[(($7 + 112 | 0) + ((((HEAP32[($7 + 108 | 0) >> 2] | 0) << 2 | 0) + 2 | 0) << 2 | 0) | 0) >> 2] = $114; + HEAP32[($7 + 108 | 0) >> 2] = (HEAP32[($7 + 108 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + btVector3__btVector3_28_29($7 + 92 | 0 | 0) | 0; + HEAP32[($7 + 80 | 0) >> 2] = 4; + $134 = btTransform__getOrigin_28_29_20const(HEAP32[($7 + 232 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($7 + 60 | 0) >> 2] = Math_fround(2.0); + btBoxShape__getHalfExtentsWithMargin_28_29_20const($7 + 44 | 0 | 0, HEAP32[($9 + 4 | 0) >> 2] | 0 | 0); + operator__28float_20const__2c_20btVector3_20const__29($7 + 64 | 0 | 0, $7 + 60 | 0 | 0, $7 + 44 | 0 | 0); + $153 = btTransform__getOrigin_28_29_20const(HEAP32[($7 + 228 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($7 + 24 | 0) >> 2] = Math_fround(2.0); + btBoxShape__getHalfExtentsWithMargin_28_29_20const($7 + 8 | 0 | 0, HEAP32[($9 + 8 | 0) >> 2] | 0 | 0); + operator__28float_20const__2c_20btVector3_20const__29($7 + 28 | 0 | 0, $7 + 24 | 0 | 0, $7 + 8 | 0 | 0); + dBoxBox2_28btVector3_20const__2c_20float_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_20const__2c_20btVector3_20const__2c_20btVector3__2c_20float__2c_20int__2c_20int_2c_20dContactGeom__2c_20int_2c_20btDiscreteCollisionDetectorInterface__Result__29($134 | 0, $7 + 160 | 0 | 0, $7 + 64 | 0 | 0, $153 | 0, $7 + 112 | 0 | 0, $7 + 28 | 0 | 0, $7 + 92 | 0 | 0, $7 + 88 | 0 | 0, $7 + 84 | 0 | 0, HEAP32[($7 + 80 | 0) >> 2] | 0 | 0, HEAP32[($7 + 220 | 0) >> 2] | 0 | 0, HEAP32[($7 + 224 | 0) >> 2] | 0 | 0, HEAP32[($7 + 244 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $7 + 256 | 0; + return; + } + + function btBoxBoxDetector___btBoxBoxDetector_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btBoxBoxDetector___btBoxBoxDetector_28_29_1($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btDiscreteCollisionDetectorInterface___btDiscreteCollisionDetectorInterface_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function _GLOBAL__sub_I_btBoxBoxDetector_cpp() { + __cxx_global_var_init_18(); + return; + } + + function __cxx_global_var_init_19() { + btInfMaskConverter__btInfMaskConverter_28int_29(114024 | 0, 2139095040 | 0) | 0; + return; + } + + function btBoxBoxCollisionAlgorithm__btBoxBoxCollisionAlgorithm_28btPersistentManifold__2c_20btCollisionAlgorithmConstructionInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0, $24 = 0, $34 = 0, $43 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0, wasm2js_i32$4 = 0, wasm2js_i32$5 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 24 | 0) >> 2] = $0; + HEAP32[($7 + 20 | 0) >> 2] = $1; + HEAP32[($7 + 16 | 0) >> 2] = $2; + HEAP32[($7 + 12 | 0) >> 2] = $3; + HEAP32[($7 + 8 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 24 | 0) >> 2] | 0; + HEAP32[($7 + 28 | 0) >> 2] = $8; + btActivatingCollisionAlgorithm__btActivatingCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($8 | 0, HEAP32[($7 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7 + 12 | 0) >> 2] | 0 | 0, HEAP32[($7 + 8 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$8 >> 2] = 95212 + 8 | 0; + HEAP8[($8 + 8 | 0) >> 0] = 0; + HEAP32[($8 + 12 | 0) >> 2] = HEAP32[($7 + 20 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($8 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$1 + } + $24 = HEAP32[($8 + 4 | 0) >> 2] | 0; + if (!(((((wasm2js_i32$1 = $24, wasm2js_i32$2 = btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$3 = btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$24 >> 2] | 0) + 24 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0, wasm2js_i32$3 | 0) | 0) & 1 | 0)) { + break label$1 + } + $34 = HEAP32[($8 + 4 | 0) >> 2] | 0; + (wasm2js_i32$0 = $8, wasm2js_i32$3 = ((((wasm2js_i32$1 = $34, wasm2js_i32$4 = btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$5 = btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$2 = HEAP32[((HEAP32[$34 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$2](wasm2js_i32$1 | 0, wasm2js_i32$4 | 0, wasm2js_i32$5 | 0) | 0)), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$3; + HEAP8[($8 + 8 | 0) >> 0] = 1; + } + $43 = HEAP32[($7 + 28 | 0) >> 2] | 0; + __stack_pointer = $7 + 32 | 0; + return $43 | 0; + } + + function btBoxBoxCollisionAlgorithm___btBoxBoxCollisionAlgorithm_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0, $18 = 0, $22 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $4; + HEAP32[$4 >> 2] = 95212 + 8 | 0; + label$1 : { + if (!((HEAPU8[($4 + 8 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + $18 = HEAP32[($4 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$18 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($18, HEAP32[($4 + 12 | 0) >> 2] | 0); + } + } + btActivatingCollisionAlgorithm___btActivatingCollisionAlgorithm_28_29($4 | 0) | 0; + $22 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $22 | 0; + } + + function btBoxBoxCollisionAlgorithm___btBoxBoxCollisionAlgorithm_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[689 | 0]($4) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btBoxBoxCollisionAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $7 = __stack_pointer - 176 | 0; + __stack_pointer = $7; + HEAP32[($7 + 172 | 0) >> 2] = $0; + HEAP32[($7 + 168 | 0) >> 2] = $1; + HEAP32[($7 + 164 | 0) >> 2] = $2; + HEAP32[($7 + 160 | 0) >> 2] = $3; + HEAP32[($7 + 156 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 172 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if ((HEAP32[($8 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$2 + } + break label$1; + } + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 168 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 152 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 164 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 148 | 0) >> 2] = wasm2js_i32$1; + btManifoldResult__setPersistentManifold_28btPersistentManifold__29(HEAP32[($7 + 156 | 0) >> 2] | 0 | 0, HEAP32[($8 + 12 | 0) >> 2] | 0 | 0); + btDiscreteCollisionDetectorInterface__ClosestPointInput__ClosestPointInput_28_29($7 + 16 | 0 | 0) | 0; + HEAPF32[($7 + 144 | 0) >> 2] = Math_fround(999999984306749440.0); + btTransform__operator__28btTransform_20const__29($7 + 16 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 168 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + btTransform__operator__28btTransform_20const__29(($7 + 16 | 0) + 64 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 164 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + btBoxBoxDetector__btBoxBoxDetector_28btBoxShape_20const__2c_20btBoxShape_20const__29($7 + 4 | 0 | 0, HEAP32[($7 + 152 | 0) >> 2] | 0 | 0, HEAP32[($7 + 148 | 0) >> 2] | 0 | 0) | 0; + btBoxBoxDetector__getClosestPoints_28btDiscreteCollisionDetectorInterface__ClosestPointInput_20const__2c_20btDiscreteCollisionDetectorInterface__Result__2c_20btIDebugDraw__2c_20bool_29($7 + 4 | 0 | 0, $7 + 16 | 0 | 0, HEAP32[($7 + 156 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7 + 160 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + label$3 : { + if (!((HEAPU8[($8 + 8 | 0) >> 0] | 0) & 1 | 0)) { + break label$3 + } + btManifoldResult__refreshContactPoints_28_29(HEAP32[($7 + 156 | 0) >> 2] | 0 | 0); + } + btBoxBoxDetector___btBoxBoxDetector_28_29_1($7 + 4 | 0 | 0) | 0; + } + __stack_pointer = $7 + 176 | 0; + return; + } + + function btBoxBoxDetector___btBoxBoxDetector_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btDiscreteCollisionDetectorInterface___btDiscreteCollisionDetectorInterface_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btBoxBoxCollisionAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0; + $7 = __stack_pointer - 32 | 0; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + return Math_fround(Math_fround(1.0)); + } + + function btBoxBoxCollisionAlgorithm__getAllContactManifolds_28btAlignedObjectArray_btPersistentManifold____29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + if (!((HEAPU8[($5 + 8 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btPersistentManifold____push_back_28btPersistentManifold__20const__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, $5 + 12 | 0 | 0); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function _GLOBAL__sub_I_btBoxBoxCollisionAlgorithm_cpp() { + __cxx_global_var_init_19(); + return; + } + + function __cxx_global_var_init_20() { + btInfMaskConverter__btInfMaskConverter_28int_29(114028 | 0, 2139095040 | 0) | 0; + return; + } + + function btConvexPlaneCollisionAlgorithm__btConvexPlaneCollisionAlgorithm_28btPersistentManifold__2c_20btCollisionAlgorithmConstructionInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20bool_2c_20int_2c_20int_29($0, $1, $2, $3, $4, $5, $6, $7) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + var $10 = 0, $12 = 0, $28 = 0, $35 = 0, $45 = 0, $55 = 0, $64 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0, wasm2js_i32$4 = 0, wasm2js_i32$5 = 0; + $10 = __stack_pointer - 48 | 0; + __stack_pointer = $10; + HEAP32[($10 + 40 | 0) >> 2] = $0; + HEAP32[($10 + 36 | 0) >> 2] = $1; + HEAP32[($10 + 32 | 0) >> 2] = $2; + HEAP32[($10 + 28 | 0) >> 2] = $3; + HEAP32[($10 + 24 | 0) >> 2] = $4; + HEAP8[($10 + 23 | 0) >> 0] = $5; + HEAP32[($10 + 16 | 0) >> 2] = $6; + HEAP32[($10 + 12 | 0) >> 2] = $7; + $12 = HEAP32[($10 + 40 | 0) >> 2] | 0; + HEAP32[($10 + 44 | 0) >> 2] = $12; + btCollisionAlgorithm__btCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo_20const__29($12 | 0, HEAP32[($10 + 32 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$12 >> 2] = 95284 + 8 | 0; + HEAP8[($12 + 8 | 0) >> 0] = 0; + HEAP32[($12 + 12 | 0) >> 2] = HEAP32[($10 + 36 | 0) >> 2] | 0; + HEAP8[($12 + 16 | 0) >> 0] = (HEAPU8[($10 + 23 | 0) >> 0] | 0) & 1 | 0; + HEAP32[($12 + 20 | 0) >> 2] = HEAP32[($10 + 16 | 0) >> 2] | 0; + HEAP32[($12 + 24 | 0) >> 2] = HEAP32[($10 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($12 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + $28 = HEAP32[($10 + 24 | 0) >> 2] | 0; + break label$1; + } + $28 = HEAP32[($10 + 28 | 0) >> 2] | 0; + } + HEAP32[($10 + 8 | 0) >> 2] = $28; + label$3 : { + label$4 : { + if (!((HEAPU8[($12 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$4 + } + $35 = HEAP32[($10 + 28 | 0) >> 2] | 0; + break label$3; + } + $35 = HEAP32[($10 + 24 | 0) >> 2] | 0; + } + HEAP32[($10 + 4 | 0) >> 2] = $35; + label$5 : { + if ((HEAP32[($12 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$5 + } + $45 = HEAP32[($12 + 4 | 0) >> 2] | 0; + if (!(((((wasm2js_i32$1 = $45, wasm2js_i32$2 = btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($10 + 8 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$3 = btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($10 + 4 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$45 >> 2] | 0) + 24 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0, wasm2js_i32$3 | 0) | 0) & 1 | 0)) { + break label$5 + } + $55 = HEAP32[($12 + 4 | 0) >> 2] | 0; + (wasm2js_i32$0 = $12, wasm2js_i32$3 = ((((wasm2js_i32$1 = $55, wasm2js_i32$4 = btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($10 + 8 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$5 = btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($10 + 4 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$2 = HEAP32[((HEAP32[$55 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$2](wasm2js_i32$1 | 0, wasm2js_i32$4 | 0, wasm2js_i32$5 | 0) | 0)), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$3; + HEAP8[($12 + 8 | 0) >> 0] = 1; + } + $64 = HEAP32[($10 + 44 | 0) >> 2] | 0; + __stack_pointer = $10 + 48 | 0; + return $64 | 0; + } + + function btConvexPlaneCollisionAlgorithm___btConvexPlaneCollisionAlgorithm_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0, $18 = 0, $22 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $4; + HEAP32[$4 >> 2] = 95284 + 8 | 0; + label$1 : { + if (!((HEAPU8[($4 + 8 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + $18 = HEAP32[($4 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$18 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($18, HEAP32[($4 + 12 | 0) >> 2] | 0); + } + } + btCollisionAlgorithm___btCollisionAlgorithm_28_29_1($4 | 0) | 0; + $22 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $22 | 0; + } + + function btConvexPlaneCollisionAlgorithm___btConvexPlaneCollisionAlgorithm_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[694 | 0]($4) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btConvexPlaneCollisionAlgorithm__collideSingleContact_28btQuaternion_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, i64toi32_i32$0 = 0, $9 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $14 = 0, $21 = 0, $95 = 0, $177 = 0, $186 = 0, $99 = 0, $568 = 0, $572 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $8 = __stack_pointer - 704 | 0; + __stack_pointer = $8; + HEAP32[($8 + 700 | 0) >> 2] = $0; + HEAP32[($8 + 696 | 0) >> 2] = $1; + HEAP32[($8 + 692 | 0) >> 2] = $2; + HEAP32[($8 + 688 | 0) >> 2] = $3; + HEAP32[($8 + 684 | 0) >> 2] = $4; + HEAP32[($8 + 680 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 700 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($9 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + $14 = HEAP32[($8 + 688 | 0) >> 2] | 0; + break label$1; + } + $14 = HEAP32[($8 + 692 | 0) >> 2] | 0; + } + HEAP32[($8 + 676 | 0) >> 2] = $14; + label$3 : { + label$4 : { + if (!((HEAPU8[($9 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$4 + } + $21 = HEAP32[($8 + 692 | 0) >> 2] | 0; + break label$3; + } + $21 = HEAP32[($8 + 688 | 0) >> 2] | 0; + } + HEAP32[($8 + 672 | 0) >> 2] = $21; + (wasm2js_i32$0 = $8, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($8 + 676 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 668 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $8, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($8 + 672 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 664 | 0) >> 2] = wasm2js_i32$1; + HEAP8[($8 + 663 | 0) >> 0] = 0; + (wasm2js_i32$0 = $8, wasm2js_i32$1 = btStaticPlaneShape__getPlaneNormal_28_29_20const(HEAP32[($8 + 664 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 656 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $8, wasm2js_i32$1 = btStaticPlaneShape__getPlaneConstant_28_29_20const(HEAP32[($8 + 664 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 652 | 0) >> 2] = wasm2js_i32$1; + btTransform__btTransform_28btTransform_20const__29($8 + 588 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($8 + 676 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + btTransform__btTransform_28_29($8 + 524 | 0 | 0) | 0; + btTransform__inverse_28_29_20const($8 + 396 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($8 + 672 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator__28btTransform_20const__29_20const($8 + 460 | 0 | 0, $8 + 396 | 0 | 0, $8 + 588 | 0 | 0); + btTransform__operator__28btTransform_20const__29($8 + 524 | 0 | 0, $8 + 460 | 0 | 0) | 0; + btMatrix3x3__btMatrix3x3_28btQuaternion_20const__29($8 + 348 | 0 | 0, HEAP32[($8 + 696 | 0) >> 2] | 0 | 0) | 0; + btMatrix3x3__operator___28btMatrix3x3_20const__29(btTransform__getBasis_28_29($8 + 588 | 0 | 0) | 0 | 0, $8 + 348 | 0 | 0) | 0; + btTransform__btTransform_28_29($8 + 284 | 0 | 0) | 0; + btTransform__inverse_28_29_20const($8 + 156 | 0 | 0, $8 + 588 | 0 | 0); + btTransform__operator__28btTransform_20const__29_20const($8 + 220 | 0 | 0, $8 + 156 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($8 + 672 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator__28btTransform_20const__29($8 + 284 | 0 | 0, $8 + 220 | 0 | 0) | 0; + $95 = HEAP32[($8 + 668 | 0) >> 2] | 0; + $99 = btTransform__getBasis_28_29($8 + 284 | 0 | 0) | 0; + operator__28btVector3_20const__29($8 + 108 | 0 | 0, HEAP32[($8 + 656 | 0) >> 2] | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 124 | 0 | 0, $99 | 0, $8 + 108 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$95 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($8 + 140 | 0, $95, $8 + 124 | 0); + btTransform__operator_28_29_28btVector3_20const__29_20const($8 + 92 | 0 | 0, $8 + 524 | 0 | 0, $8 + 140 | 0 | 0); + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($8 + 656 | 0) >> 2] | 0 | 0, $8 + 92 | 0 | 0)) - Math_fround(HEAPF32[(HEAP32[($8 + 652 | 0) >> 2] | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 88 | 0) >> 2] = wasm2js_f32$0; + operator__28float_20const__2c_20btVector3_20const__29($8 + 56 | 0 | 0, $8 + 88 | 0 | 0, HEAP32[($8 + 656 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 72 | 0 | 0, $8 + 92 | 0 | 0, $8 + 56 | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($8 + 40 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($8 + 672 | 0) >> 2] | 0 | 0) | 0 | 0, $8 + 72 | 0 | 0); + (wasm2js_i32$0 = $8, wasm2js_i32$1 = Math_fround(HEAPF32[($8 + 88 | 0) >> 2]) < Math_fround(btPersistentManifold__getContactBreakingThreshold_28_29_20const(HEAP32[($9 + 12 | 0) >> 2] | 0 | 0)) & 1 | 0), HEAP8[(wasm2js_i32$0 + 663 | 0) >> 0] = wasm2js_i32$1; + btManifoldResult__setPersistentManifold_28btPersistentManifold__29(HEAP32[($8 + 680 | 0) >> 2] | 0 | 0, HEAP32[($9 + 12 | 0) >> 2] | 0 | 0); + label$5 : { + if (!((HEAPU8[($8 + 663 | 0) >> 0] | 0) & 1 | 0)) { + break label$5 + } + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 24 | 0 | 0, btTransform__getBasis_28_29_20const(btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($8 + 672 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, HEAP32[($8 + 656 | 0) >> 2] | 0 | 0); + $177 = 8; + i64toi32_i32$2 = ($8 + 40 | 0) + $177 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $568 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 8 | 0) + $177 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $568; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 40 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 44 | 0) >> 2] | 0; + $572 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 8 | 0) >> 2] = $572; + HEAP32[($8 + 12 | 0) >> 2] = i64toi32_i32$0; + $186 = HEAP32[($8 + 680 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$186 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($186, $8 + 24 | 0, $8 + 8 | 0, Math_fround(HEAPF32[($8 + 88 | 0) >> 2])); + } + __stack_pointer = $8 + 704 | 0; + return; + } + + function btMatrix3x3__operator___28btMatrix3x3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 48 | 0; + __stack_pointer = $4; + HEAP32[($4 + 44 | 0) >> 2] = $0; + HEAP32[($4 + 40 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 44 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btMatrix3x3__tdotx_28btVector3_20const__29_20const(HEAP32[($4 + 40 | 0) >> 2] | 0 | 0, $5 | 0))), HEAPF32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btMatrix3x3__tdoty_28btVector3_20const__29_20const(HEAP32[($4 + 40 | 0) >> 2] | 0 | 0, $5 | 0))), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btMatrix3x3__tdotz_28btVector3_20const__29_20const(HEAP32[($4 + 40 | 0) >> 2] | 0 | 0, $5 | 0))), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btMatrix3x3__tdotx_28btVector3_20const__29_20const(HEAP32[($4 + 40 | 0) >> 2] | 0 | 0, $5 + 16 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btMatrix3x3__tdoty_28btVector3_20const__29_20const(HEAP32[($4 + 40 | 0) >> 2] | 0 | 0, $5 + 16 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btMatrix3x3__tdotz_28btVector3_20const__29_20const(HEAP32[($4 + 40 | 0) >> 2] | 0 | 0, $5 + 16 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btMatrix3x3__tdotx_28btVector3_20const__29_20const(HEAP32[($4 + 40 | 0) >> 2] | 0 | 0, $5 + 32 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btMatrix3x3__tdoty_28btVector3_20const__29_20const(HEAP32[($4 + 40 | 0) >> 2] | 0 | 0, $5 + 32 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btMatrix3x3__tdotz_28btVector3_20const__29_20const(HEAP32[($4 + 40 | 0) >> 2] | 0 | 0, $5 + 32 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + btMatrix3x3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($5 | 0, $4 + 36 | 0 | 0, $4 + 32 | 0 | 0, $4 + 28 | 0 | 0, $4 + 24 | 0 | 0, $4 + 20 | 0 | 0, $4 + 16 | 0 | 0, $4 + 12 | 0 | 0, $4 + 8 | 0 | 0, $4 + 4 | 0 | 0); + __stack_pointer = $4 + 48 | 0; + return $5 | 0; + } + + function btConvexPlaneCollisionAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $20 = 0, $27 = 0, $83 = 0, $165 = 0, $174 = 0, $211 = 0, $87 = 0, $644 = 0, $648 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $7 = __stack_pointer - 720 | 0; + __stack_pointer = $7; + HEAP32[($7 + 716 | 0) >> 2] = $0; + HEAP32[($7 + 712 | 0) >> 2] = $1; + HEAP32[($7 + 708 | 0) >> 2] = $2; + HEAP32[($7 + 704 | 0) >> 2] = $3; + HEAP32[($7 + 700 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 716 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if ((HEAP32[($8 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$2 + } + break label$1; + } + label$3 : { + label$4 : { + if (!((HEAPU8[($8 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$4 + } + $20 = HEAP32[($7 + 708 | 0) >> 2] | 0; + break label$3; + } + $20 = HEAP32[($7 + 712 | 0) >> 2] | 0; + } + HEAP32[($7 + 696 | 0) >> 2] = $20; + label$5 : { + label$6 : { + if (!((HEAPU8[($8 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$6 + } + $27 = HEAP32[($7 + 712 | 0) >> 2] | 0; + break label$5; + } + $27 = HEAP32[($7 + 708 | 0) >> 2] | 0; + } + HEAP32[($7 + 692 | 0) >> 2] = $27; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 696 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 688 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 692 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 684 | 0) >> 2] = wasm2js_i32$1; + HEAP8[($7 + 683 | 0) >> 0] = 0; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btStaticPlaneShape__getPlaneNormal_28_29_20const(HEAP32[($7 + 684 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 676 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btStaticPlaneShape__getPlaneConstant_28_29_20const(HEAP32[($7 + 684 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 672 | 0) >> 2] = wasm2js_i32$1; + btTransform__btTransform_28_29($7 + 608 | 0 | 0) | 0; + btTransform__inverse_28_29_20const($7 + 480 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 696 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator__28btTransform_20const__29_20const($7 + 544 | 0 | 0, $7 + 480 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 692 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator__28btTransform_20const__29($7 + 608 | 0 | 0, $7 + 544 | 0 | 0) | 0; + btTransform__btTransform_28_29($7 + 416 | 0 | 0) | 0; + btTransform__inverse_28_29_20const($7 + 288 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 692 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator__28btTransform_20const__29_20const($7 + 352 | 0 | 0, $7 + 288 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 696 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator__28btTransform_20const__29($7 + 416 | 0 | 0, $7 + 352 | 0 | 0) | 0; + $83 = HEAP32[($7 + 688 | 0) >> 2] | 0; + $87 = btTransform__getBasis_28_29($7 + 608 | 0 | 0) | 0; + operator__28btVector3_20const__29($7 + 240 | 0 | 0, HEAP32[($7 + 676 | 0) >> 2] | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($7 + 256 | 0 | 0, $87 | 0, $7 + 240 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$83 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($7 + 272 | 0, $83, $7 + 256 | 0); + btTransform__operator_28_29_28btVector3_20const__29_20const($7 + 224 | 0 | 0, $7 + 416 | 0 | 0, $7 + 272 | 0 | 0); + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($7 + 676 | 0) >> 2] | 0 | 0, $7 + 224 | 0 | 0)) - Math_fround(HEAPF32[(HEAP32[($7 + 672 | 0) >> 2] | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 220 | 0) >> 2] = wasm2js_f32$0; + operator__28float_20const__2c_20btVector3_20const__29($7 + 188 | 0 | 0, $7 + 220 | 0 | 0, HEAP32[($7 + 676 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($7 + 204 | 0 | 0, $7 + 224 | 0 | 0, $7 + 188 | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($7 + 172 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 692 | 0) >> 2] | 0 | 0) | 0 | 0, $7 + 204 | 0 | 0); + (wasm2js_i32$0 = $7, wasm2js_i32$1 = Math_fround(HEAPF32[($7 + 220 | 0) >> 2]) < Math_fround(btPersistentManifold__getContactBreakingThreshold_28_29_20const(HEAP32[($8 + 12 | 0) >> 2] | 0 | 0)) & 1 | 0), HEAP8[(wasm2js_i32$0 + 683 | 0) >> 0] = wasm2js_i32$1; + btManifoldResult__setPersistentManifold_28btPersistentManifold__29(HEAP32[($7 + 700 | 0) >> 2] | 0 | 0, HEAP32[($8 + 12 | 0) >> 2] | 0 | 0); + label$7 : { + if (!((HEAPU8[($7 + 683 | 0) >> 0] | 0) & 1 | 0)) { + break label$7 + } + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($7 + 156 | 0 | 0, btTransform__getBasis_28_29_20const(btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 692 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, HEAP32[($7 + 676 | 0) >> 2] | 0 | 0); + $165 = 8; + i64toi32_i32$2 = ($7 + 172 | 0) + $165 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $644 = i64toi32_i32$0; + i64toi32_i32$0 = ($7 + 136 | 0) + $165 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $644; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $7; + i64toi32_i32$1 = HEAP32[($7 + 172 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($7 + 176 | 0) >> 2] | 0; + $648 = i64toi32_i32$1; + i64toi32_i32$1 = $7; + HEAP32[($7 + 136 | 0) >> 2] = $648; + HEAP32[($7 + 140 | 0) >> 2] = i64toi32_i32$0; + $174 = HEAP32[($7 + 700 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$174 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($174, $7 + 156 | 0, $7 + 136 | 0, Math_fround(HEAPF32[($7 + 220 | 0) >> 2])); + } + label$8 : { + if (!((btCollisionShape__isPolyhedral_28_29_20const(HEAP32[($7 + 688 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$8 + } + if (!((btPersistentManifold__getNumContacts_28_29_20const(btManifoldResult__getPersistentManifold_28_29(HEAP32[($7 + 700 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0) < (HEAP32[($8 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + btVector3__btVector3_28_29($7 + 120 | 0 | 0) | 0; + btVector3__btVector3_28_29($7 + 104 | 0 | 0) | 0; + void_20btPlaneSpace1_btVector3__28btVector3_20const__2c_20btVector3__2c_20btVector3__29(HEAP32[($7 + 676 | 0) >> 2] | 0 | 0, $7 + 120 | 0 | 0, $7 + 104 | 0 | 0); + HEAPF32[($7 + 100 | 0) >> 2] = Math_fround(.39269909262657166); + $211 = HEAP32[($7 + 688 | 0) >> 2] | 0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$211 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($211))), HEAPF32[(wasm2js_i32$0 + 92 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($7 + 96 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[(0 + 112840 | 0) >> 2]) / Math_fround(HEAPF32[($7 + 92 | 0) >> 2])); + label$9 : { + if (!(Math_fround(HEAPF32[($7 + 96 | 0) >> 2]) > Math_fround(.39269909262657166) & 1 | 0)) { + break label$9 + } + HEAPF32[($7 + 96 | 0) >> 2] = Math_fround(.39269909262657166); + } + btQuaternion__btQuaternion_28btVector3_20const__2c_20float_20const__29($7 + 76 | 0 | 0, $7 + 120 | 0 | 0, $7 + 96 | 0 | 0) | 0; + HEAP32[($7 + 72 | 0) >> 2] = 0; + label$10 : { + label$11 : while (1) { + if (!((HEAP32[($7 + 72 | 0) >> 2] | 0 | 0) < (HEAP32[($8 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$10 + } + HEAPF32[($7 + 68 | 0) >> 2] = Math_fround(Math_fround(HEAP32[($7 + 72 | 0) >> 2] | 0 | 0) * Math_fround(Math_fround(6.2831854820251465) / Math_fround(HEAP32[($8 + 20 | 0) >> 2] | 0 | 0))); + btQuaternion__btQuaternion_28btVector3_20const__2c_20float_20const__29($7 + 52 | 0 | 0, HEAP32[($7 + 676 | 0) >> 2] | 0 | 0, $7 + 68 | 0 | 0) | 0; + btQuaternion__inverse_28_29_20const($7 + 4 | 0 | 0, $7 + 52 | 0 | 0); + operator__28btQuaternion_20const__2c_20btQuaternion_20const__29($7 + 20 | 0 | 0, $7 + 4 | 0 | 0, $7 + 76 | 0 | 0); + operator__28btQuaternion_20const__2c_20btQuaternion_20const__29($7 + 36 | 0 | 0, $7 + 20 | 0 | 0, $7 + 52 | 0 | 0); + btConvexPlaneCollisionAlgorithm__collideSingleContact_28btQuaternion_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29($8 | 0, $7 + 36 | 0 | 0, HEAP32[($7 + 712 | 0) >> 2] | 0 | 0, HEAP32[($7 + 708 | 0) >> 2] | 0 | 0, HEAP32[($7 + 704 | 0) >> 2] | 0 | 0, HEAP32[($7 + 700 | 0) >> 2] | 0 | 0); + HEAP32[($7 + 72 | 0) >> 2] = (HEAP32[($7 + 72 | 0) >> 2] | 0) + 1 | 0; + continue label$11; + }; + } + } + if (!((HEAPU8[($8 + 8 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + label$12 : { + if (!(btPersistentManifold__getNumContacts_28_29_20const(HEAP32[($8 + 12 | 0) >> 2] | 0 | 0) | 0)) { + break label$12 + } + btManifoldResult__refreshContactPoints_28_29(HEAP32[($7 + 700 | 0) >> 2] | 0 | 0); + } + } + __stack_pointer = $7 + 720 | 0; + return; + } + + function btConvexPlaneCollisionAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0; + $7 = __stack_pointer - 32 | 0; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + return Math_fround(Math_fround(1.0)); + } + + function btConvexPlaneCollisionAlgorithm__getAllContactManifolds_28btAlignedObjectArray_btPersistentManifold____29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + if (!((HEAPU8[($5 + 8 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btPersistentManifold____push_back_28btPersistentManifold__20const__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, $5 + 12 | 0 | 0); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function _GLOBAL__sub_I_btConvexPlaneCollisionAlgorithm_cpp() { + __cxx_global_var_init_20(); + return; + } + + function __cxx_global_var_init_21() { + btInfMaskConverter__btInfMaskConverter_28int_29(114032 | 0, 2139095040 | 0) | 0; + return; + } + + function btDefaultCollisionConfiguration__btDefaultCollisionConfiguration_28btDefaultCollisionConstructionInfo_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $15 = 0, $19 = 0, $23 = 0, $28 = 0, $32 = 0, $36 = 0, $40 = 0, $44 = 0, $48 = 0, $52 = 0, $56 = 0, $60 = 0, $66 = 0, $67 = 0, $69 = 0, $70 = 0, $72 = 0, $126 = 0, $134$hi = 0, $135$hi = 0, $153 = 0, i64toi32_i32$2 = 0, $157 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 48 | 0; + __stack_pointer = $4; + HEAP32[($4 + 40 | 0) >> 2] = $0; + HEAP32[($4 + 36 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 40 | 0) >> 2] | 0; + HEAP32[($4 + 44 | 0) >> 2] = $5; + btCollisionConfiguration__btCollisionConfiguration_28_29($5 | 0) | 0; + HEAP32[$5 >> 2] = 95360 + 8 | 0; + HEAP32[($4 + 32 | 0) >> 2] = 0; + label$1 : { + label$2 : { + if (!(HEAP32[((HEAP32[($4 + 36 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(4 | 0, 16 | 0) | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + $15 = HEAP32[($4 + 32 | 0) >> 2] | 0; + btGjkEpaPenetrationDepthSolver__btGjkEpaPenetrationDepthSolver_28_29($15 | 0) | 0; + HEAP32[($5 + 24 | 0) >> 2] = $15; + break label$1; + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(4 | 0, 16 | 0) | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + $19 = HEAP32[($4 + 32 | 0) >> 2] | 0; + btMinkowskiPenetrationDepthSolver__btMinkowskiPenetrationDepthSolver_28_29($19 | 0) | 0; + HEAP32[($5 + 24 | 0) >> 2] = $19; + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(20 | 0, 16 | 0) | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + $23 = HEAP32[($4 + 32 | 0) >> 2] | 0; + btConvexConvexAlgorithm__CreateFunc__CreateFunc_28btConvexPenetrationDepthSolver__29($23 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5 + 28 | 0) >> 2] = $23; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(8 | 0, 16 | 0) | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + $28 = HEAP32[($4 + 32 | 0) >> 2] | 0; + btConvexConcaveCollisionAlgorithm__CreateFunc__CreateFunc_28_29($28 | 0) | 0; + HEAP32[($5 + 32 | 0) >> 2] = $28; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(8 | 0, 16 | 0) | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + $32 = HEAP32[($4 + 32 | 0) >> 2] | 0; + btConvexConcaveCollisionAlgorithm__SwappedCreateFunc__SwappedCreateFunc_28_29($32 | 0) | 0; + HEAP32[($5 + 36 | 0) >> 2] = $32; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(8 | 0, 16 | 0) | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + $36 = HEAP32[($4 + 32 | 0) >> 2] | 0; + btCompoundCollisionAlgorithm__CreateFunc__CreateFunc_28_29($36 | 0) | 0; + HEAP32[($5 + 40 | 0) >> 2] = $36; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(8 | 0, 16 | 0) | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + $40 = HEAP32[($4 + 32 | 0) >> 2] | 0; + btCompoundCompoundCollisionAlgorithm__CreateFunc__CreateFunc_28_29($40 | 0) | 0; + HEAP32[($5 + 44 | 0) >> 2] = $40; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(8 | 0, 16 | 0) | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + $44 = HEAP32[($4 + 32 | 0) >> 2] | 0; + btCompoundCollisionAlgorithm__SwappedCreateFunc__SwappedCreateFunc_28_29($44 | 0) | 0; + HEAP32[($5 + 48 | 0) >> 2] = $44; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(8 | 0, 16 | 0) | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + $48 = HEAP32[($4 + 32 | 0) >> 2] | 0; + btEmptyAlgorithm__CreateFunc__CreateFunc_28_29($48 | 0) | 0; + HEAP32[($5 + 52 | 0) >> 2] = $48; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(8 | 0, 16 | 0) | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + $52 = HEAP32[($4 + 32 | 0) >> 2] | 0; + btSphereSphereCollisionAlgorithm__CreateFunc__CreateFunc_28_29($52 | 0) | 0; + HEAP32[($5 + 56 | 0) >> 2] = $52; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(8 | 0, 16 | 0) | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + $56 = HEAP32[($4 + 32 | 0) >> 2] | 0; + btSphereTriangleCollisionAlgorithm__CreateFunc__CreateFunc_28_29($56 | 0) | 0; + HEAP32[($5 + 72 | 0) >> 2] = $56; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(8 | 0, 16 | 0) | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + $60 = HEAP32[($4 + 32 | 0) >> 2] | 0; + btSphereTriangleCollisionAlgorithm__CreateFunc__CreateFunc_28_29($60 | 0) | 0; + HEAP32[($5 + 76 | 0) >> 2] = $60; + HEAP8[((HEAP32[($5 + 76 | 0) >> 2] | 0) + 4 | 0) >> 0] = 1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(8 | 0, 16 | 0) | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + $66 = HEAP32[($4 + 32 | 0) >> 2] | 0; + btBoxBoxCollisionAlgorithm__CreateFunc__CreateFunc_28_29($66 | 0) | 0; + HEAP32[($5 + 68 | 0) >> 2] = $66; + $67 = 16; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29($67 | 0, $67 | 0) | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + $69 = HEAP32[($4 + 32 | 0) >> 2] | 0; + btConvexPlaneCollisionAlgorithm__CreateFunc__CreateFunc_28_29($69 | 0) | 0; + HEAP32[($5 + 84 | 0) >> 2] = $69; + $70 = 16; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29($70 | 0, $70 | 0) | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + $72 = HEAP32[($4 + 32 | 0) >> 2] | 0; + btConvexPlaneCollisionAlgorithm__CreateFunc__CreateFunc_28_29($72 | 0) | 0; + HEAP32[($5 + 80 | 0) >> 2] = $72; + HEAP8[((HEAP32[($5 + 80 | 0) >> 2] | 0) + 4 | 0) >> 0] = 1; + HEAP32[($4 + 28 | 0) >> 2] = 72; + HEAP32[($4 + 24 | 0) >> 2] = 80; + HEAP32[($4 + 20 | 0) >> 2] = 84; + HEAP32[($4 + 16 | 0) >> 2] = 116; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[(int_20const__20btMax_int__28int_20const__2c_20int_20const__29($4 + 28 | 0 | 0, (HEAP32[($4 + 36 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[(int_20const__20btMax_int__28int_20const__2c_20int_20const__29($4 + 12 | 0 | 0, $4 + 24 | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[(int_20const__20btMax_int__28int_20const__2c_20int_20const__29($4 + 12 | 0 | 0, $4 + 20 | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[(int_20const__20btMax_int__28int_20const__2c_20int_20const__29($4 + 12 | 0 | 0, $4 + 16 | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + label$3 : { + label$4 : { + if (!((HEAP32[(HEAP32[($4 + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + HEAP8[($5 + 12 | 0) >> 0] = 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[(HEAP32[($4 + 36 | 0) >> 2] | 0) >> 2] | 0; + break label$3; + } + HEAP8[($5 + 12 | 0) >> 0] = 1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(24 | 0, 16 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + $126 = HEAP32[($4 + 8 | 0) >> 2] | 0; + btPoolAllocator__btPoolAllocator_28int_2c_20int_29($126 | 0, 868 | 0, HEAP32[((HEAP32[($4 + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5 + 8 | 0) >> 2] = $126; + } + i64toi32_i32$1 = (HEAP32[($4 + 12 | 0) >> 2] | 0) + 16 | 0; + i64toi32_i32$0 = i64toi32_i32$1 >> 31 | 0; + $134$hi = i64toi32_i32$0; + i64toi32_i32$0 = 1048575; + $135$hi = i64toi32_i32$0; + i64toi32_i32$0 = $134$hi; + i64toi32_i32$0 = $135$hi; + i64toi32_i32$0 = $134$hi; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$1 = $135$hi; + i64toi32_i32$1 = i64toi32_i32$0 & i64toi32_i32$1 | 0; + HEAP32[($4 + 12 | 0) >> 2] = i64toi32_i32$2 & -16 | 0; + label$5 : { + label$6 : { + if (!((HEAP32[((HEAP32[($4 + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + HEAP8[($5 + 20 | 0) >> 0] = 0; + HEAP32[($5 + 16 | 0) >> 2] = HEAP32[((HEAP32[($4 + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + break label$5; + } + HEAP8[($5 + 20 | 0) >> 0] = 1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(24 | 0, 16 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + $153 = HEAP32[($4 + 4 | 0) >> 2] | 0; + btPoolAllocator__btPoolAllocator_28int_2c_20int_29($153 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5 + 16 | 0) >> 2] = $153; + } + $157 = HEAP32[($4 + 44 | 0) >> 2] | 0; + __stack_pointer = $4 + 48 | 0; + return $157 | 0; + } + + function btCollisionConfiguration__btCollisionConfiguration_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 95476 + 8 | 0; + return $4 | 0; + } + + function btMinkowskiPenetrationDepthSolver__btMinkowskiPenetrationDepthSolver_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConvexPenetrationDepthSolver__btConvexPenetrationDepthSolver_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 101520 + 8 | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConvexConcaveCollisionAlgorithm__CreateFunc__CreateFunc_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionAlgorithmCreateFunc__btCollisionAlgorithmCreateFunc_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 95508 + 8 | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConvexConcaveCollisionAlgorithm__SwappedCreateFunc__SwappedCreateFunc_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionAlgorithmCreateFunc__btCollisionAlgorithmCreateFunc_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 95652 + 8 | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCompoundCollisionAlgorithm__CreateFunc__CreateFunc_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionAlgorithmCreateFunc__btCollisionAlgorithmCreateFunc_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 95744 + 8 | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCompoundCompoundCollisionAlgorithm__CreateFunc__CreateFunc_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionAlgorithmCreateFunc__btCollisionAlgorithmCreateFunc_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 95824 + 8 | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCompoundCollisionAlgorithm__SwappedCreateFunc__SwappedCreateFunc_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionAlgorithmCreateFunc__btCollisionAlgorithmCreateFunc_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 95912 + 8 | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btEmptyAlgorithm__CreateFunc__CreateFunc_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionAlgorithmCreateFunc__btCollisionAlgorithmCreateFunc_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 95996 + 8 | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btSphereSphereCollisionAlgorithm__CreateFunc__CreateFunc_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionAlgorithmCreateFunc__btCollisionAlgorithmCreateFunc_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 96064 + 8 | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btSphereTriangleCollisionAlgorithm__CreateFunc__CreateFunc_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionAlgorithmCreateFunc__btCollisionAlgorithmCreateFunc_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 96148 + 8 | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btBoxBoxCollisionAlgorithm__CreateFunc__CreateFunc_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionAlgorithmCreateFunc__btCollisionAlgorithmCreateFunc_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 96232 + 8 | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConvexPlaneCollisionAlgorithm__CreateFunc__CreateFunc_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionAlgorithmCreateFunc__btCollisionAlgorithmCreateFunc_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 96308 + 8 | 0; + HEAP32[($4 + 8 | 0) >> 2] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btPoolAllocator__btPoolAllocator_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $22 = 0, $32 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 24 | 0) >> 2] = $0; + HEAP32[($5 + 20 | 0) >> 2] = $1; + HEAP32[($5 + 16 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 24 | 0) >> 2] | 0; + HEAP32[($5 + 28 | 0) >> 2] = $6; + HEAP32[$6 >> 2] = HEAP32[($5 + 20 | 0) >> 2] | 0; + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + btSpinMutex__btSpinMutex_28_29($6 + 20 | 0 | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(Math_imul(HEAP32[$6 >> 2] | 0, HEAP32[($6 + 4 | 0) >> 2] | 0) | 0, 16 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($6 + 16 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[($6 + 8 | 0) >> 2] = HEAP32[($6 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($6 + 4 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + $22 = (HEAP32[($5 + 8 | 0) >> 2] | 0) + -1 | 0; + HEAP32[($5 + 8 | 0) >> 2] = $22; + if (!$22) { + break label$1 + } + HEAP32[(HEAP32[($5 + 12 | 0) >> 2] | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + (HEAP32[$6 >> 2] | 0) | 0; + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + (HEAP32[$6 >> 2] | 0) | 0; + continue label$2; + }; + } + HEAP32[(HEAP32[($5 + 12 | 0) >> 2] | 0) >> 2] = 0; + $32 = HEAP32[($5 + 28 | 0) >> 2] | 0; + __stack_pointer = $5 + 32 | 0; + return $32 | 0; + } + + function btCollisionAlgorithmCreateFunc__btCollisionAlgorithmCreateFunc_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 95632 + 8 | 0; + HEAP8[($4 + 4 | 0) >> 0] = 0; + return $4 | 0; + } + + function btSpinMutex__btSpinMutex_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 0; + return $4 | 0; + } + + function btDefaultCollisionConfiguration___btDefaultCollisionConfiguration_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0, $18 = 0, $22 = 0, $26 = 0, $30 = 0, $34 = 0, $38 = 0, $42 = 0, $46 = 0, $50 = 0, $54 = 0, $58 = 0, $62 = 0, $66 = 0, $70 = 0, $74 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $4; + HEAP32[$4 >> 2] = 95360 + 8 | 0; + label$1 : { + if (!((HEAPU8[($4 + 20 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + btPoolAllocator___btPoolAllocator_28_29(HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 16 | 0) >> 2] | 0 | 0); + } + label$2 : { + if (!((HEAPU8[($4 + 12 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btPoolAllocator___btPoolAllocator_28_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + } + $18 = HEAP32[($4 + 28 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$18 >> 2] | 0) >> 2] | 0 | 0]($18) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 28 | 0) >> 2] | 0 | 0); + $22 = HEAP32[($4 + 32 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$22 >> 2] | 0) >> 2] | 0 | 0]($22) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 32 | 0) >> 2] | 0 | 0); + $26 = HEAP32[($4 + 36 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$26 >> 2] | 0) >> 2] | 0 | 0]($26) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 36 | 0) >> 2] | 0 | 0); + $30 = HEAP32[($4 + 40 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$30 >> 2] | 0) >> 2] | 0 | 0]($30) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 40 | 0) >> 2] | 0 | 0); + $34 = HEAP32[($4 + 44 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$34 >> 2] | 0) >> 2] | 0 | 0]($34) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 44 | 0) >> 2] | 0 | 0); + $38 = HEAP32[($4 + 48 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$38 >> 2] | 0) >> 2] | 0 | 0]($38) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 48 | 0) >> 2] | 0 | 0); + $42 = HEAP32[($4 + 52 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$42 >> 2] | 0) >> 2] | 0 | 0]($42) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 52 | 0) >> 2] | 0 | 0); + $46 = HEAP32[($4 + 56 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$46 >> 2] | 0) >> 2] | 0 | 0]($46) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 56 | 0) >> 2] | 0 | 0); + $50 = HEAP32[($4 + 72 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$50 >> 2] | 0) >> 2] | 0 | 0]($50) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 72 | 0) >> 2] | 0 | 0); + $54 = HEAP32[($4 + 76 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$54 >> 2] | 0) >> 2] | 0 | 0]($54) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 76 | 0) >> 2] | 0 | 0); + $58 = HEAP32[($4 + 68 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$58 >> 2] | 0) >> 2] | 0 | 0]($58) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 68 | 0) >> 2] | 0 | 0); + $62 = HEAP32[($4 + 84 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$62 >> 2] | 0) >> 2] | 0 | 0]($62) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 84 | 0) >> 2] | 0 | 0); + $66 = HEAP32[($4 + 80 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$66 >> 2] | 0) >> 2] | 0 | 0]($66) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 80 | 0) >> 2] | 0 | 0); + $70 = HEAP32[($4 + 24 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$70 >> 2] | 0) >> 2] | 0 | 0]($70) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0); + btCollisionConfiguration___btCollisionConfiguration_28_29($4 | 0) | 0; + $74 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $74 | 0; + } + + function btPoolAllocator___btPoolAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 16 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCollisionConfiguration___btCollisionConfiguration_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btDefaultCollisionConfiguration___btDefaultCollisionConfiguration_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[699 | 0]($4) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btDefaultCollisionConfiguration__getClosestPointsAlgorithmCreateFunc_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $123 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 8 | 0) >> 2] = $0; + HEAP32[($5 + 4 | 0) >> 2] = $1; + HEAP32[$5 >> 2] = $2; + $6 = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$2 + } + if (!((HEAP32[$5 >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($6 + 56 | 0) >> 2] | 0; + break label$1; + } + label$3 : { + if (!((HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$3 + } + if (!((HEAP32[$5 >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($6 + 72 | 0) >> 2] | 0; + break label$1; + } + label$4 : { + if (!((HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[$5 >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($6 + 76 | 0) >> 2] | 0; + break label$1; + } + label$5 : { + if (!((btBroadphaseProxy__isConvex_28int_29(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$5 + } + if (!((HEAP32[$5 >> 2] | 0 | 0) == (28 | 0) & 1 | 0)) { + break label$5 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($6 + 84 | 0) >> 2] | 0; + break label$1; + } + label$6 : { + if (!((btBroadphaseProxy__isConvex_28int_29(HEAP32[$5 >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$6 + } + if (!((HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) == (28 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($6 + 80 | 0) >> 2] | 0; + break label$1; + } + label$7 : { + if (!((btBroadphaseProxy__isConvex_28int_29(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$7 + } + if (!((btBroadphaseProxy__isConvex_28int_29(HEAP32[$5 >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$7 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($6 + 28 | 0) >> 2] | 0; + break label$1; + } + label$8 : { + if (!((btBroadphaseProxy__isConvex_28int_29(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$8 + } + if (!((btBroadphaseProxy__isConcave_28int_29(HEAP32[$5 >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$8 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($6 + 32 | 0) >> 2] | 0; + break label$1; + } + label$9 : { + if (!((btBroadphaseProxy__isConvex_28int_29(HEAP32[$5 >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$9 + } + if (!((btBroadphaseProxy__isConcave_28int_29(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$9 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($6 + 36 | 0) >> 2] | 0; + break label$1; + } + label$10 : { + if (!((btBroadphaseProxy__isCompound_28int_29(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$10 + } + if (!((btBroadphaseProxy__isCompound_28int_29(HEAP32[$5 >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$10 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($6 + 44 | 0) >> 2] | 0; + break label$1; + } + label$11 : { + if (!((btBroadphaseProxy__isCompound_28int_29(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$11 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($6 + 40 | 0) >> 2] | 0; + break label$1; + } + label$12 : { + if (!((btBroadphaseProxy__isCompound_28int_29(HEAP32[$5 >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$12 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($6 + 48 | 0) >> 2] | 0; + break label$1; + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($6 + 52 | 0) >> 2] | 0; + } + $123 = HEAP32[($5 + 12 | 0) >> 2] | 0; + __stack_pointer = $5 + 16 | 0; + return $123 | 0; + } + + function btDefaultCollisionConfiguration__getCollisionAlgorithmCreateFunc_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $126 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 8 | 0) >> 2] = $0; + HEAP32[($5 + 4 | 0) >> 2] = $1; + HEAP32[$5 >> 2] = $2; + $6 = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$2 + } + if (!((HEAP32[$5 >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($6 + 56 | 0) >> 2] | 0; + break label$1; + } + label$3 : { + if (!((HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$3 + } + if (!((HEAP32[$5 >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($6 + 72 | 0) >> 2] | 0; + break label$1; + } + label$4 : { + if (!((HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[$5 >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($6 + 76 | 0) >> 2] | 0; + break label$1; + } + label$5 : { + if (HEAP32[($5 + 4 | 0) >> 2] | 0) { + break label$5 + } + if (HEAP32[$5 >> 2] | 0) { + break label$5 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($6 + 68 | 0) >> 2] | 0; + break label$1; + } + label$6 : { + if (!((btBroadphaseProxy__isConvex_28int_29(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$6 + } + if (!((HEAP32[$5 >> 2] | 0 | 0) == (28 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($6 + 84 | 0) >> 2] | 0; + break label$1; + } + label$7 : { + if (!((btBroadphaseProxy__isConvex_28int_29(HEAP32[$5 >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$7 + } + if (!((HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) == (28 | 0) & 1 | 0)) { + break label$7 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($6 + 80 | 0) >> 2] | 0; + break label$1; + } + label$8 : { + if (!((btBroadphaseProxy__isConvex_28int_29(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$8 + } + if (!((btBroadphaseProxy__isConvex_28int_29(HEAP32[$5 >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$8 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($6 + 28 | 0) >> 2] | 0; + break label$1; + } + label$9 : { + if (!((btBroadphaseProxy__isConvex_28int_29(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$9 + } + if (!((btBroadphaseProxy__isConcave_28int_29(HEAP32[$5 >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$9 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($6 + 32 | 0) >> 2] | 0; + break label$1; + } + label$10 : { + if (!((btBroadphaseProxy__isConvex_28int_29(HEAP32[$5 >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$10 + } + if (!((btBroadphaseProxy__isConcave_28int_29(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$10 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($6 + 36 | 0) >> 2] | 0; + break label$1; + } + label$11 : { + if (!((btBroadphaseProxy__isCompound_28int_29(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$11 + } + if (!((btBroadphaseProxy__isCompound_28int_29(HEAP32[$5 >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$11 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($6 + 44 | 0) >> 2] | 0; + break label$1; + } + label$12 : { + if (!((btBroadphaseProxy__isCompound_28int_29(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$12 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($6 + 40 | 0) >> 2] | 0; + break label$1; + } + label$13 : { + if (!((btBroadphaseProxy__isCompound_28int_29(HEAP32[$5 >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$13 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($6 + 48 | 0) >> 2] | 0; + break label$1; + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($6 + 52 | 0) >> 2] | 0; + } + $126 = HEAP32[($5 + 12 | 0) >> 2] | 0; + __stack_pointer = $5 + 16 | 0; + return $126 | 0; + } + + function btDefaultCollisionConfiguration__getPersistentManifoldPool_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btDefaultCollisionConfiguration__getCollisionAlgorithmPool_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0; + } + + function btCollisionConfiguration___btCollisionConfiguration_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btConvexConcaveCollisionAlgorithm__CreateFunc___CreateFunc_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionAlgorithmCreateFunc___btCollisionAlgorithmCreateFunc_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCollisionAlgorithmCreateFunc___btCollisionAlgorithmCreateFunc_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btConvexConcaveCollisionAlgorithm__CreateFunc___CreateFunc_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConvexConcaveCollisionAlgorithm__CreateFunc___CreateFunc_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btConvexConcaveCollisionAlgorithm__CreateFunc__CreateCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $8 = 0, $15 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $8 = HEAP32[(HEAP32[($6 + 24 | 0) >> 2] | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($8, 80) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $15 = btConvexConcaveCollisionAlgorithm__operator_20new_28unsigned_20long_2c_20void__29(80 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0; + btConvexConcaveCollisionAlgorithm__btConvexConcaveCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20bool_29($15 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0) | 0; + __stack_pointer = $6 + 32 | 0; + return $15 | 0; + } + + function btConvexConcaveCollisionAlgorithm__operator_20new_28unsigned_20long_2c_20void__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return HEAP32[($4 + 8 | 0) >> 2] | 0 | 0; + } + + function btCollisionAlgorithmCreateFunc___btCollisionAlgorithmCreateFunc_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionAlgorithmCreateFunc___btCollisionAlgorithmCreateFunc_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCollisionAlgorithmCreateFunc__CreateCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0; + $6 = __stack_pointer - 16 | 0; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + return 0 | 0; + } + + function btConvexConcaveCollisionAlgorithm__SwappedCreateFunc___SwappedCreateFunc_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionAlgorithmCreateFunc___btCollisionAlgorithmCreateFunc_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConvexConcaveCollisionAlgorithm__SwappedCreateFunc___SwappedCreateFunc_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConvexConcaveCollisionAlgorithm__SwappedCreateFunc___SwappedCreateFunc_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btConvexConcaveCollisionAlgorithm__SwappedCreateFunc__CreateCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $8 = 0, $15 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $8 = HEAP32[(HEAP32[($6 + 24 | 0) >> 2] | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($8, 80) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $15 = btConvexConcaveCollisionAlgorithm__operator_20new_28unsigned_20long_2c_20void__29(80 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0; + btConvexConcaveCollisionAlgorithm__btConvexConcaveCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20bool_29($15 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0, 1 & 1 | 0 | 0) | 0; + __stack_pointer = $6 + 32 | 0; + return $15 | 0; + } + + function btCompoundCollisionAlgorithm__CreateFunc___CreateFunc_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionAlgorithmCreateFunc___btCollisionAlgorithmCreateFunc_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCompoundCollisionAlgorithm__CreateFunc___CreateFunc_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCompoundCollisionAlgorithm__CreateFunc___CreateFunc_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCompoundCollisionAlgorithm__CreateFunc__CreateCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $8 = 0, $13 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $8 = HEAP32[(HEAP32[($6 + 24 | 0) >> 2] | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($8, 84) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $13 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btCompoundCollisionAlgorithm__btCompoundCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20bool_29($13 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0) | 0; + __stack_pointer = $6 + 32 | 0; + return $13 | 0; + } + + function btCompoundCompoundCollisionAlgorithm__CreateFunc___CreateFunc_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionAlgorithmCreateFunc___btCollisionAlgorithmCreateFunc_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCompoundCompoundCollisionAlgorithm__CreateFunc___CreateFunc_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCompoundCompoundCollisionAlgorithm__CreateFunc___CreateFunc_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCompoundCompoundCollisionAlgorithm__CreateFunc__CreateCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $8 = 0, $13 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $8 = HEAP32[(HEAP32[($6 + 24 | 0) >> 2] | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($8, 116) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $13 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btCompoundCompoundCollisionAlgorithm__btCompoundCompoundCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20bool_29($13 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0) | 0; + __stack_pointer = $6 + 32 | 0; + return $13 | 0; + } + + function btCompoundCollisionAlgorithm__SwappedCreateFunc___SwappedCreateFunc_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionAlgorithmCreateFunc___btCollisionAlgorithmCreateFunc_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCompoundCollisionAlgorithm__SwappedCreateFunc___SwappedCreateFunc_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCompoundCollisionAlgorithm__SwappedCreateFunc___SwappedCreateFunc_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCompoundCollisionAlgorithm__SwappedCreateFunc__CreateCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $8 = 0, $13 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $8 = HEAP32[(HEAP32[($6 + 24 | 0) >> 2] | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($8, 84) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $13 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btCompoundCollisionAlgorithm__btCompoundCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20bool_29($13 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0, 1 & 1 | 0 | 0) | 0; + __stack_pointer = $6 + 32 | 0; + return $13 | 0; + } + + function btEmptyAlgorithm__CreateFunc___CreateFunc_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionAlgorithmCreateFunc___btCollisionAlgorithmCreateFunc_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btEmptyAlgorithm__CreateFunc___CreateFunc_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btEmptyAlgorithm__CreateFunc___CreateFunc_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btEmptyAlgorithm__CreateFunc__CreateCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $8 = 0, $13 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $8 = HEAP32[(HEAP32[($6 + 24 | 0) >> 2] | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($8, 8) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $13 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btEmptyAlgorithm__btEmptyAlgorithm_28btCollisionAlgorithmConstructionInfo_20const__29($13 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $6 + 32 | 0; + return $13 | 0; + } + + function btSphereSphereCollisionAlgorithm__CreateFunc___CreateFunc_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionAlgorithmCreateFunc___btCollisionAlgorithmCreateFunc_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btSphereSphereCollisionAlgorithm__CreateFunc___CreateFunc_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btSphereSphereCollisionAlgorithm__CreateFunc___CreateFunc_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btSphereSphereCollisionAlgorithm__CreateFunc__CreateCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $8 = 0, $13 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $8 = HEAP32[(HEAP32[($6 + 24 | 0) >> 2] | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($8, 16) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $13 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btSphereSphereCollisionAlgorithm__btSphereSphereCollisionAlgorithm_28btPersistentManifold__2c_20btCollisionAlgorithmConstructionInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($13 | 0, 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $6 + 32 | 0; + return $13 | 0; + } + + function btSphereTriangleCollisionAlgorithm__CreateFunc___CreateFunc_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionAlgorithmCreateFunc___btCollisionAlgorithmCreateFunc_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btSphereTriangleCollisionAlgorithm__CreateFunc___CreateFunc_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btSphereTriangleCollisionAlgorithm__CreateFunc___CreateFunc_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btSphereTriangleCollisionAlgorithm__CreateFunc__CreateCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $9 = 0, $14 = 0, $7 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + $9 = HEAP32[(HEAP32[($6 + 24 | 0) >> 2] | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$9 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($9, 20) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $14 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btSphereTriangleCollisionAlgorithm__btSphereTriangleCollisionAlgorithm_28btPersistentManifold__2c_20btCollisionAlgorithmConstructionInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20bool_29($14 | 0, HEAP32[((HEAP32[($6 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0, (HEAPU8[($7 + 4 | 0) >> 0] | 0) & 1 | 0 | 0) | 0; + __stack_pointer = $6 + 32 | 0; + return $14 | 0; + } + + function btBoxBoxCollisionAlgorithm__CreateFunc___CreateFunc_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionAlgorithmCreateFunc___btCollisionAlgorithmCreateFunc_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btBoxBoxCollisionAlgorithm__CreateFunc___CreateFunc_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btBoxBoxCollisionAlgorithm__CreateFunc___CreateFunc_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btBoxBoxCollisionAlgorithm__CreateFunc__CreateCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $9 = 0, $14 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + HEAP32[($6 + 12 | 0) >> 2] = 16; + $9 = HEAP32[(HEAP32[($6 + 24 | 0) >> 2] | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$9 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($9, HEAP32[($6 + 12 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + $14 = HEAP32[($6 + 8 | 0) >> 2] | 0; + btBoxBoxCollisionAlgorithm__btBoxBoxCollisionAlgorithm_28btPersistentManifold__2c_20btCollisionAlgorithmConstructionInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($14 | 0, 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $6 + 32 | 0; + return $14 | 0; + } + + function btConvexPlaneCollisionAlgorithm__CreateFunc___CreateFunc_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionAlgorithmCreateFunc___btCollisionAlgorithmCreateFunc_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConvexPlaneCollisionAlgorithm__CreateFunc___CreateFunc_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConvexPlaneCollisionAlgorithm__CreateFunc___CreateFunc_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btConvexPlaneCollisionAlgorithm__CreateFunc__CreateCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $9 = 0, $17 = 0, $27 = 0, $37 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 24 | 0) >> 2] = $0; + HEAP32[($6 + 20 | 0) >> 2] = $1; + HEAP32[($6 + 16 | 0) >> 2] = $2; + HEAP32[($6 + 12 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 24 | 0) >> 2] | 0; + $9 = HEAP32[(HEAP32[($6 + 20 | 0) >> 2] | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$9 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($9, 28) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if ((HEAPU8[($7 + 4 | 0) >> 0] | 0) & 1 | 0) { + break label$2 + } + $17 = HEAP32[($6 + 8 | 0) >> 2] | 0; + btConvexPlaneCollisionAlgorithm__btConvexPlaneCollisionAlgorithm_28btPersistentManifold__2c_20btCollisionAlgorithmConstructionInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20bool_2c_20int_2c_20int_29($17 | 0, 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0, HEAP32[($7 + 8 | 0) >> 2] | 0 | 0, HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($6 + 28 | 0) >> 2] = $17; + break label$1; + } + $27 = HEAP32[($6 + 8 | 0) >> 2] | 0; + btConvexPlaneCollisionAlgorithm__btConvexPlaneCollisionAlgorithm_28btPersistentManifold__2c_20btCollisionAlgorithmConstructionInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20bool_2c_20int_2c_20int_29($27 | 0, 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0, 1 & 1 | 0 | 0, HEAP32[($7 + 8 | 0) >> 2] | 0 | 0, HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($6 + 28 | 0) >> 2] = $27; + } + $37 = HEAP32[($6 + 28 | 0) >> 2] | 0; + __stack_pointer = $6 + 32 | 0; + return $37 | 0; + } + + function _GLOBAL__sub_I_btDefaultCollisionConfiguration_cpp() { + __cxx_global_var_init_21(); + return; + } + + function __cxx_global_var_init_22() { + btInfMaskConverter__btInfMaskConverter_28int_29(114036 | 0, 2139095040 | 0) | 0; + return; + } + + function btEmptyAlgorithm__btEmptyAlgorithm_28btCollisionAlgorithmConstructionInfo_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btCollisionAlgorithm__btCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo_20const__29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$5 >> 2] = 96388 + 8 | 0; + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function btEmptyAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0; + $7 = __stack_pointer - 32 | 0; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + return; + } + + function btEmptyAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0; + $7 = __stack_pointer - 32 | 0; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + return Math_fround(Math_fround(1.0)); + } + + function btEmptyAlgorithm___btEmptyAlgorithm_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionAlgorithm___btCollisionAlgorithm_28_29_1($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btEmptyAlgorithm___btEmptyAlgorithm_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btEmptyAlgorithm___btEmptyAlgorithm_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btEmptyAlgorithm__getAllContactManifolds_28btAlignedObjectArray_btPersistentManifold____29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return; + } + + function _GLOBAL__sub_I_btEmptyCollisionAlgorithm_cpp() { + __cxx_global_var_init_22(); + return; + } + + function __cxx_global_var_init_23() { + btInfMaskConverter__btInfMaskConverter_28int_29(114040 | 0, 2139095040 | 0) | 0; + return; + } + + function btHashedSimplePairCache__btHashedSimplePairCache_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 96448 + 8 | 0; + btAlignedObjectArray_btSimplePair___btAlignedObjectArray_28_29($4 + 4 | 0 | 0) | 0; + btAlignedObjectArray_int___btAlignedObjectArray_28_29($4 + 24 | 0 | 0) | 0; + btAlignedObjectArray_int___btAlignedObjectArray_28_29($4 + 44 | 0 | 0) | 0; + HEAP32[($3 + 8 | 0) >> 2] = 2; + btAlignedObjectArray_btSimplePair___reserve_28int_29($4 + 4 | 0 | 0, HEAP32[($3 + 8 | 0) >> 2] | 0 | 0); + btHashedSimplePairCache__growTables_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btHashedSimplePairCache__growTables_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $22 = 0, $29 = 0, $95 = 0, $100 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $3 = __stack_pointer - 48 | 0; + __stack_pointer = $3; + HEAP32[($3 + 44 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 44 | 0) >> 2] | 0; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btAlignedObjectArray_btSimplePair___capacity_28_29_20const($4 + 4 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((btAlignedObjectArray_int___size_28_29_20const($4 + 24 | 0 | 0) | 0 | 0) < (HEAP32[($3 + 40 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btAlignedObjectArray_int___size_28_29_20const($4 + 24 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_i32$1; + $22 = HEAP32[($3 + 40 | 0) >> 2] | 0; + HEAP32[($3 + 32 | 0) >> 2] = 0; + btAlignedObjectArray_int___resize_28int_2c_20int_20const__29($4 + 24 | 0 | 0, $22 | 0, $3 + 32 | 0 | 0); + $29 = HEAP32[($3 + 40 | 0) >> 2] | 0; + HEAP32[($3 + 28 | 0) >> 2] = 0; + btAlignedObjectArray_int___resize_28int_2c_20int_20const__29($4 + 44 | 0 | 0, $29 | 0, $3 + 28 | 0 | 0); + HEAP32[($3 + 24 | 0) >> 2] = 0; + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($3 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($3 + 40 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($4 + 24 | 0 | 0, HEAP32[($3 + 24 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = -1), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[($3 + 24 | 0) >> 2] = (HEAP32[($3 + 24 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + HEAP32[($3 + 24 | 0) >> 2] = 0; + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($3 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($3 + 40 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($4 + 44 | 0 | 0, HEAP32[($3 + 24 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = -1), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[($3 + 24 | 0) >> 2] = (HEAP32[($3 + 24 | 0) >> 2] | 0) + 1 | 0; + continue label$5; + }; + } + HEAP32[($3 + 24 | 0) >> 2] = 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($3 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($3 + 36 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btAlignedObjectArray_btSimplePair___operator_5b_5d_28int_29($4 + 4 | 0 | 0, HEAP32[($3 + 24 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($3 + 16 | 0) >> 2] = HEAP32[(HEAP32[($3 + 20 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = HEAP32[((HEAP32[($3 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = (btHashedSimplePairCache__getHash_28unsigned_20int_2c_20unsigned_20int_29($4 | 0, HEAP32[($3 + 16 | 0) >> 2] | 0 | 0, HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0) & ((btAlignedObjectArray_btSimplePair___capacity_28_29_20const($4 + 4 | 0 | 0) | 0) - 1 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + $95 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($4 + 24 | 0 | 0, HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($4 + 44 | 0 | 0, HEAP32[($3 + 24 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $95), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $100 = HEAP32[($3 + 24 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($4 + 24 | 0 | 0, HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $100), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[($3 + 24 | 0) >> 2] = (HEAP32[($3 + 24 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + __stack_pointer = $3 + 48 | 0; + return; + } + + function btHashedSimplePairCache__getHash_28unsigned_20int_2c_20unsigned_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0 | ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 16 | 0) | 0; + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + (((HEAP32[$5 >> 2] | 0) << 15 | 0) ^ -1 | 0) | 0; + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) ^ ((HEAP32[$5 >> 2] | 0) >>> 10 | 0) | 0; + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + ((HEAP32[$5 >> 2] | 0) << 3 | 0) | 0; + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) ^ ((HEAP32[$5 >> 2] | 0) >>> 6 | 0) | 0; + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + (((HEAP32[$5 >> 2] | 0) << 11 | 0) ^ -1 | 0) | 0; + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) ^ ((HEAP32[$5 >> 2] | 0) >>> 16 | 0) | 0; + return HEAP32[$5 >> 2] | 0 | 0; + } + + function btHashedSimplePairCache___btHashedSimplePairCache_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 96448 + 8 | 0; + btAlignedObjectArray_int____btAlignedObjectArray_28_29($4 + 44 | 0 | 0) | 0; + btAlignedObjectArray_int____btAlignedObjectArray_28_29($4 + 24 | 0 | 0) | 0; + btAlignedObjectArray_btSimplePair____btAlignedObjectArray_28_29($4 + 4 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btHashedSimplePairCache___btHashedSimplePairCache_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[745 | 0]($4) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btHashedSimplePairCache__removeAllPairs_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btSimplePair___clear_28_29($4 + 4 | 0 | 0); + btAlignedObjectArray_int___clear_28_29($4 + 24 | 0 | 0); + btAlignedObjectArray_int___clear_28_29($4 + 44 | 0 | 0); + HEAP32[($3 + 8 | 0) >> 2] = 2; + btAlignedObjectArray_btSimplePair___reserve_28int_29($4 + 4 | 0 | 0, HEAP32[($3 + 8 | 0) >> 2] | 0 | 0); + btHashedSimplePairCache__growTables_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btHashedSimplePairCache__findPair_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $44 = 0, $91 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 24 | 0) >> 2] = $0; + HEAP32[($5 + 20 | 0) >> 2] = $1; + HEAP32[($5 + 16 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 24 | 0) >> 2] | 0; + HEAP32[(0 + 114052 | 0) >> 2] = (HEAP32[(0 + 114052 | 0) >> 2] | 0) + 1 | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = (btHashedSimplePairCache__getHash_28unsigned_20int_2c_20unsigned_20int_29($6 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0, HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) | 0) & ((btAlignedObjectArray_btSimplePair___capacity_28_29_20const($6 + 4 | 0 | 0) | 0) - 1 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) >= (btAlignedObjectArray_int___size_28_29_20const($6 + 24 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 28 | 0) >> 2] = 0; + break label$1; + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 24 | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + label$3 : while (1) { + $44 = 0; + label$4 : { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) != (-1 | 0) & 1 | 0)) { + break label$4 + } + $44 = ((btHashedSimplePairCache__equalsPair_28btSimplePair_20const__2c_20int_2c_20int_29($6 | 0, btAlignedObjectArray_btSimplePair___operator_5b_5d_28int_29($6 + 4 | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0, HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) | 0) & 1 | 0 | 0) == (0 | 0); + } + label$5 : { + if (!($44 & 1 | 0)) { + break label$5 + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 44 | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + continue label$3; + } + break label$3; + }; + label$6 : { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) == (-1 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[($5 + 28 | 0) >> 2] = 0; + break label$1; + } + label$7 : { + if ((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btSimplePair___size_28_29_20const($6 + 4 | 0 | 0) | 0 | 0) & 1 | 0) { + break label$7 + } + __assert_fail(87330 | 0, 75393 | 0, 88 | 0, 71055 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btSimplePair___operator_5b_5d_28int_29($6 + 4 | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + } + $91 = HEAP32[($5 + 28 | 0) >> 2] | 0; + __stack_pointer = $5 + 32 | 0; + return $91 | 0; + } + + function btHashedSimplePairCache__equalsPair_28btSimplePair_20const__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $16 = 0; + $6 = __stack_pointer - 16 | 0; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $16 = 0; + label$1 : { + if (!((HEAP32[(HEAP32[($6 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (HEAP32[($6 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + $16 = (HEAP32[((HEAP32[($6 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (HEAP32[$6 >> 2] | 0 | 0); + } + return $16 & 1 | 0 | 0; + } + + function btHashedSimplePairCache__internalAddPair_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $56 = 0, $65 = 0, $70 = 0, $76 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 40 | 0) >> 2] = $0; + HEAP32[($5 + 36 | 0) >> 2] = $1; + HEAP32[($5 + 32 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 40 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = (btHashedSimplePairCache__getHash_28unsigned_20int_2c_20unsigned_20int_29($6 | 0, HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0) & ((btAlignedObjectArray_btSimplePair___capacity_28_29_20const($6 + 4 | 0 | 0) | 0) - 1 | 0) | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btHashedSimplePairCache__internalFindPair_28int_2c_20int_2c_20int_29($6 | 0, HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, HEAP32[($5 + 32 | 0) >> 2] | 0 | 0, HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 44 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + break label$1; + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btSimplePair___size_28_29_20const($6 + 4 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btSimplePair___capacity_28_29_20const($6 + 4 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btSimplePair___expandNonInitializing_28_29($6 + 4 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btSimplePair___capacity_28_29_20const($6 + 4 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + label$3 : { + if (!((HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + btHashedSimplePairCache__growTables_28_29($6 | 0); + (wasm2js_i32$0 = $5, wasm2js_i32$1 = (btHashedSimplePairCache__getHash_28unsigned_20int_2c_20unsigned_20int_29($6 | 0, HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0) & ((btAlignedObjectArray_btSimplePair___capacity_28_29_20const($6 + 4 | 0 | 0) | 0) - 1 | 0) | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + } + $56 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btSimplePair__btSimplePair_28int_2c_20int_29($56 | 0, HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5 + 24 | 0) >> 2] = $56; + HEAP32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] = 0; + $65 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 24 | 0 | 0, HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 44 | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $65), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $70 = HEAP32[($5 + 20 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 24 | 0 | 0, HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $70), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[($5 + 44 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + } + $76 = HEAP32[($5 + 44 | 0) >> 2] | 0; + __stack_pointer = $5 + 48 | 0; + return $76 | 0; + } + + function btHashedSimplePairCache__internalFindPair_28int_2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $21 = 0, $68 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 24 | 0) >> 2] = $0; + HEAP32[($6 + 20 | 0) >> 2] = $1; + HEAP32[($6 + 16 | 0) >> 2] = $2; + HEAP32[($6 + 12 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 24 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($7 + 24 | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + label$1 : while (1) { + $21 = 0; + label$2 : { + if (!((HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) != (-1 | 0) & 1 | 0)) { + break label$2 + } + $21 = ((btHashedSimplePairCache__equalsPair_28btSimplePair_20const__2c_20int_2c_20int_29($7 | 0, btAlignedObjectArray_btSimplePair___operator_5b_5d_28int_29($7 + 4 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) | 0) & 1 | 0 | 0) == (0 | 0); + } + label$3 : { + if (!($21 & 1 | 0)) { + break label$3 + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($7 + 44 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + continue label$1; + } + break label$1; + }; + label$4 : { + label$5 : { + if (!((HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) == (-1 | 0) & 1 | 0)) { + break label$5 + } + HEAP32[($6 + 28 | 0) >> 2] = 0; + break label$4; + } + label$6 : { + if ((HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btSimplePair___size_28_29_20const($7 + 4 | 0 | 0) | 0 | 0) & 1 | 0) { + break label$6 + } + __assert_fail(87330 | 0, 79692 | 0, 159 | 0, 71064 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btAlignedObjectArray_btSimplePair___operator_5b_5d_28int_29($7 + 4 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + } + $68 = HEAP32[($6 + 28 | 0) >> 2] | 0; + __stack_pointer = $6 + 32 | 0; + return $68 | 0; + } + + function btAlignedObjectArray_btSimplePair___expandNonInitializing_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0, $22 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btAlignedObjectArray_btSimplePair___size_28_29_20const($4 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btSimplePair___capacity_28_29_20const($4 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btSimplePair___reserve_28int_29($4 | 0, btAlignedObjectArray_btSimplePair___allocSize_28int_29($4 | 0, btAlignedObjectArray_btSimplePair___size_28_29_20const($4 | 0) | 0 | 0) | 0 | 0); + } + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 1 | 0; + $22 = (HEAP32[($4 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($3 + 8 | 0) >> 2] | 0, 12) | 0; + __stack_pointer = $3 + 16 | 0; + return $22 | 0; + } + + function btHashedSimplePairCache__removeOverlappingPair_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, i64toi32_i32$0 = 0, $229 = 0, $235 = 0, $112 = 0, $121 = 0, $212 = 0, $221 = 0, $233 = 0, i64toi32_i32$1 = 0, $727 = 0, $243 = 0, $248 = 0, $256 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 64 | 0; + __stack_pointer = $5; + HEAP32[($5 + 56 | 0) >> 2] = $0; + HEAP32[($5 + 52 | 0) >> 2] = $1; + HEAP32[($5 + 48 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 56 | 0) >> 2] | 0; + HEAP32[(0 + 114044 | 0) >> 2] = (HEAP32[(0 + 114044 | 0) >> 2] | 0) + 1 | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = (btHashedSimplePairCache__getHash_28unsigned_20int_2c_20unsigned_20int_29($6 | 0, HEAP32[($5 + 52 | 0) >> 2] | 0 | 0, HEAP32[($5 + 48 | 0) >> 2] | 0 | 0) | 0) & ((btAlignedObjectArray_btSimplePair___capacity_28_29_20const($6 + 4 | 0 | 0) | 0) - 1 | 0) | 0), HEAP32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btHashedSimplePairCache__internalFindPair_28int_2c_20int_2c_20int_29($6 | 0, HEAP32[($5 + 52 | 0) >> 2] | 0 | 0, HEAP32[($5 + 48 | 0) >> 2] | 0 | 0, HEAP32[($5 + 44 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 60 | 0) >> 2] = 0; + break label$1; + } + HEAP32[($5 + 36 | 0) >> 2] = HEAP32[((HEAP32[($5 + 40 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = ((HEAP32[($5 + 40 | 0) >> 2] | 0) - (btAlignedObjectArray_btSimplePair___operator_5b_5d_28int_29($6 + 4 | 0 | 0, 0 | 0) | 0) | 0 | 0) / (12 | 0) | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + label$3 : { + if ((HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btSimplePair___size_28_29_20const($6 + 4 | 0 | 0) | 0 | 0) & 1 | 0) { + break label$3 + } + __assert_fail(87368 | 0, 75393 | 0, 194 | 0, 71006 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 24 | 0 | 0, HEAP32[($5 + 44 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + label$4 : { + if ((HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) != (-1 | 0) & 1 | 0) { + break label$4 + } + __assert_fail(84057 | 0, 75393 | 0, 198 | 0, 71006 | 0); + wasm2js_trap(); + } + HEAP32[($5 + 24 | 0) >> 2] = -1; + label$5 : { + label$6 : while (1) { + if (!((HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) != (HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + HEAP32[($5 + 24 | 0) >> 2] = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 44 | 0 | 0, HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + continue label$6; + }; + } + label$7 : { + label$8 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) != (-1 | 0) & 1 | 0)) { + break label$8 + } + label$9 : { + if ((HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 44 | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) == (HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$9 + } + __assert_fail(66363 | 0, 75393 | 0, 209 | 0, 71006 | 0); + wasm2js_trap(); + } + $112 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 44 | 0 | 0, HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 44 | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $112), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + break label$7; + } + $121 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 44 | 0 | 0, HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 24 | 0 | 0, HEAP32[($5 + 44 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $121), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = (btAlignedObjectArray_btSimplePair___size_28_29_20const($6 + 4 | 0 | 0) | 0) - 1 | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + label$10 : { + if (!((HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) == (HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$10 + } + btAlignedObjectArray_btSimplePair___pop_back_28_29($6 + 4 | 0 | 0); + HEAP32[($5 + 60 | 0) >> 2] = HEAP32[($5 + 36 | 0) >> 2] | 0; + break label$1; + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btSimplePair___operator_5b_5d_28int_29($6 + 4 | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = (btHashedSimplePairCache__getHash_28unsigned_20int_2c_20unsigned_20int_29($6 | 0, HEAP32[(HEAP32[($5 + 16 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0) & ((btAlignedObjectArray_btSimplePair___capacity_28_29_20const($6 + 4 | 0 | 0) | 0) - 1 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 24 | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + label$11 : { + if ((HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) != (-1 | 0) & 1 | 0) { + break label$11 + } + __assert_fail(84057 | 0, 75393 | 0, 236 | 0, 71006 | 0); + wasm2js_trap(); + } + HEAP32[($5 + 24 | 0) >> 2] = -1; + label$12 : { + label$13 : while (1) { + if (!((HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) != (HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$12 + } + HEAP32[($5 + 24 | 0) >> 2] = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 44 | 0 | 0, HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + continue label$13; + }; + } + label$14 : { + label$15 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) != (-1 | 0) & 1 | 0)) { + break label$15 + } + label$16 : { + if ((HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 44 | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) == (HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$16 + } + __assert_fail(66393 | 0, 75393 | 0, 247 | 0, 71006 | 0); + wasm2js_trap(); + } + $212 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 44 | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 44 | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $212), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + break label$14; + } + $221 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 44 | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 24 | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $221), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + } + $229 = btAlignedObjectArray_btSimplePair___operator_5b_5d_28int_29($6 + 4 | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0; + $233 = btAlignedObjectArray_btSimplePair___operator_5b_5d_28int_29($6 + 4 | 0 | 0, HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$0 = HEAP32[$229 >> 2] | 0; + i64toi32_i32$1 = HEAP32[($229 + 4 | 0) >> 2] | 0; + $727 = i64toi32_i32$0; + i64toi32_i32$0 = $233; + HEAP32[i64toi32_i32$0 >> 2] = $727; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $235 = 8; + HEAP32[(i64toi32_i32$0 + $235 | 0) >> 2] = HEAP32[($229 + $235 | 0) >> 2] | 0; + $243 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 24 | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 44 | 0 | 0, HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $243), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $248 = HEAP32[($5 + 32 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 24 | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $248), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btSimplePair___pop_back_28_29($6 + 4 | 0 | 0); + HEAP32[($5 + 60 | 0) >> 2] = HEAP32[($5 + 36 | 0) >> 2] | 0; + } + $256 = HEAP32[($5 + 60 | 0) >> 2] | 0; + __stack_pointer = $5 + 64 | 0; + return $256 | 0; + } + + function btAlignedObjectArray_btSimplePair___pop_back_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85800 | 0, 78192 | 0, 201 | 0, 77711 | 0); + wasm2js_trap(); + } + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + -1 | 0; + __stack_pointer = $3 + 16 | 0; + return; + } + + function btHashedSimplePairCache__addOverlappingPair_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $14 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[(0 + 114048 | 0) >> 2] = (HEAP32[(0 + 114048 | 0) >> 2] | 0) + 1 | 0; + $14 = btHashedSimplePairCache__internalAddPair_28int_2c_20int_29($6 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $14 | 0; + } + + function btHashedSimplePairCache__getOverlappingPairArrayPtr_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $8 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $8 = btAlignedObjectArray_btSimplePair___operator_5b_5d_28int_29((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0 | 0, 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $8 | 0; + } + + function _GLOBAL__sub_I_btHashedSimplePairCache_cpp() { + __cxx_global_var_init_23(); + return; + } + + function __cxx_global_var_init_24() { + btInfMaskConverter__btInfMaskConverter_28int_29(114056 | 0, 2139095040 | 0) | 0; + return; + } + + function btManifoldResult__calculateCombinedRollingFriction_28btCollisionObject_20const__2c_20btCollisionObject_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $29 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(btCollisionObject__getRollingFriction_28_29_20const(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0)) * Math_fround(btCollisionObject__getFriction_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0))) + Math_fround(Math_fround(btCollisionObject__getRollingFriction_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0)) * Math_fround(btCollisionObject__getFriction_28_29_20const(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0))))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[$4 >> 2] = Math_fround(10.0); + label$1 : { + if (!(Math_fround(HEAPF32[($4 + 4 | 0) >> 2]) < Math_fround(-10.0) & 1 | 0)) { + break label$1 + } + HEAPF32[($4 + 4 | 0) >> 2] = Math_fround(-10.0); + } + label$2 : { + if (!(Math_fround(HEAPF32[($4 + 4 | 0) >> 2]) > Math_fround(10.0) & 1 | 0)) { + break label$2 + } + HEAPF32[($4 + 4 | 0) >> 2] = Math_fround(10.0); + } + $29 = Math_fround(HEAPF32[($4 + 4 | 0) >> 2]); + __stack_pointer = $4 + 16 | 0; + return Math_fround($29); + } + + function btCollisionObject__getRollingFriction_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 236 | 0) >> 2])); + } + + function btCollisionObject__getFriction_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 228 | 0) >> 2])); + } + + function btManifoldResult__calculateCombinedSpinningFriction_28btCollisionObject_20const__2c_20btCollisionObject_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $29 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(btCollisionObject__getSpinningFriction_28_29_20const(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0)) * Math_fround(btCollisionObject__getFriction_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0))) + Math_fround(Math_fround(btCollisionObject__getSpinningFriction_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0)) * Math_fround(btCollisionObject__getFriction_28_29_20const(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0))))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[$4 >> 2] = Math_fround(10.0); + label$1 : { + if (!(Math_fround(HEAPF32[($4 + 4 | 0) >> 2]) < Math_fround(-10.0) & 1 | 0)) { + break label$1 + } + HEAPF32[($4 + 4 | 0) >> 2] = Math_fround(-10.0); + } + label$2 : { + if (!(Math_fround(HEAPF32[($4 + 4 | 0) >> 2]) > Math_fround(10.0) & 1 | 0)) { + break label$2 + } + HEAPF32[($4 + 4 | 0) >> 2] = Math_fround(10.0); + } + $29 = Math_fround(HEAPF32[($4 + 4 | 0) >> 2]); + __stack_pointer = $4 + 16 | 0; + return Math_fround($29); + } + + function btCollisionObject__getSpinningFriction_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 240 | 0) >> 2])); + } + + function btManifoldResult__calculateCombinedFriction_28btCollisionObject_20const__2c_20btCollisionObject_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $23 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(btCollisionObject__getFriction_28_29_20const(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0)) * Math_fround(btCollisionObject__getFriction_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[$4 >> 2] = Math_fround(10.0); + label$1 : { + if (!(Math_fround(HEAPF32[($4 + 4 | 0) >> 2]) < Math_fround(-10.0) & 1 | 0)) { + break label$1 + } + HEAPF32[($4 + 4 | 0) >> 2] = Math_fround(-10.0); + } + label$2 : { + if (!(Math_fround(HEAPF32[($4 + 4 | 0) >> 2]) > Math_fround(10.0) & 1 | 0)) { + break label$2 + } + HEAPF32[($4 + 4 | 0) >> 2] = Math_fround(10.0); + } + $23 = Math_fround(HEAPF32[($4 + 4 | 0) >> 2]); + __stack_pointer = $4 + 16 | 0; + return Math_fround($23); + } + + function btManifoldResult__calculateCombinedRestitution_28btCollisionObject_20const__2c_20btCollisionObject_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $9 = Math_fround(Math_fround(btCollisionObject__getRestitution_28_29_20const(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0)) * Math_fround(btCollisionObject__getRestitution_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0))); + __stack_pointer = $4 + 16 | 0; + return Math_fround($9); + } + + function btCollisionObject__getRestitution_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 232 | 0) >> 2])); + } + + function btManifoldResult__btManifoldResult_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btDiscreteCollisionDetectorInterface__Result__Result_28_29($6 | 0) | 0; + HEAP32[$6 >> 2] = 96512 + 8 | 0; + HEAP32[($6 + 4 | 0) >> 2] = 0; + HEAP32[($6 + 8 | 0) >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($5 + 4 | 0) >> 2] | 0; + HEAPF32[($6 + 32 | 0) >> 2] = Math_fround(0 | 0); + __stack_pointer = $5 + 16 | 0; + return $6 | 0; + } + + function btManifoldResult__addContactPoint_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + var $6 = 0, $7 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $74 = 0, $90 = 0, $108 = 0, $124 = 0, $148 = 0, $150 = 0, $161 = 0, $163 = 0, $189 = 0, $204 = 0, $227 = 0, $242 = 0, $255 = 0, $263 = 0, $382 = 0, $389 = 0, $42 = 0, $573 = 0, $577 = 0, $608 = 0, $612 = 0, $645 = 0, $649 = 0, $680 = 0, $684 = 0, $717 = 0, $730 = 0, $743 = 0, $753 = 0, $393 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 432 | 0; + __stack_pointer = $6; + HEAP32[($6 + 428 | 0) >> 2] = $0; + HEAP32[($6 + 424 | 0) >> 2] = $1; + HEAP32[($6 + 420 | 0) >> 2] = $2; + HEAPF32[($6 + 416 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 428 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($7 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(70583 | 0, 71961 | 0, 109 | 0, 67640 | 0); + wasm2js_trap(); + } + label$2 : { + label$3 : { + if (!(Math_fround(HEAPF32[($6 + 416 | 0) >> 2]) > Math_fround(btPersistentManifold__getContactBreakingThreshold_28_29_20const(HEAP32[($7 + 4 | 0) >> 2] | 0 | 0)) & 1 | 0)) { + break label$3 + } + break label$2; + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = (btPersistentManifold__getBody0_28_29_20const(HEAP32[($7 + 4 | 0) >> 2] | 0 | 0) | 0 | 0) != (btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 415 | 0) >> 0] = wasm2js_i32$1; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = (btPersistentManifold__getNumContacts_28_29_20const(HEAP32[($7 + 4 | 0) >> 2] | 0 | 0) | 0 | 0) == (0 | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 414 | 0) >> 0] = wasm2js_i32$1; + $42 = HEAP32[($6 + 420 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20float_20const__29($6 + 380 | 0 | 0, HEAP32[($6 + 424 | 0) >> 2] | 0 | 0, $6 + 416 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 396 | 0 | 0, $42 | 0, $6 + 380 | 0 | 0); + btVector3__btVector3_28_29($6 + 360 | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 344 | 0 | 0) | 0; + label$4 : { + label$5 : { + if (!((HEAPU8[($6 + 415 | 0) >> 0] | 0) & 1 | 0)) { + break label$5 + } + btTransform__invXform_28btVector3_20const__29_20const($6 + 328 | 0 | 0, btCollisionObject__getWorldTransform_28_29_20const(btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, $6 + 396 | 0 | 0); + $74 = 8; + i64toi32_i32$2 = ($6 + 328 | 0) + $74 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $573 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 360 | 0) + $74 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $573; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 328 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 332 | 0) >> 2] | 0; + $577 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 360 | 0) >> 2] = $577; + HEAP32[($6 + 364 | 0) >> 2] = i64toi32_i32$0; + btTransform__invXform_28btVector3_20const__29_20const($6 + 312 | 0 | 0, btCollisionObject__getWorldTransform_28_29_20const(btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, HEAP32[($6 + 420 | 0) >> 2] | 0 | 0); + $90 = 8; + i64toi32_i32$2 = ($6 + 312 | 0) + $90 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $608 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 344 | 0) + $90 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $608; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 312 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 316 | 0) >> 2] | 0; + $612 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 344 | 0) >> 2] = $612; + HEAP32[($6 + 348 | 0) >> 2] = i64toi32_i32$0; + break label$4; + } + btTransform__invXform_28btVector3_20const__29_20const($6 + 296 | 0 | 0, btCollisionObject__getWorldTransform_28_29_20const(btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, $6 + 396 | 0 | 0); + $108 = 8; + i64toi32_i32$2 = ($6 + 296 | 0) + $108 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $645 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 360 | 0) + $108 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $645; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 296 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 300 | 0) >> 2] | 0; + $649 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 360 | 0) >> 2] = $649; + HEAP32[($6 + 364 | 0) >> 2] = i64toi32_i32$0; + btTransform__invXform_28btVector3_20const__29_20const($6 + 280 | 0 | 0, btCollisionObject__getWorldTransform_28_29_20const(btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, HEAP32[($6 + 420 | 0) >> 2] | 0 | 0); + $124 = 8; + i64toi32_i32$2 = ($6 + 280 | 0) + $124 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $680 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 344 | 0) + $124 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $680; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 280 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 284 | 0) >> 2] | 0; + $684 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 344 | 0) >> 2] = $684; + HEAP32[($6 + 348 | 0) >> 2] = i64toi32_i32$0; + } + btManifoldPoint__btManifoldPoint_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_29($6 + 72 | 0 | 0, $6 + 360 | 0 | 0, $6 + 344 | 0 | 0, HEAP32[($6 + 424 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 416 | 0) >> 2]))) | 0; + $148 = ($6 + 72 | 0) + 48 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 396 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 400 | 0) >> 2] | 0; + $717 = i64toi32_i32$0; + i64toi32_i32$0 = $148; + HEAP32[i64toi32_i32$0 >> 2] = $717; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $150 = 8; + i64toi32_i32$2 = ($6 + 396 | 0) + $150 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $730 = i64toi32_i32$1; + i64toi32_i32$1 = $148 + $150 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $730; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $161 = ($6 + 72 | 0) + 32 | 0; + i64toi32_i32$2 = HEAP32[($6 + 420 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $743 = i64toi32_i32$0; + i64toi32_i32$0 = $161; + HEAP32[i64toi32_i32$0 >> 2] = $743; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $163 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $163 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $753 = i64toi32_i32$1; + i64toi32_i32$1 = $161 + $163 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $753; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 68 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 64 | 0) >> 2] = wasm2js_i32$1; + label$6 : { + label$7 : { + if (!((HEAPU8[($6 + 415 | 0) >> 0] | 0) & 1 | 0)) { + break label$7 + } + HEAP32[($6 + 172 | 0) >> 2] = HEAP32[($7 + 20 | 0) >> 2] | 0; + HEAP32[($6 + 176 | 0) >> 2] = HEAP32[($7 + 16 | 0) >> 2] | 0; + HEAP32[($6 + 180 | 0) >> 2] = HEAP32[($7 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 184 | 0) >> 2] = HEAP32[($7 + 24 | 0) >> 2] | 0; + label$8 : { + label$9 : { + if (!((HEAP32[(HEAP32[($7 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$9 + } + $189 = HEAP32[((HEAP32[(HEAP32[($7 + 12 | 0) >> 2] | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + break label$8; + } + $189 = HEAP32[((HEAP32[($7 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + } + HEAP32[($6 + 272 | 0) >> 2] = $189; + label$10 : { + label$11 : { + if (!((HEAP32[(HEAP32[($7 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$11 + } + $204 = HEAP32[((HEAP32[(HEAP32[($7 + 8 | 0) >> 2] | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + break label$10; + } + $204 = HEAP32[((HEAP32[($7 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + } + HEAP32[($6 + 276 | 0) >> 2] = $204; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 68 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 64 | 0) >> 2] = wasm2js_i32$1; + break label$6; + } + HEAP32[($6 + 172 | 0) >> 2] = HEAP32[($7 + 16 | 0) >> 2] | 0; + HEAP32[($6 + 176 | 0) >> 2] = HEAP32[($7 + 20 | 0) >> 2] | 0; + HEAP32[($6 + 180 | 0) >> 2] = HEAP32[($7 + 24 | 0) >> 2] | 0; + HEAP32[($6 + 184 | 0) >> 2] = HEAP32[($7 + 28 | 0) >> 2] | 0; + label$12 : { + label$13 : { + if (!((HEAP32[(HEAP32[($7 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$13 + } + $227 = HEAP32[((HEAP32[(HEAP32[($7 + 12 | 0) >> 2] | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + break label$12; + } + $227 = HEAP32[((HEAP32[($7 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + } + HEAP32[($6 + 276 | 0) >> 2] = $227; + label$14 : { + label$15 : { + if (!((HEAP32[(HEAP32[($7 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$15 + } + $242 = HEAP32[((HEAP32[(HEAP32[($7 + 8 | 0) >> 2] | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + break label$14; + } + $242 = HEAP32[((HEAP32[($7 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + } + HEAP32[($6 + 272 | 0) >> 2] = $242; + } + HEAP32[($6 + 60 | 0) >> 2] = HEAP32[($6 + 272 | 0) >> 2] | 0; + HEAP32[($6 + 56 | 0) >> 2] = HEAP32[($6 + 276 | 0) >> 2] | 0; + label$16 : { + if (!((btCollisionShape__isCompound_28_29_20const(HEAP32[($6 + 60 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$16 + } + HEAP32[($6 + 52 | 0) >> 2] = HEAP32[($6 + 60 | 0) >> 2] | 0; + $255 = btCompoundShape__getChildShape_28int_29_20const(HEAP32[($6 + 52 | 0) >> 2] | 0 | 0, HEAP32[($6 + 180 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($6 + 272 | 0) >> 2] = $255; + HEAP32[($6 + 60 | 0) >> 2] = $255; + } + label$17 : { + if (!((btCollisionShape__isCompound_28_29_20const(HEAP32[($6 + 56 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$17 + } + HEAP32[($6 + 48 | 0) >> 2] = HEAP32[($6 + 56 | 0) >> 2] | 0; + $263 = btCompoundShape__getChildShape_28int_29_20const(HEAP32[($6 + 48 | 0) >> 2] | 0 | 0, HEAP32[($6 + 184 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($6 + 276 | 0) >> 2] = $263; + HEAP32[($6 + 56 | 0) >> 2] = $263; + } + label$18 : { + label$19 : { + if (!((btCollisionShape__getMaterial_28_29_20const(HEAP32[($6 + 60 | 0) >> 2] | 0 | 0) | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$19 + } + if (!((btCollisionShape__getMaterial_28_29_20const(HEAP32[($6 + 56 | 0) >> 2] | 0 | 0) | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$19 + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btCollisionShape__getMaterial_28_29_20const(HEAP32[($6 + 60 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btCollisionShape__getMaterial_28_29_20const(HEAP32[($6 + 56 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_i32$1; + cc__ccMaterial__combined_28cc__ccMaterial_20const__29_20const($6 + 20 | 0 | 0, HEAP32[($6 + 44 | 0) >> 2] | 0 | 0, HEAP32[($6 + 40 | 0) >> 2] | 0 | 0); + HEAP32[($6 + 36 | 0) >> 2] = $6 + 20 | 0; + HEAPF32[($6 + 168 | 0) >> 2] = Math_fround(HEAPF32[(HEAP32[($6 + 36 | 0) >> 2] | 0) >> 2]); + HEAPF32[($6 + 156 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($6 + 36 | 0) >> 2] | 0) + 4 | 0) >> 2]); + HEAPF32[($6 + 160 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($6 + 36 | 0) >> 2] | 0) + 8 | 0) >> 2]); + HEAPF32[($6 + 164 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($6 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2]); + break label$18; + } + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btManifoldResult__calculateCombinedFriction_28btCollisionObject_20const__2c_20btCollisionObject_20const__29(btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0) | 0 | 0, btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 156 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btManifoldResult__calculateCombinedRestitution_28btCollisionObject_20const__2c_20btCollisionObject_20const__29(btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0) | 0 | 0, btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 168 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btManifoldResult__calculateCombinedRollingFriction_28btCollisionObject_20const__2c_20btCollisionObject_20const__29(btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0) | 0 | 0, btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 160 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btManifoldResult__calculateCombinedSpinningFriction_28btCollisionObject_20const__2c_20btCollisionObject_20const__29(btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0) | 0 | 0, btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 164 | 0) >> 2] = wasm2js_f32$0; + } + void_20btPlaneSpace1_btVector3__28btVector3_20const__2c_20btVector3__2c_20btVector3__29(($6 + 72 | 0) + 64 | 0 | 0, ($6 + 72 | 0) + 168 | 0 | 0, ($6 + 72 | 0) + 184 | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btPersistentManifold__getCacheEntry_28btManifoldPoint_20const__29_20const(HEAP32[($7 + 4 | 0) >> 2] | 0 | 0, $6 + 72 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$20 : { + label$21 : { + if (!((HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$21 + } + btPersistentManifold__replaceContactPoint_28btManifoldPoint_20const__2c_20int_29(HEAP32[($7 + 4 | 0) >> 2] | 0 | 0, $6 + 72 | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0); + break label$20; + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btPersistentManifold__addManifoldPoint_28btManifoldPoint_20const__2c_20bool_29(HEAP32[($7 + 4 | 0) >> 2] | 0 | 0, $6 + 72 | 0 | 0, 0 & 1 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + } + label$22 : { + if (!((HEAP32[(0 + 114060 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$22 + } + label$23 : { + if ((btCollisionObject__getCollisionFlags_28_29_20const(btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) & 8 | 0) { + break label$23 + } + if (!((btCollisionObject__getCollisionFlags_28_29_20const(btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) & 8 | 0)) { + break label$22 + } + } + label$24 : { + label$25 : { + if (!((HEAPU8[($6 + 415 | 0) >> 0] | 0) & 1 | 0)) { + break label$25 + } + $382 = HEAP32[($7 + 12 | 0) >> 2] | 0; + break label$24; + } + $382 = HEAP32[($7 + 8 | 0) >> 2] | 0; + } + HEAP32[($6 + 12 | 0) >> 2] = $382; + label$26 : { + label$27 : { + if (!((HEAPU8[($6 + 415 | 0) >> 0] | 0) & 1 | 0)) { + break label$27 + } + $389 = HEAP32[($7 + 8 | 0) >> 2] | 0; + break label$26; + } + $389 = HEAP32[($7 + 12 | 0) >> 2] | 0; + } + HEAP32[($6 + 8 | 0) >> 2] = $389; + $393 = HEAP32[(0 + 114060 | 0) >> 2] | 0; + FUNCTION_TABLE[$393 | 0](btPersistentManifold__getContactPoint_28int_29(HEAP32[($7 + 4 | 0) >> 2] | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) | 0, HEAP32[($6 + 12 | 0) >> 2] | 0, HEAP32[($6 + 172 | 0) >> 2] | 0, HEAP32[($6 + 180 | 0) >> 2] | 0, HEAP32[($6 + 8 | 0) >> 2] | 0, HEAP32[($6 + 176 | 0) >> 2] | 0, HEAP32[($6 + 184 | 0) >> 2] | 0) | 0; + } + if (!((HEAP32[(0 + 115360 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + if (!((HEAPU8[($6 + 414 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + FUNCTION_TABLE[HEAP32[(0 + 115360 | 0) >> 2] | 0 | 0]($7 + 4 | 0); + } + __stack_pointer = $6 + 432 | 0; + return; + } + + function cc__ccMaterial__combined_28cc__ccMaterial_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $1; + HEAP32[($5 + 24 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + HEAPF32[($5 + 20 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[$6 >> 2]) * Math_fround(HEAPF32[(HEAP32[($5 + 24 | 0) >> 2] | 0) >> 2])); + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($6 + 4 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2])); + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($6 + 8 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[($6 + 4 | 0) >> 2]))); + HEAPF32[($5 + 8 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($6 + 12 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2]) * Math_fround(HEAPF32[($6 + 4 | 0) >> 2]))); + HEAPF32[($5 + 4 | 0) >> 2] = Math_fround(10.0); + label$1 : { + if (!(Math_fround(HEAPF32[($5 + 16 | 0) >> 2]) < Math_fround(-10.0) & 1 | 0)) { + break label$1 + } + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(-10.0); + } + label$2 : { + if (!(Math_fround(HEAPF32[($5 + 16 | 0) >> 2]) > Math_fround(10.0) & 1 | 0)) { + break label$2 + } + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(10.0); + } + label$3 : { + if (!(Math_fround(HEAPF32[($5 + 12 | 0) >> 2]) < Math_fround(-10.0) & 1 | 0)) { + break label$3 + } + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(-10.0); + } + label$4 : { + if (!(Math_fround(HEAPF32[($5 + 12 | 0) >> 2]) > Math_fround(10.0) & 1 | 0)) { + break label$4 + } + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(10.0); + } + label$5 : { + if (!(Math_fround(HEAPF32[($5 + 8 | 0) >> 2]) < Math_fround(-10.0) & 1 | 0)) { + break label$5 + } + HEAPF32[($5 + 8 | 0) >> 2] = Math_fround(-10.0); + } + label$6 : { + if (!(Math_fround(HEAPF32[($5 + 8 | 0) >> 2]) > Math_fround(10.0) & 1 | 0)) { + break label$6 + } + HEAPF32[($5 + 8 | 0) >> 2] = Math_fround(10.0); + } + cc__ccMaterial__ccMaterial_28float_2c_20float_2c_20float_2c_20float_29($0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 20 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($5 + 16 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($5 + 12 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($5 + 8 | 0) >> 2]))) | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btPersistentManifold__replaceContactPoint_28btManifoldPoint_20const__2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 64 | 0; + __stack_pointer = $5; + HEAP32[($5 + 60 | 0) >> 2] = $0; + HEAP32[($5 + 56 | 0) >> 2] = $1; + HEAP32[($5 + 52 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 60 | 0) >> 2] | 0; + label$1 : { + if ((btPersistentManifold__validContactDistance_28btManifoldPoint_20const__29_20const($6 | 0, HEAP32[($5 + 56 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$1 + } + __assert_fail(86236 | 0, 79943 | 0, 190 | 0, 67620 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btManifoldPoint__getLifeTime_28_29_20const(($6 + 4 | 0) + Math_imul(HEAP32[($5 + 52 | 0) >> 2] | 0, 208) | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 48 | 0) >> 2] = wasm2js_i32$1; + HEAPF32[($5 + 44 | 0) >> 2] = Math_fround(HEAPF32[((($6 + 4 | 0) + Math_imul(HEAP32[($5 + 52 | 0) >> 2] | 0, 208) | 0) + 132 | 0) >> 2]); + HEAPF32[($5 + 40 | 0) >> 2] = Math_fround(HEAPF32[((($6 + 4 | 0) + Math_imul(HEAP32[($5 + 52 | 0) >> 2] | 0, 208) | 0) + 136 | 0) >> 2]); + HEAPF32[($5 + 36 | 0) >> 2] = Math_fround(HEAPF32[((($6 + 4 | 0) + Math_imul(HEAP32[($5 + 52 | 0) >> 2] | 0, 208) | 0) + 140 | 0) >> 2]); + HEAP8[($5 + 35 | 0) >> 0] = 1; + label$2 : { + if (!((HEAP32[((HEAP32[($5 + 56 | 0) >> 2] | 0) + 128 | 0) >> 2] | 0) & 16 | 0)) { + break label$2 + } + HEAPF32[($5 + 28 | 0) >> 2] = Math_fround(HEAPF32[((($6 + 4 | 0) + Math_imul(HEAP32[($5 + 52 | 0) >> 2] | 0, 208) | 0) + 84 | 0) >> 2]); + HEAPF32[($5 + 24 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 20 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 40 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 40 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($5 + 36 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 36 | 0) >> 2]))); + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 28 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 44 | 0) >> 2])) + Math_fround(HEAPF32[($5 + 24 | 0) >> 2])); + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 16 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 16 | 0) >> 2])); + HEAP8[($5 + 35 | 0) >> 0] = Math_fround(HEAPF32[($5 + 20 | 0) >> 2]) > Math_fround(HEAPF32[($5 + 16 | 0) >> 2]) & 1 | 0; + } + label$3 : { + if (!((HEAPU8[($5 + 35 | 0) >> 0] | 0) & 1 | 0)) { + break label$3 + } + label$4 : { + if ((HEAP32[($5 + 48 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$4 + } + __assert_fail(86102 | 0, 79943 | 0, 218 | 0, 67620 | 0); + wasm2js_trap(); + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[((($6 + 4 | 0) + Math_imul(HEAP32[($5 + 52 | 0) >> 2] | 0, 208) | 0) + 116 | 0) >> 2] | 0; + __memcpy(($6 + 4 | 0) + Math_imul(HEAP32[($5 + 52 | 0) >> 2] | 0, 208) | 0 | 0, HEAP32[($5 + 56 | 0) >> 2] | 0 | 0, 208 | 0) | 0; + HEAP32[((($6 + 4 | 0) + Math_imul(HEAP32[($5 + 52 | 0) >> 2] | 0, 208) | 0) + 116 | 0) >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAPF32[((($6 + 4 | 0) + Math_imul(HEAP32[($5 + 52 | 0) >> 2] | 0, 208) | 0) + 132 | 0) >> 2] = Math_fround(HEAPF32[($5 + 44 | 0) >> 2]); + HEAPF32[((($6 + 4 | 0) + Math_imul(HEAP32[($5 + 52 | 0) >> 2] | 0, 208) | 0) + 136 | 0) >> 2] = Math_fround(HEAPF32[($5 + 40 | 0) >> 2]); + HEAPF32[((($6 + 4 | 0) + Math_imul(HEAP32[($5 + 52 | 0) >> 2] | 0, 208) | 0) + 140 | 0) >> 2] = Math_fround(HEAPF32[($5 + 36 | 0) >> 2]); + } + HEAP32[((($6 + 4 | 0) + Math_imul(HEAP32[($5 + 52 | 0) >> 2] | 0, 208) | 0) + 164 | 0) >> 2] = HEAP32[($5 + 48 | 0) >> 2] | 0; + __stack_pointer = $5 + 64 | 0; + return; + } + + function btPersistentManifold__validContactDistance_28btManifoldPoint_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $11 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $11 = Math_fround(HEAPF32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 80 | 0) >> 2]) <= Math_fround(btPersistentManifold__getContactBreakingThreshold_28_29_20const(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0)) & 1 | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btManifoldResult___btManifoldResult_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btManifoldResult___btManifoldResult_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function _GLOBAL__sub_I_btManifoldResult_cpp() { + __cxx_global_var_init_24(); + return; + } + + function __cxx_global_var_init_25() { + btInfMaskConverter__btInfMaskConverter_28int_29(114064 | 0, 2139095040 | 0) | 0; + return; + } + + function btSphereSphereCollisionAlgorithm__btSphereSphereCollisionAlgorithm_28btPersistentManifold__2c_20btCollisionAlgorithmConstructionInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0, $24 = 0, $33 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0, wasm2js_i32$4 = 0, wasm2js_i32$5 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 24 | 0) >> 2] = $0; + HEAP32[($7 + 20 | 0) >> 2] = $1; + HEAP32[($7 + 16 | 0) >> 2] = $2; + HEAP32[($7 + 12 | 0) >> 2] = $3; + HEAP32[($7 + 8 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 24 | 0) >> 2] | 0; + HEAP32[($7 + 28 | 0) >> 2] = $8; + btActivatingCollisionAlgorithm__btActivatingCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($8 | 0, HEAP32[($7 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7 + 12 | 0) >> 2] | 0 | 0, HEAP32[($7 + 8 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$8 >> 2] = 96572 + 8 | 0; + HEAP8[($8 + 8 | 0) >> 0] = 0; + HEAP32[($8 + 12 | 0) >> 2] = HEAP32[($7 + 20 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($8 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$1 + } + $24 = HEAP32[($8 + 4 | 0) >> 2] | 0; + (wasm2js_i32$0 = $8, wasm2js_i32$1 = ((((wasm2js_i32$3 = $24, wasm2js_i32$4 = btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$5 = btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$2 = HEAP32[((HEAP32[$24 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$2](wasm2js_i32$3 | 0, wasm2js_i32$4 | 0, wasm2js_i32$5 | 0) | 0)), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + HEAP8[($8 + 8 | 0) >> 0] = 1; + } + $33 = HEAP32[($7 + 28 | 0) >> 2] | 0; + __stack_pointer = $7 + 32 | 0; + return $33 | 0; + } + + function btSphereSphereCollisionAlgorithm___btSphereSphereCollisionAlgorithm_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0, $18 = 0, $22 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $4; + HEAP32[$4 >> 2] = 96572 + 8 | 0; + label$1 : { + if (!((HEAPU8[($4 + 8 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + $18 = HEAP32[($4 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$18 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($18, HEAP32[($4 + 12 | 0) >> 2] | 0); + } + } + btActivatingCollisionAlgorithm___btActivatingCollisionAlgorithm_28_29($4 | 0) | 0; + $22 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $22 | 0; + } + + function btSphereSphereCollisionAlgorithm___btSphereSphereCollisionAlgorithm_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[753 | 0]($4) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btSphereSphereCollisionAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $8 = 0, i64toi32_i32$2 = 0, $86 = 0, $113 = 0, $322 = 0, $326 = 0, $97 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $7 = __stack_pointer - 144 | 0; + __stack_pointer = $7; + HEAP32[($7 + 140 | 0) >> 2] = $0; + HEAP32[($7 + 136 | 0) >> 2] = $1; + HEAP32[($7 + 132 | 0) >> 2] = $2; + HEAP32[($7 + 128 | 0) >> 2] = $3; + HEAP32[($7 + 124 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 140 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if ((HEAP32[($8 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$2 + } + break label$1; + } + btManifoldResult__setPersistentManifold_28btPersistentManifold__29(HEAP32[($7 + 124 | 0) >> 2] | 0 | 0, HEAP32[($8 + 12 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 136 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 120 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 132 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 116 | 0) >> 2] = wasm2js_i32$1; + operator__28btVector3_20const__2c_20btVector3_20const__29($7 + 100 | 0 | 0, btTransform__getOrigin_28_29_20const(btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 136 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29_20const(btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 132 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btVector3__length_28_29_20const($7 + 100 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 96 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btSphereShape__getRadius_28_29_20const(HEAP32[($7 + 120 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 92 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btSphereShape__getRadius_28_29_20const(HEAP32[($7 + 116 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 88 | 0) >> 2] = wasm2js_f32$0; + btPersistentManifold__clearManifold_28_29(HEAP32[($8 + 12 | 0) >> 2] | 0 | 0); + label$3 : { + if (!(Math_fround(HEAPF32[($7 + 96 | 0) >> 2]) > Math_fround(Math_fround(Math_fround(HEAPF32[($7 + 92 | 0) >> 2]) + Math_fround(HEAPF32[($7 + 88 | 0) >> 2])) + Math_fround(HEAPF32[((HEAP32[($7 + 124 | 0) >> 2] | 0) + 32 | 0) >> 2])) & 1 | 0)) { + break label$3 + } + break label$1; + } + HEAPF32[($7 + 84 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($7 + 96 | 0) >> 2]) - Math_fround(Math_fround(HEAPF32[($7 + 92 | 0) >> 2]) + Math_fround(HEAPF32[($7 + 88 | 0) >> 2]))); + HEAPF32[($7 + 60 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($7 + 56 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($7 + 52 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 64 | 0 | 0, $7 + 60 | 0 | 0, $7 + 56 | 0 | 0, $7 + 52 | 0 | 0) | 0; + label$4 : { + if (!(Math_fround(HEAPF32[($7 + 96 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$4 + } + operator__28btVector3_20const__2c_20float_20const__29_1($7 + 36 | 0 | 0, $7 + 100 | 0 | 0, $7 + 96 | 0 | 0); + $86 = 8; + i64toi32_i32$2 = ($7 + 36 | 0) + $86 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $322 = i64toi32_i32$0; + i64toi32_i32$0 = ($7 + 64 | 0) + $86 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $322; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $7; + i64toi32_i32$1 = HEAP32[($7 + 36 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($7 + 40 | 0) >> 2] | 0; + $326 = i64toi32_i32$1; + i64toi32_i32$1 = $7; + HEAP32[($7 + 64 | 0) >> 2] = $326; + HEAP32[($7 + 68 | 0) >> 2] = i64toi32_i32$0; + } + $97 = btTransform__getOrigin_28_29_20const(btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 132 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + operator__28float_20const__2c_20btVector3_20const__29($7 + 4 | 0 | 0, $7 + 88 | 0 | 0, $7 + 64 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($7 + 20 | 0 | 0, $97 | 0, $7 + 4 | 0 | 0); + $113 = HEAP32[($7 + 124 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$113 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($113, $7 + 64 | 0, $7 + 20 | 0, Math_fround(HEAPF32[($7 + 84 | 0) >> 2])); + } + __stack_pointer = $7 + 144 | 0; + return; + } + + function btSphereSphereCollisionAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0; + $7 = __stack_pointer - 32 | 0; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + return Math_fround(Math_fround(1.0)); + } + + function btSphereSphereCollisionAlgorithm__getAllContactManifolds_28btAlignedObjectArray_btPersistentManifold____29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + if (!((HEAPU8[($5 + 8 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btPersistentManifold____push_back_28btPersistentManifold__20const__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, $5 + 12 | 0 | 0); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function _GLOBAL__sub_I_btSphereSphereCollisionAlgorithm_cpp() { + __cxx_global_var_init_25(); + return; + } + + function __cxx_global_var_init_26() { + btInfMaskConverter__btInfMaskConverter_28int_29(114068 | 0, 2139095040 | 0) | 0; + return; + } + + function btSphereTriangleCollisionAlgorithm__btSphereTriangleCollisionAlgorithm_28btPersistentManifold__2c_20btCollisionAlgorithmConstructionInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20bool_29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, $10 = 0, $29 = 0, $38 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0, wasm2js_i32$4 = 0, wasm2js_i32$5 = 0; + $8 = __stack_pointer - 32 | 0; + __stack_pointer = $8; + HEAP32[($8 + 24 | 0) >> 2] = $0; + HEAP32[($8 + 20 | 0) >> 2] = $1; + HEAP32[($8 + 16 | 0) >> 2] = $2; + HEAP32[($8 + 12 | 0) >> 2] = $3; + HEAP32[($8 + 8 | 0) >> 2] = $4; + HEAP8[($8 + 7 | 0) >> 0] = $5; + $10 = HEAP32[($8 + 24 | 0) >> 2] | 0; + HEAP32[($8 + 28 | 0) >> 2] = $10; + btActivatingCollisionAlgorithm__btActivatingCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29($10 | 0, HEAP32[($8 + 16 | 0) >> 2] | 0 | 0, HEAP32[($8 + 12 | 0) >> 2] | 0 | 0, HEAP32[($8 + 8 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$10 >> 2] = 96648 + 8 | 0; + HEAP8[($10 + 8 | 0) >> 0] = 0; + HEAP32[($10 + 12 | 0) >> 2] = HEAP32[($8 + 20 | 0) >> 2] | 0; + HEAP8[($10 + 16 | 0) >> 0] = (HEAPU8[($8 + 7 | 0) >> 0] | 0) & 1 | 0; + label$1 : { + if ((HEAP32[($10 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$1 + } + $29 = HEAP32[($10 + 4 | 0) >> 2] | 0; + (wasm2js_i32$0 = $10, wasm2js_i32$1 = ((((wasm2js_i32$3 = $29, wasm2js_i32$4 = btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($8 + 12 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$5 = btCollisionObjectWrapper__getCollisionObject_28_29_20const(HEAP32[($8 + 8 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$2 = HEAP32[((HEAP32[$29 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$2](wasm2js_i32$3 | 0, wasm2js_i32$4 | 0, wasm2js_i32$5 | 0) | 0)), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + HEAP8[($10 + 8 | 0) >> 0] = 1; + } + $38 = HEAP32[($8 + 28 | 0) >> 2] | 0; + __stack_pointer = $8 + 32 | 0; + return $38 | 0; + } + + function btSphereTriangleCollisionAlgorithm___btSphereTriangleCollisionAlgorithm_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0, $18 = 0, $22 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $4; + HEAP32[$4 >> 2] = 96648 + 8 | 0; + label$1 : { + if (!((HEAPU8[($4 + 8 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + $18 = HEAP32[($4 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$18 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($18, HEAP32[($4 + 12 | 0) >> 2] | 0); + } + } + btActivatingCollisionAlgorithm___btActivatingCollisionAlgorithm_28_29($4 | 0) | 0; + $22 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $22 | 0; + } + + function btSphereTriangleCollisionAlgorithm___btSphereTriangleCollisionAlgorithm_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[758 | 0]($4) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btSphereTriangleCollisionAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0, $20 = 0, $27 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $7 = __stack_pointer - 192 | 0; + __stack_pointer = $7; + HEAP32[($7 + 188 | 0) >> 2] = $0; + HEAP32[($7 + 184 | 0) >> 2] = $1; + HEAP32[($7 + 180 | 0) >> 2] = $2; + HEAP32[($7 + 176 | 0) >> 2] = $3; + HEAP32[($7 + 172 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 188 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if ((HEAP32[($8 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$2 + } + break label$1; + } + label$3 : { + label$4 : { + if (!((HEAPU8[($8 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$4 + } + $20 = HEAP32[($7 + 180 | 0) >> 2] | 0; + break label$3; + } + $20 = HEAP32[($7 + 184 | 0) >> 2] | 0; + } + HEAP32[($7 + 168 | 0) >> 2] = $20; + label$5 : { + label$6 : { + if (!((HEAPU8[($8 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$6 + } + $27 = HEAP32[($7 + 184 | 0) >> 2] | 0; + break label$5; + } + $27 = HEAP32[($7 + 180 | 0) >> 2] | 0; + } + HEAP32[($7 + 164 | 0) >> 2] = $27; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 168 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 160 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCollisionObjectWrapper__getCollisionShape_28_29_20const(HEAP32[($7 + 164 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 156 | 0) >> 2] = wasm2js_i32$1; + btManifoldResult__setPersistentManifold_28btPersistentManifold__29(HEAP32[($7 + 172 | 0) >> 2] | 0 | 0, HEAP32[($8 + 12 | 0) >> 2] | 0 | 0); + SphereTriangleDetector__SphereTriangleDetector_28btSphereShape__2c_20btTriangleShape__2c_20float_29($7 + 140 | 0 | 0, HEAP32[($7 + 160 | 0) >> 2] | 0 | 0, HEAP32[($7 + 156 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(Math_fround(btPersistentManifold__getContactBreakingThreshold_28_29_20const(HEAP32[($8 + 12 | 0) >> 2] | 0 | 0)) + Math_fround(HEAPF32[((HEAP32[($7 + 172 | 0) >> 2] | 0) + 32 | 0) >> 2])))) | 0; + btDiscreteCollisionDetectorInterface__ClosestPointInput__ClosestPointInput_28_29($7 + 8 | 0 | 0) | 0; + HEAPF32[($7 + 136 | 0) >> 2] = Math_fround(999999984306749440.0); + btTransform__operator__28btTransform_20const__29($7 + 8 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 168 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + btTransform__operator__28btTransform_20const__29(($7 + 8 | 0) + 64 | 0 | 0, btCollisionObjectWrapper__getWorldTransform_28_29_20const(HEAP32[($7 + 164 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + HEAP8[($7 + 7 | 0) >> 0] = (HEAPU8[($8 + 16 | 0) >> 0] | 0) & 1 | 0; + SphereTriangleDetector__getClosestPoints_28btDiscreteCollisionDetectorInterface__ClosestPointInput_20const__2c_20btDiscreteCollisionDetectorInterface__Result__2c_20btIDebugDraw__2c_20bool_29($7 + 140 | 0 | 0, $7 + 8 | 0 | 0, HEAP32[($7 + 172 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7 + 176 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0, (HEAPU8[($7 + 7 | 0) >> 0] | 0) & 1 | 0 | 0); + label$7 : { + if (!((HEAPU8[($8 + 8 | 0) >> 0] | 0) & 1 | 0)) { + break label$7 + } + btManifoldResult__refreshContactPoints_28_29(HEAP32[($7 + 172 | 0) >> 2] | 0 | 0); + } + SphereTriangleDetector___SphereTriangleDetector_28_29($7 + 140 | 0 | 0) | 0; + } + __stack_pointer = $7 + 192 | 0; + return; + } + + function SphereTriangleDetector___SphereTriangleDetector_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btDiscreteCollisionDetectorInterface___btDiscreteCollisionDetectorInterface_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btSphereTriangleCollisionAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0; + $7 = __stack_pointer - 32 | 0; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + return Math_fround(Math_fround(1.0)); + } + + function btSphereTriangleCollisionAlgorithm__getAllContactManifolds_28btAlignedObjectArray_btPersistentManifold____29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + if (!((HEAPU8[($5 + 8 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btPersistentManifold____push_back_28btPersistentManifold__20const__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, $5 + 12 | 0 | 0); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function _GLOBAL__sub_I_btSphereTriangleCollisionAlgorithm_cpp() { + __cxx_global_var_init_26(); + return; + } + + function __cxx_global_var_init_27() { + btInfMaskConverter__btInfMaskConverter_28int_29(114072 | 0, 2139095040 | 0) | 0; + return; + } + + function SphereTriangleDetector__SphereTriangleDetector_28btSphereShape__2c_20btTriangleShape__2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAPF32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btDiscreteCollisionDetectorInterface__btDiscreteCollisionDetectorInterface_28_29($7 | 0) | 0; + HEAP32[$7 >> 2] = 96728 + 8 | 0; + HEAP32[($7 + 4 | 0) >> 2] = HEAP32[($6 + 8 | 0) >> 2] | 0; + HEAP32[($7 + 8 | 0) >> 2] = HEAP32[($6 + 4 | 0) >> 2] | 0; + HEAPF32[($7 + 12 | 0) >> 2] = Math_fround(HEAPF32[$6 >> 2]); + __stack_pointer = $6 + 16 | 0; + return $7 | 0; + } + + function SphereTriangleDetector__getClosestPoints_28btDiscreteCollisionDetectorInterface__ClosestPointInput_20const__2c_20btDiscreteCollisionDetectorInterface__Result__2c_20btIDebugDraw__2c_20bool_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $9 = 0, $90 = 0, $100 = 0; + $7 = __stack_pointer - 256 | 0; + __stack_pointer = $7; + HEAP32[($7 + 252 | 0) >> 2] = $0; + HEAP32[($7 + 248 | 0) >> 2] = $1; + HEAP32[($7 + 244 | 0) >> 2] = $2; + HEAP32[($7 + 240 | 0) >> 2] = $3; + HEAP8[($7 + 239 | 0) >> 0] = $4; + $9 = HEAP32[($7 + 252 | 0) >> 2] | 0; + HEAP32[($7 + 232 | 0) >> 2] = HEAP32[($7 + 248 | 0) >> 2] | 0; + HEAP32[($7 + 228 | 0) >> 2] = (HEAP32[($7 + 248 | 0) >> 2] | 0) + 64 | 0; + btVector3__btVector3_28_29($7 + 212 | 0 | 0) | 0; + btVector3__btVector3_28_29($7 + 196 | 0 | 0) | 0; + HEAPF32[($7 + 192 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($7 + 188 | 0) >> 2] = Math_fround(0 | 0); + btTransform__inverseTimes_28btTransform_20const__29_20const($7 + 124 | 0 | 0, HEAP32[($7 + 228 | 0) >> 2] | 0 | 0, HEAP32[($7 + 232 | 0) >> 2] | 0 | 0); + label$1 : { + if (!((SphereTriangleDetector__collide_28btVector3_20const__2c_20btVector3__2c_20btVector3__2c_20float__2c_20float__2c_20float_29($9 | 0, btTransform__getOrigin_28_29($7 + 124 | 0 | 0) | 0 | 0, $7 + 212 | 0 | 0, $7 + 196 | 0 | 0, $7 + 188 | 0 | 0, $7 + 192 | 0 | 0, Math_fround(Math_fround(HEAPF32[($9 + 12 | 0) >> 2]))) | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + label$3 : { + if (!((HEAPU8[($7 + 239 | 0) >> 0] | 0) & 1 | 0)) { + break label$3 + } + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($7 + 108 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($7 + 228 | 0) >> 2] | 0 | 0) | 0 | 0, $7 + 196 | 0 | 0); + operator__28btVector3_20const__29($7 + 92 | 0 | 0, $7 + 108 | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($7 + 60 | 0 | 0, HEAP32[($7 + 228 | 0) >> 2] | 0 | 0, $7 + 212 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($7 + 44 | 0 | 0, $7 + 108 | 0 | 0, $7 + 188 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($7 + 76 | 0 | 0, $7 + 60 | 0 | 0, $7 + 44 | 0 | 0); + $90 = HEAP32[($7 + 244 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$90 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($90, $7 + 92 | 0, $7 + 76 | 0, Math_fround(HEAPF32[($7 + 188 | 0) >> 2])); + break label$2; + } + $100 = HEAP32[($7 + 244 | 0) >> 2] | 0; + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($7 + 28 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($7 + 228 | 0) >> 2] | 0 | 0) | 0 | 0, $7 + 196 | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($7 + 12 | 0 | 0, HEAP32[($7 + 228 | 0) >> 2] | 0 | 0, $7 + 212 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$100 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($100, $7 + 28 | 0, $7 + 12 | 0, Math_fround(HEAPF32[($7 + 188 | 0) >> 2])); + } + } + __stack_pointer = $7 + 256 | 0; + return; + } + + function SphereTriangleDetector__collide_28btVector3_20const__2c_20btVector3__2c_20btVector3__2c_20float__2c_20float__2c_20float_29($0, $1, $2, $3, $4, $5, $6) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = Math_fround($6); + var $9 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $10 = 0, $124 = 0, $141 = 0, $156 = 0, $183 = 0, $223 = 0, $225 = 0, $232 = 0, $234 = 0, $245 = 0, $247 = 0, $253 = 0, $255 = 0, $108 = 0, $542 = 0, $546 = 0, $668 = 0, $672 = 0, $746 = 0, $759 = 0, $769 = 0, $782 = 0, $801 = 0, $814 = 0, $820 = 0, $833 = 0, $272 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $9 = __stack_pointer - 272 | 0; + __stack_pointer = $9; + HEAP32[($9 + 264 | 0) >> 2] = $0; + HEAP32[($9 + 260 | 0) >> 2] = $1; + HEAP32[($9 + 256 | 0) >> 2] = $2; + HEAP32[($9 + 252 | 0) >> 2] = $3; + HEAP32[($9 + 248 | 0) >> 2] = $4; + HEAP32[($9 + 244 | 0) >> 2] = $5; + HEAPF32[($9 + 240 | 0) >> 2] = $6; + $10 = HEAP32[($9 + 264 | 0) >> 2] | 0; + (wasm2js_i32$0 = $9, wasm2js_i32$1 = btTriangleShape__getVertexPtr_28int_29(HEAP32[($10 + 8 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 236 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(btSphereShape__getRadius_28_29_20const(HEAP32[($10 + 4 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 232 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($9 + 228 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($9 + 232 | 0) >> 2]) + Math_fround(HEAPF32[($9 + 240 | 0) >> 2])); + operator__28btVector3_20const__2c_20btVector3_20const__29($9 + 196 | 0 | 0, (HEAP32[($9 + 236 | 0) >> 2] | 0) + 16 | 0 | 0, HEAP32[($9 + 236 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($9 + 180 | 0 | 0, (HEAP32[($9 + 236 | 0) >> 2] | 0) + 32 | 0 | 0, HEAP32[($9 + 236 | 0) >> 2] | 0 | 0); + btVector3__cross_28btVector3_20const__29_20const($9 + 212 | 0 | 0, $9 + 196 | 0 | 0, $9 + 180 | 0 | 0); + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($9 + 212 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 176 | 0) >> 2] = wasm2js_f32$0; + HEAP8[($9 + 175 | 0) >> 0] = 0; + btVector3__btVector3_28_29($9 + 152 | 0 | 0) | 0; + label$1 : { + if (!(Math_fround(HEAPF32[($9 + 176 | 0) >> 2]) >= Math_fround(1.4210854715202004e-14) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(btSqrt_28float_29(Math_fround(Math_fround(HEAPF32[($9 + 176 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 148 | 0) >> 2] = wasm2js_f32$0; + btVector3__operator___28float_20const__29($9 + 212 | 0 | 0, $9 + 148 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($9 + 132 | 0 | 0, HEAP32[($9 + 260 | 0) >> 2] | 0 | 0, HEAP32[($9 + 236 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($9 + 132 | 0 | 0, $9 + 212 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 128 | 0) >> 2] = wasm2js_f32$0; + label$2 : { + if (!(Math_fround(HEAPF32[($9 + 128 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + HEAPF32[($9 + 128 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($9 + 128 | 0) >> 2]) * Math_fround(-1.0)); + HEAPF32[($9 + 124 | 0) >> 2] = Math_fround(-1.0); + btVector3__operator___28float_20const__29_1($9 + 212 | 0 | 0, $9 + 124 | 0 | 0) | 0; + } + HEAP8[($9 + 123 | 0) >> 0] = Math_fround(HEAPF32[($9 + 128 | 0) >> 2]) < Math_fround(HEAPF32[($9 + 228 | 0) >> 2]) & 1 | 0; + label$3 : { + if (!((HEAPU8[($9 + 123 | 0) >> 0] | 0) & 1 | 0)) { + break label$3 + } + label$4 : { + label$5 : { + if (!((SphereTriangleDetector__facecontains_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3__29($10 | 0, HEAP32[($9 + 260 | 0) >> 2] | 0 | 0, HEAP32[($9 + 236 | 0) >> 2] | 0 | 0, $9 + 212 | 0 | 0) | 0) & 1 | 0)) { + break label$5 + } + HEAP8[($9 + 175 | 0) >> 0] = 1; + $108 = HEAP32[($9 + 260 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20float_20const__29($9 + 88 | 0 | 0, $9 + 212 | 0 | 0, $9 + 128 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($9 + 104 | 0 | 0, $108 | 0, $9 + 88 | 0 | 0); + $124 = 8; + i64toi32_i32$2 = ($9 + 104 | 0) + $124 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $542 = i64toi32_i32$0; + i64toi32_i32$0 = ($9 + 152 | 0) + $124 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $542; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $9; + i64toi32_i32$1 = HEAP32[($9 + 104 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($9 + 108 | 0) >> 2] | 0; + $546 = i64toi32_i32$1; + i64toi32_i32$1 = $9; + HEAP32[($9 + 152 | 0) >> 2] = $546; + HEAP32[($9 + 156 | 0) >> 2] = i64toi32_i32$0; + break label$4; + } + HEAPF32[($9 + 84 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($9 + 228 | 0) >> 2]) * Math_fround(HEAPF32[($9 + 228 | 0) >> 2])); + btVector3__btVector3_28_29($9 + 68 | 0 | 0) | 0; + HEAP32[($9 + 64 | 0) >> 2] = 0; + label$6 : { + label$7 : while (1) { + $141 = HEAP32[($10 + 8 | 0) >> 2] | 0; + if (!((HEAP32[($9 + 64 | 0) >> 2] | 0 | 0) < (FUNCTION_TABLE[HEAP32[((HEAP32[$141 >> 2] | 0) + 100 | 0) >> 2] | 0 | 0]($141) | 0 | 0) & 1 | 0)) { + break label$6 + } + btVector3__btVector3_28_29($9 + 48 | 0 | 0) | 0; + btVector3__btVector3_28_29($9 + 32 | 0 | 0) | 0; + $156 = HEAP32[($10 + 8 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$156 >> 2] | 0) + 104 | 0) >> 2] | 0 | 0]($156, HEAP32[($9 + 64 | 0) >> 2] | 0, $9 + 48 | 0, $9 + 32 | 0); + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(SegmentSqrDistance_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3__29($9 + 48 | 0 | 0, $9 + 32 | 0 | 0, HEAP32[($9 + 260 | 0) >> 2] | 0 | 0, $9 + 68 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + label$8 : { + if (!(Math_fround(HEAPF32[($9 + 28 | 0) >> 2]) < Math_fround(HEAPF32[($9 + 84 | 0) >> 2]) & 1 | 0)) { + break label$8 + } + HEAP8[($9 + 175 | 0) >> 0] = 1; + $183 = 8; + i64toi32_i32$2 = ($9 + 68 | 0) + $183 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $668 = i64toi32_i32$0; + i64toi32_i32$0 = ($9 + 152 | 0) + $183 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $668; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $9; + i64toi32_i32$1 = HEAP32[($9 + 68 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($9 + 72 | 0) >> 2] | 0; + $672 = i64toi32_i32$1; + i64toi32_i32$1 = $9; + HEAP32[($9 + 152 | 0) >> 2] = $672; + HEAP32[($9 + 156 | 0) >> 2] = i64toi32_i32$0; + } + HEAP32[($9 + 64 | 0) >> 2] = (HEAP32[($9 + 64 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + } + } + label$9 : { + label$10 : { + if (!((HEAPU8[($9 + 175 | 0) >> 0] | 0) & 1 | 0)) { + break label$10 + } + operator__28btVector3_20const__2c_20btVector3_20const__29($9 + 12 | 0 | 0, HEAP32[($9 + 260 | 0) >> 2] | 0 | 0, $9 + 152 | 0 | 0); + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($9 + 12 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + label$11 : { + if (!(Math_fround(HEAPF32[($9 + 8 | 0) >> 2]) < Math_fround(Math_fround(HEAPF32[($9 + 228 | 0) >> 2]) * Math_fround(HEAPF32[($9 + 228 | 0) >> 2])) & 1 | 0)) { + break label$11 + } + label$12 : { + label$13 : { + if (!(Math_fround(HEAPF32[($9 + 8 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$13 + } + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(btSqrt_28float_29(Math_fround(Math_fround(HEAPF32[($9 + 8 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $223 = HEAP32[($9 + 252 | 0) >> 2] | 0; + i64toi32_i32$2 = $9; + i64toi32_i32$0 = HEAP32[($9 + 12 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 16 | 0) >> 2] | 0; + $746 = i64toi32_i32$0; + i64toi32_i32$0 = $223; + HEAP32[i64toi32_i32$0 >> 2] = $746; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $225 = 8; + i64toi32_i32$2 = ($9 + 12 | 0) + $225 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $759 = i64toi32_i32$1; + i64toi32_i32$1 = $223 + $225 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $759; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__normalize_28_29(HEAP32[($9 + 252 | 0) >> 2] | 0 | 0) | 0; + $232 = HEAP32[($9 + 256 | 0) >> 2] | 0; + i64toi32_i32$2 = $9; + i64toi32_i32$0 = HEAP32[($9 + 152 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 156 | 0) >> 2] | 0; + $769 = i64toi32_i32$0; + i64toi32_i32$0 = $232; + HEAP32[i64toi32_i32$0 >> 2] = $769; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $234 = 8; + i64toi32_i32$2 = ($9 + 152 | 0) + $234 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $782 = i64toi32_i32$1; + i64toi32_i32$1 = $232 + $234 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $782; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[(HEAP32[($9 + 248 | 0) >> 2] | 0) >> 2] = Math_fround(-Math_fround(Math_fround(HEAPF32[($9 + 232 | 0) >> 2]) - Math_fround(HEAPF32[($9 + 4 | 0) >> 2]))); + break label$12; + } + $245 = HEAP32[($9 + 252 | 0) >> 2] | 0; + i64toi32_i32$2 = $9; + i64toi32_i32$0 = HEAP32[($9 + 212 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 216 | 0) >> 2] | 0; + $801 = i64toi32_i32$0; + i64toi32_i32$0 = $245; + HEAP32[i64toi32_i32$0 >> 2] = $801; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $247 = 8; + i64toi32_i32$2 = ($9 + 212 | 0) + $247 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $814 = i64toi32_i32$1; + i64toi32_i32$1 = $245 + $247 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $814; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $253 = HEAP32[($9 + 256 | 0) >> 2] | 0; + i64toi32_i32$2 = $9; + i64toi32_i32$0 = HEAP32[($9 + 152 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 156 | 0) >> 2] | 0; + $820 = i64toi32_i32$0; + i64toi32_i32$0 = $253; + HEAP32[i64toi32_i32$0 >> 2] = $820; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $255 = 8; + i64toi32_i32$2 = ($9 + 152 | 0) + $255 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $833 = i64toi32_i32$1; + i64toi32_i32$1 = $253 + $255 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $833; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[(HEAP32[($9 + 248 | 0) >> 2] | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[($9 + 232 | 0) >> 2])); + } + HEAP8[($9 + 271 | 0) >> 0] = 1 & 1 | 0; + break label$9; + } + } + HEAP8[($9 + 271 | 0) >> 0] = 0 & 1 | 0; + } + $272 = (HEAPU8[($9 + 271 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $9 + 272 | 0; + return $272 | 0; + } + + function btTriangleShape__getVertexPtr_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return ((HEAP32[($4 + 12 | 0) >> 2] | 0) + 64 | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 4 | 0) | 0 | 0; + } + + function SphereTriangleDetector__facecontains_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $8 = 0, $9 = 0, $16 = 0, $17 = 0, $7 = 0, $61 = 0, $65 = 0, $77 = 0, $81 = 0, $29 = 0; + $6 = __stack_pointer - 48 | 0; + __stack_pointer = $6; + HEAP32[($6 + 44 | 0) >> 2] = $0; + HEAP32[($6 + 40 | 0) >> 2] = $1; + HEAP32[($6 + 36 | 0) >> 2] = $2; + HEAP32[($6 + 32 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 44 | 0) >> 2] | 0; + $8 = HEAP32[($6 + 40 | 0) >> 2] | 0; + $9 = 8; + i64toi32_i32$2 = $8 + $9 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $61 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 16 | 0) + $9 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $61; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $65 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 16 | 0) >> 2] = $65; + HEAP32[($6 + 20 | 0) >> 2] = i64toi32_i32$0; + $16 = HEAP32[($6 + 32 | 0) >> 2] | 0; + $17 = 8; + i64toi32_i32$2 = $16 + $17 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $77 = i64toi32_i32$0; + i64toi32_i32$0 = $6 + $17 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $77; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $16; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $81 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[$6 >> 2] = $81; + HEAP32[($6 + 4 | 0) >> 2] = i64toi32_i32$0; + $29 = (SphereTriangleDetector__pointInTriangle_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3__29($7 | 0, HEAP32[($6 + 36 | 0) >> 2] | 0 | 0, $6 | 0, $6 + 16 | 0 | 0) | 0) & 1 | 0; + __stack_pointer = $6 + 48 | 0; + return $29 | 0; + } + + function SegmentSqrDistance_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $32 = 0, $82 = 0, $84 = 0, $92 = 0, $66 = 0, $262 = 0, $275 = 0, $93 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 112 | 0; + __stack_pointer = $6; + HEAP32[($6 + 108 | 0) >> 2] = $0; + HEAP32[($6 + 104 | 0) >> 2] = $1; + HEAP32[($6 + 100 | 0) >> 2] = $2; + HEAP32[($6 + 96 | 0) >> 2] = $3; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 80 | 0 | 0, HEAP32[($6 + 100 | 0) >> 2] | 0 | 0, HEAP32[($6 + 108 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 64 | 0 | 0, HEAP32[($6 + 104 | 0) >> 2] | 0 | 0, HEAP32[($6 + 108 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($6 + 64 | 0 | 0, $6 + 80 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 60 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($6 + 60 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + $32 = $6 + 64 | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($32 | 0, $32 | 0))), HEAPF32[(wasm2js_i32$0 + 56 | 0) >> 2] = wasm2js_f32$0; + label$3 : { + label$4 : { + if (!(Math_fround(HEAPF32[($6 + 60 | 0) >> 2]) < Math_fround(HEAPF32[($6 + 56 | 0) >> 2]) & 1 | 0)) { + break label$4 + } + HEAPF32[($6 + 60 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($6 + 60 | 0) >> 2]) / Math_fround(HEAPF32[($6 + 56 | 0) >> 2])); + operator__28float_20const__2c_20btVector3_20const__29($6 + 40 | 0 | 0, $6 + 60 | 0 | 0, $6 + 64 | 0 | 0); + btVector3__operator___28btVector3_20const__29($6 + 80 | 0 | 0, $6 + 40 | 0 | 0) | 0; + break label$3; + } + HEAPF32[($6 + 60 | 0) >> 2] = Math_fround(1.0); + btVector3__operator___28btVector3_20const__29($6 + 80 | 0 | 0, $6 + 64 | 0 | 0) | 0; + } + break label$1; + } + HEAPF32[($6 + 60 | 0) >> 2] = Math_fround(0 | 0); + } + $66 = HEAP32[($6 + 108 | 0) >> 2] | 0; + operator__28float_20const__2c_20btVector3_20const__29($6 + 8 | 0 | 0, $6 + 60 | 0 | 0, $6 + 64 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 24 | 0 | 0, $66 | 0, $6 + 8 | 0 | 0); + $82 = HEAP32[($6 + 96 | 0) >> 2] | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 24 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 28 | 0) >> 2] | 0; + $262 = i64toi32_i32$0; + i64toi32_i32$0 = $82; + HEAP32[i64toi32_i32$0 >> 2] = $262; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $84 = 8; + i64toi32_i32$2 = ($6 + 24 | 0) + $84 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $275 = i64toi32_i32$1; + i64toi32_i32$1 = $82 + $84 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $275; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $92 = $6 + 80 | 0; + $93 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($92 | 0, $92 | 0)); + __stack_pointer = $6 + 112 | 0; + return Math_fround($93); + } + + function SphereTriangleDetector__pointInTriangle_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $130 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 192 | 0; + __stack_pointer = $6; + HEAP32[($6 + 184 | 0) >> 2] = $0; + HEAP32[($6 + 180 | 0) >> 2] = $1; + HEAP32[($6 + 176 | 0) >> 2] = $2; + HEAP32[($6 + 172 | 0) >> 2] = $3; + HEAP32[($6 + 168 | 0) >> 2] = HEAP32[($6 + 180 | 0) >> 2] | 0; + HEAP32[($6 + 164 | 0) >> 2] = (HEAP32[($6 + 180 | 0) >> 2] | 0) + 16 | 0; + HEAP32[($6 + 160 | 0) >> 2] = (HEAP32[($6 + 180 | 0) >> 2] | 0) + 32 | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 144 | 0 | 0, HEAP32[($6 + 164 | 0) >> 2] | 0 | 0, HEAP32[($6 + 168 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 128 | 0 | 0, HEAP32[($6 + 160 | 0) >> 2] | 0 | 0, HEAP32[($6 + 164 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 112 | 0 | 0, HEAP32[($6 + 168 | 0) >> 2] | 0 | 0, HEAP32[($6 + 160 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 96 | 0 | 0, HEAP32[($6 + 172 | 0) >> 2] | 0 | 0, HEAP32[($6 + 168 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 80 | 0 | 0, HEAP32[($6 + 172 | 0) >> 2] | 0 | 0, HEAP32[($6 + 164 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 64 | 0 | 0, HEAP32[($6 + 172 | 0) >> 2] | 0 | 0, HEAP32[($6 + 160 | 0) >> 2] | 0 | 0); + btVector3__cross_28btVector3_20const__29_20const($6 + 48 | 0 | 0, $6 + 144 | 0 | 0, HEAP32[($6 + 176 | 0) >> 2] | 0 | 0); + btVector3__cross_28btVector3_20const__29_20const($6 + 32 | 0 | 0, $6 + 128 | 0 | 0, HEAP32[($6 + 176 | 0) >> 2] | 0 | 0); + btVector3__cross_28btVector3_20const__29_20const($6 + 16 | 0 | 0, $6 + 112 | 0 | 0, HEAP32[($6 + 176 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($6 + 48 | 0 | 0, $6 + 96 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($6 + 32 | 0 | 0, $6 + 80 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($6 + 16 | 0 | 0, $6 + 64 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + label$3 : { + label$4 : { + if (!(Math_fround(HEAPF32[($6 + 12 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$4 + } + if (!(Math_fround(HEAPF32[($6 + 8 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$4 + } + if (Math_fround(HEAPF32[($6 + 4 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0) { + break label$3 + } + } + if (!(Math_fround(HEAPF32[($6 + 12 | 0) >> 2]) <= Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + if (!(Math_fround(HEAPF32[($6 + 8 | 0) >> 2]) <= Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + if (!(Math_fround(HEAPF32[($6 + 4 | 0) >> 2]) <= Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + } + HEAP8[($6 + 191 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + HEAP8[($6 + 191 | 0) >> 0] = 0 & 1 | 0; + } + $130 = (HEAPU8[($6 + 191 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $6 + 192 | 0; + return $130 | 0; + } + + function SphereTriangleDetector___SphereTriangleDetector_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + SphereTriangleDetector___SphereTriangleDetector_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function _GLOBAL__sub_I_SphereTriangleDetector_cpp() { + __cxx_global_var_init_27(); + return; + } + + function __cxx_global_var_init_28() { + btInfMaskConverter__btInfMaskConverter_28int_29(114076 | 0, 2139095040 | 0) | 0; + return; + } + + function btBoxShape__btBoxShape_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $47 = 0, $49 = 0, $160 = 0, $173 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 80 | 0; + __stack_pointer = $4; + HEAP32[($4 + 76 | 0) >> 2] = $0; + HEAP32[($4 + 72 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 76 | 0) >> 2] | 0; + btPolyhedralConvexShape__btPolyhedralConvexShape_28_29($5 | 0) | 0; + HEAP32[$5 >> 2] = 96788 + 8 | 0; + HEAP32[($5 + 4 | 0) >> 2] = 0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 52 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 48 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 56 | 0 | 0, $4 + 52 | 0 | 0, $4 + 48 | 0 | 0, $4 + 44 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($4 + 12 | 0 | 0, HEAP32[($4 + 72 | 0) >> 2] | 0 | 0, $5 + 20 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($4 + 28 | 0 | 0, $4 + 12 | 0 | 0, $4 + 56 | 0 | 0); + $47 = $5 + 36 | 0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[($4 + 28 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($4 + 32 | 0) >> 2] | 0; + $160 = i64toi32_i32$0; + i64toi32_i32$0 = $47; + HEAP32[i64toi32_i32$0 >> 2] = $160; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $49 = 8; + i64toi32_i32$2 = ($4 + 28 | 0) + $49 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $173 = i64toi32_i32$1; + i64toi32_i32$1 = $47 + $49 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $173; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btConvexInternalShape__setSafeMargin_28btVector3_20const__2c_20float_29($5 | 0, HEAP32[($4 + 72 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(.10000000149011612))); + __stack_pointer = $4 + 80 | 0; + return $5 | 0; + } + + function btBoxShape__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btTransformAabb_28btVector3_20const__2c_20float_2c_20btTransform_20const__2c_20btVector3__2c_20btVector3__29(btBoxShape__getHalfExtentsWithoutMargin_28_29_20const($7 | 0) | 0 | 0, Math_fround(Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($7))), HEAP32[($6 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6 >> 2] | 0 | 0); + __stack_pointer = $6 + 16 | 0; + return; + } + + function btTransformAabb_28btVector3_20const__2c_20float_2c_20btTransform_20const__2c_20btVector3__2c_20btVector3__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $14 = 0, $27 = 0, $28 = 0, $65 = 0, $67 = 0, $82 = 0, $84 = 0, $8 = 0, $159 = 0, $163 = 0, $218 = 0, $231 = 0, $252 = 0, $265 = 0; + $7 = __stack_pointer - 176 | 0; + __stack_pointer = $7; + HEAP32[($7 + 172 | 0) >> 2] = $0; + HEAPF32[($7 + 168 | 0) >> 2] = $1; + HEAP32[($7 + 164 | 0) >> 2] = $2; + HEAP32[($7 + 160 | 0) >> 2] = $3; + HEAP32[($7 + 156 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 172 | 0) >> 2] | 0; + $14 = $7 + 168 | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 124 | 0 | 0, $14 | 0, $14 | 0, $14 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($7 + 140 | 0 | 0, $8 | 0, $7 + 124 | 0 | 0); + btMatrix3x3__absolute_28_29_20const($7 + 76 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($7 + 164 | 0) >> 2] | 0 | 0) | 0 | 0); + $27 = btTransform__getOrigin_28_29_20const(HEAP32[($7 + 164 | 0) >> 2] | 0 | 0) | 0; + $28 = 8; + i64toi32_i32$2 = $27 + $28 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $159 = i64toi32_i32$0; + i64toi32_i32$0 = ($7 + 56 | 0) + $28 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $159; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $27; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $163 = i64toi32_i32$1; + i64toi32_i32$1 = $7; + HEAP32[($7 + 56 | 0) >> 2] = $163; + HEAP32[($7 + 60 | 0) >> 2] = i64toi32_i32$0; + btVector3__dot3_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29_20const($7 + 40 | 0 | 0, $7 + 140 | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($7 + 76 | 0 | 0, 0 | 0) | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($7 + 76 | 0 | 0, 1 | 0) | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($7 + 76 | 0 | 0, 2 | 0) | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($7 + 24 | 0 | 0, $7 + 56 | 0 | 0, $7 + 40 | 0 | 0); + $65 = HEAP32[($7 + 160 | 0) >> 2] | 0; + i64toi32_i32$2 = $7; + i64toi32_i32$0 = HEAP32[($7 + 24 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7 + 28 | 0) >> 2] | 0; + $218 = i64toi32_i32$0; + i64toi32_i32$0 = $65; + HEAP32[i64toi32_i32$0 >> 2] = $218; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $67 = 8; + i64toi32_i32$2 = ($7 + 24 | 0) + $67 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $231 = i64toi32_i32$1; + i64toi32_i32$1 = $65 + $67 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $231; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($7 + 8 | 0 | 0, $7 + 56 | 0 | 0, $7 + 40 | 0 | 0); + $82 = HEAP32[($7 + 156 | 0) >> 2] | 0; + i64toi32_i32$2 = $7; + i64toi32_i32$0 = HEAP32[($7 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7 + 12 | 0) >> 2] | 0; + $252 = i64toi32_i32$0; + i64toi32_i32$0 = $82; + HEAP32[i64toi32_i32$0 >> 2] = $252; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $84 = 8; + i64toi32_i32$2 = ($7 + 8 | 0) + $84 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $265 = i64toi32_i32$1; + i64toi32_i32$1 = $82 + $84 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $265; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $7 + 176 | 0; + return; + } + + function btBoxShape__calculateLocalInertia_28float_2c_20btVector3__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = $2 | 0; + var $5 = 0, $31 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 64 | 0; + __stack_pointer = $5; + HEAP32[($5 + 60 | 0) >> 2] = $0; + HEAPF32[($5 + 56 | 0) >> 2] = $1; + HEAP32[($5 + 52 | 0) >> 2] = $2; + btBoxShape__getHalfExtentsWithMargin_28_29_20const($5 + 36 | 0 | 0, HEAP32[($5 + 60 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(2.0) * Math_fround(HEAPF32[(btVector3__x_28_29_20const($5 + 36 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(2.0) * Math_fround(HEAPF32[(btVector3__y_28_29_20const($5 + 36 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(2.0) * Math_fround(HEAPF32[(btVector3__z_28_29_20const($5 + 36 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_f32$0; + $31 = HEAP32[($5 + 52 | 0) >> 2] | 0; + HEAPF32[($5 + 20 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 56 | 0) >> 2]) / Math_fround(12.0)) * Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 28 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 28 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($5 + 24 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 24 | 0) >> 2])))); + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 56 | 0) >> 2]) / Math_fround(12.0)) * Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 32 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 32 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($5 + 24 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 24 | 0) >> 2])))); + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 56 | 0) >> 2]) / Math_fround(12.0)) * Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 32 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 32 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($5 + 28 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 28 | 0) >> 2])))); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($31 | 0, $5 + 20 | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0); + __stack_pointer = $5 + 64 | 0; + return; + } + + function btBoxShape___btBoxShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btPolyhedralConvexShape___btPolyhedralConvexShape_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btBoxShape___btBoxShape_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btBoxShape___btBoxShape_28_29($4 | 0) | 0; + btBoxShape__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btBoxShape__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btBoxShape__setLocalScaling_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $62 = 0, $64 = 0, $198 = 0, $211 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 112 | 0; + __stack_pointer = $4; + HEAP32[($4 + 108 | 0) >> 2] = $0; + HEAP32[($4 + 104 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 108 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 84 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 80 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 76 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 88 | 0 | 0, $4 + 84 | 0 | 0, $4 + 80 | 0 | 0, $4 + 76 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($4 + 60 | 0 | 0, $5 + 36 | 0 | 0, $4 + 88 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_3($4 + 44 | 0 | 0, $4 + 60 | 0 | 0, $5 + 20 | 0 | 0); + btConvexInternalShape__setLocalScaling_28btVector3_20const__29($5 | 0, HEAP32[($4 + 104 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($4 + 12 | 0 | 0, $4 + 44 | 0 | 0, $5 + 20 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($4 + 28 | 0 | 0, $4 + 12 | 0 | 0, $4 + 88 | 0 | 0); + $62 = $5 + 36 | 0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[($4 + 28 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($4 + 32 | 0) >> 2] | 0; + $198 = i64toi32_i32$0; + i64toi32_i32$0 = $62; + HEAP32[i64toi32_i32$0 >> 2] = $198; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $64 = 8; + i64toi32_i32$2 = ($4 + 28 | 0) + $64 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $211 = i64toi32_i32$1; + i64toi32_i32$1 = $62 + $64 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $211; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $4 + 112 | 0; + return; + } + + function operator__28btVector3_20const__2c_20btVector3_20const__29_3($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $1; + HEAP32[($5 + 24 | 0) >> 2] = $2; + HEAPF32[($5 + 20 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[(HEAP32[($5 + 28 | 0) >> 2] | 0) >> 2]) / Math_fround(HEAPF32[(HEAP32[($5 + 24 | 0) >> 2] | 0) >> 2])); + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 28 | 0) >> 2] | 0) + 4 | 0) >> 2]) / Math_fround(HEAPF32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2])); + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2]) / Math_fround(HEAPF32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2])); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $5 + 20 | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0) | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btBoxShape__getName_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 66262 | 0; + } + + function btBoxShape__setMargin_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0, $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $65 = 0, $67 = 0, $216 = 0, $226 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 96 | 0; + __stack_pointer = $4; + HEAP32[($4 + 92 | 0) >> 2] = $0; + HEAPF32[($4 + 88 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 92 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 68 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 64 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 60 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 72 | 0 | 0, $4 + 68 | 0 | 0, $4 + 64 | 0 | 0, $4 + 60 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($4 + 44 | 0 | 0, $5 + 36 | 0 | 0, $4 + 72 | 0 | 0); + btConvexInternalShape__setMargin_28float_29($5 | 0, Math_fround(Math_fround(HEAPF32[($4 + 88 | 0) >> 2]))); + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 28 | 0 | 0, $4 + 24 | 0 | 0, $4 + 20 | 0 | 0, $4 + 16 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($4 | 0, $4 + 44 | 0 | 0, $4 + 28 | 0 | 0); + $65 = $5 + 36 | 0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[$4 >> 2] | 0; + i64toi32_i32$1 = HEAP32[($4 + 4 | 0) >> 2] | 0; + $216 = i64toi32_i32$0; + i64toi32_i32$0 = $65; + HEAP32[i64toi32_i32$0 >> 2] = $216; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $67 = 8; + i64toi32_i32$2 = $4 + $67 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $226 = i64toi32_i32$1; + i64toi32_i32$1 = $65 + $67 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $226; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $4 + 96 | 0; + return; + } + + function btBoxShape__localGetSupportingVertex_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $7 = 0, $8 = 0, $121 = 0, $125 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 64 | 0; + __stack_pointer = $5; + HEAP32[($5 + 60 | 0) >> 2] = $1; + HEAP32[($5 + 56 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 60 | 0) >> 2] | 0; + $7 = btBoxShape__getHalfExtentsWithoutMargin_28_29_20const($6 | 0) | 0; + $8 = 8; + i64toi32_i32$2 = $7 + $8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $121 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 40 | 0) + $8 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $121; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $7; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $125 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 40 | 0) >> 2] = $125; + HEAP32[($5 + 44 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($6))), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($6))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($6))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 24 | 0 | 0, $5 + 20 | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($5 + 40 | 0 | 0, $5 + 24 | 0 | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btFsel_28float_2c_20float_2c_20float_29(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 56 | 0) >> 2] | 0 | 0) | 0) >> 2])), Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($5 + 40 | 0 | 0) | 0) >> 2])), Math_fround(Math_fround(-Math_fround(HEAPF32[(btVector3__x_28_29_20const($5 + 40 | 0 | 0) | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btFsel_28float_2c_20float_2c_20float_29(Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 56 | 0) >> 2] | 0 | 0) | 0) >> 2])), Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($5 + 40 | 0 | 0) | 0) >> 2])), Math_fround(Math_fround(-Math_fround(HEAPF32[(btVector3__y_28_29_20const($5 + 40 | 0 | 0) | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btFsel_28float_2c_20float_2c_20float_29(Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 56 | 0) >> 2] | 0 | 0) | 0) >> 2])), Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($5 + 40 | 0 | 0) | 0) >> 2])), Math_fround(Math_fround(-Math_fround(HEAPF32[(btVector3__z_28_29_20const($5 + 40 | 0 | 0) | 0) >> 2])))))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $5 + 8 | 0 | 0, $5 + 4 | 0 | 0, $5 | 0) | 0; + __stack_pointer = $5 + 64 | 0; + return; + } + + function btFsel_28float_2c_20float_2c_20float_29($0, $1, $2) { + $0 = Math_fround($0); + $1 = Math_fround($1); + $2 = Math_fround($2); + var $5 = 0, $13 = Math_fround(0); + $5 = __stack_pointer - 16 | 0; + HEAPF32[($5 + 12 | 0) >> 2] = $0; + HEAPF32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($5 + 12 | 0) >> 2]) >= Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + $13 = Math_fround(HEAPF32[($5 + 8 | 0) >> 2]); + break label$1; + } + $13 = Math_fround(HEAPF32[($5 + 4 | 0) >> 2]); + } + return Math_fround($13); + } + + function btBoxShape__localGetSupportingVertexWithoutMargin_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $1; + HEAP32[($5 + 24 | 0) >> 2] = $2; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btBoxShape__getHalfExtentsWithoutMargin_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btFsel_28float_2c_20float_2c_20float_29(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])), Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0) >> 2])), Math_fround(Math_fround(-Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btFsel_28float_2c_20float_2c_20float_29(Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])), Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0) >> 2])), Math_fround(Math_fround(-Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btFsel_28float_2c_20float_2c_20float_29(Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])), Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0) >> 2])), Math_fround(Math_fround(-Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0, $5 + 8 | 0 | 0) | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btBoxShape__batchedUnitVectorGetSupportingVertexWithoutMargin_28btVector3_20const__2c_20btVector3__2c_20int_29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $26 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 48 | 0; + __stack_pointer = $6; + HEAP32[($6 + 44 | 0) >> 2] = $0; + HEAP32[($6 + 40 | 0) >> 2] = $1; + HEAP32[($6 + 36 | 0) >> 2] = $2; + HEAP32[($6 + 32 | 0) >> 2] = $3; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btBoxShape__getHalfExtentsWithoutMargin_28_29_20const(HEAP32[($6 + 44 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($6 + 24 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 32 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[($6 + 20 | 0) >> 2] = (HEAP32[($6 + 40 | 0) >> 2] | 0) + ((HEAP32[($6 + 24 | 0) >> 2] | 0) << 4 | 0) | 0; + $26 = (HEAP32[($6 + 36 | 0) >> 2] | 0) + ((HEAP32[($6 + 24 | 0) >> 2] | 0) << 4 | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btFsel_28float_2c_20float_2c_20float_29(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0) >> 2])), Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2])), Math_fround(Math_fround(-Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btFsel_28float_2c_20float_2c_20float_29(Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0) >> 2])), Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2])), Math_fround(Math_fround(-Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btFsel_28float_2c_20float_2c_20float_29(Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0) >> 2])), Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2])), Math_fround(Math_fround(-Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($26 | 0, $6 + 16 | 0 | 0, $6 + 12 | 0 | 0, $6 + 8 | 0 | 0); + HEAP32[($6 + 24 | 0) >> 2] = (HEAP32[($6 + 24 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $6 + 48 | 0; + return; + } + + function btBoxShape__getNumPreferredPenetrationDirections_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 6 | 0; + } + + function btBoxShape__getPreferredPenetrationDirection_28int_2c_20btVector3__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $8 = 0, $23 = 0, $38 = 0, $53 = 0, $68 = 0, $83 = 0; + $5 = __stack_pointer - 96 | 0; + __stack_pointer = $5; + HEAP32[($5 + 92 | 0) >> 2] = $0; + HEAP32[($5 + 88 | 0) >> 2] = $1; + HEAP32[($5 + 84 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 88 | 0) >> 2] | 0; + label$1 : { + label$2 : { + switch ($6 | 0) { + case 0: + $8 = HEAP32[($5 + 84 | 0) >> 2] | 0; + HEAPF32[($5 + 80 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($5 + 76 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 72 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($8 | 0, $5 + 80 | 0 | 0, $5 + 76 | 0 | 0, $5 + 72 | 0 | 0); + break label$1; + case 1: + $23 = HEAP32[($5 + 84 | 0) >> 2] | 0; + HEAPF32[($5 + 68 | 0) >> 2] = Math_fround(-1.0); + HEAPF32[($5 + 64 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 60 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($23 | 0, $5 + 68 | 0 | 0, $5 + 64 | 0 | 0, $5 + 60 | 0 | 0); + break label$1; + case 2: + $38 = HEAP32[($5 + 84 | 0) >> 2] | 0; + HEAPF32[($5 + 56 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 52 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($5 + 48 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($38 | 0, $5 + 56 | 0 | 0, $5 + 52 | 0 | 0, $5 + 48 | 0 | 0); + break label$1; + case 3: + $53 = HEAP32[($5 + 84 | 0) >> 2] | 0; + HEAPF32[($5 + 44 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 40 | 0) >> 2] = Math_fround(-1.0); + HEAPF32[($5 + 36 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($53 | 0, $5 + 44 | 0 | 0, $5 + 40 | 0 | 0, $5 + 36 | 0 | 0); + break label$1; + case 4: + $68 = HEAP32[($5 + 84 | 0) >> 2] | 0; + HEAPF32[($5 + 32 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 28 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 24 | 0) >> 2] = Math_fround(1.0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($68 | 0, $5 + 32 | 0 | 0, $5 + 28 | 0 | 0, $5 + 24 | 0 | 0); + break label$1; + case 5: + $83 = HEAP32[($5 + 84 | 0) >> 2] | 0; + HEAPF32[($5 + 20 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(-1.0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($83 | 0, $5 + 20 | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0); + break label$1; + default: + break label$2; + }; + } + __assert_fail(86177 | 0, 78954 | 0, 305 | 0, 76388 | 0); + wasm2js_trap(); + } + __stack_pointer = $5 + 96 | 0; + return; + } + + function btBoxShape__getNumVertices_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 8 | 0; + } + + function btBoxShape__getNumEdges_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 12 | 0; + } + + function btBoxShape__getEdge_28int_2c_20btVector3__2c_20btVector3__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $8 = 0, $9 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + $8 = 0; + HEAP32[($6 + 12 | 0) >> 2] = $8; + HEAP32[($6 + 8 | 0) >> 2] = $8; + $9 = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : { + switch ($9 | 0) { + case 0: + HEAP32[($6 + 12 | 0) >> 2] = 0; + HEAP32[($6 + 8 | 0) >> 2] = 1; + break label$1; + case 1: + HEAP32[($6 + 12 | 0) >> 2] = 0; + HEAP32[($6 + 8 | 0) >> 2] = 2; + break label$1; + case 2: + HEAP32[($6 + 12 | 0) >> 2] = 1; + HEAP32[($6 + 8 | 0) >> 2] = 3; + break label$1; + case 3: + HEAP32[($6 + 12 | 0) >> 2] = 2; + HEAP32[($6 + 8 | 0) >> 2] = 3; + break label$1; + case 4: + HEAP32[($6 + 12 | 0) >> 2] = 0; + HEAP32[($6 + 8 | 0) >> 2] = 4; + break label$1; + case 5: + HEAP32[($6 + 12 | 0) >> 2] = 1; + HEAP32[($6 + 8 | 0) >> 2] = 5; + break label$1; + case 6: + HEAP32[($6 + 12 | 0) >> 2] = 2; + HEAP32[($6 + 8 | 0) >> 2] = 6; + break label$1; + case 7: + HEAP32[($6 + 12 | 0) >> 2] = 3; + HEAP32[($6 + 8 | 0) >> 2] = 7; + break label$1; + case 8: + HEAP32[($6 + 12 | 0) >> 2] = 4; + HEAP32[($6 + 8 | 0) >> 2] = 5; + break label$1; + case 9: + HEAP32[($6 + 12 | 0) >> 2] = 4; + HEAP32[($6 + 8 | 0) >> 2] = 6; + break label$1; + case 10: + HEAP32[($6 + 12 | 0) >> 2] = 5; + HEAP32[($6 + 8 | 0) >> 2] = 7; + break label$1; + case 11: + HEAP32[($6 + 12 | 0) >> 2] = 6; + HEAP32[($6 + 8 | 0) >> 2] = 7; + break label$1; + default: + break label$2; + }; + } + __assert_fail(86177 | 0, 78954 | 0, 242 | 0, 81912 | 0); + wasm2js_trap(); + } + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 108 | 0) >> 2] | 0 | 0]($7, HEAP32[($6 + 12 | 0) >> 2] | 0, HEAP32[($6 + 20 | 0) >> 2] | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 108 | 0) >> 2] | 0 | 0]($7, HEAP32[($6 + 8 | 0) >> 2] | 0, HEAP32[($6 + 16 | 0) >> 2] | 0); + __stack_pointer = $6 + 32 | 0; + return; + } + + function btBoxShape__getVertex_28int_2c_20btVector3__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $102 = 0, $104 = 0, $307 = 0, $320 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 64 | 0; + __stack_pointer = $5; + HEAP32[($5 + 60 | 0) >> 2] = $0; + HEAP32[($5 + 56 | 0) >> 2] = $1; + HEAP32[($5 + 52 | 0) >> 2] = $2; + btBoxShape__getHalfExtentsWithMargin_28_29_20const($5 + 36 | 0 | 0, HEAP32[($5 + 60 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($5 + 36 | 0 | 0) | 0) >> 2]) * Math_fround(1 - ((HEAP32[($5 + 56 | 0) >> 2] | 0) & 1 | 0) | 0 | 0)) + Math_fround(-Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($5 + 36 | 0 | 0) | 0) >> 2]) * Math_fround((HEAP32[($5 + 56 | 0) >> 2] | 0) & 1 | 0 | 0))))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($5 + 36 | 0 | 0) | 0) >> 2]) * Math_fround(1 - (((HEAP32[($5 + 56 | 0) >> 2] | 0) & 2 | 0) >> 1 | 0) | 0 | 0)) + Math_fround(-Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($5 + 36 | 0 | 0) | 0) >> 2]) * Math_fround(((HEAP32[($5 + 56 | 0) >> 2] | 0) & 2 | 0) >> 1 | 0 | 0))))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($5 + 36 | 0 | 0) | 0) >> 2]) * Math_fround(1 - (((HEAP32[($5 + 56 | 0) >> 2] | 0) & 4 | 0) >> 2 | 0) | 0 | 0)) + Math_fround(-Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($5 + 36 | 0 | 0) | 0) >> 2]) * Math_fround(((HEAP32[($5 + 56 | 0) >> 2] | 0) & 4 | 0) >> 2 | 0 | 0))))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 20 | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0, $5 + 8 | 0 | 0) | 0; + $102 = HEAP32[($5 + 52 | 0) >> 2] | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 20 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 24 | 0) >> 2] | 0; + $307 = i64toi32_i32$0; + i64toi32_i32$0 = $102; + HEAP32[i64toi32_i32$0 >> 2] = $307; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $104 = 8; + i64toi32_i32$2 = ($5 + 20 | 0) + $104 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $320 = i64toi32_i32$1; + i64toi32_i32$1 = $102 + $104 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $320; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $5 + 64 | 0; + return; + } + + function btBoxShape__getNumPlanes_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 6 | 0; + } + + function btBoxShape__getPlane_28btVector3__2c_20btVector3__2c_20int_29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $7 = 0, $32 = 0, $34 = 0, $48 = 0, $50 = 0, $125 = 0, $138 = 0, $162 = 0, $175 = 0; + $6 = __stack_pointer - 80 | 0; + __stack_pointer = $6; + HEAP32[($6 + 76 | 0) >> 2] = $0; + HEAP32[($6 + 72 | 0) >> 2] = $1; + HEAP32[($6 + 68 | 0) >> 2] = $2; + HEAP32[($6 + 64 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 76 | 0) >> 2] | 0; + btVector4__btVector4_28_29($6 + 48 | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 124 | 0) >> 2] | 0 | 0]($7, $6 + 48 | 0, HEAP32[($6 + 64 | 0) >> 2] | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 32 | 0 | 0, btVector3__getX_28_29_20const($6 + 48 | 0 | 0) | 0 | 0, btVector3__getY_28_29_20const($6 + 48 | 0 | 0) | 0 | 0, btVector3__getZ_28_29_20const($6 + 48 | 0 | 0) | 0 | 0) | 0; + $32 = HEAP32[($6 + 72 | 0) >> 2] | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 32 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 36 | 0) >> 2] | 0; + $125 = i64toi32_i32$0; + i64toi32_i32$0 = $32; + HEAP32[i64toi32_i32$0 >> 2] = $125; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $34 = 8; + i64toi32_i32$2 = ($6 + 32 | 0) + $34 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $138 = i64toi32_i32$1; + i64toi32_i32$1 = $32 + $34 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $138; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__29($6 | 0, HEAP32[($6 + 72 | 0) >> 2] | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($6 + 16 | 0, $7, $6); + $48 = HEAP32[($6 + 68 | 0) >> 2] | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 16 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 20 | 0) >> 2] | 0; + $162 = i64toi32_i32$0; + i64toi32_i32$0 = $48; + HEAP32[i64toi32_i32$0 >> 2] = $162; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $50 = 8; + i64toi32_i32$2 = ($6 + 16 | 0) + $50 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $175 = i64toi32_i32$1; + i64toi32_i32$1 = $48 + $50 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $175; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $6 + 80 | 0; + return; + } + + function btVector4__btVector4_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btVector3__btVector3_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btBoxShape__isInside_28btVector3_20const__2c_20float_29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0, i64toi32_i32$0 = 0, $29 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $7 = 0, $8 = 0, $135 = 0, $139 = 0, $105 = 0; + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 44 | 0) >> 2] = $0; + HEAP32[($5 + 40 | 0) >> 2] = $1; + HEAPF32[($5 + 36 | 0) >> 2] = $2; + $7 = btBoxShape__getHalfExtentsWithoutMargin_28_29_20const(HEAP32[($5 + 44 | 0) >> 2] | 0 | 0) | 0; + $8 = 8; + i64toi32_i32$2 = $7 + $8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $135 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 16 | 0) + $8 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $135; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $7; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $139 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 16 | 0) >> 2] = $139; + HEAP32[($5 + 20 | 0) >> 2] = i64toi32_i32$0; + $29 = 0; + label$1 : { + if (!(Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0) >> 2]) <= Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($5 + 16 | 0 | 0) | 0) >> 2]) + Math_fround(HEAPF32[($5 + 36 | 0) >> 2])) & 1 | 0)) { + break label$1 + } + $29 = 0; + if (!(Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0) >> 2]) >= Math_fround(Math_fround(-Math_fround(HEAPF32[(btVector3__x_28_29_20const($5 + 16 | 0 | 0) | 0) >> 2])) - Math_fround(HEAPF32[($5 + 36 | 0) >> 2])) & 1 | 0)) { + break label$1 + } + $29 = 0; + if (!(Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0) >> 2]) <= Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($5 + 16 | 0 | 0) | 0) >> 2]) + Math_fround(HEAPF32[($5 + 36 | 0) >> 2])) & 1 | 0)) { + break label$1 + } + $29 = 0; + if (!(Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0) >> 2]) >= Math_fround(Math_fround(-Math_fround(HEAPF32[(btVector3__y_28_29_20const($5 + 16 | 0 | 0) | 0) >> 2])) - Math_fround(HEAPF32[($5 + 36 | 0) >> 2])) & 1 | 0)) { + break label$1 + } + $29 = 0; + if (!(Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0) >> 2]) <= Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($5 + 16 | 0 | 0) | 0) >> 2]) + Math_fround(HEAPF32[($5 + 36 | 0) >> 2])) & 1 | 0)) { + break label$1 + } + $29 = Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0) >> 2]) >= Math_fround(Math_fround(-Math_fround(HEAPF32[(btVector3__z_28_29_20const($5 + 16 | 0 | 0) | 0) >> 2])) - Math_fround(HEAPF32[($5 + 36 | 0) >> 2])); + } + HEAP8[($5 + 15 | 0) >> 0] = $29 & 1 | 0; + $105 = (HEAPU8[($5 + 15 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $5 + 48 | 0; + return $105 | 0; + } + + function btBoxShape__getPlaneEquation_28btVector4__2c_20int_29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $7 = 0, $8 = 0, $15 = 0, $192 = 0, $196 = 0, $17 = 0, $41 = 0, $65 = 0, $89 = 0, $113 = 0, $137 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 128 | 0; + __stack_pointer = $5; + HEAP32[($5 + 124 | 0) >> 2] = $0; + HEAP32[($5 + 120 | 0) >> 2] = $1; + HEAP32[($5 + 116 | 0) >> 2] = $2; + $7 = btBoxShape__getHalfExtentsWithoutMargin_28_29_20const(HEAP32[($5 + 124 | 0) >> 2] | 0 | 0) | 0; + $8 = 8; + i64toi32_i32$2 = $7 + $8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $192 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 96 | 0) + $8 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $192; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $7; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $196 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 96 | 0) >> 2] = $196; + HEAP32[($5 + 100 | 0) >> 2] = i64toi32_i32$0; + $15 = HEAP32[($5 + 116 | 0) >> 2] | 0; + label$1 : { + label$2 : { + switch ($15 | 0) { + case 0: + $17 = HEAP32[($5 + 120 | 0) >> 2] | 0; + HEAPF32[($5 + 92 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($5 + 88 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 84 | 0) >> 2] = Math_fround(0 | 0); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(-Math_fround(HEAPF32[(btVector3__x_28_29_20const($5 + 96 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 80 | 0) >> 2] = wasm2js_f32$0; + btVector4__setValue_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($17 | 0, $5 + 92 | 0 | 0, $5 + 88 | 0 | 0, $5 + 84 | 0 | 0, $5 + 80 | 0 | 0); + break label$1; + case 1: + $41 = HEAP32[($5 + 120 | 0) >> 2] | 0; + HEAPF32[($5 + 76 | 0) >> 2] = Math_fround(-1.0); + HEAPF32[($5 + 72 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 68 | 0) >> 2] = Math_fround(0 | 0); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(-Math_fround(HEAPF32[(btVector3__x_28_29_20const($5 + 96 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 64 | 0) >> 2] = wasm2js_f32$0; + btVector4__setValue_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($41 | 0, $5 + 76 | 0 | 0, $5 + 72 | 0 | 0, $5 + 68 | 0 | 0, $5 + 64 | 0 | 0); + break label$1; + case 2: + $65 = HEAP32[($5 + 120 | 0) >> 2] | 0; + HEAPF32[($5 + 60 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 56 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($5 + 52 | 0) >> 2] = Math_fround(0 | 0); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(-Math_fround(HEAPF32[(btVector3__y_28_29_20const($5 + 96 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 48 | 0) >> 2] = wasm2js_f32$0; + btVector4__setValue_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($65 | 0, $5 + 60 | 0 | 0, $5 + 56 | 0 | 0, $5 + 52 | 0 | 0, $5 + 48 | 0 | 0); + break label$1; + case 3: + $89 = HEAP32[($5 + 120 | 0) >> 2] | 0; + HEAPF32[($5 + 44 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 40 | 0) >> 2] = Math_fround(-1.0); + HEAPF32[($5 + 36 | 0) >> 2] = Math_fround(0 | 0); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(-Math_fround(HEAPF32[(btVector3__y_28_29_20const($5 + 96 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + btVector4__setValue_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($89 | 0, $5 + 44 | 0 | 0, $5 + 40 | 0 | 0, $5 + 36 | 0 | 0, $5 + 32 | 0 | 0); + break label$1; + case 4: + $113 = HEAP32[($5 + 120 | 0) >> 2] | 0; + HEAPF32[($5 + 28 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 24 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 20 | 0) >> 2] = Math_fround(1.0); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(-Math_fround(HEAPF32[(btVector3__z_28_29_20const($5 + 96 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + btVector4__setValue_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($113 | 0, $5 + 28 | 0 | 0, $5 + 24 | 0 | 0, $5 + 20 | 0 | 0, $5 + 16 | 0 | 0); + break label$1; + case 5: + $137 = HEAP32[($5 + 120 | 0) >> 2] | 0; + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 8 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 4 | 0) >> 2] = Math_fround(-1.0); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(-Math_fround(HEAPF32[(btVector3__z_28_29_20const($5 + 96 | 0 | 0) | 0) >> 2]))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + btVector4__setValue_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($137 | 0, $5 + 12 | 0 | 0, $5 + 8 | 0 | 0, $5 + 4 | 0 | 0, $5 | 0); + break label$1; + default: + break label$2; + }; + } + __assert_fail(86177 | 0, 78954 | 0, 178 | 0, 76606 | 0); + wasm2js_trap(); + } + __stack_pointer = $5 + 128 | 0; + return; + } + + function btVector4__setValue_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0; + $7 = __stack_pointer - 32 | 0; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + HEAPF32[$8 >> 2] = Math_fround(HEAPF32[(HEAP32[($7 + 24 | 0) >> 2] | 0) >> 2]); + HEAPF32[($8 + 4 | 0) >> 2] = Math_fround(HEAPF32[(HEAP32[($7 + 20 | 0) >> 2] | 0) >> 2]); + HEAPF32[($8 + 8 | 0) >> 2] = Math_fround(HEAPF32[(HEAP32[($7 + 16 | 0) >> 2] | 0) >> 2]); + HEAPF32[($8 + 12 | 0) >> 2] = Math_fround(HEAPF32[(HEAP32[($7 + 12 | 0) >> 2] | 0) >> 2]); + return; + } + + function _GLOBAL__sub_I_btBoxShape_cpp() { + __cxx_global_var_init_28(); + return; + } + + function __cxx_global_var_init_29() { + btInfMaskConverter__btInfMaskConverter_28int_29(114080 | 0, 2139095040 | 0) | 0; + return; + } + + function btQuantizedBvh__btQuantizedBvh_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 32 | 0; + __stack_pointer = $3; + HEAP32[($3 + 28 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 28 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 96952 + 8 | 0; + btVector3__btVector3_28_29($4 + 4 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 20 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 36 | 0 | 0) | 0; + HEAP32[($4 + 52 | 0) >> 2] = 287; + HEAP8[($4 + 60 | 0) >> 0] = 0; + btAlignedObjectArray_btOptimizedBvhNode___btAlignedObjectArray_28_29($4 + 64 | 0 | 0) | 0; + btAlignedObjectArray_btOptimizedBvhNode___btAlignedObjectArray_28_29($4 + 84 | 0 | 0) | 0; + btAlignedObjectArray_btQuantizedBvhNode___btAlignedObjectArray_28_29($4 + 104 | 0 | 0) | 0; + btAlignedObjectArray_btQuantizedBvhNode___btAlignedObjectArray_28_29($4 + 124 | 0 | 0) | 0; + HEAP32[($4 + 144 | 0) >> 2] = 0; + btAlignedObjectArray_btBvhSubtreeInfo___btAlignedObjectArray_28_29($4 + 148 | 0 | 0) | 0; + HEAP32[($4 + 168 | 0) >> 2] = 0; + HEAPF32[($3 + 24 | 0) >> 2] = Math_fround(-3402823466385288598117041.0e14); + HEAPF32[($3 + 20 | 0) >> 2] = Math_fround(-3402823466385288598117041.0e14); + HEAPF32[($3 + 16 | 0) >> 2] = Math_fround(-3402823466385288598117041.0e14); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 4 | 0 | 0, $3 + 24 | 0 | 0, $3 + 20 | 0 | 0, $3 + 16 | 0 | 0); + HEAPF32[($3 + 12 | 0) >> 2] = Math_fround(3402823466385288598117041.0e14); + HEAPF32[($3 + 8 | 0) >> 2] = Math_fround(3402823466385288598117041.0e14); + HEAPF32[($3 + 4 | 0) >> 2] = Math_fround(3402823466385288598117041.0e14); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 20 | 0 | 0, $3 + 12 | 0 | 0, $3 + 8 | 0 | 0, $3 + 4 | 0 | 0); + __stack_pointer = $3 + 32 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btOptimizedBvhNode___btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btOptimizedBvhNode_2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btOptimizedBvhNode___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btQuantizedBvhNode___btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btQuantizedBvhNode_2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btQuantizedBvhNode___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btBvhSubtreeInfo___btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btBvhSubtreeInfo_2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btBvhSubtreeInfo___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedAllocator_btOptimizedBvhNode_2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btOptimizedBvhNode___init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btAlignedAllocator_btQuantizedBvhNode_2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btQuantizedBvhNode___init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btAlignedAllocator_btBvhSubtreeInfo_2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btBvhSubtreeInfo___init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btAlignedObjectArray_btQuantizedBvhNode___size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btQuantizedBvhNode___resize_28int_2c_20btQuantizedBvhNode_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0, $48 = 0, $51 = 0, $171 = 0, $181 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btQuantizedBvhNode___size_28_29_20const($6 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + break label$1; + } + label$5 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) > (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + btAlignedObjectArray_btQuantizedBvhNode___reserve_28int_29($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + $48 = btQuantizedBvhNode__operator_20new_28unsigned_20long_2c_20void__29(16 | 0, (HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0; + i64toi32_i32$2 = HEAP32[($5 + 20 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $171 = i64toi32_i32$0; + i64toi32_i32$0 = $48; + HEAP32[i64toi32_i32$0 >> 2] = $171; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $51 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $51 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $181 = i64toi32_i32$1; + i64toi32_i32$1 = $48 + $51 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $181; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btQuantizedBvh__buildTree_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $56 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 96 | 0; + __stack_pointer = $5; + HEAP32[($5 + 92 | 0) >> 2] = $0; + HEAP32[($5 + 88 | 0) >> 2] = $1; + HEAP32[($5 + 84 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 92 | 0) >> 2] | 0; + HEAP32[($5 + 68 | 0) >> 2] = (HEAP32[($5 + 84 | 0) >> 2] | 0) - (HEAP32[($5 + 88 | 0) >> 2] | 0) | 0; + HEAP32[($5 + 64 | 0) >> 2] = HEAP32[($6 + 56 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($5 + 68 | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85787 | 0, 73634 | 0, 147 | 0, 81944 | 0); + wasm2js_trap(); + } + label$2 : { + label$3 : { + if (!((HEAP32[($5 + 68 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$3 + } + btQuantizedBvh__assignInternalNodeFromLeafNode_28int_2c_20int_29($6 | 0, HEAP32[($6 + 56 | 0) >> 2] | 0 | 0, HEAP32[($5 + 88 | 0) >> 2] | 0 | 0); + HEAP32[($6 + 56 | 0) >> 2] = (HEAP32[($6 + 56 | 0) >> 2] | 0) + 1 | 0; + break label$2; + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btQuantizedBvh__calcSplittingAxis_28int_2c_20int_29($6 | 0, HEAP32[($5 + 88 | 0) >> 2] | 0 | 0, HEAP32[($5 + 84 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 80 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btQuantizedBvh__sortAndCalcSplittingIndex_28int_2c_20int_2c_20int_29($6 | 0, HEAP32[($5 + 88 | 0) >> 2] | 0 | 0, HEAP32[($5 + 84 | 0) >> 2] | 0 | 0, HEAP32[($5 + 80 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 76 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($5 + 60 | 0) >> 2] = HEAP32[($6 + 56 | 0) >> 2] | 0; + btQuantizedBvh__setInternalNodeAabbMin_28int_2c_20btVector3_20const__29($6 | 0, HEAP32[($6 + 56 | 0) >> 2] | 0 | 0, $6 + 20 | 0 | 0); + btQuantizedBvh__setInternalNodeAabbMax_28int_2c_20btVector3_20const__29($6 | 0, HEAP32[($6 + 56 | 0) >> 2] | 0 | 0, $6 + 4 | 0 | 0); + HEAP32[($5 + 72 | 0) >> 2] = HEAP32[($5 + 88 | 0) >> 2] | 0; + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($5 + 72 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 84 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + $56 = HEAP32[($6 + 56 | 0) >> 2] | 0; + btQuantizedBvh__getAabbMin_28int_29_20const($5 + 44 | 0 | 0, $6 | 0, HEAP32[($5 + 72 | 0) >> 2] | 0 | 0); + btQuantizedBvh__getAabbMax_28int_29_20const($5 + 28 | 0 | 0, $6 | 0, HEAP32[($5 + 72 | 0) >> 2] | 0 | 0); + btQuantizedBvh__mergeInternalNodeAabb_28int_2c_20btVector3_20const__2c_20btVector3_20const__29($6 | 0, $56 | 0, $5 + 44 | 0 | 0, $5 + 28 | 0 | 0); + HEAP32[($5 + 72 | 0) >> 2] = (HEAP32[($5 + 72 | 0) >> 2] | 0) + 1 | 0; + continue label$5; + }; + } + HEAP32[($6 + 56 | 0) >> 2] = (HEAP32[($6 + 56 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($5 + 24 | 0) >> 2] = HEAP32[($6 + 56 | 0) >> 2] | 0; + btQuantizedBvh__buildTree_28int_2c_20int_29($6 | 0, HEAP32[($5 + 88 | 0) >> 2] | 0 | 0, HEAP32[($5 + 76 | 0) >> 2] | 0 | 0); + HEAP32[($5 + 20 | 0) >> 2] = HEAP32[($6 + 56 | 0) >> 2] | 0; + btQuantizedBvh__buildTree_28int_2c_20int_29($6 | 0, HEAP32[($5 + 76 | 0) >> 2] | 0 | 0, HEAP32[($5 + 84 | 0) >> 2] | 0 | 0); + HEAP32[($5 + 16 | 0) >> 2] = (HEAP32[($6 + 56 | 0) >> 2] | 0) - (HEAP32[($5 + 64 | 0) >> 2] | 0) | 0; + label$6 : { + label$7 : { + if (!((HEAPU8[($6 + 60 | 0) >> 0] | 0) & 1 | 0)) { + break label$7 + } + HEAP32[($5 + 12 | 0) >> 2] = 16; + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 16 | 0) >> 2] | 0) << 4 | 0; + label$8 : { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) > (2048 | 0) & 1 | 0)) { + break label$8 + } + btQuantizedBvh__updateSubtreeHeaders_28int_2c_20int_29($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0); + } + break label$6; + } + } + btQuantizedBvh__setInternalNodeEscapeIndex_28int_2c_20int_29($6 | 0, HEAP32[($5 + 60 | 0) >> 2] | 0 | 0, HEAP32[($5 + 16 | 0) >> 2] | 0 | 0); + } + __stack_pointer = $5 + 96 | 0; + return; + } + + function btAlignedObjectArray_btBvhSubtreeInfo___size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btBvhSubtreeInfo__btBvhSubtreeInfo_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btBvhSubtreeInfo___expand_28btBvhSubtreeInfo_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $4 = 0, $5 = 0, $25 = 0, $26 = 0, $28 = 0, $32 = 0, $36 = 0, $108 = 0, $118 = 0, $128 = 0, $138 = 0, $44 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btBvhSubtreeInfo___size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btBvhSubtreeInfo___capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btBvhSubtreeInfo___reserve_28int_29($5 | 0, btAlignedObjectArray_btBvhSubtreeInfo___allocSize_28int_29($5 | 0, btAlignedObjectArray_btBvhSubtreeInfo___size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + $25 = btBvhSubtreeInfo__operator_20new_28unsigned_20long_2c_20void__29(32 | 0, (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 4 | 0) >> 2] | 0) << 5 | 0) | 0 | 0) | 0; + $26 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$2 = $26; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $108 = i64toi32_i32$0; + i64toi32_i32$0 = $25; + HEAP32[i64toi32_i32$0 >> 2] = $108; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $28 = 24; + i64toi32_i32$2 = i64toi32_i32$2 + $28 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $118 = i64toi32_i32$1; + i64toi32_i32$1 = $25 + $28 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $118; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $32 = 16; + i64toi32_i32$2 = $26 + $32 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $128 = i64toi32_i32$0; + i64toi32_i32$0 = $25 + $32 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $128; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $36 = 8; + i64toi32_i32$2 = $26 + $36 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $138 = i64toi32_i32$1; + i64toi32_i32$1 = $25 + $36 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $138; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $44 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 4 | 0) >> 2] | 0) << 5 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $44 | 0; + } + + function btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btQuantizedBvhNode___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 4 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btBvhSubtreeInfo__setAabbFromQuantizeNode_28btQuantizedBvhNode_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP16[$5 >> 1] = HEAPU16[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 1] | 0; + HEAP16[($5 + 2 | 0) >> 1] = HEAPU16[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 2 | 0) >> 1] | 0; + HEAP16[($5 + 4 | 0) >> 1] = HEAPU16[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0) >> 1] | 0; + HEAP16[($5 + 6 | 0) >> 1] = HEAPU16[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 6 | 0) >> 1] | 0; + HEAP16[($5 + 8 | 0) >> 1] = HEAPU16[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 8 | 0) >> 1] | 0; + HEAP16[($5 + 10 | 0) >> 1] = HEAPU16[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 10 | 0) >> 1] | 0; + return; + } + + function btQuantizedBvhNode__isLeafNode_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0 | 0; + } + + function btQuantizedBvhNode__getEscapeIndex_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $14 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btQuantizedBvhNode__isLeafNode_28_29_20const($4 | 0) | 0) & 1 | 0)) { + break label$1 + } + __assert_fail(87705 | 0, 78832 | 0, 75 | 0, 66536 | 0); + wasm2js_trap(); + } + $14 = 0 - (HEAP32[($4 + 12 | 0) >> 2] | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $14 | 0; + } + + function btAlignedObjectArray_btQuantizedBvhNode___clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btQuantizedBvhNode___destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btQuantizedBvhNode___size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btQuantizedBvhNode___deallocate_28_29($4 | 0); + btAlignedObjectArray_btQuantizedBvhNode___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btOptimizedBvhNode___clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btOptimizedBvhNode___destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btOptimizedBvhNode___size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btOptimizedBvhNode___deallocate_28_29($4 | 0); + btAlignedObjectArray_btOptimizedBvhNode___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btQuantizedBvhNode___reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btQuantizedBvhNode___capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btQuantizedBvhNode___allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btQuantizedBvhNode___copy_28int_2c_20int_2c_20btQuantizedBvhNode__29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btQuantizedBvhNode___size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btQuantizedBvhNode___destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btQuantizedBvhNode___size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btQuantizedBvhNode___deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btQuantizedBvhNode__operator_20new_28unsigned_20long_2c_20void__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return HEAP32[($4 + 8 | 0) >> 2] | 0 | 0; + } + + function btQuantizedBvh__assignInternalNodeFromLeafNode_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $5 = 0, $30 = 0, $26 = 0, $6 = 0, $17 = 0, $19 = 0, $32 = 0, $36 = 0, $40 = 0, $44 = 0, $48 = 0, $52 = 0, $56 = 0, $13 = 0, $101 = 0, $111 = 0, $131 = 0, $141 = 0, $151 = 0, $161 = 0, $171 = 0, $181 = 0, $191 = 0, $201 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($6 + 60 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + $13 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($6 + 104 | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0; + $17 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($6 + 124 | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $13; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $101 = i64toi32_i32$0; + i64toi32_i32$0 = $17; + HEAP32[i64toi32_i32$0 >> 2] = $101; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $19 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $19 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $111 = i64toi32_i32$1; + i64toi32_i32$1 = $17 + $19 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $111; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$1; + } + $26 = btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29($6 + 64 | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0; + $30 = btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29($6 + 84 | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $26; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $131 = i64toi32_i32$0; + i64toi32_i32$0 = $30; + HEAP32[i64toi32_i32$0 >> 2] = $131; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $32 = 56; + i64toi32_i32$2 = i64toi32_i32$2 + $32 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $141 = i64toi32_i32$1; + i64toi32_i32$1 = $30 + $32 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $141; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $36 = 48; + i64toi32_i32$2 = $26 + $36 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $151 = i64toi32_i32$0; + i64toi32_i32$0 = $30 + $36 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $151; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $40 = 40; + i64toi32_i32$2 = $26 + $40 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $161 = i64toi32_i32$1; + i64toi32_i32$1 = $30 + $40 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $161; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $44 = 32; + i64toi32_i32$2 = $26 + $44 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $171 = i64toi32_i32$0; + i64toi32_i32$0 = $30 + $44 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $171; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $48 = 24; + i64toi32_i32$2 = $26 + $48 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $181 = i64toi32_i32$1; + i64toi32_i32$1 = $30 + $48 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $181; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $52 = 16; + i64toi32_i32$2 = $26 + $52 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $191 = i64toi32_i32$0; + i64toi32_i32$0 = $30 + $52 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $191; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $56 = 8; + i64toi32_i32$2 = $26 + $56 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $201 = i64toi32_i32$1; + i64toi32_i32$1 = $30 + $56 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $201; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + __stack_pointer = $5 + 16 | 0; + return; + } + + function btQuantizedBvh__calcSplittingAxis_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, $6 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $149 = 0, $150 = 0, $489 = 0, $493 = 0, $183 = 0; + $5 = __stack_pointer - 256 | 0; + __stack_pointer = $5; + HEAP32[($5 + 252 | 0) >> 2] = $0; + HEAP32[($5 + 248 | 0) >> 2] = $1; + HEAP32[($5 + 244 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 252 | 0) >> 2] | 0; + HEAPF32[($5 + 220 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 216 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 212 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 224 | 0 | 0, $5 + 220 | 0 | 0, $5 + 216 | 0 | 0, $5 + 212 | 0 | 0) | 0; + HEAPF32[($5 + 192 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 188 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 184 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 196 | 0 | 0, $5 + 192 | 0 | 0, $5 + 188 | 0 | 0, $5 + 184 | 0 | 0) | 0; + HEAP32[($5 + 180 | 0) >> 2] = (HEAP32[($5 + 244 | 0) >> 2] | 0) - (HEAP32[($5 + 248 | 0) >> 2] | 0) | 0; + HEAP32[($5 + 240 | 0) >> 2] = HEAP32[($5 + 248 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($5 + 240 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 244 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAPF32[($5 + 160 | 0) >> 2] = Math_fround(.5); + btQuantizedBvh__getAabbMax_28int_29_20const($5 + 128 | 0 | 0, $6 | 0, HEAP32[($5 + 240 | 0) >> 2] | 0 | 0); + btQuantizedBvh__getAabbMin_28int_29_20const($5 + 112 | 0 | 0, $6 | 0, HEAP32[($5 + 240 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($5 + 144 | 0 | 0, $5 + 128 | 0 | 0, $5 + 112 | 0 | 0); + operator__28float_20const__2c_20btVector3_20const__29($5 + 164 | 0 | 0, $5 + 160 | 0 | 0, $5 + 144 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($5 + 224 | 0 | 0, $5 + 164 | 0 | 0) | 0; + HEAP32[($5 + 240 | 0) >> 2] = (HEAP32[($5 + 240 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + HEAPF32[($5 + 108 | 0) >> 2] = Math_fround(Math_fround(1.0) / Math_fround(HEAP32[($5 + 180 | 0) >> 2] | 0 | 0)); + btVector3__operator___28float_20const__29_1($5 + 224 | 0 | 0, $5 + 108 | 0 | 0) | 0; + HEAP32[($5 + 240 | 0) >> 2] = HEAP32[($5 + 248 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 240 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 244 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAPF32[($5 + 88 | 0) >> 2] = Math_fround(.5); + btQuantizedBvh__getAabbMax_28int_29_20const($5 + 56 | 0 | 0, $6 | 0, HEAP32[($5 + 240 | 0) >> 2] | 0 | 0); + btQuantizedBvh__getAabbMin_28int_29_20const($5 + 40 | 0 | 0, $6 | 0, HEAP32[($5 + 240 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($5 + 72 | 0 | 0, $5 + 56 | 0 | 0, $5 + 40 | 0 | 0); + operator__28float_20const__2c_20btVector3_20const__29($5 + 92 | 0 | 0, $5 + 88 | 0 | 0, $5 + 72 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 24 | 0 | 0, $5 + 92 | 0 | 0, $5 + 224 | 0 | 0); + $149 = $5 + 24 | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($5 + 8 | 0 | 0, $149 | 0, $149 | 0); + $150 = 8; + i64toi32_i32$2 = ($5 + 8 | 0) + $150 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $489 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 24 | 0) + $150 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $489; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $5; + i64toi32_i32$1 = HEAP32[($5 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 12 | 0) >> 2] | 0; + $493 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 24 | 0) >> 2] = $493; + HEAP32[($5 + 28 | 0) >> 2] = i64toi32_i32$0; + btVector3__operator___28btVector3_20const__29_1($5 + 196 | 0 | 0, $5 + 24 | 0 | 0) | 0; + HEAP32[($5 + 240 | 0) >> 2] = (HEAP32[($5 + 240 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + HEAPF32[($5 + 4 | 0) >> 2] = Math_fround(Math_fround(1.0) / Math_fround(Math_fround(HEAP32[($5 + 180 | 0) >> 2] | 0 | 0) - Math_fround(1.0))); + btVector3__operator___28float_20const__29_1($5 + 196 | 0 | 0, $5 + 4 | 0 | 0) | 0; + $183 = btVector3__maxAxis_28_29_20const($5 + 196 | 0 | 0) | 0; + __stack_pointer = $5 + 256 | 0; + return $183 | 0; + } + + function btQuantizedBvh__sortAndCalcSplittingIndex_28int_2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $162 = 0, $191 = 0, $207 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 208 | 0; + __stack_pointer = $6; + HEAP32[($6 + 204 | 0) >> 2] = $0; + HEAP32[($6 + 200 | 0) >> 2] = $1; + HEAP32[($6 + 196 | 0) >> 2] = $2; + HEAP32[($6 + 192 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 204 | 0) >> 2] | 0; + HEAP32[($6 + 184 | 0) >> 2] = HEAP32[($6 + 200 | 0) >> 2] | 0; + HEAP32[($6 + 180 | 0) >> 2] = (HEAP32[($6 + 196 | 0) >> 2] | 0) - (HEAP32[($6 + 200 | 0) >> 2] | 0) | 0; + HEAPF32[($6 + 156 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 152 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 148 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 160 | 0 | 0, $6 + 156 | 0 | 0, $6 + 152 | 0 | 0, $6 + 148 | 0 | 0) | 0; + HEAP32[($6 + 188 | 0) >> 2] = HEAP32[($6 + 200 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 188 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 196 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAPF32[($6 + 128 | 0) >> 2] = Math_fround(.5); + btQuantizedBvh__getAabbMax_28int_29_20const($6 + 96 | 0 | 0, $7 | 0, HEAP32[($6 + 188 | 0) >> 2] | 0 | 0); + btQuantizedBvh__getAabbMin_28int_29_20const($6 + 80 | 0 | 0, $7 | 0, HEAP32[($6 + 188 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 112 | 0 | 0, $6 + 96 | 0 | 0, $6 + 80 | 0 | 0); + operator__28float_20const__2c_20btVector3_20const__29($6 + 132 | 0 | 0, $6 + 128 | 0 | 0, $6 + 112 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($6 + 160 | 0 | 0, $6 + 132 | 0 | 0) | 0; + HEAP32[($6 + 188 | 0) >> 2] = (HEAP32[($6 + 188 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + HEAPF32[($6 + 76 | 0) >> 2] = Math_fround(Math_fround(1.0) / Math_fround(HEAP32[($6 + 180 | 0) >> 2] | 0 | 0)); + btVector3__operator___28float_20const__29_1($6 + 160 | 0 | 0, $6 + 76 | 0 | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 160 | 0 | 0) | 0) + ((HEAP32[($6 + 192 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 176 | 0) >> 2] = wasm2js_f32$0; + HEAP32[($6 + 188 | 0) >> 2] = HEAP32[($6 + 200 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($6 + 188 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 196 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAPF32[($6 + 56 | 0) >> 2] = Math_fround(.5); + btQuantizedBvh__getAabbMax_28int_29_20const($6 + 24 | 0 | 0, $7 | 0, HEAP32[($6 + 188 | 0) >> 2] | 0 | 0); + btQuantizedBvh__getAabbMin_28int_29_20const($6 + 8 | 0 | 0, $7 | 0, HEAP32[($6 + 188 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 40 | 0 | 0, $6 + 24 | 0 | 0, $6 + 8 | 0 | 0); + operator__28float_20const__2c_20btVector3_20const__29($6 + 60 | 0 | 0, $6 + 56 | 0 | 0, $6 + 40 | 0 | 0); + label$5 : { + if (!(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 60 | 0 | 0) | 0) + ((HEAP32[($6 + 192 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) > Math_fround(HEAPF32[($6 + 176 | 0) >> 2]) & 1 | 0)) { + break label$5 + } + btQuantizedBvh__swapLeafNodes_28int_2c_20int_29($7 | 0, HEAP32[($6 + 188 | 0) >> 2] | 0 | 0, HEAP32[($6 + 184 | 0) >> 2] | 0 | 0); + HEAP32[($6 + 184 | 0) >> 2] = (HEAP32[($6 + 184 | 0) >> 2] | 0) + 1 | 0; + } + HEAP32[($6 + 188 | 0) >> 2] = (HEAP32[($6 + 188 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + HEAP32[($6 + 4 | 0) >> 2] = (HEAP32[($6 + 180 | 0) >> 2] | 0 | 0) / (3 | 0) | 0; + $162 = 1; + label$6 : { + if ((HEAP32[($6 + 184 | 0) >> 2] | 0 | 0) <= ((HEAP32[($6 + 200 | 0) >> 2] | 0) + (HEAP32[($6 + 4 | 0) >> 2] | 0) | 0 | 0) & 1 | 0) { + break label$6 + } + $162 = (HEAP32[($6 + 184 | 0) >> 2] | 0 | 0) >= (((HEAP32[($6 + 196 | 0) >> 2] | 0) - 1 | 0) - (HEAP32[($6 + 4 | 0) >> 2] | 0) | 0 | 0); + } + HEAP8[($6 + 3 | 0) >> 0] = $162 & 1 | 0; + label$7 : { + if (!((HEAPU8[($6 + 3 | 0) >> 0] | 0) & 1 | 0)) { + break label$7 + } + HEAP32[($6 + 184 | 0) >> 2] = (HEAP32[($6 + 200 | 0) >> 2] | 0) + ((HEAP32[($6 + 180 | 0) >> 2] | 0) >> 1 | 0) | 0; + } + $191 = 1; + label$8 : { + if ((HEAP32[($6 + 184 | 0) >> 2] | 0 | 0) == (HEAP32[($6 + 200 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$8 + } + $191 = (HEAP32[($6 + 184 | 0) >> 2] | 0 | 0) == (HEAP32[($6 + 196 | 0) >> 2] | 0 | 0); + } + HEAP8[($6 + 2 | 0) >> 0] = $191 & 1 | 0; + label$9 : { + if (!((HEAPU8[($6 + 2 | 0) >> 0] | 0) & 1 | 0)) { + break label$9 + } + __assert_fail(77652 | 0, 73634 | 0, 298 | 0, 66510 | 0); + wasm2js_trap(); + } + $207 = HEAP32[($6 + 184 | 0) >> 2] | 0; + __stack_pointer = $6 + 208 | 0; + return $207 | 0; + } + + function btQuantizedBvh__setInternalNodeAabbMin_28int_2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0, $20 = 0, $22 = 0, $16 = 0, $75 = 0, $85 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($6 + 60 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btQuantizedBvh__quantize_28unsigned_20short__2c_20btVector3_20const__2c_20int_29_20const($6 | 0, btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($6 + 124 | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0, 0 | 0); + break label$1; + } + $16 = HEAP32[($5 + 4 | 0) >> 2] | 0; + $20 = btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29($6 + 84 | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $16; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $75 = i64toi32_i32$0; + i64toi32_i32$0 = $20; + HEAP32[i64toi32_i32$0 >> 2] = $75; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $22 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $22 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $85 = i64toi32_i32$1; + i64toi32_i32$1 = $20 + $22 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $85; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + __stack_pointer = $5 + 16 | 0; + return; + } + + function btQuantizedBvh__setInternalNodeAabbMax_28int_2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0, $24 = 0, $26 = 0, $18 = 0, $85 = 0, $95 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($6 + 60 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btQuantizedBvh__quantize_28unsigned_20short__2c_20btVector3_20const__2c_20int_29_20const($6 | 0, (btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($6 + 124 | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) + 6 | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0, 1 | 0); + break label$1; + } + $18 = HEAP32[($5 + 4 | 0) >> 2] | 0; + $24 = (btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29($6 + 84 | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) + 16 | 0; + i64toi32_i32$2 = $18; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $85 = i64toi32_i32$0; + i64toi32_i32$0 = $24; + HEAP32[i64toi32_i32$0 >> 2] = $85; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $26 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $26 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $95 = i64toi32_i32$1; + i64toi32_i32$1 = $24 + $26 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $95; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + __stack_pointer = $5 + 16 | 0; + return; + } + + function btQuantizedBvh__getAabbMin_28int_29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0, $19 = 0, $65 = 0, $75 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $1; + HEAP32[($5 + 8 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($6 + 60 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btQuantizedBvh__unQuantize_28unsigned_20short_20const__29_20const($0 | 0, $6 | 0, btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($6 + 104 | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0 | 0); + break label$1; + } + i64toi32_i32$2 = btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29_20const($6 + 64 | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $65 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $65; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $19 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $19 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $75 = i64toi32_i32$1; + i64toi32_i32$1 = $0 + $19 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $75; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + __stack_pointer = $5 + 16 | 0; + return; + } + + function btQuantizedBvh__getAabbMax_28int_29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0, $23 = 0, $75 = 0, $85 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $1; + HEAP32[($5 + 8 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($6 + 60 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btQuantizedBvh__unQuantize_28unsigned_20short_20const__29_20const($0 | 0, $6 | 0, (btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($6 + 104 | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) + 6 | 0 | 0); + break label$1; + } + i64toi32_i32$2 = (btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29_20const($6 + 64 | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $75 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $75; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $23 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $23 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $85 = i64toi32_i32$1; + i64toi32_i32$1 = $0 + $23 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $85; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + __stack_pointer = $5 + 16 | 0; + return; + } + + function btQuantizedBvh__mergeInternalNodeAabb_28int_2c_20btVector3_20const__2c_20btVector3_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $62 = 0, $106 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($7 + 60 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btQuantizedBvh__quantize_28unsigned_20short__2c_20btVector3_20const__2c_20int_29_20const($7 | 0, $6 + 10 | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, 0 | 0); + btQuantizedBvh__quantize_28unsigned_20short__2c_20btVector3_20const__2c_20int_29_20const($7 | 0, $6 + 4 | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0, 1 | 0); + HEAP32[$6 >> 2] = 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[$6 >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$3 + } + label$5 : { + if (!(((HEAPU16[((btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($7 + 124 | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0) + ((HEAP32[$6 >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) & 65535 | 0 | 0) > ((HEAPU16[(($6 + 10 | 0) + ((HEAP32[$6 >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) & 65535 | 0 | 0) & 1 | 0)) { + break label$5 + } + $62 = HEAPU16[(($6 + 10 | 0) + ((HEAP32[$6 >> 2] | 0) << 1 | 0) | 0) >> 1] | 0; + (wasm2js_i32$0 = (btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($7 + 124 | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0) + ((HEAP32[$6 >> 2] | 0) << 1 | 0) | 0, wasm2js_i32$1 = $62), HEAP16[wasm2js_i32$0 >> 1] = wasm2js_i32$1; + } + label$6 : { + if (!(((HEAPU16[(((btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($7 + 124 | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0) + 6 | 0) + ((HEAP32[$6 >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) & 65535 | 0 | 0) < ((HEAPU16[(($6 + 4 | 0) + ((HEAP32[$6 >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) & 65535 | 0 | 0) & 1 | 0)) { + break label$6 + } + $106 = HEAPU16[(($6 + 4 | 0) + ((HEAP32[$6 >> 2] | 0) << 1 | 0) | 0) >> 1] | 0; + (wasm2js_i32$0 = ((btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($7 + 124 | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0) + 6 | 0) + ((HEAP32[$6 >> 2] | 0) << 1 | 0) | 0, wasm2js_i32$1 = $106), HEAP16[wasm2js_i32$0 >> 1] = wasm2js_i32$1; + } + HEAP32[$6 >> 2] = (HEAP32[$6 >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + break label$1; + } + btVector3__setMin_28btVector3_20const__29(btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29($7 + 84 | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0); + btVector3__setMax_28btVector3_20const__29((btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29($7 + 84 | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0) + 16 | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0); + } + __stack_pointer = $6 + 32 | 0; + return; + } + + function btQuantizedBvh__updateSubtreeHeaders_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $23 = 0, $39 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 112 | 0; + __stack_pointer = $5; + HEAP32[($5 + 108 | 0) >> 2] = $0; + HEAP32[($5 + 104 | 0) >> 2] = $1; + HEAP32[($5 + 100 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 108 | 0) >> 2] | 0; + label$1 : { + if ((HEAPU8[($6 + 60 | 0) >> 0] | 0) & 1 | 0) { + break label$1 + } + __assert_fail(76588 | 0, 73634 | 0, 219 | 0, 69605 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($6 + 124 | 0 | 0, HEAP32[($5 + 104 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 96 | 0) >> 2] = wasm2js_i32$1; + label$2 : { + label$3 : { + if (!((btQuantizedBvhNode__isLeafNode_28_29_20const(HEAP32[($5 + 96 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$3 + } + $23 = 1; + break label$2; + } + $23 = btQuantizedBvhNode__getEscapeIndex_28_29_20const(HEAP32[($5 + 96 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($5 + 92 | 0) >> 2] = $23; + HEAP32[($5 + 88 | 0) >> 2] = (HEAP32[($5 + 92 | 0) >> 2] | 0) << 4 | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($6 + 124 | 0 | 0, HEAP32[($5 + 100 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 84 | 0) >> 2] = wasm2js_i32$1; + label$4 : { + label$5 : { + if (!((btQuantizedBvhNode__isLeafNode_28_29_20const(HEAP32[($5 + 84 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$5 + } + $39 = 1; + break label$4; + } + $39 = btQuantizedBvhNode__getEscapeIndex_28_29_20const(HEAP32[($5 + 84 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($5 + 80 | 0) >> 2] = $39; + HEAP32[($5 + 76 | 0) >> 2] = (HEAP32[($5 + 80 | 0) >> 2] | 0) << 4 | 0; + label$6 : { + if (!((HEAP32[($5 + 88 | 0) >> 2] | 0 | 0) <= (2048 | 0) & 1 | 0)) { + break label$6 + } + btBvhSubtreeInfo__btBvhSubtreeInfo_28_29($5 + 40 | 0 | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btBvhSubtreeInfo___expand_28btBvhSubtreeInfo_20const__29($6 + 148 | 0 | 0, $5 + 40 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 72 | 0) >> 2] = wasm2js_i32$1; + btBvhSubtreeInfo__setAabbFromQuantizeNode_28btQuantizedBvhNode_20const__29(HEAP32[($5 + 72 | 0) >> 2] | 0 | 0, HEAP32[($5 + 96 | 0) >> 2] | 0 | 0); + HEAP32[((HEAP32[($5 + 72 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($5 + 104 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 72 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[($5 + 92 | 0) >> 2] | 0; + } + label$7 : { + if (!((HEAP32[($5 + 76 | 0) >> 2] | 0 | 0) <= (2048 | 0) & 1 | 0)) { + break label$7 + } + btBvhSubtreeInfo__btBvhSubtreeInfo_28_29($5 + 4 | 0 | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btBvhSubtreeInfo___expand_28btBvhSubtreeInfo_20const__29($6 + 148 | 0 | 0, $5 + 4 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_i32$1; + btBvhSubtreeInfo__setAabbFromQuantizeNode_28btQuantizedBvhNode_20const__29(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, HEAP32[($5 + 84 | 0) >> 2] | 0 | 0); + HEAP32[((HEAP32[($5 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($5 + 100 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[($5 + 80 | 0) >> 2] | 0; + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btAlignedObjectArray_btBvhSubtreeInfo___size_28_29_20const($6 + 148 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 168 | 0) >> 2] = wasm2js_i32$1; + __stack_pointer = $5 + 112 | 0; + return; + } + + function btQuantizedBvh__setInternalNodeEscapeIndex_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $12 = 0, $17 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($6 + 60 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + $12 = 0 - (HEAP32[($5 + 4 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($6 + 124 | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $12), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + $17 = HEAP32[($5 + 4 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29($6 + 84 | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $17), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + } + __stack_pointer = $5 + 16 | 0; + return; + } + + function btAlignedObjectArray_btBvhSubtreeInfo___capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btBvhSubtreeInfo___allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btAlignedObjectArray_btBvhSubtreeInfo___reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btBvhSubtreeInfo___capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btBvhSubtreeInfo___allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btBvhSubtreeInfo___copy_28int_2c_20int_2c_20btBvhSubtreeInfo__29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btBvhSubtreeInfo___size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btBvhSubtreeInfo___destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btBvhSubtreeInfo___size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btBvhSubtreeInfo___deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btBvhSubtreeInfo__operator_20new_28unsigned_20long_2c_20void__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return HEAP32[($4 + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btQuantizedBvhNode___destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btQuantizedBvhNode___deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btQuantizedBvhNode_2c_2016u___deallocate_28btQuantizedBvhNode__29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btOptimizedBvhNode___size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btOptimizedBvhNode___destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btOptimizedBvhNode___deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btOptimizedBvhNode_2c_2016u___deallocate_28btOptimizedBvhNode__29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btQuantizedBvh__setQuantizationValues_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $7 = 0, $13 = 0, $22 = 0, $24 = 0, $38 = 0, $40 = 0, $78 = 0, $80 = 0, $102 = 0, $132 = 0, $166 = 0, $168 = 0, $186 = 0, $216 = 0, $248 = 0, $250 = 0, $305 = 0, $318 = 0, $338 = 0, $351 = 0, $413 = 0, $426 = 0, $472 = 0, $476 = 0, $529 = 0, $533 = 0, $582 = 0, $595 = 0, $633 = 0, $637 = 0, $690 = 0, $694 = 0, $740 = 0, $753 = 0; + $6 = __stack_pointer - 336 | 0; + __stack_pointer = $6; + HEAP32[($6 + 332 | 0) >> 2] = $0; + HEAP32[($6 + 328 | 0) >> 2] = $1; + HEAP32[($6 + 324 | 0) >> 2] = $2; + HEAPF32[($6 + 320 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 332 | 0) >> 2] | 0; + $13 = $6 + 320 | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 304 | 0 | 0, $13 | 0, $13 | 0, $13 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 288 | 0 | 0, HEAP32[($6 + 328 | 0) >> 2] | 0 | 0, $6 + 304 | 0 | 0); + $22 = $7 + 4 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 288 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 292 | 0) >> 2] | 0; + $305 = i64toi32_i32$0; + i64toi32_i32$0 = $22; + HEAP32[i64toi32_i32$0 >> 2] = $305; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $24 = 8; + i64toi32_i32$2 = ($6 + 288 | 0) + $24 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $318 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $24 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $318; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 272 | 0 | 0, HEAP32[($6 + 324 | 0) >> 2] | 0 | 0, $6 + 304 | 0 | 0); + $38 = $7 + 20 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 272 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 276 | 0) >> 2] | 0; + $338 = i64toi32_i32$0; + i64toi32_i32$0 = $38; + HEAP32[i64toi32_i32$0 >> 2] = $338; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $40 = 8; + i64toi32_i32$2 = ($6 + 272 | 0) + $40 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $351 = i64toi32_i32$1; + i64toi32_i32$1 = $38 + $40 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $351; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 256 | 0 | 0, $7 + 20 | 0 | 0, $7 + 4 | 0 | 0); + HEAPF32[($6 + 220 | 0) >> 2] = Math_fround(65533.0); + HEAPF32[($6 + 216 | 0) >> 2] = Math_fround(65533.0); + HEAPF32[($6 + 212 | 0) >> 2] = Math_fround(65533.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 224 | 0 | 0, $6 + 220 | 0 | 0, $6 + 216 | 0 | 0, $6 + 212 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_3($6 + 240 | 0 | 0, $6 + 224 | 0 | 0, $6 + 256 | 0 | 0); + $78 = $7 + 36 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 240 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 244 | 0) >> 2] | 0; + $413 = i64toi32_i32$0; + i64toi32_i32$0 = $78; + HEAP32[i64toi32_i32$0 >> 2] = $413; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $80 = 8; + i64toi32_i32$2 = ($6 + 240 | 0) + $80 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $426 = i64toi32_i32$1; + i64toi32_i32$1 = $78 + $80 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $426; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP8[($7 + 60 | 0) >> 0] = 1; + btVector3__btVector3_28_29($6 + 184 | 0 | 0) | 0; + btQuantizedBvh__quantize_28unsigned_20short__2c_20btVector3_20const__2c_20int_29_20const($7 | 0, $6 + 206 | 0 | 0, $7 + 4 | 0 | 0, 0 | 0); + btQuantizedBvh__unQuantize_28unsigned_20short_20const__29_20const($6 + 168 | 0 | 0, $7 | 0, $6 + 206 | 0 | 0); + $102 = 8; + i64toi32_i32$2 = ($6 + 168 | 0) + $102 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $472 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 184 | 0) + $102 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $472; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 168 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 172 | 0) >> 2] | 0; + $476 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 184 | 0) >> 2] = $476; + HEAP32[($6 + 188 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 152 | 0 | 0, $6 + 184 | 0 | 0, $6 + 304 | 0 | 0); + btVector3__setMin_28btVector3_20const__29($7 + 4 | 0 | 0, $6 + 152 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 136 | 0 | 0, $7 + 20 | 0 | 0, $7 + 4 | 0 | 0); + $132 = 8; + i64toi32_i32$2 = ($6 + 136 | 0) + $132 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $529 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 256 | 0) + $132 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $529; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 136 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 140 | 0) >> 2] | 0; + $533 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 256 | 0) >> 2] = $533; + HEAP32[($6 + 260 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($6 + 100 | 0) >> 2] = Math_fround(65533.0); + HEAPF32[($6 + 96 | 0) >> 2] = Math_fround(65533.0); + HEAPF32[($6 + 92 | 0) >> 2] = Math_fround(65533.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 104 | 0 | 0, $6 + 100 | 0 | 0, $6 + 96 | 0 | 0, $6 + 92 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_3($6 + 120 | 0 | 0, $6 + 104 | 0 | 0, $6 + 256 | 0 | 0); + $166 = $7 + 36 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 120 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 124 | 0) >> 2] | 0; + $582 = i64toi32_i32$0; + i64toi32_i32$0 = $166; + HEAP32[i64toi32_i32$0 >> 2] = $582; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $168 = 8; + i64toi32_i32$2 = ($6 + 120 | 0) + $168 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $595 = i64toi32_i32$1; + i64toi32_i32$1 = $166 + $168 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $595; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btQuantizedBvh__quantize_28unsigned_20short__2c_20btVector3_20const__2c_20int_29_20const($7 | 0, $6 + 206 | 0 | 0, $7 + 20 | 0 | 0, 1 | 0); + btQuantizedBvh__unQuantize_28unsigned_20short_20const__29_20const($6 + 76 | 0 | 0, $7 | 0, $6 + 206 | 0 | 0); + $186 = 8; + i64toi32_i32$2 = ($6 + 76 | 0) + $186 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $633 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 184 | 0) + $186 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $633; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 76 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 80 | 0) >> 2] | 0; + $637 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 184 | 0) >> 2] = $637; + HEAP32[($6 + 188 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 60 | 0 | 0, $6 + 184 | 0 | 0, $6 + 304 | 0 | 0); + btVector3__setMax_28btVector3_20const__29($7 + 20 | 0 | 0, $6 + 60 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 44 | 0 | 0, $7 + 20 | 0 | 0, $7 + 4 | 0 | 0); + $216 = 8; + i64toi32_i32$2 = ($6 + 44 | 0) + $216 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $690 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 256 | 0) + $216 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $690; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 44 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 48 | 0) >> 2] | 0; + $694 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 256 | 0) >> 2] = $694; + HEAP32[($6 + 260 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($6 + 8 | 0) >> 2] = Math_fround(65533.0); + HEAPF32[($6 + 4 | 0) >> 2] = Math_fround(65533.0); + HEAPF32[$6 >> 2] = Math_fround(65533.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 12 | 0 | 0, $6 + 8 | 0 | 0, $6 + 4 | 0 | 0, $6 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_3($6 + 28 | 0 | 0, $6 + 12 | 0 | 0, $6 + 256 | 0 | 0); + $248 = $7 + 36 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 28 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 32 | 0) >> 2] | 0; + $740 = i64toi32_i32$0; + i64toi32_i32$0 = $248; + HEAP32[i64toi32_i32$0 >> 2] = $740; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $250 = 8; + i64toi32_i32$2 = ($6 + 28 | 0) + $250 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $753 = i64toi32_i32$1; + i64toi32_i32$1 = $248 + $250 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $753; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $6 + 336 | 0; + return; + } + + function btQuantizedBvh__quantize_28unsigned_20short__2c_20btVector3_20const__2c_20int_29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $114 = Math_fround(0), $115 = Math_fround(0), $133 = Math_fround(0), $150 = Math_fround(0), $169 = Math_fround(0), $186 = Math_fround(0), $202 = Math_fround(0), $123 = 0, $126 = 0, $141 = 0, $158 = 0, $177 = 0, $180 = 0, $194 = 0, $210 = 0; + $6 = __stack_pointer - 48 | 0; + __stack_pointer = $6; + HEAP32[($6 + 44 | 0) >> 2] = $0; + HEAP32[($6 + 40 | 0) >> 2] = $1; + HEAP32[($6 + 36 | 0) >> 2] = $2; + HEAP32[($6 + 32 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 44 | 0) >> 2] | 0; + label$1 : { + if ((HEAPU8[($7 + 60 | 0) >> 0] | 0) & 1 | 0) { + break label$1 + } + __assert_fail(76588 | 0, 78832 | 0, 355 | 0, 80790 | 0); + wasm2js_trap(); + } + label$2 : { + if (Math_fround(HEAPF32[(btVector3__getX_28_29_20const(HEAP32[($6 + 36 | 0) >> 2] | 0 | 0) | 0) >> 2]) <= Math_fround(HEAPF32[(btVector3__getX_28_29_20const($7 + 20 | 0 | 0) | 0) >> 2]) & 1 | 0) { + break label$2 + } + __assert_fail(88132 | 0, 78832 | 0, 357 | 0, 80790 | 0); + wasm2js_trap(); + } + label$3 : { + if (Math_fround(HEAPF32[(btVector3__getY_28_29_20const(HEAP32[($6 + 36 | 0) >> 2] | 0 | 0) | 0) >> 2]) <= Math_fround(HEAPF32[(btVector3__getY_28_29_20const($7 + 20 | 0 | 0) | 0) >> 2]) & 1 | 0) { + break label$3 + } + __assert_fail(88017 | 0, 78832 | 0, 358 | 0, 80790 | 0); + wasm2js_trap(); + } + label$4 : { + if (Math_fround(HEAPF32[(btVector3__getZ_28_29_20const(HEAP32[($6 + 36 | 0) >> 2] | 0 | 0) | 0) >> 2]) <= Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($7 + 20 | 0 | 0) | 0) >> 2]) & 1 | 0) { + break label$4 + } + __assert_fail(87902 | 0, 78832 | 0, 359 | 0, 80790 | 0); + wasm2js_trap(); + } + label$5 : { + if (Math_fround(HEAPF32[(btVector3__getX_28_29_20const(HEAP32[($6 + 36 | 0) >> 2] | 0 | 0) | 0) >> 2]) >= Math_fround(HEAPF32[(btVector3__getX_28_29_20const($7 + 4 | 0 | 0) | 0) >> 2]) & 1 | 0) { + break label$5 + } + __assert_fail(88168 | 0, 78832 | 0, 361 | 0, 80790 | 0); + wasm2js_trap(); + } + label$6 : { + if (Math_fround(HEAPF32[(btVector3__getY_28_29_20const(HEAP32[($6 + 36 | 0) >> 2] | 0 | 0) | 0) >> 2]) >= Math_fround(HEAPF32[(btVector3__getY_28_29_20const($7 + 4 | 0 | 0) | 0) >> 2]) & 1 | 0) { + break label$6 + } + __assert_fail(88053 | 0, 78832 | 0, 362 | 0, 80790 | 0); + wasm2js_trap(); + } + label$7 : { + if (Math_fround(HEAPF32[(btVector3__getZ_28_29_20const(HEAP32[($6 + 36 | 0) >> 2] | 0 | 0) | 0) >> 2]) >= Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($7 + 4 | 0 | 0) | 0) >> 2]) & 1 | 0) { + break label$7 + } + __assert_fail(87938 | 0, 78832 | 0, 363 | 0, 80790 | 0); + wasm2js_trap(); + } + operator__28btVector3_20const__2c_20btVector3_20const__29($6 | 0, HEAP32[($6 + 36 | 0) >> 2] | 0 | 0, $7 + 4 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($6 + 16 | 0 | 0, $6 | 0, $7 + 36 | 0 | 0); + label$8 : { + label$9 : { + if (!(HEAP32[($6 + 32 | 0) >> 2] | 0)) { + break label$9 + } + $114 = Math_fround(1.0); + $115 = Math_fround(Math_fround(HEAPF32[(btVector3__getX_28_29_20const($6 + 16 | 0 | 0) | 0) >> 2]) + $114); + label$10 : { + label$11 : { + if (!($115 < Math_fround(4294967296.0) & $115 >= Math_fround(0.0) | 0)) { + break label$11 + } + $123 = ~~$115 >>> 0; + break label$10; + } + $123 = 0; + } + $126 = 1; + HEAP16[(HEAP32[($6 + 40 | 0) >> 2] | 0) >> 1] = $123 | $126 | 0; + $133 = Math_fround(Math_fround(HEAPF32[(btVector3__getY_28_29_20const($6 + 16 | 0 | 0) | 0) >> 2]) + $114); + label$12 : { + label$13 : { + if (!($133 < Math_fround(4294967296.0) & $133 >= Math_fround(0.0) | 0)) { + break label$13 + } + $141 = ~~$133 >>> 0; + break label$12; + } + $141 = 0; + } + HEAP16[((HEAP32[($6 + 40 | 0) >> 2] | 0) + 2 | 0) >> 1] = $141 | $126 | 0; + $150 = Math_fround(Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($6 + 16 | 0 | 0) | 0) >> 2]) + $114); + label$14 : { + label$15 : { + if (!($150 < Math_fround(4294967296.0) & $150 >= Math_fround(0.0) | 0)) { + break label$15 + } + $158 = ~~$150 >>> 0; + break label$14; + } + $158 = 0; + } + HEAP16[((HEAP32[($6 + 40 | 0) >> 2] | 0) + 4 | 0) >> 1] = $158 & 65535 | 0 | 1 | 0; + break label$8; + } + $169 = Math_fround(HEAPF32[(btVector3__getX_28_29_20const($6 + 16 | 0 | 0) | 0) >> 2]); + label$16 : { + label$17 : { + if (!($169 < Math_fround(4294967296.0) & $169 >= Math_fround(0.0) | 0)) { + break label$17 + } + $177 = ~~$169 >>> 0; + break label$16; + } + $177 = 0; + } + $180 = 65534; + HEAP16[(HEAP32[($6 + 40 | 0) >> 2] | 0) >> 1] = $177 & $180 | 0; + $186 = Math_fround(HEAPF32[(btVector3__getY_28_29_20const($6 + 16 | 0 | 0) | 0) >> 2]); + label$18 : { + label$19 : { + if (!($186 < Math_fround(4294967296.0) & $186 >= Math_fround(0.0) | 0)) { + break label$19 + } + $194 = ~~$186 >>> 0; + break label$18; + } + $194 = 0; + } + HEAP16[((HEAP32[($6 + 40 | 0) >> 2] | 0) + 2 | 0) >> 1] = $194 & $180 | 0; + $202 = Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($6 + 16 | 0 | 0) | 0) >> 2]); + label$20 : { + label$21 : { + if (!($202 < Math_fround(4294967296.0) & $202 >= Math_fround(0.0) | 0)) { + break label$21 + } + $210 = ~~$202 >>> 0; + break label$20; + } + $210 = 0; + } + HEAP16[((HEAP32[($6 + 40 | 0) >> 2] | 0) + 4 | 0) >> 1] = ($210 & 65535 | 0) & 65534 | 0; + } + __stack_pointer = $6 + 48 | 0; + return; + } + + function btQuantizedBvh__unQuantize_28unsigned_20short_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $1; + HEAP32[($5 + 24 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + btVector3__btVector3_28_29($0 | 0) | 0; + $11 = $6 + 36 | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround((HEAPU16[(HEAP32[($5 + 24 | 0) >> 2] | 0) >> 1] | 0) >>> 0) / Math_fround(HEAPF32[(btVector3__getX_28_29_20const($11 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround((HEAPU16[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 2 | 0) >> 1] | 0) >>> 0) / Math_fround(HEAPF32[(btVector3__getY_28_29_20const($11 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround((HEAPU16[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 4 | 0) >> 1] | 0) >>> 0) / Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($6 + 36 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $5 + 20 | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($0 | 0, $6 + 4 | 0 | 0) | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btQuantizedBvh___btQuantizedBvh_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 96952 + 8 | 0; + btAlignedObjectArray_btBvhSubtreeInfo____btAlignedObjectArray_28_29($4 + 148 | 0 | 0) | 0; + btAlignedObjectArray_btQuantizedBvhNode____btAlignedObjectArray_28_29($4 + 124 | 0 | 0) | 0; + btAlignedObjectArray_btQuantizedBvhNode____btAlignedObjectArray_28_29($4 + 104 | 0 | 0) | 0; + btAlignedObjectArray_btOptimizedBvhNode____btAlignedObjectArray_28_29($4 + 84 | 0 | 0) | 0; + btAlignedObjectArray_btOptimizedBvhNode____btAlignedObjectArray_28_29($4 + 64 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btBvhSubtreeInfo____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btBvhSubtreeInfo___clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btQuantizedBvhNode____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btQuantizedBvhNode___clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btOptimizedBvhNode____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btOptimizedBvhNode___clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btBvhSubtreeInfo___clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btBvhSubtreeInfo___destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btBvhSubtreeInfo___size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btBvhSubtreeInfo___deallocate_28_29($4 | 0); + btAlignedObjectArray_btBvhSubtreeInfo___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btQuantizedBvh___btQuantizedBvh_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[786 | 0]($4) | 0; + btQuantizedBvh__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btQuantizedBvh__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btOptimizedBvhNode___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 6 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btQuantizedBvh__swapLeafNodes_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, $5 = 0, $6 = 0, $48 = 0, $85 = 0, $118 = 0, $81 = 0, $13 = 0, $14 = 0, $28 = 0, $30 = 0, $37 = 0, $39 = 0, $49 = 0, $53 = 0, $57 = 0, $61 = 0, $65 = 0, $69 = 0, $73 = 0, $87 = 0, $91 = 0, $95 = 0, $99 = 0, $103 = 0, $107 = 0, $111 = 0, $120 = 0, $124 = 0, $128 = 0, $132 = 0, $136 = 0, $140 = 0, $144 = 0, $190 = 0, $194 = 0, $24 = 0, $214 = 0, $224 = 0, $236 = 0, $249 = 0, $267 = 0, $277 = 0, $287 = 0, $297 = 0, $307 = 0, $317 = 0, $327 = 0, $331 = 0, $351 = 0, $361 = 0, $371 = 0, $381 = 0, $391 = 0, $401 = 0, $411 = 0, $421 = 0, $433 = 0, $443 = 0, $453 = 0, $463 = 0, $473 = 0, $483 = 0, $493 = 0, $503 = 0; + $5 = __stack_pointer - 96 | 0; + __stack_pointer = $5; + HEAP32[($5 + 92 | 0) >> 2] = $0; + HEAP32[($5 + 88 | 0) >> 2] = $1; + HEAP32[($5 + 84 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 92 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($6 + 60 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + $13 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($6 + 104 | 0 | 0, HEAP32[($5 + 88 | 0) >> 2] | 0 | 0) | 0; + $14 = 8; + i64toi32_i32$2 = $13 + $14 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $190 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 64 | 0) + $14 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $190; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $13; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $194 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[(i64toi32_i32$1 + 64 | 0) >> 2] = $194; + HEAP32[(i64toi32_i32$1 + 68 | 0) >> 2] = i64toi32_i32$0; + $24 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($6 + 104 | 0 | 0, HEAP32[(i64toi32_i32$1 + 84 | 0) >> 2] | 0 | 0) | 0; + $28 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($6 + 104 | 0 | 0, HEAP32[(i64toi32_i32$1 + 88 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $24; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $214 = i64toi32_i32$0; + i64toi32_i32$0 = $28; + HEAP32[i64toi32_i32$0 >> 2] = $214; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $30 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $30 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $224 = i64toi32_i32$1; + i64toi32_i32$1 = $28 + $30 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $224; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $37 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($6 + 104 | 0 | 0, HEAP32[($5 + 84 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 64 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 68 | 0) >> 2] | 0; + $236 = i64toi32_i32$0; + i64toi32_i32$0 = $37; + HEAP32[i64toi32_i32$0 >> 2] = $236; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $39 = 8; + i64toi32_i32$2 = (i64toi32_i32$2 + 64 | 0) + $39 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $249 = i64toi32_i32$1; + i64toi32_i32$1 = $37 + $39 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $249; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$1; + } + $48 = btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29($6 + 64 | 0 | 0, HEAP32[($5 + 88 | 0) >> 2] | 0 | 0) | 0; + $49 = 56; + i64toi32_i32$2 = $48 + $49 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $267 = i64toi32_i32$0; + i64toi32_i32$0 = $5 + $49 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $267; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $53 = 48; + i64toi32_i32$2 = $48 + $53 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $277 = i64toi32_i32$1; + i64toi32_i32$1 = $5 + $53 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $277; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $57 = 40; + i64toi32_i32$2 = $48 + $57 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $287 = i64toi32_i32$0; + i64toi32_i32$0 = $5 + $57 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $287; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $61 = 32; + i64toi32_i32$2 = $48 + $61 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $297 = i64toi32_i32$1; + i64toi32_i32$1 = $5 + $61 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $297; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $65 = 24; + i64toi32_i32$2 = $48 + $65 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $307 = i64toi32_i32$0; + i64toi32_i32$0 = $5 + $65 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $307; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $69 = 16; + i64toi32_i32$2 = $48 + $69 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $317 = i64toi32_i32$1; + i64toi32_i32$1 = $5 + $69 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $317; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $73 = 8; + i64toi32_i32$2 = $48 + $73 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $327 = i64toi32_i32$0; + i64toi32_i32$0 = $5 + $73 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $327; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $48; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $331 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[i64toi32_i32$1 >> 2] = $331; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $81 = btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29($6 + 64 | 0 | 0, HEAP32[(i64toi32_i32$1 + 84 | 0) >> 2] | 0 | 0) | 0; + $85 = btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29($6 + 64 | 0 | 0, HEAP32[(i64toi32_i32$1 + 88 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $81; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $351 = i64toi32_i32$0; + i64toi32_i32$0 = $85; + HEAP32[i64toi32_i32$0 >> 2] = $351; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $87 = 56; + i64toi32_i32$2 = i64toi32_i32$2 + $87 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $361 = i64toi32_i32$1; + i64toi32_i32$1 = $85 + $87 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $361; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $91 = 48; + i64toi32_i32$2 = $81 + $91 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $371 = i64toi32_i32$0; + i64toi32_i32$0 = $85 + $91 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $371; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $95 = 40; + i64toi32_i32$2 = $81 + $95 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $381 = i64toi32_i32$1; + i64toi32_i32$1 = $85 + $95 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $381; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $99 = 32; + i64toi32_i32$2 = $81 + $99 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $391 = i64toi32_i32$0; + i64toi32_i32$0 = $85 + $99 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $391; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $103 = 24; + i64toi32_i32$2 = $81 + $103 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $401 = i64toi32_i32$1; + i64toi32_i32$1 = $85 + $103 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $401; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $107 = 16; + i64toi32_i32$2 = $81 + $107 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $411 = i64toi32_i32$0; + i64toi32_i32$0 = $85 + $107 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $411; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $111 = 8; + i64toi32_i32$2 = $81 + $111 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $421 = i64toi32_i32$1; + i64toi32_i32$1 = $85 + $111 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $421; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $118 = btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29($6 + 64 | 0 | 0, HEAP32[($5 + 84 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $433 = i64toi32_i32$0; + i64toi32_i32$0 = $118; + HEAP32[i64toi32_i32$0 >> 2] = $433; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $120 = 56; + i64toi32_i32$2 = i64toi32_i32$2 + $120 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $443 = i64toi32_i32$1; + i64toi32_i32$1 = $118 + $120 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $443; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $124 = 48; + i64toi32_i32$2 = $5 + $124 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $453 = i64toi32_i32$0; + i64toi32_i32$0 = $118 + $124 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $453; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $128 = 40; + i64toi32_i32$2 = $5 + $128 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $463 = i64toi32_i32$1; + i64toi32_i32$1 = $118 + $128 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $463; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $132 = 32; + i64toi32_i32$2 = $5 + $132 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $473 = i64toi32_i32$0; + i64toi32_i32$0 = $118 + $132 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $473; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $136 = 24; + i64toi32_i32$2 = $5 + $136 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $483 = i64toi32_i32$1; + i64toi32_i32$1 = $118 + $136 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $483; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $140 = 16; + i64toi32_i32$2 = $5 + $140 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $493 = i64toi32_i32$0; + i64toi32_i32$0 = $118 + $140 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $493; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $144 = 8; + i64toi32_i32$2 = $5 + $144 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $503 = i64toi32_i32$1; + i64toi32_i32$1 = $118 + $144 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $503; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + __stack_pointer = $5 + 96 | 0; + return; + } + + function btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 176 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btQuantizedBvhNode___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 177 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 4 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 176 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btOptimizedBvhNode___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 177 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 6 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btQuantizedBvh__reportAabbOverlappingNodex_28btNodeOverlapCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $19 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($7 + 60 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btQuantizedBvh__quantizeWithClamp_28unsigned_20short__2c_20btVector3_20const__2c_20int_29_20const($7 | 0, $6 + 10 | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, 0 | 0); + btQuantizedBvh__quantizeWithClamp_28unsigned_20short__2c_20btVector3_20const__2c_20int_29_20const($7 | 0, $6 + 4 | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0, 1 | 0); + $19 = HEAP32[($7 + 144 | 0) >> 2] | 0; + label$3 : { + label$4 : { + switch ($19 | 0) { + case 0: + btQuantizedBvh__walkStacklessQuantizedTree_28btNodeOverlapCallback__2c_20unsigned_20short__2c_20unsigned_20short__2c_20int_2c_20int_29_20const($7 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, $6 + 10 | 0 | 0, $6 + 4 | 0 | 0, 0 | 0, HEAP32[($7 + 56 | 0) >> 2] | 0 | 0); + break label$3; + case 1: + btQuantizedBvh__walkStacklessQuantizedTreeCacheFriendly_28btNodeOverlapCallback__2c_20unsigned_20short__2c_20unsigned_20short__29_20const($7 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, $6 + 10 | 0 | 0, $6 + 4 | 0 | 0); + break label$3; + case 2: + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($7 + 124 | 0 | 0, 0 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + btQuantizedBvh__walkRecursiveQuantizedTreeAgainstQueryAabb_28btQuantizedBvhNode_20const__2c_20btNodeOverlapCallback__2c_20unsigned_20short__2c_20unsigned_20short__29_20const($7 | 0, HEAP32[$6 >> 2] | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, $6 + 10 | 0 | 0, $6 + 4 | 0 | 0); + break label$3; + default: + break label$4; + }; + } + __assert_fail(86177 | 0, 73634 | 0, 361 | 0, 66312 | 0); + wasm2js_trap(); + } + break label$1; + } + btQuantizedBvh__walkStacklessTree_28btNodeOverlapCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const($7 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0); + } + __stack_pointer = $6 + 32 | 0; + return; + } + + function btQuantizedBvh__quantizeWithClamp_28unsigned_20short__2c_20btVector3_20const__2c_20int_29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, $7 = 0, i64toi32_i32$1 = 0, $15 = 0, $16 = 0, $68 = 0, $72 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + label$1 : { + if ((HEAPU8[($7 + 60 | 0) >> 0] | 0) & 1 | 0) { + break label$1 + } + __assert_fail(76588 | 0, 78832 | 0, 422 | 0, 76095 | 0); + wasm2js_trap(); + } + $15 = HEAP32[($6 + 20 | 0) >> 2] | 0; + $16 = 8; + i64toi32_i32$2 = $15 + $16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $68 = i64toi32_i32$0; + i64toi32_i32$0 = $6 + $16 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $68; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $15; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $72 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[$6 >> 2] = $72; + HEAP32[($6 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__setMax_28btVector3_20const__29($6 | 0, $7 + 4 | 0 | 0); + btVector3__setMin_28btVector3_20const__29($6 | 0, $7 + 20 | 0 | 0); + btQuantizedBvh__quantize_28unsigned_20short__2c_20btVector3_20const__2c_20int_29_20const($7 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, $6 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0); + __stack_pointer = $6 + 32 | 0; + return; + } + + function btQuantizedBvh__walkStacklessQuantizedTree_28btNodeOverlapCallback__2c_20unsigned_20short__2c_20unsigned_20short__2c_20int_2c_20int_29_20const($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, $9 = 0, $62 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0; + $8 = __stack_pointer - 64 | 0; + __stack_pointer = $8; + HEAP32[($8 + 60 | 0) >> 2] = $0; + HEAP32[($8 + 56 | 0) >> 2] = $1; + HEAP32[($8 + 52 | 0) >> 2] = $2; + HEAP32[($8 + 48 | 0) >> 2] = $3; + HEAP32[($8 + 44 | 0) >> 2] = $4; + HEAP32[($8 + 40 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 60 | 0) >> 2] | 0; + label$1 : { + if ((HEAPU8[($9 + 60 | 0) >> 0] | 0) & 1 | 0) { + break label$1 + } + __assert_fail(76588 | 0, 73634 | 0, 689 | 0, 81954 | 0); + wasm2js_trap(); + } + HEAP32[($8 + 36 | 0) >> 2] = HEAP32[($8 + 44 | 0) >> 2] | 0; + HEAP32[($8 + 32 | 0) >> 2] = 0; + HEAP32[($8 + 28 | 0) >> 2] = (HEAP32[($8 + 40 | 0) >> 2] | 0) - (HEAP32[($8 + 44 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = $8, wasm2js_i32$1 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($9 + 124 | 0 | 0, HEAP32[($8 + 44 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_i32$1; + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($8 + 36 | 0) >> 2] | 0 | 0) < (HEAP32[($8 + 40 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + label$4 : { + if ((HEAP32[($8 + 32 | 0) >> 2] | 0 | 0) < (HEAP32[($8 + 28 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$4 + } + __assert_fail(81024 | 0, 73634 | 0, 723 | 0, 81954 | 0); + wasm2js_trap(); + } + HEAP32[($8 + 32 | 0) >> 2] = (HEAP32[($8 + 32 | 0) >> 2] | 0) + 1 | 0; + (wasm2js_i32$0 = $8, wasm2js_i32$1 = testQuantizedAabbAgainstQuantizedAabb_28unsigned_20short_20const__2c_20unsigned_20short_20const__2c_20unsigned_20short_20const__2c_20unsigned_20short_20const__29(HEAP32[($8 + 52 | 0) >> 2] | 0 | 0, HEAP32[($8 + 48 | 0) >> 2] | 0 | 0, HEAP32[($8 + 24 | 0) >> 2] | 0 | 0, (HEAP32[($8 + 24 | 0) >> 2] | 0) + 6 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $8, wasm2js_i32$1 = (btQuantizedBvhNode__isLeafNode_28_29_20const(HEAP32[($8 + 24 | 0) >> 2] | 0 | 0) | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 19 | 0) >> 0] = wasm2js_i32$1; + label$5 : { + if (!((HEAPU8[($8 + 19 | 0) >> 0] | 0) & 1 | 0)) { + break label$5 + } + if (!(HEAP32[($8 + 12 | 0) >> 2] | 0)) { + break label$5 + } + $62 = HEAP32[($8 + 56 | 0) >> 2] | 0; + (((wasm2js_i32$1 = $62, wasm2js_i32$2 = btQuantizedBvhNode__getPartId_28_29_20const(HEAP32[($8 + 24 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$3 = btQuantizedBvhNode__getTriangleIndex_28_29_20const(HEAP32[($8 + 24 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$62 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0, wasm2js_i32$3 | 0); + } + label$6 : { + label$7 : { + label$8 : { + if (HEAP32[($8 + 12 | 0) >> 2] | 0) { + break label$8 + } + if (!((HEAPU8[($8 + 19 | 0) >> 0] | 0) & 1 | 0)) { + break label$7 + } + } + HEAP32[($8 + 24 | 0) >> 2] = (HEAP32[($8 + 24 | 0) >> 2] | 0) + 16 | 0; + HEAP32[($8 + 36 | 0) >> 2] = (HEAP32[($8 + 36 | 0) >> 2] | 0) + 1 | 0; + break label$6; + } + (wasm2js_i32$0 = $8, wasm2js_i32$3 = btQuantizedBvhNode__getEscapeIndex_28_29_20const(HEAP32[($8 + 24 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$3; + HEAP32[($8 + 24 | 0) >> 2] = (HEAP32[($8 + 24 | 0) >> 2] | 0) + ((HEAP32[($8 + 20 | 0) >> 2] | 0) << 4 | 0) | 0; + HEAP32[($8 + 36 | 0) >> 2] = (HEAP32[($8 + 36 | 0) >> 2] | 0) + (HEAP32[($8 + 20 | 0) >> 2] | 0) | 0; + } + continue label$3; + }; + } + label$9 : { + if (!((HEAP32[(0 + 114084 | 0) >> 2] | 0 | 0) < (HEAP32[($8 + 32 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$9 + } + HEAP32[(0 + 114084 | 0) >> 2] = HEAP32[($8 + 32 | 0) >> 2] | 0; + } + __stack_pointer = $8 + 64 | 0; + return; + } + + function btQuantizedBvh__walkStacklessQuantizedTreeCacheFriendly_28btNodeOverlapCallback__2c_20unsigned_20short__2c_20unsigned_20short__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + label$1 : { + if ((HEAPU8[($7 + 60 | 0) >> 0] | 0) & 1 | 0) { + break label$1 + } + __assert_fail(76588 | 0, 73634 | 0, 755 | 0, 66019 | 0); + wasm2js_trap(); + } + HEAP32[($6 + 12 | 0) >> 2] = 0; + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btBvhSubtreeInfo___size_28_29_20const($7 + 148 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$2 + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($7 + 148 | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = testQuantizedAabbAgainstQuantizedAabb_28unsigned_20short_20const__2c_20unsigned_20short_20const__2c_20unsigned_20short_20const__2c_20unsigned_20short_20const__29(HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0, (HEAP32[($6 + 8 | 0) >> 2] | 0) + 6 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$4 : { + if (!(HEAP32[($6 + 4 | 0) >> 2] | 0)) { + break label$4 + } + btQuantizedBvh__walkStacklessQuantizedTree_28btNodeOverlapCallback__2c_20unsigned_20short__2c_20unsigned_20short__2c_20int_2c_20int_29_20const($7 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, (HEAP32[((HEAP32[($6 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + (HEAP32[((HEAP32[($6 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) | 0 | 0); + } + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + __stack_pointer = $6 + 32 | 0; + return; + } + + function btQuantizedBvh__walkRecursiveQuantizedTreeAgainstQueryAabb_28btQuantizedBvhNode_20const__2c_20btNodeOverlapCallback__2c_20unsigned_20short__2c_20unsigned_20short__29_20const($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0, $31 = 0, $52 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0; + $7 = __stack_pointer - 48 | 0; + __stack_pointer = $7; + HEAP32[($7 + 44 | 0) >> 2] = $0; + HEAP32[($7 + 40 | 0) >> 2] = $1; + HEAP32[($7 + 36 | 0) >> 2] = $2; + HEAP32[($7 + 32 | 0) >> 2] = $3; + HEAP32[($7 + 28 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 44 | 0) >> 2] | 0; + label$1 : { + if ((HEAPU8[($8 + 60 | 0) >> 0] | 0) & 1 | 0) { + break label$1 + } + __assert_fail(76588 | 0, 73634 | 0, 439 | 0, 82995 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $7, wasm2js_i32$1 = testQuantizedAabbAgainstQuantizedAabb_28unsigned_20short_20const__2c_20unsigned_20short_20const__2c_20unsigned_20short_20const__2c_20unsigned_20short_20const__29(HEAP32[($7 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7 + 28 | 0) >> 2] | 0 | 0, HEAP32[($7 + 40 | 0) >> 2] | 0 | 0, (HEAP32[($7 + 40 | 0) >> 2] | 0) + 6 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = (btQuantizedBvhNode__isLeafNode_28_29_20const(HEAP32[($7 + 40 | 0) >> 2] | 0 | 0) | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 27 | 0) >> 0] = wasm2js_i32$1; + label$2 : { + if (!(HEAP32[($7 + 20 | 0) >> 2] | 0)) { + break label$2 + } + label$3 : { + label$4 : { + if (!((HEAPU8[($7 + 27 | 0) >> 0] | 0) & 1 | 0)) { + break label$4 + } + $31 = HEAP32[($7 + 36 | 0) >> 2] | 0; + (((wasm2js_i32$1 = $31, wasm2js_i32$2 = btQuantizedBvhNode__getPartId_28_29_20const(HEAP32[($7 + 40 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$3 = btQuantizedBvhNode__getTriangleIndex_28_29_20const(HEAP32[($7 + 40 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$31 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0, wasm2js_i32$3 | 0); + break label$3; + } + HEAP32[($7 + 16 | 0) >> 2] = (HEAP32[($7 + 40 | 0) >> 2] | 0) + 16 | 0; + btQuantizedBvh__walkRecursiveQuantizedTreeAgainstQueryAabb_28btQuantizedBvhNode_20const__2c_20btNodeOverlapCallback__2c_20unsigned_20short__2c_20unsigned_20short__29_20const($8 | 0, HEAP32[($7 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7 + 28 | 0) >> 2] | 0 | 0); + label$5 : { + label$6 : { + if (!((btQuantizedBvhNode__isLeafNode_28_29_20const(HEAP32[($7 + 16 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$6 + } + $52 = (HEAP32[($7 + 16 | 0) >> 2] | 0) + 16 | 0; + break label$5; + } + $52 = (HEAP32[($7 + 16 | 0) >> 2] | 0) + ((btQuantizedBvhNode__getEscapeIndex_28_29_20const(HEAP32[($7 + 16 | 0) >> 2] | 0 | 0) | 0) << 4 | 0) | 0; + } + HEAP32[($7 + 12 | 0) >> 2] = $52; + btQuantizedBvh__walkRecursiveQuantizedTreeAgainstQueryAabb_28btQuantizedBvhNode_20const__2c_20btNodeOverlapCallback__2c_20unsigned_20short__2c_20unsigned_20short__29_20const($8 | 0, HEAP32[($7 + 12 | 0) >> 2] | 0 | 0, HEAP32[($7 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7 + 28 | 0) >> 2] | 0 | 0); + } + } + __stack_pointer = $7 + 48 | 0; + return; + } + + function btQuantizedBvh__walkStacklessTree_28btNodeOverlapCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $63 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 48 | 0; + __stack_pointer = $6; + HEAP32[($6 + 44 | 0) >> 2] = $0; + HEAP32[($6 + 40 | 0) >> 2] = $1; + HEAP32[($6 + 36 | 0) >> 2] = $2; + HEAP32[($6 + 32 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 44 | 0) >> 2] | 0; + label$1 : { + if (!((HEAPU8[($7 + 60 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + __assert_fail(76587 | 0, 73634 | 0, 375 | 0, 81926 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29_20const($7 + 84 | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($6 + 20 | 0) >> 2] = 0; + HEAP32[($6 + 16 | 0) >> 2] = 0; + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) < (HEAP32[($7 + 56 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + label$4 : { + if ((HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) < (HEAP32[($7 + 56 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$4 + } + __assert_fail(66597 | 0, 73634 | 0, 387 | 0, 81926 | 0); + wasm2js_trap(); + } + HEAP32[($6 + 16 | 0) >> 2] = (HEAP32[($6 + 16 | 0) >> 2] | 0) + 1 | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = (TestAabbAgainstAabb2_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29(HEAP32[($6 + 36 | 0) >> 2] | 0 | 0, HEAP32[($6 + 32 | 0) >> 2] | 0 | 0, HEAP32[($6 + 28 | 0) >> 2] | 0 | 0, (HEAP32[($6 + 28 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) & 1 | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + HEAP8[($6 + 15 | 0) >> 0] = (HEAP32[((HEAP32[($6 + 28 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0) == (-1 | 0) & 1 | 0; + label$5 : { + if (!((HEAPU8[($6 + 15 | 0) >> 0] | 0) & 1 | 0)) { + break label$5 + } + if (!(HEAP32[($6 + 8 | 0) >> 2] | 0)) { + break label$5 + } + $63 = HEAP32[($6 + 40 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$63 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($63, HEAP32[((HEAP32[($6 + 28 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0, HEAP32[((HEAP32[($6 + 28 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0); + } + label$6 : { + label$7 : { + label$8 : { + if (HEAP32[($6 + 8 | 0) >> 2] | 0) { + break label$8 + } + if (!((HEAPU8[($6 + 15 | 0) >> 0] | 0) & 1 | 0)) { + break label$7 + } + } + HEAP32[($6 + 28 | 0) >> 2] = (HEAP32[($6 + 28 | 0) >> 2] | 0) + 64 | 0; + HEAP32[($6 + 20 | 0) >> 2] = (HEAP32[($6 + 20 | 0) >> 2] | 0) + 1 | 0; + break label$6; + } + HEAP32[($6 + 24 | 0) >> 2] = HEAP32[((HEAP32[($6 + 28 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[($6 + 28 | 0) >> 2] = (HEAP32[($6 + 28 | 0) >> 2] | 0) + ((HEAP32[($6 + 24 | 0) >> 2] | 0) << 6 | 0) | 0; + HEAP32[($6 + 20 | 0) >> 2] = (HEAP32[($6 + 20 | 0) >> 2] | 0) + (HEAP32[($6 + 24 | 0) >> 2] | 0) | 0; + } + continue label$3; + }; + } + label$9 : { + if (!((HEAP32[(0 + 114084 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$9 + } + HEAP32[(0 + 114084 | 0) >> 2] = HEAP32[($6 + 16 | 0) >> 2] | 0; + } + __stack_pointer = $6 + 48 | 0; + return; + } + + function testQuantizedAabbAgainstQuantizedAabb_28unsigned_20short_20const__2c_20unsigned_20short_20const__2c_20unsigned_20short_20const__2c_20unsigned_20short_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $92 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $92 = btSelect_28unsigned_20int_2c_20int_2c_20int_29((((((((HEAPU16[(HEAP32[($6 + 12 | 0) >> 2] | 0) >> 1] | 0) & 65535 | 0 | 0) <= ((HEAPU16[(HEAP32[$6 >> 2] | 0) >> 1] | 0) & 65535 | 0 | 0) & 1 | 0) & (((HEAPU16[(HEAP32[($6 + 8 | 0) >> 2] | 0) >> 1] | 0) & 65535 | 0 | 0) >= ((HEAPU16[(HEAP32[($6 + 4 | 0) >> 2] | 0) >> 1] | 0) & 65535 | 0 | 0) & 1 | 0) | 0) & (((HEAPU16[((HEAP32[($6 + 12 | 0) >> 2] | 0) + 4 | 0) >> 1] | 0) & 65535 | 0 | 0) <= ((HEAPU16[((HEAP32[$6 >> 2] | 0) + 4 | 0) >> 1] | 0) & 65535 | 0 | 0) & 1 | 0) | 0) & (((HEAPU16[((HEAP32[($6 + 8 | 0) >> 2] | 0) + 4 | 0) >> 1] | 0) & 65535 | 0 | 0) >= ((HEAPU16[((HEAP32[($6 + 4 | 0) >> 2] | 0) + 4 | 0) >> 1] | 0) & 65535 | 0 | 0) & 1 | 0) | 0) & (((HEAPU16[((HEAP32[($6 + 12 | 0) >> 2] | 0) + 2 | 0) >> 1] | 0) & 65535 | 0 | 0) <= ((HEAPU16[((HEAP32[$6 >> 2] | 0) + 2 | 0) >> 1] | 0) & 65535 | 0 | 0) & 1 | 0) | 0) & (((HEAPU16[((HEAP32[($6 + 8 | 0) >> 2] | 0) + 2 | 0) >> 1] | 0) & 65535 | 0 | 0) >= ((HEAPU16[((HEAP32[($6 + 4 | 0) >> 2] | 0) + 2 | 0) >> 1] | 0) & 65535 | 0 | 0) & 1 | 0) | 0 | 0, 1 | 0, 0 | 0) | 0; + __stack_pointer = $6 + 16 | 0; + return $92 | 0; + } + + function btQuantizedBvhNode__getPartId_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $14 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if ((btQuantizedBvhNode__isLeafNode_28_29_20const($4 | 0) | 0) & 1 | 0) { + break label$1 + } + __assert_fail(87706 | 0, 78832 | 0, 88 | 0, 82789 | 0); + wasm2js_trap(); + } + $14 = (HEAP32[($4 + 12 | 0) >> 2] | 0) >> 21 | 0; + __stack_pointer = $3 + 16 | 0; + return $14 | 0; + } + + function btQuantizedBvhNode__getTriangleIndex_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $24 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if ((btQuantizedBvhNode__isLeafNode_28_29_20const($4 | 0) | 0) & 1 | 0) { + break label$1 + } + __assert_fail(87706 | 0, 78832 | 0, 80 | 0, 66551 | 0); + wasm2js_trap(); + } + HEAP32[($3 + 8 | 0) >> 2] = 0; + HEAP32[($3 + 4 | 0) >> 2] = (((HEAP32[($3 + 8 | 0) >> 2] | 0) & 0 | 0) ^ -1 | 0) << 21 | 0; + $24 = (HEAP32[($4 + 12 | 0) >> 2] | 0) & ((HEAP32[($3 + 4 | 0) >> 2] | 0) ^ -1 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $24 | 0; + } + + function btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 176 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btBvhSubtreeInfo___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 177 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 5 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btSelect_28unsigned_20int_2c_20int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 32 | 0; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + HEAP32[($5 + 16 | 0) >> 2] = (HEAP32[($5 + 28 | 0) >> 2] | 0 | (0 - (HEAP32[($5 + 28 | 0) >> 2] | 0) | 0) | 0) >> 31 | 0; + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 16 | 0) >> 2] | 0) ^ -1 | 0; + return (HEAP32[($5 + 24 | 0) >> 2] | 0) & (HEAP32[($5 + 16 | 0) >> 2] | 0) | 0 | ((HEAP32[($5 + 20 | 0) >> 2] | 0) & (HEAP32[($5 + 12 | 0) >> 2] | 0) | 0) | 0 | 0; + } + + function btQuantizedBvh__walkStacklessTreeAgainstRay_28btNodeOverlapCallback__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20int_2c_20int_29_20const($0, $1, $2, $3, $4, $5, $6, $7) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + var $10 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $11 = 0, $28 = 0, $29 = 0, $36 = 0, $37 = 0, $94 = Math_fround(0), $118 = Math_fround(0), $142 = Math_fround(0), $159 = 0.0, $179 = 0, $182 = 0, $183 = 0, $185 = 0, $216 = 0, $218 = 0, $229 = 0, $231 = 0, $276 = 0, $293 = 0, $398 = 0, $402 = 0, $417 = 0, $421 = 0, $181 = 0, $743 = 0, $753 = 0, $769 = 0, $779 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $10 = __stack_pointer - 208 | 0; + __stack_pointer = $10; + HEAP32[($10 + 204 | 0) >> 2] = $0; + HEAP32[($10 + 200 | 0) >> 2] = $1; + HEAP32[($10 + 196 | 0) >> 2] = $2; + HEAP32[($10 + 192 | 0) >> 2] = $3; + HEAP32[($10 + 188 | 0) >> 2] = $4; + HEAP32[($10 + 184 | 0) >> 2] = $5; + HEAP32[($10 + 180 | 0) >> 2] = $6; + HEAP32[($10 + 176 | 0) >> 2] = $7; + $11 = HEAP32[($10 + 204 | 0) >> 2] | 0; + label$1 : { + if (!((HEAPU8[($11 + 60 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + __assert_fail(76587 | 0, 73634 | 0, 471 | 0, 66183 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $10, wasm2js_i32$1 = btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29_20const($11 + 84 | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 172 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($10 + 164 | 0) >> 2] = 0; + HEAP32[($10 + 160 | 0) >> 2] = 0; + HEAP32[($10 + 152 | 0) >> 2] = 0; + HEAP32[($10 + 148 | 0) >> 2] = 0; + HEAPF32[($10 + 144 | 0) >> 2] = Math_fround(1.0); + $28 = HEAP32[($10 + 196 | 0) >> 2] | 0; + $29 = 8; + i64toi32_i32$2 = $28 + $29 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $398 = i64toi32_i32$0; + i64toi32_i32$0 = ($10 + 128 | 0) + $29 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $398; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $28; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $402 = i64toi32_i32$1; + i64toi32_i32$1 = $10; + HEAP32[($10 + 128 | 0) >> 2] = $402; + HEAP32[($10 + 132 | 0) >> 2] = i64toi32_i32$0; + $36 = HEAP32[($10 + 196 | 0) >> 2] | 0; + $37 = 8; + i64toi32_i32$2 = $36 + $37 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $417 = i64toi32_i32$0; + i64toi32_i32$0 = ($10 + 112 | 0) + $37 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $417; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $36; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $421 = i64toi32_i32$1; + i64toi32_i32$1 = $10; + HEAP32[($10 + 112 | 0) >> 2] = $421; + HEAP32[($10 + 116 | 0) >> 2] = i64toi32_i32$0; + btVector3__setMin_28btVector3_20const__29($10 + 128 | 0 | 0, HEAP32[($10 + 192 | 0) >> 2] | 0 | 0); + btVector3__setMax_28btVector3_20const__29($10 + 112 | 0 | 0, HEAP32[($10 + 192 | 0) >> 2] | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($10 + 128 | 0 | 0, HEAP32[($10 + 188 | 0) >> 2] | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($10 + 112 | 0 | 0, HEAP32[($10 + 184 | 0) >> 2] | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($10 + 96 | 0 | 0, HEAP32[($10 + 192 | 0) >> 2] | 0 | 0, HEAP32[($10 + 196 | 0) >> 2] | 0 | 0); + btVector3__normalize_28_29($10 + 96 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($10 + 80 | 0 | 0, HEAP32[($10 + 192 | 0) >> 2] | 0 | 0, HEAP32[($10 + 196 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $10, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($10 + 96 | 0 | 0, $10 + 80 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 144 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28_29($10 + 64 | 0 | 0) | 0; + label$2 : { + label$3 : { + if (!(Math_fround(HEAPF32[(btVector3__operator_20float__28_29($10 + 96 | 0 | 0) | 0) >> 2]) == Math_fround(0 | 0) & 1 | 0)) { + break label$3 + } + $94 = Math_fround(999999984306749440.0); + break label$2; + } + $94 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[(btVector3__operator_20float__28_29($10 + 96 | 0 | 0) | 0) >> 2])); + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($10 + 64 | 0 | 0) | 0, wasm2js_f32$0 = $94), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + label$4 : { + label$5 : { + if (!(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($10 + 96 | 0 | 0) | 0) + 4 | 0) >> 2]) == Math_fround(0 | 0) & 1 | 0)) { + break label$5 + } + $118 = Math_fround(999999984306749440.0); + break label$4; + } + $118 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[((btVector3__operator_20float__28_29($10 + 96 | 0 | 0) | 0) + 4 | 0) >> 2])); + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($10 + 64 | 0 | 0) | 0, wasm2js_f32$0 = $118), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + label$6 : { + label$7 : { + if (!(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($10 + 96 | 0 | 0) | 0) + 8 | 0) >> 2]) == Math_fround(0 | 0) & 1 | 0)) { + break label$7 + } + $142 = Math_fround(999999984306749440.0); + break label$6; + } + $142 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[((btVector3__operator_20float__28_29($10 + 96 | 0 | 0) | 0) + 8 | 0) >> 2])); + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($10 + 64 | 0 | 0) | 0, wasm2js_f32$0 = $142), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + $159 = 0.0; + (wasm2js_i32$0 = $10, wasm2js_i32$1 = +Math_fround(HEAPF32[(btVector3__operator_20float__28_29($10 + 64 | 0 | 0) | 0) >> 2]) < $159), HEAP32[(wasm2js_i32$0 + 52 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $10, wasm2js_i32$1 = +Math_fround(HEAPF32[((btVector3__operator_20float__28_29($10 + 64 | 0 | 0) | 0) + 4 | 0) >> 2]) < $159), HEAP32[(wasm2js_i32$0 + 56 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $10, wasm2js_i32$1 = +Math_fround(HEAPF32[((btVector3__operator_20float__28_29($10 + 64 | 0 | 0) | 0) + 8 | 0) >> 2]) < +(0 | 0) & 1 | 0), HEAP32[(wasm2js_i32$0 + 60 | 0) >> 2] = wasm2js_i32$1; + $179 = $10 + 16 | 0; + $181 = $179 + 32 | 0; + $182 = $179; + label$8 : while (1) { + $183 = $182; + btVector3__btVector3_28_29($183 | 0) | 0; + $185 = $183 + 16 | 0; + $182 = $185; + if (!(($185 | 0) == ($181 | 0) & 1 | 0)) { + continue label$8 + } + break label$8; + }; + label$9 : { + label$10 : while (1) { + if (!((HEAP32[($10 + 164 | 0) >> 2] | 0 | 0) < (HEAP32[($11 + 56 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$9 + } + HEAPF32[($10 + 12 | 0) >> 2] = Math_fround(1.0); + label$11 : { + if ((HEAP32[($10 + 160 | 0) >> 2] | 0 | 0) < (HEAP32[($11 + 56 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$11 + } + __assert_fail(66597 | 0, 73634 | 0, 510 | 0, 66183 | 0); + wasm2js_trap(); + } + HEAP32[($10 + 160 | 0) >> 2] = (HEAP32[($10 + 160 | 0) >> 2] | 0) + 1 | 0; + $216 = $10 + 16 | 0; + i64toi32_i32$2 = HEAP32[($10 + 172 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $743 = i64toi32_i32$0; + i64toi32_i32$0 = $216; + HEAP32[i64toi32_i32$0 >> 2] = $743; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $218 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $218 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $753 = i64toi32_i32$1; + i64toi32_i32$1 = $216 + $218 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $753; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $229 = ($10 + 16 | 0) + 16 | 0; + i64toi32_i32$2 = (HEAP32[($10 + 172 | 0) >> 2] | 0) + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $769 = i64toi32_i32$0; + i64toi32_i32$0 = $229; + HEAP32[i64toi32_i32$0 >> 2] = $769; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $231 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $231 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $779 = i64toi32_i32$1; + i64toi32_i32$1 = $229 + $231 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $779; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__operator___28btVector3_20const__29($10 + 16 | 0 | 0, HEAP32[($10 + 184 | 0) >> 2] | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29(($10 + 16 | 0) + 16 | 0 | 0, HEAP32[($10 + 188 | 0) >> 2] | 0 | 0) | 0; + (wasm2js_i32$0 = $10, wasm2js_i32$1 = (TestAabbAgainstAabb2_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($10 + 128 | 0 | 0, $10 + 112 | 0 | 0, HEAP32[($10 + 172 | 0) >> 2] | 0 | 0, (HEAP32[($10 + 172 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) & 1 | 0), HEAP32[(wasm2js_i32$0 + 152 | 0) >> 2] = wasm2js_i32$1; + label$12 : { + label$13 : { + if (!(HEAP32[($10 + 152 | 0) >> 2] | 0)) { + break label$13 + } + $276 = btRayAabb2_28btVector3_20const__2c_20btVector3_20const__2c_20unsigned_20int_20const__2c_20btVector3_20const__2c_20float__2c_20float_2c_20float_29(HEAP32[($10 + 196 | 0) >> 2] | 0 | 0, $10 + 64 | 0 | 0, $10 + 52 | 0 | 0, $10 + 16 | 0 | 0, $10 + 12 | 0 | 0, Math_fround(Math_fround(0 | 0)), Math_fround(Math_fround(HEAPF32[($10 + 144 | 0) >> 2]))) | 0; + break label$12; + } + $276 = 0; + } + HEAP32[($10 + 148 | 0) >> 2] = $276 & 1 | 0; + HEAP8[($10 + 159 | 0) >> 0] = (HEAP32[((HEAP32[($10 + 172 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0) == (-1 | 0) & 1 | 0; + label$14 : { + if (!((HEAPU8[($10 + 159 | 0) >> 0] | 0) & 1 | 0)) { + break label$14 + } + if (!(HEAP32[($10 + 148 | 0) >> 2] | 0)) { + break label$14 + } + $293 = HEAP32[($10 + 200 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$293 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($293, HEAP32[((HEAP32[($10 + 172 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0, HEAP32[((HEAP32[($10 + 172 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0); + } + label$15 : { + label$16 : { + label$17 : { + if (HEAP32[($10 + 148 | 0) >> 2] | 0) { + break label$17 + } + if (!((HEAPU8[($10 + 159 | 0) >> 0] | 0) & 1 | 0)) { + break label$16 + } + } + HEAP32[($10 + 172 | 0) >> 2] = (HEAP32[($10 + 172 | 0) >> 2] | 0) + 64 | 0; + HEAP32[($10 + 164 | 0) >> 2] = (HEAP32[($10 + 164 | 0) >> 2] | 0) + 1 | 0; + break label$15; + } + HEAP32[($10 + 168 | 0) >> 2] = HEAP32[((HEAP32[($10 + 172 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[($10 + 172 | 0) >> 2] = (HEAP32[($10 + 172 | 0) >> 2] | 0) + ((HEAP32[($10 + 168 | 0) >> 2] | 0) << 6 | 0) | 0; + HEAP32[($10 + 164 | 0) >> 2] = (HEAP32[($10 + 164 | 0) >> 2] | 0) + (HEAP32[($10 + 168 | 0) >> 2] | 0) | 0; + } + continue label$10; + }; + } + label$18 : { + if (!((HEAP32[(0 + 114084 | 0) >> 2] | 0 | 0) < (HEAP32[($10 + 160 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$18 + } + HEAP32[(0 + 114084 | 0) >> 2] = HEAP32[($10 + 160 | 0) >> 2] | 0; + } + __stack_pointer = $10 + 208 | 0; + return; + } + + function btQuantizedBvh__walkStacklessQuantizedTreeAgainstRay_28btNodeOverlapCallback__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20int_2c_20int_29_20const($0, $1, $2, $3, $4, $5, $6, $7) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + var $10 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $11 = 0, $62 = Math_fround(0), $86 = Math_fround(0), $110 = Math_fround(0), $127 = 0.0, $145 = 0, $146 = 0, $153 = 0, $154 = 0, $232 = 0, $235 = 0, $236 = 0, $238 = 0, $250 = 0, $252 = 0, $268 = 0, $270 = 0, $310 = 0, $634 = 0, $638 = 0, $653 = 0, $657 = 0, $234 = 0, $834 = 0, $847 = 0, $870 = 0, $883 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$2 = 0, wasm2js_i32$3 = 0; + $10 = __stack_pointer - 240 | 0; + __stack_pointer = $10; + HEAP32[($10 + 236 | 0) >> 2] = $0; + HEAP32[($10 + 232 | 0) >> 2] = $1; + HEAP32[($10 + 228 | 0) >> 2] = $2; + HEAP32[($10 + 224 | 0) >> 2] = $3; + HEAP32[($10 + 220 | 0) >> 2] = $4; + HEAP32[($10 + 216 | 0) >> 2] = $5; + HEAP32[($10 + 212 | 0) >> 2] = $6; + HEAP32[($10 + 208 | 0) >> 2] = $7; + $11 = HEAP32[($10 + 236 | 0) >> 2] | 0; + label$1 : { + if ((HEAPU8[($11 + 60 | 0) >> 0] | 0) & 1 | 0) { + break label$1 + } + __assert_fail(76588 | 0, 73634 | 0, 563 | 0, 66211 | 0); + wasm2js_trap(); + } + HEAP32[($10 + 204 | 0) >> 2] = HEAP32[($10 + 212 | 0) >> 2] | 0; + HEAP32[($10 + 200 | 0) >> 2] = 0; + HEAP32[($10 + 196 | 0) >> 2] = (HEAP32[($10 + 208 | 0) >> 2] | 0) - (HEAP32[($10 + 212 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = $10, wasm2js_i32$1 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($11 + 124 | 0 | 0, HEAP32[($10 + 212 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 192 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($10 + 180 | 0) >> 2] = 0; + HEAP32[($10 + 176 | 0) >> 2] = 0; + HEAPF32[($10 + 172 | 0) >> 2] = Math_fround(1.0); + operator__28btVector3_20const__2c_20btVector3_20const__29($10 + 156 | 0 | 0, HEAP32[($10 + 224 | 0) >> 2] | 0 | 0, HEAP32[($10 + 228 | 0) >> 2] | 0 | 0); + btVector3__normalize_28_29($10 + 156 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($10 + 140 | 0 | 0, HEAP32[($10 + 224 | 0) >> 2] | 0 | 0, HEAP32[($10 + 228 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $10, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($10 + 156 | 0 | 0, $10 + 140 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 172 | 0) >> 2] = wasm2js_f32$0; + label$2 : { + label$3 : { + if (!(Math_fround(HEAPF32[(btVector3__operator_20float__28_29($10 + 156 | 0 | 0) | 0) >> 2]) == Math_fround(0 | 0) & 1 | 0)) { + break label$3 + } + $62 = Math_fround(999999984306749440.0); + break label$2; + } + $62 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[(btVector3__operator_20float__28_29($10 + 156 | 0 | 0) | 0) >> 2])); + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($10 + 156 | 0 | 0) | 0, wasm2js_f32$0 = $62), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + label$4 : { + label$5 : { + if (!(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($10 + 156 | 0 | 0) | 0) + 4 | 0) >> 2]) == Math_fround(0 | 0) & 1 | 0)) { + break label$5 + } + $86 = Math_fround(999999984306749440.0); + break label$4; + } + $86 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[((btVector3__operator_20float__28_29($10 + 156 | 0 | 0) | 0) + 4 | 0) >> 2])); + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($10 + 156 | 0 | 0) | 0, wasm2js_f32$0 = $86), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + label$6 : { + label$7 : { + if (!(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($10 + 156 | 0 | 0) | 0) + 8 | 0) >> 2]) == Math_fround(0 | 0) & 1 | 0)) { + break label$7 + } + $110 = Math_fround(999999984306749440.0); + break label$6; + } + $110 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[((btVector3__operator_20float__28_29($10 + 156 | 0 | 0) | 0) + 8 | 0) >> 2])); + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($10 + 156 | 0 | 0) | 0, wasm2js_f32$0 = $110), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + $127 = 0.0; + (wasm2js_i32$0 = $10, wasm2js_i32$1 = +Math_fround(HEAPF32[(btVector3__operator_20float__28_29($10 + 156 | 0 | 0) | 0) >> 2]) < $127), HEAP32[(wasm2js_i32$0 + 128 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $10, wasm2js_i32$1 = +Math_fround(HEAPF32[((btVector3__operator_20float__28_29($10 + 156 | 0 | 0) | 0) + 4 | 0) >> 2]) < $127), HEAP32[(wasm2js_i32$0 + 132 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $10, wasm2js_i32$1 = +Math_fround(HEAPF32[((btVector3__operator_20float__28_29($10 + 156 | 0 | 0) | 0) + 8 | 0) >> 2]) < +(0 | 0) & 1 | 0), HEAP32[(wasm2js_i32$0 + 136 | 0) >> 2] = wasm2js_i32$1; + $145 = HEAP32[($10 + 228 | 0) >> 2] | 0; + $146 = 8; + i64toi32_i32$2 = $145 + $146 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $634 = i64toi32_i32$0; + i64toi32_i32$0 = ($10 + 112 | 0) + $146 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $634; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $145; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $638 = i64toi32_i32$1; + i64toi32_i32$1 = $10; + HEAP32[($10 + 112 | 0) >> 2] = $638; + HEAP32[($10 + 116 | 0) >> 2] = i64toi32_i32$0; + $153 = HEAP32[($10 + 228 | 0) >> 2] | 0; + $154 = 8; + i64toi32_i32$2 = $153 + $154 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $653 = i64toi32_i32$0; + i64toi32_i32$0 = ($10 + 96 | 0) + $154 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $653; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $153; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $657 = i64toi32_i32$1; + i64toi32_i32$1 = $10; + HEAP32[($10 + 96 | 0) >> 2] = $657; + HEAP32[($10 + 100 | 0) >> 2] = i64toi32_i32$0; + btVector3__setMin_28btVector3_20const__29($10 + 112 | 0 | 0, HEAP32[($10 + 224 | 0) >> 2] | 0 | 0); + btVector3__setMax_28btVector3_20const__29($10 + 96 | 0 | 0, HEAP32[($10 + 224 | 0) >> 2] | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($10 + 112 | 0 | 0, HEAP32[($10 + 220 | 0) >> 2] | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($10 + 96 | 0 | 0, HEAP32[($10 + 216 | 0) >> 2] | 0 | 0) | 0; + btQuantizedBvh__quantizeWithClamp_28unsigned_20short__2c_20btVector3_20const__2c_20int_29_20const($11 | 0, $10 + 90 | 0 | 0, $10 + 112 | 0 | 0, 0 | 0); + btQuantizedBvh__quantizeWithClamp_28unsigned_20short__2c_20btVector3_20const__2c_20int_29_20const($11 | 0, $10 + 84 | 0 | 0, $10 + 96 | 0 | 0, 1 | 0); + label$8 : { + label$9 : while (1) { + if (!((HEAP32[($10 + 204 | 0) >> 2] | 0 | 0) < (HEAP32[($10 + 208 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + label$10 : { + if ((HEAP32[($10 + 200 | 0) >> 2] | 0 | 0) < (HEAP32[($10 + 196 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$10 + } + __assert_fail(81024 | 0, 73634 | 0, 626 | 0, 66211 | 0); + wasm2js_trap(); + } + HEAP32[($10 + 200 | 0) >> 2] = (HEAP32[($10 + 200 | 0) >> 2] | 0) + 1 | 0; + HEAPF32[($10 + 80 | 0) >> 2] = Math_fround(1.0); + HEAP32[($10 + 176 | 0) >> 2] = 0; + (wasm2js_i32$0 = $10, wasm2js_i32$1 = testQuantizedAabbAgainstQuantizedAabb_28unsigned_20short_20const__2c_20unsigned_20short_20const__2c_20unsigned_20short_20const__2c_20unsigned_20short_20const__29($10 + 90 | 0 | 0, $10 + 84 | 0 | 0, HEAP32[($10 + 192 | 0) >> 2] | 0 | 0, (HEAP32[($10 + 192 | 0) >> 2] | 0) + 6 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 180 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $10, wasm2js_i32$1 = (btQuantizedBvhNode__isLeafNode_28_29_20const(HEAP32[($10 + 192 | 0) >> 2] | 0 | 0) | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 187 | 0) >> 0] = wasm2js_i32$1; + label$11 : { + if (!(HEAP32[($10 + 180 | 0) >> 2] | 0)) { + break label$11 + } + $232 = $10 + 48 | 0; + $234 = $232 + 32 | 0; + $235 = $232; + label$12 : while (1) { + $236 = $235; + btVector3__btVector3_28_29($236 | 0) | 0; + $238 = $236 + 16 | 0; + $235 = $238; + if (!(($238 | 0) == ($234 | 0) & 1 | 0)) { + continue label$12 + } + break label$12; + }; + btQuantizedBvh__unQuantize_28unsigned_20short_20const__29_20const($10 + 32 | 0 | 0, $11 | 0, HEAP32[($10 + 192 | 0) >> 2] | 0 | 0); + $250 = $10 + 48 | 0; + i64toi32_i32$2 = $10; + i64toi32_i32$0 = HEAP32[($10 + 32 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($10 + 36 | 0) >> 2] | 0; + $834 = i64toi32_i32$0; + i64toi32_i32$0 = $250; + HEAP32[i64toi32_i32$0 >> 2] = $834; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $252 = 8; + i64toi32_i32$2 = ($10 + 32 | 0) + $252 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $847 = i64toi32_i32$1; + i64toi32_i32$1 = $250 + $252 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $847; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btQuantizedBvh__unQuantize_28unsigned_20short_20const__29_20const($10 + 16 | 0 | 0, $11 | 0, (HEAP32[($10 + 192 | 0) >> 2] | 0) + 6 | 0 | 0); + $268 = ($10 + 48 | 0) + 16 | 0; + i64toi32_i32$2 = $10; + i64toi32_i32$0 = HEAP32[($10 + 16 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($10 + 20 | 0) >> 2] | 0; + $870 = i64toi32_i32$0; + i64toi32_i32$0 = $268; + HEAP32[i64toi32_i32$0 >> 2] = $870; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $270 = 8; + i64toi32_i32$2 = ($10 + 16 | 0) + $270 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $883 = i64toi32_i32$1; + i64toi32_i32$1 = $268 + $270 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $883; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__operator___28btVector3_20const__29($10 + 48 | 0 | 0, HEAP32[($10 + 216 | 0) >> 2] | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29(($10 + 48 | 0) + 16 | 0 | 0, HEAP32[($10 + 220 | 0) >> 2] | 0 | 0) | 0; + btVector3__btVector3_28_29($10 | 0) | 0; + (wasm2js_i32$0 = $10, wasm2js_i32$1 = (btRayAabb2_28btVector3_20const__2c_20btVector3_20const__2c_20unsigned_20int_20const__2c_20btVector3_20const__2c_20float__2c_20float_2c_20float_29(HEAP32[($10 + 228 | 0) >> 2] | 0 | 0, $10 + 156 | 0 | 0, $10 + 128 | 0 | 0, $10 + 48 | 0 | 0, $10 + 80 | 0 | 0, Math_fround(Math_fround(0 | 0)), Math_fround(Math_fround(HEAPF32[($10 + 172 | 0) >> 2]))) | 0) & 1 | 0), HEAP32[(wasm2js_i32$0 + 176 | 0) >> 2] = wasm2js_i32$1; + } + label$13 : { + if (!((HEAPU8[($10 + 187 | 0) >> 0] | 0) & 1 | 0)) { + break label$13 + } + if (!(HEAP32[($10 + 176 | 0) >> 2] | 0)) { + break label$13 + } + $310 = HEAP32[($10 + 232 | 0) >> 2] | 0; + (((wasm2js_i32$1 = $310, wasm2js_i32$2 = btQuantizedBvhNode__getPartId_28_29_20const(HEAP32[($10 + 192 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$3 = btQuantizedBvhNode__getTriangleIndex_28_29_20const(HEAP32[($10 + 192 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$310 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0, wasm2js_i32$3 | 0); + } + label$14 : { + label$15 : { + label$16 : { + if (HEAP32[($10 + 176 | 0) >> 2] | 0) { + break label$16 + } + if (!((HEAPU8[($10 + 187 | 0) >> 0] | 0) & 1 | 0)) { + break label$15 + } + } + HEAP32[($10 + 192 | 0) >> 2] = (HEAP32[($10 + 192 | 0) >> 2] | 0) + 16 | 0; + HEAP32[($10 + 204 | 0) >> 2] = (HEAP32[($10 + 204 | 0) >> 2] | 0) + 1 | 0; + break label$14; + } + (wasm2js_i32$0 = $10, wasm2js_i32$3 = btQuantizedBvhNode__getEscapeIndex_28_29_20const(HEAP32[($10 + 192 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 188 | 0) >> 2] = wasm2js_i32$3; + HEAP32[($10 + 192 | 0) >> 2] = (HEAP32[($10 + 192 | 0) >> 2] | 0) + ((HEAP32[($10 + 188 | 0) >> 2] | 0) << 4 | 0) | 0; + HEAP32[($10 + 204 | 0) >> 2] = (HEAP32[($10 + 204 | 0) >> 2] | 0) + (HEAP32[($10 + 188 | 0) >> 2] | 0) | 0; + } + continue label$9; + }; + } + label$17 : { + if (!((HEAP32[(0 + 114084 | 0) >> 2] | 0 | 0) < (HEAP32[($10 + 200 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$17 + } + HEAP32[(0 + 114084 | 0) >> 2] = HEAP32[($10 + 200 | 0) >> 2] | 0; + } + __stack_pointer = $10 + 240 | 0; + return; + } + + function btQuantizedBvh__reportRayOverlappingNodex_28btNodeOverlapCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0; + $6 = __stack_pointer - 80 | 0; + __stack_pointer = $6; + HEAP32[($6 + 76 | 0) >> 2] = $0; + HEAP32[($6 + 72 | 0) >> 2] = $1; + HEAP32[($6 + 68 | 0) >> 2] = $2; + HEAP32[($6 + 64 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 76 | 0) >> 2] | 0; + $8 = HEAP32[($6 + 72 | 0) >> 2] | 0; + $9 = HEAP32[($6 + 68 | 0) >> 2] | 0; + $10 = HEAP32[($6 + 64 | 0) >> 2] | 0; + HEAPF32[($6 + 44 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 40 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 36 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 48 | 0 | 0, $6 + 44 | 0 | 0, $6 + 40 | 0 | 0, $6 + 36 | 0 | 0) | 0; + HEAPF32[($6 + 16 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 12 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 8 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 20 | 0 | 0, $6 + 16 | 0 | 0, $6 + 12 | 0 | 0, $6 + 8 | 0 | 0) | 0; + btQuantizedBvh__reportBoxCastOverlappingNodex_28btNodeOverlapCallback__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29_20const($7 | 0, $8 | 0, $9 | 0, $10 | 0, $6 + 48 | 0 | 0, $6 + 20 | 0 | 0); + __stack_pointer = $6 + 80 | 0; + return; + } + + function btQuantizedBvh__reportBoxCastOverlappingNodex_28btNodeOverlapCallback__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29_20const($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, $9 = 0; + $8 = __stack_pointer - 32 | 0; + __stack_pointer = $8; + HEAP32[($8 + 28 | 0) >> 2] = $0; + HEAP32[($8 + 24 | 0) >> 2] = $1; + HEAP32[($8 + 20 | 0) >> 2] = $2; + HEAP32[($8 + 16 | 0) >> 2] = $3; + HEAP32[($8 + 12 | 0) >> 2] = $4; + HEAP32[($8 + 8 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 28 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($9 + 60 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btQuantizedBvh__walkStacklessQuantizedTreeAgainstRay_28btNodeOverlapCallback__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20int_2c_20int_29_20const($9 | 0, HEAP32[($8 + 24 | 0) >> 2] | 0 | 0, HEAP32[($8 + 20 | 0) >> 2] | 0 | 0, HEAP32[($8 + 16 | 0) >> 2] | 0 | 0, HEAP32[($8 + 12 | 0) >> 2] | 0 | 0, HEAP32[($8 + 8 | 0) >> 2] | 0 | 0, 0 | 0, HEAP32[($9 + 56 | 0) >> 2] | 0 | 0); + break label$1; + } + btQuantizedBvh__walkStacklessTreeAgainstRay_28btNodeOverlapCallback__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20int_2c_20int_29_20const($9 | 0, HEAP32[($8 + 24 | 0) >> 2] | 0 | 0, HEAP32[($8 + 20 | 0) >> 2] | 0 | 0, HEAP32[($8 + 16 | 0) >> 2] | 0 | 0, HEAP32[($8 + 12 | 0) >> 2] | 0 | 0, HEAP32[($8 + 8 | 0) >> 2] | 0 | 0, 0 | 0, HEAP32[($9 + 56 | 0) >> 2] | 0 | 0); + } + __stack_pointer = $8 + 32 | 0; + return; + } + + function btQuantizedBvh__serialize_28void__2c_20unsigned_20int_2c_20bool_29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $8 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $307 = 0, $464 = 0, $706 = 0, $63 = 0, $65 = 0, $73 = 0, $75 = 0, $83 = 0, $85 = 0, $399 = 0, $401 = 0, $417 = 0, $419 = 0, $34 = 0, $52 = 0, $55 = 0, $847 = 0, $857 = 0, $869 = 0, $879 = 0, $891 = 0, $901 = 0, $133 = 0, $146 = 0, $159 = 0, $172 = 0, $185 = 0, $198 = 0, $209 = 0, $230 = 0, $240 = 0, $250 = 0, $260 = 0, $270 = 0, $280 = 0, $290 = 0, $352 = 0, $363 = 0, $374 = 0, $394 = 0, $1585 = 0, $1595 = 0, $410 = 0, $1623 = 0, $1633 = 0, $427 = 0, $437 = 0, $447 = 0, $493 = 0, $506 = 0, $519 = 0, $532 = 0, $545 = 0, $558 = 0, $569 = 0, $580 = 0, $601 = 0, $611 = 0, $621 = 0, $631 = 0, $641 = 0, $651 = 0, $661 = 0, $671 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 64 | 0; + __stack_pointer = $6; + HEAP32[($6 + 60 | 0) >> 2] = $0; + HEAP32[($6 + 56 | 0) >> 2] = $1; + HEAP32[($6 + 52 | 0) >> 2] = $2; + HEAP8[($6 + 51 | 0) >> 0] = $3; + $8 = HEAP32[($6 + 60 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($8 + 168 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btBvhSubtreeInfo___size_28_29_20const($8 + 148 | 0 | 0) | 0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(87521 | 0, 73634 | 0, 867 | 0, 80835 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $8, wasm2js_i32$1 = btAlignedObjectArray_btBvhSubtreeInfo___size_28_29_20const($8 + 148 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 168 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($6 + 44 | 0) >> 2] = HEAP32[($6 + 56 | 0) >> 2] | 0; + FUNCTION_TABLE[787 | 0](btQuantizedBvh__operator_20new_28unsigned_20long_2c_20void__29(172 | 0, HEAP32[($6 + 44 | 0) >> 2] | 0 | 0) | 0) | 0; + label$2 : { + label$3 : { + if (!((HEAPU8[($6 + 51 | 0) >> 0] | 0) & 1 | 0)) { + break label$3 + } + $34 = btSwapEndian_28int_29(HEAP32[($8 + 56 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($6 + 44 | 0) >> 2] | 0) + 56 | 0) >> 2] = $34; + btSwapVector3Endian_28btVector3_20const__2c_20btVector3__29($8 + 4 | 0 | 0, (HEAP32[($6 + 44 | 0) >> 2] | 0) + 4 | 0 | 0); + btSwapVector3Endian_28btVector3_20const__2c_20btVector3__29($8 + 20 | 0 | 0, (HEAP32[($6 + 44 | 0) >> 2] | 0) + 20 | 0 | 0); + btSwapVector3Endian_28btVector3_20const__2c_20btVector3__29($8 + 36 | 0 | 0, (HEAP32[($6 + 44 | 0) >> 2] | 0) + 36 | 0 | 0); + $52 = btSwapEndian_28int_29(HEAP32[($8 + 144 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($6 + 44 | 0) >> 2] | 0) + 144 | 0) >> 2] = $52; + $55 = btSwapEndian_28int_29(HEAP32[($8 + 168 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($6 + 44 | 0) >> 2] | 0) + 168 | 0) >> 2] = $55; + break label$2; + } + HEAP32[((HEAP32[($6 + 44 | 0) >> 2] | 0) + 56 | 0) >> 2] = HEAP32[($8 + 56 | 0) >> 2] | 0; + $63 = (HEAP32[($6 + 44 | 0) >> 2] | 0) + 4 | 0; + i64toi32_i32$2 = $8 + 4 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $847 = i64toi32_i32$0; + i64toi32_i32$0 = $63; + HEAP32[i64toi32_i32$0 >> 2] = $847; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $65 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $65 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $857 = i64toi32_i32$1; + i64toi32_i32$1 = $63 + $65 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $857; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $73 = (HEAP32[($6 + 44 | 0) >> 2] | 0) + 20 | 0; + i64toi32_i32$2 = $8 + 20 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $869 = i64toi32_i32$0; + i64toi32_i32$0 = $73; + HEAP32[i64toi32_i32$0 >> 2] = $869; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $75 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $75 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $879 = i64toi32_i32$1; + i64toi32_i32$1 = $73 + $75 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $879; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $83 = (HEAP32[($6 + 44 | 0) >> 2] | 0) + 36 | 0; + i64toi32_i32$2 = $8 + 36 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $891 = i64toi32_i32$0; + i64toi32_i32$0 = $83; + HEAP32[i64toi32_i32$0 >> 2] = $891; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $85 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $85 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $901 = i64toi32_i32$1; + i64toi32_i32$1 = $83 + $85 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $901; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[((HEAP32[($6 + 44 | 0) >> 2] | 0) + 144 | 0) >> 2] = HEAP32[($8 + 144 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 44 | 0) >> 2] | 0) + 168 | 0) >> 2] = HEAP32[($8 + 168 | 0) >> 2] | 0; + } + HEAP8[((HEAP32[($6 + 44 | 0) >> 2] | 0) + 60 | 0) >> 0] = (HEAPU8[($8 + 60 | 0) >> 0] | 0) & 1 | 0; + HEAP32[($6 + 40 | 0) >> 2] = HEAP32[($6 + 44 | 0) >> 2] | 0; + HEAP32[($6 + 40 | 0) >> 2] = (HEAP32[($6 + 40 | 0) >> 2] | 0) + 172 | 0; + HEAP32[($6 + 36 | 0) >> 2] = 0; + HEAP32[($6 + 40 | 0) >> 2] = (HEAP32[($6 + 40 | 0) >> 2] | 0) + (HEAP32[($6 + 36 | 0) >> 2] | 0) | 0; + HEAP32[($6 + 32 | 0) >> 2] = HEAP32[($8 + 56 | 0) >> 2] | 0; + label$4 : { + label$5 : { + if (!((HEAPU8[($8 + 60 | 0) >> 0] | 0) & 1 | 0)) { + break label$5 + } + btAlignedObjectArray_btQuantizedBvhNode___initializeFromBuffer_28void__2c_20int_2c_20int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 124 | 0 | 0, HEAP32[($6 + 40 | 0) >> 2] | 0 | 0, HEAP32[($6 + 32 | 0) >> 2] | 0 | 0, HEAP32[($6 + 32 | 0) >> 2] | 0 | 0); + label$6 : { + label$7 : { + if (!((HEAPU8[($6 + 51 | 0) >> 0] | 0) & 1 | 0)) { + break label$7 + } + HEAP32[($6 + 28 | 0) >> 2] = 0; + label$8 : { + label$9 : while (1) { + if (!((HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 32 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + $133 = btSwapEndian_28unsigned_20short_29((HEAPU16[(btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($8 + 124 | 0 | 0, HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0) >> 1] | 0) & 65535 | 0 | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 124 | 0 | 0, HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $133), HEAP16[wasm2js_i32$0 >> 1] = wasm2js_i32$1; + $146 = btSwapEndian_28unsigned_20short_29((HEAPU16[((btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($8 + 124 | 0 | 0, HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0) + 2 | 0) >> 1] | 0) & 65535 | 0 | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 124 | 0 | 0, HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $146), HEAP16[(wasm2js_i32$0 + 2 | 0) >> 1] = wasm2js_i32$1; + $159 = btSwapEndian_28unsigned_20short_29((HEAPU16[((btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($8 + 124 | 0 | 0, HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 1] | 0) & 65535 | 0 | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 124 | 0 | 0, HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $159), HEAP16[(wasm2js_i32$0 + 4 | 0) >> 1] = wasm2js_i32$1; + $172 = btSwapEndian_28unsigned_20short_29((HEAPU16[((btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($8 + 124 | 0 | 0, HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0) + 6 | 0) >> 1] | 0) & 65535 | 0 | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 124 | 0 | 0, HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $172), HEAP16[(wasm2js_i32$0 + 6 | 0) >> 1] = wasm2js_i32$1; + $185 = btSwapEndian_28unsigned_20short_29((HEAPU16[((btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($8 + 124 | 0 | 0, HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 1] | 0) & 65535 | 0 | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 124 | 0 | 0, HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $185), HEAP16[(wasm2js_i32$0 + 8 | 0) >> 1] = wasm2js_i32$1; + $198 = btSwapEndian_28unsigned_20short_29((HEAPU16[((btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($8 + 124 | 0 | 0, HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0) + 10 | 0) >> 1] | 0) & 65535 | 0 | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 124 | 0 | 0, HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $198), HEAP16[(wasm2js_i32$0 + 10 | 0) >> 1] = wasm2js_i32$1; + $209 = btSwapEndian_28int_29(HEAP32[((btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($8 + 124 | 0 | 0, HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0) + 12 | 0) >> 2] | 0 | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 124 | 0 | 0, HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $209), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($6 + 28 | 0) >> 2] = (HEAP32[($6 + 28 | 0) >> 2] | 0) + 1 | 0; + continue label$9; + }; + } + break label$6; + } + HEAP32[($6 + 24 | 0) >> 2] = 0; + label$10 : { + label$11 : while (1) { + if (!((HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 32 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$10 + } + $230 = HEAPU16[(btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($8 + 124 | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 124 | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $230), HEAP16[wasm2js_i32$0 >> 1] = wasm2js_i32$1; + $240 = HEAPU16[((btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($8 + 124 | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0) + 2 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 124 | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $240), HEAP16[(wasm2js_i32$0 + 2 | 0) >> 1] = wasm2js_i32$1; + $250 = HEAPU16[((btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($8 + 124 | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 124 | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $250), HEAP16[(wasm2js_i32$0 + 4 | 0) >> 1] = wasm2js_i32$1; + $260 = HEAPU16[((btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($8 + 124 | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0) + 6 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 124 | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $260), HEAP16[(wasm2js_i32$0 + 6 | 0) >> 1] = wasm2js_i32$1; + $270 = HEAPU16[((btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($8 + 124 | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 124 | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $270), HEAP16[(wasm2js_i32$0 + 8 | 0) >> 1] = wasm2js_i32$1; + $280 = HEAPU16[((btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($8 + 124 | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0) + 10 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 124 | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $280), HEAP16[(wasm2js_i32$0 + 10 | 0) >> 1] = wasm2js_i32$1; + $290 = HEAP32[((btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($8 + 124 | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0) + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 124 | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $290), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($6 + 24 | 0) >> 2] = (HEAP32[($6 + 24 | 0) >> 2] | 0) + 1 | 0; + continue label$11; + }; + } + } + HEAP32[($6 + 40 | 0) >> 2] = (HEAP32[($6 + 40 | 0) >> 2] | 0) + ((HEAP32[($6 + 32 | 0) >> 2] | 0) << 4 | 0) | 0; + $307 = 0; + btAlignedObjectArray_btQuantizedBvhNode___initializeFromBuffer_28void__2c_20int_2c_20int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 124 | 0 | 0, $307 | 0, $307 | 0, $307 | 0); + break label$4; + } + btAlignedObjectArray_btOptimizedBvhNode___initializeFromBuffer_28void__2c_20int_2c_20int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 84 | 0 | 0, HEAP32[($6 + 40 | 0) >> 2] | 0 | 0, HEAP32[($6 + 32 | 0) >> 2] | 0 | 0, HEAP32[($6 + 32 | 0) >> 2] | 0 | 0); + label$12 : { + label$13 : { + if (!((HEAPU8[($6 + 51 | 0) >> 0] | 0) & 1 | 0)) { + break label$13 + } + HEAP32[($6 + 20 | 0) >> 2] = 0; + label$14 : { + label$15 : while (1) { + if (!((HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 32 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$14 + } + btSwapVector3Endian_28btVector3_20const__2c_20btVector3__29(btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29_20const($8 + 84 | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0 | 0, btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 84 | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0 | 0); + btSwapVector3Endian_28btVector3_20const__2c_20btVector3__29((btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29_20const($8 + 84 | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0) + 16 | 0 | 0, (btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 84 | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0) + 16 | 0 | 0); + $352 = btSwapEndian_28int_29(HEAP32[((btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29_20const($8 + 84 | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0) + 32 | 0) >> 2] | 0 | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 84 | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $352), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + $363 = btSwapEndian_28int_29(HEAP32[((btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29_20const($8 + 84 | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0) + 36 | 0) >> 2] | 0 | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 84 | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $363), HEAP32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_i32$1; + $374 = btSwapEndian_28int_29(HEAP32[((btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29_20const($8 + 84 | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0) + 40 | 0) >> 2] | 0 | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 84 | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $374), HEAP32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($6 + 20 | 0) >> 2] = (HEAP32[($6 + 20 | 0) >> 2] | 0) + 1 | 0; + continue label$15; + }; + } + break label$12; + } + HEAP32[($6 + 16 | 0) >> 2] = 0; + label$16 : { + label$17 : while (1) { + if (!((HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 32 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$16 + } + $394 = btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29_20const($8 + 84 | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) | 0; + $399 = btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 84 | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $394; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1585 = i64toi32_i32$0; + i64toi32_i32$0 = $399; + HEAP32[i64toi32_i32$0 >> 2] = $1585; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $401 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $401 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1595 = i64toi32_i32$1; + i64toi32_i32$1 = $399 + $401 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1595; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $410 = (btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29_20const($8 + 84 | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) | 0) + 16 | 0; + $417 = (btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 84 | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) | 0) + 16 | 0; + i64toi32_i32$2 = $410; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1623 = i64toi32_i32$0; + i64toi32_i32$0 = $417; + HEAP32[i64toi32_i32$0 >> 2] = $1623; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $419 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $419 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1633 = i64toi32_i32$1; + i64toi32_i32$1 = $417 + $419 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1633; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $427 = HEAP32[((btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29_20const($8 + 84 | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) | 0) + 32 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 84 | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $427), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + $437 = HEAP32[((btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29_20const($8 + 84 | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) | 0) + 36 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 84 | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $437), HEAP32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_i32$1; + $447 = HEAP32[((btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29_20const($8 + 84 | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) | 0) + 40 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 84 | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $447), HEAP32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($6 + 16 | 0) >> 2] = (HEAP32[($6 + 16 | 0) >> 2] | 0) + 1 | 0; + continue label$17; + }; + } + } + HEAP32[($6 + 40 | 0) >> 2] = (HEAP32[($6 + 40 | 0) >> 2] | 0) + ((HEAP32[($6 + 32 | 0) >> 2] | 0) << 6 | 0) | 0; + $464 = 0; + btAlignedObjectArray_btOptimizedBvhNode___initializeFromBuffer_28void__2c_20int_2c_20int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 84 | 0 | 0, $464 | 0, $464 | 0, $464 | 0); + } + HEAP32[($6 + 36 | 0) >> 2] = 0; + HEAP32[($6 + 40 | 0) >> 2] = (HEAP32[($6 + 40 | 0) >> 2] | 0) + (HEAP32[($6 + 36 | 0) >> 2] | 0) | 0; + btAlignedObjectArray_btBvhSubtreeInfo___initializeFromBuffer_28void__2c_20int_2c_20int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 148 | 0 | 0, HEAP32[($6 + 40 | 0) >> 2] | 0 | 0, HEAP32[($8 + 168 | 0) >> 2] | 0 | 0, HEAP32[($8 + 168 | 0) >> 2] | 0 | 0); + label$18 : { + label$19 : { + if (!((HEAPU8[($6 + 51 | 0) >> 0] | 0) & 1 | 0)) { + break label$19 + } + HEAP32[($6 + 12 | 0) >> 2] = 0; + label$20 : { + label$21 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($8 + 168 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$20 + } + $493 = btSwapEndian_28unsigned_20short_29((HEAPU16[(btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($8 + 148 | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0) >> 1] | 0) & 65535 | 0 | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 148 | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $493), HEAP16[wasm2js_i32$0 >> 1] = wasm2js_i32$1; + $506 = btSwapEndian_28unsigned_20short_29((HEAPU16[((btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($8 + 148 | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0) + 2 | 0) >> 1] | 0) & 65535 | 0 | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 148 | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $506), HEAP16[(wasm2js_i32$0 + 2 | 0) >> 1] = wasm2js_i32$1; + $519 = btSwapEndian_28unsigned_20short_29((HEAPU16[((btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($8 + 148 | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 1] | 0) & 65535 | 0 | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 148 | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $519), HEAP16[(wasm2js_i32$0 + 4 | 0) >> 1] = wasm2js_i32$1; + $532 = btSwapEndian_28unsigned_20short_29((HEAPU16[((btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($8 + 148 | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0) + 6 | 0) >> 1] | 0) & 65535 | 0 | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 148 | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $532), HEAP16[(wasm2js_i32$0 + 6 | 0) >> 1] = wasm2js_i32$1; + $545 = btSwapEndian_28unsigned_20short_29((HEAPU16[((btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($8 + 148 | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 1] | 0) & 65535 | 0 | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 148 | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $545), HEAP16[(wasm2js_i32$0 + 8 | 0) >> 1] = wasm2js_i32$1; + $558 = btSwapEndian_28unsigned_20short_29((HEAPU16[((btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($8 + 148 | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0) + 10 | 0) >> 1] | 0) & 65535 | 0 | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 148 | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $558), HEAP16[(wasm2js_i32$0 + 10 | 0) >> 1] = wasm2js_i32$1; + $569 = btSwapEndian_28int_29(HEAP32[((btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($8 + 148 | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0) + 12 | 0) >> 2] | 0 | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 148 | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $569), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $580 = btSwapEndian_28int_29(HEAP32[((btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($8 + 148 | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0) + 16 | 0) >> 2] | 0 | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 148 | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $580), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$21; + }; + } + break label$18; + } + HEAP32[($6 + 8 | 0) >> 2] = 0; + label$22 : { + label$23 : while (1) { + if (!((HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($8 + 168 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$22 + } + $601 = HEAPU16[(btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($8 + 148 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 148 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $601), HEAP16[wasm2js_i32$0 >> 1] = wasm2js_i32$1; + $611 = HEAPU16[((btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($8 + 148 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0) + 2 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 148 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $611), HEAP16[(wasm2js_i32$0 + 2 | 0) >> 1] = wasm2js_i32$1; + $621 = HEAPU16[((btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($8 + 148 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 148 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $621), HEAP16[(wasm2js_i32$0 + 4 | 0) >> 1] = wasm2js_i32$1; + $631 = HEAPU16[((btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($8 + 148 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0) + 6 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 148 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $631), HEAP16[(wasm2js_i32$0 + 6 | 0) >> 1] = wasm2js_i32$1; + $641 = HEAPU16[((btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($8 + 148 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 148 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $641), HEAP16[(wasm2js_i32$0 + 8 | 0) >> 1] = wasm2js_i32$1; + $651 = HEAPU16[((btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($8 + 148 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0) + 10 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 148 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $651), HEAP16[(wasm2js_i32$0 + 10 | 0) >> 1] = wasm2js_i32$1; + $661 = HEAP32[((btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($8 + 148 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0) + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 148 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $661), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $671 = HEAP32[((btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($8 + 148 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0) + 16 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 148 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $671), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 148 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 148 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = 0), HEAP32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 148 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($6 + 8 | 0) >> 2] = (HEAP32[($6 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$23; + }; + } + } + HEAP32[($6 + 40 | 0) >> 2] = (HEAP32[($6 + 40 | 0) >> 2] | 0) + ((HEAP32[($8 + 168 | 0) >> 2] | 0) << 5 | 0) | 0; + $706 = 0; + btAlignedObjectArray_btBvhSubtreeInfo___initializeFromBuffer_28void__2c_20int_2c_20int_29((HEAP32[($6 + 44 | 0) >> 2] | 0) + 148 | 0 | 0, $706 | 0, $706 | 0, $706 | 0); + HEAP32[(HEAP32[($6 + 56 | 0) >> 2] | 0) >> 2] = 0; + __stack_pointer = $6 + 64 | 0; + return 1 & 1 | 0 | 0; + } + + function btQuantizedBvh__operator_20new_28unsigned_20long_2c_20void__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return HEAP32[($4 + 8 | 0) >> 2] | 0 | 0; + } + + function btSwapEndian_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = btSwapEndian_28unsigned_20int_29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $5 | 0; + } + + function btSwapVector3Endian_28btVector3_20const__2c_20btVector3__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) < (4 | 0) & 1 | 0)) { + break label$1 + } + btSwapScalarEndian_28float_20const__2c_20float__29((btVector3__operator_20float_20const__28_29_20const(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0) + ((HEAP32[($4 + 4 | 0) >> 2] | 0) << 2 | 0) | 0 | 0, (btVector3__operator_20float__28_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) + ((HEAP32[($4 + 4 | 0) >> 2] | 0) << 2 | 0) | 0 | 0); + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btQuantizedBvhNode___initializeFromBuffer_28void__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btQuantizedBvhNode___clear_28_29($7 | 0); + HEAP8[($7 + 16 | 0) >> 0] = 0; + HEAP32[($7 + 12 | 0) >> 2] = HEAP32[($6 + 8 | 0) >> 2] | 0; + HEAP32[($7 + 4 | 0) >> 2] = HEAP32[($6 + 4 | 0) >> 2] | 0; + HEAP32[($7 + 8 | 0) >> 2] = HEAP32[$6 >> 2] | 0; + __stack_pointer = $6 + 16 | 0; + return; + } + + function btSwapEndian_28unsigned_20short_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP16[($3 + 14 | 0) >> 1] = $0; + return ((((HEAPU16[($3 + 14 | 0) >> 1] | 0) & 65535 | 0) & 65280 | 0) >> 8 | 0 | ((((HEAPU16[($3 + 14 | 0) >> 1] | 0) & 65535 | 0) & 255 | 0) << 8 | 0) | 0) & 65535 | 0 | 0; + } + + function btAlignedObjectArray_btOptimizedBvhNode___initializeFromBuffer_28void__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btOptimizedBvhNode___clear_28_29($7 | 0); + HEAP8[($7 + 16 | 0) >> 0] = 0; + HEAP32[($7 + 12 | 0) >> 2] = HEAP32[($6 + 8 | 0) >> 2] | 0; + HEAP32[($7 + 4 | 0) >> 2] = HEAP32[($6 + 4 | 0) >> 2] | 0; + HEAP32[($7 + 8 | 0) >> 2] = HEAP32[$6 >> 2] | 0; + __stack_pointer = $6 + 16 | 0; + return; + } + + function btAlignedObjectArray_btBvhSubtreeInfo___initializeFromBuffer_28void__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btBvhSubtreeInfo___clear_28_29($7 | 0); + HEAP8[($7 + 16 | 0) >> 0] = 0; + HEAP32[($7 + 12 | 0) >> 2] = HEAP32[($6 + 8 | 0) >> 2] | 0; + HEAP32[($7 + 4 | 0) >> 2] = HEAP32[($6 + 4 | 0) >> 2] | 0; + HEAP32[($7 + 8 | 0) >> 2] = HEAP32[$6 >> 2] | 0; + __stack_pointer = $6 + 16 | 0; + return; + } + + function btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btBvhSubtreeInfo___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 5 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btSwapEndian_28unsigned_20int_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return ((HEAP32[($3 + 12 | 0) >> 2] | 0) & -16777216 | 0) >>> 24 | 0 | (((HEAP32[($3 + 12 | 0) >> 2] | 0) & 16711680 | 0) >>> 8 | 0) | 0 | (((HEAP32[($3 + 12 | 0) >> 2] | 0) & 65280 | 0) << 8 | 0) | 0 | (((HEAP32[($3 + 12 | 0) >> 2] | 0) & 255 | 0) << 24 | 0) | 0 | 0; + } + + function btSwapScalarEndian_28float_20const__2c_20float__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP8[(HEAP32[($4 + 4 | 0) >> 2] | 0) >> 0] = HEAPU8[((HEAP32[$4 >> 2] | 0) + 3 | 0) >> 0] | 0; + HEAP8[((HEAP32[($4 + 4 | 0) >> 2] | 0) + 1 | 0) >> 0] = HEAPU8[((HEAP32[$4 >> 2] | 0) + 2 | 0) >> 0] | 0; + HEAP8[((HEAP32[($4 + 4 | 0) >> 2] | 0) + 2 | 0) >> 0] = HEAPU8[((HEAP32[$4 >> 2] | 0) + 1 | 0) >> 0] | 0; + HEAP8[((HEAP32[($4 + 4 | 0) >> 2] | 0) + 3 | 0) >> 0] = HEAPU8[(HEAP32[$4 >> 2] | 0) >> 0] | 0; + return; + } + + function btQuantizedBvh__deSerializeFloat_28btQuantizedBvhFloatData__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $36 = 0, $111 = 0, $33 = 0, $81 = 0, $87 = 0, $93 = 0, $108 = 0, $127 = 0, $133 = 0, $139 = 0, $145 = 0, $151 = 0, $157 = 0, $163 = 0, $180 = 0, $199 = 0, $205 = 0, $211 = 0, $217 = 0, $223 = 0, $229 = 0, $235 = 0, $241 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 176 | 0; + __stack_pointer = $4; + HEAP32[($4 + 172 | 0) >> 2] = $0; + HEAP32[($4 + 168 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 172 | 0) >> 2] | 0; + btVector3__deSerializeFloat_28btVector3FloatData_20const__29($5 + 20 | 0 | 0, (HEAP32[($4 + 168 | 0) >> 2] | 0) + 16 | 0 | 0); + btVector3__deSerializeFloat_28btVector3FloatData_20const__29($5 + 4 | 0 | 0, HEAP32[($4 + 168 | 0) >> 2] | 0 | 0); + btVector3__deSerializeFloat_28btVector3FloatData_20const__29($5 + 36 | 0 | 0, (HEAP32[($4 + 168 | 0) >> 2] | 0) + 32 | 0 | 0); + HEAP32[($5 + 56 | 0) >> 2] = HEAP32[((HEAP32[($4 + 168 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0; + HEAP8[($5 + 60 | 0) >> 0] = (HEAP32[((HEAP32[($4 + 168 | 0) >> 2] | 0) + 52 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0; + HEAP32[($4 + 164 | 0) >> 2] = HEAP32[((HEAP32[($4 + 168 | 0) >> 2] | 0) + 56 | 0) >> 2] | 0; + $33 = HEAP32[($4 + 164 | 0) >> 2] | 0; + i64toi32_i32$0 = 0; + $36 = 0; + i64toi32_i32$1 = $4 + 152 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $36; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $4 + 144 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $36; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $4 + 136 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $36; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $4 + 128 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $36; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $4 + 120 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $36; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $4 + 112 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $36; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $4 + 104 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $36; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $4; + HEAP32[($4 + 96 | 0) >> 2] = $36; + HEAP32[($4 + 100 | 0) >> 2] = i64toi32_i32$0; + btOptimizedBvhNode__btOptimizedBvhNode_28_29($4 + 96 | 0 | 0) | 0; + btAlignedObjectArray_btOptimizedBvhNode___resize_28int_2c_20btOptimizedBvhNode_20const__29($5 + 84 | 0 | 0, $33 | 0, $4 + 96 | 0 | 0); + label$1 : { + if (!(HEAP32[($4 + 164 | 0) >> 2] | 0)) { + break label$1 + } + HEAP32[($4 + 92 | 0) >> 2] = HEAP32[((HEAP32[($4 + 168 | 0) >> 2] | 0) + 64 | 0) >> 2] | 0; + HEAP32[($4 + 88 | 0) >> 2] = 0; + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($4 + 88 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 164 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + btVector3__deSerializeFloat_28btVector3FloatData_20const__29((btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29($5 + 84 | 0 | 0, HEAP32[($4 + 88 | 0) >> 2] | 0 | 0) | 0) + 16 | 0 | 0, (HEAP32[($4 + 92 | 0) >> 2] | 0) + 16 | 0 | 0); + btVector3__deSerializeFloat_28btVector3FloatData_20const__29(btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29($5 + 84 | 0 | 0, HEAP32[($4 + 88 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($4 + 92 | 0) >> 2] | 0 | 0); + $81 = HEAP32[((HEAP32[($4 + 92 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29($5 + 84 | 0 | 0, HEAP32[($4 + 88 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $81), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + $87 = HEAP32[((HEAP32[($4 + 92 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29($5 + 84 | 0 | 0, HEAP32[($4 + 88 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $87), HEAP32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_i32$1; + $93 = HEAP32[((HEAP32[($4 + 92 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29($5 + 84 | 0 | 0, HEAP32[($4 + 88 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $93), HEAP32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($4 + 88 | 0) >> 2] = (HEAP32[($4 + 88 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($4 + 92 | 0) >> 2] = (HEAP32[($4 + 92 | 0) >> 2] | 0) + 48 | 0; + continue label$3; + }; + } + } + HEAP32[($4 + 84 | 0) >> 2] = HEAP32[((HEAP32[($4 + 168 | 0) >> 2] | 0) + 60 | 0) >> 2] | 0; + $108 = HEAP32[($4 + 84 | 0) >> 2] | 0; + i64toi32_i32$0 = 0; + $111 = 0; + i64toi32_i32$1 = $4 + 72 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $111; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $4; + HEAP32[($4 + 64 | 0) >> 2] = $111; + HEAP32[($4 + 68 | 0) >> 2] = i64toi32_i32$0; + btAlignedObjectArray_btQuantizedBvhNode___resize_28int_2c_20btQuantizedBvhNode_20const__29($5 + 124 | 0 | 0, $108 | 0, $4 + 64 | 0 | 0); + label$4 : { + if (!(HEAP32[($4 + 84 | 0) >> 2] | 0)) { + break label$4 + } + HEAP32[($4 + 60 | 0) >> 2] = HEAP32[((HEAP32[($4 + 168 | 0) >> 2] | 0) + 68 | 0) >> 2] | 0; + HEAP32[($4 + 56 | 0) >> 2] = 0; + label$5 : { + label$6 : while (1) { + if (!((HEAP32[($4 + 56 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 84 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + $127 = HEAP32[((HEAP32[($4 + 60 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($5 + 124 | 0 | 0, HEAP32[($4 + 56 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $127), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $133 = HEAPU16[((HEAP32[($4 + 60 | 0) >> 2] | 0) + 6 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($5 + 124 | 0 | 0, HEAP32[($4 + 56 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $133), HEAP16[(wasm2js_i32$0 + 6 | 0) >> 1] = wasm2js_i32$1; + $139 = HEAPU16[((HEAP32[($4 + 60 | 0) >> 2] | 0) + 8 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($5 + 124 | 0 | 0, HEAP32[($4 + 56 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $139), HEAP16[(wasm2js_i32$0 + 8 | 0) >> 1] = wasm2js_i32$1; + $145 = HEAPU16[((HEAP32[($4 + 60 | 0) >> 2] | 0) + 10 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($5 + 124 | 0 | 0, HEAP32[($4 + 56 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $145), HEAP16[(wasm2js_i32$0 + 10 | 0) >> 1] = wasm2js_i32$1; + $151 = HEAPU16[(HEAP32[($4 + 60 | 0) >> 2] | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($5 + 124 | 0 | 0, HEAP32[($4 + 56 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $151), HEAP16[wasm2js_i32$0 >> 1] = wasm2js_i32$1; + $157 = HEAPU16[((HEAP32[($4 + 60 | 0) >> 2] | 0) + 2 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($5 + 124 | 0 | 0, HEAP32[($4 + 56 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $157), HEAP16[(wasm2js_i32$0 + 2 | 0) >> 1] = wasm2js_i32$1; + $163 = HEAPU16[((HEAP32[($4 + 60 | 0) >> 2] | 0) + 4 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($5 + 124 | 0 | 0, HEAP32[($4 + 56 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $163), HEAP16[(wasm2js_i32$0 + 4 | 0) >> 1] = wasm2js_i32$1; + HEAP32[($4 + 56 | 0) >> 2] = (HEAP32[($4 + 56 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($4 + 60 | 0) >> 2] = (HEAP32[($4 + 60 | 0) >> 2] | 0) + 16 | 0; + continue label$6; + }; + } + } + HEAP32[($5 + 144 | 0) >> 2] = HEAP32[((HEAP32[($4 + 168 | 0) >> 2] | 0) + 76 | 0) >> 2] | 0; + HEAP32[($4 + 52 | 0) >> 2] = HEAP32[((HEAP32[($4 + 168 | 0) >> 2] | 0) + 80 | 0) >> 2] | 0; + $180 = HEAP32[($4 + 52 | 0) >> 2] | 0; + btBvhSubtreeInfo__btBvhSubtreeInfo_28_29($4 + 20 | 0 | 0) | 0; + btAlignedObjectArray_btBvhSubtreeInfo___resize_28int_2c_20btBvhSubtreeInfo_20const__29($5 + 148 | 0 | 0, $180 | 0, $4 + 20 | 0 | 0); + label$7 : { + if (!(HEAP32[($4 + 52 | 0) >> 2] | 0)) { + break label$7 + } + HEAP32[($4 + 16 | 0) >> 2] = HEAP32[((HEAP32[($4 + 168 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0; + HEAP32[($4 + 12 | 0) >> 2] = 0; + label$8 : { + label$9 : while (1) { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 52 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + $199 = HEAPU16[((HEAP32[($4 + 16 | 0) >> 2] | 0) + 14 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29($5 + 148 | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $199), HEAP16[(wasm2js_i32$0 + 6 | 0) >> 1] = wasm2js_i32$1; + $205 = HEAPU16[((HEAP32[($4 + 16 | 0) >> 2] | 0) + 16 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29($5 + 148 | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $205), HEAP16[(wasm2js_i32$0 + 8 | 0) >> 1] = wasm2js_i32$1; + $211 = HEAPU16[((HEAP32[($4 + 16 | 0) >> 2] | 0) + 18 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29($5 + 148 | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $211), HEAP16[(wasm2js_i32$0 + 10 | 0) >> 1] = wasm2js_i32$1; + $217 = HEAPU16[((HEAP32[($4 + 16 | 0) >> 2] | 0) + 8 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29($5 + 148 | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $217), HEAP16[wasm2js_i32$0 >> 1] = wasm2js_i32$1; + $223 = HEAPU16[((HEAP32[($4 + 16 | 0) >> 2] | 0) + 10 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29($5 + 148 | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $223), HEAP16[(wasm2js_i32$0 + 2 | 0) >> 1] = wasm2js_i32$1; + $229 = HEAPU16[((HEAP32[($4 + 16 | 0) >> 2] | 0) + 12 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29($5 + 148 | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $229), HEAP16[(wasm2js_i32$0 + 4 | 0) >> 1] = wasm2js_i32$1; + $235 = HEAP32[(HEAP32[($4 + 16 | 0) >> 2] | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29($5 + 148 | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $235), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $241 = HEAP32[((HEAP32[($4 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29($5 + 148 | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $241), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($4 + 12 | 0) >> 2] = (HEAP32[($4 + 12 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($4 + 16 | 0) >> 2] = (HEAP32[($4 + 16 | 0) >> 2] | 0) + 20 | 0; + continue label$9; + }; + } + } + __stack_pointer = $4 + 176 | 0; + return; + } + + function btVector3__deSerializeFloat_28btVector3FloatData_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) < (4 | 0) & 1 | 0)) { + break label$1 + } + HEAPF32[($5 + ((HEAP32[($4 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + ((HEAP32[($4 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btOptimizedBvhNode__btOptimizedBvhNode_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btVector3__btVector3_28_29($4 | 0) | 0; + btVector3__btVector3_28_29($4 + 16 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btOptimizedBvhNode___resize_28int_2c_20btOptimizedBvhNode_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $48 = 0, $49 = 0, $6 = 0, $51 = 0, $55 = 0, $59 = 0, $63 = 0, $67 = 0, $71 = 0, $75 = 0, $195 = 0, $205 = 0, $215 = 0, $225 = 0, $235 = 0, $245 = 0, $255 = 0, $265 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btOptimizedBvhNode___size_28_29_20const($6 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + break label$1; + } + label$5 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) > (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + btAlignedObjectArray_btOptimizedBvhNode___reserve_28int_29($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + $48 = btOptimizedBvhNode__operator_20new_28unsigned_20long_2c_20void__29(64 | 0, (HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 6 | 0) | 0 | 0) | 0; + $49 = HEAP32[($5 + 20 | 0) >> 2] | 0; + i64toi32_i32$2 = $49; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $195 = i64toi32_i32$0; + i64toi32_i32$0 = $48; + HEAP32[i64toi32_i32$0 >> 2] = $195; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $51 = 56; + i64toi32_i32$2 = i64toi32_i32$2 + $51 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $205 = i64toi32_i32$1; + i64toi32_i32$1 = $48 + $51 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $205; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $55 = 48; + i64toi32_i32$2 = $49 + $55 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $215 = i64toi32_i32$0; + i64toi32_i32$0 = $48 + $55 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $215; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $59 = 40; + i64toi32_i32$2 = $49 + $59 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $225 = i64toi32_i32$1; + i64toi32_i32$1 = $48 + $59 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $225; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $63 = 32; + i64toi32_i32$2 = $49 + $63 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $235 = i64toi32_i32$0; + i64toi32_i32$0 = $48 + $63 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $235; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $67 = 24; + i64toi32_i32$2 = $49 + $67 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $245 = i64toi32_i32$1; + i64toi32_i32$1 = $48 + $67 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $245; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $71 = 16; + i64toi32_i32$2 = $49 + $71 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $255 = i64toi32_i32$0; + i64toi32_i32$0 = $48 + $71 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $255; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $75 = 8; + i64toi32_i32$2 = $49 + $75 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $265 = i64toi32_i32$1; + i64toi32_i32$1 = $48 + $75 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $265; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btAlignedObjectArray_btBvhSubtreeInfo___resize_28int_2c_20btBvhSubtreeInfo_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $6 = 0, $48 = 0, $49 = 0, $51 = 0, $55 = 0, $59 = 0, $179 = 0, $189 = 0, $199 = 0, $209 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btBvhSubtreeInfo___size_28_29_20const($6 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + break label$1; + } + label$5 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) > (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + btAlignedObjectArray_btBvhSubtreeInfo___reserve_28int_29($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + $48 = btBvhSubtreeInfo__operator_20new_28unsigned_20long_2c_20void__29(32 | 0, (HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 5 | 0) | 0 | 0) | 0; + $49 = HEAP32[($5 + 20 | 0) >> 2] | 0; + i64toi32_i32$2 = $49; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $179 = i64toi32_i32$0; + i64toi32_i32$0 = $48; + HEAP32[i64toi32_i32$0 >> 2] = $179; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $51 = 24; + i64toi32_i32$2 = i64toi32_i32$2 + $51 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $189 = i64toi32_i32$1; + i64toi32_i32$1 = $48 + $51 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $189; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $55 = 16; + i64toi32_i32$2 = $49 + $55 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $199 = i64toi32_i32$0; + i64toi32_i32$0 = $48 + $55 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $199; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $59 = 8; + i64toi32_i32$2 = $49 + $59 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $209 = i64toi32_i32$1; + i64toi32_i32$1 = $48 + $59 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $209; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btAlignedObjectArray_btOptimizedBvhNode___reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btOptimizedBvhNode___capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btOptimizedBvhNode___allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btOptimizedBvhNode___copy_28int_2c_20int_2c_20btOptimizedBvhNode__29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btOptimizedBvhNode___size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btOptimizedBvhNode___destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btOptimizedBvhNode___size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btOptimizedBvhNode___deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btOptimizedBvhNode__operator_20new_28unsigned_20long_2c_20void__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return HEAP32[($4 + 8 | 0) >> 2] | 0 | 0; + } + + function btQuantizedBvh__deSerializeDouble_28btQuantizedBvhDoubleData__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $36 = 0, $111 = 0, $33 = 0, $81 = 0, $87 = 0, $93 = 0, $108 = 0, $127 = 0, $133 = 0, $139 = 0, $145 = 0, $151 = 0, $157 = 0, $163 = 0, $180 = 0, $199 = 0, $205 = 0, $211 = 0, $217 = 0, $223 = 0, $229 = 0, $235 = 0, $241 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 176 | 0; + __stack_pointer = $4; + HEAP32[($4 + 172 | 0) >> 2] = $0; + HEAP32[($4 + 168 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 172 | 0) >> 2] | 0; + btVector3__deSerializeDouble_28btVector3DoubleData_20const__29($5 + 20 | 0 | 0, (HEAP32[($4 + 168 | 0) >> 2] | 0) + 32 | 0 | 0); + btVector3__deSerializeDouble_28btVector3DoubleData_20const__29($5 + 4 | 0 | 0, HEAP32[($4 + 168 | 0) >> 2] | 0 | 0); + btVector3__deSerializeDouble_28btVector3DoubleData_20const__29($5 + 36 | 0 | 0, (HEAP32[($4 + 168 | 0) >> 2] | 0) + 64 | 0 | 0); + HEAP32[($5 + 56 | 0) >> 2] = HEAP32[((HEAP32[($4 + 168 | 0) >> 2] | 0) + 96 | 0) >> 2] | 0; + HEAP8[($5 + 60 | 0) >> 0] = (HEAP32[((HEAP32[($4 + 168 | 0) >> 2] | 0) + 100 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0; + HEAP32[($4 + 164 | 0) >> 2] = HEAP32[((HEAP32[($4 + 168 | 0) >> 2] | 0) + 104 | 0) >> 2] | 0; + $33 = HEAP32[($4 + 164 | 0) >> 2] | 0; + i64toi32_i32$0 = 0; + $36 = 0; + i64toi32_i32$1 = $4 + 152 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $36; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $4 + 144 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $36; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $4 + 136 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $36; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $4 + 128 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $36; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $4 + 120 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $36; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $4 + 112 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $36; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $4 + 104 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $36; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $4; + HEAP32[($4 + 96 | 0) >> 2] = $36; + HEAP32[($4 + 100 | 0) >> 2] = i64toi32_i32$0; + btOptimizedBvhNode__btOptimizedBvhNode_28_29($4 + 96 | 0 | 0) | 0; + btAlignedObjectArray_btOptimizedBvhNode___resize_28int_2c_20btOptimizedBvhNode_20const__29($5 + 84 | 0 | 0, $33 | 0, $4 + 96 | 0 | 0); + label$1 : { + if (!(HEAP32[($4 + 164 | 0) >> 2] | 0)) { + break label$1 + } + HEAP32[($4 + 92 | 0) >> 2] = HEAP32[((HEAP32[($4 + 168 | 0) >> 2] | 0) + 112 | 0) >> 2] | 0; + HEAP32[($4 + 88 | 0) >> 2] = 0; + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($4 + 88 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 164 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + btVector3__deSerializeDouble_28btVector3DoubleData_20const__29((btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29($5 + 84 | 0 | 0, HEAP32[($4 + 88 | 0) >> 2] | 0 | 0) | 0) + 16 | 0 | 0, (HEAP32[($4 + 92 | 0) >> 2] | 0) + 32 | 0 | 0); + btVector3__deSerializeDouble_28btVector3DoubleData_20const__29(btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29($5 + 84 | 0 | 0, HEAP32[($4 + 88 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($4 + 92 | 0) >> 2] | 0 | 0); + $81 = HEAP32[((HEAP32[($4 + 92 | 0) >> 2] | 0) + 64 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29($5 + 84 | 0 | 0, HEAP32[($4 + 88 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $81), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + $87 = HEAP32[((HEAP32[($4 + 92 | 0) >> 2] | 0) + 68 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29($5 + 84 | 0 | 0, HEAP32[($4 + 88 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $87), HEAP32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_i32$1; + $93 = HEAP32[((HEAP32[($4 + 92 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29($5 + 84 | 0 | 0, HEAP32[($4 + 88 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $93), HEAP32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($4 + 88 | 0) >> 2] = (HEAP32[($4 + 88 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($4 + 92 | 0) >> 2] = (HEAP32[($4 + 92 | 0) >> 2] | 0) + 80 | 0; + continue label$3; + }; + } + } + HEAP32[($4 + 84 | 0) >> 2] = HEAP32[((HEAP32[($4 + 168 | 0) >> 2] | 0) + 108 | 0) >> 2] | 0; + $108 = HEAP32[($4 + 84 | 0) >> 2] | 0; + i64toi32_i32$0 = 0; + $111 = 0; + i64toi32_i32$1 = $4 + 72 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $111; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $4; + HEAP32[($4 + 64 | 0) >> 2] = $111; + HEAP32[($4 + 68 | 0) >> 2] = i64toi32_i32$0; + btAlignedObjectArray_btQuantizedBvhNode___resize_28int_2c_20btQuantizedBvhNode_20const__29($5 + 124 | 0 | 0, $108 | 0, $4 + 64 | 0 | 0); + label$4 : { + if (!(HEAP32[($4 + 84 | 0) >> 2] | 0)) { + break label$4 + } + HEAP32[($4 + 60 | 0) >> 2] = HEAP32[((HEAP32[($4 + 168 | 0) >> 2] | 0) + 116 | 0) >> 2] | 0; + HEAP32[($4 + 56 | 0) >> 2] = 0; + label$5 : { + label$6 : while (1) { + if (!((HEAP32[($4 + 56 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 84 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + $127 = HEAP32[((HEAP32[($4 + 60 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($5 + 124 | 0 | 0, HEAP32[($4 + 56 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $127), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $133 = HEAPU16[((HEAP32[($4 + 60 | 0) >> 2] | 0) + 6 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($5 + 124 | 0 | 0, HEAP32[($4 + 56 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $133), HEAP16[(wasm2js_i32$0 + 6 | 0) >> 1] = wasm2js_i32$1; + $139 = HEAPU16[((HEAP32[($4 + 60 | 0) >> 2] | 0) + 8 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($5 + 124 | 0 | 0, HEAP32[($4 + 56 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $139), HEAP16[(wasm2js_i32$0 + 8 | 0) >> 1] = wasm2js_i32$1; + $145 = HEAPU16[((HEAP32[($4 + 60 | 0) >> 2] | 0) + 10 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($5 + 124 | 0 | 0, HEAP32[($4 + 56 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $145), HEAP16[(wasm2js_i32$0 + 10 | 0) >> 1] = wasm2js_i32$1; + $151 = HEAPU16[(HEAP32[($4 + 60 | 0) >> 2] | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($5 + 124 | 0 | 0, HEAP32[($4 + 56 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $151), HEAP16[wasm2js_i32$0 >> 1] = wasm2js_i32$1; + $157 = HEAPU16[((HEAP32[($4 + 60 | 0) >> 2] | 0) + 2 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($5 + 124 | 0 | 0, HEAP32[($4 + 56 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $157), HEAP16[(wasm2js_i32$0 + 2 | 0) >> 1] = wasm2js_i32$1; + $163 = HEAPU16[((HEAP32[($4 + 60 | 0) >> 2] | 0) + 4 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($5 + 124 | 0 | 0, HEAP32[($4 + 56 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $163), HEAP16[(wasm2js_i32$0 + 4 | 0) >> 1] = wasm2js_i32$1; + HEAP32[($4 + 56 | 0) >> 2] = (HEAP32[($4 + 56 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($4 + 60 | 0) >> 2] = (HEAP32[($4 + 60 | 0) >> 2] | 0) + 16 | 0; + continue label$6; + }; + } + } + HEAP32[($5 + 144 | 0) >> 2] = HEAP32[((HEAP32[($4 + 168 | 0) >> 2] | 0) + 120 | 0) >> 2] | 0; + HEAP32[($4 + 52 | 0) >> 2] = HEAP32[((HEAP32[($4 + 168 | 0) >> 2] | 0) + 124 | 0) >> 2] | 0; + $180 = HEAP32[($4 + 52 | 0) >> 2] | 0; + btBvhSubtreeInfo__btBvhSubtreeInfo_28_29($4 + 20 | 0 | 0) | 0; + btAlignedObjectArray_btBvhSubtreeInfo___resize_28int_2c_20btBvhSubtreeInfo_20const__29($5 + 148 | 0 | 0, $180 | 0, $4 + 20 | 0 | 0); + label$7 : { + if (!(HEAP32[($4 + 52 | 0) >> 2] | 0)) { + break label$7 + } + HEAP32[($4 + 16 | 0) >> 2] = HEAP32[((HEAP32[($4 + 168 | 0) >> 2] | 0) + 128 | 0) >> 2] | 0; + HEAP32[($4 + 12 | 0) >> 2] = 0; + label$8 : { + label$9 : while (1) { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 52 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + $199 = HEAPU16[((HEAP32[($4 + 16 | 0) >> 2] | 0) + 14 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29($5 + 148 | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $199), HEAP16[(wasm2js_i32$0 + 6 | 0) >> 1] = wasm2js_i32$1; + $205 = HEAPU16[((HEAP32[($4 + 16 | 0) >> 2] | 0) + 16 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29($5 + 148 | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $205), HEAP16[(wasm2js_i32$0 + 8 | 0) >> 1] = wasm2js_i32$1; + $211 = HEAPU16[((HEAP32[($4 + 16 | 0) >> 2] | 0) + 18 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29($5 + 148 | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $211), HEAP16[(wasm2js_i32$0 + 10 | 0) >> 1] = wasm2js_i32$1; + $217 = HEAPU16[((HEAP32[($4 + 16 | 0) >> 2] | 0) + 8 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29($5 + 148 | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $217), HEAP16[wasm2js_i32$0 >> 1] = wasm2js_i32$1; + $223 = HEAPU16[((HEAP32[($4 + 16 | 0) >> 2] | 0) + 10 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29($5 + 148 | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $223), HEAP16[(wasm2js_i32$0 + 2 | 0) >> 1] = wasm2js_i32$1; + $229 = HEAPU16[((HEAP32[($4 + 16 | 0) >> 2] | 0) + 12 | 0) >> 1] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29($5 + 148 | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $229), HEAP16[(wasm2js_i32$0 + 4 | 0) >> 1] = wasm2js_i32$1; + $235 = HEAP32[(HEAP32[($4 + 16 | 0) >> 2] | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29($5 + 148 | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $235), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $241 = HEAP32[((HEAP32[($4 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29($5 + 148 | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $241), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($4 + 12 | 0) >> 2] = (HEAP32[($4 + 12 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($4 + 16 | 0) >> 2] = (HEAP32[($4 + 16 | 0) >> 2] | 0) + 20 | 0; + continue label$9; + }; + } + } + __stack_pointer = $4 + 176 | 0; + return; + } + + function btVector3__deSerializeDouble_28btVector3DoubleData_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) < (4 | 0) & 1 | 0)) { + break label$1 + } + HEAPF32[($5 + ((HEAP32[($4 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(+HEAPF64[((HEAP32[($4 + 8 | 0) >> 2] | 0) + ((HEAP32[($4 + 4 | 0) >> 2] | 0) << 3 | 0) | 0) >> 3]); + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btQuantizedBvh__serialize_28void__2c_20btSerializer__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $34 = 0, $42 = 0, $58 = 0, $116 = 0, $133 = 0, $141 = 0, $157 = 0, $221 = 0, $240 = 0, $248 = 0, $264 = 0, $334 = 0, $29 = 0, $92 = 0, $98 = 0, $104 = 0, $128 = 0, $177 = 0, $183 = 0, $189 = 0, $195 = 0, $201 = 0, $207 = 0, $213 = 0, $235 = 0, $284 = 0, $290 = 0, $296 = 0, $302 = 0, $308 = 0, $314 = 0, $320 = 0, $326 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0, wasm2js_i32$4 = 0, wasm2js_i32$5 = 0; + $5 = __stack_pointer - 80 | 0; + __stack_pointer = $5; + HEAP32[($5 + 76 | 0) >> 2] = $0; + HEAP32[($5 + 72 | 0) >> 2] = $1; + HEAP32[($5 + 68 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 76 | 0) >> 2] | 0; + HEAP32[($5 + 64 | 0) >> 2] = HEAP32[($5 + 72 | 0) >> 2] | 0; + btVector3__serialize_28btVector3FloatData__29_20const($6 + 20 | 0 | 0, (HEAP32[($5 + 64 | 0) >> 2] | 0) + 16 | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const($6 + 4 | 0 | 0, HEAP32[($5 + 64 | 0) >> 2] | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const($6 + 36 | 0 | 0, (HEAP32[($5 + 64 | 0) >> 2] | 0) + 32 | 0 | 0); + HEAP32[((HEAP32[($5 + 64 | 0) >> 2] | 0) + 48 | 0) >> 2] = HEAP32[($6 + 56 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 64 | 0) >> 2] | 0) + 52 | 0) >> 2] = (HEAPU8[($6 + 60 | 0) >> 0] | 0) & 1 | 0; + $29 = btAlignedObjectArray_btOptimizedBvhNode___size_28_29_20const($6 + 84 | 0 | 0) | 0; + HEAP32[((HEAP32[($5 + 64 | 0) >> 2] | 0) + 56 | 0) >> 2] = $29; + label$1 : { + label$2 : { + if (!(btAlignedObjectArray_btOptimizedBvhNode___size_28_29_20const($6 + 84 | 0 | 0) | 0)) { + break label$2 + } + $34 = HEAP32[($5 + 68 | 0) >> 2] | 0; + $42 = (((wasm2js_i32$1 = $34, wasm2js_i32$2 = btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29_20const($6 + 84 | 0 | 0, 0 | 0) | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$34 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0) | 0); + break label$1; + } + $42 = 0; + } + HEAP32[((HEAP32[($5 + 64 | 0) >> 2] | 0) + 64 | 0) >> 2] = $42; + label$3 : { + if (!((HEAP32[((HEAP32[($5 + 64 | 0) >> 2] | 0) + 64 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 60 | 0) >> 2] = 48; + (wasm2js_i32$0 = $5, wasm2js_i32$2 = btAlignedObjectArray_btOptimizedBvhNode___size_28_29_20const($6 + 84 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 56 | 0) >> 2] = wasm2js_i32$2; + $58 = HEAP32[($5 + 68 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$2 = FUNCTION_TABLE[HEAP32[((HEAP32[$58 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($58, HEAP32[($5 + 60 | 0) >> 2] | 0, HEAP32[($5 + 56 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 52 | 0) >> 2] = wasm2js_i32$2; + HEAP32[($5 + 48 | 0) >> 2] = HEAP32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($5 + 44 | 0) >> 2] = 0; + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($5 + 44 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 56 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + btVector3__serialize_28btVector3FloatData__29_20const((btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29_20const($6 + 84 | 0 | 0, HEAP32[($5 + 44 | 0) >> 2] | 0 | 0) | 0) + 16 | 0 | 0, (HEAP32[($5 + 48 | 0) >> 2] | 0) + 16 | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const(btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29_20const($6 + 84 | 0 | 0, HEAP32[($5 + 44 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($5 + 48 | 0) >> 2] | 0 | 0); + $92 = HEAP32[((btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29_20const($6 + 84 | 0 | 0, HEAP32[($5 + 44 | 0) >> 2] | 0 | 0) | 0) + 32 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 48 | 0) >> 2] | 0) + 32 | 0) >> 2] = $92; + $98 = HEAP32[((btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29_20const($6 + 84 | 0 | 0, HEAP32[($5 + 44 | 0) >> 2] | 0 | 0) | 0) + 36 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 48 | 0) >> 2] | 0) + 36 | 0) >> 2] = $98; + $104 = HEAP32[((btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29_20const($6 + 84 | 0 | 0, HEAP32[($5 + 44 | 0) >> 2] | 0 | 0) | 0) + 40 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 48 | 0) >> 2] | 0) + 40 | 0) >> 2] = $104; + HEAP32[((HEAP32[($5 + 48 | 0) >> 2] | 0) + 44 | 0) >> 2] = 0; + HEAP32[($5 + 44 | 0) >> 2] = (HEAP32[($5 + 44 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($5 + 48 | 0) >> 2] = (HEAP32[($5 + 48 | 0) >> 2] | 0) + 48 | 0; + continue label$5; + }; + } + $116 = HEAP32[($5 + 68 | 0) >> 2] | 0; + (((((wasm2js_i32$2 = $116, wasm2js_i32$1 = HEAP32[($5 + 52 | 0) >> 2] | 0), wasm2js_i32$3 = 83676), wasm2js_i32$4 = 1497453121), wasm2js_i32$5 = btAlignedObjectArray_btOptimizedBvhNode___operator_5b_5d_28int_29_20const($6 + 84 | 0 | 0, 0 | 0) | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$116 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$2 | 0, wasm2js_i32$1 | 0, wasm2js_i32$3 | 0, wasm2js_i32$4 | 0, wasm2js_i32$5 | 0); + } + $128 = btAlignedObjectArray_btQuantizedBvhNode___size_28_29_20const($6 + 124 | 0 | 0) | 0; + HEAP32[((HEAP32[($5 + 64 | 0) >> 2] | 0) + 60 | 0) >> 2] = $128; + label$6 : { + label$7 : { + if (!(btAlignedObjectArray_btQuantizedBvhNode___size_28_29_20const($6 + 124 | 0 | 0) | 0)) { + break label$7 + } + $133 = HEAP32[($5 + 68 | 0) >> 2] | 0; + $141 = (((wasm2js_i32$5 = $133, wasm2js_i32$4 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($6 + 124 | 0 | 0, 0 | 0) | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$133 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$5 | 0, wasm2js_i32$4 | 0) | 0); + break label$6; + } + $141 = 0; + } + HEAP32[((HEAP32[($5 + 64 | 0) >> 2] | 0) + 68 | 0) >> 2] = $141; + label$8 : { + if (!((HEAP32[((HEAP32[($5 + 64 | 0) >> 2] | 0) + 68 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[($5 + 40 | 0) >> 2] = 16; + (wasm2js_i32$0 = $5, wasm2js_i32$4 = btAlignedObjectArray_btQuantizedBvhNode___size_28_29_20const($6 + 124 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_i32$4; + $157 = HEAP32[($5 + 68 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$4 = FUNCTION_TABLE[HEAP32[((HEAP32[$157 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($157, HEAP32[($5 + 40 | 0) >> 2] | 0, HEAP32[($5 + 36 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$4; + HEAP32[($5 + 28 | 0) >> 2] = HEAP32[((HEAP32[($5 + 32 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($5 + 24 | 0) >> 2] = 0; + label$9 : { + label$10 : while (1) { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 36 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$9 + } + $177 = HEAP32[((btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($6 + 124 | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 28 | 0) >> 2] | 0) + 12 | 0) >> 2] = $177; + $183 = HEAPU16[((btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($6 + 124 | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) + 6 | 0) >> 1] | 0; + HEAP16[((HEAP32[($5 + 28 | 0) >> 2] | 0) + 6 | 0) >> 1] = $183; + $189 = HEAPU16[((btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($6 + 124 | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 1] | 0; + HEAP16[((HEAP32[($5 + 28 | 0) >> 2] | 0) + 8 | 0) >> 1] = $189; + $195 = HEAPU16[((btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($6 + 124 | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) + 10 | 0) >> 1] | 0; + HEAP16[((HEAP32[($5 + 28 | 0) >> 2] | 0) + 10 | 0) >> 1] = $195; + $201 = HEAPU16[(btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($6 + 124 | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 1] | 0; + HEAP16[(HEAP32[($5 + 28 | 0) >> 2] | 0) >> 1] = $201; + $207 = HEAPU16[((btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($6 + 124 | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) + 2 | 0) >> 1] | 0; + HEAP16[((HEAP32[($5 + 28 | 0) >> 2] | 0) + 2 | 0) >> 1] = $207; + $213 = HEAPU16[((btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($6 + 124 | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 1] | 0; + HEAP16[((HEAP32[($5 + 28 | 0) >> 2] | 0) + 4 | 0) >> 1] = $213; + HEAP32[($5 + 24 | 0) >> 2] = (HEAP32[($5 + 24 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($5 + 28 | 0) >> 2] = (HEAP32[($5 + 28 | 0) >> 2] | 0) + 16 | 0; + continue label$10; + }; + } + $221 = HEAP32[($5 + 68 | 0) >> 2] | 0; + (((((wasm2js_i32$4 = $221, wasm2js_i32$5 = HEAP32[($5 + 32 | 0) >> 2] | 0), wasm2js_i32$3 = 83653), wasm2js_i32$1 = 1497453121), wasm2js_i32$2 = btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29_20const($6 + 124 | 0 | 0, 0 | 0) | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$221 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$4 | 0, wasm2js_i32$5 | 0, wasm2js_i32$3 | 0, wasm2js_i32$1 | 0, wasm2js_i32$2 | 0); + } + HEAP32[((HEAP32[($5 + 64 | 0) >> 2] | 0) + 76 | 0) >> 2] = HEAP32[($6 + 144 | 0) >> 2] | 0; + $235 = btAlignedObjectArray_btBvhSubtreeInfo___size_28_29_20const($6 + 148 | 0 | 0) | 0; + HEAP32[((HEAP32[($5 + 64 | 0) >> 2] | 0) + 80 | 0) >> 2] = $235; + label$11 : { + label$12 : { + if (!(btAlignedObjectArray_btBvhSubtreeInfo___size_28_29_20const($6 + 148 | 0 | 0) | 0)) { + break label$12 + } + $240 = HEAP32[($5 + 68 | 0) >> 2] | 0; + $248 = (((wasm2js_i32$2 = $240, wasm2js_i32$1 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($6 + 148 | 0 | 0, 0 | 0) | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$240 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$2 | 0, wasm2js_i32$1 | 0) | 0); + break label$11; + } + $248 = 0; + } + HEAP32[((HEAP32[($5 + 64 | 0) >> 2] | 0) + 72 | 0) >> 2] = $248; + label$13 : { + if (!((HEAP32[((HEAP32[($5 + 64 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$13 + } + HEAP32[($5 + 20 | 0) >> 2] = 20; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btBvhSubtreeInfo___size_28_29_20const($6 + 148 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + $264 = HEAP32[($5 + 68 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$264 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($264, HEAP32[($5 + 20 | 0) >> 2] | 0, HEAP32[($5 + 16 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($5 + 4 | 0) >> 2] = 0; + label$14 : { + label$15 : while (1) { + if (!((HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$14 + } + $284 = HEAPU16[((btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($6 + 148 | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) + 6 | 0) >> 1] | 0; + HEAP16[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 14 | 0) >> 1] = $284; + $290 = HEAPU16[((btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($6 + 148 | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 1] | 0; + HEAP16[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 16 | 0) >> 1] = $290; + $296 = HEAPU16[((btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($6 + 148 | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) + 10 | 0) >> 1] | 0; + HEAP16[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 18 | 0) >> 1] = $296; + $302 = HEAPU16[(btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($6 + 148 | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) >> 1] | 0; + HEAP16[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 8 | 0) >> 1] = $302; + $308 = HEAPU16[((btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($6 + 148 | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) + 2 | 0) >> 1] | 0; + HEAP16[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 10 | 0) >> 1] = $308; + $314 = HEAPU16[((btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($6 + 148 | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 1] | 0; + HEAP16[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 12 | 0) >> 1] = $314; + $320 = HEAP32[((btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($6 + 148 | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) + 12 | 0) >> 2] | 0; + HEAP32[(HEAP32[($5 + 8 | 0) >> 2] | 0) >> 2] = $320; + $326 = HEAP32[((btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($6 + 148 | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) + 16 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $326; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 20 | 0; + continue label$15; + }; + } + $334 = HEAP32[($5 + 68 | 0) >> 2] | 0; + (((((wasm2js_i32$1 = $334, wasm2js_i32$2 = HEAP32[($5 + 12 | 0) >> 2] | 0), wasm2js_i32$3 = 83413), wasm2js_i32$5 = 1497453121), wasm2js_i32$4 = btAlignedObjectArray_btBvhSubtreeInfo___operator_5b_5d_28int_29_20const($6 + 148 | 0 | 0, 0 | 0) | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$334 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0, wasm2js_i32$3 | 0, wasm2js_i32$5 | 0, wasm2js_i32$4 | 0); + } + __stack_pointer = $5 + 80 | 0; + return 83345 | 0; + } + + function btQuantizedBvh__calculateSerializeBufferSizeNew_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 84 | 0; + } + + function btAlignedObjectArray_btBvhSubtreeInfo___destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btBvhSubtreeInfo___deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btBvhSubtreeInfo_2c_2016u___deallocate_28btBvhSubtreeInfo__29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocator_btBvhSubtreeInfo_2c_2016u___deallocate_28btBvhSubtreeInfo__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btQuantizedBvhNode___capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btQuantizedBvhNode___allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btQuantizedBvhNode_2c_2016u___allocate_28int_2c_20btQuantizedBvhNode_20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btQuantizedBvhNode___copy_28int_2c_20int_2c_20btQuantizedBvhNode__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $22 = 0, $29 = 0, $7 = 0, $97 = 0, $107 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + $22 = btQuantizedBvhNode__operator_20new_28unsigned_20long_2c_20void__29(16 | 0, (HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0; + i64toi32_i32$2 = (HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $97 = i64toi32_i32$0; + i64toi32_i32$0 = $22; + HEAP32[i64toi32_i32$0 >> 2] = $97; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $29 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $29 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $107 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $29 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $107; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $6 + 32 | 0; + return; + } + + function btAlignedAllocator_btQuantizedBvhNode_2c_2016u___allocate_28int_2c_20btQuantizedBvhNode_20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 4 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btAlignedAllocator_btQuantizedBvhNode_2c_2016u___deallocate_28btQuantizedBvhNode__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btBvhSubtreeInfo___allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btBvhSubtreeInfo_2c_2016u___allocate_28int_2c_20btBvhSubtreeInfo_20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btBvhSubtreeInfo___copy_28int_2c_20int_2c_20btBvhSubtreeInfo__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $22 = 0, $27 = 0, $29 = 0, $33 = 0, $37 = 0, $7 = 0, $105 = 0, $115 = 0, $125 = 0, $135 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + $22 = btBvhSubtreeInfo__operator_20new_28unsigned_20long_2c_20void__29(32 | 0, (HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 5 | 0) | 0 | 0) | 0; + $27 = (HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 5 | 0) | 0; + i64toi32_i32$2 = $27; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $105 = i64toi32_i32$0; + i64toi32_i32$0 = $22; + HEAP32[i64toi32_i32$0 >> 2] = $105; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $29 = 24; + i64toi32_i32$2 = i64toi32_i32$2 + $29 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $115 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $29 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $115; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $33 = 16; + i64toi32_i32$2 = $27 + $33 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $125 = i64toi32_i32$0; + i64toi32_i32$0 = $22 + $33 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $125; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $37 = 8; + i64toi32_i32$2 = $27 + $37 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $135 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $37 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $135; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $6 + 32 | 0; + return; + } + + function btAlignedAllocator_btBvhSubtreeInfo_2c_2016u___allocate_28int_2c_20btBvhSubtreeInfo_20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 5 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btAlignedAllocator_btOptimizedBvhNode_2c_2016u___deallocate_28btOptimizedBvhNode__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btOptimizedBvhNode___capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btOptimizedBvhNode___allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btOptimizedBvhNode_2c_2016u___allocate_28int_2c_20btOptimizedBvhNode_20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btOptimizedBvhNode___copy_28int_2c_20int_2c_20btOptimizedBvhNode__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $6 = 0, $22 = 0, $27 = 0, $29 = 0, $33 = 0, $37 = 0, $41 = 0, $45 = 0, $49 = 0, $53 = 0, $7 = 0, $121 = 0, $131 = 0, $141 = 0, $151 = 0, $161 = 0, $171 = 0, $181 = 0, $191 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + $22 = btOptimizedBvhNode__operator_20new_28unsigned_20long_2c_20void__29(64 | 0, (HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 6 | 0) | 0 | 0) | 0; + $27 = (HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 6 | 0) | 0; + i64toi32_i32$2 = $27; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $121 = i64toi32_i32$0; + i64toi32_i32$0 = $22; + HEAP32[i64toi32_i32$0 >> 2] = $121; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $29 = 56; + i64toi32_i32$2 = i64toi32_i32$2 + $29 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $131 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $29 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $131; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $33 = 48; + i64toi32_i32$2 = $27 + $33 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $141 = i64toi32_i32$0; + i64toi32_i32$0 = $22 + $33 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $141; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $37 = 40; + i64toi32_i32$2 = $27 + $37 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $151 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $37 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $151; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $41 = 32; + i64toi32_i32$2 = $27 + $41 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $161 = i64toi32_i32$0; + i64toi32_i32$0 = $22 + $41 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $161; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $45 = 24; + i64toi32_i32$2 = $27 + $45 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $171 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $45 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $171; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $49 = 16; + i64toi32_i32$2 = $27 + $49 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $181 = i64toi32_i32$0; + i64toi32_i32$0 = $22 + $49 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $181; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $53 = 8; + i64toi32_i32$2 = $27 + $53 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $191 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $53 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $191; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $6 + 32 | 0; + return; + } + + function btAlignedAllocator_btOptimizedBvhNode_2c_2016u___allocate_28int_2c_20btOptimizedBvhNode_20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 6 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function _GLOBAL__sub_I_btQuantizedBvh_cpp() { + __cxx_global_var_init_29(); + return; + } + + function __cxx_global_var_init_30() { + btInfMaskConverter__btInfMaskConverter_28int_29(114088 | 0, 2139095040 | 0) | 0; + return; + } + + function btBvhTriangleMeshShape__btBvhTriangleMeshShape_28btStridingMeshInterface__2c_20bool_2c_20bool_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $9 = 0, $24 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 8 | 0) >> 2] = $0; + HEAP32[($6 + 4 | 0) >> 2] = $1; + HEAP8[($6 + 3 | 0) >> 0] = $2; + HEAP8[($6 + 2 | 0) >> 0] = $3; + $9 = HEAP32[($6 + 8 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = $9; + btTriangleMeshShape__btTriangleMeshShape_28btStridingMeshInterface__29($9 | 0, HEAP32[($6 + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$9 >> 2] = 97016 + 8 | 0; + HEAP32[($9 + 60 | 0) >> 2] = 0; + HEAP32[($9 + 64 | 0) >> 2] = 0; + HEAP8[($9 + 68 | 0) >> 0] = (HEAPU8[($6 + 3 | 0) >> 0] | 0) & 1 | 0; + HEAP8[($9 + 69 | 0) >> 0] = 0; + HEAP32[($9 + 4 | 0) >> 2] = 21; + label$1 : { + if (!((HEAPU8[($6 + 2 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + btBvhTriangleMeshShape__buildOptimizedBvh_28_29($9 | 0); + } + $24 = HEAP32[($6 + 12 | 0) >> 2] | 0; + __stack_pointer = $6 + 16 | 0; + return $24 | 0; + } + + function btBvhTriangleMeshShape__buildOptimizedBvh_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0, $8 = 0, $17 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAPU8[($4 + 69 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + $8 = HEAP32[($4 + 60 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$8 >> 2] | 0) >> 2] | 0 | 0]($8) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 60 | 0) >> 2] | 0 | 0); + } + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(172 | 0, 16 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + $17 = btOptimizedBvh__operator_20new_28unsigned_20long_2c_20void__29(172 | 0, HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0; + btOptimizedBvh__btOptimizedBvh_28_29($17 | 0) | 0; + HEAP32[($4 + 60 | 0) >> 2] = $17; + btOptimizedBvh__build_28btStridingMeshInterface__2c_20bool_2c_20btVector3_20const__2c_20btVector3_20const__29(HEAP32[($4 + 60 | 0) >> 2] | 0 | 0, HEAP32[($4 + 56 | 0) >> 2] | 0 | 0, (HEAPU8[($4 + 68 | 0) >> 0] | 0) & 1 | 0 | 0, $4 + 24 | 0 | 0, $4 + 40 | 0 | 0); + HEAP8[($4 + 69 | 0) >> 0] = 1; + __stack_pointer = $3 + 16 | 0; + return; + } + + function btOptimizedBvh__operator_20new_28unsigned_20long_2c_20void__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return HEAP32[($4 + 8 | 0) >> 2] | 0 | 0; + } + + function btBvhTriangleMeshShape___btBvhTriangleMeshShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $11 = 0, $15 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $4; + HEAP32[$4 >> 2] = 97016 + 8 | 0; + label$1 : { + if (!((HEAPU8[($4 + 69 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + $11 = HEAP32[($4 + 60 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$11 >> 2] | 0) >> 2] | 0 | 0]($11) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 60 | 0) >> 2] | 0 | 0); + } + btTriangleMeshShape___btTriangleMeshShape_28_29($4 | 0) | 0; + $15 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $15 | 0; + } + + function btBvhTriangleMeshShape___btBvhTriangleMeshShape_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[794 | 0]($4) | 0; + btBvhTriangleMeshShape__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btBvhTriangleMeshShape__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btBvhTriangleMeshShape__performRaycast_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + btBvhTriangleMeshShape__performRaycast_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29__MyNodeOverlapCallback__MyNodeOverlapCallback_28btTriangleCallback__2c_20btStridingMeshInterface__29($6 + 4 | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7 + 56 | 0) >> 2] | 0 | 0) | 0; + btQuantizedBvh__reportRayOverlappingNodex_28btNodeOverlapCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const(HEAP32[($7 + 60 | 0) >> 2] | 0 | 0, $6 + 4 | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0); + btBvhTriangleMeshShape__performRaycast_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29__MyNodeOverlapCallback___MyNodeOverlapCallback_28_29($6 + 4 | 0 | 0) | 0; + __stack_pointer = $6 + 32 | 0; + return; + } + + function btBvhTriangleMeshShape__performRaycast_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29__MyNodeOverlapCallback__MyNodeOverlapCallback_28btTriangleCallback__2c_20btStridingMeshInterface__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btNodeOverlapCallback__btNodeOverlapCallback_28_29($6 | 0) | 0; + HEAP32[$6 >> 2] = 97148 + 8 | 0; + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 4 | 0) >> 2] | 0; + HEAP32[($6 + 8 | 0) >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + __stack_pointer = $5 + 16 | 0; + return $6 | 0; + } + + function btBvhTriangleMeshShape__performRaycast_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29__MyNodeOverlapCallback___MyNodeOverlapCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btNodeOverlapCallback___btNodeOverlapCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btNodeOverlapCallback__btNodeOverlapCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 97316 + 8 | 0; + return $4 | 0; + } + + function btNodeOverlapCallback___btNodeOverlapCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btBvhTriangleMeshShape__performConvexcast_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, $9 = 0; + $8 = __stack_pointer - 48 | 0; + __stack_pointer = $8; + HEAP32[($8 + 44 | 0) >> 2] = $0; + HEAP32[($8 + 40 | 0) >> 2] = $1; + HEAP32[($8 + 36 | 0) >> 2] = $2; + HEAP32[($8 + 32 | 0) >> 2] = $3; + HEAP32[($8 + 28 | 0) >> 2] = $4; + HEAP32[($8 + 24 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 44 | 0) >> 2] | 0; + btBvhTriangleMeshShape__performConvexcast_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29__MyNodeOverlapCallback__MyNodeOverlapCallback_28btTriangleCallback__2c_20btStridingMeshInterface__29($8 + 12 | 0 | 0, HEAP32[($8 + 40 | 0) >> 2] | 0 | 0, HEAP32[($9 + 56 | 0) >> 2] | 0 | 0) | 0; + btQuantizedBvh__reportBoxCastOverlappingNodex_28btNodeOverlapCallback__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29_20const(HEAP32[($9 + 60 | 0) >> 2] | 0 | 0, $8 + 12 | 0 | 0, HEAP32[($8 + 36 | 0) >> 2] | 0 | 0, HEAP32[($8 + 32 | 0) >> 2] | 0 | 0, HEAP32[($8 + 28 | 0) >> 2] | 0 | 0, HEAP32[($8 + 24 | 0) >> 2] | 0 | 0); + btBvhTriangleMeshShape__performConvexcast_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29__MyNodeOverlapCallback___MyNodeOverlapCallback_28_29($8 + 12 | 0 | 0) | 0; + __stack_pointer = $8 + 48 | 0; + return; + } + + function btBvhTriangleMeshShape__performConvexcast_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29__MyNodeOverlapCallback__MyNodeOverlapCallback_28btTriangleCallback__2c_20btStridingMeshInterface__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btNodeOverlapCallback__btNodeOverlapCallback_28_29($6 | 0) | 0; + HEAP32[$6 >> 2] = 97336 + 8 | 0; + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 4 | 0) >> 2] | 0; + HEAP32[($6 + 8 | 0) >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + __stack_pointer = $5 + 16 | 0; + return $6 | 0; + } + + function btBvhTriangleMeshShape__performConvexcast_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29__MyNodeOverlapCallback___MyNodeOverlapCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btNodeOverlapCallback___btNodeOverlapCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btBvhTriangleMeshShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 80 | 0; + __stack_pointer = $6; + HEAP32[($6 + 76 | 0) >> 2] = $0; + HEAP32[($6 + 72 | 0) >> 2] = $1; + HEAP32[($6 + 68 | 0) >> 2] = $2; + HEAP32[($6 + 64 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 76 | 0) >> 2] | 0; + btBvhTriangleMeshShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const__MyNodeOverlapCallback__MyNodeOverlapCallback_28btTriangleCallback__2c_20btStridingMeshInterface__29($6 | 0, HEAP32[($6 + 72 | 0) >> 2] | 0 | 0, HEAP32[($7 + 56 | 0) >> 2] | 0 | 0) | 0; + btQuantizedBvh__reportAabbOverlappingNodex_28btNodeOverlapCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const(HEAP32[($7 + 60 | 0) >> 2] | 0 | 0, $6 | 0, HEAP32[($6 + 68 | 0) >> 2] | 0 | 0, HEAP32[($6 + 64 | 0) >> 2] | 0 | 0); + btBvhTriangleMeshShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const__MyNodeOverlapCallback___MyNodeOverlapCallback_28_29($6 | 0) | 0; + __stack_pointer = $6 + 80 | 0; + return; + } + + function btBvhTriangleMeshShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const__MyNodeOverlapCallback__MyNodeOverlapCallback_28btTriangleCallback__2c_20btStridingMeshInterface__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $13 = 0, $16 = 0, $17 = 0, $19 = 0, $15 = 0, $26 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 8 | 0) >> 2] = $0; + HEAP32[($5 + 4 | 0) >> 2] = $1; + HEAP32[$5 >> 2] = $2; + $6 = HEAP32[($5 + 8 | 0) >> 2] | 0; + HEAP32[($5 + 12 | 0) >> 2] = $6; + btNodeOverlapCallback__btNodeOverlapCallback_28_29($6 | 0) | 0; + HEAP32[$6 >> 2] = 97484 + 8 | 0; + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[$5 >> 2] | 0; + HEAP32[($6 + 8 | 0) >> 2] = HEAP32[($5 + 4 | 0) >> 2] | 0; + $13 = $6 + 12 | 0; + $15 = $13 + 48 | 0; + $16 = $13; + label$1 : while (1) { + $17 = $16; + btVector3__btVector3_28_29($17 | 0) | 0; + $19 = $17 + 16 | 0; + $16 = $19; + if (!(($19 | 0) == ($15 | 0) & 1 | 0)) { + continue label$1 + } + break label$1; + }; + HEAP32[($6 + 60 | 0) >> 2] = 0; + $26 = HEAP32[($5 + 12 | 0) >> 2] | 0; + __stack_pointer = $5 + 16 | 0; + return $26 | 0; + } + + function btBvhTriangleMeshShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const__MyNodeOverlapCallback___MyNodeOverlapCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btNodeOverlapCallback___btNodeOverlapCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btBvhTriangleMeshShape__setLocalScaling_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($4 + 8 | 0 | 0, FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($5) | 0 | 0, HEAP32[($4 + 24 | 0) >> 2] | 0 | 0); + label$1 : { + if (!(Math_fround(btVector3__length2_28_29_20const($4 + 8 | 0 | 0)) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$1 + } + btTriangleMeshShape__setLocalScaling_28btVector3_20const__29($5 | 0, HEAP32[($4 + 24 | 0) >> 2] | 0 | 0); + btBvhTriangleMeshShape__buildOptimizedBvh_28_29($5 | 0); + } + __stack_pointer = $4 + 32 | 0; + return; + } + + function btBvhTriangleMeshShape__setOptimizedBvh_28btOptimizedBvh__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($6 + 60 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + __assert_fail(77754 | 0, 74895 | 0, 358 | 0, 77793 | 0); + wasm2js_trap(); + } + label$2 : { + if (!((HEAPU8[($6 + 69 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + __assert_fail(77761 | 0, 74895 | 0, 359 | 0, 77793 | 0); + wasm2js_trap(); + } + HEAP32[($6 + 60 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + HEAP8[($6 + 69 | 0) >> 0] = 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 4 | 0 | 0, FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($6) | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0); + label$3 : { + if (!(Math_fround(btVector3__length2_28_29_20const($5 + 4 | 0 | 0)) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$3 + } + btTriangleMeshShape__setLocalScaling_28btVector3_20const__29($6 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0); + } + __stack_pointer = $5 + 32 | 0; + return; + } + + function btBvhTriangleMeshShape__serialize_28void__2c_20btSerializer__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $10 = 0, $26 = 0, $32 = 0, $48 = 0, $56 = 0, $60 = 0, $66 = 0, $73 = 0, $91 = 0, $97 = 0, $111 = 0, $117 = 0, $121 = 0, $127 = 0, $134 = 0, $52 = 0, $115 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 44 | 0) >> 2] = $0; + HEAP32[($5 + 40 | 0) >> 2] = $1; + HEAP32[($5 + 36 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 44 | 0) >> 2] | 0; + HEAP32[($5 + 32 | 0) >> 2] = HEAP32[($5 + 40 | 0) >> 2] | 0; + btCollisionShape__serialize_28void__2c_20btSerializer__29_20const($6 | 0, HEAP32[($5 + 32 | 0) >> 2] | 0 | 0, HEAP32[($5 + 36 | 0) >> 2] | 0 | 0) | 0; + $10 = HEAP32[($6 + 56 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$10 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($10, (HEAP32[($5 + 32 | 0) >> 2] | 0) + 12 | 0, HEAP32[($5 + 36 | 0) >> 2] | 0) | 0; + HEAPF32[((HEAP32[($5 + 32 | 0) >> 2] | 0) + 52 | 0) >> 2] = Math_fround(HEAPF32[($6 + 20 | 0) >> 2]); + label$1 : { + label$2 : { + if (!((HEAP32[($6 + 60 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + $26 = HEAP32[($5 + 36 | 0) >> 2] | 0; + if ((FUNCTION_TABLE[HEAP32[((HEAP32[$26 >> 2] | 0) + 52 | 0) >> 2] | 0 | 0]($26) | 0) & 1 | 0) { + break label$2 + } + $32 = HEAP32[($5 + 36 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$32 >> 2] | 0) + 24 | 0) >> 2] | 0 | 0]($32, HEAP32[($6 + 60 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + label$3 : { + label$4 : { + if (!((HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($5 + 32 | 0) >> 2] | 0) + 40 | 0) >> 2] = HEAP32[($5 + 28 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 32 | 0) >> 2] | 0) + 44 | 0) >> 2] = 0; + break label$3; + } + $48 = HEAP32[($5 + 36 | 0) >> 2] | 0; + $52 = FUNCTION_TABLE[HEAP32[((HEAP32[$48 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($48, HEAP32[($6 + 60 | 0) >> 2] | 0) | 0; + HEAP32[((HEAP32[($5 + 32 | 0) >> 2] | 0) + 40 | 0) >> 2] = $52; + HEAP32[((HEAP32[($5 + 32 | 0) >> 2] | 0) + 44 | 0) >> 2] = 0; + $56 = HEAP32[($6 + 60 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$56 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($56) | 0), HEAP32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_i32$1; + $60 = HEAP32[($5 + 36 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$60 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($60, HEAP32[($5 + 24 | 0) >> 2] | 0, 1) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + $66 = HEAP32[($6 + 60 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$66 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($66, HEAP32[((HEAP32[($5 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0, HEAP32[($5 + 36 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + $73 = HEAP32[($5 + 36 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$73 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($73, HEAP32[($5 + 20 | 0) >> 2] | 0, HEAP32[($5 + 16 | 0) >> 2] | 0, 1213612625, HEAP32[($6 + 60 | 0) >> 2] | 0); + } + break label$1; + } + HEAP32[((HEAP32[($5 + 32 | 0) >> 2] | 0) + 40 | 0) >> 2] = 0; + HEAP32[((HEAP32[($5 + 32 | 0) >> 2] | 0) + 44 | 0) >> 2] = 0; + } + label$5 : { + label$6 : { + if (!((HEAP32[($6 + 64 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $91 = HEAP32[($5 + 36 | 0) >> 2] | 0; + if ((FUNCTION_TABLE[HEAP32[((HEAP32[$91 >> 2] | 0) + 52 | 0) >> 2] | 0 | 0]($91) | 0) & 2 | 0) { + break label$6 + } + $97 = HEAP32[($5 + 36 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$97 >> 2] | 0) + 24 | 0) >> 2] | 0 | 0]($97, HEAP32[($6 + 64 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + label$7 : { + label$8 : { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[((HEAP32[($5 + 32 | 0) >> 2] | 0) + 48 | 0) >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + break label$7; + } + $111 = HEAP32[($5 + 36 | 0) >> 2] | 0; + $115 = FUNCTION_TABLE[HEAP32[((HEAP32[$111 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($111, HEAP32[($6 + 64 | 0) >> 2] | 0) | 0; + HEAP32[((HEAP32[($5 + 32 | 0) >> 2] | 0) + 48 | 0) >> 2] = $115; + $117 = HEAP32[($6 + 64 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$117 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($117) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + $121 = HEAP32[($5 + 36 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$121 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($121, HEAP32[($5 + 8 | 0) >> 2] | 0, 1) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + $127 = HEAP32[($6 + 64 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$127 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($127, HEAP32[((HEAP32[($5 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0, HEAP32[($5 + 36 | 0) >> 2] | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $134 = HEAP32[($5 + 36 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$134 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($134, HEAP32[($5 + 4 | 0) >> 2] | 0, HEAP32[$5 >> 2] | 0, 1346456916, HEAP32[($6 + 64 | 0) >> 2] | 0); + } + break label$5; + } + HEAP32[((HEAP32[($5 + 32 | 0) >> 2] | 0) + 48 | 0) >> 2] = 0; + } + HEAP32[((HEAP32[($5 + 32 | 0) >> 2] | 0) + 56 | 0) >> 2] = 0; + __stack_pointer = $5 + 48 | 0; + return 83501 | 0; + } + + function btBvhTriangleMeshShape__serializeSingleBvh_28btSerializer__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $13 = 0, $17 = 0, $23 = 0, $30 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($5 + 60 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + $13 = HEAP32[($5 + 60 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$13 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($13) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + $17 = HEAP32[($4 + 24 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$17 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($17, HEAP32[($4 + 20 | 0) >> 2] | 0, 1) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + $23 = HEAP32[($5 + 60 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$23 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($23, HEAP32[((HEAP32[($4 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0, HEAP32[($4 + 24 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $30 = HEAP32[($4 + 24 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$30 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($30, HEAP32[($4 + 16 | 0) >> 2] | 0, HEAP32[($4 + 12 | 0) >> 2] | 0, 1213612625, HEAP32[($5 + 60 | 0) >> 2] | 0); + } + __stack_pointer = $4 + 32 | 0; + return; + } + + function btBvhTriangleMeshShape__serializeSingleTriangleInfoMap_28btSerializer__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $13 = 0, $17 = 0, $23 = 0, $30 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($5 + 64 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + $13 = HEAP32[($5 + 64 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$13 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($13) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + $17 = HEAP32[($4 + 24 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$17 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($17, HEAP32[($4 + 20 | 0) >> 2] | 0, 1) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + $23 = HEAP32[($5 + 64 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$23 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($23, HEAP32[((HEAP32[($4 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0, HEAP32[($4 + 24 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $30 = HEAP32[($4 + 24 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$30 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($30, HEAP32[($4 + 16 | 0) >> 2] | 0, HEAP32[($4 + 12 | 0) >> 2] | 0, 1346456916, HEAP32[($5 + 64 | 0) >> 2] | 0); + } + __stack_pointer = $4 + 32 | 0; + return; + } + + function btBvhTriangleMeshShape__getName_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 84387 | 0; + } + + function btConcaveShape__setMargin_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 20 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + return; + } + + function btConcaveShape__getMargin_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 20 | 0) >> 2])); + } + + function btBvhTriangleMeshShape__calculateSerializeBufferSize_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 60 | 0; + } + + function btTriangleMeshShape__localGetSupportingVertexWithoutMargin_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $1; + HEAP32[($5 + 8 | 0) >> 2] = $2; + __assert_fail(86177 | 0, 79320 | 0, 44 | 0, 76889 | 0); + wasm2js_trap(); + } + + function btBvhTriangleMeshShape__performRaycast_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29__MyNodeOverlapCallback___MyNodeOverlapCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btBvhTriangleMeshShape__performRaycast_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29__MyNodeOverlapCallback___MyNodeOverlapCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btBvhTriangleMeshShape__performRaycast_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29__MyNodeOverlapCallback__processNode_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $6 = 0, $9 = 0, $12 = 0, $13 = 0, $15 = 0, $21 = 0, $97 = 0, $147 = 0, $149 = 0, $197 = 0, $199 = 0, $208 = 0, $216 = 0, $11 = 0, $513 = 0, $526 = 0, $625 = 0, $638 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 176 | 0; + __stack_pointer = $5; + HEAP32[($5 + 172 | 0) >> 2] = $0; + HEAP32[($5 + 168 | 0) >> 2] = $1; + HEAP32[($5 + 164 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 172 | 0) >> 2] | 0; + $9 = $5 + 112 | 0; + $11 = $9 + 48 | 0; + $12 = $9; + label$1 : while (1) { + $13 = $12; + btVector3__btVector3_28_29($13 | 0) | 0; + $15 = $13 + 16 | 0; + $12 = $15; + if (!(($15 | 0) == ($11 | 0) & 1 | 0)) { + continue label$1 + } + break label$1; + }; + $21 = HEAP32[($6 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$21 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($21, $5 + 108 | 0, $5 + 104 | 0, $5 + 100 | 0, $5 + 96 | 0, $5 + 92 | 0, $5 + 88 | 0, $5 + 84 | 0, $5 + 80 | 0, HEAP32[($5 + 168 | 0) >> 2] | 0); + HEAP32[($5 + 76 | 0) >> 2] = (HEAP32[($5 + 92 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 164 | 0) >> 2] | 0, HEAP32[($5 + 88 | 0) >> 2] | 0) | 0; + label$2 : { + if ((HEAP32[($5 + 80 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0) { + break label$2 + } + if ((HEAP32[($5 + 80 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(83922 | 0, 74895 | 0, 130 | 0, 82004 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btStridingMeshInterface__getScaling_28_29_20const(HEAP32[($6 + 4 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 72 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($5 + 68 | 0) >> 2] = 2; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 68 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$3 + } + label$5 : { + label$6 : { + if (!((HEAP32[($5 + 80 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$6 + } + $97 = (HEAPU16[((HEAP32[($5 + 76 | 0) >> 2] | 0) + ((HEAP32[($5 + 68 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) & 65535 | 0; + break label$5; + } + $97 = HEAP32[((HEAP32[($5 + 76 | 0) >> 2] | 0) + ((HEAP32[($5 + 68 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + } + HEAP32[($5 + 64 | 0) >> 2] = $97; + label$7 : { + label$8 : { + if (HEAP32[($5 + 100 | 0) >> 2] | 0) { + break label$8 + } + HEAP32[($5 + 60 | 0) >> 2] = (HEAP32[($5 + 108 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 64 | 0) >> 2] | 0, HEAP32[($5 + 96 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(HEAP32[($5 + 60 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getX_28_29_20const(HEAP32[($5 + 72 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 60 | 0) >> 2] | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getY_28_29_20const(HEAP32[($5 + 72 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 60 | 0) >> 2] | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getZ_28_29_20const(HEAP32[($5 + 72 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 44 | 0 | 0, $5 + 40 | 0 | 0, $5 + 36 | 0 | 0, $5 + 32 | 0 | 0) | 0; + $147 = ($5 + 112 | 0) + ((HEAP32[($5 + 68 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 44 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 48 | 0) >> 2] | 0; + $513 = i64toi32_i32$0; + i64toi32_i32$0 = $147; + HEAP32[i64toi32_i32$0 >> 2] = $513; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $149 = 8; + i64toi32_i32$2 = ($5 + 44 | 0) + $149 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $526 = i64toi32_i32$1; + i64toi32_i32$1 = $147 + $149 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $526; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$7; + } + HEAP32[($5 + 28 | 0) >> 2] = (HEAP32[($5 + 108 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 64 | 0) >> 2] | 0, HEAP32[($5 + 96 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[(HEAP32[($5 + 28 | 0) >> 2] | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getX_28_29_20const(HEAP32[($5 + 72 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[((HEAP32[($5 + 28 | 0) >> 2] | 0) + 8 | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getY_28_29_20const(HEAP32[($5 + 72 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[((HEAP32[($5 + 28 | 0) >> 2] | 0) + 16 | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getZ_28_29_20const(HEAP32[($5 + 72 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 12 | 0 | 0, $5 + 8 | 0 | 0, $5 + 4 | 0 | 0, $5 | 0) | 0; + $197 = ($5 + 112 | 0) + ((HEAP32[($5 + 68 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 12 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 16 | 0) >> 2] | 0; + $625 = i64toi32_i32$0; + i64toi32_i32$0 = $197; + HEAP32[i64toi32_i32$0 >> 2] = $625; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $199 = 8; + i64toi32_i32$2 = ($5 + 12 | 0) + $199 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $638 = i64toi32_i32$1; + i64toi32_i32$1 = $197 + $199 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $638; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + HEAP32[($5 + 68 | 0) >> 2] = (HEAP32[($5 + 68 | 0) >> 2] | 0) + -1 | 0; + continue label$4; + }; + } + $208 = HEAP32[($6 + 8 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$208 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($208, $5 + 112 | 0, HEAP32[($5 + 168 | 0) >> 2] | 0, HEAP32[($5 + 164 | 0) >> 2] | 0); + $216 = HEAP32[($6 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$216 >> 2] | 0) + 24 | 0) >> 2] | 0 | 0]($216, HEAP32[($5 + 168 | 0) >> 2] | 0); + __stack_pointer = $5 + 176 | 0; + return; + } + + function btStridingMeshInterface__getScaling_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0 | 0; + } + + function btNodeOverlapCallback___btNodeOverlapCallback_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btBvhTriangleMeshShape__performConvexcast_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29__MyNodeOverlapCallback___MyNodeOverlapCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btBvhTriangleMeshShape__performConvexcast_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29__MyNodeOverlapCallback___MyNodeOverlapCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btBvhTriangleMeshShape__performConvexcast_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29__MyNodeOverlapCallback__processNode_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $6 = 0, $9 = 0, $12 = 0, $13 = 0, $15 = 0, $21 = 0, $97 = 0, $147 = 0, $149 = 0, $197 = 0, $199 = 0, $208 = 0, $216 = 0, $11 = 0, $513 = 0, $526 = 0, $625 = 0, $638 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 176 | 0; + __stack_pointer = $5; + HEAP32[($5 + 172 | 0) >> 2] = $0; + HEAP32[($5 + 168 | 0) >> 2] = $1; + HEAP32[($5 + 164 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 172 | 0) >> 2] | 0; + $9 = $5 + 112 | 0; + $11 = $9 + 48 | 0; + $12 = $9; + label$1 : while (1) { + $13 = $12; + btVector3__btVector3_28_29($13 | 0) | 0; + $15 = $13 + 16 | 0; + $12 = $15; + if (!(($15 | 0) == ($11 | 0) & 1 | 0)) { + continue label$1 + } + break label$1; + }; + $21 = HEAP32[($6 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$21 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($21, $5 + 108 | 0, $5 + 104 | 0, $5 + 100 | 0, $5 + 96 | 0, $5 + 92 | 0, $5 + 88 | 0, $5 + 84 | 0, $5 + 80 | 0, HEAP32[($5 + 168 | 0) >> 2] | 0); + HEAP32[($5 + 76 | 0) >> 2] = (HEAP32[($5 + 92 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 164 | 0) >> 2] | 0, HEAP32[($5 + 88 | 0) >> 2] | 0) | 0; + label$2 : { + if ((HEAP32[($5 + 80 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0) { + break label$2 + } + if ((HEAP32[($5 + 80 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(83922 | 0, 74895 | 0, 199 | 0, 82004 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btStridingMeshInterface__getScaling_28_29_20const(HEAP32[($6 + 4 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 72 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($5 + 68 | 0) >> 2] = 2; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 68 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$3 + } + label$5 : { + label$6 : { + if (!((HEAP32[($5 + 80 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$6 + } + $97 = (HEAPU16[((HEAP32[($5 + 76 | 0) >> 2] | 0) + ((HEAP32[($5 + 68 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) & 65535 | 0; + break label$5; + } + $97 = HEAP32[((HEAP32[($5 + 76 | 0) >> 2] | 0) + ((HEAP32[($5 + 68 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + } + HEAP32[($5 + 64 | 0) >> 2] = $97; + label$7 : { + label$8 : { + if (HEAP32[($5 + 100 | 0) >> 2] | 0) { + break label$8 + } + HEAP32[($5 + 60 | 0) >> 2] = (HEAP32[($5 + 108 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 64 | 0) >> 2] | 0, HEAP32[($5 + 96 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(HEAP32[($5 + 60 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getX_28_29_20const(HEAP32[($5 + 72 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 60 | 0) >> 2] | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getY_28_29_20const(HEAP32[($5 + 72 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 60 | 0) >> 2] | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getZ_28_29_20const(HEAP32[($5 + 72 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 44 | 0 | 0, $5 + 40 | 0 | 0, $5 + 36 | 0 | 0, $5 + 32 | 0 | 0) | 0; + $147 = ($5 + 112 | 0) + ((HEAP32[($5 + 68 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 44 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 48 | 0) >> 2] | 0; + $513 = i64toi32_i32$0; + i64toi32_i32$0 = $147; + HEAP32[i64toi32_i32$0 >> 2] = $513; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $149 = 8; + i64toi32_i32$2 = ($5 + 44 | 0) + $149 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $526 = i64toi32_i32$1; + i64toi32_i32$1 = $147 + $149 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $526; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$7; + } + HEAP32[($5 + 28 | 0) >> 2] = (HEAP32[($5 + 108 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 64 | 0) >> 2] | 0, HEAP32[($5 + 96 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[(HEAP32[($5 + 28 | 0) >> 2] | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getX_28_29_20const(HEAP32[($5 + 72 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[((HEAP32[($5 + 28 | 0) >> 2] | 0) + 8 | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getY_28_29_20const(HEAP32[($5 + 72 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[((HEAP32[($5 + 28 | 0) >> 2] | 0) + 16 | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getZ_28_29_20const(HEAP32[($5 + 72 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 12 | 0 | 0, $5 + 8 | 0 | 0, $5 + 4 | 0 | 0, $5 | 0) | 0; + $197 = ($5 + 112 | 0) + ((HEAP32[($5 + 68 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 12 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 16 | 0) >> 2] | 0; + $625 = i64toi32_i32$0; + i64toi32_i32$0 = $197; + HEAP32[i64toi32_i32$0 >> 2] = $625; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $199 = 8; + i64toi32_i32$2 = ($5 + 12 | 0) + $199 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $638 = i64toi32_i32$1; + i64toi32_i32$1 = $197 + $199 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $638; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + HEAP32[($5 + 68 | 0) >> 2] = (HEAP32[($5 + 68 | 0) >> 2] | 0) + -1 | 0; + continue label$4; + }; + } + $208 = HEAP32[($6 + 8 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$208 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($208, $5 + 112 | 0, HEAP32[($5 + 168 | 0) >> 2] | 0, HEAP32[($5 + 164 | 0) >> 2] | 0); + $216 = HEAP32[($6 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$216 >> 2] | 0) + 24 | 0) >> 2] | 0 | 0]($216, HEAP32[($5 + 168 | 0) >> 2] | 0); + __stack_pointer = $5 + 176 | 0; + return; + } + + function btBvhTriangleMeshShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const__MyNodeOverlapCallback___MyNodeOverlapCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btBvhTriangleMeshShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const__MyNodeOverlapCallback___MyNodeOverlapCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btBvhTriangleMeshShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const__MyNodeOverlapCallback__processNode_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0, i64toi32_i32$2 = 0, $10 = 0, $93 = 0, $107 = 0, $157 = 0, $159 = 0, $208 = 0, $210 = 0, $219 = 0, $226 = 0, $542 = 0, $555 = 0, $656 = 0, $669 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 128 | 0; + __stack_pointer = $5; + HEAP32[($5 + 124 | 0) >> 2] = $0; + HEAP32[($5 + 120 | 0) >> 2] = $1; + HEAP32[($5 + 116 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 124 | 0) >> 2] | 0; + HEAP32[($6 + 60 | 0) >> 2] = (HEAP32[($6 + 60 | 0) >> 2] | 0) + 1 | 0; + $10 = HEAP32[($6 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$10 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($10, $5 + 112 | 0, $5 + 108 | 0, $5 + 104 | 0, $5 + 100 | 0, $5 + 96 | 0, $5 + 92 | 0, $5 + 88 | 0, $5 + 84 | 0, HEAP32[($5 + 120 | 0) >> 2] | 0); + HEAP32[($5 + 80 | 0) >> 2] = (HEAP32[($5 + 96 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 116 | 0) >> 2] | 0, HEAP32[($5 + 92 | 0) >> 2] | 0) | 0; + label$1 : { + if ((HEAP32[($5 + 84 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0) { + break label$1 + } + if ((HEAP32[($5 + 84 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0) { + break label$1 + } + if ((HEAP32[($5 + 84 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(84086 | 0, 74895 | 0, 282 | 0, 82004 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btStridingMeshInterface__getScaling_28_29_20const(HEAP32[($6 + 4 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 76 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($5 + 72 | 0) >> 2] = 2; + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($5 + 72 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$2 + } + label$4 : { + label$5 : { + if (!((HEAP32[($5 + 84 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$5 + } + $93 = (HEAPU16[((HEAP32[($5 + 80 | 0) >> 2] | 0) + ((HEAP32[($5 + 72 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) & 65535 | 0; + break label$4; + } + label$6 : { + label$7 : { + if (!((HEAP32[($5 + 84 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$7 + } + $107 = HEAP32[((HEAP32[($5 + 80 | 0) >> 2] | 0) + ((HEAP32[($5 + 72 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + break label$6; + } + $107 = (HEAPU8[((HEAP32[($5 + 80 | 0) >> 2] | 0) + (HEAP32[($5 + 72 | 0) >> 2] | 0) | 0) >> 0] | 0) & 255 | 0; + } + $93 = $107; + } + HEAP32[($5 + 68 | 0) >> 2] = $93; + label$8 : { + label$9 : { + if (HEAP32[($5 + 104 | 0) >> 2] | 0) { + break label$9 + } + HEAP32[($5 + 64 | 0) >> 2] = (HEAP32[($5 + 112 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 68 | 0) >> 2] | 0, HEAP32[($5 + 100 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(HEAP32[($5 + 64 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getX_28_29_20const(HEAP32[($5 + 76 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 64 | 0) >> 2] | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getY_28_29_20const(HEAP32[($5 + 76 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 64 | 0) >> 2] | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getZ_28_29_20const(HEAP32[($5 + 76 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 48 | 0 | 0, $5 + 44 | 0 | 0, $5 + 40 | 0 | 0, $5 + 36 | 0 | 0) | 0; + $157 = ($6 + 12 | 0) + ((HEAP32[($5 + 72 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 48 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 52 | 0) >> 2] | 0; + $542 = i64toi32_i32$0; + i64toi32_i32$0 = $157; + HEAP32[i64toi32_i32$0 >> 2] = $542; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $159 = 8; + i64toi32_i32$2 = ($5 + 48 | 0) + $159 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $555 = i64toi32_i32$1; + i64toi32_i32$1 = $157 + $159 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $555; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$8; + } + HEAP32[($5 + 32 | 0) >> 2] = (HEAP32[($5 + 112 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 68 | 0) >> 2] | 0, HEAP32[($5 + 100 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[(HEAP32[($5 + 32 | 0) >> 2] | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getX_28_29_20const(HEAP32[($5 + 76 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[((HEAP32[($5 + 32 | 0) >> 2] | 0) + 8 | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getY_28_29_20const(HEAP32[($5 + 76 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[((HEAP32[($5 + 32 | 0) >> 2] | 0) + 16 | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getZ_28_29_20const(HEAP32[($5 + 76 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 16 | 0 | 0, $5 + 12 | 0 | 0, $5 + 8 | 0 | 0, $5 + 4 | 0 | 0) | 0; + $208 = ($6 + 12 | 0) + ((HEAP32[($5 + 72 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 16 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 20 | 0) >> 2] | 0; + $656 = i64toi32_i32$0; + i64toi32_i32$0 = $208; + HEAP32[i64toi32_i32$0 >> 2] = $656; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $210 = 8; + i64toi32_i32$2 = ($5 + 16 | 0) + $210 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $669 = i64toi32_i32$1; + i64toi32_i32$1 = $208 + $210 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $669; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + HEAP32[($5 + 72 | 0) >> 2] = (HEAP32[($5 + 72 | 0) >> 2] | 0) + -1 | 0; + continue label$3; + }; + } + $219 = HEAP32[($6 + 8 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$219 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($219, $6 + 12 | 0, HEAP32[($5 + 120 | 0) >> 2] | 0, HEAP32[($5 + 116 | 0) >> 2] | 0); + $226 = HEAP32[($6 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$226 >> 2] | 0) + 24 | 0) >> 2] | 0 | 0]($226, HEAP32[($5 + 120 | 0) >> 2] | 0); + __stack_pointer = $5 + 128 | 0; + return; + } + + function _GLOBAL__sub_I_btBvhTriangleMeshShape_cpp() { + __cxx_global_var_init_30(); + return; + } + + function __cxx_global_var_init_31() { + btInfMaskConverter__btInfMaskConverter_28int_29(114092 | 0, 2139095040 | 0) | 0; + return; + } + + function btCapsuleShape__btCapsuleShape_28float_2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + var $5 = 0, $6 = 0, $20 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAPF32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btConvexInternalShape__btConvexInternalShape_28_29($6 | 0) | 0; + HEAP32[$6 >> 2] = 97628 + 8 | 0; + HEAPF32[($6 + 52 | 0) >> 2] = Math_fround(HEAPF32[($5 + 8 | 0) >> 2]); + HEAP32[($6 + 4 | 0) >> 2] = 10; + HEAP32[($6 + 60 | 0) >> 2] = 1; + HEAPF32[$5 >> 2] = Math_fround(Math_fround(.5) * Math_fround(HEAPF32[($5 + 4 | 0) >> 2])); + $20 = $5 + 8 | 0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 36 | 0 | 0, $20 | 0, $5 | 0, $20 | 0); + __stack_pointer = $5 + 16 | 0; + return $6 | 0; + } + + function btCapsuleShape__localGetSupportingVertexWithoutMargin_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $6 = 0, $23 = 0, $24 = 0, $97 = 0, $120 = 0, $154 = 0, $177 = 0, $241 = 0, $245 = 0, $88 = Math_fround(0), $386 = 0, $390 = 0, $423 = 0, $436 = 0, $145 = Math_fround(0), $505 = 0, $509 = 0, $542 = 0, $555 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 144 | 0; + __stack_pointer = $5; + HEAP32[($5 + 140 | 0) >> 2] = $1; + HEAP32[($5 + 136 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 140 | 0) >> 2] | 0; + HEAPF32[($5 + 132 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 128 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 124 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $5 + 132 | 0 | 0, $5 + 128 | 0 | 0, $5 + 124 | 0 | 0) | 0; + HEAPF32[($5 + 120 | 0) >> 2] = Math_fround(-999999984306749440.0); + $23 = HEAP32[($5 + 136 | 0) >> 2] | 0; + $24 = 8; + i64toi32_i32$2 = $23 + $24 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $241 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 104 | 0) + $24 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $241; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $23; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $245 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 104 | 0) >> 2] = $245; + HEAP32[($5 + 108 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($5 + 104 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 100 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($5 + 100 | 0) >> 2]) < Math_fround(9.999999747378752e-05) & 1 | 0)) { + break label$2 + } + HEAPF32[($5 + 96 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($5 + 92 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 88 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 104 | 0 | 0, $5 + 96 | 0 | 0, $5 + 92 | 0 | 0, $5 + 88 | 0 | 0); + break label$1; + } + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(1.0) / Math_fround(btSqrt_28float_29(Math_fround(Math_fround(HEAPF32[($5 + 100 | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 84 | 0) >> 2] = wasm2js_f32$0; + btVector3__operator___28float_20const__29_1($5 + 104 | 0 | 0, $5 + 84 | 0 | 0) | 0; + } + btVector3__btVector3_28_29($5 + 64 | 0 | 0) | 0; + HEAPF32[($5 + 40 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 36 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 32 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 44 | 0 | 0, $5 + 40 | 0 | 0, $5 + 36 | 0 | 0, $5 + 32 | 0 | 0) | 0; + $88 = Math_fround(btCapsuleShape__getHalfHeight_28_29_20const($6 | 0)); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($5 + 44 | 0 | 0) | 0) + ((btCapsuleShape__getUpAxis_28_29_20const($6 | 0) | 0) << 2 | 0) | 0, wasm2js_f32$0 = $88), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $97 = 8; + i64toi32_i32$2 = ($5 + 44 | 0) + $97 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $386 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 64 | 0) + $97 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $386; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $5; + i64toi32_i32$1 = HEAP32[($5 + 44 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 48 | 0) >> 2] | 0; + $390 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 64 | 0) >> 2] = $390; + HEAP32[($5 + 68 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($5 + 104 | 0 | 0, $5 + 64 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 60 | 0) >> 2] = wasm2js_f32$0; + label$3 : { + if (!(Math_fround(HEAPF32[($5 + 60 | 0) >> 2]) > Math_fround(HEAPF32[($5 + 120 | 0) >> 2]) & 1 | 0)) { + break label$3 + } + HEAPF32[($5 + 120 | 0) >> 2] = Math_fround(HEAPF32[($5 + 60 | 0) >> 2]); + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 64 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 68 | 0) >> 2] | 0; + $423 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $423; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $120 = 8; + i64toi32_i32$2 = ($5 + 64 | 0) + $120 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $436 = i64toi32_i32$1; + i64toi32_i32$1 = $0 + $120 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $436; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 8 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 4 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 16 | 0 | 0, $5 + 12 | 0 | 0, $5 + 8 | 0 | 0, $5 + 4 | 0 | 0) | 0; + $145 = Math_fround(-Math_fround(btCapsuleShape__getHalfHeight_28_29_20const($6 | 0))); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($5 + 16 | 0 | 0) | 0) + ((btCapsuleShape__getUpAxis_28_29_20const($6 | 0) | 0) << 2 | 0) | 0, wasm2js_f32$0 = $145), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $154 = 8; + i64toi32_i32$2 = ($5 + 16 | 0) + $154 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $505 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 64 | 0) + $154 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $505; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $5; + i64toi32_i32$1 = HEAP32[($5 + 16 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 20 | 0) >> 2] | 0; + $509 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 64 | 0) >> 2] = $509; + HEAP32[($5 + 68 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($5 + 104 | 0 | 0, $5 + 64 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 60 | 0) >> 2] = wasm2js_f32$0; + label$4 : { + if (!(Math_fround(HEAPF32[($5 + 60 | 0) >> 2]) > Math_fround(HEAPF32[($5 + 120 | 0) >> 2]) & 1 | 0)) { + break label$4 + } + HEAPF32[($5 + 120 | 0) >> 2] = Math_fround(HEAPF32[($5 + 60 | 0) >> 2]); + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 64 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 68 | 0) >> 2] | 0; + $542 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $542; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $177 = 8; + i64toi32_i32$2 = ($5 + 64 | 0) + $177 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $555 = i64toi32_i32$1; + i64toi32_i32$1 = $0 + $177 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $555; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + __stack_pointer = $5 + 144 | 0; + return; + } + + function btCapsuleShape__batchedUnitVectorGetSupportingVertexWithoutMargin_28btVector3_20const__2c_20btVector3__2c_20int_29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $7 = 0, $52 = 0, $76 = 0, $78 = 0, $112 = 0, $136 = 0, $138 = 0, $43 = Math_fround(0), $266 = 0, $270 = 0, $311 = 0, $324 = 0, $103 = Math_fround(0), $393 = 0, $397 = 0, $438 = 0, $451 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 112 | 0; + __stack_pointer = $6; + HEAP32[($6 + 108 | 0) >> 2] = $0; + HEAP32[($6 + 104 | 0) >> 2] = $1; + HEAP32[($6 + 100 | 0) >> 2] = $2; + HEAP32[($6 + 96 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 108 | 0) >> 2] | 0; + HEAP32[($6 + 92 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 92 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 96 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAPF32[($6 + 88 | 0) >> 2] = Math_fround(-999999984306749440.0); + HEAP32[($6 + 84 | 0) >> 2] = (HEAP32[($6 + 104 | 0) >> 2] | 0) + ((HEAP32[($6 + 92 | 0) >> 2] | 0) << 4 | 0) | 0; + btVector3__btVector3_28_29($6 + 64 | 0 | 0) | 0; + HEAPF32[($6 + 40 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 36 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 32 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 44 | 0 | 0, $6 + 40 | 0 | 0, $6 + 36 | 0 | 0, $6 + 32 | 0 | 0) | 0; + $43 = Math_fround(btCapsuleShape__getHalfHeight_28_29_20const($7 | 0)); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($6 + 44 | 0 | 0) | 0) + ((btCapsuleShape__getUpAxis_28_29_20const($7 | 0) | 0) << 2 | 0) | 0, wasm2js_f32$0 = $43), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $52 = 8; + i64toi32_i32$2 = ($6 + 44 | 0) + $52 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $266 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 64 | 0) + $52 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $266; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 44 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 48 | 0) >> 2] | 0; + $270 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 64 | 0) >> 2] = $270; + HEAP32[($6 + 68 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($6 + 84 | 0) >> 2] | 0 | 0, $6 + 64 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 60 | 0) >> 2] = wasm2js_f32$0; + label$3 : { + if (!(Math_fround(HEAPF32[($6 + 60 | 0) >> 2]) > Math_fround(HEAPF32[($6 + 88 | 0) >> 2]) & 1 | 0)) { + break label$3 + } + HEAPF32[($6 + 88 | 0) >> 2] = Math_fround(HEAPF32[($6 + 60 | 0) >> 2]); + $76 = (HEAP32[($6 + 100 | 0) >> 2] | 0) + ((HEAP32[($6 + 92 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 64 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 68 | 0) >> 2] | 0; + $311 = i64toi32_i32$0; + i64toi32_i32$0 = $76; + HEAP32[i64toi32_i32$0 >> 2] = $311; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $78 = 8; + i64toi32_i32$2 = ($6 + 64 | 0) + $78 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $324 = i64toi32_i32$1; + i64toi32_i32$1 = $76 + $78 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $324; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + HEAPF32[($6 + 12 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 8 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 4 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 16 | 0 | 0, $6 + 12 | 0 | 0, $6 + 8 | 0 | 0, $6 + 4 | 0 | 0) | 0; + $103 = Math_fround(-Math_fround(btCapsuleShape__getHalfHeight_28_29_20const($7 | 0))); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($6 + 16 | 0 | 0) | 0) + ((btCapsuleShape__getUpAxis_28_29_20const($7 | 0) | 0) << 2 | 0) | 0, wasm2js_f32$0 = $103), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $112 = 8; + i64toi32_i32$2 = ($6 + 16 | 0) + $112 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $393 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 64 | 0) + $112 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $393; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 16 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 20 | 0) >> 2] | 0; + $397 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 64 | 0) >> 2] = $397; + HEAP32[($6 + 68 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($6 + 84 | 0) >> 2] | 0 | 0, $6 + 64 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 60 | 0) >> 2] = wasm2js_f32$0; + label$4 : { + if (!(Math_fround(HEAPF32[($6 + 60 | 0) >> 2]) > Math_fround(HEAPF32[($6 + 88 | 0) >> 2]) & 1 | 0)) { + break label$4 + } + HEAPF32[($6 + 88 | 0) >> 2] = Math_fround(HEAPF32[($6 + 60 | 0) >> 2]); + $136 = (HEAP32[($6 + 100 | 0) >> 2] | 0) + ((HEAP32[($6 + 92 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 64 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 68 | 0) >> 2] | 0; + $438 = i64toi32_i32$0; + i64toi32_i32$0 = $136; + HEAP32[i64toi32_i32$0 >> 2] = $438; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $138 = 8; + i64toi32_i32$2 = ($6 + 64 | 0) + $138 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $451 = i64toi32_i32$1; + i64toi32_i32$1 = $136 + $138 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $451; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + HEAP32[($6 + 92 | 0) >> 2] = (HEAP32[($6 + 92 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $6 + 112 | 0; + return; + } + + function btCapsuleShape__calculateLocalInertia_28float_2c_20btVector3__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = $2 | 0; + var $5 = 0, $6 = 0, $19 = 0, $28 = 0, $20 = Math_fround(0), $68 = Math_fround(0), $75 = Math_fround(0), $82 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 128 | 0; + __stack_pointer = $5; + HEAP32[($5 + 124 | 0) >> 2] = $0; + HEAPF32[($5 + 120 | 0) >> 2] = $1; + HEAP32[($5 + 116 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 124 | 0) >> 2] | 0; + btTransform__btTransform_28_29($5 + 52 | 0 | 0) | 0; + btTransform__setIdentity_28_29($5 + 52 | 0 | 0); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btCapsuleShape__getRadius_28_29_20const($6 | 0))), HEAPF32[(wasm2js_i32$0 + 48 | 0) >> 2] = wasm2js_f32$0; + $19 = $5 + 48 | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 32 | 0 | 0, $19 | 0, $19 | 0, $19 | 0) | 0; + $20 = Math_fround(btCapsuleShape__getHalfHeight_28_29_20const($6 | 0)); + $28 = (btVector3__operator_20float__28_29($5 + 32 | 0 | 0) | 0) + ((btCapsuleShape__getUpAxis_28_29_20const($6 | 0) | 0) << 2 | 0) | 0; + HEAPF32[$28 >> 2] = Math_fround(Math_fround(HEAPF32[$28 >> 2]) + $20); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(2.0) * Math_fround(HEAPF32[(btVector3__operator_20float__28_29($5 + 32 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(2.0) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($5 + 32 | 0 | 0) | 0) + 4 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(2.0) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($5 + 32 | 0 | 0) | 0) + 8 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 28 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 28 | 0) >> 2])); + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 24 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 24 | 0) >> 2])); + HEAPF32[($5 + 8 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 20 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 20 | 0) >> 2])); + HEAPF32[($5 + 4 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 120 | 0) >> 2]) * Math_fround(.0833333283662796)); + $68 = Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]) * Math_fround(Math_fround(HEAPF32[($5 + 12 | 0) >> 2]) + Math_fround(HEAPF32[($5 + 8 | 0) >> 2]))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($5 + 116 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $68), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $75 = Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]) * Math_fround(Math_fround(HEAPF32[($5 + 16 | 0) >> 2]) + Math_fround(HEAPF32[($5 + 8 | 0) >> 2]))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($5 + 116 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $75), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $82 = Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]) * Math_fround(Math_fround(HEAPF32[($5 + 16 | 0) >> 2]) + Math_fround(HEAPF32[($5 + 12 | 0) >> 2]))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($5 + 116 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $82), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + __stack_pointer = $5 + 128 | 0; + return; + } + + function btCapsuleShape___btCapsuleShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConvexInternalShape___btConvexInternalShape_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCapsuleShape___btCapsuleShape_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCapsuleShape___btCapsuleShape_28_29($4 | 0) | 0; + btCapsuleShape__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCapsuleShape__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCapsuleShape__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $7 = 0, $40 = 0, $41 = 0, $78 = 0, $80 = 0, $93 = 0, $95 = 0, $25 = Math_fround(0), $198 = 0, $202 = 0, $257 = 0, $270 = 0, $288 = 0, $298 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 160 | 0; + __stack_pointer = $6; + HEAP32[($6 + 156 | 0) >> 2] = $0; + HEAP32[($6 + 152 | 0) >> 2] = $1; + HEAP32[($6 + 148 | 0) >> 2] = $2; + HEAP32[($6 + 144 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 156 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btCapsuleShape__getRadius_28_29_20const($7 | 0))), HEAPF32[(wasm2js_i32$0 + 124 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btCapsuleShape__getRadius_28_29_20const($7 | 0))), HEAPF32[(wasm2js_i32$0 + 120 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btCapsuleShape__getRadius_28_29_20const($7 | 0))), HEAPF32[(wasm2js_i32$0 + 116 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 128 | 0 | 0, $6 + 124 | 0 | 0, $6 + 120 | 0 | 0, $6 + 116 | 0 | 0) | 0; + $25 = Math_fround(Math_fround(btCapsuleShape__getRadius_28_29_20const($7 | 0)) + Math_fround(btCapsuleShape__getHalfHeight_28_29_20const($7 | 0))); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($6 + 128 | 0 | 0) | 0) + ((HEAP32[($7 + 60 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $25), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + btMatrix3x3__absolute_28_29_20const($6 + 68 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($6 + 152 | 0) >> 2] | 0 | 0) | 0 | 0); + $40 = btTransform__getOrigin_28_29_20const(HEAP32[($6 + 152 | 0) >> 2] | 0 | 0) | 0; + $41 = 8; + i64toi32_i32$2 = $40 + $41 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $198 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 48 | 0) + $41 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $198; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $40; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $202 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 48 | 0) >> 2] = $202; + HEAP32[($6 + 52 | 0) >> 2] = i64toi32_i32$0; + btVector3__dot3_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29_20const($6 + 32 | 0 | 0, $6 + 128 | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($6 + 68 | 0 | 0, 0 | 0) | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($6 + 68 | 0 | 0, 1 | 0) | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($6 + 68 | 0 | 0, 2 | 0) | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 16 | 0 | 0, $6 + 48 | 0 | 0, $6 + 32 | 0 | 0); + $78 = HEAP32[($6 + 148 | 0) >> 2] | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 16 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 20 | 0) >> 2] | 0; + $257 = i64toi32_i32$0; + i64toi32_i32$0 = $78; + HEAP32[i64toi32_i32$0 >> 2] = $257; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $80 = 8; + i64toi32_i32$2 = ($6 + 16 | 0) + $80 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $270 = i64toi32_i32$1; + i64toi32_i32$1 = $78 + $80 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $270; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 | 0, $6 + 48 | 0 | 0, $6 + 32 | 0 | 0); + $93 = HEAP32[($6 + 144 | 0) >> 2] | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[$6 >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 4 | 0) >> 2] | 0; + $288 = i64toi32_i32$0; + i64toi32_i32$0 = $93; + HEAP32[i64toi32_i32$0 >> 2] = $288; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $95 = 8; + i64toi32_i32$2 = $6 + $95 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $298 = i64toi32_i32$1; + i64toi32_i32$1 = $93 + $95 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $298; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $6 + 160 | 0; + return; + } + + function btCapsuleShape__setLocalScaling_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $22 = 0, $24 = 0, $92 = 0, $105 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 48 | 0; + __stack_pointer = $4; + HEAP32[($4 + 44 | 0) >> 2] = $0; + HEAP32[($4 + 40 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 44 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_3($4 + 24 | 0 | 0, $5 + 36 | 0 | 0, $5 + 20 | 0 | 0); + btConvexInternalShape__setLocalScaling_28btVector3_20const__29($5 | 0, HEAP32[($4 + 40 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($4 + 8 | 0 | 0, $4 + 24 | 0 | 0, HEAP32[($4 + 40 | 0) >> 2] | 0 | 0); + $22 = $5 + 36 | 0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($4 + 12 | 0) >> 2] | 0; + $92 = i64toi32_i32$0; + i64toi32_i32$0 = $22; + HEAP32[i64toi32_i32$0 >> 2] = $92; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $24 = 8; + i64toi32_i32$2 = ($4 + 8 | 0) + $24 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $105 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $24 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $105; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4 + 4 | 0) >> 2] = ((HEAP32[($5 + 60 | 0) >> 2] | 0) + 2 | 0 | 0) % (3 | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($5 + 36 | 0 | 0) | 0) + ((HEAP32[($4 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 52 | 0) >> 2] = wasm2js_f32$0; + __stack_pointer = $4 + 48 | 0; + return; + } + + function btCapsuleShape__getName_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 81655 | 0; + } + + function btCapsuleShape__getAnisotropicRollingFrictionDirection_28_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAPF32[($4 + 8 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 4 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[$4 >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $4 + 8 | 0 | 0, $4 + 4 | 0 | 0, $4 | 0) | 0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($0 | 0) | 0) + ((btCapsuleShape__getUpAxis_28_29_20const($5 | 0) | 0) << 2 | 0) | 0, wasm2js_f32$0 = Math_fround(1.0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCapsuleShape__setMargin_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + return; + } + + function btCapsuleShape__calculateSerializeBufferSize_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 60 | 0; + } + + function btCapsuleShape__serialize_28void__2c_20btSerializer__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + btConvexInternalShape__serialize_28void__2c_20btSerializer__29_20const($6 | 0, HEAP32[$5 >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[$5 >> 2] | 0) + 52 | 0) >> 2] = HEAP32[($6 + 60 | 0) >> 2] | 0; + HEAP8[((HEAP32[$5 >> 2] | 0) + 56 | 0) >> 0] = 0; + HEAP8[((HEAP32[$5 >> 2] | 0) + 57 | 0) >> 0] = 0; + HEAP8[((HEAP32[$5 >> 2] | 0) + 58 | 0) >> 0] = 0; + HEAP8[((HEAP32[$5 >> 2] | 0) + 59 | 0) >> 0] = 0; + __stack_pointer = $5 + 16 | 0; + return 83594 | 0; + } + + function btConvexInternalShape__getNumPreferredPenetrationDirections_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 0 | 0; + } + + function btConvexInternalShape__getPreferredPenetrationDirection_28int_2c_20btVector3__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + __assert_fail(86177 | 0, 79195 | 0, 132 | 0, 76388 | 0); + wasm2js_trap(); + } + + function _GLOBAL__sub_I_btCapsuleShape_cpp() { + __cxx_global_var_init_31(); + return; + } + + function __cxx_global_var_init_32() { + btInfMaskConverter__btInfMaskConverter_28int_29(114096 | 0, 2139095040 | 0) | 0; + return; + } + + function btCollisionShape__getBoundingSphere_28btVector3__2c_20float__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $6 = 0, $63 = 0, $65 = 0, $44 = Math_fround(0), $192 = 0, $205 = 0; + $5 = __stack_pointer - 160 | 0; + __stack_pointer = $5; + HEAP32[($5 + 156 | 0) >> 2] = $0; + HEAP32[($5 + 152 | 0) >> 2] = $1; + HEAP32[($5 + 148 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 156 | 0) >> 2] | 0; + btTransform__btTransform_28_29($5 + 84 | 0 | 0) | 0; + btTransform__setIdentity_28_29($5 + 84 | 0 | 0); + btVector3__btVector3_28_29($5 + 68 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 52 | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($6, $5 + 84 | 0, $5 + 68 | 0, $5 + 52 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 36 | 0 | 0, $5 + 52 | 0 | 0, $5 + 68 | 0 | 0); + $44 = Math_fround(Math_fround(btVector3__length_28_29_20const($5 + 36 | 0 | 0)) * Math_fround(.5)); + HEAPF32[(HEAP32[($5 + 148 | 0) >> 2] | 0) >> 2] = $44; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($5 + 4 | 0 | 0, $5 + 68 | 0 | 0, $5 + 52 | 0 | 0); + HEAPF32[$5 >> 2] = Math_fround(.5); + operator__28btVector3_20const__2c_20float_20const__29($5 + 20 | 0 | 0, $5 + 4 | 0 | 0, $5 | 0); + $63 = HEAP32[($5 + 152 | 0) >> 2] | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 20 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 24 | 0) >> 2] | 0; + $192 = i64toi32_i32$0; + i64toi32_i32$0 = $63; + HEAP32[i64toi32_i32$0 >> 2] = $192; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $65 = 8; + i64toi32_i32$2 = ($5 + 20 | 0) + $65 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $205 = i64toi32_i32$1; + i64toi32_i32$1 = $63 + $65 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $205; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $5 + 160 | 0; + return; + } + + function btCollisionShape__getContactBreakingThreshold_28float_29_20const($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0, $5 = 0, $10 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + $10 = Math_fround(Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($5)) * Math_fround(HEAPF32[($4 + 8 | 0) >> 2])); + __stack_pointer = $4 + 16 | 0; + return Math_fround($10); + } + + function btCollisionShape__getAngularMotionDisc_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $19 = Math_fround(0), $22 = Math_fround(0); + $3 = __stack_pointer - 32 | 0; + __stack_pointer = $3; + HEAP32[($3 + 28 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 28 | 0) >> 2] | 0; + btVector3__btVector3_28_29($3 + 12 | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($4, $3 + 12 | 0, $3 + 8 | 0); + $19 = Math_fround(btVector3__length_28_29_20const($3 + 12 | 0 | 0)); + HEAPF32[($3 + 8 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($3 + 8 | 0) >> 2]) + $19); + $22 = Math_fround(HEAPF32[($3 + 8 | 0) >> 2]); + __stack_pointer = $3 + 32 | 0; + return Math_fround($22); + } + + function btCollisionShape__calculateTemporalAabb_28btTransform_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20btVector3__2c_20btVector3__29_20const($0, $1, $2, $3, $4, $5, $6) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = Math_fround($4); + $5 = $5 | 0; + $6 = $6 | 0; + var $9 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $10 = 0, $126 = 0, $139 = 0, $141 = 0, $159 = 0, $161 = 0, $55 = Math_fround(0), $62 = Math_fround(0), $79 = Math_fround(0), $86 = Math_fround(0), $103 = Math_fround(0), $110 = Math_fround(0), $478 = 0, $491 = 0, $518 = 0, $531 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $9 = __stack_pointer - 128 | 0; + __stack_pointer = $9; + HEAP32[($9 + 124 | 0) >> 2] = $0; + HEAP32[($9 + 120 | 0) >> 2] = $1; + HEAP32[($9 + 116 | 0) >> 2] = $2; + HEAP32[($9 + 112 | 0) >> 2] = $3; + HEAPF32[($9 + 108 | 0) >> 2] = $4; + HEAP32[($9 + 104 | 0) >> 2] = $5; + HEAP32[($9 + 100 | 0) >> 2] = $6; + $10 = HEAP32[($9 + 124 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$10 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($10, HEAP32[($9 + 120 | 0) >> 2] | 0, HEAP32[($9 + 104 | 0) >> 2] | 0, HEAP32[($9 + 100 | 0) >> 2] | 0); + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(HEAPF32[(btVector3__getX_28_29_20const(HEAP32[($9 + 100 | 0) >> 2] | 0 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 96 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(HEAPF32[(btVector3__getY_28_29_20const(HEAP32[($9 + 100 | 0) >> 2] | 0 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 92 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(HEAPF32[(btVector3__getZ_28_29_20const(HEAP32[($9 + 100 | 0) >> 2] | 0 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 88 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(HEAPF32[(btVector3__getX_28_29_20const(HEAP32[($9 + 104 | 0) >> 2] | 0 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 84 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(HEAPF32[(btVector3__getY_28_29_20const(HEAP32[($9 + 104 | 0) >> 2] | 0 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 80 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(HEAPF32[(btVector3__getZ_28_29_20const(HEAP32[($9 + 104 | 0) >> 2] | 0 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 76 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20float_20const__29($9 + 60 | 0 | 0, HEAP32[($9 + 116 | 0) >> 2] | 0 | 0, $9 + 108 | 0 | 0); + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[(btVector3__x_28_29_20const($9 + 60 | 0 | 0) | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + $55 = Math_fround(HEAPF32[(btVector3__x_28_29_20const($9 + 60 | 0 | 0) | 0) >> 2]); + HEAPF32[($9 + 96 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($9 + 96 | 0) >> 2]) + $55); + break label$1; + } + $62 = Math_fround(HEAPF32[(btVector3__x_28_29_20const($9 + 60 | 0 | 0) | 0) >> 2]); + HEAPF32[($9 + 84 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($9 + 84 | 0) >> 2]) + $62); + } + label$3 : { + label$4 : { + if (!(Math_fround(HEAPF32[(btVector3__y_28_29_20const($9 + 60 | 0 | 0) | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$4 + } + $79 = Math_fround(HEAPF32[(btVector3__y_28_29_20const($9 + 60 | 0 | 0) | 0) >> 2]); + HEAPF32[($9 + 92 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($9 + 92 | 0) >> 2]) + $79); + break label$3; + } + $86 = Math_fround(HEAPF32[(btVector3__y_28_29_20const($9 + 60 | 0 | 0) | 0) >> 2]); + HEAPF32[($9 + 80 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($9 + 80 | 0) >> 2]) + $86); + } + label$5 : { + label$6 : { + if (!(Math_fround(HEAPF32[(btVector3__z_28_29_20const($9 + 60 | 0 | 0) | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$6 + } + $103 = Math_fround(HEAPF32[(btVector3__z_28_29_20const($9 + 60 | 0 | 0) | 0) >> 2]); + HEAPF32[($9 + 88 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($9 + 88 | 0) >> 2]) + $103); + break label$5; + } + $110 = Math_fround(HEAPF32[(btVector3__z_28_29_20const($9 + 60 | 0 | 0) | 0) >> 2]); + HEAPF32[($9 + 76 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($9 + 76 | 0) >> 2]) + $110); + } + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(btVector3__length_28_29_20const(HEAP32[($9 + 112 | 0) >> 2] | 0 | 0)) * Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$10 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($10))) * Math_fround(HEAPF32[($9 + 108 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 56 | 0) >> 2] = wasm2js_f32$0; + $126 = $9 + 56 | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($9 + 40 | 0 | 0, $126 | 0, $126 | 0, $126 | 0) | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($9 + 24 | 0 | 0, $9 + 84 | 0 | 0, $9 + 80 | 0 | 0, $9 + 76 | 0 | 0) | 0; + $139 = HEAP32[($9 + 104 | 0) >> 2] | 0; + i64toi32_i32$2 = $9; + i64toi32_i32$0 = HEAP32[($9 + 24 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 28 | 0) >> 2] | 0; + $478 = i64toi32_i32$0; + i64toi32_i32$0 = $139; + HEAP32[i64toi32_i32$0 >> 2] = $478; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $141 = 8; + i64toi32_i32$2 = ($9 + 24 | 0) + $141 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $491 = i64toi32_i32$1; + i64toi32_i32$1 = $139 + $141 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $491; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($9 + 8 | 0 | 0, $9 + 96 | 0 | 0, $9 + 92 | 0 | 0, $9 + 88 | 0 | 0) | 0; + $159 = HEAP32[($9 + 100 | 0) >> 2] | 0; + i64toi32_i32$2 = $9; + i64toi32_i32$0 = HEAP32[($9 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 12 | 0) >> 2] | 0; + $518 = i64toi32_i32$0; + i64toi32_i32$0 = $159; + HEAP32[i64toi32_i32$0 >> 2] = $518; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $161 = 8; + i64toi32_i32$2 = ($9 + 8 | 0) + $161 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $531 = i64toi32_i32$1; + i64toi32_i32$1 = $159 + $161 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $531; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__operator___28btVector3_20const__29(HEAP32[($9 + 104 | 0) >> 2] | 0 | 0, $9 + 40 | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1(HEAP32[($9 + 100 | 0) >> 2] | 0 | 0, $9 + 40 | 0 | 0) | 0; + __stack_pointer = $9 + 128 | 0; + return; + } + + function btCollisionShape__serialize_28void__2c_20btSerializer__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $8 = 0, $12 = 0, $26 = 0, $16 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + HEAP32[($5 + 16 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + $8 = HEAP32[($5 + 20 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 40 | 0) >> 2] | 0 | 0]($8, $6) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $12 = HEAP32[($5 + 20 | 0) >> 2] | 0; + $16 = FUNCTION_TABLE[HEAP32[((HEAP32[$12 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($12, HEAP32[($5 + 12 | 0) >> 2] | 0) | 0; + HEAP32[(HEAP32[($5 + 16 | 0) >> 2] | 0) >> 2] = $16; + label$1 : { + if (!((HEAP32[(HEAP32[($5 + 16 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + $26 = HEAP32[($5 + 20 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$26 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($26, HEAP32[($5 + 12 | 0) >> 2] | 0); + } + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($6 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] = 0; + __stack_pointer = $5 + 32 | 0; + return 83454 | 0; + } + + function btCollisionShape__serializeSingleShape_28btSerializer__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $9 = 0, $21 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 52 | 0) >> 2] | 0 | 0]($5) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + $9 = HEAP32[($4 + 24 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$9 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($9, HEAP32[($4 + 20 | 0) >> 2] | 0, 1) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($5, HEAP32[((HEAP32[($4 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0, HEAP32[($4 + 24 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $21 = HEAP32[($4 + 24 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$21 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($21, HEAP32[($4 + 16 | 0) >> 2] | 0, HEAP32[($4 + 12 | 0) >> 2] | 0, 1346455635, $5); + __stack_pointer = $4 + 32 | 0; + return; + } + + function btCollisionShape___btCollisionShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btCollisionShape___btCollisionShape_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btCollisionShape__calculateSerializeBufferSize_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 12 | 0; + } + + function _GLOBAL__sub_I_btCollisionShape_cpp() { + __cxx_global_var_init_32(); + return; + } + + function __cxx_global_var_init_33() { + btInfMaskConverter__btInfMaskConverter_28int_29(114100 | 0, 2139095040 | 0) | 0; + return; + } + + function btCompoundShape__btCompoundShape_28bool_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $7 = 0, $66 = 0, $81 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 64 | 0; + __stack_pointer = $5; + HEAP32[($5 + 56 | 0) >> 2] = $0; + HEAP8[($5 + 55 | 0) >> 0] = $1; + HEAP32[($5 + 48 | 0) >> 2] = $2; + $7 = HEAP32[($5 + 56 | 0) >> 2] | 0; + HEAP32[($5 + 60 | 0) >> 2] = $7; + btCollisionShape__btCollisionShape_28_29($7 | 0) | 0; + HEAP32[$7 >> 2] = 97860 + 8 | 0; + btAlignedObjectArray_btCompoundShapeChild___btAlignedObjectArray_28_29($7 + 20 | 0 | 0) | 0; + HEAPF32[($5 + 44 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAPF32[($5 + 40 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAPF32[($5 + 36 | 0) >> 2] = Math_fround(999999984306749440.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 40 | 0 | 0, $5 + 44 | 0 | 0, $5 + 40 | 0 | 0, $5 + 36 | 0 | 0) | 0; + HEAPF32[($5 + 32 | 0) >> 2] = Math_fround(-999999984306749440.0); + HEAPF32[($5 + 28 | 0) >> 2] = Math_fround(-999999984306749440.0); + HEAPF32[($5 + 24 | 0) >> 2] = Math_fround(-999999984306749440.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 56 | 0 | 0, $5 + 32 | 0 | 0, $5 + 28 | 0 | 0, $5 + 24 | 0 | 0) | 0; + HEAP32[($7 + 72 | 0) >> 2] = 0; + HEAP32[($7 + 76 | 0) >> 2] = 1; + HEAPF32[($7 + 80 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 20 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(1.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 84 | 0 | 0, $5 + 20 | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0) | 0; + HEAP32[($7 + 4 | 0) >> 2] = 31; + label$1 : { + if (!((HEAPU8[($5 + 55 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(40 | 0, 16 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + $66 = HEAP32[($5 + 8 | 0) >> 2] | 0; + btDbvt__btDbvt_28_29($66 | 0) | 0; + HEAP32[($7 + 72 | 0) >> 2] = $66; + label$2 : { + if ((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) == (HEAP32[($7 + 72 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(81981 | 0, 75140 | 0, 35 | 0, 81668 | 0); + wasm2js_trap(); + } + } + btAlignedObjectArray_btCompoundShapeChild___reserve_28int_29($7 + 20 | 0 | 0, HEAP32[($5 + 48 | 0) >> 2] | 0 | 0); + $81 = HEAP32[($5 + 60 | 0) >> 2] | 0; + __stack_pointer = $5 + 64 | 0; + return $81 | 0; + } + + function btCollisionShape__btCollisionShape_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 97760 + 8 | 0; + HEAP32[($4 + 4 | 0) >> 2] = 35; + HEAP32[($4 + 8 | 0) >> 2] = 0; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 16 | 0) >> 2] = 0; + return $4 | 0; + } + + function btAlignedObjectArray_btCompoundShapeChild___btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btCompoundShapeChild_2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btCompoundShapeChild___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btCompoundShapeChild___reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btCompoundShapeChild___capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btCompoundShapeChild___allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btCompoundShapeChild___copy_28int_2c_20int_2c_20btCompoundShapeChild__29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btCompoundShapeChild___size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btCompoundShapeChild___destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btCompoundShapeChild___size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btCompoundShapeChild___deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedAllocator_btCompoundShapeChild_2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btCompoundShapeChild___init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btAlignedObjectArray_btCompoundShapeChild___capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btCompoundShapeChild___allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btCompoundShapeChild_2c_2016u___allocate_28int_2c_20btCompoundShapeChild_20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btCompoundShapeChild___copy_28int_2c_20int_2c_20btCompoundShapeChild__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + btCompoundShapeChild__btCompoundShapeChild_28btCompoundShapeChild_20const__29(btCompoundShapeChild__operator_20new_28unsigned_20long_2c_20void__29(80 | 0, (HEAP32[($6 + 16 | 0) >> 2] | 0) + Math_imul(HEAP32[($6 + 12 | 0) >> 2] | 0, 80) | 0 | 0) | 0 | 0, (HEAP32[($7 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($6 + 12 | 0) >> 2] | 0, 80) | 0 | 0) | 0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $6 + 32 | 0; + return; + } + + function btAlignedObjectArray_btCompoundShapeChild___destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btCompoundShapeChild___deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btCompoundShapeChild_2c_2016u___deallocate_28btCompoundShapeChild__29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCompoundShape___btCompoundShape_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0, $19 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $4; + HEAP32[$4 >> 2] = 97860 + 8 | 0; + label$1 : { + if (!((HEAP32[($4 + 72 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + btDbvt___btDbvt_28_29(HEAP32[($4 + 72 | 0) >> 2] | 0 | 0) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 72 | 0) >> 2] | 0 | 0); + } + btAlignedObjectArray_btCompoundShapeChild____btAlignedObjectArray_28_29($4 + 20 | 0 | 0) | 0; + btCollisionShape___btCollisionShape_28_29($4 | 0) | 0; + $19 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $19 | 0; + } + + function btAlignedObjectArray_btCompoundShapeChild____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btCompoundShapeChild___clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btCompoundShapeChild___clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btCompoundShapeChild___destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btCompoundShapeChild___size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btCompoundShapeChild___deallocate_28_29($4 | 0); + btAlignedObjectArray_btCompoundShapeChild___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCompoundShape___btCompoundShape_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[839 | 0]($4) | 0; + btCompoundShape__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCompoundShape__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCompoundShape__addChildShape_28btTransform_20const__2c_20btCollisionShape__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $21 = 0, $31 = 0, $77 = Math_fround(0), $113 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 176 | 0; + __stack_pointer = $5; + HEAP32[($5 + 172 | 0) >> 2] = $0; + HEAP32[($5 + 168 | 0) >> 2] = $1; + HEAP32[($5 + 164 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 172 | 0) >> 2] | 0; + HEAP32[($6 + 76 | 0) >> 2] = (HEAP32[($6 + 76 | 0) >> 2] | 0) + 1 | 0; + btCompoundShapeChild__btCompoundShapeChild_28_29($5 + 84 | 0 | 0) | 0; + HEAP32[($5 + 160 | 0) >> 2] = 0; + btTransform__operator__28btTransform_20const__29($5 + 84 | 0 | 0, HEAP32[($5 + 168 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5 + 148 | 0) >> 2] = HEAP32[($5 + 164 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btCollisionShape__getShapeType_28_29_20const(HEAP32[($5 + 164 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 152 | 0) >> 2] = wasm2js_i32$1; + $21 = HEAP32[($5 + 164 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$21 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($21))), HEAPF32[(wasm2js_i32$0 + 156 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28_29($5 + 68 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 52 | 0 | 0) | 0; + $31 = HEAP32[($5 + 164 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$31 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($31, HEAP32[($5 + 168 | 0) >> 2] | 0, $5 + 68 | 0, $5 + 52 | 0); + HEAP32[($5 + 48 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($5 + 48 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$1 + } + label$3 : { + if (!(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 40 | 0 | 0) | 0) + ((HEAP32[($5 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) > Math_fround(HEAPF32[((btVector3__operator_20float__28_29($5 + 68 | 0 | 0) | 0) + ((HEAP32[($5 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) & 1 | 0)) { + break label$3 + } + $77 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($5 + 68 | 0 | 0) | 0) + ((HEAP32[($5 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($6 + 40 | 0 | 0) | 0) + ((HEAP32[($5 + 48 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $77), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + } + label$4 : { + if (!(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 56 | 0 | 0) | 0) + ((HEAP32[($5 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) < Math_fround(HEAPF32[((btVector3__operator_20float__28_29($5 + 52 | 0 | 0) | 0) + ((HEAP32[($5 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) & 1 | 0)) { + break label$4 + } + $113 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($5 + 52 | 0 | 0) | 0) + ((HEAP32[($5 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($6 + 56 | 0 | 0) | 0) + ((HEAP32[($5 + 48 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $113), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + } + HEAP32[($5 + 48 | 0) >> 2] = (HEAP32[($5 + 48 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + label$5 : { + if (!((HEAP32[($6 + 72 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + btDbvtAabbMm__FromMM_28btVector3_20const__2c_20btVector3_20const__29($5 + 16 | 0 | 0, $5 + 68 | 0 | 0, $5 + 52 | 0 | 0); + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btCompoundShapeChild___size_28_29_20const($6 + 20 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btDbvt__insert_28btDbvtAabbMm_20const__2c_20void__29(HEAP32[($6 + 72 | 0) >> 2] | 0 | 0, $5 + 16 | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 160 | 0) >> 2] = wasm2js_i32$1; + } + btAlignedObjectArray_btCompoundShapeChild___push_back_28btCompoundShapeChild_20const__29($6 + 20 | 0 | 0, $5 + 84 | 0 | 0); + __stack_pointer = $5 + 176 | 0; + return; + } + + function btCompoundShapeChild__btCompoundShapeChild_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btTransform__btTransform_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btCompoundShapeChild___push_back_28btCompoundShapeChild_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btCompoundShapeChild___size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btCompoundShapeChild___capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btCompoundShapeChild___reserve_28int_29($5 | 0, btAlignedObjectArray_btCompoundShapeChild___allocSize_28int_29($5 | 0, btAlignedObjectArray_btCompoundShapeChild___size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + btCompoundShapeChild__btCompoundShapeChild_28btCompoundShapeChild_20const__29(btCompoundShapeChild__operator_20new_28unsigned_20long_2c_20void__29(80 | 0, (HEAP32[($5 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 4 | 0) >> 2] | 0, 80) | 0 | 0) | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btCompoundShapeChild___allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btCompoundShapeChild__operator_20new_28unsigned_20long_2c_20void__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return HEAP32[($4 + 8 | 0) >> 2] | 0 | 0; + } + + function btCompoundShapeChild__btCompoundShapeChild_28btCompoundShapeChild_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5 = 0, $8 = 0, $13 = 0, $46 = 0, $56 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btTransform__btTransform_28btTransform_20const__29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + $8 = $5 + 64 | 0; + i64toi32_i32$2 = (HEAP32[($4 + 8 | 0) >> 2] | 0) + 64 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $46 = i64toi32_i32$0; + i64toi32_i32$0 = $8; + HEAP32[i64toi32_i32$0 >> 2] = $46; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $13 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $13 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $56 = i64toi32_i32$1; + i64toi32_i32$1 = $8 + $13 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $56; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function btCompoundShape__updateChildTransform_28int_2c_20btTransform_20const__2c_20bool_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $8 = 0, $31 = 0, $9 = 0; + $6 = __stack_pointer - 80 | 0; + __stack_pointer = $6; + HEAP32[($6 + 76 | 0) >> 2] = $0; + HEAP32[($6 + 72 | 0) >> 2] = $1; + HEAP32[($6 + 68 | 0) >> 2] = $2; + HEAP8[($6 + 67 | 0) >> 0] = $3; + $8 = HEAP32[($6 + 76 | 0) >> 2] | 0; + $9 = HEAP32[($6 + 68 | 0) >> 2] | 0; + btTransform__operator__28btTransform_20const__29(btAlignedObjectArray_btCompoundShapeChild___operator_5b_5d_28int_29($8 + 20 | 0 | 0, HEAP32[($6 + 72 | 0) >> 2] | 0 | 0) | 0 | 0, $9 | 0) | 0; + label$1 : { + if (!((HEAP32[($8 + 72 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + btVector3__btVector3_28_29($6 + 48 | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 32 | 0 | 0) | 0; + $31 = HEAP32[((btAlignedObjectArray_btCompoundShapeChild___operator_5b_5d_28int_29($8 + 20 | 0 | 0, HEAP32[($6 + 72 | 0) >> 2] | 0 | 0) | 0) + 64 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$31 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($31, HEAP32[($6 + 68 | 0) >> 2] | 0, $6 + 48 | 0, $6 + 32 | 0); + btDbvtAabbMm__FromMM_28btVector3_20const__2c_20btVector3_20const__29($6 | 0, $6 + 48 | 0 | 0, $6 + 32 | 0 | 0); + btDbvt__update_28btDbvtNode__2c_20btDbvtAabbMm__29(HEAP32[($8 + 72 | 0) >> 2] | 0 | 0, HEAP32[((btAlignedObjectArray_btCompoundShapeChild___operator_5b_5d_28int_29($8 + 20 | 0 | 0, HEAP32[($6 + 72 | 0) >> 2] | 0 | 0) | 0) + 76 | 0) >> 2] | 0 | 0, $6 | 0); + } + label$2 : { + if (!((HEAPU8[($6 + 67 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 68 | 0) >> 2] | 0 | 0]($8); + } + __stack_pointer = $6 + 80 | 0; + return; + } + + function btCompoundShape__removeChildShapeByIndex_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $57 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($5 + 76 | 0) >> 2] = (HEAP32[($5 + 76 | 0) >> 2] | 0) + 1 | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$2 + } + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btCompoundShapeChild___size_28_29_20const($5 + 20 | 0 | 0) | 0 | 0) & 1 | 0) { + break label$1 + } + } + __assert_fail(87603 | 0, 75140 | 0, 112 | 0, 66339 | 0); + wasm2js_trap(); + } + label$3 : { + if (!((HEAP32[($5 + 72 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + btDbvt__remove_28btDbvtNode__29(HEAP32[($5 + 72 | 0) >> 2] | 0 | 0, HEAP32[((btAlignedObjectArray_btCompoundShapeChild___operator_5b_5d_28int_29($5 + 20 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) + 76 | 0) >> 2] | 0 | 0); + } + btAlignedObjectArray_btCompoundShapeChild___swap_28int_2c_20int_29($5 + 20 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, (btAlignedObjectArray_btCompoundShapeChild___size_28_29_20const($5 + 20 | 0 | 0) | 0) - 1 | 0 | 0); + label$4 : { + if (!((HEAP32[($5 + 72 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $57 = HEAP32[($4 + 8 | 0) >> 2] | 0; + (wasm2js_i32$0 = HEAP32[((btAlignedObjectArray_btCompoundShapeChild___operator_5b_5d_28int_29($5 + 20 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) + 76 | 0) >> 2] | 0, wasm2js_i32$1 = $57), HEAP32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_i32$1; + } + btAlignedObjectArray_btCompoundShapeChild___pop_back_28_29($5 + 20 | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btCompoundShapeChild___swap_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 96 | 0; + __stack_pointer = $5; + HEAP32[($5 + 92 | 0) >> 2] = $0; + HEAP32[($5 + 88 | 0) >> 2] = $1; + HEAP32[($5 + 84 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 92 | 0) >> 2] | 0; + btCompoundShapeChild__btCompoundShapeChild_28btCompoundShapeChild_20const__29($5 + 4 | 0 | 0, (HEAP32[($6 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 88 | 0) >> 2] | 0, 80) | 0 | 0) | 0; + btCompoundShapeChild__operator__28btCompoundShapeChild_20const__29((HEAP32[($6 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 88 | 0) >> 2] | 0, 80) | 0 | 0, (HEAP32[($6 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 84 | 0) >> 2] | 0, 80) | 0 | 0) | 0; + btCompoundShapeChild__operator__28btCompoundShapeChild_20const__29((HEAP32[($6 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 84 | 0) >> 2] | 0, 80) | 0 | 0, $5 + 4 | 0 | 0) | 0; + __stack_pointer = $5 + 96 | 0; + return; + } + + function btAlignedObjectArray_btCompoundShapeChild___pop_back_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85800 | 0, 78192 | 0, 201 | 0, 77711 | 0); + wasm2js_trap(); + } + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + -1 | 0; + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCompoundShapeChild__operator__28btCompoundShapeChild_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5 = 0, $8 = 0, $13 = 0, $46 = 0, $56 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btTransform__operator__28btTransform_20const__29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + $8 = $5 + 64 | 0; + i64toi32_i32$2 = (HEAP32[($4 + 8 | 0) >> 2] | 0) + 64 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $46 = i64toi32_i32$0; + i64toi32_i32$0 = $8; + HEAP32[i64toi32_i32$0 >> 2] = $46; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $13 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $13 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $56 = i64toi32_i32$1; + i64toi32_i32$1 = $8 + $13 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $56; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function btCompoundShape__removeChildShape_28btCollisionShape__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($5 + 76 | 0) >> 2] = (HEAP32[($5 + 76 | 0) >> 2] | 0) + 1 | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = (btAlignedObjectArray_btCompoundShapeChild___size_28_29_20const($5 + 20 | 0 | 0) | 0) - 1 | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$1 + } + label$3 : { + if (!((HEAP32[((btAlignedObjectArray_btCompoundShapeChild___operator_5b_5d_28int_29($5 + 20 | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0) + 64 | 0) >> 2] | 0 | 0) == (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + btCompoundShape__removeChildShapeByIndex_28int_29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + -1 | 0; + continue label$2; + }; + } + FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 68 | 0) >> 2] | 0 | 0]($5); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCompoundShape__recalculateLocalAabb_28_29($0) { + $0 = $0 | 0; + var $3 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, i64toi32_i32$2 = 0, $21 = 0, $23 = 0, $45 = 0, $47 = 0, $73 = 0, $216 = 0, $229 = 0, $263 = 0, $276 = 0, $122 = Math_fround(0), $158 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0, wasm2js_i32$4 = 0, wasm2js_f32$0 = Math_fround(0); + $3 = __stack_pointer - 112 | 0; + __stack_pointer = $3; + HEAP32[($3 + 108 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 108 | 0) >> 2] | 0; + HEAPF32[($3 + 88 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAPF32[($3 + 84 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAPF32[($3 + 80 | 0) >> 2] = Math_fround(999999984306749440.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 92 | 0 | 0, $3 + 88 | 0 | 0, $3 + 84 | 0 | 0, $3 + 80 | 0 | 0) | 0; + $21 = $4 + 40 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 92 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 96 | 0) >> 2] | 0; + $216 = i64toi32_i32$0; + i64toi32_i32$0 = $21; + HEAP32[i64toi32_i32$0 >> 2] = $216; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $23 = 8; + i64toi32_i32$2 = ($3 + 92 | 0) + $23 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $229 = i64toi32_i32$1; + i64toi32_i32$1 = $21 + $23 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $229; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($3 + 60 | 0) >> 2] = Math_fround(-999999984306749440.0); + HEAPF32[($3 + 56 | 0) >> 2] = Math_fround(-999999984306749440.0); + HEAPF32[($3 + 52 | 0) >> 2] = Math_fround(-999999984306749440.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 64 | 0 | 0, $3 + 60 | 0 | 0, $3 + 56 | 0 | 0, $3 + 52 | 0 | 0) | 0; + $45 = $4 + 56 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 64 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 68 | 0) >> 2] | 0; + $263 = i64toi32_i32$0; + i64toi32_i32$0 = $45; + HEAP32[i64toi32_i32$0 >> 2] = $263; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $47 = 8; + i64toi32_i32$2 = ($3 + 64 | 0) + $47 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $276 = i64toi32_i32$1; + i64toi32_i32$1 = $45 + $47 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $276; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($3 + 48 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3 + 48 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btCompoundShapeChild___size_28_29_20const($4 + 20 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btVector3__btVector3_28_29($3 + 32 | 0 | 0) | 0; + btVector3__btVector3_28_29($3 + 16 | 0 | 0) | 0; + $73 = HEAP32[((btAlignedObjectArray_btCompoundShapeChild___operator_5b_5d_28int_29($4 + 20 | 0 | 0, HEAP32[($3 + 48 | 0) >> 2] | 0 | 0) | 0) + 64 | 0) >> 2] | 0; + ((((wasm2js_i32$1 = $73, wasm2js_i32$2 = btAlignedObjectArray_btCompoundShapeChild___operator_5b_5d_28int_29($4 + 20 | 0 | 0, HEAP32[($3 + 48 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$3 = $3 + 32 | 0), wasm2js_i32$4 = $3 + 16 | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$73 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0, wasm2js_i32$3 | 0, wasm2js_i32$4 | 0); + HEAP32[($3 + 12 | 0) >> 2] = 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$3 + } + label$5 : { + if (!(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($4 + 40 | 0 | 0) | 0) + ((HEAP32[($3 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) > Math_fround(HEAPF32[((btVector3__operator_20float__28_29($3 + 32 | 0 | 0) | 0) + ((HEAP32[($3 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) & 1 | 0)) { + break label$5 + } + $122 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($3 + 32 | 0 | 0) | 0) + ((HEAP32[($3 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($4 + 40 | 0 | 0) | 0) + ((HEAP32[($3 + 12 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $122), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + } + label$6 : { + if (!(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($4 + 56 | 0 | 0) | 0) + ((HEAP32[($3 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) < Math_fround(HEAPF32[((btVector3__operator_20float__28_29($3 + 16 | 0 | 0) | 0) + ((HEAP32[($3 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) & 1 | 0)) { + break label$6 + } + $158 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($3 + 16 | 0 | 0) | 0) + ((HEAP32[($3 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($4 + 56 | 0 | 0) | 0) + ((HEAP32[($3 + 12 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $158), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + } + HEAP32[($3 + 12 | 0) >> 2] = (HEAP32[($3 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + HEAP32[($3 + 48 | 0) >> 2] = (HEAP32[($3 + 48 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $3 + 112 | 0; + return; + } + + function btCompoundShape__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $7 = 0, i64toi32_i32$2 = 0, $150 = 0, $152 = 0, $167 = 0, $169 = 0, $458 = 0, $471 = 0, $492 = 0, $505 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 256 | 0; + __stack_pointer = $6; + HEAP32[($6 + 252 | 0) >> 2] = $0; + HEAP32[($6 + 248 | 0) >> 2] = $1; + HEAP32[($6 + 244 | 0) >> 2] = $2; + HEAP32[($6 + 240 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 252 | 0) >> 2] | 0; + HEAPF32[($6 + 220 | 0) >> 2] = Math_fround(.5); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 204 | 0 | 0, $7 + 56 | 0 | 0, $7 + 40 | 0 | 0); + operator__28float_20const__2c_20btVector3_20const__29($6 + 224 | 0 | 0, $6 + 220 | 0 | 0, $6 + 204 | 0 | 0); + HEAPF32[($6 + 184 | 0) >> 2] = Math_fround(.5); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 168 | 0 | 0, $7 + 56 | 0 | 0, $7 + 40 | 0 | 0); + operator__28float_20const__2c_20btVector3_20const__29($6 + 188 | 0 | 0, $6 + 184 | 0 | 0, $6 + 168 | 0 | 0); + label$1 : { + if (btAlignedObjectArray_btCompoundShapeChild___size_28_29_20const($7 + 20 | 0 | 0) | 0) { + break label$1 + } + HEAPF32[($6 + 164 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 160 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 156 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 224 | 0 | 0, $6 + 164 | 0 | 0, $6 + 160 | 0 | 0, $6 + 156 | 0 | 0); + HEAPF32[($6 + 152 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 148 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 144 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 188 | 0 | 0, $6 + 152 | 0 | 0, $6 + 148 | 0 | 0, $6 + 144 | 0 | 0); + } + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($7))), HEAPF32[(wasm2js_i32$0 + 124 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($7))), HEAPF32[(wasm2js_i32$0 + 120 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($7))), HEAPF32[(wasm2js_i32$0 + 116 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 128 | 0 | 0, $6 + 124 | 0 | 0, $6 + 120 | 0 | 0, $6 + 116 | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($6 + 224 | 0 | 0, $6 + 128 | 0 | 0) | 0; + btMatrix3x3__absolute_28_29_20const($6 + 68 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($6 + 248 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator_28_29_28btVector3_20const__29_20const($6 + 52 | 0 | 0, HEAP32[($6 + 248 | 0) >> 2] | 0 | 0, $6 + 188 | 0 | 0); + btVector3__dot3_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29_20const($6 + 36 | 0 | 0, $6 + 224 | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($6 + 68 | 0 | 0, 0 | 0) | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($6 + 68 | 0 | 0, 1 | 0) | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($6 + 68 | 0 | 0, 2 | 0) | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 20 | 0 | 0, $6 + 52 | 0 | 0, $6 + 36 | 0 | 0); + $150 = HEAP32[($6 + 244 | 0) >> 2] | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 20 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 24 | 0) >> 2] | 0; + $458 = i64toi32_i32$0; + i64toi32_i32$0 = $150; + HEAP32[i64toi32_i32$0 >> 2] = $458; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $152 = 8; + i64toi32_i32$2 = ($6 + 20 | 0) + $152 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $471 = i64toi32_i32$1; + i64toi32_i32$1 = $150 + $152 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $471; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 4 | 0 | 0, $6 + 52 | 0 | 0, $6 + 36 | 0 | 0); + $167 = HEAP32[($6 + 240 | 0) >> 2] | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 4 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 8 | 0) >> 2] | 0; + $492 = i64toi32_i32$0; + i64toi32_i32$0 = $167; + HEAP32[i64toi32_i32$0 >> 2] = $492; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $169 = 8; + i64toi32_i32$2 = ($6 + 4 | 0) + $169 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $505 = i64toi32_i32$1; + i64toi32_i32$1 = $167 + $169 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $505; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $6 + 256 | 0; + return; + } + + function btCompoundShape__calculateLocalInertia_28float_2c_20btVector3__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = $2 | 0; + var $5 = 0, $6 = 0, $80 = Math_fround(0), $93 = Math_fround(0), $106 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 160 | 0; + __stack_pointer = $5; + HEAP32[($5 + 156 | 0) >> 2] = $0; + HEAPF32[($5 + 152 | 0) >> 2] = $1; + HEAP32[($5 + 148 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 156 | 0) >> 2] | 0; + btTransform__btTransform_28_29($5 + 84 | 0 | 0) | 0; + btTransform__setIdentity_28_29($5 + 84 | 0 | 0); + btVector3__btVector3_28_29($5 + 68 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 52 | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($6, $5 + 84 | 0, $5 + 68 | 0, $5 + 52 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 20 | 0 | 0, $5 + 52 | 0 | 0, $5 + 68 | 0 | 0); + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(.5); + operator__28btVector3_20const__2c_20float_20const__29($5 + 36 | 0 | 0, $5 + 20 | 0 | 0, $5 + 16 | 0 | 0); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(2.0) * Math_fround(HEAPF32[(btVector3__x_28_29_20const($5 + 36 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(2.0) * Math_fround(HEAPF32[(btVector3__y_28_29_20const($5 + 36 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(2.0) * Math_fround(HEAPF32[(btVector3__z_28_29_20const($5 + 36 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $80 = Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 152 | 0) >> 2]) / Math_fround(12.0)) * Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 8 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 8 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 4 | 0) >> 2])))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($5 + 148 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $80), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $93 = Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 152 | 0) >> 2]) / Math_fround(12.0)) * Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 12 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 12 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 4 | 0) >> 2])))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($5 + 148 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $93), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $106 = Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 152 | 0) >> 2]) / Math_fround(12.0)) * Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 12 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 12 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($5 + 8 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 8 | 0) >> 2])))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($5 + 148 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $106), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + __stack_pointer = $5 + 160 | 0; + return; + } + + function btQuaternion__getIdentity_28_29() { + var $2 = 0; + $2 = __stack_pointer - 16 | 0; + __stack_pointer = $2; + label$1 : { + if (!((((HEAPU8[(0 + 114120 | 0) >> 0] | 0) & 1 | 0) & 255 | 0 | 0) == (0 & 255 | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAPF32[($2 + 12 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($2 + 8 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($2 + 4 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[$2 >> 2] = Math_fround(1.0); + btQuaternion__btQuaternion_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29(114104 | 0, $2 + 12 | 0 | 0, $2 + 8 | 0 | 0, $2 + 4 | 0 | 0, $2 | 0) | 0; + HEAP8[(0 + 114120 | 0) >> 0] = 1; + } + __stack_pointer = $2 + 16 | 0; + return 114104 | 0; + } + + function btCompoundShape__setLocalScaling_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $5 = 0, $25 = 0, $28 = 0, $29 = 0, $51 = 0, $64 = 0, $100 = 0, $102 = 0, $181 = 0, $185 = 0, $228 = 0, $232 = 0, $315 = 0, $325 = 0; + $4 = __stack_pointer - 160 | 0; + __stack_pointer = $4; + HEAP32[($4 + 156 | 0) >> 2] = $0; + HEAP32[($4 + 152 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 156 | 0) >> 2] | 0; + HEAP32[($4 + 148 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 148 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btCompoundShapeChild___size_28_29_20const($5 + 20 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btTransform__btTransform_28btTransform_20const__29($4 + 84 | 0 | 0, btCompoundShape__getChildTransform_28int_29($5 | 0, HEAP32[($4 + 148 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + $25 = HEAP32[((btAlignedObjectArray_btCompoundShapeChild___operator_5b_5d_28int_29($5 + 20 | 0 | 0, HEAP32[($4 + 148 | 0) >> 2] | 0 | 0) | 0) + 64 | 0) >> 2] | 0; + $28 = FUNCTION_TABLE[HEAP32[((HEAP32[$25 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($25) | 0; + $29 = 8; + i64toi32_i32$2 = $28 + $29 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $181 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 64 | 0) + $29 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $181; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $28; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $185 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 64 | 0) >> 2] = $185; + HEAP32[($4 + 68 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($4 + 32 | 0 | 0, $4 + 64 | 0 | 0, HEAP32[($4 + 152 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_3($4 + 48 | 0 | 0, $4 + 32 | 0 | 0, $5 + 84 | 0 | 0); + $51 = 8; + i64toi32_i32$2 = ($4 + 48 | 0) + $51 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $228 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 64 | 0) + $51 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $228; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $4; + i64toi32_i32$1 = HEAP32[($4 + 48 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($4 + 52 | 0) >> 2] | 0; + $232 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 64 | 0) >> 2] = $232; + HEAP32[($4 + 68 | 0) >> 2] = i64toi32_i32$0; + $64 = HEAP32[((btAlignedObjectArray_btCompoundShapeChild___operator_5b_5d_28int_29($5 + 20 | 0 | 0, HEAP32[($4 + 148 | 0) >> 2] | 0 | 0) | 0) + 64 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$64 >> 2] | 0) + 24 | 0) >> 2] | 0 | 0]($64, $4 + 64 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($4 | 0, btTransform__getOrigin_28_29($4 + 84 | 0 | 0) | 0 | 0, HEAP32[($4 + 152 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_3($4 + 16 | 0 | 0, $4 | 0, $5 + 84 | 0 | 0); + btTransform__setOrigin_28btVector3_20const__29($4 + 84 | 0 | 0, $4 + 16 | 0 | 0); + btCompoundShape__updateChildTransform_28int_2c_20btTransform_20const__2c_20bool_29($5 | 0, HEAP32[($4 + 148 | 0) >> 2] | 0 | 0, $4 + 84 | 0 | 0, 0 & 1 | 0 | 0); + HEAP32[($4 + 148 | 0) >> 2] = (HEAP32[($4 + 148 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + $100 = $5 + 84 | 0; + i64toi32_i32$2 = HEAP32[($4 + 152 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $315 = i64toi32_i32$0; + i64toi32_i32$0 = $100; + HEAP32[i64toi32_i32$0 >> 2] = $315; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $102 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $102 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $325 = i64toi32_i32$1; + i64toi32_i32$1 = $100 + $102 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $325; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 68 | 0) >> 2] | 0 | 0]($5); + __stack_pointer = $4 + 160 | 0; + return; + } + + function btCompoundShape__getChildTransform_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $9 = btAlignedObjectArray_btCompoundShapeChild___operator_5b_5d_28int_29((HEAP32[($4 + 12 | 0) >> 2] | 0) + 20 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $9 | 0; + } + + function btCompoundShape__serialize_28void__2c_20btSerializer__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $20 = 0, $29 = 0, $50 = 0, $60 = 0, $75 = 0, $80 = 0, $92 = 0, $99 = 0, $127 = 0, $14 = 0, $33 = 0, $48 = Math_fround(0), $58 = 0, $114 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0, wasm2js_i32$4 = 0, wasm2js_i32$5 = 0; + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 44 | 0) >> 2] = $0; + HEAP32[($5 + 40 | 0) >> 2] = $1; + HEAP32[($5 + 36 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 44 | 0) >> 2] | 0; + HEAP32[($5 + 32 | 0) >> 2] = HEAP32[($5 + 40 | 0) >> 2] | 0; + btCollisionShape__serialize_28void__2c_20btSerializer__29_20const($6 | 0, HEAP32[($5 + 32 | 0) >> 2] | 0 | 0, HEAP32[($5 + 36 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[((HEAP32[($5 + 32 | 0) >> 2] | 0) + 20 | 0) >> 2] = Math_fround(HEAPF32[($6 + 80 | 0) >> 2]); + $14 = btAlignedObjectArray_btCompoundShapeChild___size_28_29_20const($6 + 20 | 0 | 0) | 0; + HEAP32[((HEAP32[($5 + 32 | 0) >> 2] | 0) + 16 | 0) >> 2] = $14; + HEAP32[((HEAP32[($5 + 32 | 0) >> 2] | 0) + 12 | 0) >> 2] = 0; + label$1 : { + if (!(HEAP32[((HEAP32[($5 + 32 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0)) { + break label$1 + } + $20 = HEAP32[($5 + 36 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$20 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($20, 76, HEAP32[((HEAP32[($5 + 32 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($5 + 24 | 0) >> 2] = HEAP32[((HEAP32[($5 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $29 = HEAP32[($5 + 36 | 0) >> 2] | 0; + $33 = FUNCTION_TABLE[HEAP32[((HEAP32[$29 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($29, HEAP32[($5 + 24 | 0) >> 2] | 0) | 0; + HEAP32[((HEAP32[($5 + 32 | 0) >> 2] | 0) + 12 | 0) >> 2] = $33; + HEAP32[($5 + 20 | 0) >> 2] = 0; + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) < (HEAP32[((HEAP32[($5 + 32 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + $48 = Math_fround(HEAPF32[((btAlignedObjectArray_btCompoundShapeChild___operator_5b_5d_28int_29_20const($6 + 20 | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0) + 72 | 0) >> 2]); + HEAPF32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 72 | 0) >> 2] = $48; + $50 = HEAP32[($5 + 36 | 0) >> 2] | 0; + $58 = (((wasm2js_i32$1 = $50, wasm2js_i32$2 = HEAP32[((btAlignedObjectArray_btCompoundShapeChild___operator_5b_5d_28int_29_20const($6 + 20 | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0) + 64 | 0) >> 2] | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$50 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0) | 0); + HEAP32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 64 | 0) >> 2] = $58; + $60 = HEAP32[($5 + 36 | 0) >> 2] | 0; + label$4 : { + if (((((wasm2js_i32$2 = $60, wasm2js_i32$1 = HEAP32[((btAlignedObjectArray_btCompoundShapeChild___operator_5b_5d_28int_29_20const($6 + 20 | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0) + 64 | 0) >> 2] | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$60 >> 2] | 0) + 24 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$2 | 0, wasm2js_i32$1 | 0) | 0) | 0) != (0 | 0) & 1 | 0) { + break label$4 + } + $75 = HEAP32[($5 + 36 | 0) >> 2] | 0; + $80 = HEAP32[((btAlignedObjectArray_btCompoundShapeChild___operator_5b_5d_28int_29_20const($6 + 20 | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0) + 64 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = ((((wasm2js_i32$3 = $75, wasm2js_i32$4 = FUNCTION_TABLE[HEAP32[((HEAP32[$80 >> 2] | 0) + 52 | 0) >> 2] | 0 | 0]($80) | 0), wasm2js_i32$5 = 1), wasm2js_i32$2 = HEAP32[((HEAP32[$75 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$2](wasm2js_i32$3 | 0, wasm2js_i32$4 | 0, wasm2js_i32$5 | 0) | 0)), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + $92 = HEAP32[((btAlignedObjectArray_btCompoundShapeChild___operator_5b_5d_28int_29_20const($6 + 20 | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0) + 64 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$92 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($92, HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0, HEAP32[($5 + 36 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $99 = HEAP32[($5 + 36 | 0) >> 2] | 0; + (((((wasm2js_i32$1 = $99, wasm2js_i32$2 = HEAP32[($5 + 16 | 0) >> 2] | 0), wasm2js_i32$5 = HEAP32[($5 + 12 | 0) >> 2] | 0), wasm2js_i32$4 = 1346455635), wasm2js_i32$3 = HEAP32[((btAlignedObjectArray_btCompoundShapeChild___operator_5b_5d_28int_29_20const($6 + 20 | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0) + 64 | 0) >> 2] | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$99 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0, wasm2js_i32$5 | 0, wasm2js_i32$4 | 0, wasm2js_i32$3 | 0); + } + $114 = HEAP32[((btAlignedObjectArray_btCompoundShapeChild___operator_5b_5d_28int_29_20const($6 + 20 | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0) + 68 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 68 | 0) >> 2] = $114; + btTransform__serializeFloat_28btTransformFloatData__29_20const(btAlignedObjectArray_btCompoundShapeChild___operator_5b_5d_28int_29_20const($6 + 20 | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + HEAP32[($5 + 20 | 0) >> 2] = (HEAP32[($5 + 20 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($5 + 24 | 0) >> 2] = (HEAP32[($5 + 24 | 0) >> 2] | 0) + 76 | 0; + continue label$3; + }; + } + $127 = HEAP32[($5 + 36 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$127 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($127, HEAP32[($5 + 28 | 0) >> 2] | 0, 83727, 1497453121, HEAP32[((HEAP32[($5 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0); + } + __stack_pointer = $5 + 48 | 0; + return 83613 | 0; + } + + function btTransform__serializeFloat_28btTransformFloatData__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btMatrix3x3__serializeFloat_28btMatrix3x3FloatData__29_20const($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + btVector3__serializeFloat_28btVector3FloatData__29_20const($5 + 48 | 0 | 0, (HEAP32[($4 + 8 | 0) >> 2] | 0) + 48 | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btMatrix3x3__serializeFloat_28btMatrix3x3FloatData__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$1 + } + btVector3__serializeFloat_28btVector3FloatData__29_20const($5 + ((HEAP32[($4 + 4 | 0) >> 2] | 0) << 4 | 0) | 0 | 0, (HEAP32[($4 + 8 | 0) >> 2] | 0) + ((HEAP32[($4 + 4 | 0) >> 2] | 0) << 4 | 0) | 0 | 0); + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedAllocator_btCompoundShapeChild_2c_2016u___deallocate_28btCompoundShapeChild__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedAllocator_btCompoundShapeChild_2c_2016u___allocate_28int_2c_20btCompoundShapeChild_20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(Math_imul(HEAP32[($5 + 8 | 0) >> 2] | 0, 80) | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function _GLOBAL__sub_I_btCompoundShape_cpp() { + __cxx_global_var_init_33(); + return; + } + + function __cxx_global_var_init_34() { + btInfMaskConverter__btInfMaskConverter_28int_29(114124 | 0, 2139095040 | 0) | 0; + return; + } + + function btConeShape__btConeShape_28float_2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + var $6 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAPF32[($5 + 24 | 0) >> 2] = $1; + HEAPF32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + btConvexInternalShape__btConvexInternalShape_28_29($6 | 0) | 0; + HEAP32[$6 >> 2] = 97972 + 8 | 0; + HEAPF32[($6 + 64 | 0) >> 2] = Math_fround(HEAPF32[($5 + 24 | 0) >> 2]); + HEAPF32[($6 + 68 | 0) >> 2] = Math_fround(HEAPF32[($5 + 20 | 0) >> 2]); + HEAP32[($6 + 4 | 0) >> 2] = 11; + btConeShape__setConeUpIndex_28int_29($6 | 0, 1 | 0); + btVector3__btVector3_28_29($5 + 4 | 0 | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[($6 + 64 | 0) >> 2]) / Math_fround(btSqrt_28float_29(Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[($6 + 64 | 0) >> 2]) * Math_fround(HEAPF32[($6 + 64 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($6 + 68 | 0) >> 2]) * Math_fround(HEAPF32[($6 + 68 | 0) >> 2])))))))), HEAPF32[(wasm2js_i32$0 + 60 | 0) >> 2] = wasm2js_f32$0; + __stack_pointer = $5 + 32 | 0; + return $6 | 0; + } + + function btConeShape__setConeUpIndex_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0, $6 = 0, $21 = Math_fround(0), $29 = Math_fround(0), $37 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + $6 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + switch ($6 | 0) { + case 0: + HEAP32[($5 + 72 | 0) >> 2] = 1; + HEAP32[($5 + 76 | 0) >> 2] = 0; + HEAP32[($5 + 80 | 0) >> 2] = 2; + break label$1; + case 1: + HEAP32[($5 + 72 | 0) >> 2] = 0; + HEAP32[($5 + 76 | 0) >> 2] = 1; + HEAP32[($5 + 80 | 0) >> 2] = 2; + break label$1; + case 2: + HEAP32[($5 + 72 | 0) >> 2] = 0; + HEAP32[($5 + 76 | 0) >> 2] = 2; + HEAP32[($5 + 80 | 0) >> 2] = 1; + break label$1; + default: + break label$2; + }; + } + __assert_fail(86177 | 0, 75023 | 0, 63 | 0, 66495 | 0); + wasm2js_trap(); + } + $21 = Math_fround(HEAPF32[($5 + 64 | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($5 + 36 | 0 | 0) | 0) + ((HEAP32[($5 + 72 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $21), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $29 = Math_fround(HEAPF32[($5 + 68 | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($5 + 36 | 0 | 0) | 0) + ((HEAP32[($5 + 76 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $29), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $37 = Math_fround(HEAPF32[($5 + 64 | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($5 + 36 | 0 | 0) | 0) + ((HEAP32[($5 + 80 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $37), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btConeShape__coneLocalSupport_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $31 = Math_fround(0), $92 = Math_fround(0), $99 = Math_fround(0), $113 = Math_fround(0), $127 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $1; + HEAP32[($5 + 24 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + HEAPF32[($5 + 20 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($6 + 68 | 0) >> 2]) * Math_fround(.5)); + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) + ((HEAP32[($6 + 76 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) > Math_fround(Math_fround(btVector3__length_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0)) * Math_fround(HEAPF32[($6 + 60 | 0) >> 2])) & 1 | 0)) { + break label$2 + } + btVector3__btVector3_28_29($0 | 0) | 0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($0 | 0) | 0) + ((HEAP32[($6 + 72 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $31 = Math_fround(HEAPF32[($5 + 20 | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($0 | 0) | 0) + ((HEAP32[($6 + 76 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $31), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($0 | 0) | 0) + ((HEAP32[($6 + 80 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + break label$1; + } + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btSqrt_28float_29(Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) + ((HEAP32[($6 + 72 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) + ((HEAP32[($6 + 72 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) + ((HEAP32[($6 + 80 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) + ((HEAP32[($6 + 80 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]))))))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + label$3 : { + if (!(Math_fround(HEAPF32[($5 + 16 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$3 + } + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($6 + 64 | 0) >> 2]) / Math_fround(HEAPF32[($5 + 16 | 0) >> 2])); + btVector3__btVector3_28_29($0 | 0) | 0; + $92 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) + ((HEAP32[($6 + 72 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($5 + 12 | 0) >> 2])); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($0 | 0) | 0) + ((HEAP32[($6 + 72 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $92), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $99 = Math_fround(-Math_fround(HEAPF32[($5 + 20 | 0) >> 2])); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($0 | 0) | 0) + ((HEAP32[($6 + 76 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $99), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $113 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) + ((HEAP32[($6 + 80 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($5 + 12 | 0) >> 2])); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($0 | 0) | 0) + ((HEAP32[($6 + 80 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $113), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + break label$1; + } + btVector3__btVector3_28_29($0 | 0) | 0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($0 | 0) | 0) + ((HEAP32[($6 + 72 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $127 = Math_fround(-Math_fround(HEAPF32[($5 + 20 | 0) >> 2])); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($0 | 0) | 0) + ((HEAP32[($6 + 76 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $127), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($0 | 0) | 0) + ((HEAP32[($6 + 80 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + } + __stack_pointer = $5 + 32 | 0; + return; + } + + function btConeShape__localGetSupportingVertexWithoutMargin_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $1; + HEAP32[($5 + 8 | 0) >> 2] = $2; + btConeShape__coneLocalSupport_28btVector3_20const__29_20const($0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function btConeShape__batchedUnitVectorGetSupportingVertexWithoutMargin_28btVector3_20const__2c_20btVector3__2c_20int_29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $29 = 0, $31 = 0, $7 = 0, $107 = 0, $120 = 0; + $6 = __stack_pointer - 48 | 0; + __stack_pointer = $6; + HEAP32[($6 + 44 | 0) >> 2] = $0; + HEAP32[($6 + 40 | 0) >> 2] = $1; + HEAP32[($6 + 36 | 0) >> 2] = $2; + HEAP32[($6 + 32 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 44 | 0) >> 2] | 0; + HEAP32[($6 + 28 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 32 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[($6 + 24 | 0) >> 2] = (HEAP32[($6 + 40 | 0) >> 2] | 0) + ((HEAP32[($6 + 28 | 0) >> 2] | 0) << 4 | 0) | 0; + btConeShape__coneLocalSupport_28btVector3_20const__29_20const($6 + 8 | 0 | 0, $7 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0); + $29 = (HEAP32[($6 + 36 | 0) >> 2] | 0) + ((HEAP32[($6 + 28 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 12 | 0) >> 2] | 0; + $107 = i64toi32_i32$0; + i64toi32_i32$0 = $29; + HEAP32[i64toi32_i32$0 >> 2] = $107; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $31 = 8; + i64toi32_i32$2 = ($6 + 8 | 0) + $31 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $120 = i64toi32_i32$1; + i64toi32_i32$1 = $29 + $31 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $120; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6 + 28 | 0) >> 2] = (HEAP32[($6 + 28 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $6 + 48 | 0; + return; + } + + function btConeShape__localGetSupportingVertex_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, $6 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $16 = 0, $17 = 0, $114 = 0, $118 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 64 | 0; + __stack_pointer = $5; + HEAP32[($5 + 60 | 0) >> 2] = $1; + HEAP32[($5 + 56 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 60 | 0) >> 2] | 0; + btConeShape__coneLocalSupport_28btVector3_20const__29_20const($0 | 0, $6 | 0, HEAP32[($5 + 56 | 0) >> 2] | 0 | 0); + label$1 : { + if (!(Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($6)) != Math_fround(0 | 0) & 1 | 0)) { + break label$1 + } + $16 = HEAP32[($5 + 56 | 0) >> 2] | 0; + $17 = 8; + i64toi32_i32$2 = $16 + $17 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $114 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 40 | 0) + $17 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $114; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $16; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $118 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 40 | 0) >> 2] = $118; + HEAP32[($5 + 44 | 0) >> 2] = i64toi32_i32$0; + label$2 : { + if (!(Math_fround(btVector3__length2_28_29_20const($5 + 40 | 0 | 0)) < Math_fround(1.4210854715202004e-14) & 1 | 0)) { + break label$2 + } + HEAPF32[($5 + 36 | 0) >> 2] = Math_fround(-1.0); + HEAPF32[($5 + 32 | 0) >> 2] = Math_fround(-1.0); + HEAPF32[($5 + 28 | 0) >> 2] = Math_fround(-1.0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 40 | 0 | 0, $5 + 36 | 0 | 0, $5 + 32 | 0 | 0, $5 + 28 | 0 | 0); + } + btVector3__normalize_28_29($5 + 40 | 0 | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($6))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + operator__28float_20const__2c_20btVector3_20const__29($5 + 12 | 0 | 0, $5 + 8 | 0 | 0, $5 + 40 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($0 | 0, $5 + 12 | 0 | 0) | 0; + } + __stack_pointer = $5 + 64 | 0; + return; + } + + function btConeShape__setLocalScaling_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $15 = Math_fround(0), $18 = 0, $42 = Math_fround(0), $49 = Math_fround(0), $52 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + HEAP32[($4 + 20 | 0) >> 2] = HEAP32[($5 + 76 | 0) >> 2] | 0; + HEAP32[($4 + 16 | 0) >> 2] = HEAP32[($5 + 72 | 0) >> 2] | 0; + HEAP32[($4 + 12 | 0) >> 2] = HEAP32[($5 + 80 | 0) >> 2] | 0; + $15 = Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0) + ((HEAP32[($4 + 20 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + $18 = btVector3__operator_20float__28_29($5 + 20 | 0 | 0) | 0; + HEAPF32[($5 + 68 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 68 | 0) >> 2]) * Math_fround($15 / Math_fround(HEAPF32[($18 + ((HEAP32[($4 + 20 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]))); + $42 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0) + ((HEAP32[($4 + 16 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) / Math_fround(HEAPF32[((btVector3__operator_20float__28_29($5 + 20 | 0 | 0) | 0) + ((HEAP32[($4 + 16 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])); + $49 = Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0) + ((HEAP32[($4 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + $52 = btVector3__operator_20float__28_29($5 + 20 | 0 | 0) | 0; + HEAPF32[($5 + 64 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 64 | 0) >> 2]) * Math_fround(Math_fround($42 + Math_fround($49 / Math_fround(HEAPF32[($52 + ((HEAP32[($4 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]))) / Math_fround(2.0))); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[($5 + 64 | 0) >> 2]) / Math_fround(btSqrt_28float_29(Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 64 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 64 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($5 + 68 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 68 | 0) >> 2])))))))), HEAPF32[(wasm2js_i32$0 + 60 | 0) >> 2] = wasm2js_f32$0; + btConvexInternalShape__setLocalScaling_28btVector3_20const__29($5 | 0, HEAP32[($4 + 24 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function btConeShape___btConeShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConvexInternalShape___btConvexInternalShape_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConeShape___btConeShape_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConeShape___btConeShape_28_29($4 | 0) | 0; + btConeShape__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btConeShape__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btConvexInternalShape__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 80 | 0) >> 2] | 0 | 0]($7, HEAP32[($6 + 8 | 0) >> 2] | 0, HEAP32[($6 + 4 | 0) >> 2] | 0, HEAP32[$6 >> 2] | 0); + __stack_pointer = $6 + 16 | 0; + return; + } + + function btConeShape__calculateLocalInertia_28float_2c_20btVector3__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0, i64toi32_i32$2 = 0, $121 = 0, $123 = 0, $385 = 0, $398 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 224 | 0; + __stack_pointer = $5; + HEAP32[($5 + 220 | 0) >> 2] = $0; + HEAPF32[($5 + 216 | 0) >> 2] = $1; + HEAP32[($5 + 212 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 220 | 0) >> 2] | 0; + btTransform__btTransform_28_29($5 + 148 | 0 | 0) | 0; + btTransform__setIdentity_28_29($5 + 148 | 0 | 0); + btVector3__btVector3_28_29($5 + 132 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 116 | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($6, $5 + 148 | 0, $5 + 132 | 0, $5 + 116 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 84 | 0 | 0, $5 + 116 | 0 | 0, $5 + 132 | 0 | 0); + HEAPF32[($5 + 80 | 0) >> 2] = Math_fround(.5); + operator__28btVector3_20const__2c_20float_20const__29($5 + 100 | 0 | 0, $5 + 84 | 0 | 0, $5 + 80 | 0 | 0); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($6))), HEAPF32[(wasm2js_i32$0 + 76 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(2.0) * Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($5 + 100 | 0 | 0) | 0) >> 2]) + Math_fround(HEAPF32[($5 + 76 | 0) >> 2])))), HEAPF32[(wasm2js_i32$0 + 72 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(2.0) * Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($5 + 100 | 0 | 0) | 0) >> 2]) + Math_fround(HEAPF32[($5 + 76 | 0) >> 2])))), HEAPF32[(wasm2js_i32$0 + 68 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(2.0) * Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($5 + 100 | 0 | 0) | 0) >> 2]) + Math_fround(HEAPF32[($5 + 76 | 0) >> 2])))), HEAPF32[(wasm2js_i32$0 + 64 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($5 + 60 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 72 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 72 | 0) >> 2])); + HEAPF32[($5 + 56 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 68 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 68 | 0) >> 2])); + HEAPF32[($5 + 52 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 64 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 64 | 0) >> 2])); + HEAPF32[($5 + 48 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 216 | 0) >> 2]) * Math_fround(.0833333283662796)); + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 56 | 0) >> 2]) + Math_fround(HEAPF32[($5 + 52 | 0) >> 2])); + HEAPF32[($5 + 8 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 60 | 0) >> 2]) + Math_fround(HEAPF32[($5 + 52 | 0) >> 2])); + HEAPF32[($5 + 4 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 60 | 0) >> 2]) + Math_fround(HEAPF32[($5 + 56 | 0) >> 2])); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 16 | 0 | 0, $5 + 12 | 0 | 0, $5 + 8 | 0 | 0, $5 + 4 | 0 | 0) | 0; + operator__28float_20const__2c_20btVector3_20const__29($5 + 32 | 0 | 0, $5 + 48 | 0 | 0, $5 + 16 | 0 | 0); + $121 = HEAP32[($5 + 212 | 0) >> 2] | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 32 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 36 | 0) >> 2] | 0; + $385 = i64toi32_i32$0; + i64toi32_i32$0 = $121; + HEAP32[i64toi32_i32$0 >> 2] = $385; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $123 = 8; + i64toi32_i32$2 = ($5 + 32 | 0) + $123 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $398 = i64toi32_i32$1; + i64toi32_i32$1 = $121 + $123 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $398; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $5 + 224 | 0; + return; + } + + function btConeShape__getName_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 81789 | 0; + } + + function btConeShape__getAnisotropicRollingFrictionDirection_28_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $1; + HEAPF32[($4 + 8 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 4 | 0) >> 2] = Math_fround(1.0); + HEAPF32[$4 >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $4 + 8 | 0 | 0, $4 + 4 | 0 | 0, $4 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btConeShape__calculateSerializeBufferSize_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 60 | 0; + } + + function btConeShape__serialize_28void__2c_20btSerializer__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + btConvexInternalShape__serialize_28void__2c_20btSerializer__29_20const($6 | 0, HEAP32[$5 >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[$5 >> 2] | 0) + 52 | 0) >> 2] = HEAP32[($6 + 76 | 0) >> 2] | 0; + HEAP8[((HEAP32[$5 >> 2] | 0) + 56 | 0) >> 0] = 0; + HEAP8[((HEAP32[$5 >> 2] | 0) + 57 | 0) >> 0] = 0; + HEAP8[((HEAP32[$5 >> 2] | 0) + 58 | 0) >> 0] = 0; + HEAP8[((HEAP32[$5 >> 2] | 0) + 59 | 0) >> 0] = 0; + __stack_pointer = $5 + 16 | 0; + return 83555 | 0; + } + + function _GLOBAL__sub_I_btConeShape_cpp() { + __cxx_global_var_init_34(); + return; + } + + function __cxx_global_var_init_35() { + btInfMaskConverter__btInfMaskConverter_28int_29(114128 | 0, 2139095040 | 0) | 0; + return; + } + + function btConvexInternalShape__btConvexInternalShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConvexShape__btConvexShape_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 98100 + 8 | 0; + HEAPF32[($3 + 8 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($3 + 4 | 0) >> 2] = Math_fround(1.0); + HEAPF32[$3 >> 2] = Math_fround(1.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 20 | 0 | 0, $3 + 8 | 0 | 0, $3 + 4 | 0 | 0, $3 | 0) | 0; + btVector3__btVector3_28_29($4 + 36 | 0 | 0) | 0; + HEAPF32[($4 + 52 | 0) >> 2] = Math_fround(.03999999910593033); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConvexInternalShape__setLocalScaling_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $11 = 0, $13 = 0, $5 = 0, $46 = 0, $59 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + btVector3__absolute_28_29_20const($4 + 8 | 0 | 0, HEAP32[($4 + 24 | 0) >> 2] | 0 | 0); + $11 = $5 + 20 | 0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($4 + 12 | 0) >> 2] | 0; + $46 = i64toi32_i32$0; + i64toi32_i32$0 = $11; + HEAP32[i64toi32_i32$0 >> 2] = $46; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $13 = 8; + i64toi32_i32$2 = ($4 + 8 | 0) + $13 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $59 = i64toi32_i32$1; + i64toi32_i32$1 = $11 + $13 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $59; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $4 + 32 | 0; + return; + } + + function btVector3__absolute_28_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[$5 >> 2]))))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[($5 + 8 | 0) >> 2]))))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $4 + 8 | 0 | 0, $4 + 4 | 0 | 0, $4 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btConvexInternalShape__getAabbSlow_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $118 = 0, $79 = Math_fround(0), $95 = 0, $390 = 0, $394 = 0, $137 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 160 | 0; + __stack_pointer = $6; + HEAP32[($6 + 156 | 0) >> 2] = $0; + HEAP32[($6 + 152 | 0) >> 2] = $1; + HEAP32[($6 + 148 | 0) >> 2] = $2; + HEAP32[($6 + 144 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 156 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($7))), HEAPF32[(wasm2js_i32$0 + 140 | 0) >> 2] = wasm2js_f32$0; + HEAP32[($6 + 136 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 136 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$1 + } + HEAPF32[($6 + 116 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 112 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 108 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 120 | 0 | 0, $6 + 116 | 0 | 0, $6 + 112 | 0 | 0, $6 + 108 | 0 | 0) | 0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($6 + 120 | 0 | 0) | 0) + ((HEAP32[($6 + 136 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = Math_fround(1.0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20btMatrix3x3_20const__29($6 + 76 | 0 | 0, $6 + 120 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($6 + 152 | 0) >> 2] | 0 | 0) | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($6 + 92 | 0, $7, $6 + 76 | 0); + btTransform__operator_28_29_28btVector3_20const__29_20const($6 + 56 | 0 | 0, HEAP32[($6 + 152 | 0) >> 2] | 0 | 0, $6 + 92 | 0 | 0); + $79 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 56 | 0 | 0) | 0) + ((HEAP32[($6 + 136 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) + Math_fround(HEAPF32[($6 + 140 | 0) >> 2])); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29(HEAP32[($6 + 144 | 0) >> 2] | 0 | 0) | 0) + ((HEAP32[($6 + 136 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $79), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($6 + 120 | 0 | 0) | 0) + ((HEAP32[($6 + 136 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = Math_fround(-1.0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $95 = HEAP32[($6 + 152 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btMatrix3x3_20const__29($6 + 8 | 0 | 0, $6 + 120 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($6 + 152 | 0) >> 2] | 0 | 0) | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($6 + 24 | 0, $7, $6 + 8 | 0); + btTransform__operator_28_29_28btVector3_20const__29_20const($6 + 40 | 0 | 0, $95 | 0, $6 + 24 | 0 | 0); + $118 = 8; + i64toi32_i32$2 = ($6 + 40 | 0) + $118 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $390 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 56 | 0) + $118 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $390; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 40 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 44 | 0) >> 2] | 0; + $394 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 56 | 0) >> 2] = $394; + HEAP32[($6 + 60 | 0) >> 2] = i64toi32_i32$0; + $137 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 56 | 0 | 0) | 0) + ((HEAP32[($6 + 136 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) - Math_fround(HEAPF32[($6 + 140 | 0) >> 2])); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29(HEAP32[($6 + 148 | 0) >> 2] | 0 | 0) | 0) + ((HEAP32[($6 + 136 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $137), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP32[($6 + 136 | 0) >> 2] = (HEAP32[($6 + 136 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $6 + 160 | 0; + return; + } + + function btConvexInternalShape__localGetSupportingVertex_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $18 = 0, $19 = 0, $121 = 0, $125 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 64 | 0; + __stack_pointer = $5; + HEAP32[($5 + 60 | 0) >> 2] = $1; + HEAP32[($5 + 56 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 60 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 68 | 0) >> 2] | 0 | 0]($0, $6, HEAP32[($5 + 56 | 0) >> 2] | 0); + label$1 : { + if (!(Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($6)) != Math_fround(0 | 0) & 1 | 0)) { + break label$1 + } + $18 = HEAP32[($5 + 56 | 0) >> 2] | 0; + $19 = 8; + i64toi32_i32$2 = $18 + $19 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $121 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 40 | 0) + $19 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $121; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $18; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $125 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 40 | 0) >> 2] = $125; + HEAP32[($5 + 44 | 0) >> 2] = i64toi32_i32$0; + label$2 : { + if (!(Math_fround(btVector3__length2_28_29_20const($5 + 40 | 0 | 0)) < Math_fround(1.4210854715202004e-14) & 1 | 0)) { + break label$2 + } + HEAPF32[($5 + 36 | 0) >> 2] = Math_fround(-1.0); + HEAPF32[($5 + 32 | 0) >> 2] = Math_fround(-1.0); + HEAPF32[($5 + 28 | 0) >> 2] = Math_fround(-1.0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 40 | 0 | 0, $5 + 36 | 0 | 0, $5 + 32 | 0 | 0, $5 + 28 | 0 | 0); + } + btVector3__normalize_28_29($5 + 40 | 0 | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($6))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + operator__28float_20const__2c_20btVector3_20const__29($5 + 12 | 0 | 0, $5 + 8 | 0 | 0, $5 + 40 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($0 | 0, $5 + 12 | 0 | 0) | 0; + } + __stack_pointer = $5 + 64 | 0; + return; + } + + function btConvexInternalShape___btConvexInternalShape_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function _GLOBAL__sub_I_btConvexInternalShape_cpp() { + __cxx_global_var_init_35(); + return; + } + + function __cxx_global_var_init_36() { + btInfMaskConverter__btInfMaskConverter_28int_29(114132 | 0, 2139095040 | 0) | 0; + return; + } + + function btConvexShape__btConvexShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionShape__btCollisionShape_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 98236 + 8 | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConvexShape___btConvexShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionShape___btCollisionShape_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConvexShape___btConvexShape_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btConvexShape__project_28btTransform_20const__2c_20btVector3_20const__2c_20float__2c_20float__2c_20btVector3__2c_20btVector3__29_20const($0, $1, $2, $3, $4, $5, $6) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + var $9 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $10 = 0, $65 = 0, $67 = 0, $73 = 0, $75 = 0, $95 = 0, $97 = 0, $103 = 0, $105 = 0, $17 = 0, $32 = 0, $57 = Math_fround(0), $63 = Math_fround(0), $246 = 0, $259 = 0, $265 = 0, $278 = 0, $320 = 0, $333 = 0, $339 = 0, $352 = 0; + $9 = __stack_pointer - 128 | 0; + __stack_pointer = $9; + HEAP32[($9 + 124 | 0) >> 2] = $0; + HEAP32[($9 + 120 | 0) >> 2] = $1; + HEAP32[($9 + 116 | 0) >> 2] = $2; + HEAP32[($9 + 112 | 0) >> 2] = $3; + HEAP32[($9 + 108 | 0) >> 2] = $4; + HEAP32[($9 + 104 | 0) >> 2] = $5; + HEAP32[($9 + 100 | 0) >> 2] = $6; + $10 = HEAP32[($9 + 124 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btMatrix3x3_20const__29($9 + 84 | 0 | 0, HEAP32[($9 + 116 | 0) >> 2] | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($9 + 120 | 0) >> 2] | 0 | 0) | 0 | 0); + $17 = HEAP32[($9 + 120 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$10 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($9 + 52 | 0, $10, $9 + 84 | 0); + btTransform__operator_28_29_28btVector3_20const__29_20const($9 + 68 | 0 | 0, $17 | 0, $9 + 52 | 0 | 0); + $32 = HEAP32[($9 + 120 | 0) >> 2] | 0; + operator__28btVector3_20const__29($9 + 4 | 0 | 0, $9 + 84 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$10 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($9 + 20 | 0, $10, $9 + 4 | 0); + btTransform__operator_28_29_28btVector3_20const__29_20const($9 + 36 | 0 | 0, $32 | 0, $9 + 20 | 0 | 0); + $57 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($9 + 68 | 0 | 0, HEAP32[($9 + 116 | 0) >> 2] | 0 | 0)); + HEAPF32[(HEAP32[($9 + 112 | 0) >> 2] | 0) >> 2] = $57; + $63 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($9 + 36 | 0 | 0, HEAP32[($9 + 116 | 0) >> 2] | 0 | 0)); + HEAPF32[(HEAP32[($9 + 108 | 0) >> 2] | 0) >> 2] = $63; + $65 = HEAP32[($9 + 100 | 0) >> 2] | 0; + i64toi32_i32$2 = $9; + i64toi32_i32$0 = HEAP32[($9 + 36 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 40 | 0) >> 2] | 0; + $246 = i64toi32_i32$0; + i64toi32_i32$0 = $65; + HEAP32[i64toi32_i32$0 >> 2] = $246; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $67 = 8; + i64toi32_i32$2 = ($9 + 36 | 0) + $67 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $259 = i64toi32_i32$1; + i64toi32_i32$1 = $65 + $67 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $259; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $73 = HEAP32[($9 + 104 | 0) >> 2] | 0; + i64toi32_i32$2 = $9; + i64toi32_i32$0 = HEAP32[($9 + 68 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 72 | 0) >> 2] | 0; + $265 = i64toi32_i32$0; + i64toi32_i32$0 = $73; + HEAP32[i64toi32_i32$0 >> 2] = $265; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $75 = 8; + i64toi32_i32$2 = ($9 + 68 | 0) + $75 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $278 = i64toi32_i32$1; + i64toi32_i32$1 = $73 + $75 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $278; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + label$1 : { + if (!(Math_fround(HEAPF32[(HEAP32[($9 + 112 | 0) >> 2] | 0) >> 2]) > Math_fround(HEAPF32[(HEAP32[($9 + 108 | 0) >> 2] | 0) >> 2]) & 1 | 0)) { + break label$1 + } + HEAPF32[$9 >> 2] = Math_fround(HEAPF32[(HEAP32[($9 + 112 | 0) >> 2] | 0) >> 2]); + HEAPF32[(HEAP32[($9 + 112 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[(HEAP32[($9 + 108 | 0) >> 2] | 0) >> 2]); + HEAPF32[(HEAP32[($9 + 108 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[$9 >> 2]); + $95 = HEAP32[($9 + 100 | 0) >> 2] | 0; + i64toi32_i32$2 = $9; + i64toi32_i32$0 = HEAP32[($9 + 68 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 72 | 0) >> 2] | 0; + $320 = i64toi32_i32$0; + i64toi32_i32$0 = $95; + HEAP32[i64toi32_i32$0 >> 2] = $320; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $97 = 8; + i64toi32_i32$2 = ($9 + 68 | 0) + $97 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $333 = i64toi32_i32$1; + i64toi32_i32$1 = $95 + $97 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $333; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $103 = HEAP32[($9 + 104 | 0) >> 2] | 0; + i64toi32_i32$2 = $9; + i64toi32_i32$0 = HEAP32[($9 + 36 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 40 | 0) >> 2] | 0; + $339 = i64toi32_i32$0; + i64toi32_i32$0 = $103; + HEAP32[i64toi32_i32$0 >> 2] = $339; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $105 = 8; + i64toi32_i32$2 = ($9 + 36 | 0) + $105 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $352 = i64toi32_i32$1; + i64toi32_i32$1 = $103 + $105 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $352; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + __stack_pointer = $9 + 128 | 0; + return; + } + + function btConvexShape__localGetSupportVertexWithoutMarginNonVirtual_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $6 = 0, $230 = 0, $7 = 0, $100 = 0, $101 = 0, $121 = 0, $122 = 0, $141 = 0, $142 = 0, $257 = Math_fround(0), $304 = 0, $322 = Math_fround(0), $387 = 0, $462 = 0, $484 = 0, $521 = 0, $543 = 0, $817 = 0, $821 = 0, $863 = 0, $867 = 0, $235 = Math_fround(0), $278 = Math_fround(0), $299 = Math_fround(0), $1410 = 0, $1414 = 0, $453 = Math_fround(0), $1555 = 0, $1559 = 0, $1604 = 0, $1608 = 0, $512 = Math_fround(0), $1677 = 0, $1681 = 0, $1726 = 0, $1730 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 400 | 0; + __stack_pointer = $5; + HEAP32[($5 + 396 | 0) >> 2] = $1; + HEAP32[($5 + 392 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 396 | 0) >> 2] | 0; + $7 = HEAP32[($6 + 4 | 0) >> 2] | 0; + label$1 : { + label$2 : { + switch ($7 | 0) { + case 8: + HEAPF32[($5 + 388 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 384 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 380 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $5 + 388 | 0 | 0, $5 + 384 | 0 | 0, $5 + 380 | 0 | 0) | 0; + break label$1; + case 0: + HEAP32[($5 + 376 | 0) >> 2] = $6; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btConvexInternalShape__getImplicitShapeDimensions_28_29_20const(HEAP32[($5 + 376 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 372 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btFsel_28float_2c_20float_2c_20float_29(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 392 | 0) >> 2] | 0 | 0) | 0) >> 2])), Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 372 | 0) >> 2] | 0 | 0) | 0) >> 2])), Math_fround(Math_fround(-Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 372 | 0) >> 2] | 0 | 0) | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 368 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btFsel_28float_2c_20float_2c_20float_29(Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 392 | 0) >> 2] | 0 | 0) | 0) >> 2])), Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 372 | 0) >> 2] | 0 | 0) | 0) >> 2])), Math_fround(Math_fround(-Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 372 | 0) >> 2] | 0 | 0) | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 364 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btFsel_28float_2c_20float_2c_20float_29(Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 392 | 0) >> 2] | 0 | 0) | 0) >> 2])), Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 372 | 0) >> 2] | 0 | 0) | 0) >> 2])), Math_fround(Math_fround(-Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 372 | 0) >> 2] | 0 | 0) | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 360 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $5 + 368 | 0 | 0, $5 + 364 | 0 | 0, $5 + 360 | 0 | 0) | 0; + break label$1; + case 1: + HEAP32[($5 + 356 | 0) >> 2] = $6; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 340 | 0 | 0, btVector3__getX_28_29_20const(HEAP32[($5 + 392 | 0) >> 2] | 0 | 0) | 0 | 0, btVector3__getY_28_29_20const(HEAP32[($5 + 392 | 0) >> 2] | 0 | 0) | 0 | 0, btVector3__getZ_28_29_20const(HEAP32[($5 + 392 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + HEAP32[($5 + 336 | 0) >> 2] = (HEAP32[($5 + 356 | 0) >> 2] | 0) + 64 | 0; + btVector3__dot3_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29_20const($5 + 320 | 0 | 0, $5 + 340 | 0 | 0, HEAP32[($5 + 336 | 0) >> 2] | 0 | 0, (HEAP32[($5 + 336 | 0) >> 2] | 0) + 16 | 0 | 0, (HEAP32[($5 + 336 | 0) >> 2] | 0) + 32 | 0 | 0); + $100 = (HEAP32[($5 + 336 | 0) >> 2] | 0) + ((btVector3__maxAxis_28_29_20const($5 + 320 | 0 | 0) | 0) << 4 | 0) | 0; + $101 = 8; + i64toi32_i32$2 = $100 + $101 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $817 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 304 | 0) + $101 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $817; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $100; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $821 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 304 | 0) >> 2] = $821; + HEAP32[($5 + 308 | 0) >> 2] = i64toi32_i32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, btVector3__getX_28_29_20const($5 + 304 | 0 | 0) | 0 | 0, btVector3__getY_28_29_20const($5 + 304 | 0 | 0) | 0 | 0, btVector3__getZ_28_29_20const($5 + 304 | 0 | 0) | 0 | 0) | 0; + break label$1; + case 13: + HEAP32[($5 + 300 | 0) >> 2] = $6; + $121 = btConvexInternalShape__getImplicitShapeDimensions_28_29_20const(HEAP32[($5 + 300 | 0) >> 2] | 0 | 0) | 0; + $122 = 8; + i64toi32_i32$2 = $121 + $122 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $863 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 280 | 0) + $122 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $863; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $121; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $867 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 280 | 0) >> 2] = $867; + HEAP32[($5 + 284 | 0) >> 2] = i64toi32_i32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 264 | 0 | 0, btVector3__getX_28_29_20const(HEAP32[($5 + 392 | 0) >> 2] | 0 | 0) | 0 | 0, btVector3__getY_28_29_20const(HEAP32[($5 + 392 | 0) >> 2] | 0 | 0) | 0 | 0, btVector3__getZ_28_29_20const(HEAP32[($5 + 392 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btCylinderShape__getUpAxis_28_29_20const(HEAP32[($5 + 300 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 260 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($5 + 256 | 0) >> 2] = 1; + HEAP32[($5 + 252 | 0) >> 2] = 0; + $141 = 2; + HEAP32[($5 + 248 | 0) >> 2] = $141; + $142 = HEAP32[($5 + 260 | 0) >> 2] | 0; + label$10 : { + label$11 : { + switch ($142 | 0) { + case 0: + HEAP32[($5 + 256 | 0) >> 2] = 1; + HEAP32[($5 + 252 | 0) >> 2] = 0; + HEAP32[($5 + 248 | 0) >> 2] = 2; + break label$10; + case 1: + HEAP32[($5 + 256 | 0) >> 2] = 0; + HEAP32[($5 + 252 | 0) >> 2] = 1; + HEAP32[($5 + 248 | 0) >> 2] = 2; + break label$10; + case 2: + HEAP32[($5 + 256 | 0) >> 2] = 0; + HEAP32[($5 + 252 | 0) >> 2] = 2; + HEAP32[($5 + 248 | 0) >> 2] = 1; + break label$10; + default: + break label$11; + }; + } + __assert_fail(86177 | 0, 74260 | 0, 200 | 0, 77337 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($5 + 280 | 0 | 0) | 0) + ((HEAP32[($5 + 256 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 244 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($5 + 280 | 0 | 0) | 0) + ((HEAP32[($5 + 260 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 240 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28_29($5 + 224 | 0 | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btSqrt_28float_29(Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($5 + 264 | 0 | 0) | 0) + ((HEAP32[($5 + 256 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($5 + 264 | 0 | 0) | 0) + ((HEAP32[($5 + 256 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($5 + 264 | 0 | 0) | 0) + ((HEAP32[($5 + 248 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($5 + 264 | 0 | 0) | 0) + ((HEAP32[($5 + 248 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]))))))), HEAPF32[(wasm2js_i32$0 + 216 | 0) >> 2] = wasm2js_f32$0; + label$15 : { + if (!(Math_fround(HEAPF32[($5 + 216 | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0)) { + break label$15 + } + HEAPF32[($5 + 220 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 244 | 0) >> 2]) / Math_fround(HEAPF32[($5 + 216 | 0) >> 2])); + $230 = 2; + $235 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($5 + 264 | 0 | 0) | 0) + ((HEAP32[($5 + 256 | 0) >> 2] | 0) << $230 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($5 + 220 | 0) >> 2])); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($5 + 224 | 0 | 0) | 0) + ((HEAP32[($5 + 256 | 0) >> 2] | 0) << $230 | 0) | 0, wasm2js_f32$0 = $235), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + label$16 : { + label$17 : { + if (!(+Math_fround(HEAPF32[((btVector3__operator_20float__28_29($5 + 264 | 0 | 0) | 0) + ((HEAP32[($5 + 252 | 0) >> 2] | 0) << $230 | 0) | 0) >> 2]) < +(0 | 0) & 1 | 0)) { + break label$17 + } + $257 = Math_fround(-Math_fround(HEAPF32[($5 + 240 | 0) >> 2])); + break label$16; + } + $257 = Math_fround(HEAPF32[($5 + 240 | 0) >> 2]); + } + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($5 + 224 | 0 | 0) | 0) + ((HEAP32[($5 + 252 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $257), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $278 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($5 + 264 | 0 | 0) | 0) + ((HEAP32[($5 + 248 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($5 + 220 | 0) >> 2])); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($5 + 224 | 0 | 0) | 0) + ((HEAP32[($5 + 248 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $278), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, btVector3__getX_28_29_20const($5 + 224 | 0 | 0) | 0 | 0, btVector3__getY_28_29_20const($5 + 224 | 0 | 0) | 0 | 0, btVector3__getZ_28_29_20const($5 + 224 | 0 | 0) | 0 | 0) | 0; + break label$1; + } + $299 = Math_fround(HEAPF32[($5 + 244 | 0) >> 2]); + $304 = 2; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($5 + 224 | 0 | 0) | 0) + ((HEAP32[($5 + 256 | 0) >> 2] | 0) << $304 | 0) | 0, wasm2js_f32$0 = $299), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + label$18 : { + label$19 : { + if (!(+Math_fround(HEAPF32[((btVector3__operator_20float__28_29($5 + 264 | 0 | 0) | 0) + ((HEAP32[($5 + 252 | 0) >> 2] | 0) << $304 | 0) | 0) >> 2]) < +(0 | 0) & 1 | 0)) { + break label$19 + } + $322 = Math_fround(-Math_fround(HEAPF32[($5 + 240 | 0) >> 2])); + break label$18; + } + $322 = Math_fround(HEAPF32[($5 + 240 | 0) >> 2]); + } + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($5 + 224 | 0 | 0) | 0) + ((HEAP32[($5 + 252 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $322), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($5 + 224 | 0 | 0) | 0) + ((HEAP32[($5 + 248 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, btVector3__getX_28_29_20const($5 + 224 | 0 | 0) | 0 | 0, btVector3__getY_28_29_20const($5 + 224 | 0 | 0) | 0 | 0, btVector3__getZ_28_29_20const($5 + 224 | 0 | 0) | 0 | 0) | 0; + break label$1; + case 10: + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 200 | 0 | 0, btVector3__getX_28_29_20const(HEAP32[($5 + 392 | 0) >> 2] | 0 | 0) | 0 | 0, btVector3__getY_28_29_20const(HEAP32[($5 + 392 | 0) >> 2] | 0 | 0) | 0 | 0, btVector3__getZ_28_29_20const(HEAP32[($5 + 392 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + HEAP32[($5 + 196 | 0) >> 2] = $6; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btCapsuleShape__getHalfHeight_28_29_20const(HEAP32[($5 + 196 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 192 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btCapsuleShape__getUpAxis_28_29_20const(HEAP32[($5 + 196 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 188 | 0) >> 2] = wasm2js_i32$1; + HEAPF32[($5 + 164 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 160 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 156 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 168 | 0 | 0, $5 + 164 | 0 | 0, $5 + 160 | 0 | 0, $5 + 156 | 0 | 0) | 0; + HEAPF32[($5 + 152 | 0) >> 2] = Math_fround(-999999984306749440.0); + $387 = 8; + i64toi32_i32$2 = ($5 + 200 | 0) + $387 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1410 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 136 | 0) + $387 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1410; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $5; + i64toi32_i32$1 = HEAP32[($5 + 200 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 204 | 0) >> 2] | 0; + $1414 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 136 | 0) >> 2] = $1414; + HEAP32[($5 + 140 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($5 + 136 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 132 | 0) >> 2] = wasm2js_f32$0; + label$20 : { + label$21 : { + if (!(Math_fround(HEAPF32[($5 + 132 | 0) >> 2]) < Math_fround(1.4210854715202004e-14) & 1 | 0)) { + break label$21 + } + HEAPF32[($5 + 128 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($5 + 124 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 120 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 136 | 0 | 0, $5 + 128 | 0 | 0, $5 + 124 | 0 | 0, $5 + 120 | 0 | 0); + break label$20; + } + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(1.0) / Math_fround(btSqrt_28float_29(Math_fround(Math_fround(HEAPF32[($5 + 132 | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 116 | 0) >> 2] = wasm2js_f32$0; + btVector3__operator___28float_20const__29_1($5 + 136 | 0 | 0, $5 + 116 | 0 | 0) | 0; + } + btVector3__btVector3_28_29($5 + 96 | 0 | 0) | 0; + HEAPF32[($5 + 72 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 68 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 64 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 76 | 0 | 0, $5 + 72 | 0 | 0, $5 + 68 | 0 | 0, $5 + 64 | 0 | 0) | 0; + $453 = Math_fround(HEAPF32[($5 + 192 | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($5 + 76 | 0 | 0) | 0) + ((HEAP32[($5 + 188 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $453), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $462 = 8; + i64toi32_i32$2 = ($5 + 76 | 0) + $462 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1555 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 96 | 0) + $462 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1555; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $5; + i64toi32_i32$1 = HEAP32[($5 + 76 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 80 | 0) >> 2] | 0; + $1559 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 96 | 0) >> 2] = $1559; + HEAP32[($5 + 100 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($5 + 136 | 0 | 0, $5 + 96 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 92 | 0) >> 2] = wasm2js_f32$0; + label$22 : { + if (!(Math_fround(HEAPF32[($5 + 92 | 0) >> 2]) > Math_fround(HEAPF32[($5 + 152 | 0) >> 2]) & 1 | 0)) { + break label$22 + } + HEAPF32[($5 + 152 | 0) >> 2] = Math_fround(HEAPF32[($5 + 92 | 0) >> 2]); + $484 = 8; + i64toi32_i32$2 = ($5 + 96 | 0) + $484 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1604 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 168 | 0) + $484 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1604; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $5; + i64toi32_i32$1 = HEAP32[($5 + 96 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 100 | 0) >> 2] | 0; + $1608 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 168 | 0) >> 2] = $1608; + HEAP32[($5 + 172 | 0) >> 2] = i64toi32_i32$0; + } + HEAPF32[($5 + 44 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 40 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 36 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 48 | 0 | 0, $5 + 44 | 0 | 0, $5 + 40 | 0 | 0, $5 + 36 | 0 | 0) | 0; + $512 = Math_fround(-Math_fround(HEAPF32[($5 + 192 | 0) >> 2])); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($5 + 48 | 0 | 0) | 0) + ((HEAP32[($5 + 188 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $512), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $521 = 8; + i64toi32_i32$2 = ($5 + 48 | 0) + $521 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1677 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 96 | 0) + $521 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1677; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $5; + i64toi32_i32$1 = HEAP32[($5 + 48 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 52 | 0) >> 2] | 0; + $1681 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 96 | 0) >> 2] = $1681; + HEAP32[($5 + 100 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($5 + 136 | 0 | 0, $5 + 96 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 92 | 0) >> 2] = wasm2js_f32$0; + label$23 : { + if (!(Math_fround(HEAPF32[($5 + 92 | 0) >> 2]) > Math_fround(HEAPF32[($5 + 152 | 0) >> 2]) & 1 | 0)) { + break label$23 + } + HEAPF32[($5 + 152 | 0) >> 2] = Math_fround(HEAPF32[($5 + 92 | 0) >> 2]); + $543 = 8; + i64toi32_i32$2 = ($5 + 96 | 0) + $543 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1726 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 168 | 0) + $543 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1726; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $5; + i64toi32_i32$1 = HEAP32[($5 + 96 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 100 | 0) >> 2] | 0; + $1730 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 168 | 0) >> 2] = $1730; + HEAP32[($5 + 172 | 0) >> 2] = i64toi32_i32$0; + } + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, btVector3__getX_28_29_20const($5 + 168 | 0 | 0) | 0 | 0, btVector3__getY_28_29_20const($5 + 168 | 0 | 0) | 0 | 0, btVector3__getZ_28_29_20const($5 + 168 | 0 | 0) | 0 | 0) | 0; + break label$1; + case 5: + HEAP32[($5 + 32 | 0) >> 2] = $6; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btConvexPointCloudShape__getUnscaledPoints_28_29(HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btConvexPointCloudShape__getNumPoints_28_29_20const(HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_i32$1; + convexHullSupport_28btVector3_20const__2c_20btVector3_20const__2c_20int_2c_20btVector3_20const__29($0 | 0, HEAP32[($5 + 392 | 0) >> 2] | 0 | 0, HEAP32[($5 + 28 | 0) >> 2] | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0, btConvexInternalShape__getLocalScalingNV_28_29_20const(HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0 | 0); + break label$1; + case 4: + HEAP32[($5 + 20 | 0) >> 2] = $6; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btConvexHullShape__getUnscaledPoints_28_29(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btConvexHullShape__getNumPoints_28_29_20const(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + convexHullSupport_28btVector3_20const__2c_20btVector3_20const__2c_20int_2c_20btVector3_20const__29($0 | 0, HEAP32[($5 + 392 | 0) >> 2] | 0 | 0, HEAP32[($5 + 16 | 0) >> 2] | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0, btConvexInternalShape__getLocalScalingNV_28_29_20const(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0 | 0); + break label$1; + default: + break label$2; + }; + } + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 68 | 0) >> 2] | 0 | 0]($0, $6, HEAP32[($5 + 392 | 0) >> 2] | 0); + } + __stack_pointer = $5 + 400 | 0; + return; + } + + function btConvexPointCloudShape__getUnscaledPoints_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 100 | 0) >> 2] | 0 | 0; + } + + function btConvexPointCloudShape__getNumPoints_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 104 | 0) >> 2] | 0 | 0; + } + + function btConvexInternalShape__getLocalScalingNV_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 20 | 0 | 0; + } + + function convexHullSupport_28btVector3_20const__2c_20btVector3_20const__2c_20int_2c_20btVector3_20const__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $7 = __stack_pointer - 48 | 0; + __stack_pointer = $7; + HEAP32[($7 + 44 | 0) >> 2] = $1; + HEAP32[($7 + 40 | 0) >> 2] = $2; + HEAP32[($7 + 36 | 0) >> 2] = $3; + HEAP32[($7 + 32 | 0) >> 2] = $4; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($7 + 16 | 0 | 0, HEAP32[($7 + 44 | 0) >> 2] | 0 | 0, HEAP32[($7 + 32 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btVector3__maxDot_28btVector3_20const__2c_20long_2c_20float__29_20const($7 + 16 | 0 | 0, HEAP32[($7 + 40 | 0) >> 2] | 0 | 0, HEAP32[($7 + 36 | 0) >> 2] | 0 | 0, $7 + 12 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if ((HEAP32[($7 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(86080 | 0, 74260 | 0, 123 | 0, 67460 | 0); + wasm2js_trap(); + } + operator__28btVector3_20const__2c_20btVector3_20const__29_1($0 | 0, (HEAP32[($7 + 40 | 0) >> 2] | 0) + ((HEAP32[($7 + 8 | 0) >> 2] | 0) << 4 | 0) | 0 | 0, HEAP32[($7 + 32 | 0) >> 2] | 0 | 0); + __stack_pointer = $7 + 48 | 0; + return; + } + + function btConvexHullShape__getUnscaledPoints_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $8 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $8 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29((HEAP32[($3 + 12 | 0) >> 2] | 0) + 100 | 0 | 0, 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $8 | 0; + } + + function btConvexHullShape__getNumPoints_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $7 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $7 = btAlignedObjectArray_btVector3___size_28_29_20const((HEAP32[($3 + 12 | 0) >> 2] | 0) + 100 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $7 | 0; + } + + function btVector3__maxDot_28btVector3_20const__2c_20long_2c_20float__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $37 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAPF32[($6 + 12 | 0) >> 2] = Math_fround(-3402823466385288598117041.0e14); + HEAP32[($6 + 8 | 0) >> 2] = 0; + HEAP32[($6 + 4 | 0) >> 2] = -1; + HEAP32[($6 + 8 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const((HEAP32[($6 + 24 | 0) >> 2] | 0) + ((HEAP32[($6 + 8 | 0) >> 2] | 0) << 4 | 0) | 0 | 0, $7 | 0))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + label$3 : { + if (!(Math_fround(HEAPF32[$6 >> 2]) > Math_fround(HEAPF32[($6 + 12 | 0) >> 2]) & 1 | 0)) { + break label$3 + } + HEAPF32[($6 + 12 | 0) >> 2] = Math_fround(HEAPF32[$6 >> 2]); + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($6 + 8 | 0) >> 2] | 0; + } + HEAP32[($6 + 8 | 0) >> 2] = (HEAP32[($6 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + HEAPF32[(HEAP32[($6 + 16 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[($6 + 12 | 0) >> 2]); + $37 = HEAP32[($6 + 4 | 0) >> 2] | 0; + __stack_pointer = $6 + 32 | 0; + return $37 | 0; + } + + function btAlignedObjectArray_btVector3___operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btVector3___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 4 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btConvexShape__localGetSupportVertexNonVirtual_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $6 = 0, $7 = 0, $8 = 0, $90 = 0, $94 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 80 | 0; + __stack_pointer = $5; + HEAP32[($5 + 76 | 0) >> 2] = $1; + HEAP32[($5 + 72 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 76 | 0) >> 2] | 0; + $7 = HEAP32[($5 + 72 | 0) >> 2] | 0; + $8 = 8; + i64toi32_i32$2 = $7 + $8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $90 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 56 | 0) + $8 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $90; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $7; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $94 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 56 | 0) >> 2] = $94; + HEAP32[($5 + 60 | 0) >> 2] = i64toi32_i32$0; + label$1 : { + if (!(Math_fround(btVector3__length2_28_29_20const($5 + 56 | 0 | 0)) < Math_fround(1.4210854715202004e-14) & 1 | 0)) { + break label$1 + } + HEAPF32[($5 + 52 | 0) >> 2] = Math_fround(-1.0); + HEAPF32[($5 + 48 | 0) >> 2] = Math_fround(-1.0); + HEAPF32[($5 + 44 | 0) >> 2] = Math_fround(-1.0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 56 | 0 | 0, $5 + 52 | 0 | 0, $5 + 48 | 0 | 0, $5 + 44 | 0 | 0); + } + btVector3__normalize_28_29($5 + 56 | 0 | 0) | 0; + btConvexShape__localGetSupportVertexWithoutMarginNonVirtual_28btVector3_20const__29_20const($5 + 28 | 0 | 0, $6 | 0, $5 + 56 | 0 | 0); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btConvexShape__getMarginNonVirtual_28_29_20const($6 | 0))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + operator__28float_20const__2c_20btVector3_20const__29($5 + 12 | 0 | 0, $5 + 8 | 0 | 0, $5 + 56 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($0 | 0, $5 + 28 | 0 | 0, $5 + 12 | 0 | 0); + __stack_pointer = $5 + 80 | 0; + return; + } + + function btConvexShape__getMarginNonVirtual_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $5 = 0, $24 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $3 = __stack_pointer - 48 | 0; + __stack_pointer = $3; + HEAP32[($3 + 40 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 40 | 0) >> 2] | 0; + $5 = HEAP32[($4 + 4 | 0) >> 2] | 0; + label$1 : { + label$2 : { + switch ($5 | 0) { + case 8: + HEAP32[($3 + 36 | 0) >> 2] = $4; + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(btSphereShape__getRadius_28_29_20const(HEAP32[($3 + 36 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + break label$1; + case 0: + HEAP32[($3 + 32 | 0) >> 2] = $4; + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(btConvexInternalShape__getMarginNV_28_29_20const(HEAP32[($3 + 32 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + break label$1; + case 1: + HEAP32[($3 + 28 | 0) >> 2] = $4; + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(btConvexInternalShape__getMarginNV_28_29_20const(HEAP32[($3 + 28 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + break label$1; + case 13: + HEAP32[($3 + 24 | 0) >> 2] = $4; + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(btConvexInternalShape__getMarginNV_28_29_20const(HEAP32[($3 + 24 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + break label$1; + case 11: + HEAP32[($3 + 20 | 0) >> 2] = $4; + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(btConvexInternalShape__getMarginNV_28_29_20const(HEAP32[($3 + 20 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + break label$1; + case 10: + HEAP32[($3 + 16 | 0) >> 2] = $4; + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(btConvexInternalShape__getMarginNV_28_29_20const(HEAP32[($3 + 16 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + break label$1; + case 4: + case 5: + HEAP32[($3 + 12 | 0) >> 2] = $4; + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(btConvexInternalShape__getMarginNV_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + break label$1; + default: + break label$2; + }; + } + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($4))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + } + $24 = Math_fround(HEAPF32[($3 + 44 | 0) >> 2]); + __stack_pointer = $3 + 48 | 0; + return Math_fround($24); + } + + function btConvexInternalShape__getMarginNV_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 52 | 0) >> 2])); + } + + function btPolyhedralConvexAabbCachingShape__getNonvirtualAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__2c_20float_29_20const($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = Math_fround($4); + var $7 = 0, $8 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAPF32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + label$1 : { + if ((HEAPU8[($8 + 96 | 0) >> 0] | 0) & 1 | 0) { + break label$1 + } + __assert_fail(82770 | 0, 79068 | 0, 106 | 0, 83077 | 0); + wasm2js_trap(); + } + btTransformAabb_28btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20btTransform_20const__2c_20btVector3__2c_20btVector3__29($8 + 64 | 0 | 0, $8 + 80 | 0 | 0, Math_fround(Math_fround(HEAPF32[($7 + 12 | 0) >> 2])), HEAP32[($7 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7 + 16 | 0) >> 2] | 0 | 0); + __stack_pointer = $7 + 32 | 0; + return; + } + + function _GLOBAL__sub_I_btConvexShape_cpp() { + __cxx_global_var_init_36(); + return; + } + + function __cxx_global_var_init_37() { + btInfMaskConverter__btInfMaskConverter_28int_29(114136 | 0, 2139095040 | 0) | 0; + return; + } + + function btConvexTriangleMeshShape__btConvexTriangleMeshShape_28btStridingMeshInterface__2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $7 = 0, $16 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 8 | 0) >> 2] = $0; + HEAP32[($5 + 4 | 0) >> 2] = $1; + HEAP8[($5 + 3 | 0) >> 0] = $2; + $7 = HEAP32[($5 + 8 | 0) >> 2] | 0; + HEAP32[($5 + 12 | 0) >> 2] = $7; + btPolyhedralConvexAabbCachingShape__btPolyhedralConvexAabbCachingShape_28_29($7 | 0) | 0; + HEAP32[$7 >> 2] = 98364 + 8 | 0; + HEAP32[($7 + 100 | 0) >> 2] = HEAP32[($5 + 4 | 0) >> 2] | 0; + HEAP32[($7 + 4 | 0) >> 2] = 3; + label$1 : { + if (!((HEAPU8[($5 + 3 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + btPolyhedralConvexAabbCachingShape__recalcLocalAabb_28_29($7 | 0); + } + $16 = HEAP32[($5 + 12 | 0) >> 2] | 0; + __stack_pointer = $5 + 16 | 0; + return $16 | 0; + } + + function btConvexTriangleMeshShape__localGetSupportingVertexWithoutMargin_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $22 = 0, $23 = 0, $87 = 0, $110 = 0, $6 = 0, $173 = 0, $177 = 0, $327 = 0, $337 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 160 | 0; + __stack_pointer = $5; + HEAP32[($5 + 156 | 0) >> 2] = $1; + HEAP32[($5 + 152 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 156 | 0) >> 2] | 0; + HEAPF32[($5 + 148 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 144 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 140 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $5 + 148 | 0 | 0, $5 + 144 | 0 | 0, $5 + 140 | 0 | 0) | 0; + $22 = HEAP32[($5 + 152 | 0) >> 2] | 0; + $23 = 8; + i64toi32_i32$2 = $22 + $23 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $173 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 120 | 0) + $23 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $173; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $22; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $177 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 120 | 0) >> 2] = $177; + HEAP32[($5 + 124 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($5 + 120 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 116 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($5 + 116 | 0) >> 2]) < Math_fround(9.999999747378752e-05) & 1 | 0)) { + break label$2 + } + HEAPF32[($5 + 112 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($5 + 108 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 104 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 120 | 0 | 0, $5 + 112 | 0 | 0, $5 + 108 | 0 | 0, $5 + 104 | 0 | 0); + break label$1; + } + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(1.0) / Math_fround(btSqrt_28float_29(Math_fround(Math_fround(HEAPF32[($5 + 116 | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 100 | 0) >> 2] = wasm2js_f32$0; + btVector3__operator___28float_20const__29_1($5 + 120 | 0 | 0, $5 + 100 | 0 | 0) | 0; + } + LocalSupportVertexCallback__LocalSupportVertexCallback_28btVector3_20const__29($5 + 60 | 0 | 0, $5 + 120 | 0 | 0) | 0; + HEAPF32[($5 + 40 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAPF32[($5 + 36 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAPF32[($5 + 32 | 0) >> 2] = Math_fround(999999984306749440.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 44 | 0 | 0, $5 + 40 | 0 | 0, $5 + 36 | 0 | 0, $5 + 32 | 0 | 0) | 0; + $87 = HEAP32[($6 + 100 | 0) >> 2] | 0; + operator__28btVector3_20const__29($5 + 16 | 0 | 0, $5 + 44 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$87 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($87, $5 + 60 | 0, $5 + 16 | 0, $5 + 44 | 0); + LocalSupportVertexCallback__GetSupportVertexLocal_28_29($5 | 0, $5 + 60 | 0 | 0); + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[$5 >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 4 | 0) >> 2] | 0; + $327 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $327; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $110 = 8; + i64toi32_i32$2 = $5 + $110 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $337 = i64toi32_i32$1; + i64toi32_i32$1 = $0 + $110 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $337; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + LocalSupportVertexCallback___LocalSupportVertexCallback_28_29($5 + 60 | 0 | 0) | 0; + __stack_pointer = $5 + 160 | 0; + return; + } + + function LocalSupportVertexCallback__LocalSupportVertexCallback_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $28 = 0, $31 = 0, $97 = 0, $107 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + btInternalTriangleIndexCallback__btInternalTriangleIndexCallback_28_29($5 | 0) | 0; + HEAP32[$5 >> 2] = 98536 + 8 | 0; + HEAPF32[($4 + 20 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 16 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 12 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 4 | 0 | 0, $4 + 20 | 0 | 0, $4 + 16 | 0 | 0, $4 + 12 | 0 | 0) | 0; + HEAPF32[($5 + 20 | 0) >> 2] = Math_fround(-999999984306749440.0); + $28 = $5 + 24 | 0; + i64toi32_i32$2 = HEAP32[($4 + 24 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $97 = i64toi32_i32$0; + i64toi32_i32$0 = $28; + HEAP32[i64toi32_i32$0 >> 2] = $97; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $31 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $31 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $107 = i64toi32_i32$1; + i64toi32_i32$1 = $28 + $31 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $107; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $4 + 32 | 0; + return $5 | 0; + } + + function LocalSupportVertexCallback__GetSupportVertexLocal_28_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, $9 = 0, $27 = 0, $37 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $1; + i64toi32_i32$2 = (HEAP32[($4 + 12 | 0) >> 2] | 0) + 4 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $27 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $27; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $9 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $9 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $37 = i64toi32_i32$1; + i64toi32_i32$1 = $0 + $9 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $37; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function LocalSupportVertexCallback___LocalSupportVertexCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btInternalTriangleIndexCallback___btInternalTriangleIndexCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConvexTriangleMeshShape__batchedUnitVectorGetSupportingVertexWithoutMargin_28btVector3_20const__2c_20btVector3__2c_20int_29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $58 = 0, $84 = 0, $86 = 0, $7 = 0, $267 = 0, $277 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 128 | 0; + __stack_pointer = $6; + HEAP32[($6 + 124 | 0) >> 2] = $0; + HEAP32[($6 + 120 | 0) >> 2] = $1; + HEAP32[($6 + 116 | 0) >> 2] = $2; + HEAP32[($6 + 112 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 124 | 0) >> 2] | 0; + HEAP32[($6 + 108 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 108 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 112 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29((HEAP32[($6 + 116 | 0) >> 2] | 0) + ((HEAP32[($6 + 108 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(-999999984306749440.0)), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + HEAP32[($6 + 108 | 0) >> 2] = (HEAP32[($6 + 108 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + HEAP32[($6 + 104 | 0) >> 2] = 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($6 + 104 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 112 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6 + 100 | 0) >> 2] = (HEAP32[($6 + 120 | 0) >> 2] | 0) + ((HEAP32[($6 + 104 | 0) >> 2] | 0) << 4 | 0) | 0; + LocalSupportVertexCallback__LocalSupportVertexCallback_28btVector3_20const__29($6 + 60 | 0 | 0, HEAP32[($6 + 100 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($6 + 40 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAPF32[($6 + 36 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAPF32[($6 + 32 | 0) >> 2] = Math_fround(999999984306749440.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 44 | 0 | 0, $6 + 40 | 0 | 0, $6 + 36 | 0 | 0, $6 + 32 | 0 | 0) | 0; + $58 = HEAP32[($7 + 100 | 0) >> 2] | 0; + operator__28btVector3_20const__29($6 + 16 | 0 | 0, $6 + 44 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$58 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($58, $6 + 60 | 0, $6 + 16 | 0, $6 + 44 | 0); + LocalSupportVertexCallback__GetSupportVertexLocal_28_29($6 | 0, $6 + 60 | 0 | 0); + $84 = (HEAP32[($6 + 116 | 0) >> 2] | 0) + ((HEAP32[($6 + 104 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[$6 >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 4 | 0) >> 2] | 0; + $267 = i64toi32_i32$0; + i64toi32_i32$0 = $84; + HEAP32[i64toi32_i32$0 >> 2] = $267; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $86 = 8; + i64toi32_i32$2 = $6 + $86 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $277 = i64toi32_i32$1; + i64toi32_i32$1 = $84 + $86 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $277; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + LocalSupportVertexCallback___LocalSupportVertexCallback_28_29($6 + 60 | 0 | 0) | 0; + HEAP32[($6 + 104 | 0) >> 2] = (HEAP32[($6 + 104 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + __stack_pointer = $6 + 128 | 0; + return; + } + + function btConvexTriangleMeshShape__localGetSupportingVertex_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $18 = 0, $19 = 0, $121 = 0, $125 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 64 | 0; + __stack_pointer = $5; + HEAP32[($5 + 60 | 0) >> 2] = $1; + HEAP32[($5 + 56 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 60 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 68 | 0) >> 2] | 0 | 0]($0, $6, HEAP32[($5 + 56 | 0) >> 2] | 0); + label$1 : { + if (!(Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($6)) != Math_fround(0 | 0) & 1 | 0)) { + break label$1 + } + $18 = HEAP32[($5 + 56 | 0) >> 2] | 0; + $19 = 8; + i64toi32_i32$2 = $18 + $19 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $121 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 40 | 0) + $19 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $121; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $18; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $125 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 40 | 0) >> 2] = $125; + HEAP32[($5 + 44 | 0) >> 2] = i64toi32_i32$0; + label$2 : { + if (!(Math_fround(btVector3__length2_28_29_20const($5 + 40 | 0 | 0)) < Math_fround(1.4210854715202004e-14) & 1 | 0)) { + break label$2 + } + HEAPF32[($5 + 36 | 0) >> 2] = Math_fround(-1.0); + HEAPF32[($5 + 32 | 0) >> 2] = Math_fround(-1.0); + HEAPF32[($5 + 28 | 0) >> 2] = Math_fround(-1.0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 40 | 0 | 0, $5 + 36 | 0 | 0, $5 + 32 | 0 | 0, $5 + 28 | 0 | 0); + } + btVector3__normalize_28_29($5 + 40 | 0 | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($6))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + operator__28float_20const__2c_20btVector3_20const__29($5 + 12 | 0 | 0, $5 + 8 | 0 | 0, $5 + 40 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($0 | 0, $5 + 12 | 0 | 0) | 0; + } + __stack_pointer = $5 + 64 | 0; + return; + } + + function btConvexTriangleMeshShape__getNumVertices_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 0 | 0; + } + + function btConvexTriangleMeshShape__getNumEdges_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 0 | 0; + } + + function btConvexTriangleMeshShape__getEdge_28int_2c_20btVector3__2c_20btVector3__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + __assert_fail(86177 | 0, 74639 | 0, 169 | 0, 81912 | 0); + wasm2js_trap(); + } + + function btConvexTriangleMeshShape__getVertex_28int_2c_20btVector3__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + __assert_fail(86177 | 0, 74639 | 0, 174 | 0, 66266 | 0); + wasm2js_trap(); + } + + function btConvexTriangleMeshShape__getNumPlanes_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 0 | 0; + } + + function btConvexTriangleMeshShape__getPlane_28btVector3__2c_20btVector3__2c_20int_29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + __assert_fail(86177 | 0, 74639 | 0, 184 | 0, 81810 | 0); + wasm2js_trap(); + } + + function btConvexTriangleMeshShape__isInside_28btVector3_20const__2c_20float_29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + __assert_fail(86177 | 0, 74639 | 0, 190 | 0, 82062 | 0); + wasm2js_trap(); + } + + function btConvexTriangleMeshShape__setLocalScaling_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btStridingMeshInterface__setScaling_28btVector3_20const__29(HEAP32[($5 + 100 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + btPolyhedralConvexAabbCachingShape__recalcLocalAabb_28_29($5 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btStridingMeshInterface__setScaling_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, $8 = 0, $10 = 0, $32 = 0, $42 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $8 = (HEAP32[($4 + 12 | 0) >> 2] | 0) + 4 | 0; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $32 = i64toi32_i32$0; + i64toi32_i32$0 = $8; + HEAP32[i64toi32_i32$0 >> 2] = $32; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $10 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $10 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $42 = i64toi32_i32$1; + i64toi32_i32$1 = $8 + $10 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $42; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function btConvexTriangleMeshShape__getLocalScaling_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = btStridingMeshInterface__getScaling_28_29_20const(HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 100 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function btConvexTriangleMeshShape___btConvexTriangleMeshShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btPolyhedralConvexAabbCachingShape___btPolyhedralConvexAabbCachingShape_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btPolyhedralConvexAabbCachingShape___btPolyhedralConvexAabbCachingShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btPolyhedralConvexShape___btPolyhedralConvexShape_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConvexTriangleMeshShape___btConvexTriangleMeshShape_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConvexTriangleMeshShape___btConvexTriangleMeshShape_28_29($4 | 0) | 0; + btConvexTriangleMeshShape__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btConvexTriangleMeshShape__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btConvexTriangleMeshShape__getName_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 77952 | 0; + } + + function LocalSupportVertexCallback___LocalSupportVertexCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + LocalSupportVertexCallback___LocalSupportVertexCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function LocalSupportVertexCallback__internalProcessTriangleIndex_28btVector3__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $7 = 0, $36 = 0, $38 = 0, $126 = 0, $136 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($7 + 24 | 0 | 0, (HEAP32[($6 + 24 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 4 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + label$3 : { + if (!(Math_fround(HEAPF32[($6 + 8 | 0) >> 2]) > Math_fround(HEAPF32[($7 + 20 | 0) >> 2]) & 1 | 0)) { + break label$3 + } + HEAPF32[($7 + 20 | 0) >> 2] = Math_fround(HEAPF32[($6 + 8 | 0) >> 2]); + $36 = $7 + 4 | 0; + i64toi32_i32$2 = (HEAP32[($6 + 24 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $126 = i64toi32_i32$0; + i64toi32_i32$0 = $36; + HEAP32[i64toi32_i32$0 >> 2] = $126; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $38 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $38 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $136 = i64toi32_i32$1; + i64toi32_i32$1 = $36 + $38 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $136; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $6 + 32 | 0; + return; + } + + function _GLOBAL__sub_I_btConvexTriangleMeshShape_cpp() { + __cxx_global_var_init_37(); + return; + } + + function __cxx_global_var_init_38() { + btInfMaskConverter__btInfMaskConverter_28int_29(114140 | 0, 2139095040 | 0) | 0; + return; + } + + function btCylinderShape__btCylinderShape_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $47 = 0, $49 = 0, $161 = 0, $174 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 80 | 0; + __stack_pointer = $4; + HEAP32[($4 + 76 | 0) >> 2] = $0; + HEAP32[($4 + 72 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 76 | 0) >> 2] | 0; + btConvexInternalShape__btConvexInternalShape_28_29($5 | 0) | 0; + HEAP32[$5 >> 2] = 98600 + 8 | 0; + HEAP32[($5 + 60 | 0) >> 2] = 1; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 52 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 48 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 56 | 0 | 0, $4 + 52 | 0 | 0, $4 + 48 | 0 | 0, $4 + 44 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($4 + 12 | 0 | 0, HEAP32[($4 + 72 | 0) >> 2] | 0 | 0, $5 + 20 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($4 + 28 | 0 | 0, $4 + 12 | 0 | 0, $4 + 56 | 0 | 0); + $47 = $5 + 36 | 0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[($4 + 28 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($4 + 32 | 0) >> 2] | 0; + $161 = i64toi32_i32$0; + i64toi32_i32$0 = $47; + HEAP32[i64toi32_i32$0 >> 2] = $161; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $49 = 8; + i64toi32_i32$2 = ($4 + 28 | 0) + $49 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $174 = i64toi32_i32$1; + i64toi32_i32$1 = $47 + $49 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $174; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btConvexInternalShape__setSafeMargin_28btVector3_20const__2c_20float_29($5 | 0, HEAP32[($4 + 72 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(.10000000149011612))); + HEAP32[($5 + 4 | 0) >> 2] = 13; + __stack_pointer = $4 + 80 | 0; + return $5 | 0; + } + + function btCylinderShape__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btTransformAabb_28btVector3_20const__2c_20float_2c_20btTransform_20const__2c_20btVector3__2c_20btVector3__29(btCylinderShape__getHalfExtentsWithoutMargin_28_29_20const($7 | 0) | 0 | 0, Math_fround(Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($7))), HEAP32[($6 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6 >> 2] | 0 | 0); + __stack_pointer = $6 + 16 | 0; + return; + } + + function btCylinderShape__calculateLocalInertia_28float_2c_20btVector3__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = $2 | 0; + var $5 = 0, $30 = 0, $6 = 0, $18 = 0, $69 = 0, $74 = 0, $78 = 0, $83 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 64 | 0; + __stack_pointer = $5; + HEAP32[($5 + 60 | 0) >> 2] = $0; + HEAPF32[($5 + 56 | 0) >> 2] = $1; + HEAP32[($5 + 52 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 60 | 0) >> 2] | 0; + btCylinderShape__getHalfExtentsWithMargin_28_29_20const($5 + 28 | 0 | 0, $6 | 0); + HEAPF32[($5 + 24 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 56 | 0) >> 2]) / Math_fround(12.0)); + HEAPF32[($5 + 20 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 56 | 0) >> 2]) / Math_fround(4.0)); + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 56 | 0) >> 2]) / Math_fround(2.0)); + $18 = HEAP32[($6 + 60 | 0) >> 2] | 0; + label$1 : { + label$2 : { + switch ($18 | 0) { + case 0: + HEAP32[($5 + 12 | 0) >> 2] = 1; + HEAP32[($5 + 8 | 0) >> 2] = 0; + break label$1; + case 2: + HEAP32[($5 + 12 | 0) >> 2] = 0; + HEAP32[($5 + 8 | 0) >> 2] = 2; + break label$1; + default: + break label$2; + }; + } + HEAP32[($5 + 12 | 0) >> 2] = 0; + HEAP32[($5 + 8 | 0) >> 2] = 1; + } + $30 = 2; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($5 + 28 | 0 | 0) | 0) + ((HEAP32[($5 + 12 | 0) >> 2] | 0) << $30 | 0) | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($5 + 28 | 0 | 0) | 0) + ((HEAP32[($5 + 12 | 0) >> 2] | 0) << $30 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 48 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($5 + 28 | 0 | 0) | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << $30 | 0) | 0) >> 2]) * Math_fround(4.0)) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($5 + 28 | 0 | 0) | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << $30 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($5 + 4 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 24 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 44 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($5 + 20 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 48 | 0) >> 2]))); + HEAPF32[$5 >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 16 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 48 | 0) >> 2])); + $69 = HEAP32[($6 + 60 | 0) >> 2] | 0; + label$5 : { + label$6 : { + switch ($69 | 0) { + case 0: + $74 = $5 + 4 | 0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29(HEAP32[($5 + 52 | 0) >> 2] | 0 | 0, $5 | 0, $74 | 0, $74 | 0); + break label$5; + case 2: + $78 = $5 + 4 | 0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29(HEAP32[($5 + 52 | 0) >> 2] | 0 | 0, $78 | 0, $78 | 0, $5 | 0); + break label$5; + default: + break label$6; + }; + } + $83 = $5 + 4 | 0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29(HEAP32[($5 + 52 | 0) >> 2] | 0 | 0, $83 | 0, $5 | 0, $83 | 0); + } + __stack_pointer = $5 + 64 | 0; + return; + } + + function btCylinderShape__localGetSupportingVertexWithoutMargin_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $1; + HEAP32[($5 + 8 | 0) >> 2] = $2; + CylinderLocalSupportY_28btVector3_20const__2c_20btVector3_20const__29($0 | 0, btCylinderShape__getHalfExtentsWithoutMargin_28_29_20const(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function CylinderLocalSupportY_28btVector3_20const__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $58 = Math_fround(0), $81 = Math_fround(0), $45 = Math_fround(0), $66 = Math_fround(0), $68 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 44 | 0) >> 2] = $1; + HEAP32[($5 + 40 | 0) >> 2] = $2; + HEAP32[($5 + 36 | 0) >> 2] = 1; + HEAP32[($5 + 32 | 0) >> 2] = 0; + HEAP32[($5 + 28 | 0) >> 2] = 1; + HEAP32[($5 + 24 | 0) >> 2] = 2; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 44 | 0) >> 2] | 0 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 44 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28_29($0 | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btSqrt_28float_29(Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2]))))))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($5 + 8 | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 20 | 0) >> 2]) / Math_fround(HEAPF32[($5 + 8 | 0) >> 2])); + $45 = Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[($5 + 12 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($0 | 0) | 0, wasm2js_f32$0 = $45), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + label$3 : { + label$4 : { + if (!(+Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2]) < +(0 | 0) & 1 | 0)) { + break label$4 + } + $58 = Math_fround(-Math_fround(HEAPF32[($5 + 16 | 0) >> 2])); + break label$3; + } + $58 = Math_fround(HEAPF32[($5 + 16 | 0) >> 2]); + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($0 | 0) | 0, wasm2js_f32$0 = $58), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $66 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 12 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($0 | 0) | 0, wasm2js_f32$0 = $66), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + break label$1; + } + $68 = Math_fround(HEAPF32[($5 + 20 | 0) >> 2]); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($0 | 0) | 0, wasm2js_f32$0 = $68), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + label$5 : { + label$6 : { + if (!(+Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2]) < +(0 | 0) & 1 | 0)) { + break label$6 + } + $81 = Math_fround(-Math_fround(HEAPF32[($5 + 16 | 0) >> 2])); + break label$5; + } + $81 = Math_fround(HEAPF32[($5 + 16 | 0) >> 2]); + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($0 | 0) | 0, wasm2js_f32$0 = $81), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29($0 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + } + __stack_pointer = $5 + 48 | 0; + return; + } + + function btCylinderShape__batchedUnitVectorGetSupportingVertexWithoutMargin_28btVector3_20const__2c_20btVector3__2c_20int_29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $29 = 0, $31 = 0, $7 = 0, $105 = 0, $118 = 0; + $6 = __stack_pointer - 48 | 0; + __stack_pointer = $6; + HEAP32[($6 + 44 | 0) >> 2] = $0; + HEAP32[($6 + 40 | 0) >> 2] = $1; + HEAP32[($6 + 36 | 0) >> 2] = $2; + HEAP32[($6 + 32 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 44 | 0) >> 2] | 0; + HEAP32[($6 + 28 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 32 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + CylinderLocalSupportY_28btVector3_20const__2c_20btVector3_20const__29($6 + 12 | 0 | 0, btCylinderShape__getHalfExtentsWithoutMargin_28_29_20const($7 | 0) | 0 | 0, (HEAP32[($6 + 40 | 0) >> 2] | 0) + ((HEAP32[($6 + 28 | 0) >> 2] | 0) << 4 | 0) | 0 | 0); + $29 = (HEAP32[($6 + 36 | 0) >> 2] | 0) + ((HEAP32[($6 + 28 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 12 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 16 | 0) >> 2] | 0; + $105 = i64toi32_i32$0; + i64toi32_i32$0 = $29; + HEAP32[i64toi32_i32$0 >> 2] = $105; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $31 = 8; + i64toi32_i32$2 = ($6 + 12 | 0) + $31 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $118 = i64toi32_i32$1; + i64toi32_i32$1 = $29 + $31 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $118; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6 + 28 | 0) >> 2] = (HEAP32[($6 + 28 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $6 + 48 | 0; + return; + } + + function btCylinderShape___btCylinderShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConvexInternalShape___btConvexInternalShape_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCylinderShape___btCylinderShape_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCylinderShape___btCylinderShape_28_29($4 | 0) | 0; + btCylinderShape__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCylinderShape__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCylinderShape__setLocalScaling_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $62 = 0, $64 = 0, $198 = 0, $211 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 112 | 0; + __stack_pointer = $4; + HEAP32[($4 + 108 | 0) >> 2] = $0; + HEAP32[($4 + 104 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 108 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 84 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 80 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 76 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 88 | 0 | 0, $4 + 84 | 0 | 0, $4 + 80 | 0 | 0, $4 + 76 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($4 + 60 | 0 | 0, $5 + 36 | 0 | 0, $4 + 88 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_3($4 + 44 | 0 | 0, $4 + 60 | 0 | 0, $5 + 20 | 0 | 0); + btConvexInternalShape__setLocalScaling_28btVector3_20const__29($5 | 0, HEAP32[($4 + 104 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($4 + 12 | 0 | 0, $4 + 44 | 0 | 0, $5 + 20 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($4 + 28 | 0 | 0, $4 + 12 | 0 | 0, $4 + 88 | 0 | 0); + $62 = $5 + 36 | 0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[($4 + 28 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($4 + 32 | 0) >> 2] | 0; + $198 = i64toi32_i32$0; + i64toi32_i32$0 = $62; + HEAP32[i64toi32_i32$0 >> 2] = $198; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $64 = 8; + i64toi32_i32$2 = ($4 + 28 | 0) + $64 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $211 = i64toi32_i32$1; + i64toi32_i32$1 = $62 + $64 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $211; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $4 + 112 | 0; + return; + } + + function btCylinderShape__getName_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 83912 | 0; + } + + function btCylinderShape__getAnisotropicRollingFrictionDirection_28_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAPF32[($4 + 8 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 4 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[$4 >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $4 + 8 | 0 | 0, $4 + 4 | 0 | 0, $4 | 0) | 0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($0 | 0) | 0) + ((btCylinderShape__getUpAxis_28_29_20const($5 | 0) | 0) << 2 | 0) | 0, wasm2js_f32$0 = Math_fround(1.0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCylinderShape__setMargin_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0, $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $65 = 0, $67 = 0, $216 = 0, $226 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 96 | 0; + __stack_pointer = $4; + HEAP32[($4 + 92 | 0) >> 2] = $0; + HEAPF32[($4 + 88 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 92 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 68 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 64 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 60 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 72 | 0 | 0, $4 + 68 | 0 | 0, $4 + 64 | 0 | 0, $4 + 60 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($4 + 44 | 0 | 0, $5 + 36 | 0 | 0, $4 + 72 | 0 | 0); + btConvexInternalShape__setMargin_28float_29($5 | 0, Math_fround(Math_fround(HEAPF32[($4 + 88 | 0) >> 2]))); + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 28 | 0 | 0, $4 + 24 | 0 | 0, $4 + 20 | 0 | 0, $4 + 16 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($4 | 0, $4 + 44 | 0 | 0, $4 + 28 | 0 | 0); + $65 = $5 + 36 | 0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[$4 >> 2] | 0; + i64toi32_i32$1 = HEAP32[($4 + 4 | 0) >> 2] | 0; + $216 = i64toi32_i32$0; + i64toi32_i32$0 = $65; + HEAP32[i64toi32_i32$0 >> 2] = $216; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $67 = 8; + i64toi32_i32$2 = $4 + $67 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $226 = i64toi32_i32$1; + i64toi32_i32$1 = $65 + $67 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $226; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $4 + 96 | 0; + return; + } + + function btCylinderShape__calculateSerializeBufferSize_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 60 | 0; + } + + function btCylinderShape__serialize_28void__2c_20btSerializer__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + btConvexInternalShape__serialize_28void__2c_20btSerializer__29_20const($6 | 0, HEAP32[$5 >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[$5 >> 2] | 0) + 52 | 0) >> 2] = HEAP32[($6 + 60 | 0) >> 2] | 0; + HEAP8[((HEAP32[$5 >> 2] | 0) + 56 | 0) >> 0] = 0; + HEAP8[((HEAP32[$5 >> 2] | 0) + 57 | 0) >> 0] = 0; + HEAP8[((HEAP32[$5 >> 2] | 0) + 58 | 0) >> 0] = 0; + HEAP8[((HEAP32[$5 >> 2] | 0) + 59 | 0) >> 0] = 0; + __stack_pointer = $5 + 16 | 0; + return 83434 | 0; + } + + function btCylinderShape__localGetSupportingVertex_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $6 = 0, $14 = 0, $28 = 0, $29 = 0, $109 = 0, $122 = 0, $154 = 0, $158 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 80 | 0; + __stack_pointer = $5; + HEAP32[($5 + 76 | 0) >> 2] = $1; + HEAP32[($5 + 72 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 76 | 0) >> 2] | 0; + btVector3__btVector3_28_29($0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 68 | 0) >> 2] | 0 | 0]($5 + 56 | 0, $6, HEAP32[($5 + 72 | 0) >> 2] | 0); + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 56 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 60 | 0) >> 2] | 0; + $109 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $109; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $14 = 8; + i64toi32_i32$2 = ($5 + 56 | 0) + $14 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $122 = i64toi32_i32$1; + i64toi32_i32$1 = $0 + $14 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $122; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + label$1 : { + if (!(Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($6)) != Math_fround(0 | 0) & 1 | 0)) { + break label$1 + } + $28 = HEAP32[($5 + 72 | 0) >> 2] | 0; + $29 = 8; + i64toi32_i32$2 = $28 + $29 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $154 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 40 | 0) + $29 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $154; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $28; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $158 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 40 | 0) >> 2] = $158; + HEAP32[($5 + 44 | 0) >> 2] = i64toi32_i32$0; + label$2 : { + if (!(Math_fround(btVector3__length2_28_29_20const($5 + 40 | 0 | 0)) < Math_fround(1.4210854715202004e-14) & 1 | 0)) { + break label$2 + } + HEAPF32[($5 + 36 | 0) >> 2] = Math_fround(-1.0); + HEAPF32[($5 + 32 | 0) >> 2] = Math_fround(-1.0); + HEAPF32[($5 + 28 | 0) >> 2] = Math_fround(-1.0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 40 | 0 | 0, $5 + 36 | 0 | 0, $5 + 32 | 0 | 0, $5 + 28 | 0 | 0); + } + btVector3__normalize_28_29($5 + 40 | 0 | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($6))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + operator__28float_20const__2c_20btVector3_20const__29($5 + 12 | 0 | 0, $5 + 8 | 0 | 0, $5 + 40 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($0 | 0, $5 + 12 | 0 | 0) | 0; + } + __stack_pointer = $5 + 80 | 0; + return; + } + + function btCylinderShape__getRadius_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $12 = Math_fround(0); + $3 = __stack_pointer - 32 | 0; + __stack_pointer = $3; + HEAP32[($3 + 28 | 0) >> 2] = $0; + btCylinderShape__getHalfExtentsWithMargin_28_29_20const($3 + 12 | 0 | 0, HEAP32[($3 + 28 | 0) >> 2] | 0 | 0); + $12 = Math_fround(HEAPF32[(btVector3__getX_28_29_20const($3 + 12 | 0 | 0) | 0) >> 2]); + __stack_pointer = $3 + 32 | 0; + return Math_fround($12); + } + + function _GLOBAL__sub_I_btCylinderShape_cpp() { + __cxx_global_var_init_38(); + return; + } + + function __cxx_global_var_init_39() { + btInfMaskConverter__btInfMaskConverter_28int_29(114144 | 0, 2139095040 | 0) | 0; + return; + } + + function btConcaveShape__btConcaveShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionShape__btCollisionShape_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 98736 + 8 | 0; + HEAPF32[($4 + 20 | 0) >> 2] = Math_fround(0 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConcaveShape___btConcaveShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionShape___btCollisionShape_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConcaveShape___btConcaveShape_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function _GLOBAL__sub_I_btConcaveShape_cpp() { + __cxx_global_var_init_39(); + return; + } + + function __cxx_global_var_init_40() { + btInfMaskConverter__btInfMaskConverter_28int_29(114148 | 0, 2139095040 | 0) | 0; + return; + } + + function btEmptyShape__btEmptyShape_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConcaveShape__btConcaveShape_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 98844 + 8 | 0; + btVector3__btVector3_28_29($4 + 24 | 0 | 0) | 0; + HEAP32[($4 + 4 | 0) >> 2] = 27; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btEmptyShape___btEmptyShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConcaveShape___btConcaveShape_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btEmptyShape___btEmptyShape_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[893 | 0]($4) | 0; + btEmptyShape__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btEmptyShape__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btEmptyShape__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $7 = 0, $37 = 0, $39 = 0, $53 = 0, $55 = 0, $146 = 0, $159 = 0, $180 = 0, $193 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 80 | 0; + __stack_pointer = $6; + HEAP32[($6 + 76 | 0) >> 2] = $0; + HEAP32[($6 + 72 | 0) >> 2] = $1; + HEAP32[($6 + 68 | 0) >> 2] = $2; + HEAP32[($6 + 64 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 76 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($7))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($7))), HEAPF32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($7))), HEAPF32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 48 | 0 | 0, $6 + 44 | 0 | 0, $6 + 40 | 0 | 0, $6 + 36 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 20 | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($6 + 72 | 0) >> 2] | 0 | 0) | 0 | 0, $6 + 48 | 0 | 0); + $37 = HEAP32[($6 + 68 | 0) >> 2] | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 20 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 24 | 0) >> 2] | 0; + $146 = i64toi32_i32$0; + i64toi32_i32$0 = $37; + HEAP32[i64toi32_i32$0 >> 2] = $146; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $39 = 8; + i64toi32_i32$2 = ($6 + 20 | 0) + $39 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $159 = i64toi32_i32$1; + i64toi32_i32$1 = $37 + $39 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $159; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 4 | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($6 + 72 | 0) >> 2] | 0 | 0) | 0 | 0, $6 + 48 | 0 | 0); + $53 = HEAP32[($6 + 64 | 0) >> 2] | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 4 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 8 | 0) >> 2] | 0; + $180 = i64toi32_i32$0; + i64toi32_i32$0 = $53; + HEAP32[i64toi32_i32$0 >> 2] = $180; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $55 = 8; + i64toi32_i32$2 = ($6 + 4 | 0) + $55 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $193 = i64toi32_i32$1; + i64toi32_i32$1 = $53 + $55 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $193; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $6 + 80 | 0; + return; + } + + function btEmptyShape__calculateLocalInertia_28float_2c_20btVector3__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAPF32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + __assert_fail(86177 | 0, 74142 | 0, 46 | 0, 83783 | 0); + wasm2js_trap(); + } + + function btEmptyShape__setLocalScaling_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, $8 = 0, $10 = 0, $32 = 0, $42 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $8 = (HEAP32[($4 + 12 | 0) >> 2] | 0) + 24 | 0; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $32 = i64toi32_i32$0; + i64toi32_i32$0 = $8; + HEAP32[i64toi32_i32$0 >> 2] = $32; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $10 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $10 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $42 = i64toi32_i32$1; + i64toi32_i32$1 = $8 + $10 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $42; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function btEmptyShape__getLocalScaling_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 24 | 0 | 0; + } + + function btEmptyShape__getName_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 65654 | 0; + } + + function btEmptyShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0; + $6 = __stack_pointer - 16 | 0; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + return; + } + + function _GLOBAL__sub_I_btEmptyShape_cpp() { + __cxx_global_var_init_40(); + return; + } + + function __cxx_global_var_init_41() { + btInfMaskConverter__btInfMaskConverter_28int_29(114152 | 0, 2139095040 | 0) | 0; + return; + } + + function btHeightfieldTerrainShape__btHeightfieldTerrainShape_28int_2c_20int_2c_20void_20const__2c_20float_2c_20float_2c_20float_2c_20int_2c_20PHY_ScalarType_2c_20bool_29($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = Math_fround($4); + $5 = Math_fround($5); + $6 = Math_fround($6); + $7 = $7 | 0; + $8 = $8 | 0; + $9 = $9 | 0; + var $12 = 0, $14 = 0; + $12 = __stack_pointer - 48 | 0; + __stack_pointer = $12; + HEAP32[($12 + 44 | 0) >> 2] = $0; + HEAP32[($12 + 40 | 0) >> 2] = $1; + HEAP32[($12 + 36 | 0) >> 2] = $2; + HEAP32[($12 + 32 | 0) >> 2] = $3; + HEAPF32[($12 + 28 | 0) >> 2] = $4; + HEAPF32[($12 + 24 | 0) >> 2] = $5; + HEAPF32[($12 + 20 | 0) >> 2] = $6; + HEAP32[($12 + 16 | 0) >> 2] = $7; + HEAP32[($12 + 12 | 0) >> 2] = $8; + HEAP8[($12 + 11 | 0) >> 0] = $9; + $14 = HEAP32[($12 + 44 | 0) >> 2] | 0; + btConcaveShape__btConcaveShape_28_29($14 | 0) | 0; + HEAP32[$14 >> 2] = 98948 + 8 | 0; + btVector3__btVector3_28_29($14 + 24 | 0 | 0) | 0; + btVector3__btVector3_28_29($14 + 40 | 0 | 0) | 0; + btVector3__btVector3_28_29($14 + 56 | 0 | 0) | 0; + btVector3__btVector3_28_29($14 + 116 | 0 | 0) | 0; + btHeightfieldTerrainShape__initialize_28int_2c_20int_2c_20void_20const__2c_20float_2c_20float_2c_20float_2c_20int_2c_20PHY_ScalarType_2c_20bool_29($14 | 0, HEAP32[($12 + 40 | 0) >> 2] | 0 | 0, HEAP32[($12 + 36 | 0) >> 2] | 0 | 0, HEAP32[($12 + 32 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($12 + 28 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($12 + 24 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($12 + 20 | 0) >> 2])), HEAP32[($12 + 16 | 0) >> 2] | 0 | 0, HEAP32[($12 + 12 | 0) >> 2] | 0 | 0, (HEAPU8[($12 + 11 | 0) >> 0] | 0) & 1 | 0 | 0); + __stack_pointer = $12 + 48 | 0; + return $14 | 0; + } + + function btHeightfieldTerrainShape__initialize_28int_2c_20int_2c_20void_20const__2c_20float_2c_20float_2c_20float_2c_20int_2c_20PHY_ScalarType_2c_20bool_29($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = Math_fround($4); + $5 = Math_fround($5); + $6 = Math_fround($6); + $7 = $7 | 0; + $8 = $8 | 0; + $9 = $9 | 0; + var $12 = 0, $14 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $116 = 0, i64toi32_i32$2 = 0, $100 = 0, $112 = 0, $123 = 0, $209 = 0, $211 = 0, $614 = 0, $627 = 0; + $12 = __stack_pointer - 112 | 0; + __stack_pointer = $12; + HEAP32[($12 + 108 | 0) >> 2] = $0; + HEAP32[($12 + 104 | 0) >> 2] = $1; + HEAP32[($12 + 100 | 0) >> 2] = $2; + HEAP32[($12 + 96 | 0) >> 2] = $3; + HEAPF32[($12 + 92 | 0) >> 2] = $4; + HEAPF32[($12 + 88 | 0) >> 2] = $5; + HEAPF32[($12 + 84 | 0) >> 2] = $6; + HEAP32[($12 + 80 | 0) >> 2] = $7; + HEAP32[($12 + 76 | 0) >> 2] = $8; + HEAP8[($12 + 75 | 0) >> 0] = $9; + $14 = HEAP32[($12 + 108 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($12 + 104 | 0) >> 2] | 0 | 0) > (1 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85653 | 0, 74508 | 0, 62 | 0, 80824 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($12 + 100 | 0) >> 2] | 0 | 0) > (1 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(85631 | 0, 74508 | 0, 63 | 0, 80824 | 0); + wasm2js_trap(); + } + label$3 : { + if ((HEAP32[($12 + 96 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$3 + } + __assert_fail(83752 | 0, 74508 | 0, 64 | 0, 80824 | 0); + wasm2js_trap(); + } + label$4 : { + if (Math_fround(HEAPF32[($12 + 88 | 0) >> 2]) <= Math_fround(HEAPF32[($12 + 84 | 0) >> 2]) & 1 | 0) { + break label$4 + } + __assert_fail(68077 | 0, 74508 | 0, 66 | 0, 80824 | 0); + wasm2js_trap(); + } + label$5 : { + label$6 : { + if (!((HEAP32[($12 + 80 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$6 + } + if ((HEAP32[($12 + 80 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0) { + break label$5 + } + } + __assert_fail(85367 | 0, 74508 | 0, 67 | 0, 80824 | 0); + wasm2js_trap(); + } + label$7 : { + if ((HEAP32[($12 + 76 | 0) >> 2] | 0 | 0) != (5 | 0) & 1 | 0) { + break label$7 + } + if (HEAP32[($12 + 76 | 0) >> 2] | 0) { + break label$7 + } + if ((HEAP32[($12 + 76 | 0) >> 2] | 0 | 0) != (3 | 0) & 1 | 0) { + break label$7 + } + __assert_fail(83971 | 0, 74508 | 0, 68 | 0, 80824 | 0); + wasm2js_trap(); + } + HEAP32[($14 + 4 | 0) >> 2] = 24; + HEAP32[($14 + 72 | 0) >> 2] = HEAP32[($12 + 104 | 0) >> 2] | 0; + HEAP32[($14 + 76 | 0) >> 2] = HEAP32[($12 + 100 | 0) >> 2] | 0; + HEAPF32[($14 + 80 | 0) >> 2] = Math_fround(HEAPF32[($12 + 88 | 0) >> 2]); + HEAPF32[($14 + 84 | 0) >> 2] = Math_fround(HEAPF32[($12 + 84 | 0) >> 2]); + $100 = -1; + HEAPF32[($14 + 88 | 0) >> 2] = Math_fround((HEAP32[($12 + 104 | 0) >> 2] | 0) + $100 | 0 | 0); + HEAPF32[($14 + 92 | 0) >> 2] = Math_fround((HEAP32[($12 + 100 | 0) >> 2] | 0) + $100 | 0 | 0); + HEAPF32[($14 + 96 | 0) >> 2] = Math_fround(HEAPF32[($12 + 92 | 0) >> 2]); + HEAP32[($14 + 100 | 0) >> 2] = HEAP32[($12 + 96 | 0) >> 2] | 0; + HEAP32[($14 + 104 | 0) >> 2] = HEAP32[($12 + 76 | 0) >> 2] | 0; + HEAP8[($14 + 108 | 0) >> 0] = (HEAPU8[($12 + 75 | 0) >> 0] | 0) & 1 | 0; + $112 = 0; + HEAP8[($14 + 109 | 0) >> 0] = $112; + HEAP8[($14 + 110 | 0) >> 0] = $112; + HEAP32[($14 + 112 | 0) >> 2] = HEAP32[($12 + 80 | 0) >> 2] | 0; + $116 = 1065353216; + HEAP32[($12 + 68 | 0) >> 2] = $116; + HEAP32[($12 + 64 | 0) >> 2] = $116; + HEAP32[($12 + 60 | 0) >> 2] = $116; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($14 + 116 | 0 | 0, $12 + 68 | 0 | 0, $12 + 64 | 0 | 0, $12 + 60 | 0 | 0); + $123 = HEAP32[($14 + 112 | 0) >> 2] | 0; + label$8 : { + label$9 : { + switch ($123 | 0) { + case 0: + HEAPF32[($12 + 56 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($12 + 52 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($14 + 24 | 0 | 0, $14 + 80 | 0 | 0, $12 + 56 | 0 | 0, $12 + 52 | 0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($14 + 40 | 0 | 0, $14 + 84 | 0 | 0, $14 + 88 | 0 | 0, $14 + 92 | 0 | 0); + break label$8; + case 1: + HEAPF32[($12 + 48 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($12 + 44 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($14 + 24 | 0 | 0, $12 + 48 | 0 | 0, $14 + 80 | 0 | 0, $12 + 44 | 0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($14 + 40 | 0 | 0, $14 + 88 | 0 | 0, $14 + 84 | 0 | 0, $14 + 92 | 0 | 0); + break label$8; + case 2: + HEAPF32[($12 + 40 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($12 + 36 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($14 + 24 | 0 | 0, $12 + 40 | 0 | 0, $12 + 36 | 0 | 0, $14 + 80 | 0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($14 + 40 | 0 | 0, $14 + 88 | 0 | 0, $14 + 92 | 0 | 0, $14 + 84 | 0 | 0); + break label$8; + default: + break label$9; + }; + } + __assert_fail(86177 | 0, 74508 | 0, 111 | 0, 80824 | 0); + wasm2js_trap(); + } + HEAPF32[($12 + 16 | 0) >> 2] = Math_fround(.5); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($12 | 0, $14 + 24 | 0 | 0, $14 + 40 | 0 | 0); + operator__28float_20const__2c_20btVector3_20const__29($12 + 20 | 0 | 0, $12 + 16 | 0 | 0, $12 | 0); + $209 = $14 + 56 | 0; + i64toi32_i32$2 = $12; + i64toi32_i32$0 = HEAP32[($12 + 20 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($12 + 24 | 0) >> 2] | 0; + $614 = i64toi32_i32$0; + i64toi32_i32$0 = $209; + HEAP32[i64toi32_i32$0 >> 2] = $614; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $211 = 8; + i64toi32_i32$2 = ($12 + 20 | 0) + $211 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $627 = i64toi32_i32$1; + i64toi32_i32$1 = $209 + $211 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $627; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $12 + 112 | 0; + return; + } + + function btHeightfieldTerrainShape___btHeightfieldTerrainShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 98948 + 8 | 0; + btConcaveShape___btConcaveShape_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btHeightfieldTerrainShape___btHeightfieldTerrainShape_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[901 | 0]($4) | 0; + btHeightfieldTerrainShape__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btHeightfieldTerrainShape__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btHeightfieldTerrainShape__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $7 = 0, i64toi32_i32$2 = 0, $75 = 0, $76 = 0, $140 = 0, $142 = 0, $157 = 0, $159 = 0, $55 = Math_fround(0), $321 = 0, $325 = 0, $439 = 0, $452 = 0, $473 = 0, $486 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 240 | 0; + __stack_pointer = $6; + HEAP32[($6 + 236 | 0) >> 2] = $0; + HEAP32[($6 + 232 | 0) >> 2] = $1; + HEAP32[($6 + 228 | 0) >> 2] = $2; + HEAP32[($6 + 224 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 236 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 176 | 0 | 0, $7 + 40 | 0 | 0, $7 + 24 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($6 + 192 | 0 | 0, $6 + 176 | 0 | 0, $7 + 116 | 0 | 0); + HEAPF32[($6 + 172 | 0) >> 2] = Math_fround(.5); + operator__28btVector3_20const__2c_20float_20const__29($6 + 208 | 0 | 0, $6 + 192 | 0 | 0, $6 + 172 | 0 | 0); + HEAPF32[($6 + 152 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 148 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 144 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 156 | 0 | 0, $6 + 152 | 0 | 0, $6 + 148 | 0 | 0, $6 + 144 | 0 | 0) | 0; + $55 = Math_fround(Math_fround(Math_fround(HEAPF32[($7 + 80 | 0) >> 2]) + Math_fround(HEAPF32[($7 + 84 | 0) >> 2])) * Math_fround(.5)); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($6 + 156 | 0 | 0) | 0) + ((HEAP32[($7 + 112 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $55), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + btVector3__operator___28btVector3_20const__29_2($6 + 156 | 0 | 0, $7 + 116 | 0 | 0) | 0; + btMatrix3x3__absolute_28_29_20const($6 + 96 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($6 + 232 | 0) >> 2] | 0 | 0) | 0 | 0); + $75 = btTransform__getOrigin_28_29_20const(HEAP32[($6 + 232 | 0) >> 2] | 0 | 0) | 0; + $76 = 8; + i64toi32_i32$2 = $75 + $76 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $321 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 80 | 0) + $76 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $321; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $75; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $325 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 80 | 0) >> 2] = $325; + HEAP32[($6 + 84 | 0) >> 2] = i64toi32_i32$0; + btVector3__dot3_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29_20const($6 + 64 | 0 | 0, $6 + 208 | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($6 + 96 | 0 | 0, 0 | 0) | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($6 + 96 | 0 | 0, 1 | 0) | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($6 + 96 | 0 | 0, 2 | 0) | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($7))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($7))), HEAPF32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($7))), HEAPF32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 48 | 0 | 0, $6 + 44 | 0 | 0, $6 + 40 | 0 | 0, $6 + 36 | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($6 + 64 | 0 | 0, $6 + 48 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 20 | 0 | 0, $6 + 80 | 0 | 0, $6 + 64 | 0 | 0); + $140 = HEAP32[($6 + 228 | 0) >> 2] | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 20 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 24 | 0) >> 2] | 0; + $439 = i64toi32_i32$0; + i64toi32_i32$0 = $140; + HEAP32[i64toi32_i32$0 >> 2] = $439; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $142 = 8; + i64toi32_i32$2 = ($6 + 20 | 0) + $142 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $452 = i64toi32_i32$1; + i64toi32_i32$1 = $140 + $142 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $452; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 4 | 0 | 0, $6 + 80 | 0 | 0, $6 + 64 | 0 | 0); + $157 = HEAP32[($6 + 224 | 0) >> 2] | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 4 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 8 | 0) >> 2] | 0; + $473 = i64toi32_i32$0; + i64toi32_i32$0 = $157; + HEAP32[i64toi32_i32$0 >> 2] = $473; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $159 = 8; + i64toi32_i32$2 = ($6 + 4 | 0) + $159 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $486 = i64toi32_i32$1; + i64toi32_i32$1 = $157 + $159 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $486; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $6 + 240 | 0; + return; + } + + function btVector3__operator___28btVector3_20const__29_2($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAPF32[$5 >> 2] = Math_fround(Math_fround(HEAPF32[$5 >> 2]) * Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2])); + HEAPF32[($5 + 4 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2])); + HEAPF32[($5 + 8 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 8 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2])); + return $5 | 0; + } + + function btHeightfieldTerrainShape__getRawHeightFieldValue_28int_2c_20int_29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $8 = 0, $45 = 0, $55 = Math_fround(0); + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + HEAP32[($5 + 16 | 0) >> 2] = 0; + $8 = HEAP32[($6 + 104 | 0) >> 2] | 0; + label$1 : { + label$2 : { + switch ($8 | 0) { + case 0: + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($6 + 100 | 0) >> 2] | 0) + ((Math_imul(HEAP32[($5 + 20 | 0) >> 2] | 0, HEAP32[($6 + 72 | 0) >> 2] | 0) + (HEAP32[($5 + 24 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2]); + break label$1; + case 5: + HEAP8[($5 + 15 | 0) >> 0] = HEAPU8[((HEAP32[($6 + 100 | 0) >> 2] | 0) + (Math_imul(HEAP32[($5 + 20 | 0) >> 2] | 0, HEAP32[($6 + 72 | 0) >> 2] | 0) + (HEAP32[($5 + 24 | 0) >> 2] | 0) | 0) | 0) >> 0] | 0; + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(Math_fround((HEAPU8[($5 + 15 | 0) >> 0] | 0) & 255 | 0 | 0) * Math_fround(HEAPF32[($6 + 96 | 0) >> 2])); + break label$1; + case 3: + HEAP16[($5 + 12 | 0) >> 1] = HEAPU16[((HEAP32[($6 + 100 | 0) >> 2] | 0) + ((Math_imul(HEAP32[($5 + 20 | 0) >> 2] | 0, HEAP32[($6 + 72 | 0) >> 2] | 0) + (HEAP32[($5 + 24 | 0) >> 2] | 0) | 0) << 1 | 0) | 0) >> 1] | 0; + $45 = 16; + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(Math_fround(((HEAPU16[($5 + 12 | 0) >> 1] | 0) << $45 | 0) >> $45 | 0 | 0) * Math_fround(HEAPF32[($6 + 96 | 0) >> 2])); + break label$1; + default: + break label$2; + }; + } + __assert_fail(88263 | 0, 74508 | 0, 176 | 0, 81125 | 0); + wasm2js_trap(); + } + $55 = Math_fround(HEAPF32[($5 + 16 | 0) >> 2]); + __stack_pointer = $5 + 32 | 0; + return Math_fround($55); + } + + function btHeightfieldTerrainShape__getVertex_28int_2c_20int_2c_20btVector3__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $57 = 0, $59 = 0, $89 = 0, $119 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 64 | 0; + __stack_pointer = $6; + HEAP32[($6 + 60 | 0) >> 2] = $0; + HEAP32[($6 + 56 | 0) >> 2] = $1; + HEAP32[($6 + 52 | 0) >> 2] = $2; + HEAP32[($6 + 48 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 60 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($6 + 56 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85835 | 0, 74508 | 0, 189 | 0, 66266 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($6 + 52 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(85809 | 0, 74508 | 0, 190 | 0, 66266 | 0); + wasm2js_trap(); + } + label$3 : { + if ((HEAP32[($6 + 56 | 0) >> 2] | 0 | 0) < (HEAP32[($7 + 72 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$3 + } + __assert_fail(77901 | 0, 74508 | 0, 191 | 0, 66266 | 0); + wasm2js_trap(); + } + label$4 : { + if ((HEAP32[($6 + 52 | 0) >> 2] | 0 | 0) < (HEAP32[($7 + 76 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$4 + } + __assert_fail(77879 | 0, 74508 | 0, 192 | 0, 66266 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 68 | 0) >> 2] | 0 | 0]($7, HEAP32[($6 + 56 | 0) >> 2] | 0, HEAP32[($6 + 52 | 0) >> 2] | 0))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + $57 = HEAP32[($7 + 112 | 0) >> 2] | 0; + label$5 : { + label$6 : { + switch ($57 | 0) { + case 0: + $59 = HEAP32[($6 + 48 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[($6 + 44 | 0) >> 2]) - Math_fround(HEAPF32[(btVector3__getX_28_29_20const($7 + 56 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($6 + 36 | 0) >> 2] = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($7 + 88 | 0) >> 2])) / Math_fround(2.0)) + Math_fround(HEAP32[($6 + 56 | 0) >> 2] | 0 | 0)); + HEAPF32[($6 + 32 | 0) >> 2] = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($7 + 92 | 0) >> 2])) / Math_fround(2.0)) + Math_fround(HEAP32[($6 + 52 | 0) >> 2] | 0 | 0)); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($59 | 0, $6 + 40 | 0 | 0, $6 + 36 | 0 | 0, $6 + 32 | 0 | 0); + break label$5; + case 1: + $89 = HEAP32[($6 + 48 | 0) >> 2] | 0; + HEAPF32[($6 + 28 | 0) >> 2] = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($7 + 88 | 0) >> 2])) / Math_fround(2.0)) + Math_fround(HEAP32[($6 + 56 | 0) >> 2] | 0 | 0)); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[($6 + 44 | 0) >> 2]) - Math_fround(HEAPF32[(btVector3__getY_28_29_20const($7 + 56 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($6 + 20 | 0) >> 2] = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($7 + 92 | 0) >> 2])) / Math_fround(2.0)) + Math_fround(HEAP32[($6 + 52 | 0) >> 2] | 0 | 0)); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($89 | 0, $6 + 28 | 0 | 0, $6 + 24 | 0 | 0, $6 + 20 | 0 | 0); + break label$5; + case 2: + $119 = HEAP32[($6 + 48 | 0) >> 2] | 0; + HEAPF32[($6 + 16 | 0) >> 2] = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($7 + 88 | 0) >> 2])) / Math_fround(2.0)) + Math_fround(HEAP32[($6 + 56 | 0) >> 2] | 0 | 0)); + HEAPF32[($6 + 12 | 0) >> 2] = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($7 + 92 | 0) >> 2])) / Math_fround(2.0)) + Math_fround(HEAP32[($6 + 52 | 0) >> 2] | 0 | 0)); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[($6 + 44 | 0) >> 2]) - Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($7 + 56 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($119 | 0, $6 + 16 | 0 | 0, $6 + 12 | 0 | 0, $6 + 8 | 0 | 0); + break label$5; + default: + break label$6; + }; + } + __assert_fail(86177 | 0, 74508 | 0, 228 | 0, 66266 | 0); + wasm2js_trap(); + } + btVector3__operator___28btVector3_20const__29_2(HEAP32[($6 + 48 | 0) >> 2] | 0 | 0, $7 + 116 | 0 | 0) | 0; + __stack_pointer = $6 + 64 | 0; + return; + } + + function btHeightfieldTerrainShape__quantizeWithClamp_28int__2c_20btVector3_20const__2c_20int_29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $7 = 0, $8 = 0, $9 = 0, $63 = 0, $67 = 0, $23 = 0, $28 = 0, $33 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + $8 = HEAP32[($6 + 20 | 0) >> 2] | 0; + $9 = 8; + i64toi32_i32$2 = $8 + $9 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $63 = i64toi32_i32$0; + i64toi32_i32$0 = $6 + $9 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $63; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $67 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[$6 >> 2] = $67; + HEAP32[($6 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__setMax_28btVector3_20const__29($6 | 0, $7 + 24 | 0 | 0); + btVector3__setMin_28btVector3_20const__29($6 | 0, $7 + 40 | 0 | 0); + $23 = getQuantized_28float_29(Math_fround(Math_fround(HEAPF32[(btVector3__getX_28_29_20const($6 | 0) | 0) >> 2]))) | 0; + HEAP32[(HEAP32[($6 + 24 | 0) >> 2] | 0) >> 2] = $23; + $28 = getQuantized_28float_29(Math_fround(Math_fround(HEAPF32[(btVector3__getY_28_29_20const($6 | 0) | 0) >> 2]))) | 0; + HEAP32[((HEAP32[($6 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $28; + $33 = getQuantized_28float_29(Math_fround(Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($6 | 0) | 0) >> 2]))) | 0; + HEAP32[((HEAP32[($6 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] = $33; + __stack_pointer = $6 + 32 | 0; + return; + } + + function getQuantized_28float_29($0) { + $0 = Math_fround($0); + var $3 = 0, $14 = 0.0, $20 = 0, $26 = 0.0, $32 = 0; + $3 = __stack_pointer - 16 | 0; + HEAPF32[($3 + 8 | 0) >> 2] = $0; + label$1 : { + label$2 : { + if (!(+Math_fround(HEAPF32[($3 + 8 | 0) >> 2]) < +(0 | 0) & 1 | 0)) { + break label$2 + } + $14 = +Math_fround(HEAPF32[($3 + 8 | 0) >> 2]) - .5; + label$3 : { + label$4 : { + if (!(Math_abs($14) < 2147483648.0)) { + break label$4 + } + $20 = ~~$14; + break label$3; + } + $20 = -2147483648; + } + HEAP32[($3 + 12 | 0) >> 2] = $20; + break label$1; + } + $26 = +Math_fround(HEAPF32[($3 + 8 | 0) >> 2]) + .5; + label$5 : { + label$6 : { + if (!(Math_abs($26) < 2147483648.0)) { + break label$6 + } + $32 = ~~$26; + break label$5; + } + $32 = -2147483648; + } + HEAP32[($3 + 12 | 0) >> 2] = $32; + } + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btHeightfieldTerrainShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $120 = 0, $130 = 0, $137 = 0, $139 = 0, $143 = 0, $264 = 0, $265 = 0, $267 = 0, $309 = 0, $331 = 0, $354 = 0, $374 = 0, $8 = 0, $45 = 0, $263 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 208 | 0; + __stack_pointer = $6; + HEAP32[($6 + 204 | 0) >> 2] = $0; + HEAP32[($6 + 200 | 0) >> 2] = $1; + HEAP32[($6 + 196 | 0) >> 2] = $2; + HEAP32[($6 + 192 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 204 | 0) >> 2] | 0; + $8 = HEAP32[($6 + 196 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const($7 + 116 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 156 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const($7 + 116 | 0 | 0) | 0) + 4 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 152 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const($7 + 116 | 0 | 0) | 0) + 8 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 148 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 160 | 0 | 0, $6 + 156 | 0 | 0, $6 + 152 | 0 | 0, $6 + 148 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($6 + 176 | 0 | 0, $8 | 0, $6 + 160 | 0 | 0); + $45 = HEAP32[($6 + 192 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const($7 + 116 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 112 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const($7 + 116 | 0 | 0) | 0) + 4 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 108 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const($7 + 116 | 0 | 0) | 0) + 8 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 104 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 116 | 0 | 0, $6 + 112 | 0 | 0, $6 + 108 | 0 | 0, $6 + 104 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($6 + 132 | 0 | 0, $45 | 0, $6 + 116 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($6 + 176 | 0 | 0, $7 + 56 | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($6 + 132 | 0 | 0, $7 + 56 | 0 | 0) | 0; + btHeightfieldTerrainShape__quantizeWithClamp_28int__2c_20btVector3_20const__2c_20int_29_20const($7 | 0, $6 + 92 | 0 | 0, $6 + 176 | 0 | 0, 0 | 0); + btHeightfieldTerrainShape__quantizeWithClamp_28int__2c_20btVector3_20const__2c_20int_29_20const($7 | 0, $6 + 80 | 0 | 0, $6 + 132 | 0 | 0, 1 | 0); + HEAP32[($6 + 76 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 76 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$1 + } + $120 = ($6 + 92 | 0) + ((HEAP32[($6 + 76 | 0) >> 2] | 0) << 2 | 0) | 0; + HEAP32[$120 >> 2] = (HEAP32[$120 >> 2] | 0) + -1 | 0; + $130 = ($6 + 80 | 0) + ((HEAP32[($6 + 76 | 0) >> 2] | 0) << 2 | 0) | 0; + HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + 1 | 0; + HEAP32[($6 + 76 | 0) >> 2] = (HEAP32[($6 + 76 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + $137 = 0; + HEAP32[($6 + 72 | 0) >> 2] = $137; + $139 = -1; + HEAP32[($6 + 68 | 0) >> 2] = (HEAP32[($7 + 72 | 0) >> 2] | 0) + $139 | 0; + HEAP32[($6 + 64 | 0) >> 2] = $137; + HEAP32[($6 + 60 | 0) >> 2] = (HEAP32[($7 + 76 | 0) >> 2] | 0) + $139 | 0; + $143 = HEAP32[($7 + 112 | 0) >> 2] | 0; + label$3 : { + label$4 : { + switch ($143 | 0) { + case 0: + label$8 : { + if (!((HEAP32[($6 + 96 | 0) >> 2] | 0 | 0) > (HEAP32[($6 + 72 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[($6 + 72 | 0) >> 2] = HEAP32[($6 + 96 | 0) >> 2] | 0; + } + label$9 : { + if (!((HEAP32[($6 + 84 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 68 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$9 + } + HEAP32[($6 + 68 | 0) >> 2] = HEAP32[($6 + 84 | 0) >> 2] | 0; + } + label$10 : { + if (!((HEAP32[($6 + 100 | 0) >> 2] | 0 | 0) > (HEAP32[($6 + 64 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$10 + } + HEAP32[($6 + 64 | 0) >> 2] = HEAP32[($6 + 100 | 0) >> 2] | 0; + } + label$11 : { + if (!((HEAP32[($6 + 88 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 60 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$11 + } + HEAP32[($6 + 60 | 0) >> 2] = HEAP32[($6 + 88 | 0) >> 2] | 0; + } + break label$3; + case 1: + label$12 : { + if (!((HEAP32[($6 + 92 | 0) >> 2] | 0 | 0) > (HEAP32[($6 + 72 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$12 + } + HEAP32[($6 + 72 | 0) >> 2] = HEAP32[($6 + 92 | 0) >> 2] | 0; + } + label$13 : { + if (!((HEAP32[($6 + 80 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 68 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$13 + } + HEAP32[($6 + 68 | 0) >> 2] = HEAP32[($6 + 80 | 0) >> 2] | 0; + } + label$14 : { + if (!((HEAP32[($6 + 100 | 0) >> 2] | 0 | 0) > (HEAP32[($6 + 64 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$14 + } + HEAP32[($6 + 64 | 0) >> 2] = HEAP32[($6 + 100 | 0) >> 2] | 0; + } + label$15 : { + if (!((HEAP32[($6 + 88 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 60 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$15 + } + HEAP32[($6 + 60 | 0) >> 2] = HEAP32[($6 + 88 | 0) >> 2] | 0; + } + break label$3; + case 2: + label$16 : { + if (!((HEAP32[($6 + 92 | 0) >> 2] | 0 | 0) > (HEAP32[($6 + 72 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$16 + } + HEAP32[($6 + 72 | 0) >> 2] = HEAP32[($6 + 92 | 0) >> 2] | 0; + } + label$17 : { + if (!((HEAP32[($6 + 80 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 68 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$17 + } + HEAP32[($6 + 68 | 0) >> 2] = HEAP32[($6 + 80 | 0) >> 2] | 0; + } + label$18 : { + if (!((HEAP32[($6 + 96 | 0) >> 2] | 0 | 0) > (HEAP32[($6 + 64 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$18 + } + HEAP32[($6 + 64 | 0) >> 2] = HEAP32[($6 + 96 | 0) >> 2] | 0; + } + label$19 : { + if (!((HEAP32[($6 + 84 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 60 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$19 + } + HEAP32[($6 + 60 | 0) >> 2] = HEAP32[($6 + 84 | 0) >> 2] | 0; + } + break label$3; + default: + break label$4; + }; + } + __assert_fail(86177 | 0, 74508 | 0, 350 | 0, 70168 | 0); + wasm2js_trap(); + } + HEAP32[($6 + 56 | 0) >> 2] = HEAP32[($6 + 64 | 0) >> 2] | 0; + label$20 : { + label$21 : while (1) { + if (!((HEAP32[($6 + 56 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 60 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$20 + } + HEAP32[($6 + 52 | 0) >> 2] = HEAP32[($6 + 72 | 0) >> 2] | 0; + label$22 : { + label$23 : while (1) { + if (!((HEAP32[($6 + 52 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 68 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$22 + } + $263 = $6 + 48 | 0; + $264 = $6; + label$24 : while (1) { + $265 = $264; + btVector3__btVector3_28_29($265 | 0) | 0; + $267 = $265 + 16 | 0; + $264 = $267; + if (!(($267 | 0) == ($263 | 0) & 1 | 0)) { + continue label$24 + } + break label$24; + }; + label$25 : { + label$26 : { + label$27 : { + if ((HEAPU8[($7 + 108 | 0) >> 0] | 0) & 1 | 0) { + break label$27 + } + label$28 : { + if (!((HEAPU8[($7 + 109 | 0) >> 0] | 0) & 1 | 0)) { + break label$28 + } + if (!(((HEAP32[($6 + 56 | 0) >> 2] | 0) + (HEAP32[($6 + 52 | 0) >> 2] | 0) | 0) & 1 | 0)) { + break label$27 + } + } + if (!((HEAPU8[($7 + 110 | 0) >> 0] | 0) & 1 | 0)) { + break label$26 + } + if ((HEAP32[($6 + 56 | 0) >> 2] | 0) & 1 | 0) { + break label$26 + } + } + btHeightfieldTerrainShape__getVertex_28int_2c_20int_2c_20btVector3__29_20const($7 | 0, HEAP32[($6 + 52 | 0) >> 2] | 0 | 0, HEAP32[($6 + 56 | 0) >> 2] | 0 | 0, $6 | 0); + btHeightfieldTerrainShape__getVertex_28int_2c_20int_2c_20btVector3__29_20const($7 | 0, HEAP32[($6 + 52 | 0) >> 2] | 0 | 0, (HEAP32[($6 + 56 | 0) >> 2] | 0) + 1 | 0 | 0, $6 + 16 | 0 | 0); + btHeightfieldTerrainShape__getVertex_28int_2c_20int_2c_20btVector3__29_20const($7 | 0, (HEAP32[($6 + 52 | 0) >> 2] | 0) + 1 | 0 | 0, (HEAP32[($6 + 56 | 0) >> 2] | 0) + 1 | 0 | 0, $6 + 32 | 0 | 0); + $309 = HEAP32[($6 + 200 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$309 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($309, $6, HEAP32[($6 + 52 | 0) >> 2] | 0, HEAP32[($6 + 56 | 0) >> 2] | 0); + btHeightfieldTerrainShape__getVertex_28int_2c_20int_2c_20btVector3__29_20const($7 | 0, (HEAP32[($6 + 52 | 0) >> 2] | 0) + 1 | 0 | 0, (HEAP32[($6 + 56 | 0) >> 2] | 0) + 1 | 0 | 0, $6 + 16 | 0 | 0); + btHeightfieldTerrainShape__getVertex_28int_2c_20int_2c_20btVector3__29_20const($7 | 0, (HEAP32[($6 + 52 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($6 + 56 | 0) >> 2] | 0 | 0, $6 + 32 | 0 | 0); + $331 = HEAP32[($6 + 200 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$331 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($331, $6, HEAP32[($6 + 52 | 0) >> 2] | 0, HEAP32[($6 + 56 | 0) >> 2] | 0); + break label$25; + } + btHeightfieldTerrainShape__getVertex_28int_2c_20int_2c_20btVector3__29_20const($7 | 0, HEAP32[($6 + 52 | 0) >> 2] | 0 | 0, HEAP32[($6 + 56 | 0) >> 2] | 0 | 0, $6 | 0); + btHeightfieldTerrainShape__getVertex_28int_2c_20int_2c_20btVector3__29_20const($7 | 0, HEAP32[($6 + 52 | 0) >> 2] | 0 | 0, (HEAP32[($6 + 56 | 0) >> 2] | 0) + 1 | 0 | 0, $6 + 16 | 0 | 0); + btHeightfieldTerrainShape__getVertex_28int_2c_20int_2c_20btVector3__29_20const($7 | 0, (HEAP32[($6 + 52 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($6 + 56 | 0) >> 2] | 0 | 0, $6 + 32 | 0 | 0); + $354 = HEAP32[($6 + 200 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$354 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($354, $6, HEAP32[($6 + 52 | 0) >> 2] | 0, HEAP32[($6 + 56 | 0) >> 2] | 0); + btHeightfieldTerrainShape__getVertex_28int_2c_20int_2c_20btVector3__29_20const($7 | 0, (HEAP32[($6 + 52 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($6 + 56 | 0) >> 2] | 0 | 0, $6 | 0); + btHeightfieldTerrainShape__getVertex_28int_2c_20int_2c_20btVector3__29_20const($7 | 0, (HEAP32[($6 + 52 | 0) >> 2] | 0) + 1 | 0 | 0, (HEAP32[($6 + 56 | 0) >> 2] | 0) + 1 | 0 | 0, $6 + 32 | 0 | 0); + $374 = HEAP32[($6 + 200 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$374 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($374, $6, HEAP32[($6 + 52 | 0) >> 2] | 0, HEAP32[($6 + 56 | 0) >> 2] | 0); + } + HEAP32[($6 + 52 | 0) >> 2] = (HEAP32[($6 + 52 | 0) >> 2] | 0) + 1 | 0; + continue label$23; + }; + } + HEAP32[($6 + 56 | 0) >> 2] = (HEAP32[($6 + 56 | 0) >> 2] | 0) + 1 | 0; + continue label$21; + }; + } + __stack_pointer = $6 + 208 | 0; + return; + } + + function btHeightfieldTerrainShape__calculateLocalInertia_28float_2c_20btVector3__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAPF32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 20 | 0) >> 2] | 0; + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 8 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($6 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0, $5 + 8 | 0 | 0); + __stack_pointer = $5 + 32 | 0; + return; + } + + function btHeightfieldTerrainShape__setLocalScaling_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, $8 = 0, $10 = 0, $32 = 0, $42 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $8 = (HEAP32[($4 + 12 | 0) >> 2] | 0) + 116 | 0; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $32 = i64toi32_i32$0; + i64toi32_i32$0 = $8; + HEAP32[i64toi32_i32$0 >> 2] = $32; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $10 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $10 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $42 = i64toi32_i32$1; + i64toi32_i32$1 = $8 + $10 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $42; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function btHeightfieldTerrainShape__getLocalScaling_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 116 | 0 | 0; + } + + function btHeightfieldTerrainShape__getName_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 84431 | 0; + } + + function _GLOBAL__sub_I_btHeightfieldTerrainShape_cpp() { + __cxx_global_var_init_41(); + return; + } + + function __cxx_global_var_init_42() { + btInfMaskConverter__btInfMaskConverter_28int_29(114156 | 0, 2139095040 | 0) | 0; + return; + } + + function btOptimizedBvh__btOptimizedBvh_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btQuantizedBvh__btQuantizedBvh_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 99068 + 8 | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btOptimizedBvh___btOptimizedBvh_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btQuantizedBvh___btQuantizedBvh_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btOptimizedBvh___btOptimizedBvh_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[910 | 0]($4) | 0; + btOptimizedBvh__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btOptimizedBvh__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btOptimizedBvh__build_28btStridingMeshInterface__2c_20bool_2c_20btVector3_20const__2c_20btVector3_20const__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, i64toi32_i32$1 = 0, $9 = 0, i64toi32_i32$0 = 0, $109 = 0, $25 = 0, $45 = 0, $87 = 0, $164 = 0, $42 = 0, $106 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $7 = __stack_pointer - 224 | 0; + __stack_pointer = $7; + HEAP32[($7 + 220 | 0) >> 2] = $0; + HEAP32[($7 + 216 | 0) >> 2] = $1; + HEAP8[($7 + 215 | 0) >> 0] = $2; + HEAP32[($7 + 208 | 0) >> 2] = $3; + HEAP32[($7 + 204 | 0) >> 2] = $4; + $9 = HEAP32[($7 + 220 | 0) >> 2] | 0; + HEAP8[($9 + 60 | 0) >> 0] = (HEAPU8[($7 + 215 | 0) >> 0] | 0) & 1 | 0; + HEAP32[($7 + 200 | 0) >> 2] = 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($9 + 60 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btQuantizedBvh__setQuantizationValues_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($9 | 0, HEAP32[($7 + 208 | 0) >> 2] | 0 | 0, HEAP32[($7 + 204 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(1.0))); + btOptimizedBvh__build_28btStridingMeshInterface__2c_20bool_2c_20btVector3_20const__2c_20btVector3_20const__29__QuantizedNodeTriangleCallback__QuantizedNodeTriangleCallback_28btAlignedObjectArray_btQuantizedBvhNode___2c_20btQuantizedBvh_20const__29($7 + 188 | 0 | 0, $9 + 104 | 0 | 0, $9 | 0) | 0; + $25 = HEAP32[($7 + 216 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$25 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($25, $7 + 188 | 0, $9 + 4 | 0, $9 + 20 | 0); + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btAlignedObjectArray_btQuantizedBvhNode___size_28_29_20const($9 + 104 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 200 | 0) >> 2] = wasm2js_i32$1; + $42 = (HEAP32[($7 + 200 | 0) >> 2] | 0) << 1 | 0; + i64toi32_i32$0 = 0; + $45 = 0; + i64toi32_i32$1 = $7 + 176 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $45; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $7; + HEAP32[($7 + 168 | 0) >> 2] = $45; + HEAP32[($7 + 172 | 0) >> 2] = i64toi32_i32$0; + btAlignedObjectArray_btQuantizedBvhNode___resize_28int_2c_20btQuantizedBvhNode_20const__29($9 + 124 | 0 | 0, $42 | 0, $7 + 168 | 0 | 0); + btOptimizedBvh__build_28btStridingMeshInterface__2c_20bool_2c_20btVector3_20const__2c_20btVector3_20const__29__QuantizedNodeTriangleCallback___QuantizedNodeTriangleCallback_28_29($7 + 188 | 0 | 0) | 0; + break label$1; + } + btOptimizedBvh__build_28btStridingMeshInterface__2c_20bool_2c_20btVector3_20const__2c_20btVector3_20const__29__NodeTriangleCallback__NodeTriangleCallback_28btAlignedObjectArray_btOptimizedBvhNode___29($7 + 160 | 0 | 0, $9 + 64 | 0 | 0) | 0; + HEAPF32[($7 + 140 | 0) >> 2] = Math_fround(-999999984306749440.0); + HEAPF32[($7 + 136 | 0) >> 2] = Math_fround(-999999984306749440.0); + HEAPF32[($7 + 132 | 0) >> 2] = Math_fround(-999999984306749440.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 144 | 0 | 0, $7 + 140 | 0 | 0, $7 + 136 | 0 | 0, $7 + 132 | 0 | 0) | 0; + HEAPF32[($7 + 112 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAPF32[($7 + 108 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAPF32[($7 + 104 | 0) >> 2] = Math_fround(999999984306749440.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 116 | 0 | 0, $7 + 112 | 0 | 0, $7 + 108 | 0 | 0, $7 + 104 | 0 | 0) | 0; + $87 = HEAP32[($7 + 216 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$87 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($87, $7 + 160 | 0, $7 + 144 | 0, $7 + 116 | 0); + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btAlignedObjectArray_btOptimizedBvhNode___size_28_29_20const($9 + 64 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 200 | 0) >> 2] = wasm2js_i32$1; + $106 = (HEAP32[($7 + 200 | 0) >> 2] | 0) << 1 | 0; + i64toi32_i32$0 = 0; + $109 = 0; + i64toi32_i32$1 = $7 + 96 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $109; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $7 + 88 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $109; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $7 + 80 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $109; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $7 + 72 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $109; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $7 + 64 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $109; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $7 + 56 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $109; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $7 + 48 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $109; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $7; + HEAP32[($7 + 40 | 0) >> 2] = $109; + HEAP32[($7 + 44 | 0) >> 2] = i64toi32_i32$0; + btOptimizedBvhNode__btOptimizedBvhNode_28_29($7 + 40 | 0 | 0) | 0; + btAlignedObjectArray_btOptimizedBvhNode___resize_28int_2c_20btOptimizedBvhNode_20const__29($9 + 84 | 0 | 0, $106 | 0, $7 + 40 | 0 | 0); + btOptimizedBvh__build_28btStridingMeshInterface__2c_20bool_2c_20btVector3_20const__2c_20btVector3_20const__29__NodeTriangleCallback___NodeTriangleCallback_28_29($7 + 160 | 0 | 0) | 0; + } + HEAP32[($9 + 56 | 0) >> 2] = 0; + btQuantizedBvh__buildTree_28int_2c_20int_29($9 | 0, 0 | 0, HEAP32[($7 + 200 | 0) >> 2] | 0 | 0); + label$3 : { + if (!((HEAPU8[($9 + 60 | 0) >> 0] | 0) & 1 | 0)) { + break label$3 + } + if (btAlignedObjectArray_btBvhSubtreeInfo___size_28_29_20const($9 + 148 | 0 | 0) | 0) { + break label$3 + } + btBvhSubtreeInfo__btBvhSubtreeInfo_28_29($7 + 4 | 0 | 0) | 0; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btAlignedObjectArray_btBvhSubtreeInfo___expand_28btBvhSubtreeInfo_20const__29($9 + 148 | 0 | 0, $7 + 4 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_i32$1; + btBvhSubtreeInfo__setAabbFromQuantizeNode_28btQuantizedBvhNode_20const__29(HEAP32[($7 + 36 | 0) >> 2] | 0 | 0, btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($9 + 124 | 0 | 0, 0 | 0) | 0 | 0); + HEAP32[((HEAP32[($7 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] = 0; + label$4 : { + label$5 : { + if (!((btQuantizedBvhNode__isLeafNode_28_29_20const(btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($9 + 124 | 0 | 0, 0 | 0) | 0 | 0) | 0) & 1 | 0)) { + break label$5 + } + $164 = 1; + break label$4; + } + $164 = btQuantizedBvhNode__getEscapeIndex_28_29_20const(btAlignedObjectArray_btQuantizedBvhNode___operator_5b_5d_28int_29($9 + 124 | 0 | 0, 0 | 0) | 0 | 0) | 0; + } + HEAP32[((HEAP32[($7 + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] = $164; + } + (wasm2js_i32$0 = $9, wasm2js_i32$1 = btAlignedObjectArray_btBvhSubtreeInfo___size_28_29_20const($9 + 148 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 168 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btQuantizedBvhNode___clear_28_29($9 + 104 | 0 | 0); + btAlignedObjectArray_btOptimizedBvhNode___clear_28_29($9 + 64 | 0 | 0); + __stack_pointer = $7 + 224 | 0; + return; + } + + function btOptimizedBvh__build_28btStridingMeshInterface__2c_20bool_2c_20btVector3_20const__2c_20btVector3_20const__29__QuantizedNodeTriangleCallback__QuantizedNodeTriangleCallback_28btAlignedObjectArray_btQuantizedBvhNode___2c_20btQuantizedBvh_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btInternalTriangleIndexCallback__btInternalTriangleIndexCallback_28_29($6 | 0) | 0; + HEAP32[$6 >> 2] = 99140 + 8 | 0; + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + HEAP32[($6 + 8 | 0) >> 2] = HEAP32[($5 + 4 | 0) >> 2] | 0; + __stack_pointer = $5 + 16 | 0; + return $6 | 0; + } + + function btOptimizedBvh__build_28btStridingMeshInterface__2c_20bool_2c_20btVector3_20const__2c_20btVector3_20const__29__QuantizedNodeTriangleCallback___QuantizedNodeTriangleCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btInternalTriangleIndexCallback___btInternalTriangleIndexCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btOptimizedBvh__build_28btStridingMeshInterface__2c_20bool_2c_20btVector3_20const__2c_20btVector3_20const__29__NodeTriangleCallback__NodeTriangleCallback_28btAlignedObjectArray_btOptimizedBvhNode___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btInternalTriangleIndexCallback__btInternalTriangleIndexCallback_28_29($5 | 0) | 0; + HEAP32[$5 >> 2] = 99272 + 8 | 0; + HEAP32[($5 + 4 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function btOptimizedBvh__build_28btStridingMeshInterface__2c_20bool_2c_20btVector3_20const__2c_20btVector3_20const__29__NodeTriangleCallback___NodeTriangleCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btInternalTriangleIndexCallback___btInternalTriangleIndexCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btOptimizedBvh__serializeInPlace_28void__2c_20unsigned_20int_2c_20bool_29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $16 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP8[($6 + 3 | 0) >> 0] = $3; + $16 = (btQuantizedBvh__serialize_28void__2c_20unsigned_20int_2c_20bool_29_20const(HEAP32[($6 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6 + 4 | 0) >> 2] | 0 | 0, (HEAPU8[($6 + 3 | 0) >> 0] | 0) & 1 | 0 | 0) | 0) & 1 | 0; + __stack_pointer = $6 + 16 | 0; + return $16 | 0; + } + + function btOptimizedBvh__build_28btStridingMeshInterface__2c_20bool_2c_20btVector3_20const__2c_20btVector3_20const__29__QuantizedNodeTriangleCallback___QuantizedNodeTriangleCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btOptimizedBvh__build_28btStridingMeshInterface__2c_20bool_2c_20btVector3_20const__2c_20btVector3_20const__29__QuantizedNodeTriangleCallback___QuantizedNodeTriangleCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btOptimizedBvh__build_28btStridingMeshInterface__2c_20bool_2c_20btVector3_20const__2c_20btVector3_20const__29__QuantizedNodeTriangleCallback__internalProcessTriangleIndex_28btVector3__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 96 | 0; + __stack_pointer = $6; + HEAP32[($6 + 92 | 0) >> 2] = $0; + HEAP32[($6 + 88 | 0) >> 2] = $1; + HEAP32[($6 + 84 | 0) >> 2] = $2; + HEAP32[($6 + 80 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 92 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($6 + 84 | 0) >> 2] | 0 | 0) < (1024 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(86395 | 0, 73758 | 0, 100 | 0, 66568 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($6 + 80 | 0) >> 2] | 0 | 0) < (2097152 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(86842 | 0, 73758 | 0, 101 | 0, 66568 | 0); + wasm2js_trap(); + } + label$3 : { + if ((HEAP32[($6 + 80 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$3 + } + __assert_fail(85823 | 0, 73758 | 0, 103 | 0, 66568 | 0); + wasm2js_trap(); + } + btVector3__btVector3_28_29($6 + 48 | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 32 | 0 | 0) | 0; + HEAPF32[($6 + 28 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAPF32[($6 + 24 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAPF32[($6 + 20 | 0) >> 2] = Math_fround(999999984306749440.0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 48 | 0 | 0, $6 + 28 | 0 | 0, $6 + 24 | 0 | 0, $6 + 20 | 0 | 0); + HEAPF32[($6 + 16 | 0) >> 2] = Math_fround(-999999984306749440.0); + HEAPF32[($6 + 12 | 0) >> 2] = Math_fround(-999999984306749440.0); + HEAPF32[($6 + 8 | 0) >> 2] = Math_fround(-999999984306749440.0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 32 | 0 | 0, $6 + 16 | 0 | 0, $6 + 12 | 0 | 0, $6 + 8 | 0 | 0); + btVector3__setMin_28btVector3_20const__29($6 + 48 | 0 | 0, HEAP32[($6 + 88 | 0) >> 2] | 0 | 0); + btVector3__setMax_28btVector3_20const__29($6 + 32 | 0 | 0, HEAP32[($6 + 88 | 0) >> 2] | 0 | 0); + btVector3__setMin_28btVector3_20const__29($6 + 48 | 0 | 0, (HEAP32[($6 + 88 | 0) >> 2] | 0) + 16 | 0 | 0); + btVector3__setMax_28btVector3_20const__29($6 + 32 | 0 | 0, (HEAP32[($6 + 88 | 0) >> 2] | 0) + 16 | 0 | 0); + btVector3__setMin_28btVector3_20const__29($6 + 48 | 0 | 0, (HEAP32[($6 + 88 | 0) >> 2] | 0) + 32 | 0 | 0); + btVector3__setMax_28btVector3_20const__29($6 + 32 | 0 | 0, (HEAP32[($6 + 88 | 0) >> 2] | 0) + 32 | 0 | 0); + HEAPF32[($6 + 4 | 0) >> 2] = Math_fround(2.0000000949949026e-03); + HEAPF32[$6 >> 2] = Math_fround(1.0000000474974513e-03); + label$4 : { + if (!(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($6 + 32 | 0 | 0) | 0) >> 2]) - Math_fround(HEAPF32[(btVector3__x_28_29_20const($6 + 48 | 0 | 0) | 0) >> 2])) < Math_fround(2.0000000949949026e-03) & 1 | 0)) { + break label$4 + } + btVector3__setX_28float_29($6 + 32 | 0 | 0, Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($6 + 32 | 0 | 0) | 0) >> 2]) + Math_fround(1.0000000474974513e-03)))); + btVector3__setX_28float_29($6 + 48 | 0 | 0, Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($6 + 48 | 0 | 0) | 0) >> 2]) - Math_fround(1.0000000474974513e-03)))); + } + label$5 : { + if (!(Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($6 + 32 | 0 | 0) | 0) >> 2]) - Math_fround(HEAPF32[(btVector3__y_28_29_20const($6 + 48 | 0 | 0) | 0) >> 2])) < Math_fround(2.0000000949949026e-03) & 1 | 0)) { + break label$5 + } + btVector3__setY_28float_29($6 + 32 | 0 | 0, Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($6 + 32 | 0 | 0) | 0) >> 2]) + Math_fround(1.0000000474974513e-03)))); + btVector3__setY_28float_29($6 + 48 | 0 | 0, Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($6 + 48 | 0 | 0) | 0) >> 2]) - Math_fround(1.0000000474974513e-03)))); + } + label$6 : { + if (!(Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($6 + 32 | 0 | 0) | 0) >> 2]) - Math_fround(HEAPF32[(btVector3__z_28_29_20const($6 + 48 | 0 | 0) | 0) >> 2])) < Math_fround(2.0000000949949026e-03) & 1 | 0)) { + break label$6 + } + btVector3__setZ_28float_29($6 + 32 | 0 | 0, Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($6 + 32 | 0 | 0) | 0) >> 2]) + Math_fround(1.0000000474974513e-03)))); + btVector3__setZ_28float_29($6 + 48 | 0 | 0, Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($6 + 48 | 0 | 0) | 0) >> 2]) - Math_fround(1.0000000474974513e-03)))); + } + btQuantizedBvh__quantize_28unsigned_20short__2c_20btVector3_20const__2c_20int_29_20const(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0, $6 + 64 | 0 | 0, $6 + 48 | 0 | 0, 0 | 0); + btQuantizedBvh__quantize_28unsigned_20short__2c_20btVector3_20const__2c_20int_29_20const(HEAP32[($7 + 8 | 0) >> 2] | 0 | 0, ($6 + 64 | 0) + 6 | 0 | 0, $6 + 32 | 0 | 0, 1 | 0); + HEAP32[($6 + 76 | 0) >> 2] = (HEAP32[($6 + 84 | 0) >> 2] | 0) << 21 | 0 | (HEAP32[($6 + 80 | 0) >> 2] | 0) | 0; + btAlignedObjectArray_btQuantizedBvhNode___push_back_28btQuantizedBvhNode_20const__29(HEAP32[($7 + 4 | 0) >> 2] | 0 | 0, $6 + 64 | 0 | 0); + __stack_pointer = $6 + 96 | 0; + return; + } + + function btAlignedObjectArray_btQuantizedBvhNode___push_back_28btQuantizedBvhNode_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $22 = 0, $25 = 0, $88 = 0, $98 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btQuantizedBvhNode___size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btQuantizedBvhNode___capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btQuantizedBvhNode___reserve_28int_29($5 | 0, btAlignedObjectArray_btQuantizedBvhNode___allocSize_28int_29($5 | 0, btAlignedObjectArray_btQuantizedBvhNode___size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + $22 = btQuantizedBvhNode__operator_20new_28unsigned_20long_2c_20void__29(16 | 0, (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $88 = i64toi32_i32$0; + i64toi32_i32$0 = $22; + HEAP32[i64toi32_i32$0 >> 2] = $88; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $25 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $25 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $98 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $25 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $98; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btQuantizedBvhNode___allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btOptimizedBvh__build_28btStridingMeshInterface__2c_20bool_2c_20btVector3_20const__2c_20btVector3_20const__29__NodeTriangleCallback___NodeTriangleCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btOptimizedBvh__build_28btStridingMeshInterface__2c_20bool_2c_20btVector3_20const__2c_20btVector3_20const__29__NodeTriangleCallback___NodeTriangleCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btOptimizedBvh__build_28btStridingMeshInterface__2c_20bool_2c_20btVector3_20const__2c_20btVector3_20const__29__NodeTriangleCallback__internalProcessTriangleIndex_28btVector3__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $81 = 0, $83 = 0, $93 = 0, $95 = 0, $7 = 0, $262 = 0, $275 = 0, $286 = 0, $299 = 0; + $6 = __stack_pointer - 144 | 0; + __stack_pointer = $6; + HEAP32[($6 + 140 | 0) >> 2] = $0; + HEAP32[($6 + 136 | 0) >> 2] = $1; + HEAP32[($6 + 132 | 0) >> 2] = $2; + HEAP32[($6 + 128 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 140 | 0) >> 2] | 0; + btOptimizedBvhNode__btOptimizedBvhNode_28_29($6 + 64 | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 48 | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 32 | 0 | 0) | 0; + HEAPF32[($6 + 28 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAPF32[($6 + 24 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAPF32[($6 + 20 | 0) >> 2] = Math_fround(999999984306749440.0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 48 | 0 | 0, $6 + 28 | 0 | 0, $6 + 24 | 0 | 0, $6 + 20 | 0 | 0); + HEAPF32[($6 + 16 | 0) >> 2] = Math_fround(-999999984306749440.0); + HEAPF32[($6 + 12 | 0) >> 2] = Math_fround(-999999984306749440.0); + HEAPF32[($6 + 8 | 0) >> 2] = Math_fround(-999999984306749440.0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 32 | 0 | 0, $6 + 16 | 0 | 0, $6 + 12 | 0 | 0, $6 + 8 | 0 | 0); + btVector3__setMin_28btVector3_20const__29($6 + 48 | 0 | 0, HEAP32[($6 + 136 | 0) >> 2] | 0 | 0); + btVector3__setMax_28btVector3_20const__29($6 + 32 | 0 | 0, HEAP32[($6 + 136 | 0) >> 2] | 0 | 0); + btVector3__setMin_28btVector3_20const__29($6 + 48 | 0 | 0, (HEAP32[($6 + 136 | 0) >> 2] | 0) + 16 | 0 | 0); + btVector3__setMax_28btVector3_20const__29($6 + 32 | 0 | 0, (HEAP32[($6 + 136 | 0) >> 2] | 0) + 16 | 0 | 0); + btVector3__setMin_28btVector3_20const__29($6 + 48 | 0 | 0, (HEAP32[($6 + 136 | 0) >> 2] | 0) + 32 | 0 | 0); + btVector3__setMax_28btVector3_20const__29($6 + 32 | 0 | 0, (HEAP32[($6 + 136 | 0) >> 2] | 0) + 32 | 0 | 0); + $81 = $6 + 64 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 48 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 52 | 0) >> 2] | 0; + $262 = i64toi32_i32$0; + i64toi32_i32$0 = $81; + HEAP32[i64toi32_i32$0 >> 2] = $262; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $83 = 8; + i64toi32_i32$2 = ($6 + 48 | 0) + $83 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $275 = i64toi32_i32$1; + i64toi32_i32$1 = $81 + $83 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $275; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $93 = ($6 + 64 | 0) + 16 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 32 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 36 | 0) >> 2] | 0; + $286 = i64toi32_i32$0; + i64toi32_i32$0 = $93; + HEAP32[i64toi32_i32$0 >> 2] = $286; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $95 = 8; + i64toi32_i32$2 = ($6 + 32 | 0) + $95 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $299 = i64toi32_i32$1; + i64toi32_i32$1 = $93 + $95 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $299; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6 + 96 | 0) >> 2] = -1; + HEAP32[($6 + 100 | 0) >> 2] = HEAP32[($6 + 132 | 0) >> 2] | 0; + HEAP32[($6 + 104 | 0) >> 2] = HEAP32[($6 + 128 | 0) >> 2] | 0; + btAlignedObjectArray_btOptimizedBvhNode___push_back_28btOptimizedBvhNode_20const__29(HEAP32[($7 + 4 | 0) >> 2] | 0 | 0, $6 + 64 | 0 | 0); + __stack_pointer = $6 + 144 | 0; + return; + } + + function btAlignedObjectArray_btOptimizedBvhNode___push_back_28btOptimizedBvhNode_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $5 = 0, $4 = 0, $22 = 0, $23 = 0, $25 = 0, $29 = 0, $33 = 0, $37 = 0, $41 = 0, $45 = 0, $49 = 0, $112 = 0, $122 = 0, $132 = 0, $142 = 0, $152 = 0, $162 = 0, $172 = 0, $182 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btOptimizedBvhNode___size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btOptimizedBvhNode___capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btOptimizedBvhNode___reserve_28int_29($5 | 0, btAlignedObjectArray_btOptimizedBvhNode___allocSize_28int_29($5 | 0, btAlignedObjectArray_btOptimizedBvhNode___size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + $22 = btOptimizedBvhNode__operator_20new_28unsigned_20long_2c_20void__29(64 | 0, (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 6 | 0) | 0 | 0) | 0; + $23 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$2 = $23; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $112 = i64toi32_i32$0; + i64toi32_i32$0 = $22; + HEAP32[i64toi32_i32$0 >> 2] = $112; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $25 = 56; + i64toi32_i32$2 = i64toi32_i32$2 + $25 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $122 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $25 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $122; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $29 = 48; + i64toi32_i32$2 = $23 + $29 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $132 = i64toi32_i32$0; + i64toi32_i32$0 = $22 + $29 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $132; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $33 = 40; + i64toi32_i32$2 = $23 + $33 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $142 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $33 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $142; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $37 = 32; + i64toi32_i32$2 = $23 + $37 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $152 = i64toi32_i32$0; + i64toi32_i32$0 = $22 + $37 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $152; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $41 = 24; + i64toi32_i32$2 = $23 + $41 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $162 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $41 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $162; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $45 = 16; + i64toi32_i32$2 = $23 + $45 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $172 = i64toi32_i32$0; + i64toi32_i32$0 = $22 + $45 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $172; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $49 = 8; + i64toi32_i32$2 = $23 + $49 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $182 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $49 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $182; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btOptimizedBvhNode___allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function _GLOBAL__sub_I_btOptimizedBvh_cpp() { + __cxx_global_var_init_42(); + return; + } + + function __cxx_global_var_init_43() { + btInfMaskConverter__btInfMaskConverter_28int_29(114160 | 0, 2139095040 | 0) | 0; + return; + } + + function btConvexPolyhedron__btConvexPolyhedron_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 99396 + 8 | 0; + btAlignedObjectArray_btVector3___btAlignedObjectArray_28_29($4 + 4 | 0 | 0) | 0; + btAlignedObjectArray_btFace___btAlignedObjectArray_28_29($4 + 24 | 0 | 0) | 0; + btAlignedObjectArray_btVector3___btAlignedObjectArray_28_29($4 + 44 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 64 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 80 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 100 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 116 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConvexPolyhedron___btConvexPolyhedron_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 99396 + 8 | 0; + btAlignedObjectArray_btVector3____btAlignedObjectArray_28_29($4 + 44 | 0 | 0) | 0; + btAlignedObjectArray_btFace____btAlignedObjectArray_28_29($4 + 24 | 0 | 0) | 0; + btAlignedObjectArray_btVector3____btAlignedObjectArray_28_29($4 + 4 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConvexPolyhedron___btConvexPolyhedron_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[919 | 0]($4) | 0; + btConvexPolyhedron__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btConvexPolyhedron__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btConvexPolyhedron__testContainment_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, i64toi32_i32$2 = 0, $41 = 0, $84 = 0, $127 = 0, $173 = 0, $218 = 0, $266 = 0, $314 = 0, $365 = 0, $536 = 0, $540 = 0, $61 = 0, $66 = 0, $619 = 0, $623 = 0, $104 = 0, $702 = 0, $706 = 0, $147 = 0, $792 = 0, $796 = 0, $878 = 0, $882 = 0, $245 = 0, $971 = 0, $975 = 0, $1064 = 0, $1068 = 0, $1164 = 0, $1168 = 0, $442 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $3 = __stack_pointer - 368 | 0; + __stack_pointer = $3; + HEAP32[($3 + 360 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 360 | 0) >> 2] | 0; + HEAP32[($3 + 356 | 0) >> 2] = 0; + label$1 : { + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($3 + 356 | 0) >> 2] | 0 | 0) < (8 | 0) & 1 | 0)) { + break label$2 + } + btVector3__btVector3_28_29($3 + 336 | 0 | 0) | 0; + label$4 : { + label$5 : { + if (HEAP32[($3 + 356 | 0) >> 2] | 0) { + break label$5 + } + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 304 | 0 | 0, btVector3__operator_20float_20const__28_29_20const($4 + 80 | 0 | 0) | 0 | 0, (btVector3__operator_20float_20const__28_29_20const($4 + 80 | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const($4 + 80 | 0 | 0) | 0) + 8 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($3 + 320 | 0 | 0, $4 + 64 | 0 | 0, $3 + 304 | 0 | 0); + $41 = 8; + i64toi32_i32$2 = ($3 + 320 | 0) + $41 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $536 = i64toi32_i32$0; + i64toi32_i32$0 = ($3 + 336 | 0) + $41 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $536; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $3; + i64toi32_i32$1 = HEAP32[($3 + 320 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($3 + 324 | 0) >> 2] | 0; + $540 = i64toi32_i32$1; + i64toi32_i32$1 = $3; + HEAP32[($3 + 336 | 0) >> 2] = $540; + HEAP32[($3 + 340 | 0) >> 2] = i64toi32_i32$0; + break label$4; + } + label$6 : { + label$7 : { + if (!((HEAP32[($3 + 356 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$7 + } + $61 = btVector3__operator_20float_20const__28_29_20const($4 + 80 | 0 | 0) | 0; + $66 = (btVector3__operator_20float_20const__28_29_20const($4 + 80 | 0 | 0) | 0) + 4 | 0; + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const($4 + 80 | 0 | 0) | 0) + 8 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 268 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 272 | 0 | 0, $61 | 0, $66 | 0, $3 + 268 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($3 + 288 | 0 | 0, $4 + 64 | 0 | 0, $3 + 272 | 0 | 0); + $84 = 8; + i64toi32_i32$2 = ($3 + 288 | 0) + $84 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $619 = i64toi32_i32$0; + i64toi32_i32$0 = ($3 + 336 | 0) + $84 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $619; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $3; + i64toi32_i32$1 = HEAP32[($3 + 288 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($3 + 292 | 0) >> 2] | 0; + $623 = i64toi32_i32$1; + i64toi32_i32$1 = $3; + HEAP32[($3 + 336 | 0) >> 2] = $623; + HEAP32[($3 + 340 | 0) >> 2] = i64toi32_i32$0; + break label$6; + } + label$8 : { + label$9 : { + if (!((HEAP32[($3 + 356 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$9 + } + $104 = btVector3__operator_20float_20const__28_29_20const($4 + 80 | 0 | 0) | 0; + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const($4 + 80 | 0 | 0) | 0) + 4 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 232 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 236 | 0 | 0, $104 | 0, $3 + 232 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const($4 + 80 | 0 | 0) | 0) + 8 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($3 + 252 | 0 | 0, $4 + 64 | 0 | 0, $3 + 236 | 0 | 0); + $127 = 8; + i64toi32_i32$2 = ($3 + 252 | 0) + $127 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $702 = i64toi32_i32$0; + i64toi32_i32$0 = ($3 + 336 | 0) + $127 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $702; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $3; + i64toi32_i32$1 = HEAP32[($3 + 252 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($3 + 256 | 0) >> 2] | 0; + $706 = i64toi32_i32$1; + i64toi32_i32$1 = $3; + HEAP32[($3 + 336 | 0) >> 2] = $706; + HEAP32[($3 + 340 | 0) >> 2] = i64toi32_i32$0; + break label$8; + } + label$10 : { + label$11 : { + if (!((HEAP32[($3 + 356 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$11 + } + $147 = btVector3__operator_20float_20const__28_29_20const($4 + 80 | 0 | 0) | 0; + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const($4 + 80 | 0 | 0) | 0) + 4 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 196 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const($4 + 80 | 0 | 0) | 0) + 8 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 192 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 200 | 0 | 0, $147 | 0, $3 + 196 | 0 | 0, $3 + 192 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($3 + 216 | 0 | 0, $4 + 64 | 0 | 0, $3 + 200 | 0 | 0); + $173 = 8; + i64toi32_i32$2 = ($3 + 216 | 0) + $173 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $792 = i64toi32_i32$0; + i64toi32_i32$0 = ($3 + 336 | 0) + $173 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $792; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $3; + i64toi32_i32$1 = HEAP32[($3 + 216 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($3 + 220 | 0) >> 2] | 0; + $796 = i64toi32_i32$1; + i64toi32_i32$1 = $3; + HEAP32[($3 + 336 | 0) >> 2] = $796; + HEAP32[($3 + 340 | 0) >> 2] = i64toi32_i32$0; + break label$10; + } + label$12 : { + label$13 : { + if (!((HEAP32[($3 + 356 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$13 + } + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(-Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const($4 + 80 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 156 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 160 | 0 | 0, $3 + 156 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const($4 + 80 | 0 | 0) | 0) + 4 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const($4 + 80 | 0 | 0) | 0) + 8 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($3 + 176 | 0 | 0, $4 + 64 | 0 | 0, $3 + 160 | 0 | 0); + $218 = 8; + i64toi32_i32$2 = ($3 + 176 | 0) + $218 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $878 = i64toi32_i32$0; + i64toi32_i32$0 = ($3 + 336 | 0) + $218 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $878; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $3; + i64toi32_i32$1 = HEAP32[($3 + 176 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($3 + 180 | 0) >> 2] | 0; + $882 = i64toi32_i32$1; + i64toi32_i32$1 = $3; + HEAP32[($3 + 336 | 0) >> 2] = $882; + HEAP32[($3 + 340 | 0) >> 2] = i64toi32_i32$0; + break label$12; + } + label$14 : { + label$15 : { + if (!((HEAP32[($3 + 356 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$15 + } + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(-Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const($4 + 80 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 120 | 0) >> 2] = wasm2js_f32$0; + $245 = (btVector3__operator_20float_20const__28_29_20const($4 + 80 | 0 | 0) | 0) + 4 | 0; + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const($4 + 80 | 0 | 0) | 0) + 8 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 116 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 124 | 0 | 0, $3 + 120 | 0 | 0, $245 | 0, $3 + 116 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($3 + 140 | 0 | 0, $4 + 64 | 0 | 0, $3 + 124 | 0 | 0); + $266 = 8; + i64toi32_i32$2 = ($3 + 140 | 0) + $266 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $971 = i64toi32_i32$0; + i64toi32_i32$0 = ($3 + 336 | 0) + $266 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $971; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $3; + i64toi32_i32$1 = HEAP32[($3 + 140 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($3 + 144 | 0) >> 2] | 0; + $975 = i64toi32_i32$1; + i64toi32_i32$1 = $3; + HEAP32[($3 + 336 | 0) >> 2] = $975; + HEAP32[($3 + 340 | 0) >> 2] = i64toi32_i32$0; + break label$14; + } + label$16 : { + label$17 : { + if (!((HEAP32[($3 + 356 | 0) >> 2] | 0 | 0) == (6 | 0) & 1 | 0)) { + break label$17 + } + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(-Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const($4 + 80 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 80 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const($4 + 80 | 0 | 0) | 0) + 4 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 76 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 84 | 0 | 0, $3 + 80 | 0 | 0, $3 + 76 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const($4 + 80 | 0 | 0) | 0) + 8 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($3 + 100 | 0 | 0, $4 + 64 | 0 | 0, $3 + 84 | 0 | 0); + $314 = 8; + i64toi32_i32$2 = ($3 + 100 | 0) + $314 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1064 = i64toi32_i32$0; + i64toi32_i32$0 = ($3 + 336 | 0) + $314 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1064; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $3; + i64toi32_i32$1 = HEAP32[($3 + 100 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($3 + 104 | 0) >> 2] | 0; + $1068 = i64toi32_i32$1; + i64toi32_i32$1 = $3; + HEAP32[($3 + 336 | 0) >> 2] = $1068; + HEAP32[($3 + 340 | 0) >> 2] = i64toi32_i32$0; + break label$16; + } + label$18 : { + if (!((HEAP32[($3 + 356 | 0) >> 2] | 0 | 0) == (7 | 0) & 1 | 0)) { + break label$18 + } + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(-Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const($4 + 80 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const($4 + 80 | 0 | 0) | 0) + 4 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const($4 + 80 | 0 | 0) | 0) + 8 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 44 | 0 | 0, $3 + 40 | 0 | 0, $3 + 36 | 0 | 0, $3 + 32 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($3 + 60 | 0 | 0, $4 + 64 | 0 | 0, $3 + 44 | 0 | 0); + $365 = 8; + i64toi32_i32$2 = ($3 + 60 | 0) + $365 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1164 = i64toi32_i32$0; + i64toi32_i32$0 = ($3 + 336 | 0) + $365 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1164; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $3; + i64toi32_i32$1 = HEAP32[($3 + 60 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($3 + 64 | 0) >> 2] | 0; + $1168 = i64toi32_i32$1; + i64toi32_i32$1 = $3; + HEAP32[($3 + 336 | 0) >> 2] = $1168; + HEAP32[($3 + 340 | 0) >> 2] = i64toi32_i32$0; + } + } + } + } + } + } + } + } + HEAP32[($3 + 28 | 0) >> 2] = 0; + label$19 : { + label$20 : while (1) { + if (!((HEAP32[($3 + 28 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btFace___size_28_29_20const($4 + 24 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$19 + } + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 12 | 0 | 0, (btAlignedObjectArray_btFace___operator_5b_5d_28int_29_20const($4 + 24 | 0 | 0, HEAP32[($3 + 28 | 0) >> 2] | 0 | 0) | 0) + 20 | 0 | 0, ((btAlignedObjectArray_btFace___operator_5b_5d_28int_29_20const($4 + 24 | 0 | 0, HEAP32[($3 + 28 | 0) >> 2] | 0 | 0) | 0) + 20 | 0) + 4 | 0 | 0, ((btAlignedObjectArray_btFace___operator_5b_5d_28int_29_20const($4 + 24 | 0 | 0, HEAP32[($3 + 28 | 0) >> 2] | 0 | 0) | 0) + 20 | 0) + 8 | 0 | 0) | 0; + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(Math_fround(btVector3__dot_28btVector3_20const__29_20const($3 + 336 | 0 | 0, $3 + 12 | 0 | 0)) + Math_fround(HEAPF32[((btAlignedObjectArray_btFace___operator_5b_5d_28int_29_20const($4 + 24 | 0 | 0, HEAP32[($3 + 28 | 0) >> 2] | 0 | 0) | 0) + 32 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + label$21 : { + if (!(Math_fround(HEAPF32[($3 + 8 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$21 + } + HEAP8[($3 + 367 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + HEAP32[($3 + 28 | 0) >> 2] = (HEAP32[($3 + 28 | 0) >> 2] | 0) + 1 | 0; + continue label$20; + }; + } + HEAP32[($3 + 356 | 0) >> 2] = (HEAP32[($3 + 356 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + HEAP8[($3 + 367 | 0) >> 0] = 1 & 1 | 0; + } + $442 = (HEAPU8[($3 + 367 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $3 + 368 | 0; + return $442 | 0; + } + + function btConvexPolyhedron__initialize_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $561 = Math_fround(0), $617 = Math_fround(0), $73 = 0, $76 = 0, $89 = 0, $96 = 0, $134 = 0, $173 = 0, $188 = 0, $608 = 0, $673 = 0, $683 = 0, $580 = Math_fround(0), $601 = Math_fround(0), $666 = Math_fround(0), $676 = Math_fround(0), $689 = Math_fround(0), $697 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $3 = __stack_pointer - 464 | 0; + __stack_pointer = $3; + HEAP32[($3 + 460 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 460 | 0) >> 2] | 0; + btHashMap_btInternalVertexPair_2c_20btInternalEdge___btHashMap_28_29($3 + 380 | 0 | 0) | 0; + HEAPF32[($3 + 376 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 372 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 368 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 364 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 64 | 0 | 0, $3 + 372 | 0 | 0, $3 + 368 | 0 | 0, $3 + 364 | 0 | 0); + HEAP32[($3 + 360 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3 + 360 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btFace___size_28_29_20const($4 + 24 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btAlignedObjectArray_int___size_28_29_20const(btAlignedObjectArray_btFace___operator_5b_5d_28int_29($4 + 24 | 0 | 0, HEAP32[($3 + 360 | 0) >> 2] | 0 | 0) | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 356 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($3 + 352 | 0) >> 2] = HEAP32[($3 + 356 | 0) >> 2] | 0; + HEAP32[($3 + 348 | 0) >> 2] = 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($3 + 348 | 0) >> 2] | 0 | 0) < (HEAP32[($3 + 352 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($3 + 344 | 0) >> 2] = ((HEAP32[($3 + 348 | 0) >> 2] | 0) + 1 | 0 | 0) % (HEAP32[($3 + 356 | 0) >> 2] | 0 | 0) | 0; + $73 = 16; + $76 = 16; + btInternalVertexPair__btInternalVertexPair_28short_2c_20short_29($3 + 340 | 0 | 0, ((HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29(btAlignedObjectArray_btFace___operator_5b_5d_28int_29($4 + 24 | 0 | 0, HEAP32[($3 + 360 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($3 + 348 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0) << $73 | 0) >> $73 | 0 | 0, ((HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29(btAlignedObjectArray_btFace___operator_5b_5d_28int_29($4 + 24 | 0 | 0, HEAP32[($3 + 360 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($3 + 344 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0) << $76 | 0) >> $76 | 0 | 0) | 0; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btHashMap_btInternalVertexPair_2c_20btInternalEdge___find_28btInternalVertexPair_20const__29($3 + 380 | 0 | 0, $3 + 340 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 336 | 0) >> 2] = wasm2js_i32$1; + $89 = 16; + $96 = 16; + operator__28btVector3_20const__2c_20btVector3_20const__29($3 + 320 | 0 | 0, btAlignedObjectArray_btVector3___operator_5b_5d_28int_29($4 + 4 | 0 | 0, ((HEAPU16[($3 + 342 | 0) >> 1] | 0) << $89 | 0) >> $89 | 0 | 0) | 0 | 0, btAlignedObjectArray_btVector3___operator_5b_5d_28int_29($4 + 4 | 0 | 0, ((HEAPU16[($3 + 340 | 0) >> 1] | 0) << $96 | 0) >> $96 | 0 | 0) | 0 | 0); + btVector3__normalize_28_29($3 + 320 | 0 | 0) | 0; + HEAP8[($3 + 319 | 0) >> 0] = 0; + HEAP32[($3 + 312 | 0) >> 2] = 0; + label$5 : { + label$6 : while (1) { + if (!((HEAP32[($3 + 312 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btVector3___size_28_29_20const($4 + 44 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$5 + } + operator__28btVector3_20const__2c_20btVector3_20const__29($3 + 296 | 0 | 0, btAlignedObjectArray_btVector3___operator_5b_5d_28int_29($4 + 44 | 0 | 0, HEAP32[($3 + 312 | 0) >> 2] | 0 | 0) | 0 | 0, $3 + 320 | 0 | 0); + $134 = 1; + label$7 : { + if ((IsAlmostZero_28btVector3_20const__29($3 + 296 | 0 | 0) | 0) & 1 | 0) { + break label$7 + } + operator__28btVector3_20const__2c_20btVector3_20const__29_2($3 + 280 | 0 | 0, btAlignedObjectArray_btVector3___operator_5b_5d_28int_29($4 + 44 | 0 | 0, HEAP32[($3 + 312 | 0) >> 2] | 0 | 0) | 0 | 0, $3 + 320 | 0 | 0); + $134 = IsAlmostZero_28btVector3_20const__29($3 + 280 | 0 | 0) | 0; + } + label$8 : { + if (!($134 & 1 | 0)) { + break label$8 + } + HEAP8[($3 + 319 | 0) >> 0] = 1; + break label$5; + } + HEAP32[($3 + 312 | 0) >> 2] = (HEAP32[($3 + 312 | 0) >> 2] | 0) + 1 | 0; + continue label$6; + }; + } + label$9 : { + if ((HEAPU8[($3 + 319 | 0) >> 0] | 0) & 1 | 0) { + break label$9 + } + btAlignedObjectArray_btVector3___push_back_28btVector3_20const__29($4 + 44 | 0 | 0, $3 + 320 | 0 | 0); + } + label$10 : { + label$11 : { + if (!((HEAP32[($3 + 336 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$11 + } + $173 = 16; + label$12 : { + if ((((HEAPU16[(HEAP32[($3 + 336 | 0) >> 2] | 0) >> 1] | 0) << $173 | 0) >> $173 | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$12 + } + __assert_fail(85875 | 0, 73099 | 0, 142 | 0, 80824 | 0); + wasm2js_trap(); + } + $188 = 16; + label$13 : { + if ((((HEAPU16[((HEAP32[($3 + 336 | 0) >> 2] | 0) + 2 | 0) >> 1] | 0) << $188 | 0) >> $188 | 0 | 0) < (0 | 0) & 1 | 0) { + break label$13 + } + __assert_fail(86046 | 0, 73099 | 0, 143 | 0, 80824 | 0); + wasm2js_trap(); + } + HEAP16[((HEAP32[($3 + 336 | 0) >> 2] | 0) + 2 | 0) >> 1] = HEAP32[($3 + 360 | 0) >> 2] | 0; + break label$10; + } + btInternalEdge__btInternalEdge_28_29($3 + 276 | 0 | 0) | 0; + HEAP16[($3 + 276 | 0) >> 1] = HEAP32[($3 + 360 | 0) >> 2] | 0; + btHashMap_btInternalVertexPair_2c_20btInternalEdge___insert_28btInternalVertexPair_20const__2c_20btInternalEdge_20const__29($3 + 380 | 0 | 0, $3 + 340 | 0 | 0, $3 + 276 | 0 | 0); + } + HEAP32[($3 + 348 | 0) >> 2] = (HEAP32[($3 + 348 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + HEAP32[($3 + 360 | 0) >> 2] = (HEAP32[($3 + 360 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + HEAP32[($3 + 272 | 0) >> 2] = 0; + label$14 : { + label$15 : while (1) { + if (!((HEAP32[($3 + 272 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btFace___size_28_29_20const($4 + 24 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$14 + } + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btAlignedObjectArray_int___size_28_29_20const(btAlignedObjectArray_btFace___operator_5b_5d_28int_29($4 + 24 | 0 | 0, HEAP32[($3 + 272 | 0) >> 2] | 0 | 0) | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 268 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($3 + 264 | 0) >> 2] = (HEAP32[($3 + 268 | 0) >> 2] | 0) - 2 | 0; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29($4 + 4 | 0 | 0, HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29(btAlignedObjectArray_btFace___operator_5b_5d_28int_29($4 + 24 | 0 | 0, HEAP32[($3 + 272 | 0) >> 2] | 0 | 0) | 0 | 0, 0 | 0) | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 260 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($3 + 256 | 0) >> 2] = 1; + label$16 : { + label$17 : while (1) { + if (!((HEAP32[($3 + 256 | 0) >> 2] | 0 | 0) <= (HEAP32[($3 + 264 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$16 + } + HEAP32[($3 + 252 | 0) >> 2] = ((HEAP32[($3 + 256 | 0) >> 2] | 0) + 1 | 0 | 0) % (HEAP32[($3 + 268 | 0) >> 2] | 0 | 0) | 0; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29($4 + 4 | 0 | 0, HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29(btAlignedObjectArray_btFace___operator_5b_5d_28int_29($4 + 24 | 0 | 0, HEAP32[($3 + 272 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($3 + 256 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 248 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29($4 + 4 | 0 | 0, HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29(btAlignedObjectArray_btFace___operator_5b_5d_28int_29($4 + 24 | 0 | 0, HEAP32[($3 + 272 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($3 + 252 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 244 | 0) >> 2] = wasm2js_i32$1; + operator__28btVector3_20const__2c_20btVector3_20const__29($3 + 208 | 0 | 0, HEAP32[($3 + 260 | 0) >> 2] | 0 | 0, HEAP32[($3 + 248 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($3 + 192 | 0 | 0, HEAP32[($3 + 260 | 0) >> 2] | 0 | 0, HEAP32[($3 + 244 | 0) >> 2] | 0 | 0); + btVector3__cross_28btVector3_20const__29_20const($3 + 224 | 0 | 0, $3 + 208 | 0 | 0, $3 + 192 | 0 | 0); + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(Math_fround(btVector3__length_28_29_20const($3 + 224 | 0 | 0)) * Math_fround(.5))), HEAPF32[(wasm2js_i32$0 + 240 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($3 + 144 | 0 | 0, HEAP32[($3 + 260 | 0) >> 2] | 0 | 0, HEAP32[($3 + 248 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($3 + 160 | 0 | 0, $3 + 144 | 0 | 0, HEAP32[($3 + 244 | 0) >> 2] | 0 | 0); + HEAPF32[($3 + 140 | 0) >> 2] = Math_fround(3.0); + operator__28btVector3_20const__2c_20float_20const__29_1($3 + 176 | 0 | 0, $3 + 160 | 0 | 0, $3 + 140 | 0 | 0); + operator__28float_20const__2c_20btVector3_20const__29($3 + 124 | 0 | 0, $3 + 240 | 0 | 0, $3 + 176 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($4 + 64 | 0 | 0, $3 + 124 | 0 | 0) | 0; + HEAPF32[($3 + 376 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($3 + 376 | 0) >> 2]) + Math_fround(HEAPF32[($3 + 240 | 0) >> 2])); + HEAP32[($3 + 256 | 0) >> 2] = (HEAP32[($3 + 256 | 0) >> 2] | 0) + 1 | 0; + continue label$17; + }; + } + HEAP32[($3 + 272 | 0) >> 2] = (HEAP32[($3 + 272 | 0) >> 2] | 0) + 1 | 0; + continue label$15; + }; + } + btVector3__operator___28float_20const__29($4 + 64 | 0 | 0, $3 + 376 | 0 | 0) | 0; + HEAPF32[($4 + 96 | 0) >> 2] = Math_fround(3402823466385288598117041.0e14); + HEAP32[($3 + 120 | 0) >> 2] = 0; + label$18 : { + label$19 : while (1) { + if (!((HEAP32[($3 + 120 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btFace___size_28_29_20const($4 + 24 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$18 + } + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 104 | 0 | 0, (btAlignedObjectArray_btFace___operator_5b_5d_28int_29($4 + 24 | 0 | 0, HEAP32[($3 + 120 | 0) >> 2] | 0 | 0) | 0) + 20 | 0 | 0, ((btAlignedObjectArray_btFace___operator_5b_5d_28int_29($4 + 24 | 0 | 0, HEAP32[($3 + 120 | 0) >> 2] | 0 | 0) | 0) + 20 | 0) + 4 | 0 | 0, ((btAlignedObjectArray_btFace___operator_5b_5d_28int_29($4 + 24 | 0 | 0, HEAP32[($3 + 120 | 0) >> 2] | 0 | 0) | 0) + 20 | 0) + 8 | 0 | 0) | 0; + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(Math_fround(btVector3__dot_28btVector3_20const__29_20const($4 + 64 | 0 | 0, $3 + 104 | 0 | 0)) + Math_fround(HEAPF32[((btAlignedObjectArray_btFace___operator_5b_5d_28int_29($4 + 24 | 0 | 0, HEAP32[($3 + 120 | 0) >> 2] | 0 | 0) | 0) + 32 | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 100 | 0) >> 2] = wasm2js_f32$0; + label$20 : { + if (!(Math_fround(HEAPF32[($3 + 100 | 0) >> 2]) < Math_fround(HEAPF32[($4 + 96 | 0) >> 2]) & 1 | 0)) { + break label$20 + } + HEAPF32[($4 + 96 | 0) >> 2] = Math_fround(HEAPF32[($3 + 100 | 0) >> 2]); + } + HEAP32[($3 + 120 | 0) >> 2] = (HEAP32[($3 + 120 | 0) >> 2] | 0) + 1 | 0; + continue label$19; + }; + } + HEAPF32[($3 + 96 | 0) >> 2] = Math_fround(3402823466385288598117041.0e14); + HEAPF32[($3 + 92 | 0) >> 2] = Math_fround(3402823466385288598117041.0e14); + HEAPF32[($3 + 88 | 0) >> 2] = Math_fround(3402823466385288598117041.0e14); + HEAPF32[($3 + 84 | 0) >> 2] = Math_fround(-3402823466385288598117041.0e14); + HEAPF32[($3 + 80 | 0) >> 2] = Math_fround(-3402823466385288598117041.0e14); + HEAPF32[($3 + 76 | 0) >> 2] = Math_fround(-3402823466385288598117041.0e14); + HEAP32[($3 + 72 | 0) >> 2] = 0; + label$21 : { + label$22 : while (1) { + if (!((HEAP32[($3 + 72 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btVector3___size_28_29_20const($4 + 4 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$21 + } + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29($4 + 4 | 0 | 0, HEAP32[($3 + 72 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 68 | 0) >> 2] = wasm2js_i32$1; + label$23 : { + if (!(Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($3 + 68 | 0) >> 2] | 0 | 0) | 0) >> 2]) < Math_fround(HEAPF32[($3 + 96 | 0) >> 2]) & 1 | 0)) { + break label$23 + } + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($3 + 68 | 0) >> 2] | 0 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 96 | 0) >> 2] = wasm2js_f32$0; + } + label$24 : { + if (!(Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($3 + 68 | 0) >> 2] | 0 | 0) | 0) >> 2]) > Math_fround(HEAPF32[($3 + 84 | 0) >> 2]) & 1 | 0)) { + break label$24 + } + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($3 + 68 | 0) >> 2] | 0 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 84 | 0) >> 2] = wasm2js_f32$0; + } + label$25 : { + if (!(Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($3 + 68 | 0) >> 2] | 0 | 0) | 0) >> 2]) < Math_fround(HEAPF32[($3 + 92 | 0) >> 2]) & 1 | 0)) { + break label$25 + } + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($3 + 68 | 0) >> 2] | 0 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 92 | 0) >> 2] = wasm2js_f32$0; + } + label$26 : { + if (!(Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($3 + 68 | 0) >> 2] | 0 | 0) | 0) >> 2]) > Math_fround(HEAPF32[($3 + 80 | 0) >> 2]) & 1 | 0)) { + break label$26 + } + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($3 + 68 | 0) >> 2] | 0 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 80 | 0) >> 2] = wasm2js_f32$0; + } + label$27 : { + if (!(Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($3 + 68 | 0) >> 2] | 0 | 0) | 0) >> 2]) < Math_fround(HEAPF32[($3 + 88 | 0) >> 2]) & 1 | 0)) { + break label$27 + } + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($3 + 68 | 0) >> 2] | 0 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 88 | 0) >> 2] = wasm2js_f32$0; + } + label$28 : { + if (!(Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($3 + 68 | 0) >> 2] | 0 | 0) | 0) >> 2]) > Math_fround(HEAPF32[($3 + 76 | 0) >> 2]) & 1 | 0)) { + break label$28 + } + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($3 + 68 | 0) >> 2] | 0 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 76 | 0) >> 2] = wasm2js_f32$0; + } + HEAP32[($3 + 72 | 0) >> 2] = (HEAP32[($3 + 72 | 0) >> 2] | 0) + 1 | 0; + continue label$22; + }; + } + HEAPF32[($3 + 64 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($3 + 84 | 0) >> 2]) + Math_fround(HEAPF32[($3 + 96 | 0) >> 2])); + HEAPF32[($3 + 60 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($3 + 80 | 0) >> 2]) + Math_fround(HEAPF32[($3 + 92 | 0) >> 2])); + HEAPF32[($3 + 56 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($3 + 76 | 0) >> 2]) + Math_fround(HEAPF32[($3 + 88 | 0) >> 2])); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 100 | 0 | 0, $3 + 64 | 0 | 0, $3 + 60 | 0 | 0, $3 + 56 | 0 | 0); + HEAPF32[($3 + 52 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($3 + 84 | 0) >> 2]) - Math_fround(HEAPF32[($3 + 96 | 0) >> 2])); + HEAPF32[($3 + 48 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($3 + 80 | 0) >> 2]) - Math_fround(HEAPF32[($3 + 92 | 0) >> 2])); + HEAPF32[($3 + 44 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($3 + 76 | 0) >> 2]) - Math_fround(HEAPF32[($3 + 88 | 0) >> 2])); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 116 | 0 | 0, $3 + 52 | 0 | 0, $3 + 48 | 0 | 0, $3 + 44 | 0 | 0); + HEAPF32[($3 + 40 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($4 + 96 | 0) >> 2]) / Math_fround(Math_sqrt(Math_fround(3.0)))); + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btVector3__maxAxis_28_29_20const($4 + 116 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($4 + 116 | 0 | 0) | 0) + ((HEAP32[($3 + 36 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) * Math_fround(.5)) + Math_fround(-Math_fround(HEAPF32[($3 + 40 | 0) >> 2]))) / Math_fround(1024.0))), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + $561 = Math_fround(HEAPF32[($3 + 40 | 0) >> 2]); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($4 + 80 | 0 | 0) | 0, wasm2js_f32$0 = $561), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29($4 + 80 | 0 | 0) | 0, wasm2js_f32$0 = $561), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29($4 + 80 | 0 | 0) | 0, wasm2js_f32$0 = $561), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $580 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($4 + 116 | 0 | 0) | 0) + ((HEAP32[($3 + 36 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) * Math_fround(.5)); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($4 + 80 | 0 | 0) | 0) + ((HEAP32[($3 + 36 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $580), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP8[($3 + 31 | 0) >> 0] = 0; + HEAP32[($3 + 24 | 0) >> 2] = 0; + label$29 : { + label$30 : while (1) { + if (!((HEAP32[($3 + 24 | 0) >> 2] | 0 | 0) < (1024 | 0) & 1 | 0)) { + break label$29 + } + label$31 : { + if (!((btConvexPolyhedron__testContainment_28_29_20const($4 | 0) | 0) & 1 | 0)) { + break label$31 + } + HEAP8[($3 + 31 | 0) >> 0] = 1; + break label$29; + } + $601 = Math_fround(HEAPF32[($3 + 32 | 0) >> 2]); + $608 = (btVector3__operator_20float__28_29($4 + 80 | 0 | 0) | 0) + ((HEAP32[($3 + 36 | 0) >> 2] | 0) << 2 | 0) | 0; + HEAPF32[$608 >> 2] = Math_fround(Math_fround(HEAPF32[$608 >> 2]) - $601); + HEAP32[($3 + 24 | 0) >> 2] = (HEAP32[($3 + 24 | 0) >> 2] | 0) + 1 | 0; + continue label$30; + }; + } + label$32 : { + label$33 : { + if ((HEAPU8[($3 + 31 | 0) >> 0] | 0) & 1 | 0) { + break label$33 + } + $617 = Math_fround(HEAPF32[($3 + 40 | 0) >> 2]); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($4 + 80 | 0 | 0) | 0, wasm2js_f32$0 = $617), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29($4 + 80 | 0 | 0) | 0, wasm2js_f32$0 = $617), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29($4 + 80 | 0 | 0) | 0, wasm2js_f32$0 = $617), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + break label$32; + } + HEAPF32[($3 + 20 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($4 + 96 | 0) >> 2]) - Math_fround(HEAPF32[($3 + 40 | 0) >> 2])) / Math_fround(1024.0)); + HEAP32[($3 + 16 | 0) >> 2] = (1 << (HEAP32[($3 + 36 | 0) >> 2] | 0) | 0) & 3 | 0; + HEAP32[($3 + 12 | 0) >> 2] = (1 << (HEAP32[($3 + 16 | 0) >> 2] | 0) | 0) & 3 | 0; + HEAP32[($3 + 8 | 0) >> 2] = 0; + label$34 : { + label$35 : while (1) { + if (!((HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) < (1024 | 0) & 1 | 0)) { + break label$34 + } + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($4 + 80 | 0 | 0) | 0) + ((HEAP32[($3 + 16 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($4 + 80 | 0 | 0) | 0) + ((HEAP32[($3 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $666 = Math_fround(HEAPF32[($3 + 20 | 0) >> 2]); + $673 = (btVector3__operator_20float__28_29($4 + 80 | 0 | 0) | 0) + ((HEAP32[($3 + 16 | 0) >> 2] | 0) << 2 | 0) | 0; + HEAPF32[$673 >> 2] = Math_fround(Math_fround(HEAPF32[$673 >> 2]) + $666); + $676 = Math_fround(HEAPF32[($3 + 20 | 0) >> 2]); + $683 = (btVector3__operator_20float__28_29($4 + 80 | 0 | 0) | 0) + ((HEAP32[($3 + 12 | 0) >> 2] | 0) << 2 | 0) | 0; + HEAPF32[$683 >> 2] = Math_fround(Math_fround(HEAPF32[$683 >> 2]) + $676); + label$36 : { + if ((btConvexPolyhedron__testContainment_28_29_20const($4 | 0) | 0) & 1 | 0) { + break label$36 + } + $689 = Math_fround(HEAPF32[($3 + 4 | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($4 + 80 | 0 | 0) | 0) + ((HEAP32[($3 + 16 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $689), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $697 = Math_fround(HEAPF32[$3 >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($4 + 80 | 0 | 0) | 0) + ((HEAP32[($3 + 12 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $697), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + break label$34; + } + HEAP32[($3 + 8 | 0) >> 2] = (HEAP32[($3 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$35; + }; + } + } + btHashMap_btInternalVertexPair_2c_20btInternalEdge____btHashMap_28_29($3 + 380 | 0 | 0) | 0; + __stack_pointer = $3 + 464 | 0; + return; + } + + function btHashMap_btInternalVertexPair_2c_20btInternalEdge___btHashMap_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_int___btAlignedObjectArray_28_29($4 | 0) | 0; + btAlignedObjectArray_int___btAlignedObjectArray_28_29($4 + 20 | 0 | 0) | 0; + btAlignedObjectArray_btInternalEdge___btAlignedObjectArray_28_29($4 + 40 | 0 | 0) | 0; + btAlignedObjectArray_btInternalVertexPair___btAlignedObjectArray_28_29($4 + 60 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btInternalVertexPair__btInternalVertexPair_28short_2c_20short_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $10 = 0, $14 = 0, $24 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 8 | 0) >> 2] = $0; + HEAP16[($5 + 6 | 0) >> 1] = $1; + HEAP16[($5 + 4 | 0) >> 1] = $2; + $6 = HEAP32[($5 + 8 | 0) >> 2] | 0; + HEAP32[($5 + 12 | 0) >> 2] = $6; + HEAP16[$6 >> 1] = HEAPU16[($5 + 6 | 0) >> 1] | 0; + HEAP16[($6 + 2 | 0) >> 1] = HEAPU16[($5 + 4 | 0) >> 1] | 0; + $10 = 16; + $14 = 16; + label$1 : { + if (!((((HEAPU16[($6 + 2 | 0) >> 1] | 0) << $10 | 0) >> $10 | 0 | 0) > (((HEAPU16[$6 >> 1] | 0) << $14 | 0) >> $14 | 0 | 0) & 1 | 0)) { + break label$1 + } + void_20btSwap_short__28short__2c_20short__29($6 | 0, $6 + 2 | 0 | 0); + } + $24 = HEAP32[($5 + 12 | 0) >> 2] | 0; + __stack_pointer = $5 + 16 | 0; + return $24 | 0; + } + + function btHashMap_btInternalVertexPair_2c_20btInternalEdge___find_28btInternalVertexPair_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $20 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btHashMap_btInternalVertexPair_2c_20btInternalEdge___findIndex_28btInternalVertexPair_20const__29_20const($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[$4 >> 2] | 0 | 0) == (-1 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + break label$1; + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btInternalEdge___operator_5b_5d_28int_29($5 + 40 | 0 | 0, HEAP32[$4 >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + } + $20 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $20 | 0; + } + + function IsAlmostZero_28btVector3_20const__29($0) { + $0 = $0 | 0; + var $3 = 0, $39 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + label$1 : { + label$2 : { + label$3 : { + if (+Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2])))) > 1.0e-06 & 1 | 0) { + break label$3 + } + if (+Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2])))) > 1.0e-06 & 1 | 0) { + break label$3 + } + if (!(+Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2])))) > 1.0e-06 & 1 | 0)) { + break label$2 + } + } + HEAP8[($3 + 15 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + HEAP8[($3 + 15 | 0) >> 0] = 1 & 1 | 0; + } + $39 = (HEAPU8[($3 + 15 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $3 + 16 | 0; + return $39 | 0; + } + + function btInternalEdge__btInternalEdge_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP16[$4 >> 1] = 65535; + HEAP16[($4 + 2 | 0) >> 1] = 65535; + return $4 | 0; + } + + function btHashMap_btInternalVertexPair_2c_20btInternalEdge___insert_28btInternalVertexPair_20const__2c_20btInternalEdge_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $63 = 0, $68 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = (btInternalVertexPair__getHash_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) & ((btAlignedObjectArray_btInternalEdge___capacity_28_29_20const($6 + 40 | 0 | 0) | 0) - 1 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btHashMap_btInternalVertexPair_2c_20btInternalEdge___findIndex_28btInternalVertexPair_20const__29_20const($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) != (-1 | 0) & 1 | 0)) { + break label$2 + } + $7 = HEAP32[($5 + 20 | 0) >> 2] | 0; + $8 = btAlignedObjectArray_btInternalEdge___operator_5b_5d_28int_29($6 + 40 | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0; + $9 = HEAPU16[$7 >> 1] | 0 | ((HEAPU16[($7 + 2 | 0) >> 1] | 0) << 16 | 0) | 0; + HEAP16[$8 >> 1] = $9; + HEAP16[($8 + 2 | 0) >> 1] = $9 >>> 16 | 0; + break label$1; + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btInternalEdge___size_28_29_20const($6 + 40 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btInternalEdge___capacity_28_29_20const($6 + 40 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btInternalEdge___push_back_28btInternalEdge_20const__29($6 + 40 | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btInternalVertexPair___push_back_28btInternalVertexPair_20const__29($6 + 60 | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btInternalEdge___capacity_28_29_20const($6 + 40 | 0 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + label$3 : { + if (!((HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) < (HEAP32[$5 >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + btHashMap_btInternalVertexPair_2c_20btInternalEdge___growTables_28btInternalVertexPair_20const__29($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $5, wasm2js_i32$1 = (btInternalVertexPair__getHash_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) & ((btAlignedObjectArray_btInternalEdge___capacity_28_29_20const($6 + 40 | 0 | 0) | 0) - 1 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + } + $63 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($6 | 0, HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($6 + 20 | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $63), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $68 = HEAP32[($5 + 8 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($6 | 0, HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $68), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + } + __stack_pointer = $5 + 32 | 0; + return; + } + + function btHashMap_btInternalVertexPair_2c_20btInternalEdge____btHashMap_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btInternalVertexPair____btAlignedObjectArray_28_29($4 + 60 | 0 | 0) | 0; + btAlignedObjectArray_btInternalEdge____btAlignedObjectArray_28_29($4 + 40 | 0 | 0) | 0; + btAlignedObjectArray_int____btAlignedObjectArray_28_29($4 + 20 | 0 | 0) | 0; + btAlignedObjectArray_int____btAlignedObjectArray_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btInternalEdge___btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btInternalEdge_2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btInternalEdge___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btInternalVertexPair___btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btInternalVertexPair_2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btInternalVertexPair___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function void_20btSwap_short__28short__2c_20short__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP16[($4 + 6 | 0) >> 1] = HEAPU16[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 1] | 0; + HEAP16[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 1] = HEAPU16[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 1] | 0; + HEAP16[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 1] = HEAPU16[($4 + 6 | 0) >> 1] | 0; + return; + } + + function btHashMap_btInternalVertexPair_2c_20btInternalEdge___findIndex_28btInternalVertexPair_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $33 = 0, $55 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 24 | 0) >> 2] = $0; + HEAP32[($4 + 20 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 24 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = (btInternalVertexPair__getHash_28_29_20const(HEAP32[($4 + 20 | 0) >> 2] | 0 | 0) | 0) & ((btAlignedObjectArray_btInternalEdge___capacity_28_29_20const($5 + 40 | 0 | 0) | 0) - 1 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($4 + 16 | 0) >> 2] | 0) >>> 0 >= (btAlignedObjectArray_int___size_28_29_20const($5 | 0) | 0) >>> 0 & 1 | 0)) { + break label$2 + } + HEAP32[($4 + 28 | 0) >> 2] = -1; + break label$1; + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29_20const($5 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + label$3 : while (1) { + $33 = 0; + label$4 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (-1 | 0) & 1 | 0)) { + break label$4 + } + $33 = ((btInternalVertexPair__equals_28btInternalVertexPair_20const__29_20const(HEAP32[($4 + 20 | 0) >> 2] | 0 | 0, btAlignedObjectArray_btInternalVertexPair___operator_5b_5d_28int_29_20const($5 + 60 | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) & 1 | 0 | 0) == (0 | 0); + } + label$5 : { + if (!($33 & 1 | 0)) { + break label$5 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29_20const($5 + 20 | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + continue label$3; + } + break label$3; + }; + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 12 | 0) >> 2] | 0; + } + $55 = HEAP32[($4 + 28 | 0) >> 2] | 0; + __stack_pointer = $4 + 32 | 0; + return $55 | 0; + } + + function btAlignedObjectArray_btInternalEdge___operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btInternalEdge___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 2 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btInternalVertexPair__getHash_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $6 = 0, $10 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + $6 = 16; + $10 = 16; + return (((HEAPU16[$4 >> 1] | 0) << $6 | 0) >> $6 | 0) + ((((HEAPU16[($4 + 2 | 0) >> 1] | 0) << $10 | 0) >> $10 | 0) << 16 | 0) | 0 | 0; + } + + function btAlignedObjectArray_btInternalEdge___capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btInternalEdge___size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btInternalEdge___push_back_28btInternalEdge_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0, $6 = 0, $7 = 0, $8 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btInternalEdge___size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btInternalEdge___capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btInternalEdge___reserve_28int_29($5 | 0, btAlignedObjectArray_btInternalEdge___allocSize_28int_29($5 | 0, btAlignedObjectArray_btInternalEdge___size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + $6 = HEAP32[($4 + 8 | 0) >> 2] | 0; + $7 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0; + $8 = HEAPU16[$6 >> 1] | 0 | ((HEAPU16[($6 + 2 | 0) >> 1] | 0) << 16 | 0) | 0; + HEAP16[$7 >> 1] = $8; + HEAP16[($7 + 2 | 0) >> 1] = $8 >>> 16 | 0; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btInternalVertexPair___push_back_28btInternalVertexPair_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0, $6 = 0, $7 = 0, $8 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btInternalVertexPair___size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btInternalVertexPair___capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btInternalVertexPair___reserve_28int_29($5 | 0, btAlignedObjectArray_btInternalVertexPair___allocSize_28int_29($5 | 0, btAlignedObjectArray_btInternalVertexPair___size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + $6 = HEAP32[($4 + 8 | 0) >> 2] | 0; + $7 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0; + $8 = HEAPU16[$6 >> 1] | 0 | ((HEAPU16[($6 + 2 | 0) >> 1] | 0) << 16 | 0) | 0; + HEAP16[$7 >> 1] = $8; + HEAP16[($7 + 2 | 0) >> 1] = $8 >>> 16 | 0; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btHashMap_btInternalVertexPair_2c_20btInternalEdge___growTables_28btInternalVertexPair_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $17 = 0, $24 = 0, $80 = 0, $85 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btInternalEdge___capacity_28_29_20const($5 + 40 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((btAlignedObjectArray_int___size_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_int___size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + $17 = HEAP32[($4 + 20 | 0) >> 2] | 0; + HEAP32[($4 + 12 | 0) >> 2] = 0; + btAlignedObjectArray_int___resize_28int_2c_20int_20const__29($5 | 0, $17 | 0, $4 + 12 | 0 | 0); + $24 = HEAP32[($4 + 20 | 0) >> 2] | 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + btAlignedObjectArray_int___resize_28int_2c_20int_20const__29($5 + 20 | 0 | 0, $24 | 0, $4 + 8 | 0 | 0); + HEAP32[($4 + 4 | 0) >> 2] = 0; + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = -1), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + HEAP32[($4 + 4 | 0) >> 2] = 0; + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($5 + 20 | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = -1), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$5; + }; + } + HEAP32[($4 + 4 | 0) >> 2] = 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = (btInternalVertexPair__getHash_28_29_20const(btAlignedObjectArray_btInternalVertexPair___operator_5b_5d_28int_29($5 + 60 | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) & ((btAlignedObjectArray_btInternalEdge___capacity_28_29_20const($5 + 40 | 0 | 0) | 0) - 1 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $80 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($5 | 0, HEAP32[$4 >> 2] | 0 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($5 + 20 | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $80), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $85 = HEAP32[($4 + 4 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($5 | 0, HEAP32[$4 >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $85), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + __stack_pointer = $4 + 32 | 0; + return; + } + + function btAlignedObjectArray_btInternalVertexPair____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btInternalVertexPair___clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btInternalEdge____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btInternalEdge___clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConvexPolyhedron__project_28btTransform_20const__2c_20btVector3_20const__2c_20float__2c_20float__2c_20btVector3__2c_20btVector3__29_20const($0, $1, $2, $3, $4, $5, $6) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + var $9 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $10 = 0, $47 = 0, $49 = 0, $63 = 0, $65 = 0, $192 = 0, $205 = 0, $231 = 0, $244 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $9 = __stack_pointer - 64 | 0; + __stack_pointer = $9; + HEAP32[($9 + 60 | 0) >> 2] = $0; + HEAP32[($9 + 56 | 0) >> 2] = $1; + HEAP32[($9 + 52 | 0) >> 2] = $2; + HEAP32[($9 + 48 | 0) >> 2] = $3; + HEAP32[($9 + 44 | 0) >> 2] = $4; + HEAP32[($9 + 40 | 0) >> 2] = $5; + HEAP32[($9 + 36 | 0) >> 2] = $6; + $10 = HEAP32[($9 + 60 | 0) >> 2] | 0; + HEAPF32[(HEAP32[($9 + 48 | 0) >> 2] | 0) >> 2] = Math_fround(3402823466385288598117041.0e14); + HEAPF32[(HEAP32[($9 + 44 | 0) >> 2] | 0) >> 2] = Math_fround(-3402823466385288598117041.0e14); + (wasm2js_i32$0 = $9, wasm2js_i32$1 = btAlignedObjectArray_btVector3___size_28_29_20const($10 + 4 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($9 + 28 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($9 + 28 | 0) >> 2] | 0 | 0) < (HEAP32[($9 + 32 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + btTransform__operator__28btVector3_20const__29_20const($9 + 12 | 0 | 0, HEAP32[($9 + 56 | 0) >> 2] | 0 | 0, btAlignedObjectArray_btVector3___operator_5b_5d_28int_29_20const($10 + 4 | 0 | 0, HEAP32[($9 + 28 | 0) >> 2] | 0 | 0) | 0 | 0); + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($9 + 12 | 0 | 0, HEAP32[($9 + 52 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + label$3 : { + if (!(Math_fround(HEAPF32[($9 + 8 | 0) >> 2]) < Math_fround(HEAPF32[(HEAP32[($9 + 48 | 0) >> 2] | 0) >> 2]) & 1 | 0)) { + break label$3 + } + HEAPF32[(HEAP32[($9 + 48 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[($9 + 8 | 0) >> 2]); + $47 = HEAP32[($9 + 40 | 0) >> 2] | 0; + i64toi32_i32$2 = $9; + i64toi32_i32$0 = HEAP32[($9 + 12 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 16 | 0) >> 2] | 0; + $192 = i64toi32_i32$0; + i64toi32_i32$0 = $47; + HEAP32[i64toi32_i32$0 >> 2] = $192; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $49 = 8; + i64toi32_i32$2 = ($9 + 12 | 0) + $49 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $205 = i64toi32_i32$1; + i64toi32_i32$1 = $47 + $49 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $205; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + label$4 : { + if (!(Math_fround(HEAPF32[($9 + 8 | 0) >> 2]) > Math_fround(HEAPF32[(HEAP32[($9 + 44 | 0) >> 2] | 0) >> 2]) & 1 | 0)) { + break label$4 + } + HEAPF32[(HEAP32[($9 + 44 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[($9 + 8 | 0) >> 2]); + $63 = HEAP32[($9 + 36 | 0) >> 2] | 0; + i64toi32_i32$2 = $9; + i64toi32_i32$0 = HEAP32[($9 + 12 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 16 | 0) >> 2] | 0; + $231 = i64toi32_i32$0; + i64toi32_i32$0 = $63; + HEAP32[i64toi32_i32$0 >> 2] = $231; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $65 = 8; + i64toi32_i32$2 = ($9 + 12 | 0) + $65 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $244 = i64toi32_i32$1; + i64toi32_i32$1 = $63 + $65 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $244; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + HEAP32[($9 + 28 | 0) >> 2] = (HEAP32[($9 + 28 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + label$5 : { + if (!(Math_fround(HEAPF32[(HEAP32[($9 + 48 | 0) >> 2] | 0) >> 2]) > Math_fround(HEAPF32[(HEAP32[($9 + 44 | 0) >> 2] | 0) >> 2]) & 1 | 0)) { + break label$5 + } + void_20btSwap_float__28float__2c_20float__29(HEAP32[($9 + 48 | 0) >> 2] | 0 | 0, HEAP32[($9 + 44 | 0) >> 2] | 0 | 0); + void_20btSwap_btVector3__28btVector3__2c_20btVector3__29(HEAP32[($9 + 40 | 0) >> 2] | 0 | 0, HEAP32[($9 + 36 | 0) >> 2] | 0 | 0); + } + __stack_pointer = $9 + 64 | 0; + return; + } + + function void_20btSwap_float__28float__2c_20float__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAPF32[($4 + 4 | 0) >> 2] = Math_fround(HEAPF32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2]); + HEAPF32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2]); + HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[($4 + 4 | 0) >> 2]); + return; + } + + function void_20btSwap_btVector3__28btVector3__2c_20btVector3__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, $4 = 0, $5 = 0, $6 = 0, $14 = 0, $16 = 0, $20 = 0, $22 = 0, $50 = 0, $54 = 0, $62 = 0, $72 = 0, $78 = 0, $91 = 0; + $4 = __stack_pointer - 32 | 0; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + $6 = 8; + i64toi32_i32$2 = $5 + $6 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $50 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 8 | 0) + $6 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $50; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $5; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $54 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[(i64toi32_i32$1 + 8 | 0) >> 2] = $54; + HEAP32[(i64toi32_i32$1 + 12 | 0) >> 2] = i64toi32_i32$0; + $14 = HEAP32[(i64toi32_i32$1 + 28 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 24 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $62 = i64toi32_i32$0; + i64toi32_i32$0 = $14; + HEAP32[i64toi32_i32$0 >> 2] = $62; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $16 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $16 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $72 = i64toi32_i32$1; + i64toi32_i32$1 = $14 + $16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $72; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $20 = HEAP32[($4 + 24 | 0) >> 2] | 0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 12 | 0) >> 2] | 0; + $78 = i64toi32_i32$0; + i64toi32_i32$0 = $20; + HEAP32[i64toi32_i32$0 >> 2] = $78; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $22 = 8; + i64toi32_i32$2 = (i64toi32_i32$2 + 8 | 0) + $22 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $91 = i64toi32_i32$1; + i64toi32_i32$1 = $20 + $22 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $91; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function btAlignedAllocator_btInternalEdge_2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btInternalEdge___init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btAlignedAllocator_btInternalVertexPair_2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btInternalVertexPair___init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btAlignedObjectArray_btInternalVertexPair___clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btInternalVertexPair___destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btInternalVertexPair___size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btInternalVertexPair___deallocate_28_29($4 | 0); + btAlignedObjectArray_btInternalVertexPair___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btInternalEdge___clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btInternalEdge___destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btInternalEdge___size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btInternalEdge___deallocate_28_29($4 | 0); + btAlignedObjectArray_btInternalEdge___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btInternalVertexPair___size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btInternalVertexPair___destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btInternalVertexPair___deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btInternalVertexPair_2c_2016u___deallocate_28btInternalVertexPair__29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocator_btInternalVertexPair_2c_2016u___deallocate_28btInternalVertexPair__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btInternalEdge___destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btInternalEdge___deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btInternalEdge_2c_2016u___deallocate_28btInternalEdge__29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocator_btInternalEdge_2c_2016u___deallocate_28btInternalEdge__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btInternalVertexPair___operator_5b_5d_28int_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 176 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btInternalVertexPair___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 177 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 2 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btInternalVertexPair__equals_28btInternalVertexPair_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $7 = 0, $12 = 0, $21 = 0, $23 = 0, $28 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + $7 = 16; + $12 = 16; + $21 = 0; + label$1 : { + if (!((((HEAPU16[$5 >> 1] | 0) << $7 | 0) >> $7 | 0 | 0) == (((HEAPU16[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 1] | 0) << $12 | 0) >> $12 | 0 | 0) & 1 | 0)) { + break label$1 + } + $23 = 16; + $28 = 16; + $21 = (((HEAPU16[($5 + 2 | 0) >> 1] | 0) << $23 | 0) >> $23 | 0 | 0) == (((HEAPU16[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 2 | 0) >> 1] | 0) << $28 | 0) >> $28 | 0 | 0); + } + return $21 & 1 | 0 | 0; + } + + function btAlignedObjectArray_btInternalEdge___allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btAlignedObjectArray_btInternalEdge___reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btInternalEdge___capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btInternalEdge___allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btInternalEdge___copy_28int_2c_20int_2c_20btInternalEdge__29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btInternalEdge___size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btInternalEdge___destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btInternalEdge___size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btInternalEdge___deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btInternalVertexPair___capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btInternalVertexPair___allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btAlignedObjectArray_btInternalVertexPair___reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btInternalVertexPair___capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btInternalVertexPair___allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btInternalVertexPair___copy_28int_2c_20int_2c_20btInternalVertexPair__29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btInternalVertexPair___size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btInternalVertexPair___destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btInternalVertexPair___size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btInternalVertexPair___deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btInternalVertexPair___operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btInternalVertexPair___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 2 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btAlignedObjectArray_btInternalEdge___allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btInternalEdge_2c_2016u___allocate_28int_2c_20btInternalEdge_20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btInternalEdge___copy_28int_2c_20int_2c_20btInternalEdge__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $8 = 0, $9 = 0, $10 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + $8 = (HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0; + $9 = (HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0; + $10 = HEAPU16[$8 >> 1] | 0 | ((HEAPU16[($8 + 2 | 0) >> 1] | 0) << 16 | 0) | 0; + HEAP16[$9 >> 1] = $10; + HEAP16[($9 + 2 | 0) >> 1] = $10 >>> 16 | 0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedAllocator_btInternalEdge_2c_2016u___allocate_28int_2c_20btInternalEdge_20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btAlignedObjectArray_btInternalVertexPair___allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btInternalVertexPair_2c_2016u___allocate_28int_2c_20btInternalVertexPair_20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btInternalVertexPair___copy_28int_2c_20int_2c_20btInternalVertexPair__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $8 = 0, $9 = 0, $10 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + $8 = (HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0; + $9 = (HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0; + $10 = HEAPU16[$8 >> 1] | 0 | ((HEAPU16[($8 + 2 | 0) >> 1] | 0) << 16 | 0) | 0; + HEAP16[$9 >> 1] = $10; + HEAP16[($9 + 2 | 0) >> 1] = $10 >>> 16 | 0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedAllocator_btInternalVertexPair_2c_2016u___allocate_28int_2c_20btInternalVertexPair_20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function _GLOBAL__sub_I_btConvexPolyhedron_cpp() { + __cxx_global_var_init_43(); + return; + } + + function __cxx_global_var_init_44() { + btInfMaskConverter__btInfMaskConverter_28int_29(114164 | 0, 2139095040 | 0) | 0; + return; + } + + function btGeometryUtil__isPointInsidePlanes_28btAlignedObjectArray_btVector3__20const__2c_20btVector3_20const__2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0, $45 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 24 | 0) >> 2] = $0; + HEAP32[($5 + 20 | 0) >> 2] = $1; + HEAPF32[($5 + 16 | 0) >> 2] = $2; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btVector3___size_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($5 + 8 | 0) >> 2] = 0; + label$1 : { + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0)) + Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) + 12 | 0) >> 2])) - Math_fround(HEAPF32[($5 + 16 | 0) >> 2]))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + label$4 : { + if (!(Math_fround(HEAPF32[$5 >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$4 + } + HEAP8[($5 + 31 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + HEAP8[($5 + 31 | 0) >> 0] = 1 & 1 | 0; + } + $45 = (HEAPU8[($5 + 31 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $5 + 32 | 0; + return $45 | 0; + } + + function btGeometryUtil__areVerticesBehindPlane_28btVector3_20const__2c_20btAlignedObjectArray_btVector3__20const__2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0, $45 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 24 | 0) >> 2] = $0; + HEAP32[($5 + 20 | 0) >> 2] = $1; + HEAPF32[($5 + 16 | 0) >> 2] = $2; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btVector3___size_28_29_20const(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($5 + 8 | 0) >> 2] = 0; + label$1 : { + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29_20const(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0)) + Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) + 12 | 0) >> 2])) - Math_fround(HEAPF32[($5 + 16 | 0) >> 2]))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + label$4 : { + if (!(Math_fround(HEAPF32[$5 >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$4 + } + HEAP8[($5 + 31 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + HEAP8[($5 + 31 | 0) >> 0] = 1 & 1 | 0; + } + $45 = (HEAPU8[($5 + 31 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $5 + 32 | 0; + return $45 | 0; + } + + function notExist_28btVector3_20const__2c_20btAlignedObjectArray_btVector3__20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $36 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 24 | 0) >> 2] = $0; + HEAP32[($4 + 20 | 0) >> 2] = $1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btVector3___size_28_29_20const(HEAP32[($4 + 20 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + label$1 : { + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29_20const(HEAP32[($4 + 20 | 0) >> 2] | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + label$4 : { + if (!(Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0)) > Math_fround(.9990000128746033) & 1 | 0)) { + break label$4 + } + HEAP8[($4 + 31 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = (HEAP32[($4 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + HEAP8[($4 + 31 | 0) >> 0] = 1 & 1 | 0; + } + $36 = (HEAPU8[($4 + 31 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $4 + 32 | 0; + return $36 | 0; + } + + function btGeometryUtil__getPlaneEquationsFromVertices_28btAlignedObjectArray_btVector3___2c_20btAlignedObjectArray_btVector3___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $58 = 0, $72 = 0, $104 = 0, $312 = 0, $316 = 0, $343 = 0, $347 = 0, $403 = 0, $407 = 0, $136 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 160 | 0; + __stack_pointer = $4; + HEAP32[($4 + 156 | 0) >> 2] = $0; + HEAP32[($4 + 152 | 0) >> 2] = $1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btVector3___size_28_29_20const(HEAP32[($4 + 156 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 148 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($4 + 144 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 144 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 148 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29(HEAP32[($4 + 156 | 0) >> 2] | 0 | 0, HEAP32[($4 + 144 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 140 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($4 + 136 | 0) >> 2] = (HEAP32[($4 + 144 | 0) >> 2] | 0) + 1 | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($4 + 136 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 148 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29(HEAP32[($4 + 156 | 0) >> 2] | 0 | 0, HEAP32[($4 + 136 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 132 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($4 + 128 | 0) >> 2] = (HEAP32[($4 + 136 | 0) >> 2] | 0) + 1 | 0; + label$5 : { + label$6 : while (1) { + if (!((HEAP32[($4 + 128 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 148 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29(HEAP32[($4 + 156 | 0) >> 2] | 0 | 0, HEAP32[($4 + 128 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 124 | 0) >> 2] = wasm2js_i32$1; + btVector3__btVector3_28_29($4 + 104 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 88 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 72 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($4 + 56 | 0 | 0, HEAP32[($4 + 132 | 0) >> 2] | 0 | 0, HEAP32[($4 + 140 | 0) >> 2] | 0 | 0); + $58 = 8; + i64toi32_i32$2 = ($4 + 56 | 0) + $58 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $312 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 88 | 0) + $58 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $312; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $4; + i64toi32_i32$1 = HEAP32[($4 + 56 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($4 + 60 | 0) >> 2] | 0; + $316 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 88 | 0) >> 2] = $316; + HEAP32[($4 + 92 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($4 + 40 | 0 | 0, HEAP32[($4 + 124 | 0) >> 2] | 0 | 0, HEAP32[($4 + 140 | 0) >> 2] | 0 | 0); + $72 = 8; + i64toi32_i32$2 = ($4 + 40 | 0) + $72 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $343 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 72 | 0) + $72 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $343; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $4; + i64toi32_i32$1 = HEAP32[($4 + 40 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($4 + 44 | 0) >> 2] | 0; + $347 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 72 | 0) >> 2] = $347; + HEAP32[($4 + 76 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($4 + 36 | 0) >> 2] = Math_fround(1.0); + HEAP32[($4 + 32 | 0) >> 2] = 0; + label$7 : { + label$8 : while (1) { + if (!((HEAP32[($4 + 32 | 0) >> 2] | 0 | 0) < (2 | 0) & 1 | 0)) { + break label$7 + } + btVector3__cross_28btVector3_20const__29_20const($4 | 0, $4 + 88 | 0 | 0, $4 + 72 | 0 | 0); + operator__28float_20const__2c_20btVector3_20const__29($4 + 16 | 0 | 0, $4 + 36 | 0 | 0, $4 | 0); + $104 = 8; + i64toi32_i32$2 = ($4 + 16 | 0) + $104 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $403 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 104 | 0) + $104 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $403; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $4; + i64toi32_i32$1 = HEAP32[($4 + 16 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($4 + 20 | 0) >> 2] | 0; + $407 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 104 | 0) >> 2] = $407; + HEAP32[($4 + 108 | 0) >> 2] = i64toi32_i32$0; + label$9 : { + if (!(Math_fround(btVector3__length2_28_29_20const($4 + 104 | 0 | 0)) > Math_fround(9.999999747378752e-05) & 1 | 0)) { + break label$9 + } + btVector3__normalize_28_29($4 + 104 | 0 | 0) | 0; + label$10 : { + if (!((notExist_28btVector3_20const__2c_20btAlignedObjectArray_btVector3__20const__29($4 + 104 | 0 | 0, HEAP32[($4 + 152 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$10 + } + $136 = Math_fround(-Math_fround(btVector3__dot_28btVector3_20const__29_20const($4 + 104 | 0 | 0, HEAP32[($4 + 140 | 0) >> 2] | 0 | 0))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($4 + 104 | 0 | 0) | 0, wasm2js_f32$0 = $136), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + label$11 : { + if (!((btGeometryUtil__areVerticesBehindPlane_28btVector3_20const__2c_20btAlignedObjectArray_btVector3__20const__2c_20float_29($4 + 104 | 0 | 0, HEAP32[($4 + 156 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(.009999999776482582))) | 0) & 1 | 0)) { + break label$11 + } + btAlignedObjectArray_btVector3___push_back_28btVector3_20const__29(HEAP32[($4 + 152 | 0) >> 2] | 0 | 0, $4 + 104 | 0 | 0); + } + } + } + HEAPF32[($4 + 36 | 0) >> 2] = Math_fround(-1.0); + HEAP32[($4 + 32 | 0) >> 2] = (HEAP32[($4 + 32 | 0) >> 2] | 0) + 1 | 0; + continue label$8; + }; + } + HEAP32[($4 + 128 | 0) >> 2] = (HEAP32[($4 + 128 | 0) >> 2] | 0) + 1 | 0; + continue label$6; + }; + } + HEAP32[($4 + 136 | 0) >> 2] = (HEAP32[($4 + 136 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + HEAP32[($4 + 144 | 0) >> 2] = (HEAP32[($4 + 144 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $4 + 160 | 0; + return; + } + + function btGeometryUtil__getVerticesFromPlaneEquations_28btAlignedObjectArray_btVector3__20const__2c_20btAlignedObjectArray_btVector3___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $52 = 0, $69 = 0, $86 = 0, $154 = 0, $324 = 0, $328 = 0, $361 = 0, $365 = 0, $398 = 0, $402 = 0, $529 = 0, $533 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 160 | 0; + __stack_pointer = $4; + HEAP32[($4 + 156 | 0) >> 2] = $0; + HEAP32[($4 + 152 | 0) >> 2] = $1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btVector3___size_28_29_20const(HEAP32[($4 + 156 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 148 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($4 + 144 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 144 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 148 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29_20const(HEAP32[($4 + 156 | 0) >> 2] | 0 | 0, HEAP32[($4 + 144 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 140 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($4 + 136 | 0) >> 2] = (HEAP32[($4 + 144 | 0) >> 2] | 0) + 1 | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($4 + 136 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 148 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29_20const(HEAP32[($4 + 156 | 0) >> 2] | 0 | 0, HEAP32[($4 + 136 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 132 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($4 + 128 | 0) >> 2] = (HEAP32[($4 + 136 | 0) >> 2] | 0) + 1 | 0; + label$5 : { + label$6 : while (1) { + if (!((HEAP32[($4 + 128 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 148 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29_20const(HEAP32[($4 + 156 | 0) >> 2] | 0 | 0, HEAP32[($4 + 128 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 124 | 0) >> 2] = wasm2js_i32$1; + btVector3__btVector3_28_29($4 + 104 | 0 | 0) | 0; + btVector3__cross_28btVector3_20const__29_20const($4 + 88 | 0 | 0, HEAP32[($4 + 132 | 0) >> 2] | 0 | 0, HEAP32[($4 + 124 | 0) >> 2] | 0 | 0); + $52 = 8; + i64toi32_i32$2 = ($4 + 88 | 0) + $52 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $324 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 104 | 0) + $52 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $324; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $4; + i64toi32_i32$1 = HEAP32[($4 + 88 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($4 + 92 | 0) >> 2] | 0; + $328 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 104 | 0) >> 2] = $328; + HEAP32[($4 + 108 | 0) >> 2] = i64toi32_i32$0; + btVector3__btVector3_28_29($4 + 72 | 0 | 0) | 0; + btVector3__cross_28btVector3_20const__29_20const($4 + 56 | 0 | 0, HEAP32[($4 + 124 | 0) >> 2] | 0 | 0, HEAP32[($4 + 140 | 0) >> 2] | 0 | 0); + $69 = 8; + i64toi32_i32$2 = ($4 + 56 | 0) + $69 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $361 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 72 | 0) + $69 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $361; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $4; + i64toi32_i32$1 = HEAP32[($4 + 56 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($4 + 60 | 0) >> 2] | 0; + $365 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 72 | 0) >> 2] = $365; + HEAP32[($4 + 76 | 0) >> 2] = i64toi32_i32$0; + btVector3__btVector3_28_29($4 + 40 | 0 | 0) | 0; + btVector3__cross_28btVector3_20const__29_20const($4 + 24 | 0 | 0, HEAP32[($4 + 140 | 0) >> 2] | 0 | 0, HEAP32[($4 + 132 | 0) >> 2] | 0 | 0); + $86 = 8; + i64toi32_i32$2 = ($4 + 24 | 0) + $86 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $398 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 40 | 0) + $86 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $398; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $4; + i64toi32_i32$1 = HEAP32[($4 + 24 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($4 + 28 | 0) >> 2] | 0; + $402 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 40 | 0) >> 2] = $402; + HEAP32[($4 + 44 | 0) >> 2] = i64toi32_i32$0; + label$7 : { + if (!(Math_fround(btVector3__length2_28_29_20const($4 + 104 | 0 | 0)) > Math_fround(9.999999747378752e-05) & 1 | 0)) { + break label$7 + } + if (!(Math_fround(btVector3__length2_28_29_20const($4 + 72 | 0 | 0)) > Math_fround(9.999999747378752e-05) & 1 | 0)) { + break label$7 + } + if (!(Math_fround(btVector3__length2_28_29_20const($4 + 40 | 0 | 0)) > Math_fround(9.999999747378752e-05) & 1 | 0)) { + break label$7 + } + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($4 + 140 | 0) >> 2] | 0 | 0, $4 + 104 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + label$8 : { + if (!(Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[($4 + 20 | 0) >> 2])))) > Math_fround(9.999999974752427e-07) & 1 | 0)) { + break label$8 + } + HEAPF32[($4 + 20 | 0) >> 2] = Math_fround(Math_fround(-1.0) / Math_fround(HEAPF32[($4 + 20 | 0) >> 2])); + btVector3__operator___28float_20const__29_1($4 + 104 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($4 + 140 | 0) >> 2] | 0 | 0) | 0) + 12 | 0 | 0) | 0; + btVector3__operator___28float_20const__29_1($4 + 72 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($4 + 132 | 0) >> 2] | 0 | 0) | 0) + 12 | 0 | 0) | 0; + btVector3__operator___28float_20const__29_1($4 + 40 | 0 | 0, (btVector3__operator_20float_20const__28_29_20const(HEAP32[($4 + 124 | 0) >> 2] | 0 | 0) | 0) + 12 | 0 | 0) | 0; + $154 = 8; + i64toi32_i32$2 = ($4 + 104 | 0) + $154 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $529 = i64toi32_i32$0; + i64toi32_i32$0 = $4 + $154 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $529; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $4; + i64toi32_i32$1 = HEAP32[($4 + 104 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($4 + 108 | 0) >> 2] | 0; + $533 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[$4 >> 2] = $533; + HEAP32[($4 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__operator___28btVector3_20const__29_1($4 | 0, $4 + 72 | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($4 | 0, $4 + 40 | 0 | 0) | 0; + btVector3__operator___28float_20const__29_1($4 | 0, $4 + 20 | 0 | 0) | 0; + label$9 : { + if (!((btGeometryUtil__isPointInsidePlanes_28btAlignedObjectArray_btVector3__20const__2c_20btVector3_20const__2c_20float_29(HEAP32[($4 + 156 | 0) >> 2] | 0 | 0, $4 | 0, Math_fround(Math_fround(.009999999776482582))) | 0) & 1 | 0)) { + break label$9 + } + btAlignedObjectArray_btVector3___push_back_28btVector3_20const__29(HEAP32[($4 + 152 | 0) >> 2] | 0 | 0, $4 | 0); + } + } + } + HEAP32[($4 + 128 | 0) >> 2] = (HEAP32[($4 + 128 | 0) >> 2] | 0) + 1 | 0; + continue label$6; + }; + } + HEAP32[($4 + 136 | 0) >> 2] = (HEAP32[($4 + 136 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + HEAP32[($4 + 144 | 0) >> 2] = (HEAP32[($4 + 144 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $4 + 160 | 0; + return; + } + + function _GLOBAL__sub_I_btGeometryUtil_cpp() { + __cxx_global_var_init_44(); + return; + } + + function __cxx_global_var_init_45() { + btInfMaskConverter__btInfMaskConverter_28int_29(114168 | 0, 2139095040 | 0) | 0; + return; + } + + function btConvexHullInternal__Int128__operator__28long_20long_29_20const($0, $1, $2, $2$hi) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $2$hi = $2$hi | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, $5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$4 = 0, $6 = 0, $7$hi = 0, $8$hi = 0, $27$hi = 0, $28$hi = 0, $36 = 0, $37 = 0, $38 = 0, $20 = 0, $39 = 0, $40 = 0, $41 = 0, $39$hi = 0, $42$hi = 0, $43$hi = 0, $47$hi = 0, $48$hi = 0, $49$hi = 0, $59 = 0, $115 = 0, $119 = 0, $144$hi = 0, $145 = 0, $42 = 0, $159 = 0, $47 = 0, $165 = 0, $49 = 0, $169$hi = 0, $190 = 0, $203 = 0; + $5 = __stack_pointer - 64 | 0; + __stack_pointer = $5; + HEAP32[($5 + 60 | 0) >> 2] = $1; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$1 = $5; + HEAP32[(i64toi32_i32$1 + 48 | 0) >> 2] = $2; + HEAP32[(i64toi32_i32$1 + 52 | 0) >> 2] = i64toi32_i32$0; + $6 = HEAP32[(i64toi32_i32$1 + 60 | 0) >> 2] | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 12 | 0) >> 2] | 0; + $7$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $8$hi = i64toi32_i32$1; + i64toi32_i32$1 = $7$hi; + i64toi32_i32$1 = $8$hi; + i64toi32_i32$1 = $7$hi; + i64toi32_i32$1 = $8$hi; + i64toi32_i32$1 = $7$hi; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$0 = $8$hi; + i64toi32_i32$3 = 0; + if ((i64toi32_i32$1 | 0) < (i64toi32_i32$0 | 0)) { + $36 = 1 + } else { + if ((i64toi32_i32$1 | 0) <= (i64toi32_i32$0 | 0)) { + if (i64toi32_i32$2 >>> 0 >= i64toi32_i32$3 >>> 0) { + $37 = 0 + } else { + $37 = 1 + } + $38 = $37; + } else { + $38 = 0 + } + $36 = $38; + } + HEAP8[($5 + 47 | 0) >> 0] = $36 & 1 | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($5 + 47 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btConvexHullInternal__Int128__operator__28_29_20const($5 + 24 | 0 | 0, $6 | 0); + break label$1; + } + $20 = 8; + i64toi32_i32$3 = $6 + $20 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$3 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] | 0; + $115 = i64toi32_i32$2; + i64toi32_i32$2 = ($5 + 24 | 0) + $20 | 0; + HEAP32[i64toi32_i32$2 >> 2] = $115; + HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$3 = $6; + i64toi32_i32$1 = HEAP32[i64toi32_i32$3 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] | 0; + $119 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[(i64toi32_i32$1 + 24 | 0) >> 2] = $119; + HEAP32[(i64toi32_i32$1 + 28 | 0) >> 2] = i64toi32_i32$2; + } + i64toi32_i32$3 = $5; + i64toi32_i32$2 = HEAP32[($5 + 48 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 52 | 0) >> 2] | 0; + $27$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $28$hi = i64toi32_i32$1; + i64toi32_i32$1 = $27$hi; + i64toi32_i32$1 = $28$hi; + i64toi32_i32$1 = $27$hi; + i64toi32_i32$1 = $28$hi; + i64toi32_i32$1 = $27$hi; + i64toi32_i32$3 = i64toi32_i32$2; + i64toi32_i32$2 = $28$hi; + i64toi32_i32$0 = 0; + if ((i64toi32_i32$1 | 0) < (i64toi32_i32$2 | 0)) { + $39 = 1 + } else { + if ((i64toi32_i32$1 | 0) <= (i64toi32_i32$2 | 0)) { + if (i64toi32_i32$3 >>> 0 >= i64toi32_i32$0 >>> 0) { + $40 = 0 + } else { + $40 = 1 + } + $41 = $40; + } else { + $41 = 0 + } + $39 = $41; + } + label$3 : { + if (!($39 & 1 | 0)) { + break label$3 + } + HEAP8[($5 + 47 | 0) >> 0] = ((HEAPU8[($5 + 47 | 0) >> 0] | 0) ^ -1 | 0) & 1 | 0; + i64toi32_i32$0 = $5; + i64toi32_i32$3 = HEAP32[($5 + 48 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 52 | 0) >> 2] | 0; + $39$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $144$hi = i64toi32_i32$1; + i64toi32_i32$1 = $39$hi; + $145 = i64toi32_i32$3; + i64toi32_i32$1 = $144$hi; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = $39$hi; + i64toi32_i32$2 = $145; + i64toi32_i32$4 = i64toi32_i32$0 - i64toi32_i32$2 | 0; + i64toi32_i32$5 = (i64toi32_i32$0 >>> 0 < i64toi32_i32$2 >>> 0) + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$1 - i64toi32_i32$5 | 0; + i64toi32_i32$0 = $5; + HEAP32[($5 + 48 | 0) >> 2] = i64toi32_i32$4; + HEAP32[($5 + 52 | 0) >> 2] = i64toi32_i32$5; + } + i64toi32_i32$1 = $5; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$1 + 24 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$1 + 28 | 0) >> 2] | 0; + $42 = i64toi32_i32$5; + $42$hi = i64toi32_i32$0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$1 + 48 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$1 + 52 | 0) >> 2] | 0; + $43$hi = i64toi32_i32$5; + i64toi32_i32$5 = $42$hi; + i64toi32_i32$5 = $43$hi; + $159 = i64toi32_i32$0; + i64toi32_i32$5 = $42$hi; + i64toi32_i32$0 = $43$hi; + btConvexHullInternal__Int128__mul_28unsigned_20long_20long_2c_20unsigned_20long_20long_29(i64toi32_i32$1 + 8 | 0 | 0, $42 | 0, i64toi32_i32$5 | 0, $159 | 0, i64toi32_i32$0 | 0); + i64toi32_i32$0 = HEAP32[(i64toi32_i32$1 + 32 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$1 + 36 | 0) >> 2] | 0; + $47 = i64toi32_i32$0; + $47$hi = i64toi32_i32$5; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$1 + 48 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$1 + 52 | 0) >> 2] | 0; + $48$hi = i64toi32_i32$0; + i64toi32_i32$0 = $47$hi; + i64toi32_i32$0 = $48$hi; + $165 = i64toi32_i32$5; + i64toi32_i32$0 = $47$hi; + i64toi32_i32$5 = $48$hi; + i64toi32_i32$5 = __wasm_i64_mul($47 | 0, i64toi32_i32$0 | 0, $165 | 0, i64toi32_i32$5 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $49 = i64toi32_i32$5; + $49$hi = i64toi32_i32$0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$1 + 16 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$1 + 20 | 0) >> 2] | 0; + $169$hi = i64toi32_i32$5; + i64toi32_i32$5 = $49$hi; + i64toi32_i32$5 = $169$hi; + i64toi32_i32$1 = i64toi32_i32$0; + i64toi32_i32$0 = $49$hi; + i64toi32_i32$2 = $49; + i64toi32_i32$3 = i64toi32_i32$1 + i64toi32_i32$2 | 0; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$0 | 0; + if (i64toi32_i32$3 >>> 0 < i64toi32_i32$2 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + i64toi32_i32$1 = $5; + HEAP32[(i64toi32_i32$1 + 16 | 0) >> 2] = i64toi32_i32$3; + HEAP32[(i64toi32_i32$1 + 20 | 0) >> 2] = i64toi32_i32$4; + label$4 : { + label$5 : { + if (!((HEAPU8[(i64toi32_i32$1 + 47 | 0) >> 0] | 0) & 1 | 0)) { + break label$5 + } + btConvexHullInternal__Int128__operator__28_29_20const($0 | 0, $5 + 8 | 0 | 0); + break label$4; + } + i64toi32_i32$5 = $5; + i64toi32_i32$4 = HEAP32[($5 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 12 | 0) >> 2] | 0; + $190 = i64toi32_i32$4; + i64toi32_i32$4 = $0; + HEAP32[i64toi32_i32$4 >> 2] = $190; + HEAP32[(i64toi32_i32$4 + 4 | 0) >> 2] = i64toi32_i32$1; + $59 = 8; + i64toi32_i32$5 = ($5 + 8 | 0) + $59 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $203 = i64toi32_i32$1; + i64toi32_i32$1 = $0 + $59 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $203; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$4; + } + __stack_pointer = $5 + 64 | 0; + return; + } + + function btConvexHullInternal__Int128__operator__28_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$5 = 0, i64toi32_i32$3 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, $4 = 0, $5 = 0, $12$hi = 0, $13$hi = 0, $6$hi = 0, $8$hi = 0, $9$hi = 0, $10$hi = 0, $11$hi = 0, $19$hi = 0, $20$hi = 0, $34$hi = 0, $35 = 0, $8 = 0, $11 = 0, $52 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $6$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $34$hi = i64toi32_i32$1; + i64toi32_i32$1 = $6$hi; + $35 = i64toi32_i32$0; + i64toi32_i32$1 = $34$hi; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = $6$hi; + i64toi32_i32$3 = $35; + i64toi32_i32$4 = i64toi32_i32$2 - i64toi32_i32$3 | 0; + i64toi32_i32$5 = (i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0) + i64toi32_i32$0 | 0; + i64toi32_i32$5 = i64toi32_i32$1 - i64toi32_i32$5 | 0; + $8 = i64toi32_i32$4; + $8$hi = i64toi32_i32$5; + i64toi32_i32$1 = $5; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$1 + 8 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 12 | 0) >> 2] | 0; + $9$hi = i64toi32_i32$2; + i64toi32_i32$2 = -1; + $10$hi = i64toi32_i32$2; + i64toi32_i32$2 = $9$hi; + i64toi32_i32$2 = $10$hi; + i64toi32_i32$2 = $9$hi; + i64toi32_i32$1 = i64toi32_i32$5; + i64toi32_i32$5 = $10$hi; + i64toi32_i32$3 = -1; + i64toi32_i32$5 = i64toi32_i32$2 ^ i64toi32_i32$5 | 0; + $11 = i64toi32_i32$1 ^ i64toi32_i32$3 | 0; + $11$hi = i64toi32_i32$5; + i64toi32_i32$2 = $5; + i64toi32_i32$5 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $12$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $13$hi = i64toi32_i32$1; + i64toi32_i32$1 = $12$hi; + i64toi32_i32$1 = $13$hi; + i64toi32_i32$1 = $12$hi; + i64toi32_i32$1 = $13$hi; + i64toi32_i32$1 = $12$hi; + i64toi32_i32$2 = i64toi32_i32$5; + i64toi32_i32$5 = $13$hi; + i64toi32_i32$3 = 0; + $52 = ((i64toi32_i32$2 | 0) == (i64toi32_i32$3 | 0) & (i64toi32_i32$1 | 0) == (i64toi32_i32$5 | 0) | 0) & 1 | 0; + i64toi32_i32$2 = 0; + $19$hi = i64toi32_i32$2; + i64toi32_i32$2 = $11$hi; + i64toi32_i32$2 = $19$hi; + i64toi32_i32$2 = $11$hi; + i64toi32_i32$3 = $11; + i64toi32_i32$1 = $19$hi; + i64toi32_i32$5 = $52; + i64toi32_i32$0 = i64toi32_i32$3 + i64toi32_i32$5 | 0; + i64toi32_i32$4 = i64toi32_i32$2 + i64toi32_i32$1 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $20$hi = i64toi32_i32$4; + i64toi32_i32$4 = $8$hi; + i64toi32_i32$4 = $20$hi; + i64toi32_i32$4 = $8$hi; + i64toi32_i32$3 = $20$hi; + btConvexHullInternal__Int128__Int128_28unsigned_20long_20long_2c_20unsigned_20long_20long_29($0 | 0, $8 | 0, i64toi32_i32$4 | 0, i64toi32_i32$0 | 0, i64toi32_i32$3 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btConvexHullInternal__Int128__mul_28unsigned_20long_20long_2c_20unsigned_20long_20long_29($0, $1, $1$hi, $2, $2$hi) { + $0 = $0 | 0; + $1 = $1 | 0; + $1$hi = $1$hi | 0; + $2 = $2 | 0; + $2$hi = $2$hi | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $5 = 0, $6$hi = 0, $7$hi = 0, $6 = 0, $31 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$1 = $5; + HEAP32[(i64toi32_i32$1 + 8 | 0) >> 2] = $1; + HEAP32[(i64toi32_i32$1 + 12 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$0 = $2$hi; + HEAP32[i64toi32_i32$1 >> 2] = $2; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btConvexHullInternal__Int128__Int128_28_29($0 | 0) | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$1 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 12 | 0) >> 2] | 0; + $6 = i64toi32_i32$0; + $6$hi = i64toi32_i32$1; + i64toi32_i32$1 = HEAP32[$5 >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 4 | 0) >> 2] | 0; + $7$hi = i64toi32_i32$0; + i64toi32_i32$0 = $6$hi; + i64toi32_i32$0 = $7$hi; + $31 = i64toi32_i32$1; + i64toi32_i32$0 = $6$hi; + i64toi32_i32$1 = $7$hi; + btConvexHullInternal__DMul_unsigned_20long_20long_2c_20unsigned_20int___mul_28unsigned_20long_20long_2c_20unsigned_20long_20long_2c_20unsigned_20long_20long__2c_20unsigned_20long_20long__29($6 | 0, i64toi32_i32$0 | 0, $31 | 0, i64toi32_i32$1 | 0, $0 | 0, $0 + 8 | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function btConvexHullInternal__Int128__Int128_28unsigned_20long_20long_2c_20unsigned_20long_20long_29($0, $1, $1$hi, $2, $2$hi) { + $0 = $0 | 0; + $1 = $1 | 0; + $1$hi = $1$hi | 0; + $2 = $2 | 0; + $2$hi = $2$hi | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $5 = 0, $6 = 0, $24 = 0, $28 = 0; + $5 = __stack_pointer - 32 | 0; + HEAP32[($5 + 28 | 0) >> 2] = $0; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$1 = $5; + HEAP32[(i64toi32_i32$1 + 16 | 0) >> 2] = $1; + HEAP32[(i64toi32_i32$1 + 20 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$0 = $2$hi; + HEAP32[(i64toi32_i32$1 + 8 | 0) >> 2] = $2; + HEAP32[(i64toi32_i32$1 + 12 | 0) >> 2] = i64toi32_i32$0; + $6 = HEAP32[(i64toi32_i32$1 + 28 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$1 + 16 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 20 | 0) >> 2] | 0; + $24 = i64toi32_i32$0; + i64toi32_i32$0 = $6; + HEAP32[i64toi32_i32$0 >> 2] = $24; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$1 = HEAP32[($5 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 12 | 0) >> 2] | 0; + $28 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[(i64toi32_i32$1 + 8 | 0) >> 2] = $28; + HEAP32[(i64toi32_i32$1 + 12 | 0) >> 2] = i64toi32_i32$0; + return i64toi32_i32$1 | 0; + } + + function btConvexHullInternal__Int128__Int128_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btConvexHullInternal__DMul_unsigned_20long_20long_2c_20unsigned_20int___mul_28unsigned_20long_20long_2c_20unsigned_20long_20long_2c_20unsigned_20long_20long__2c_20unsigned_20long_20long__29($0, $0$hi, $1, $1$hi, $2, $3) { + $0 = $0 | 0; + $0$hi = $0$hi | 0; + $1 = $1 | 0; + $1$hi = $1$hi | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, i64toi32_i32$5 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $6 = 0, $58$hi = 0, $59$hi = 0, $30$hi = 0, $34$hi = 0, $39$hi = 0, $45$hi = 0, $51$hi = 0, $55$hi = 0, $65$hi = 0, $66$hi = 0, $8 = 0, $99 = 0, $13 = 0, $112 = 0, $18 = 0, $125 = 0, $23 = 0, $138 = 0, $144 = 0, $151 = 0, $163 = 0, $167$hi = 0, $177 = 0, $181$hi = 0, $191 = 0, $195$hi = 0, $55 = 0, $206$hi = 0, $58 = 0, $218 = 0, $237 = 0, $243 = 0; + $6 = __stack_pointer - 64 | 0; + __stack_pointer = $6; + i64toi32_i32$0 = $0$hi; + i64toi32_i32$1 = $6; + HEAP32[(i64toi32_i32$1 + 56 | 0) >> 2] = $0; + HEAP32[(i64toi32_i32$1 + 60 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$0 = $1$hi; + HEAP32[(i64toi32_i32$1 + 48 | 0) >> 2] = $1; + HEAP32[(i64toi32_i32$1 + 52 | 0) >> 2] = i64toi32_i32$0; + HEAP32[(i64toi32_i32$1 + 44 | 0) >> 2] = $2; + HEAP32[(i64toi32_i32$1 + 40 | 0) >> 2] = $3; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$1 + 56 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 60 | 0) >> 2] | 0; + $8 = btConvexHullInternal__DMul_unsigned_20long_20long_2c_20unsigned_20int___low_28unsigned_20long_20long_29(i64toi32_i32$0 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 48 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 52 | 0) >> 2] | 0; + i64toi32_i32$0 = btConvexHullInternal__DMul_unsigned_20long_20long_2c_20unsigned_20int___mul_28unsigned_20int_2c_20unsigned_20int_29($8 | 0, btConvexHullInternal__DMul_unsigned_20long_20long_2c_20unsigned_20int___low_28unsigned_20long_20long_29(i64toi32_i32$1 | 0, i64toi32_i32$0 | 0) | 0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $99 = i64toi32_i32$0; + i64toi32_i32$0 = i64toi32_i32$2; + HEAP32[(i64toi32_i32$0 + 32 | 0) >> 2] = $99; + HEAP32[(i64toi32_i32$0 + 36 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$0 + 56 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$0 + 60 | 0) >> 2] | 0; + $13 = btConvexHullInternal__DMul_unsigned_20long_20long_2c_20unsigned_20int___low_28unsigned_20long_20long_29(i64toi32_i32$1 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 48 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 52 | 0) >> 2] | 0; + i64toi32_i32$1 = btConvexHullInternal__DMul_unsigned_20long_20long_2c_20unsigned_20int___mul_28unsigned_20int_2c_20unsigned_20int_29($13 | 0, btConvexHullInternal__DMul_unsigned_20long_20long_2c_20unsigned_20int___high_28unsigned_20long_20long_29(i64toi32_i32$0 | 0, i64toi32_i32$1 | 0) | 0 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $112 = i64toi32_i32$1; + i64toi32_i32$1 = i64toi32_i32$2; + HEAP32[(i64toi32_i32$1 + 24 | 0) >> 2] = $112; + HEAP32[(i64toi32_i32$1 + 28 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$1 + 56 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 60 | 0) >> 2] | 0; + $18 = btConvexHullInternal__DMul_unsigned_20long_20long_2c_20unsigned_20int___high_28unsigned_20long_20long_29(i64toi32_i32$0 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 48 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 52 | 0) >> 2] | 0; + i64toi32_i32$0 = btConvexHullInternal__DMul_unsigned_20long_20long_2c_20unsigned_20int___mul_28unsigned_20int_2c_20unsigned_20int_29($18 | 0, btConvexHullInternal__DMul_unsigned_20long_20long_2c_20unsigned_20int___low_28unsigned_20long_20long_29(i64toi32_i32$1 | 0, i64toi32_i32$0 | 0) | 0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $125 = i64toi32_i32$0; + i64toi32_i32$0 = i64toi32_i32$2; + HEAP32[(i64toi32_i32$0 + 16 | 0) >> 2] = $125; + HEAP32[(i64toi32_i32$0 + 20 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$0 + 56 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$0 + 60 | 0) >> 2] | 0; + $23 = btConvexHullInternal__DMul_unsigned_20long_20long_2c_20unsigned_20int___high_28unsigned_20long_20long_29(i64toi32_i32$1 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 48 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 52 | 0) >> 2] | 0; + i64toi32_i32$1 = btConvexHullInternal__DMul_unsigned_20long_20long_2c_20unsigned_20int___mul_28unsigned_20int_2c_20unsigned_20int_29($23 | 0, btConvexHullInternal__DMul_unsigned_20long_20long_2c_20unsigned_20int___high_28unsigned_20long_20long_29(i64toi32_i32$0 | 0, i64toi32_i32$1 | 0) | 0 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $138 = i64toi32_i32$1; + i64toi32_i32$1 = i64toi32_i32$2; + HEAP32[(i64toi32_i32$1 + 8 | 0) >> 2] = $138; + HEAP32[(i64toi32_i32$1 + 12 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$1 + 24 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 28 | 0) >> 2] | 0; + $144 = btConvexHullInternal__DMul_unsigned_20long_20long_2c_20unsigned_20int___low_28unsigned_20long_20long_29(i64toi32_i32$0 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$1 = 0; + $30$hi = i64toi32_i32$1; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 16 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 20 | 0) >> 2] | 0; + $151 = btConvexHullInternal__DMul_unsigned_20long_20long_2c_20unsigned_20int___low_28unsigned_20long_20long_29(i64toi32_i32$1 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$0 = 0; + $34$hi = i64toi32_i32$0; + i64toi32_i32$0 = $30$hi; + i64toi32_i32$0 = $34$hi; + i64toi32_i32$0 = $30$hi; + i64toi32_i32$2 = $144; + i64toi32_i32$1 = $34$hi; + i64toi32_i32$3 = $151; + i64toi32_i32$4 = i64toi32_i32$2 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$0 + i64toi32_i32$1 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + i64toi32_i32$2 = $6; + HEAP32[i64toi32_i32$2 >> 2] = i64toi32_i32$4; + HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] = i64toi32_i32$5; + i64toi32_i32$0 = i64toi32_i32$2; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 24 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$0 + 28 | 0) >> 2] | 0; + $163 = btConvexHullInternal__DMul_unsigned_20long_20long_2c_20unsigned_20int___high_28unsigned_20long_20long_29(i64toi32_i32$5 | 0, i64toi32_i32$2 | 0) | 0; + i64toi32_i32$2 = 0; + $39$hi = i64toi32_i32$2; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$0 + 8 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 12 | 0) >> 2] | 0; + $167$hi = i64toi32_i32$5; + i64toi32_i32$5 = $39$hi; + i64toi32_i32$5 = $167$hi; + i64toi32_i32$0 = i64toi32_i32$2; + i64toi32_i32$2 = $39$hi; + i64toi32_i32$3 = $163; + i64toi32_i32$1 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$2 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + i64toi32_i32$0 = $6; + HEAP32[(i64toi32_i32$0 + 8 | 0) >> 2] = i64toi32_i32$1; + HEAP32[(i64toi32_i32$0 + 12 | 0) >> 2] = i64toi32_i32$4; + i64toi32_i32$5 = i64toi32_i32$0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$0 + 16 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$0 + 20 | 0) >> 2] | 0; + $177 = btConvexHullInternal__DMul_unsigned_20long_20long_2c_20unsigned_20int___high_28unsigned_20long_20long_29(i64toi32_i32$4 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$0 = 0; + $45$hi = i64toi32_i32$0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$5 + 8 | 0) >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$5 + 12 | 0) >> 2] | 0; + $181$hi = i64toi32_i32$4; + i64toi32_i32$4 = $45$hi; + i64toi32_i32$4 = $181$hi; + i64toi32_i32$5 = i64toi32_i32$0; + i64toi32_i32$0 = $45$hi; + i64toi32_i32$3 = $177; + i64toi32_i32$2 = i64toi32_i32$5 + i64toi32_i32$3 | 0; + i64toi32_i32$1 = i64toi32_i32$4 + i64toi32_i32$0 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + i64toi32_i32$5 = $6; + HEAP32[(i64toi32_i32$5 + 8 | 0) >> 2] = i64toi32_i32$2; + HEAP32[(i64toi32_i32$5 + 12 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$4 = i64toi32_i32$5; + i64toi32_i32$1 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $191 = btConvexHullInternal__DMul_unsigned_20long_20long_2c_20unsigned_20int___high_28unsigned_20long_20long_29(i64toi32_i32$1 | 0, i64toi32_i32$5 | 0) | 0; + i64toi32_i32$5 = 0; + $51$hi = i64toi32_i32$5; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$4 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$4 + 12 | 0) >> 2] | 0; + $195$hi = i64toi32_i32$1; + i64toi32_i32$1 = $51$hi; + i64toi32_i32$1 = $195$hi; + i64toi32_i32$4 = i64toi32_i32$5; + i64toi32_i32$5 = $51$hi; + i64toi32_i32$3 = $191; + i64toi32_i32$0 = i64toi32_i32$4 + i64toi32_i32$3 | 0; + i64toi32_i32$2 = i64toi32_i32$1 + i64toi32_i32$5 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + i64toi32_i32$4 = $6; + HEAP32[(i64toi32_i32$4 + 8 | 0) >> 2] = i64toi32_i32$0; + HEAP32[(i64toi32_i32$4 + 12 | 0) >> 2] = i64toi32_i32$2; + btConvexHullInternal__DMul_unsigned_20long_20long_2c_20unsigned_20int___shlHalf_28unsigned_20long_20long__29(i64toi32_i32$4 | 0); + i64toi32_i32$1 = i64toi32_i32$4; + i64toi32_i32$2 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $55 = i64toi32_i32$2; + $55$hi = i64toi32_i32$4; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$1 + 32 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 36 | 0) >> 2] | 0; + $206$hi = i64toi32_i32$2; + i64toi32_i32$2 = $55$hi; + i64toi32_i32$2 = $206$hi; + i64toi32_i32$1 = i64toi32_i32$4; + i64toi32_i32$4 = $55$hi; + i64toi32_i32$3 = $55; + i64toi32_i32$5 = i64toi32_i32$1 + i64toi32_i32$3 | 0; + i64toi32_i32$0 = i64toi32_i32$2 + i64toi32_i32$4 | 0; + if (i64toi32_i32$5 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + i64toi32_i32$1 = $6; + HEAP32[(i64toi32_i32$1 + 32 | 0) >> 2] = i64toi32_i32$5; + HEAP32[(i64toi32_i32$1 + 36 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$1 + 32 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 36 | 0) >> 2] | 0; + $58 = i64toi32_i32$0; + $58$hi = i64toi32_i32$1; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $59$hi = i64toi32_i32$0; + i64toi32_i32$0 = $58$hi; + i64toi32_i32$0 = $59$hi; + i64toi32_i32$0 = $58$hi; + i64toi32_i32$0 = $59$hi; + $218 = i64toi32_i32$1; + i64toi32_i32$0 = $58$hi; + i64toi32_i32$2 = $58; + i64toi32_i32$1 = $59$hi; + i64toi32_i32$3 = $218; + label$1 : { + if (!((i64toi32_i32$0 >>> 0 < i64toi32_i32$1 >>> 0 | ((i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) & i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0 | 0) | 0) & 1 | 0)) { + break label$1 + } + i64toi32_i32$3 = $6; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$3 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$3 + 12 | 0) >> 2] | 0; + $65$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $66$hi = i64toi32_i32$0; + i64toi32_i32$0 = $65$hi; + i64toi32_i32$0 = $66$hi; + i64toi32_i32$0 = $65$hi; + i64toi32_i32$3 = i64toi32_i32$2; + i64toi32_i32$2 = $66$hi; + i64toi32_i32$1 = 1; + i64toi32_i32$4 = i64toi32_i32$3 + i64toi32_i32$1 | 0; + i64toi32_i32$5 = i64toi32_i32$0 + i64toi32_i32$2 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$1 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + i64toi32_i32$3 = $6; + HEAP32[(i64toi32_i32$3 + 8 | 0) >> 2] = i64toi32_i32$4; + HEAP32[(i64toi32_i32$3 + 12 | 0) >> 2] = i64toi32_i32$5; + } + i64toi32_i32$0 = $6; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 32 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$0 + 36 | 0) >> 2] | 0; + $237 = i64toi32_i32$5; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 44 | 0) >> 2] | 0; + HEAP32[i64toi32_i32$5 >> 2] = $237; + HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] = i64toi32_i32$3; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$0 + 8 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 12 | 0) >> 2] | 0; + $243 = i64toi32_i32$3; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$0 + 40 | 0) >> 2] | 0; + HEAP32[i64toi32_i32$3 >> 2] = $243; + HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] = i64toi32_i32$5; + __stack_pointer = i64toi32_i32$0 + 64 | 0; + return; + } + + function btConvexHullInternal__Int128__mul_28long_20long_2c_20long_20long_29($0, $1, $1$hi, $2, $2$hi) { + $0 = $0 | 0; + $1 = $1 | 0; + $1$hi = $1$hi | 0; + $2 = $2 | 0; + $2$hi = $2$hi | 0; + var i64toi32_i32$3 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, $5 = 0, i64toi32_i32$5 = 0, i64toi32_i32$2 = 0, $9$hi = 0, $10$hi = 0, i64toi32_i32$6 = 0, $22$hi = 0, $23$hi = 0, $30 = 0, $31 = 0, $32 = 0, $19$hi = 0, $33 = 0, $34 = 0, $35 = 0, $34$hi = 0, $37$hi = 0, $38$hi = 0, $54 = 0, $98$hi = 0, $99 = 0, $127$hi = 0, $128 = 0, $37 = 0, $148 = 0, $167 = 0, $180 = 0; + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$1 = $5; + HEAP32[(i64toi32_i32$1 + 40 | 0) >> 2] = $1; + HEAP32[(i64toi32_i32$1 + 44 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$0 = $2$hi; + HEAP32[(i64toi32_i32$1 + 32 | 0) >> 2] = $2; + HEAP32[(i64toi32_i32$1 + 36 | 0) >> 2] = i64toi32_i32$0; + btConvexHullInternal__Int128__Int128_28_29(i64toi32_i32$1 + 16 | 0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$1 + 40 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 44 | 0) >> 2] | 0; + $9$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $10$hi = i64toi32_i32$1; + i64toi32_i32$1 = $9$hi; + i64toi32_i32$1 = $10$hi; + i64toi32_i32$1 = $9$hi; + i64toi32_i32$1 = $10$hi; + i64toi32_i32$1 = $9$hi; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$0 = $10$hi; + i64toi32_i32$3 = 0; + if ((i64toi32_i32$1 | 0) < (i64toi32_i32$0 | 0)) { + $30 = 1 + } else { + if ((i64toi32_i32$1 | 0) <= (i64toi32_i32$0 | 0)) { + if (i64toi32_i32$2 >>> 0 >= i64toi32_i32$3 >>> 0) { + $31 = 0 + } else { + $31 = 1 + } + $32 = $31; + } else { + $32 = 0 + } + $30 = $32; + } + HEAP8[($5 + 15 | 0) >> 0] = $30 & 1 | 0; + label$1 : { + if (!((HEAPU8[($5 + 15 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + i64toi32_i32$3 = $5; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$3 + 40 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$3 + 44 | 0) >> 2] | 0; + $19$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $98$hi = i64toi32_i32$1; + i64toi32_i32$1 = $19$hi; + $99 = i64toi32_i32$2; + i64toi32_i32$1 = $98$hi; + i64toi32_i32$3 = 0; + i64toi32_i32$2 = $19$hi; + i64toi32_i32$0 = $99; + i64toi32_i32$4 = i64toi32_i32$3 - i64toi32_i32$0 | 0; + i64toi32_i32$6 = i64toi32_i32$3 >>> 0 < i64toi32_i32$0 >>> 0; + i64toi32_i32$5 = i64toi32_i32$6 + i64toi32_i32$2 | 0; + i64toi32_i32$5 = i64toi32_i32$1 - i64toi32_i32$5 | 0; + i64toi32_i32$3 = $5; + HEAP32[(i64toi32_i32$3 + 40 | 0) >> 2] = i64toi32_i32$4; + HEAP32[(i64toi32_i32$3 + 44 | 0) >> 2] = i64toi32_i32$5; + } + i64toi32_i32$1 = $5; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$1 + 32 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$1 + 36 | 0) >> 2] | 0; + $22$hi = i64toi32_i32$3; + i64toi32_i32$3 = 0; + $23$hi = i64toi32_i32$3; + i64toi32_i32$3 = $22$hi; + i64toi32_i32$3 = $23$hi; + i64toi32_i32$3 = $22$hi; + i64toi32_i32$3 = $23$hi; + i64toi32_i32$3 = $22$hi; + i64toi32_i32$1 = i64toi32_i32$5; + i64toi32_i32$5 = $23$hi; + i64toi32_i32$0 = 0; + if ((i64toi32_i32$3 | 0) < (i64toi32_i32$5 | 0)) { + $33 = 1 + } else { + if ((i64toi32_i32$3 | 0) <= (i64toi32_i32$5 | 0)) { + if (i64toi32_i32$1 >>> 0 >= i64toi32_i32$0 >>> 0) { + $34 = 0 + } else { + $34 = 1 + } + $35 = $34; + } else { + $35 = 0 + } + $33 = $35; + } + label$2 : { + if (!($33 & 1 | 0)) { + break label$2 + } + HEAP8[($5 + 15 | 0) >> 0] = ((HEAPU8[($5 + 15 | 0) >> 0] | 0) ^ -1 | 0) & 1 | 0; + i64toi32_i32$0 = $5; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$0 + 32 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$0 + 36 | 0) >> 2] | 0; + $34$hi = i64toi32_i32$3; + i64toi32_i32$3 = 0; + $127$hi = i64toi32_i32$3; + i64toi32_i32$3 = $34$hi; + $128 = i64toi32_i32$1; + i64toi32_i32$3 = $127$hi; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $34$hi; + i64toi32_i32$5 = $128; + i64toi32_i32$2 = i64toi32_i32$0 - i64toi32_i32$5 | 0; + i64toi32_i32$6 = i64toi32_i32$0 >>> 0 < i64toi32_i32$5 >>> 0; + i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0; + i64toi32_i32$4 = i64toi32_i32$3 - i64toi32_i32$4 | 0; + i64toi32_i32$0 = $5; + HEAP32[(i64toi32_i32$0 + 32 | 0) >> 2] = i64toi32_i32$2; + HEAP32[(i64toi32_i32$0 + 36 | 0) >> 2] = i64toi32_i32$4; + } + i64toi32_i32$3 = $5; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$3 + 40 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$3 + 44 | 0) >> 2] | 0; + $37 = i64toi32_i32$4; + $37$hi = i64toi32_i32$0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$3 + 32 | 0) >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$3 + 36 | 0) >> 2] | 0; + $38$hi = i64toi32_i32$4; + i64toi32_i32$4 = $37$hi; + i64toi32_i32$4 = $38$hi; + $148 = i64toi32_i32$0; + i64toi32_i32$4 = $37$hi; + i64toi32_i32$0 = $38$hi; + btConvexHullInternal__DMul_unsigned_20long_20long_2c_20unsigned_20int___mul_28unsigned_20long_20long_2c_20unsigned_20long_20long_2c_20unsigned_20long_20long__2c_20unsigned_20long_20long__29($37 | 0, i64toi32_i32$4 | 0, $148 | 0, i64toi32_i32$0 | 0, i64toi32_i32$3 + 16 | 0 | 0, (i64toi32_i32$3 + 16 | 0) + 8 | 0 | 0); + label$3 : { + label$4 : { + if (!((HEAPU8[(i64toi32_i32$3 + 15 | 0) >> 0] | 0) & 1 | 0)) { + break label$4 + } + btConvexHullInternal__Int128__operator__28_29_20const($0 | 0, $5 + 16 | 0 | 0); + break label$3; + } + i64toi32_i32$3 = $5; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$3 + 16 | 0) >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$3 + 20 | 0) >> 2] | 0; + $167 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $167; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$4; + $54 = 8; + i64toi32_i32$3 = (i64toi32_i32$3 + 16 | 0) + $54 | 0; + i64toi32_i32$4 = HEAP32[i64toi32_i32$3 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] | 0; + $180 = i64toi32_i32$4; + i64toi32_i32$4 = $0 + $54 | 0; + HEAP32[i64toi32_i32$4 >> 2] = $180; + HEAP32[(i64toi32_i32$4 + 4 | 0) >> 2] = i64toi32_i32$0; + } + __stack_pointer = $5 + 48 | 0; + return; + } + + function btConvexHullInternal__DMul_unsigned_20long_20long_2c_20unsigned_20int___low_28unsigned_20long_20long_29($0, $0$hi) { + $0 = $0 | 0; + $0$hi = $0$hi | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0; + i64toi32_i32$0 = $0$hi; + i64toi32_i32$1 = __stack_pointer - 16 | 0; + HEAP32[(i64toi32_i32$1 + 8 | 0) >> 2] = $0; + HEAP32[(i64toi32_i32$1 + 12 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$1 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 12 | 0) >> 2] | 0; + return i64toi32_i32$0 | 0; + } + + function btConvexHullInternal__DMul_unsigned_20long_20long_2c_20unsigned_20int___mul_28unsigned_20int_2c_20unsigned_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$0 = 0, $4 = 0, i64toi32_i32$1 = 0, $7$hi = 0, $10$hi = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + i64toi32_i32$0 = 0; + $7$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $10$hi = i64toi32_i32$0; + i64toi32_i32$0 = $7$hi; + i64toi32_i32$0 = $10$hi; + i64toi32_i32$0 = $7$hi; + i64toi32_i32$1 = $10$hi; + i64toi32_i32$1 = __wasm_i64_mul(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, i64toi32_i32$0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + i64toi32_i32$HIGH_BITS = i64toi32_i32$0; + return i64toi32_i32$1 | 0; + } + + function btConvexHullInternal__DMul_unsigned_20long_20long_2c_20unsigned_20int___high_28unsigned_20long_20long_29($0, $0$hi) { + $0 = $0 | 0; + $0$hi = $0$hi | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$2 = 0, $4$hi = 0, $5$hi = 0, i64toi32_i32$3 = 0, $9 = 0; + i64toi32_i32$0 = $0$hi; + i64toi32_i32$1 = __stack_pointer - 16 | 0; + HEAP32[(i64toi32_i32$1 + 8 | 0) >> 2] = $0; + HEAP32[(i64toi32_i32$1 + 12 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$1 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 12 | 0) >> 2] | 0; + $4$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $5$hi = i64toi32_i32$1; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$1 = $5$hi; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$0 = $5$hi; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$0 = 0; + $9 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $9 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; + } + return $9 | 0; + } + + function btConvexHullInternal__DMul_unsigned_20long_20long_2c_20unsigned_20int___shlHalf_28unsigned_20long_20long__29($0) { + $0 = $0 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, $3 = 0, $4 = 0, $5$hi = 0, $6$hi = 0, i64toi32_i32$3 = 0, $10 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $5$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $6$hi = i64toi32_i32$1; + i64toi32_i32$1 = $5$hi; + i64toi32_i32$1 = $6$hi; + i64toi32_i32$1 = $5$hi; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$0 = $6$hi; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$0 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $10 = 0; + } else { + i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0; + $10 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + } + i64toi32_i32$2 = $4; + HEAP32[i64toi32_i32$2 >> 2] = $10; + HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function btConvexHullInternal__Rational64__compare_28btConvexHullInternal__Rational64_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $5 = 0, $21$hi = 0, $23$hi = 0, $27$hi = 0, $29$hi = 0, $20 = 0, $21 = 0, $97 = 0, $27 = 0, $107 = 0, $37 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 48 | 0; + __stack_pointer = $4; + HEAP32[($4 + 40 | 0) >> 2] = $0; + HEAP32[($4 + 36 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 40 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) != (HEAP32[((HEAP32[($4 + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($4 + 44 | 0) >> 2] = (HEAP32[($5 + 16 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($4 + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) | 0; + break label$1; + } + label$3 : { + if (HEAP32[($5 + 16 | 0) >> 2] | 0) { + break label$3 + } + HEAP32[($4 + 44 | 0) >> 2] = 0; + break label$1; + } + $20 = HEAP32[($5 + 16 | 0) >> 2] | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $21 = i64toi32_i32$0; + $21$hi = i64toi32_i32$1; + i64toi32_i32$2 = HEAP32[($4 + 36 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 12 | 0) >> 2] | 0; + $23$hi = i64toi32_i32$0; + i64toi32_i32$0 = $21$hi; + i64toi32_i32$0 = $23$hi; + $97 = i64toi32_i32$1; + i64toi32_i32$0 = $21$hi; + i64toi32_i32$1 = $23$hi; + btConvexHullInternal__Int128__mul_28unsigned_20long_20long_2c_20unsigned_20long_20long_29($4 + 16 | 0 | 0, $21 | 0, i64toi32_i32$0 | 0, $97 | 0, i64toi32_i32$1 | 0); + i64toi32_i32$2 = $5; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 12 | 0) >> 2] | 0; + $27 = i64toi32_i32$1; + $27$hi = i64toi32_i32$0; + i64toi32_i32$2 = HEAP32[($4 + 36 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $29$hi = i64toi32_i32$1; + i64toi32_i32$1 = $27$hi; + i64toi32_i32$1 = $29$hi; + $107 = i64toi32_i32$0; + i64toi32_i32$1 = $27$hi; + i64toi32_i32$0 = $29$hi; + btConvexHullInternal__Int128__mul_28unsigned_20long_20long_2c_20unsigned_20long_20long_29($4 | 0, $27 | 0, i64toi32_i32$1 | 0, $107 | 0, i64toi32_i32$0 | 0); + (wasm2js_i32$0 = $4, wasm2js_i32$1 = Math_imul($20, btConvexHullInternal__Int128__ucmp_28btConvexHullInternal__Int128_20const__29_20const($4 + 16 | 0 | 0, $4 | 0) | 0)), HEAP32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_i32$1; + } + $37 = HEAP32[($4 + 44 | 0) >> 2] | 0; + __stack_pointer = $4 + 48 | 0; + return $37 | 0; + } + + function btConvexHullInternal__Int128__ucmp_28btConvexHullInternal__Int128_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $4 = 0, $5 = 0, $6$hi = 0, $8$hi = 0, $15$hi = 0, $17$hi = 0, $24$hi = 0, $26$hi = 0, $33$hi = 0, $35$hi = 0, $6 = 0, $63 = 0, $15 = 0, $81 = 0, $24 = 0, $99 = 0, $33 = 0, $117 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 12 | 0) >> 2] | 0; + $6 = i64toi32_i32$0; + $6$hi = i64toi32_i32$1; + i64toi32_i32$2 = HEAP32[($4 + 4 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 12 | 0) >> 2] | 0; + $8$hi = i64toi32_i32$0; + i64toi32_i32$0 = $6$hi; + i64toi32_i32$0 = $8$hi; + i64toi32_i32$0 = $6$hi; + i64toi32_i32$0 = $8$hi; + $63 = i64toi32_i32$1; + i64toi32_i32$0 = $6$hi; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = $8$hi; + i64toi32_i32$3 = $63; + label$1 : { + label$2 : { + if (!((i64toi32_i32$0 >>> 0 < i64toi32_i32$1 >>> 0 | ((i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) & i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0 | 0) | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($4 + 12 | 0) >> 2] = -1; + break label$1; + } + i64toi32_i32$3 = $5; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$3 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$3 + 12 | 0) >> 2] | 0; + $15 = i64toi32_i32$2; + $15$hi = i64toi32_i32$0; + i64toi32_i32$3 = HEAP32[($4 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$3 + 8 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$3 + 12 | 0) >> 2] | 0; + $17$hi = i64toi32_i32$2; + i64toi32_i32$2 = $15$hi; + i64toi32_i32$2 = $17$hi; + i64toi32_i32$2 = $15$hi; + i64toi32_i32$2 = $17$hi; + $81 = i64toi32_i32$0; + i64toi32_i32$2 = $15$hi; + i64toi32_i32$3 = $15; + i64toi32_i32$0 = $17$hi; + i64toi32_i32$1 = $81; + label$3 : { + if (!((i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$3 >>> 0 > i64toi32_i32$1 >>> 0 | 0) | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($4 + 12 | 0) >> 2] = 1; + break label$1; + } + i64toi32_i32$1 = $5; + i64toi32_i32$3 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $24 = i64toi32_i32$3; + $24$hi = i64toi32_i32$2; + i64toi32_i32$1 = HEAP32[($4 + 4 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $26$hi = i64toi32_i32$3; + i64toi32_i32$3 = $24$hi; + i64toi32_i32$3 = $26$hi; + i64toi32_i32$3 = $24$hi; + i64toi32_i32$3 = $26$hi; + $99 = i64toi32_i32$2; + i64toi32_i32$3 = $24$hi; + i64toi32_i32$1 = $24; + i64toi32_i32$2 = $26$hi; + i64toi32_i32$0 = $99; + label$4 : { + if (!((i64toi32_i32$3 >>> 0 < i64toi32_i32$2 >>> 0 | ((i64toi32_i32$3 | 0) == (i64toi32_i32$2 | 0) & i64toi32_i32$1 >>> 0 < i64toi32_i32$0 >>> 0 | 0) | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($4 + 12 | 0) >> 2] = -1; + break label$1; + } + i64toi32_i32$0 = $5; + i64toi32_i32$1 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $33 = i64toi32_i32$1; + $33$hi = i64toi32_i32$3; + i64toi32_i32$0 = HEAP32[($4 + 4 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $35$hi = i64toi32_i32$1; + i64toi32_i32$1 = $33$hi; + i64toi32_i32$1 = $35$hi; + i64toi32_i32$1 = $33$hi; + i64toi32_i32$1 = $35$hi; + $117 = i64toi32_i32$3; + i64toi32_i32$1 = $33$hi; + i64toi32_i32$0 = $33; + i64toi32_i32$3 = $35$hi; + i64toi32_i32$2 = $117; + label$5 : { + if (!((i64toi32_i32$1 >>> 0 > i64toi32_i32$3 >>> 0 | ((i64toi32_i32$1 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$0 >>> 0 > i64toi32_i32$2 >>> 0 | 0) | 0) & 1 | 0)) { + break label$5 + } + HEAP32[($4 + 12 | 0) >> 2] = 1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + return HEAP32[($4 + 12 | 0) >> 2] | 0 | 0; + } + + function btConvexHullInternal__Rational128__compare_28btConvexHullInternal__Rational128_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, i64toi32_i32$2 = 0, $5 = 0, $61 = 0, $103 = 0, $26$hi = 0, $27$hi = 0, $44 = 0, $53 = 0, $54 = 0, $87 = 0, $88 = 0, $95 = 0, $96 = 0, $23 = 0, $26 = 0, $211 = 0, $257 = 0, $261 = 0, $279 = 0, $283 = 0, $299 = 0, $303 = 0, $319 = 0, $323 = 0, $355 = 0, $359 = 0, $374 = 0, $378 = 0, $394 = 0, $398 = 0, $414 = 0, $418 = 0, $148 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 224 | 0; + __stack_pointer = $4; + HEAP32[($4 + 216 | 0) >> 2] = $0; + HEAP32[($4 + 212 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 216 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) != (HEAP32[((HEAP32[($4 + 212 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($4 + 220 | 0) >> 2] = (HEAP32[($5 + 32 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($4 + 212 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) | 0; + break label$1; + } + label$3 : { + if (HEAP32[($5 + 32 | 0) >> 2] | 0) { + break label$3 + } + HEAP32[($4 + 220 | 0) >> 2] = 0; + break label$1; + } + label$4 : { + if (!((HEAPU8[($5 + 36 | 0) >> 0] | 0) & 1 | 0)) { + break label$4 + } + $23 = HEAP32[($4 + 212 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 32 | 0) >> 2] | 0; + i64toi32_i32$0 = i64toi32_i32$1 >> 31 | 0; + $26 = i64toi32_i32$1; + $26$hi = i64toi32_i32$0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $27$hi = i64toi32_i32$1; + i64toi32_i32$1 = $26$hi; + i64toi32_i32$1 = $27$hi; + $211 = i64toi32_i32$0; + i64toi32_i32$1 = $26$hi; + i64toi32_i32$0 = $27$hi; + i64toi32_i32$0 = __wasm_i64_mul($26 | 0, i64toi32_i32$1 | 0, $211 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = 0 - (btConvexHullInternal__Rational128__compare_28long_20long_29_20const($23 | 0, i64toi32_i32$0 | 0, i64toi32_i32$1 | 0) | 0) | 0), HEAP32[(wasm2js_i32$0 + 220 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + btConvexHullInternal__Int128__Int128_28_29($4 + 192 | 0 | 0) | 0; + btConvexHullInternal__Int128__Int128_28_29($4 + 176 | 0 | 0) | 0; + btConvexHullInternal__Int128__Int128_28_29($4 + 160 | 0 | 0) | 0; + btConvexHullInternal__Int128__Int128_28_29($4 + 144 | 0 | 0) | 0; + $44 = 8; + i64toi32_i32$2 = $5 + $44 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $257 = i64toi32_i32$1; + i64toi32_i32$1 = ($4 + 128 | 0) + $44 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $257; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $261 = i64toi32_i32$0; + i64toi32_i32$0 = $4; + HEAP32[(i64toi32_i32$0 + 128 | 0) >> 2] = $261; + HEAP32[(i64toi32_i32$0 + 132 | 0) >> 2] = i64toi32_i32$1; + $53 = (HEAP32[(i64toi32_i32$0 + 212 | 0) >> 2] | 0) + 16 | 0; + $54 = 8; + i64toi32_i32$2 = $53 + $54 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $279 = i64toi32_i32$1; + i64toi32_i32$1 = ($4 + 112 | 0) + $54 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $279; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $53; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $283 = i64toi32_i32$0; + i64toi32_i32$0 = $4; + HEAP32[(i64toi32_i32$0 + 112 | 0) >> 2] = $283; + HEAP32[(i64toi32_i32$0 + 116 | 0) >> 2] = i64toi32_i32$1; + $61 = 8; + i64toi32_i32$2 = (i64toi32_i32$0 + 128 | 0) + $61 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $299 = i64toi32_i32$1; + i64toi32_i32$1 = ($4 + 24 | 0) + $61 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $299; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[($4 + 128 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($4 + 132 | 0) >> 2] | 0; + $303 = i64toi32_i32$0; + i64toi32_i32$0 = $4; + HEAP32[(i64toi32_i32$0 + 24 | 0) >> 2] = $303; + HEAP32[(i64toi32_i32$0 + 28 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = (i64toi32_i32$0 + 112 | 0) + $61 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $319 = i64toi32_i32$1; + i64toi32_i32$1 = ($4 + 8 | 0) + $61 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $319; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[($4 + 112 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($4 + 116 | 0) >> 2] | 0; + $323 = i64toi32_i32$0; + i64toi32_i32$0 = $4; + HEAP32[(i64toi32_i32$0 + 8 | 0) >> 2] = $323; + HEAP32[(i64toi32_i32$0 + 12 | 0) >> 2] = i64toi32_i32$1; + btConvexHullInternal__DMul_btConvexHullInternal__Int128_2c_20unsigned_20long_20long___mul_28btConvexHullInternal__Int128_2c_20btConvexHullInternal__Int128_2c_20btConvexHullInternal__Int128__2c_20btConvexHullInternal__Int128__29(i64toi32_i32$0 + 24 | 0 | 0, i64toi32_i32$0 + 8 | 0 | 0, i64toi32_i32$0 + 192 | 0 | 0, i64toi32_i32$0 + 176 | 0 | 0); + $87 = $5 + 16 | 0; + $88 = 8; + i64toi32_i32$2 = $87 + $88 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $355 = i64toi32_i32$1; + i64toi32_i32$1 = ($4 + 96 | 0) + $88 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $355; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $87; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $359 = i64toi32_i32$0; + i64toi32_i32$0 = $4; + HEAP32[(i64toi32_i32$0 + 96 | 0) >> 2] = $359; + HEAP32[(i64toi32_i32$0 + 100 | 0) >> 2] = i64toi32_i32$1; + $95 = HEAP32[(i64toi32_i32$0 + 212 | 0) >> 2] | 0; + $96 = 8; + i64toi32_i32$2 = $95 + $96 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $374 = i64toi32_i32$1; + i64toi32_i32$1 = ($4 + 80 | 0) + $96 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $374; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $95; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $378 = i64toi32_i32$0; + i64toi32_i32$0 = $4; + HEAP32[(i64toi32_i32$0 + 80 | 0) >> 2] = $378; + HEAP32[(i64toi32_i32$0 + 84 | 0) >> 2] = i64toi32_i32$1; + $103 = 8; + i64toi32_i32$2 = (i64toi32_i32$0 + 96 | 0) + $103 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $394 = i64toi32_i32$1; + i64toi32_i32$1 = ($4 + 56 | 0) + $103 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $394; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[($4 + 96 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($4 + 100 | 0) >> 2] | 0; + $398 = i64toi32_i32$0; + i64toi32_i32$0 = $4; + HEAP32[(i64toi32_i32$0 + 56 | 0) >> 2] = $398; + HEAP32[(i64toi32_i32$0 + 60 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = (i64toi32_i32$0 + 80 | 0) + $103 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $414 = i64toi32_i32$1; + i64toi32_i32$1 = ($4 + 40 | 0) + $103 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $414; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[($4 + 80 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($4 + 84 | 0) >> 2] | 0; + $418 = i64toi32_i32$0; + i64toi32_i32$0 = $4; + HEAP32[(i64toi32_i32$0 + 40 | 0) >> 2] = $418; + HEAP32[(i64toi32_i32$0 + 44 | 0) >> 2] = i64toi32_i32$1; + btConvexHullInternal__DMul_btConvexHullInternal__Int128_2c_20unsigned_20long_20long___mul_28btConvexHullInternal__Int128_2c_20btConvexHullInternal__Int128_2c_20btConvexHullInternal__Int128__2c_20btConvexHullInternal__Int128__29(i64toi32_i32$0 + 56 | 0 | 0, i64toi32_i32$0 + 40 | 0 | 0, i64toi32_i32$0 + 160 | 0 | 0, i64toi32_i32$0 + 144 | 0 | 0); + (wasm2js_i32$0 = i64toi32_i32$0, wasm2js_i32$1 = btConvexHullInternal__Int128__ucmp_28btConvexHullInternal__Int128_20const__29_20const(i64toi32_i32$0 + 176 | 0 | 0, i64toi32_i32$0 + 144 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 76 | 0) >> 2] = wasm2js_i32$1; + label$5 : { + if (!(HEAP32[(i64toi32_i32$0 + 76 | 0) >> 2] | 0)) { + break label$5 + } + HEAP32[($4 + 220 | 0) >> 2] = Math_imul(HEAP32[($4 + 76 | 0) >> 2] | 0, HEAP32[($5 + 32 | 0) >> 2] | 0); + break label$1; + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = Math_imul(btConvexHullInternal__Int128__ucmp_28btConvexHullInternal__Int128_20const__29_20const($4 + 192 | 0 | 0, $4 + 160 | 0 | 0) | 0, HEAP32[($5 + 32 | 0) >> 2] | 0)), HEAP32[(wasm2js_i32$0 + 220 | 0) >> 2] = wasm2js_i32$1; + } + $148 = HEAP32[($4 + 220 | 0) >> 2] | 0; + __stack_pointer = $4 + 224 | 0; + return $148 | 0; + } + + function btConvexHullInternal__Rational128__compare_28long_20long_29_20const($0, $1, $1$hi) { + $0 = $0 | 0; + $1 = $1 | 0; + $1$hi = $1$hi | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $4 = 0, i64toi32_i32$3 = 0, $5 = 0, i64toi32_i32$5 = 0, $14$hi = 0, $15$hi = 0, $23$hi = 0, $24$hi = 0, $34$hi = 0, $35$hi = 0, $49$hi = 0, $50$hi = 0, $11$hi = 0, $12$hi = 0, $33 = 0, $34 = 0, $35 = 0, $22 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $64$hi = 0, $11 = 0, $109 = 0, $112 = 0, $14 = 0, $120 = 0, $23 = 0, $135 = 0, $202$hi = 0, $203 = 0, $206 = 0, $80 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 48 | 0; + __stack_pointer = $4; + HEAP32[($4 + 40 | 0) >> 2] = $0; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$1 = $4; + HEAP32[(i64toi32_i32$1 + 32 | 0) >> 2] = $1; + HEAP32[(i64toi32_i32$1 + 36 | 0) >> 2] = i64toi32_i32$0; + $5 = HEAP32[(i64toi32_i32$1 + 40 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($5 + 36 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + i64toi32_i32$1 = HEAP32[($5 + 32 | 0) >> 2] | 0; + i64toi32_i32$0 = i64toi32_i32$1 >> 31 | 0; + $11 = i64toi32_i32$1; + $11$hi = i64toi32_i32$0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $12$hi = i64toi32_i32$1; + i64toi32_i32$1 = $11$hi; + i64toi32_i32$1 = $12$hi; + $109 = i64toi32_i32$0; + i64toi32_i32$1 = $11$hi; + i64toi32_i32$0 = $12$hi; + i64toi32_i32$0 = __wasm_i64_mul($11 | 0, i64toi32_i32$1 | 0, $109 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $112 = i64toi32_i32$0; + i64toi32_i32$0 = $4; + HEAP32[(i64toi32_i32$0 + 24 | 0) >> 2] = $112; + HEAP32[(i64toi32_i32$0 + 28 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 24 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 28 | 0) >> 2] | 0; + $14 = i64toi32_i32$1; + $14$hi = i64toi32_i32$0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 32 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 36 | 0) >> 2] | 0; + $15$hi = i64toi32_i32$1; + i64toi32_i32$1 = $14$hi; + i64toi32_i32$1 = $15$hi; + i64toi32_i32$1 = $14$hi; + i64toi32_i32$1 = $15$hi; + $120 = i64toi32_i32$0; + i64toi32_i32$1 = $14$hi; + i64toi32_i32$2 = $14; + i64toi32_i32$0 = $15$hi; + i64toi32_i32$3 = $120; + if ((i64toi32_i32$1 | 0) > (i64toi32_i32$0 | 0)) { + $33 = 1 + } else { + if ((i64toi32_i32$1 | 0) >= (i64toi32_i32$0 | 0)) { + if (i64toi32_i32$2 >>> 0 <= i64toi32_i32$3 >>> 0) { + $34 = 0 + } else { + $34 = 1 + } + $35 = $34; + } else { + $35 = 0 + } + $33 = $35; + } + label$3 : { + label$4 : { + if (!($33 & 1 | 0)) { + break label$4 + } + $22 = 1; + break label$3; + } + i64toi32_i32$3 = $4; + i64toi32_i32$2 = HEAP32[($4 + 24 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($4 + 28 | 0) >> 2] | 0; + $23 = i64toi32_i32$2; + $23$hi = i64toi32_i32$1; + i64toi32_i32$3 = $4; + i64toi32_i32$1 = HEAP32[($4 + 32 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($4 + 36 | 0) >> 2] | 0; + $24$hi = i64toi32_i32$2; + i64toi32_i32$2 = $23$hi; + i64toi32_i32$2 = $24$hi; + i64toi32_i32$2 = $23$hi; + i64toi32_i32$2 = $24$hi; + $135 = i64toi32_i32$1; + i64toi32_i32$2 = $23$hi; + i64toi32_i32$3 = $23; + i64toi32_i32$1 = $24$hi; + i64toi32_i32$0 = $135; + if ((i64toi32_i32$2 | 0) < (i64toi32_i32$1 | 0)) { + $36 = 1 + } else { + if ((i64toi32_i32$2 | 0) <= (i64toi32_i32$1 | 0)) { + if (i64toi32_i32$3 >>> 0 >= i64toi32_i32$0 >>> 0) { + $37 = 0 + } else { + $37 = 1 + } + $38 = $37; + } else { + $38 = 0 + } + $36 = $38; + } + $22 = $36 & 1 | 0 ? -1 : 0; + } + HEAP32[($4 + 44 | 0) >> 2] = $22; + break label$1; + } + i64toi32_i32$0 = $4; + i64toi32_i32$3 = HEAP32[($4 + 32 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($4 + 36 | 0) >> 2] | 0; + $34$hi = i64toi32_i32$2; + i64toi32_i32$2 = 0; + $35$hi = i64toi32_i32$2; + i64toi32_i32$2 = $34$hi; + i64toi32_i32$2 = $35$hi; + i64toi32_i32$2 = $34$hi; + i64toi32_i32$2 = $35$hi; + i64toi32_i32$2 = $34$hi; + i64toi32_i32$0 = i64toi32_i32$3; + i64toi32_i32$3 = $35$hi; + i64toi32_i32$1 = 0; + if ((i64toi32_i32$2 | 0) > (i64toi32_i32$3 | 0)) { + $39 = 1 + } else { + if ((i64toi32_i32$2 | 0) >= (i64toi32_i32$3 | 0)) { + if (i64toi32_i32$0 >>> 0 <= i64toi32_i32$1 >>> 0) { + $40 = 0 + } else { + $40 = 1 + } + $41 = $40; + } else { + $41 = 0 + } + $39 = $41; + } + label$5 : { + label$6 : { + if (!($39 & 1 | 0)) { + break label$6 + } + label$7 : { + if (!((HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) <= (0 | 0) & 1 | 0)) { + break label$7 + } + HEAP32[($4 + 44 | 0) >> 2] = -1; + break label$1; + } + break label$5; + } + i64toi32_i32$1 = $4; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$1 + 32 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 36 | 0) >> 2] | 0; + $49$hi = i64toi32_i32$2; + i64toi32_i32$2 = 0; + $50$hi = i64toi32_i32$2; + i64toi32_i32$2 = $49$hi; + i64toi32_i32$2 = $50$hi; + i64toi32_i32$2 = $49$hi; + i64toi32_i32$2 = $50$hi; + i64toi32_i32$2 = $49$hi; + i64toi32_i32$1 = i64toi32_i32$0; + i64toi32_i32$0 = $50$hi; + i64toi32_i32$3 = 0; + if ((i64toi32_i32$2 | 0) < (i64toi32_i32$0 | 0)) { + $42 = 1 + } else { + if ((i64toi32_i32$2 | 0) <= (i64toi32_i32$0 | 0)) { + if (i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0) { + $43 = 0 + } else { + $43 = 1 + } + $44 = $43; + } else { + $44 = 0 + } + $42 = $44; + } + label$8 : { + label$9 : { + if (!($42 & 1 | 0)) { + break label$9 + } + label$10 : { + if (!((HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$10 + } + HEAP32[($4 + 44 | 0) >> 2] = 1; + break label$1; + } + i64toi32_i32$3 = $4; + i64toi32_i32$1 = HEAP32[($4 + 32 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($4 + 36 | 0) >> 2] | 0; + $64$hi = i64toi32_i32$2; + i64toi32_i32$2 = 0; + $202$hi = i64toi32_i32$2; + i64toi32_i32$2 = $64$hi; + $203 = i64toi32_i32$1; + i64toi32_i32$2 = $202$hi; + i64toi32_i32$3 = 0; + i64toi32_i32$1 = $64$hi; + i64toi32_i32$0 = $203; + i64toi32_i32$5 = (i64toi32_i32$3 >>> 0 < i64toi32_i32$0 >>> 0) + i64toi32_i32$1 | 0; + i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0; + $206 = i64toi32_i32$3 - i64toi32_i32$0 | 0; + i64toi32_i32$3 = $4; + HEAP32[($4 + 32 | 0) >> 2] = $206; + HEAP32[($4 + 36 | 0) >> 2] = i64toi32_i32$5; + break label$8; + } + HEAP32[($4 + 44 | 0) >> 2] = HEAP32[($5 + 32 | 0) >> 2] | 0; + break label$1; + } + } + i64toi32_i32$2 = $4; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$2 + 32 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$2 + 36 | 0) >> 2] | 0; + btConvexHullInternal__Int128__operator__28long_20long_29_20const(i64toi32_i32$2 + 8 | 0 | 0, $5 + 16 | 0 | 0, i64toi32_i32$5 | 0, i64toi32_i32$3 | 0); + (wasm2js_i32$0 = i64toi32_i32$2, wasm2js_i32$1 = Math_imul(btConvexHullInternal__Int128__ucmp_28btConvexHullInternal__Int128_20const__29_20const($5 | 0, i64toi32_i32$2 + 8 | 0 | 0) | 0, HEAP32[($5 + 32 | 0) >> 2] | 0)), HEAP32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_i32$1; + } + $80 = HEAP32[($4 + 44 | 0) >> 2] | 0; + __stack_pointer = $4 + 48 | 0; + return $80 | 0; + } + + function btConvexHullInternal__DMul_btConvexHullInternal__Int128_2c_20unsigned_20long_20long___mul_28btConvexHullInternal__Int128_2c_20btConvexHullInternal__Int128_2c_20btConvexHullInternal__Int128__2c_20btConvexHullInternal__Int128__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $6 = 0, i64toi32_i32$2 = 0, $7 = 0, $14 = 0, $25$hi = 0, $26 = 0, $33 = 0, $44$hi = 0, $48 = 0, $55 = 0, $66$hi = 0, $67 = 0, $74 = 0, $85$hi = 0, $89 = 0, $96 = 0, $107$hi = 0, $108 = 0, $115 = 0, $126$hi = 0, $130 = 0, $137 = 0, $148$hi = 0, $149 = 0, $156 = 0, $167$hi = 0, $171 = 0, $180 = 0, $195 = 0, $204 = 0, $228 = 0, $237 = 0, $258 = 0, $267 = 0, $288 = 0, $297 = 0, $339 = 0, $341 = 0, $347 = 0, $349 = 0, $378 = 0, $382 = 0, $398 = 0, $402 = 0, $25 = 0, $420 = 0, $424 = 0, $440 = 0, $444 = 0, $456 = 0, $469 = 0, $473 = 0, $489 = 0, $493 = 0, $66 = 0, $511 = 0, $515 = 0, $531 = 0, $535 = 0, $547 = 0, $560 = 0, $564 = 0, $580 = 0, $584 = 0, $107 = 0, $602 = 0, $606 = 0, $622 = 0, $626 = 0, $638 = 0, $651 = 0, $655 = 0, $671 = 0, $675 = 0, $148 = 0, $693 = 0, $697 = 0, $713 = 0, $717 = 0, $729 = 0, $745 = 0, $749 = 0, $765 = 0, $769 = 0, $797 = 0, $801 = 0, $817 = 0, $821 = 0, $864 = 0, $868 = 0, $884 = 0, $888 = 0, $927 = 0, $931 = 0, $947 = 0, $951 = 0, $990 = 0, $994 = 0, $1010 = 0, $1014 = 0, $1081 = 0, $1094 = 0, $1100 = 0, $1113 = 0; + $6 = __stack_pointer - 592 | 0; + __stack_pointer = $6; + HEAP32[($6 + 588 | 0) >> 2] = $2; + HEAP32[($6 + 584 | 0) >> 2] = $3; + $7 = 8; + i64toi32_i32$2 = $0 + $7 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $378 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 552 | 0) + $7 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $378; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $382 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[(i64toi32_i32$1 + 552 | 0) >> 2] = $382; + HEAP32[(i64toi32_i32$1 + 556 | 0) >> 2] = i64toi32_i32$0; + $14 = 8; + i64toi32_i32$2 = (i64toi32_i32$1 + 552 | 0) + $14 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $398 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 8 | 0) + $14 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $398; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 552 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 556 | 0) >> 2] | 0; + $402 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[(i64toi32_i32$1 + 8 | 0) >> 2] = $402; + HEAP32[(i64toi32_i32$1 + 12 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$0 = btConvexHullInternal__DMul_btConvexHullInternal__Int128_2c_20unsigned_20long_20long___low_28btConvexHullInternal__Int128_29(i64toi32_i32$1 + 8 | 0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $25 = i64toi32_i32$0; + $25$hi = i64toi32_i32$1; + $26 = 8; + i64toi32_i32$2 = $1 + $26 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $420 = i64toi32_i32$1; + i64toi32_i32$1 = ($6 + 536 | 0) + $26 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $420; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $1; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $424 = i64toi32_i32$0; + i64toi32_i32$0 = $6; + HEAP32[(i64toi32_i32$0 + 536 | 0) >> 2] = $424; + HEAP32[(i64toi32_i32$0 + 540 | 0) >> 2] = i64toi32_i32$1; + $33 = 8; + i64toi32_i32$2 = (i64toi32_i32$0 + 536 | 0) + $33 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $440 = i64toi32_i32$1; + i64toi32_i32$1 = ($6 + 24 | 0) + $33 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $440; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 536 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 540 | 0) >> 2] | 0; + $444 = i64toi32_i32$0; + i64toi32_i32$0 = $6; + HEAP32[(i64toi32_i32$0 + 24 | 0) >> 2] = $444; + HEAP32[(i64toi32_i32$0 + 28 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$1 = btConvexHullInternal__DMul_btConvexHullInternal__Int128_2c_20unsigned_20long_20long___low_28btConvexHullInternal__Int128_29(i64toi32_i32$0 + 24 | 0 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $44$hi = i64toi32_i32$0; + i64toi32_i32$0 = $25$hi; + i64toi32_i32$0 = $44$hi; + $456 = i64toi32_i32$1; + i64toi32_i32$0 = $25$hi; + i64toi32_i32$1 = $44$hi; + btConvexHullInternal__DMul_btConvexHullInternal__Int128_2c_20unsigned_20long_20long___mul_28unsigned_20long_20long_2c_20unsigned_20long_20long_29($6 + 568 | 0 | 0, $25 | 0, i64toi32_i32$0 | 0, $456 | 0, i64toi32_i32$1 | 0); + $48 = 8; + i64toi32_i32$2 = $0 + $48 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $469 = i64toi32_i32$1; + i64toi32_i32$1 = ($6 + 504 | 0) + $48 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $469; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $473 = i64toi32_i32$0; + i64toi32_i32$0 = $6; + HEAP32[(i64toi32_i32$0 + 504 | 0) >> 2] = $473; + HEAP32[(i64toi32_i32$0 + 508 | 0) >> 2] = i64toi32_i32$1; + $55 = 8; + i64toi32_i32$2 = (i64toi32_i32$0 + 504 | 0) + $55 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $489 = i64toi32_i32$1; + i64toi32_i32$1 = ($6 + 40 | 0) + $55 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $489; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 504 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 508 | 0) >> 2] | 0; + $493 = i64toi32_i32$0; + i64toi32_i32$0 = $6; + HEAP32[(i64toi32_i32$0 + 40 | 0) >> 2] = $493; + HEAP32[(i64toi32_i32$0 + 44 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$1 = btConvexHullInternal__DMul_btConvexHullInternal__Int128_2c_20unsigned_20long_20long___low_28btConvexHullInternal__Int128_29(i64toi32_i32$0 + 40 | 0 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $66 = i64toi32_i32$1; + $66$hi = i64toi32_i32$0; + $67 = 8; + i64toi32_i32$2 = $1 + $67 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $511 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 488 | 0) + $67 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $511; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $1; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $515 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[(i64toi32_i32$1 + 488 | 0) >> 2] = $515; + HEAP32[(i64toi32_i32$1 + 492 | 0) >> 2] = i64toi32_i32$0; + $74 = 8; + i64toi32_i32$2 = (i64toi32_i32$1 + 488 | 0) + $74 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $531 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 56 | 0) + $74 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $531; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 488 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 492 | 0) >> 2] | 0; + $535 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[(i64toi32_i32$1 + 56 | 0) >> 2] = $535; + HEAP32[(i64toi32_i32$1 + 60 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$0 = btConvexHullInternal__DMul_btConvexHullInternal__Int128_2c_20unsigned_20long_20long___high_28btConvexHullInternal__Int128_29(i64toi32_i32$1 + 56 | 0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $85$hi = i64toi32_i32$1; + i64toi32_i32$1 = $66$hi; + i64toi32_i32$1 = $85$hi; + $547 = i64toi32_i32$0; + i64toi32_i32$1 = $66$hi; + i64toi32_i32$0 = $85$hi; + btConvexHullInternal__DMul_btConvexHullInternal__Int128_2c_20unsigned_20long_20long___mul_28unsigned_20long_20long_2c_20unsigned_20long_20long_29($6 + 520 | 0 | 0, $66 | 0, i64toi32_i32$1 | 0, $547 | 0, i64toi32_i32$0 | 0); + $89 = 8; + i64toi32_i32$2 = $0 + $89 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $560 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 456 | 0) + $89 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $560; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $564 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[(i64toi32_i32$1 + 456 | 0) >> 2] = $564; + HEAP32[(i64toi32_i32$1 + 460 | 0) >> 2] = i64toi32_i32$0; + $96 = 8; + i64toi32_i32$2 = (i64toi32_i32$1 + 456 | 0) + $96 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $580 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 72 | 0) + $96 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $580; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 456 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 460 | 0) >> 2] | 0; + $584 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[(i64toi32_i32$1 + 72 | 0) >> 2] = $584; + HEAP32[(i64toi32_i32$1 + 76 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$0 = btConvexHullInternal__DMul_btConvexHullInternal__Int128_2c_20unsigned_20long_20long___high_28btConvexHullInternal__Int128_29(i64toi32_i32$1 + 72 | 0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $107 = i64toi32_i32$0; + $107$hi = i64toi32_i32$1; + $108 = 8; + i64toi32_i32$2 = $1 + $108 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $602 = i64toi32_i32$1; + i64toi32_i32$1 = ($6 + 440 | 0) + $108 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $602; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $1; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $606 = i64toi32_i32$0; + i64toi32_i32$0 = $6; + HEAP32[(i64toi32_i32$0 + 440 | 0) >> 2] = $606; + HEAP32[(i64toi32_i32$0 + 444 | 0) >> 2] = i64toi32_i32$1; + $115 = 8; + i64toi32_i32$2 = (i64toi32_i32$0 + 440 | 0) + $115 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $622 = i64toi32_i32$1; + i64toi32_i32$1 = ($6 + 88 | 0) + $115 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $622; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 440 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 444 | 0) >> 2] | 0; + $626 = i64toi32_i32$0; + i64toi32_i32$0 = $6; + HEAP32[(i64toi32_i32$0 + 88 | 0) >> 2] = $626; + HEAP32[(i64toi32_i32$0 + 92 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$1 = btConvexHullInternal__DMul_btConvexHullInternal__Int128_2c_20unsigned_20long_20long___low_28btConvexHullInternal__Int128_29(i64toi32_i32$0 + 88 | 0 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $126$hi = i64toi32_i32$0; + i64toi32_i32$0 = $107$hi; + i64toi32_i32$0 = $126$hi; + $638 = i64toi32_i32$1; + i64toi32_i32$0 = $107$hi; + i64toi32_i32$1 = $126$hi; + btConvexHullInternal__DMul_btConvexHullInternal__Int128_2c_20unsigned_20long_20long___mul_28unsigned_20long_20long_2c_20unsigned_20long_20long_29($6 + 472 | 0 | 0, $107 | 0, i64toi32_i32$0 | 0, $638 | 0, i64toi32_i32$1 | 0); + $130 = 8; + i64toi32_i32$2 = $0 + $130 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $651 = i64toi32_i32$1; + i64toi32_i32$1 = ($6 + 408 | 0) + $130 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $651; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $655 = i64toi32_i32$0; + i64toi32_i32$0 = $6; + HEAP32[(i64toi32_i32$0 + 408 | 0) >> 2] = $655; + HEAP32[(i64toi32_i32$0 + 412 | 0) >> 2] = i64toi32_i32$1; + $137 = 8; + i64toi32_i32$2 = (i64toi32_i32$0 + 408 | 0) + $137 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $671 = i64toi32_i32$1; + i64toi32_i32$1 = ($6 + 104 | 0) + $137 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $671; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 408 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 412 | 0) >> 2] | 0; + $675 = i64toi32_i32$0; + i64toi32_i32$0 = $6; + HEAP32[(i64toi32_i32$0 + 104 | 0) >> 2] = $675; + HEAP32[(i64toi32_i32$0 + 108 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$1 = btConvexHullInternal__DMul_btConvexHullInternal__Int128_2c_20unsigned_20long_20long___high_28btConvexHullInternal__Int128_29(i64toi32_i32$0 + 104 | 0 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $148 = i64toi32_i32$1; + $148$hi = i64toi32_i32$0; + $149 = 8; + i64toi32_i32$2 = $1 + $149 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $693 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 392 | 0) + $149 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $693; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $1; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $697 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[(i64toi32_i32$1 + 392 | 0) >> 2] = $697; + HEAP32[(i64toi32_i32$1 + 396 | 0) >> 2] = i64toi32_i32$0; + $156 = 8; + i64toi32_i32$2 = (i64toi32_i32$1 + 392 | 0) + $156 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $713 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 120 | 0) + $156 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $713; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 392 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 396 | 0) >> 2] | 0; + $717 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[(i64toi32_i32$1 + 120 | 0) >> 2] = $717; + HEAP32[(i64toi32_i32$1 + 124 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$0 = btConvexHullInternal__DMul_btConvexHullInternal__Int128_2c_20unsigned_20long_20long___high_28btConvexHullInternal__Int128_29(i64toi32_i32$1 + 120 | 0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $167$hi = i64toi32_i32$1; + i64toi32_i32$1 = $148$hi; + i64toi32_i32$1 = $167$hi; + $729 = i64toi32_i32$0; + i64toi32_i32$1 = $148$hi; + i64toi32_i32$0 = $167$hi; + btConvexHullInternal__DMul_btConvexHullInternal__Int128_2c_20unsigned_20long_20long___mul_28unsigned_20long_20long_2c_20unsigned_20long_20long_29($6 + 424 | 0 | 0, $148 | 0, i64toi32_i32$1 | 0, $729 | 0, i64toi32_i32$0 | 0); + $171 = 8; + i64toi32_i32$2 = ($6 + 520 | 0) + $171 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $745 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 344 | 0) + $171 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $745; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 520 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 524 | 0) >> 2] | 0; + $749 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[(i64toi32_i32$1 + 344 | 0) >> 2] = $749; + HEAP32[(i64toi32_i32$1 + 348 | 0) >> 2] = i64toi32_i32$0; + $180 = 8; + i64toi32_i32$2 = (i64toi32_i32$1 + 344 | 0) + $180 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $765 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 136 | 0) + $180 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $765; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 344 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 348 | 0) >> 2] | 0; + $769 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[(i64toi32_i32$1 + 136 | 0) >> 2] = $769; + HEAP32[(i64toi32_i32$1 + 140 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$0 = btConvexHullInternal__DMul_btConvexHullInternal__Int128_2c_20unsigned_20long_20long___low_28btConvexHullInternal__Int128_29(i64toi32_i32$1 + 136 | 0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + btConvexHullInternal__Int128__Int128_28unsigned_20long_20long_29($6 + 360 | 0 | 0, i64toi32_i32$0 | 0, i64toi32_i32$1 | 0) | 0; + $195 = 8; + i64toi32_i32$2 = ($6 + 472 | 0) + $195 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $797 = i64toi32_i32$1; + i64toi32_i32$1 = ($6 + 312 | 0) + $195 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $797; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 472 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 476 | 0) >> 2] | 0; + $801 = i64toi32_i32$0; + i64toi32_i32$0 = $6; + HEAP32[(i64toi32_i32$0 + 312 | 0) >> 2] = $801; + HEAP32[(i64toi32_i32$0 + 316 | 0) >> 2] = i64toi32_i32$1; + $204 = 8; + i64toi32_i32$2 = (i64toi32_i32$0 + 312 | 0) + $204 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $817 = i64toi32_i32$1; + i64toi32_i32$1 = ($6 + 152 | 0) + $204 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $817; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 312 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 316 | 0) >> 2] | 0; + $821 = i64toi32_i32$0; + i64toi32_i32$0 = $6; + HEAP32[(i64toi32_i32$0 + 152 | 0) >> 2] = $821; + HEAP32[(i64toi32_i32$0 + 156 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$1 = btConvexHullInternal__DMul_btConvexHullInternal__Int128_2c_20unsigned_20long_20long___low_28btConvexHullInternal__Int128_29(i64toi32_i32$0 + 152 | 0 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + btConvexHullInternal__Int128__Int128_28unsigned_20long_20long_29($6 + 328 | 0 | 0, i64toi32_i32$1 | 0, i64toi32_i32$0 | 0) | 0; + btConvexHullInternal__Int128__operator__28btConvexHullInternal__Int128_20const__29_20const($6 + 376 | 0 | 0, $6 + 360 | 0 | 0, $6 + 328 | 0 | 0); + $228 = 8; + i64toi32_i32$2 = ($6 + 520 | 0) + $228 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $864 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 280 | 0) + $228 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $864; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 520 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 524 | 0) >> 2] | 0; + $868 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[(i64toi32_i32$1 + 280 | 0) >> 2] = $868; + HEAP32[(i64toi32_i32$1 + 284 | 0) >> 2] = i64toi32_i32$0; + $237 = 8; + i64toi32_i32$2 = (i64toi32_i32$1 + 280 | 0) + $237 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $884 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 168 | 0) + $237 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $884; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 280 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 284 | 0) >> 2] | 0; + $888 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[(i64toi32_i32$1 + 168 | 0) >> 2] = $888; + HEAP32[(i64toi32_i32$1 + 172 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$0 = btConvexHullInternal__DMul_btConvexHullInternal__Int128_2c_20unsigned_20long_20long___high_28btConvexHullInternal__Int128_29(i64toi32_i32$1 + 168 | 0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + btConvexHullInternal__Int128__Int128_28unsigned_20long_20long_29($6 + 296 | 0 | 0, i64toi32_i32$0 | 0, i64toi32_i32$1 | 0) | 0; + btConvexHullInternal__Int128__operator___28btConvexHullInternal__Int128_20const__29($6 + 424 | 0 | 0, $6 + 296 | 0 | 0) | 0; + $258 = 8; + i64toi32_i32$2 = ($6 + 472 | 0) + $258 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $927 = i64toi32_i32$1; + i64toi32_i32$1 = ($6 + 248 | 0) + $258 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $927; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 472 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 476 | 0) >> 2] | 0; + $931 = i64toi32_i32$0; + i64toi32_i32$0 = $6; + HEAP32[(i64toi32_i32$0 + 248 | 0) >> 2] = $931; + HEAP32[(i64toi32_i32$0 + 252 | 0) >> 2] = i64toi32_i32$1; + $267 = 8; + i64toi32_i32$2 = (i64toi32_i32$0 + 248 | 0) + $267 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $947 = i64toi32_i32$1; + i64toi32_i32$1 = ($6 + 184 | 0) + $267 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $947; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 248 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 252 | 0) >> 2] | 0; + $951 = i64toi32_i32$0; + i64toi32_i32$0 = $6; + HEAP32[(i64toi32_i32$0 + 184 | 0) >> 2] = $951; + HEAP32[(i64toi32_i32$0 + 188 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$1 = btConvexHullInternal__DMul_btConvexHullInternal__Int128_2c_20unsigned_20long_20long___high_28btConvexHullInternal__Int128_29(i64toi32_i32$0 + 184 | 0 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + btConvexHullInternal__Int128__Int128_28unsigned_20long_20long_29($6 + 264 | 0 | 0, i64toi32_i32$1 | 0, i64toi32_i32$0 | 0) | 0; + btConvexHullInternal__Int128__operator___28btConvexHullInternal__Int128_20const__29($6 + 424 | 0 | 0, $6 + 264 | 0 | 0) | 0; + $288 = 8; + i64toi32_i32$2 = ($6 + 376 | 0) + $288 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $990 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 216 | 0) + $288 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $990; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 376 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 380 | 0) >> 2] | 0; + $994 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[(i64toi32_i32$1 + 216 | 0) >> 2] = $994; + HEAP32[(i64toi32_i32$1 + 220 | 0) >> 2] = i64toi32_i32$0; + $297 = 8; + i64toi32_i32$2 = (i64toi32_i32$1 + 216 | 0) + $297 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1010 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 200 | 0) + $297 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1010; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 216 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 220 | 0) >> 2] | 0; + $1014 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[(i64toi32_i32$1 + 200 | 0) >> 2] = $1014; + HEAP32[(i64toi32_i32$1 + 204 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$0 = btConvexHullInternal__DMul_btConvexHullInternal__Int128_2c_20unsigned_20long_20long___high_28btConvexHullInternal__Int128_29(i64toi32_i32$1 + 200 | 0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + btConvexHullInternal__Int128__Int128_28unsigned_20long_20long_29($6 + 232 | 0 | 0, i64toi32_i32$0 | 0, i64toi32_i32$1 | 0) | 0; + btConvexHullInternal__Int128__operator___28btConvexHullInternal__Int128_20const__29($6 + 424 | 0 | 0, $6 + 232 | 0 | 0) | 0; + btConvexHullInternal__DMul_btConvexHullInternal__Int128_2c_20unsigned_20long_20long___shlHalf_28btConvexHullInternal__Int128__29($6 + 376 | 0 | 0); + btConvexHullInternal__Int128__operator___28btConvexHullInternal__Int128_20const__29($6 + 568 | 0 | 0, $6 + 376 | 0 | 0) | 0; + label$1 : { + if (!((btConvexHullInternal__Int128__operator__28btConvexHullInternal__Int128_20const__29_20const_1($6 + 568 | 0 | 0, $6 + 376 | 0 | 0) | 0) & 1 | 0)) { + break label$1 + } + btConvexHullInternal__Int128__operator___28_29($6 + 424 | 0 | 0) | 0; + } + $339 = HEAP32[($6 + 588 | 0) >> 2] | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 568 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 572 | 0) >> 2] | 0; + $1081 = i64toi32_i32$1; + i64toi32_i32$1 = $339; + HEAP32[i64toi32_i32$1 >> 2] = $1081; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $341 = 8; + i64toi32_i32$2 = ($6 + 568 | 0) + $341 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1094 = i64toi32_i32$0; + i64toi32_i32$0 = $339 + $341 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1094; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $347 = HEAP32[($6 + 584 | 0) >> 2] | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 424 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 428 | 0) >> 2] | 0; + $1100 = i64toi32_i32$1; + i64toi32_i32$1 = $347; + HEAP32[i64toi32_i32$1 >> 2] = $1100; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $349 = 8; + i64toi32_i32$2 = ($6 + 424 | 0) + $349 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1113 = i64toi32_i32$0; + i64toi32_i32$0 = $347 + $349 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1113; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + __stack_pointer = $6 + 592 | 0; + return; + } + + function btConvexHullInternal__DMul_btConvexHullInternal__Int128_2c_20unsigned_20long_20long___low_28btConvexHullInternal__Int128_29($0) { + $0 = $0 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + i64toi32_i32$2 = $0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + i64toi32_i32$HIGH_BITS = i64toi32_i32$1; + return i64toi32_i32$0 | 0; + } + + function btConvexHullInternal__DMul_btConvexHullInternal__Int128_2c_20unsigned_20long_20long___mul_28unsigned_20long_20long_2c_20unsigned_20long_20long_29($0, $1, $1$hi, $2, $2$hi) { + $0 = $0 | 0; + $1 = $1 | 0; + $1$hi = $1$hi | 0; + $2 = $2 | 0; + $2$hi = $2$hi | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $5 = 0, $6$hi = 0, $7$hi = 0, $6 = 0, $25 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$1 = $5; + HEAP32[(i64toi32_i32$1 + 8 | 0) >> 2] = $1; + HEAP32[(i64toi32_i32$1 + 12 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$0 = $2$hi; + HEAP32[i64toi32_i32$1 >> 2] = $2; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$1 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 12 | 0) >> 2] | 0; + $6 = i64toi32_i32$0; + $6$hi = i64toi32_i32$1; + i64toi32_i32$1 = HEAP32[$5 >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 4 | 0) >> 2] | 0; + $7$hi = i64toi32_i32$0; + i64toi32_i32$0 = $6$hi; + i64toi32_i32$0 = $7$hi; + $25 = i64toi32_i32$1; + i64toi32_i32$0 = $6$hi; + i64toi32_i32$1 = $7$hi; + btConvexHullInternal__Int128__mul_28unsigned_20long_20long_2c_20unsigned_20long_20long_29($0 | 0, $6 | 0, i64toi32_i32$0 | 0, $25 | 0, i64toi32_i32$1 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function btConvexHullInternal__DMul_btConvexHullInternal__Int128_2c_20unsigned_20long_20long___high_28btConvexHullInternal__Int128_29($0) { + $0 = $0 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + i64toi32_i32$2 = $0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 12 | 0) >> 2] | 0; + i64toi32_i32$HIGH_BITS = i64toi32_i32$1; + return i64toi32_i32$0 | 0; + } + + function btConvexHullInternal__Int128__Int128_28unsigned_20long_20long_29($0, $1, $1$hi) { + $0 = $0 | 0; + $1 = $1 | 0; + $1$hi = $1$hi | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, $5 = 0, $21 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$1 = $4; + HEAP32[i64toi32_i32$1 >> 2] = $1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $5 = HEAP32[(i64toi32_i32$1 + 12 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $21 = i64toi32_i32$0; + i64toi32_i32$0 = $5; + HEAP32[i64toi32_i32$0 >> 2] = $21; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$1 = 0; + HEAP32[(i64toi32_i32$0 + 8 | 0) >> 2] = 0; + HEAP32[(i64toi32_i32$0 + 12 | 0) >> 2] = i64toi32_i32$1; + return i64toi32_i32$0 | 0; + } + + function btConvexHullInternal__Int128__operator__28btConvexHullInternal__Int128_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$5 = 0, i64toi32_i32$3 = 0, $5 = 0, $6 = 0, $16$hi = 0, $17$hi = 0, $7$hi = 0, $9$hi = 0, $11$hi = 0, $12$hi = 0, $14$hi = 0, $15$hi = 0, $23$hi = 0, $24$hi = 0, $7 = 0, $45 = 0, $11 = 0, $12 = 0, $58 = 0, $16 = 0, $67 = 0, $72 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $1; + HEAP32[($5 + 8 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $7 = i64toi32_i32$0; + $7$hi = i64toi32_i32$1; + i64toi32_i32$2 = HEAP32[($5 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $9$hi = i64toi32_i32$0; + i64toi32_i32$0 = $7$hi; + i64toi32_i32$0 = $9$hi; + $45 = i64toi32_i32$1; + i64toi32_i32$0 = $7$hi; + i64toi32_i32$2 = $7; + i64toi32_i32$1 = $9$hi; + i64toi32_i32$3 = $45; + i64toi32_i32$4 = i64toi32_i32$2 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$0 + i64toi32_i32$1 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + i64toi32_i32$2 = $5; + HEAP32[i64toi32_i32$2 >> 2] = i64toi32_i32$4; + HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] = i64toi32_i32$5; + i64toi32_i32$0 = i64toi32_i32$2; + i64toi32_i32$5 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $11 = i64toi32_i32$5; + $11$hi = i64toi32_i32$2; + i64toi32_i32$0 = $6; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$0 + 8 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 12 | 0) >> 2] | 0; + $12 = i64toi32_i32$2; + $12$hi = i64toi32_i32$5; + i64toi32_i32$0 = HEAP32[($5 + 8 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 8 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$0 + 12 | 0) >> 2] | 0; + $14$hi = i64toi32_i32$2; + i64toi32_i32$2 = $12$hi; + i64toi32_i32$2 = $14$hi; + $58 = i64toi32_i32$5; + i64toi32_i32$2 = $12$hi; + i64toi32_i32$0 = $12; + i64toi32_i32$5 = $14$hi; + i64toi32_i32$3 = $58; + i64toi32_i32$1 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + i64toi32_i32$4 = i64toi32_i32$2 + i64toi32_i32$5 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $15$hi = i64toi32_i32$4; + i64toi32_i32$2 = $5; + i64toi32_i32$4 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $16 = i64toi32_i32$4; + $16$hi = i64toi32_i32$0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $17$hi = i64toi32_i32$4; + i64toi32_i32$4 = $16$hi; + i64toi32_i32$4 = $17$hi; + i64toi32_i32$4 = $16$hi; + i64toi32_i32$4 = $17$hi; + $67 = i64toi32_i32$0; + i64toi32_i32$4 = $16$hi; + i64toi32_i32$2 = $16; + i64toi32_i32$0 = $17$hi; + i64toi32_i32$3 = $67; + $72 = (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0 | ((i64toi32_i32$4 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0 | 0) | 0) & 1 | 0; + i64toi32_i32$2 = 0; + $23$hi = i64toi32_i32$2; + i64toi32_i32$2 = $15$hi; + i64toi32_i32$2 = $23$hi; + i64toi32_i32$2 = $15$hi; + i64toi32_i32$3 = i64toi32_i32$1; + i64toi32_i32$4 = $23$hi; + i64toi32_i32$0 = $72; + i64toi32_i32$5 = i64toi32_i32$1 + i64toi32_i32$0 | 0; + i64toi32_i32$1 = i64toi32_i32$2 + i64toi32_i32$4 | 0; + if (i64toi32_i32$5 >>> 0 < i64toi32_i32$0 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + $24$hi = i64toi32_i32$1; + i64toi32_i32$1 = $11$hi; + i64toi32_i32$1 = $24$hi; + i64toi32_i32$1 = $11$hi; + i64toi32_i32$3 = $24$hi; + btConvexHullInternal__Int128__Int128_28unsigned_20long_20long_2c_20unsigned_20long_20long_29($0 | 0, $11 | 0, i64toi32_i32$1 | 0, i64toi32_i32$5 | 0, i64toi32_i32$3 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return; + } + + function btConvexHullInternal__Int128__operator___28btConvexHullInternal__Int128_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, $5 = 0, $4 = 0, $10$hi = 0, $11$hi = 0, $6$hi = 0, $8$hi = 0, $17$hi = 0, $18$hi = 0, $22$hi = 0, $6 = 0, $42 = 0, $10 = 0, $53 = 0, $70 = 0, $22 = 0, $77$hi = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $6 = i64toi32_i32$0; + $6$hi = i64toi32_i32$1; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $8$hi = i64toi32_i32$0; + i64toi32_i32$0 = $6$hi; + i64toi32_i32$0 = $8$hi; + $42 = i64toi32_i32$1; + i64toi32_i32$0 = $6$hi; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = $8$hi; + i64toi32_i32$3 = $42; + i64toi32_i32$4 = i64toi32_i32$2 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$0 + i64toi32_i32$1 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + i64toi32_i32$2 = $4; + HEAP32[i64toi32_i32$2 >> 2] = i64toi32_i32$4; + HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] = i64toi32_i32$5; + i64toi32_i32$0 = i64toi32_i32$2; + i64toi32_i32$5 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $10 = i64toi32_i32$5; + $10$hi = i64toi32_i32$2; + i64toi32_i32$0 = $5; + i64toi32_i32$2 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $11$hi = i64toi32_i32$5; + i64toi32_i32$5 = $10$hi; + i64toi32_i32$5 = $11$hi; + i64toi32_i32$5 = $10$hi; + i64toi32_i32$5 = $11$hi; + $53 = i64toi32_i32$2; + i64toi32_i32$5 = $10$hi; + i64toi32_i32$0 = $10; + i64toi32_i32$2 = $11$hi; + i64toi32_i32$3 = $53; + label$1 : { + if (!((i64toi32_i32$5 >>> 0 < i64toi32_i32$2 >>> 0 | ((i64toi32_i32$5 | 0) == (i64toi32_i32$2 | 0) & i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0 | 0) | 0) & 1 | 0)) { + break label$1 + } + i64toi32_i32$3 = $5; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$3 + 8 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$3 + 12 | 0) >> 2] | 0; + $17$hi = i64toi32_i32$5; + i64toi32_i32$5 = 0; + $18$hi = i64toi32_i32$5; + i64toi32_i32$5 = $17$hi; + i64toi32_i32$5 = $18$hi; + i64toi32_i32$5 = $17$hi; + i64toi32_i32$3 = i64toi32_i32$0; + i64toi32_i32$0 = $18$hi; + i64toi32_i32$2 = 1; + i64toi32_i32$1 = i64toi32_i32$3 + i64toi32_i32$2 | 0; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$0 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$2 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + i64toi32_i32$3 = $5; + HEAP32[(i64toi32_i32$3 + 8 | 0) >> 2] = i64toi32_i32$1; + HEAP32[(i64toi32_i32$3 + 12 | 0) >> 2] = i64toi32_i32$4; + } + i64toi32_i32$5 = $4; + i64toi32_i32$4 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $70 = i64toi32_i32$4; + i64toi32_i32$4 = $5; + HEAP32[i64toi32_i32$4 >> 2] = $70; + HEAP32[(i64toi32_i32$4 + 4 | 0) >> 2] = i64toi32_i32$3; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$5 + 8 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$5 + 8 | 0) >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$5 + 12 | 0) >> 2] | 0; + $22 = i64toi32_i32$3; + $22$hi = i64toi32_i32$4; + i64toi32_i32$5 = $5; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$5 + 8 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$5 + 12 | 0) >> 2] | 0; + $77$hi = i64toi32_i32$3; + i64toi32_i32$3 = $22$hi; + i64toi32_i32$3 = $77$hi; + i64toi32_i32$5 = i64toi32_i32$4; + i64toi32_i32$4 = $22$hi; + i64toi32_i32$2 = $22; + i64toi32_i32$0 = i64toi32_i32$5 + i64toi32_i32$2 | 0; + i64toi32_i32$1 = i64toi32_i32$3 + i64toi32_i32$4 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$2 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + i64toi32_i32$5 = $5; + HEAP32[(i64toi32_i32$5 + 8 | 0) >> 2] = i64toi32_i32$0; + HEAP32[(i64toi32_i32$5 + 12 | 0) >> 2] = i64toi32_i32$1; + return i64toi32_i32$5 | 0; + } + + function btConvexHullInternal__DMul_btConvexHullInternal__Int128_2c_20unsigned_20long_20long___shlHalf_28btConvexHullInternal__Int128__29($0) { + $0 = $0 | 0; + var i64toi32_i32$0 = 0, $3 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $22 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + i64toi32_i32$2 = HEAP32[($3 + 12 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $22 = i64toi32_i32$0; + i64toi32_i32$0 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[(i64toi32_i32$0 + 8 | 0) >> 2] = $22; + HEAP32[(i64toi32_i32$0 + 12 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$1 = 0; + i64toi32_i32$0 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[i64toi32_i32$0 >> 2] = 0; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + return; + } + + function btConvexHullInternal__Int128__operator__28btConvexHullInternal__Int128_20const__29_20const_1($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, $5 = 0, $6$hi = 0, $8$hi = 0, $16$hi = 0, $18$hi = 0, $26$hi = 0, $28$hi = 0, $15 = 0, $25 = 0, $6 = 0, $55 = 0, $16 = 0, $71 = 0, $26 = 0, $88 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 12 | 0) >> 2] | 0; + $6 = i64toi32_i32$0; + $6$hi = i64toi32_i32$1; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 12 | 0) >> 2] | 0; + $8$hi = i64toi32_i32$0; + i64toi32_i32$0 = $6$hi; + i64toi32_i32$0 = $8$hi; + i64toi32_i32$0 = $6$hi; + i64toi32_i32$0 = $8$hi; + $55 = i64toi32_i32$1; + i64toi32_i32$0 = $6$hi; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = $8$hi; + i64toi32_i32$3 = $55; + $15 = 1; + label$1 : { + if ((i64toi32_i32$0 >>> 0 < i64toi32_i32$1 >>> 0 | ((i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) & i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0 | 0) | 0) & 1 | 0) { + break label$1 + } + i64toi32_i32$3 = $5; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$3 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$3 + 12 | 0) >> 2] | 0; + $16 = i64toi32_i32$2; + $16$hi = i64toi32_i32$0; + i64toi32_i32$3 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$3 + 8 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$3 + 12 | 0) >> 2] | 0; + $18$hi = i64toi32_i32$2; + i64toi32_i32$2 = $16$hi; + i64toi32_i32$2 = $18$hi; + i64toi32_i32$2 = $16$hi; + i64toi32_i32$2 = $18$hi; + $71 = i64toi32_i32$0; + i64toi32_i32$2 = $16$hi; + i64toi32_i32$3 = $16; + i64toi32_i32$0 = $18$hi; + i64toi32_i32$1 = $71; + $25 = 0; + label$2 : { + if (!(((i64toi32_i32$3 | 0) == (i64toi32_i32$1 | 0) & (i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) | 0) & 1 | 0)) { + break label$2 + } + i64toi32_i32$1 = $5; + i64toi32_i32$3 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $26 = i64toi32_i32$3; + $26$hi = i64toi32_i32$2; + i64toi32_i32$1 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $28$hi = i64toi32_i32$3; + i64toi32_i32$3 = $26$hi; + i64toi32_i32$3 = $28$hi; + i64toi32_i32$3 = $26$hi; + i64toi32_i32$3 = $28$hi; + $88 = i64toi32_i32$2; + i64toi32_i32$3 = $26$hi; + i64toi32_i32$1 = $26; + i64toi32_i32$2 = $28$hi; + i64toi32_i32$0 = $88; + $25 = i64toi32_i32$3 >>> 0 < i64toi32_i32$2 >>> 0 | ((i64toi32_i32$3 | 0) == (i64toi32_i32$2 | 0) & i64toi32_i32$1 >>> 0 < i64toi32_i32$0 >>> 0 | 0) | 0; + } + $15 = $25; + } + return $15 & 1 | 0 | 0; + } + + function btConvexHullInternal__Int128__operator___28_29($0) { + $0 = $0 | 0; + var i64toi32_i32$5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, $4 = 0, $7$hi = 0, $8$hi = 0, $3 = 0, $5$hi = 0, $6$hi = 0, $14$hi = 0, $15$hi = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $5$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $6$hi = i64toi32_i32$1; + i64toi32_i32$1 = $5$hi; + i64toi32_i32$1 = $6$hi; + i64toi32_i32$1 = $5$hi; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$0 = $6$hi; + i64toi32_i32$3 = 1; + i64toi32_i32$4 = i64toi32_i32$2 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$1 + i64toi32_i32$0 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $7$hi = i64toi32_i32$5; + i64toi32_i32$2 = $4; + HEAP32[i64toi32_i32$2 >> 2] = i64toi32_i32$4; + HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] = i64toi32_i32$5; + i64toi32_i32$5 = 0; + $8$hi = i64toi32_i32$5; + i64toi32_i32$5 = $7$hi; + i64toi32_i32$5 = $8$hi; + i64toi32_i32$5 = $7$hi; + i64toi32_i32$5 = $8$hi; + i64toi32_i32$5 = $7$hi; + i64toi32_i32$1 = i64toi32_i32$4; + i64toi32_i32$2 = $8$hi; + i64toi32_i32$3 = 0; + label$1 : { + if (!(((i64toi32_i32$4 | 0) == (i64toi32_i32$3 | 0) & (i64toi32_i32$5 | 0) == (i64toi32_i32$2 | 0) | 0) & 1 | 0)) { + break label$1 + } + i64toi32_i32$3 = $4; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$3 + 8 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$3 + 12 | 0) >> 2] | 0; + $14$hi = i64toi32_i32$5; + i64toi32_i32$5 = 0; + $15$hi = i64toi32_i32$5; + i64toi32_i32$5 = $14$hi; + i64toi32_i32$5 = $15$hi; + i64toi32_i32$5 = $14$hi; + i64toi32_i32$3 = i64toi32_i32$1; + i64toi32_i32$1 = $15$hi; + i64toi32_i32$2 = 1; + i64toi32_i32$0 = i64toi32_i32$3 + i64toi32_i32$2 | 0; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$1 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$2 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + i64toi32_i32$3 = $4; + HEAP32[(i64toi32_i32$3 + 8 | 0) >> 2] = i64toi32_i32$0; + HEAP32[(i64toi32_i32$3 + 12 | 0) >> 2] = i64toi32_i32$4; + } + return $4 | 0; + } + + function btConvexHullInternal__newEdgePair_28btConvexHullInternal__Vertex__2c_20btConvexHullInternal__Vertex__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $58 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + if ((HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$1 + } + } + __assert_fail(76189 | 0, 72732 | 0, 1e3 | 0, 71028 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btConvexHullInternal__Pool_btConvexHullInternal__Edge___newObject_28_29($6 + 48 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btConvexHullInternal__Pool_btConvexHullInternal__Edge___newObject_28_29($6 + 48 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[($6 + 100 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[($6 + 100 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($5 + 20 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 16 | 0) >> 2] = 0; + HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] = 0; + HEAP32[($6 + 116 | 0) >> 2] = (HEAP32[($6 + 116 | 0) >> 2] | 0) + 1 | 0; + label$3 : { + if (!((HEAP32[($6 + 116 | 0) >> 2] | 0 | 0) > (HEAP32[($6 + 120 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6 + 120 | 0) >> 2] = HEAP32[($6 + 116 | 0) >> 2] | 0; + } + $58 = HEAP32[($5 + 16 | 0) >> 2] | 0; + __stack_pointer = $5 + 32 | 0; + return $58 | 0; + } + + function btConvexHullInternal__Pool_btConvexHullInternal__Edge___newObject_28_29($0) { + $0 = $0 | 0; + var $3 = 0, i64toi32_i32$1 = 0, $4 = 0, $34 = 0, i64toi32_i32$0 = 0, $35 = 0, $25 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$1 + } + HEAP32[($3 + 4 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + label$2 : { + label$3 : { + if (!((HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + break label$2; + } + $25 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(12 | 0, 16 | 0) | 0; + btConvexHullInternal__PoolArray_btConvexHullInternal__Edge___PoolArray_28int_29($25 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($3 + 4 | 0) >> 2] = $25; + HEAP32[((HEAP32[($3 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[$4 >> 2] | 0; + HEAP32[$4 >> 2] = HEAP32[($3 + 4 | 0) >> 2] | 0; + } + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btConvexHullInternal__PoolArray_btConvexHullInternal__Edge___init_28_29(HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + } + HEAP32[($4 + 8 | 0) >> 2] = HEAP32[(HEAP32[($3 + 8 | 0) >> 2] | 0) >> 2] | 0; + $34 = HEAP32[($3 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = 0; + $35 = 0; + i64toi32_i32$1 = $34; + HEAP32[i64toi32_i32$1 >> 2] = $35; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = i64toi32_i32$1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $35; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $34 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $35; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $3 + 16 | 0; + return $34 | 0; + } + + function btConvexHullInternal__PoolArray_btConvexHullInternal__Edge___PoolArray_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($5 + 4 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(Math_imul(HEAP32[($4 + 8 | 0) >> 2] | 0, 24) | 0, 16 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function btConvexHullInternal__PoolArray_btConvexHullInternal__Edge___init_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $26 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[$4 >> 2] | 0; + HEAP32[($3 + 4 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + label$3 : { + label$4 : { + if (!(((HEAP32[($3 + 4 | 0) >> 2] | 0) + 1 | 0 | 0) < (HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + $26 = (HEAP32[($3 + 8 | 0) >> 2] | 0) + 24 | 0; + break label$3; + } + $26 = 0; + } + HEAP32[(HEAP32[($3 + 8 | 0) >> 2] | 0) >> 2] = $26; + HEAP32[($3 + 4 | 0) >> 2] = (HEAP32[($3 + 4 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($3 + 8 | 0) >> 2] = (HEAP32[($3 + 8 | 0) >> 2] | 0) + 24 | 0; + continue label$2; + }; + } + return HEAP32[$4 >> 2] | 0 | 0; + } + + function btConvexHullInternal__mergeProjection_28btConvexHullInternal__IntermediateHull__2c_20btConvexHullInternal__IntermediateHull__2c_20btConvexHullInternal__Vertex___2c_20btConvexHullInternal__Vertex___29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $503 = 0, $543 = 0, $219 = 0, $279 = 0, $359 = 0, $419 = 0, $492 = 0, $495 = 0, $532 = 0, $535 = 0, $625 = 0; + $7 = __stack_pointer - 160 | 0; + __stack_pointer = $7; + HEAP32[($7 + 152 | 0) >> 2] = $0; + HEAP32[($7 + 148 | 0) >> 2] = $1; + HEAP32[($7 + 144 | 0) >> 2] = $2; + HEAP32[($7 + 140 | 0) >> 2] = $3; + HEAP32[($7 + 136 | 0) >> 2] = $4; + HEAP32[($7 + 132 | 0) >> 2] = HEAP32[((HEAP32[($7 + 148 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + HEAP32[($7 + 128 | 0) >> 2] = HEAP32[((HEAP32[($7 + 144 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[((HEAP32[($7 + 132 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($7 + 128 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + if (!((HEAP32[((HEAP32[($7 + 132 | 0) >> 2] | 0) + 92 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($7 + 128 | 0) >> 2] | 0) + 92 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + label$3 : { + if ((HEAP32[((HEAP32[($7 + 132 | 0) >> 2] | 0) + 96 | 0) >> 2] | 0 | 0) < (HEAP32[((HEAP32[($7 + 128 | 0) >> 2] | 0) + 96 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$3 + } + __assert_fail(65574 | 0, 72732 | 0, 1025 | 0, 76421 | 0); + wasm2js_trap(); + } + HEAP32[($7 + 124 | 0) >> 2] = HEAP32[((HEAP32[($7 + 128 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$4 : { + if (!((HEAP32[($7 + 124 | 0) >> 2] | 0 | 0) == (HEAP32[($7 + 128 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[(HEAP32[($7 + 140 | 0) >> 2] | 0) >> 2] = HEAP32[($7 + 132 | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[((HEAP32[($7 + 128 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + label$6 : { + if ((HEAP32[(HEAP32[((HEAP32[($7 + 128 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($7 + 128 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$6 + } + __assert_fail(70216 | 0, 72732 | 0, 1032 | 0, 76421 | 0); + wasm2js_trap(); + } + HEAP32[($7 + 128 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7 + 128 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + label$7 : { + if ((HEAP32[(HEAP32[((HEAP32[($7 + 128 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($7 + 128 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$7 + } + __assert_fail(70216 | 0, 72732 | 0, 1034 | 0, 76421 | 0); + wasm2js_trap(); + } + } + HEAP32[(HEAP32[($7 + 136 | 0) >> 2] | 0) >> 2] = HEAP32[($7 + 128 | 0) >> 2] | 0; + HEAP8[($7 + 159 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + HEAP32[($7 + 120 | 0) >> 2] = HEAP32[(HEAP32[($7 + 128 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[(HEAP32[($7 + 124 | 0) >> 2] | 0) >> 2] = HEAP32[($7 + 120 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($7 + 124 | 0) >> 2] | 0; + label$8 : { + if (!((HEAP32[($7 + 128 | 0) >> 2] | 0 | 0) == (HEAP32[(HEAP32[($7 + 144 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + label$9 : { + label$10 : { + label$11 : { + if ((HEAP32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0 | 0) < (HEAP32[((HEAP32[($7 + 124 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$11 + } + if (!((HEAP32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($7 + 124 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$10 + } + if (!((HEAP32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + 92 | 0) >> 2] | 0 | 0) < (HEAP32[((HEAP32[($7 + 124 | 0) >> 2] | 0) + 92 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$10 + } + } + HEAP32[(HEAP32[($7 + 144 | 0) >> 2] | 0) >> 2] = HEAP32[($7 + 120 | 0) >> 2] | 0; + break label$9; + } + HEAP32[(HEAP32[($7 + 144 | 0) >> 2] | 0) >> 2] = HEAP32[($7 + 124 | 0) >> 2] | 0; + } + } + label$12 : { + if (!((HEAP32[($7 + 128 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($7 + 144 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$12 + } + label$13 : { + label$14 : { + label$15 : { + if ((HEAP32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0 | 0) > (HEAP32[((HEAP32[($7 + 124 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$15 + } + if (!((HEAP32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($7 + 124 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$14 + } + if (!((HEAP32[((HEAP32[($7 + 120 | 0) >> 2] | 0) + 92 | 0) >> 2] | 0 | 0) > (HEAP32[((HEAP32[($7 + 124 | 0) >> 2] | 0) + 92 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$14 + } + } + HEAP32[((HEAP32[($7 + 144 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($7 + 120 | 0) >> 2] | 0; + break label$13; + } + HEAP32[((HEAP32[($7 + 144 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($7 + 124 | 0) >> 2] | 0; + } + } + } + HEAP32[($7 + 132 | 0) >> 2] = HEAP32[((HEAP32[($7 + 148 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($7 + 128 | 0) >> 2] = HEAP32[((HEAP32[($7 + 144 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($7 + 116 | 0) >> 2] = 0; + HEAP32[($7 + 112 | 0) >> 2] = 0; + HEAP32[($7 + 108 | 0) >> 2] = 1; + HEAP32[($7 + 104 | 0) >> 2] = 0; + label$16 : { + label$17 : while (1) { + if (!((HEAP32[($7 + 104 | 0) >> 2] | 0 | 0) <= (1 | 0) & 1 | 0)) { + break label$16 + } + HEAP32[($7 + 100 | 0) >> 2] = Math_imul((HEAP32[((HEAP32[($7 + 128 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7 + 132 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0) | 0, HEAP32[($7 + 108 | 0) >> 2] | 0); + label$18 : { + label$19 : { + if (!((HEAP32[($7 + 100 | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0)) { + break label$19 + } + label$20 : { + label$21 : while (1) { + HEAP32[($7 + 96 | 0) >> 2] = (HEAP32[((HEAP32[($7 + 128 | 0) >> 2] | 0) + 92 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7 + 132 | 0) >> 2] | 0) + 92 | 0) >> 2] | 0) | 0; + label$22 : { + label$23 : { + if (!(HEAP32[($7 + 104 | 0) >> 2] | 0)) { + break label$23 + } + $219 = HEAP32[(HEAP32[($7 + 132 | 0) >> 2] | 0) >> 2] | 0; + break label$22; + } + $219 = HEAP32[((HEAP32[($7 + 132 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + } + HEAP32[($7 + 92 | 0) >> 2] = $219; + label$24 : { + if (!((HEAP32[($7 + 92 | 0) >> 2] | 0 | 0) != (HEAP32[($7 + 132 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$24 + } + HEAP32[($7 + 88 | 0) >> 2] = Math_imul((HEAP32[((HEAP32[($7 + 92 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7 + 132 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0) | 0, HEAP32[($7 + 108 | 0) >> 2] | 0); + HEAP32[($7 + 84 | 0) >> 2] = (HEAP32[((HEAP32[($7 + 92 | 0) >> 2] | 0) + 92 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7 + 132 | 0) >> 2] | 0) + 92 | 0) >> 2] | 0) | 0; + label$25 : { + if (!((HEAP32[($7 + 84 | 0) >> 2] | 0 | 0) <= (0 | 0) & 1 | 0)) { + break label$25 + } + label$26 : { + if (!(HEAP32[($7 + 88 | 0) >> 2] | 0)) { + break label$26 + } + if (!((HEAP32[($7 + 88 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0)) { + break label$25 + } + if (!((Math_imul(HEAP32[($7 + 84 | 0) >> 2] | 0, HEAP32[($7 + 100 | 0) >> 2] | 0) | 0) <= (Math_imul(HEAP32[($7 + 96 | 0) >> 2] | 0, HEAP32[($7 + 88 | 0) >> 2] | 0) | 0) & 1 | 0)) { + break label$25 + } + } + HEAP32[($7 + 132 | 0) >> 2] = HEAP32[($7 + 92 | 0) >> 2] | 0; + HEAP32[($7 + 100 | 0) >> 2] = Math_imul((HEAP32[((HEAP32[($7 + 128 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7 + 132 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0) | 0, HEAP32[($7 + 108 | 0) >> 2] | 0); + continue label$21; + } + } + label$27 : { + label$28 : { + if (!(HEAP32[($7 + 104 | 0) >> 2] | 0)) { + break label$28 + } + $279 = HEAP32[(HEAP32[($7 + 128 | 0) >> 2] | 0) >> 2] | 0; + break label$27; + } + $279 = HEAP32[((HEAP32[($7 + 128 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + } + HEAP32[($7 + 80 | 0) >> 2] = $279; + if (!((HEAP32[($7 + 80 | 0) >> 2] | 0 | 0) != (HEAP32[($7 + 128 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$20 + } + HEAP32[($7 + 76 | 0) >> 2] = Math_imul((HEAP32[((HEAP32[($7 + 80 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7 + 128 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0) | 0, HEAP32[($7 + 108 | 0) >> 2] | 0); + HEAP32[($7 + 72 | 0) >> 2] = (HEAP32[((HEAP32[($7 + 80 | 0) >> 2] | 0) + 92 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7 + 128 | 0) >> 2] | 0) + 92 | 0) >> 2] | 0) | 0; + HEAP32[($7 + 68 | 0) >> 2] = Math_imul((HEAP32[((HEAP32[($7 + 80 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7 + 132 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0) | 0, HEAP32[($7 + 108 | 0) >> 2] | 0); + label$29 : { + if (!((HEAP32[($7 + 68 | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0)) { + break label$29 + } + if (!((HEAP32[($7 + 72 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0)) { + break label$29 + } + label$30 : { + if (!(HEAP32[($7 + 76 | 0) >> 2] | 0)) { + break label$30 + } + if (!((HEAP32[($7 + 76 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0)) { + break label$29 + } + if (!((Math_imul(HEAP32[($7 + 72 | 0) >> 2] | 0, HEAP32[($7 + 100 | 0) >> 2] | 0) | 0) < (Math_imul(HEAP32[($7 + 96 | 0) >> 2] | 0, HEAP32[($7 + 76 | 0) >> 2] | 0) | 0) & 1 | 0)) { + break label$29 + } + } + HEAP32[($7 + 128 | 0) >> 2] = HEAP32[($7 + 80 | 0) >> 2] | 0; + HEAP32[($7 + 100 | 0) >> 2] = HEAP32[($7 + 68 | 0) >> 2] | 0; + continue label$21; + } + break label$21; + }; + } + break label$18; + } + label$31 : { + label$32 : { + if (!((HEAP32[($7 + 100 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0)) { + break label$32 + } + label$33 : { + label$34 : while (1) { + HEAP32[($7 + 64 | 0) >> 2] = (HEAP32[((HEAP32[($7 + 128 | 0) >> 2] | 0) + 92 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7 + 132 | 0) >> 2] | 0) + 92 | 0) >> 2] | 0) | 0; + label$35 : { + label$36 : { + if (!(HEAP32[($7 + 104 | 0) >> 2] | 0)) { + break label$36 + } + $359 = HEAP32[((HEAP32[($7 + 128 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + break label$35; + } + $359 = HEAP32[(HEAP32[($7 + 128 | 0) >> 2] | 0) >> 2] | 0; + } + HEAP32[($7 + 60 | 0) >> 2] = $359; + label$37 : { + if (!((HEAP32[($7 + 60 | 0) >> 2] | 0 | 0) != (HEAP32[($7 + 128 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$37 + } + HEAP32[($7 + 56 | 0) >> 2] = Math_imul((HEAP32[((HEAP32[($7 + 60 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7 + 128 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0) | 0, HEAP32[($7 + 108 | 0) >> 2] | 0); + HEAP32[($7 + 52 | 0) >> 2] = (HEAP32[((HEAP32[($7 + 60 | 0) >> 2] | 0) + 92 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7 + 128 | 0) >> 2] | 0) + 92 | 0) >> 2] | 0) | 0; + label$38 : { + if (!((HEAP32[($7 + 52 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$38 + } + label$39 : { + if (!(HEAP32[($7 + 56 | 0) >> 2] | 0)) { + break label$39 + } + if (!((HEAP32[($7 + 56 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0)) { + break label$38 + } + if (!((Math_imul(HEAP32[($7 + 52 | 0) >> 2] | 0, HEAP32[($7 + 100 | 0) >> 2] | 0) | 0) <= (Math_imul(HEAP32[($7 + 64 | 0) >> 2] | 0, HEAP32[($7 + 56 | 0) >> 2] | 0) | 0) & 1 | 0)) { + break label$38 + } + } + HEAP32[($7 + 128 | 0) >> 2] = HEAP32[($7 + 60 | 0) >> 2] | 0; + HEAP32[($7 + 100 | 0) >> 2] = Math_imul((HEAP32[((HEAP32[($7 + 128 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7 + 132 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0) | 0, HEAP32[($7 + 108 | 0) >> 2] | 0); + continue label$34; + } + } + label$40 : { + label$41 : { + if (!(HEAP32[($7 + 104 | 0) >> 2] | 0)) { + break label$41 + } + $419 = HEAP32[((HEAP32[($7 + 132 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + break label$40; + } + $419 = HEAP32[(HEAP32[($7 + 132 | 0) >> 2] | 0) >> 2] | 0; + } + HEAP32[($7 + 48 | 0) >> 2] = $419; + if (!((HEAP32[($7 + 48 | 0) >> 2] | 0 | 0) != (HEAP32[($7 + 132 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$33 + } + HEAP32[($7 + 44 | 0) >> 2] = Math_imul((HEAP32[((HEAP32[($7 + 48 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7 + 132 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0) | 0, HEAP32[($7 + 108 | 0) >> 2] | 0); + HEAP32[($7 + 40 | 0) >> 2] = (HEAP32[((HEAP32[($7 + 48 | 0) >> 2] | 0) + 92 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7 + 132 | 0) >> 2] | 0) + 92 | 0) >> 2] | 0) | 0; + HEAP32[($7 + 36 | 0) >> 2] = Math_imul((HEAP32[((HEAP32[($7 + 128 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7 + 48 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0) | 0, HEAP32[($7 + 108 | 0) >> 2] | 0); + label$42 : { + if (!((HEAP32[($7 + 36 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0)) { + break label$42 + } + if (!((HEAP32[($7 + 40 | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0)) { + break label$42 + } + label$43 : { + if (!(HEAP32[($7 + 44 | 0) >> 2] | 0)) { + break label$43 + } + if (!((HEAP32[($7 + 44 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0)) { + break label$42 + } + if (!((Math_imul(HEAP32[($7 + 40 | 0) >> 2] | 0, HEAP32[($7 + 100 | 0) >> 2] | 0) | 0) < (Math_imul(HEAP32[($7 + 64 | 0) >> 2] | 0, HEAP32[($7 + 44 | 0) >> 2] | 0) | 0) & 1 | 0)) { + break label$42 + } + } + HEAP32[($7 + 132 | 0) >> 2] = HEAP32[($7 + 48 | 0) >> 2] | 0; + HEAP32[($7 + 100 | 0) >> 2] = HEAP32[($7 + 36 | 0) >> 2] | 0; + continue label$34; + } + break label$34; + }; + } + break label$31; + } + HEAP32[($7 + 32 | 0) >> 2] = HEAP32[((HEAP32[($7 + 132 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0; + HEAP32[($7 + 28 | 0) >> 2] = HEAP32[((HEAP32[($7 + 132 | 0) >> 2] | 0) + 92 | 0) >> 2] | 0; + HEAP32[($7 + 24 | 0) >> 2] = HEAP32[($7 + 132 | 0) >> 2] | 0; + label$44 : while (1) { + label$45 : { + label$46 : { + if (!(HEAP32[($7 + 104 | 0) >> 2] | 0)) { + break label$46 + } + $492 = HEAP32[(HEAP32[($7 + 24 | 0) >> 2] | 0) >> 2] | 0; + break label$45; + } + $492 = HEAP32[((HEAP32[($7 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + } + $495 = $492; + HEAP32[($7 + 20 | 0) >> 2] = $495; + $503 = 0; + label$47 : { + if (!(($495 | 0) != (HEAP32[($7 + 132 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$47 + } + $503 = 0; + if (!((HEAP32[((HEAP32[($7 + 20 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0 | 0) == (HEAP32[($7 + 32 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$47 + } + $503 = (HEAP32[((HEAP32[($7 + 20 | 0) >> 2] | 0) + 92 | 0) >> 2] | 0 | 0) <= (HEAP32[($7 + 28 | 0) >> 2] | 0 | 0); + } + label$48 : { + if (!($503 & 1 | 0)) { + break label$48 + } + HEAP32[($7 + 24 | 0) >> 2] = HEAP32[($7 + 20 | 0) >> 2] | 0; + HEAP32[($7 + 28 | 0) >> 2] = HEAP32[((HEAP32[($7 + 20 | 0) >> 2] | 0) + 92 | 0) >> 2] | 0; + continue label$44; + } + break label$44; + }; + HEAP32[($7 + 132 | 0) >> 2] = HEAP32[($7 + 24 | 0) >> 2] | 0; + HEAP32[($7 + 16 | 0) >> 2] = HEAP32[((HEAP32[($7 + 128 | 0) >> 2] | 0) + 92 | 0) >> 2] | 0; + HEAP32[($7 + 12 | 0) >> 2] = HEAP32[($7 + 128 | 0) >> 2] | 0; + label$49 : while (1) { + label$50 : { + label$51 : { + if (!(HEAP32[($7 + 104 | 0) >> 2] | 0)) { + break label$51 + } + $532 = HEAP32[((HEAP32[($7 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + break label$50; + } + $532 = HEAP32[(HEAP32[($7 + 12 | 0) >> 2] | 0) >> 2] | 0; + } + $535 = $532; + HEAP32[($7 + 20 | 0) >> 2] = $535; + $543 = 0; + label$52 : { + if (!(($535 | 0) != (HEAP32[($7 + 128 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$52 + } + $543 = 0; + if (!((HEAP32[((HEAP32[($7 + 20 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0 | 0) == (HEAP32[($7 + 32 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$52 + } + $543 = (HEAP32[((HEAP32[($7 + 20 | 0) >> 2] | 0) + 92 | 0) >> 2] | 0 | 0) >= (HEAP32[($7 + 16 | 0) >> 2] | 0 | 0); + } + label$53 : { + if (!($543 & 1 | 0)) { + break label$53 + } + HEAP32[($7 + 12 | 0) >> 2] = HEAP32[($7 + 20 | 0) >> 2] | 0; + HEAP32[($7 + 16 | 0) >> 2] = HEAP32[((HEAP32[($7 + 20 | 0) >> 2] | 0) + 92 | 0) >> 2] | 0; + continue label$49; + } + break label$49; + }; + HEAP32[($7 + 128 | 0) >> 2] = HEAP32[($7 + 12 | 0) >> 2] | 0; + } + } + label$54 : { + if (HEAP32[($7 + 104 | 0) >> 2] | 0) { + break label$54 + } + HEAP32[($7 + 116 | 0) >> 2] = HEAP32[($7 + 132 | 0) >> 2] | 0; + HEAP32[($7 + 112 | 0) >> 2] = HEAP32[($7 + 128 | 0) >> 2] | 0; + HEAP32[($7 + 132 | 0) >> 2] = HEAP32[(HEAP32[($7 + 148 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($7 + 128 | 0) >> 2] = HEAP32[(HEAP32[($7 + 144 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($7 + 108 | 0) >> 2] = -1; + } + HEAP32[($7 + 104 | 0) >> 2] = (HEAP32[($7 + 104 | 0) >> 2] | 0) + 1 | 0; + continue label$17; + }; + } + HEAP32[((HEAP32[($7 + 132 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($7 + 128 | 0) >> 2] | 0; + HEAP32[(HEAP32[($7 + 128 | 0) >> 2] | 0) >> 2] = HEAP32[($7 + 132 | 0) >> 2] | 0; + HEAP32[(HEAP32[($7 + 116 | 0) >> 2] | 0) >> 2] = HEAP32[($7 + 112 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7 + 112 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($7 + 116 | 0) >> 2] | 0; + label$55 : { + if (!((HEAP32[((HEAP32[(HEAP32[($7 + 144 | 0) >> 2] | 0) >> 2] | 0) + 88 | 0) >> 2] | 0 | 0) < (HEAP32[((HEAP32[(HEAP32[($7 + 148 | 0) >> 2] | 0) >> 2] | 0) + 88 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$55 + } + HEAP32[(HEAP32[($7 + 148 | 0) >> 2] | 0) >> 2] = HEAP32[(HEAP32[($7 + 144 | 0) >> 2] | 0) >> 2] | 0; + } + label$56 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7 + 144 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0 | 0) >= (HEAP32[((HEAP32[((HEAP32[($7 + 148 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$56 + } + HEAP32[((HEAP32[($7 + 148 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[((HEAP32[($7 + 144 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + } + HEAP32[((HEAP32[($7 + 148 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[($7 + 144 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + HEAP32[(HEAP32[($7 + 140 | 0) >> 2] | 0) >> 2] = HEAP32[($7 + 116 | 0) >> 2] | 0; + HEAP32[(HEAP32[($7 + 136 | 0) >> 2] | 0) >> 2] = HEAP32[($7 + 112 | 0) >> 2] | 0; + HEAP8[($7 + 159 | 0) >> 0] = 1 & 1 | 0; + } + $625 = (HEAPU8[($7 + 159 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $7 + 160 | 0; + return $625 | 0; + } + + function btConvexHullInternal__computeInternal_28int_2c_20int_2c_20btConvexHullInternal__IntermediateHull__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $11 = 0, $205 = 0, $206 = 0, $222 = 0, $767 = 0, $771 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 96 | 0; + __stack_pointer = $6; + HEAP32[($6 + 92 | 0) >> 2] = $0; + HEAP32[($6 + 88 | 0) >> 2] = $1; + HEAP32[($6 + 84 | 0) >> 2] = $2; + HEAP32[($6 + 80 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 92 | 0) >> 2] | 0; + HEAP32[($6 + 76 | 0) >> 2] = (HEAP32[($6 + 84 | 0) >> 2] | 0) - (HEAP32[($6 + 88 | 0) >> 2] | 0) | 0; + $11 = HEAP32[($6 + 76 | 0) >> 2] | 0; + label$1 : { + label$2 : { + switch ($11 | 0) { + case 0: + HEAP32[(HEAP32[($6 + 80 | 0) >> 2] | 0) >> 2] = 0; + HEAP32[((HEAP32[($6 + 80 | 0) >> 2] | 0) + 4 | 0) >> 2] = 0; + HEAP32[((HEAP32[($6 + 80 | 0) >> 2] | 0) + 8 | 0) >> 2] = 0; + HEAP32[((HEAP32[($6 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] = 0; + break label$1; + case 2: + (wasm2js_i32$0 = $6, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btConvexHullInternal__Vertex____operator_5b_5d_28int_29($7 + 80 | 0 | 0, HEAP32[($6 + 88 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 72 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($6 + 68 | 0) >> 2] = (HEAP32[($6 + 72 | 0) >> 2] | 0) + 112 | 0; + label$6 : { + if (!((btConvexHullInternal__Point32__operator___28btConvexHullInternal__Point32_20const__29_20const((HEAP32[($6 + 72 | 0) >> 2] | 0) + 88 | 0 | 0, (HEAP32[($6 + 68 | 0) >> 2] | 0) + 88 | 0 | 0) | 0) & 1 | 0)) { + break label$6 + } + HEAP32[($6 + 64 | 0) >> 2] = (HEAP32[((HEAP32[($6 + 72 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($6 + 68 | 0) >> 2] | 0) + 88 | 0) >> 2] | 0) | 0; + HEAP32[($6 + 60 | 0) >> 2] = (HEAP32[((HEAP32[($6 + 72 | 0) >> 2] | 0) + 92 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($6 + 68 | 0) >> 2] | 0) + 92 | 0) >> 2] | 0) | 0; + label$7 : { + label$8 : { + if (HEAP32[($6 + 64 | 0) >> 2] | 0) { + break label$8 + } + if (HEAP32[($6 + 60 | 0) >> 2] | 0) { + break label$8 + } + label$9 : { + if (!((HEAP32[((HEAP32[($6 + 72 | 0) >> 2] | 0) + 96 | 0) >> 2] | 0 | 0) > (HEAP32[((HEAP32[($6 + 68 | 0) >> 2] | 0) + 96 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$9 + } + HEAP32[($6 + 56 | 0) >> 2] = HEAP32[($6 + 68 | 0) >> 2] | 0; + HEAP32[($6 + 68 | 0) >> 2] = HEAP32[($6 + 72 | 0) >> 2] | 0; + HEAP32[($6 + 72 | 0) >> 2] = HEAP32[($6 + 56 | 0) >> 2] | 0; + } + label$10 : { + if ((HEAP32[((HEAP32[($6 + 72 | 0) >> 2] | 0) + 96 | 0) >> 2] | 0 | 0) < (HEAP32[((HEAP32[($6 + 68 | 0) >> 2] | 0) + 96 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$10 + } + __assert_fail(65550 | 0, 72732 | 0, 1232 | 0, 77500 | 0); + wasm2js_trap(); + } + HEAP32[(HEAP32[($6 + 72 | 0) >> 2] | 0) >> 2] = HEAP32[($6 + 72 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($6 + 72 | 0) >> 2] | 0; + HEAP32[(HEAP32[($6 + 80 | 0) >> 2] | 0) >> 2] = HEAP32[($6 + 72 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 80 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($6 + 72 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 80 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($6 + 72 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($6 + 72 | 0) >> 2] | 0; + break label$7; + } + HEAP32[(HEAP32[($6 + 72 | 0) >> 2] | 0) >> 2] = HEAP32[($6 + 68 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($6 + 68 | 0) >> 2] | 0; + HEAP32[(HEAP32[($6 + 68 | 0) >> 2] | 0) >> 2] = HEAP32[($6 + 72 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 68 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($6 + 72 | 0) >> 2] | 0; + label$11 : { + label$12 : { + label$13 : { + if ((HEAP32[($6 + 64 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0) { + break label$13 + } + if (HEAP32[($6 + 64 | 0) >> 2] | 0) { + break label$12 + } + if (!((HEAP32[($6 + 60 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0)) { + break label$12 + } + } + HEAP32[(HEAP32[($6 + 80 | 0) >> 2] | 0) >> 2] = HEAP32[($6 + 72 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 80 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($6 + 68 | 0) >> 2] | 0; + break label$11; + } + HEAP32[(HEAP32[($6 + 80 | 0) >> 2] | 0) >> 2] = HEAP32[($6 + 68 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 80 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($6 + 72 | 0) >> 2] | 0; + } + label$14 : { + label$15 : { + label$16 : { + if ((HEAP32[($6 + 60 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0) { + break label$16 + } + if (HEAP32[($6 + 60 | 0) >> 2] | 0) { + break label$15 + } + if (!((HEAP32[($6 + 64 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0)) { + break label$15 + } + } + HEAP32[((HEAP32[($6 + 80 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($6 + 72 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($6 + 68 | 0) >> 2] | 0; + break label$14; + } + HEAP32[((HEAP32[($6 + 80 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($6 + 68 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($6 + 72 | 0) >> 2] | 0; + } + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btConvexHullInternal__newEdgePair_28btConvexHullInternal__Vertex__2c_20btConvexHullInternal__Vertex__29($7 | 0, HEAP32[($6 + 72 | 0) >> 2] | 0 | 0, HEAP32[($6 + 68 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 52 | 0) >> 2] = wasm2js_i32$1; + btConvexHullInternal__Edge__link_28btConvexHullInternal__Edge__29(HEAP32[($6 + 52 | 0) >> 2] | 0 | 0, HEAP32[($6 + 52 | 0) >> 2] | 0 | 0); + HEAP32[((HEAP32[($6 + 72 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($6 + 52 | 0) >> 2] | 0; + HEAP32[($6 + 52 | 0) >> 2] = HEAP32[((HEAP32[($6 + 52 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + btConvexHullInternal__Edge__link_28btConvexHullInternal__Edge__29(HEAP32[($6 + 52 | 0) >> 2] | 0 | 0, HEAP32[($6 + 52 | 0) >> 2] | 0 | 0); + HEAP32[((HEAP32[($6 + 68 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($6 + 52 | 0) >> 2] | 0; + break label$1; + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btConvexHullInternal__Vertex____operator_5b_5d_28int_29($7 + 80 | 0 | 0, HEAP32[($6 + 88 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 48 | 0) >> 2] = wasm2js_i32$1; + HEAP32[((HEAP32[($6 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] = 0; + HEAP32[(HEAP32[($6 + 48 | 0) >> 2] | 0) >> 2] = HEAP32[($6 + 48 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 48 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($6 + 48 | 0) >> 2] | 0; + HEAP32[(HEAP32[($6 + 80 | 0) >> 2] | 0) >> 2] = HEAP32[($6 + 48 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 80 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($6 + 48 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 80 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($6 + 48 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($6 + 48 | 0) >> 2] | 0; + break label$1; + case 1: + (wasm2js_i32$0 = $6, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btConvexHullInternal__Vertex____operator_5b_5d_28int_29($7 + 80 | 0 | 0, HEAP32[($6 + 88 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_i32$1; + HEAP32[((HEAP32[($6 + 44 | 0) >> 2] | 0) + 8 | 0) >> 2] = 0; + HEAP32[(HEAP32[($6 + 44 | 0) >> 2] | 0) >> 2] = HEAP32[($6 + 44 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($6 + 44 | 0) >> 2] | 0; + HEAP32[(HEAP32[($6 + 80 | 0) >> 2] | 0) >> 2] = HEAP32[($6 + 44 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 80 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($6 + 44 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 80 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($6 + 44 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($6 + 44 | 0) >> 2] | 0; + break label$1; + default: + break label$2; + }; + } + HEAP32[($6 + 40 | 0) >> 2] = (HEAP32[($6 + 88 | 0) >> 2] | 0) + ((HEAP32[($6 + 76 | 0) >> 2] | 0 | 0) / (2 | 0) | 0) | 0; + $205 = (HEAP32[(btAlignedObjectArray_btConvexHullInternal__Vertex____operator_5b_5d_28int_29($7 + 80 | 0 | 0, (HEAP32[($6 + 40 | 0) >> 2] | 0) - 1 | 0 | 0) | 0) >> 2] | 0) + 88 | 0; + $206 = 8; + i64toi32_i32$2 = $205 + $206 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $767 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 24 | 0) + $206 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $767; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $205; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $771 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 24 | 0) >> 2] = $771; + HEAP32[($6 + 28 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6 + 20 | 0) >> 2] = HEAP32[($6 + 40 | 0) >> 2] | 0; + label$17 : while (1) { + $222 = 0; + label$18 : { + if (!((HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 84 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$18 + } + $222 = btConvexHullInternal__Point32__operator___28btConvexHullInternal__Point32_20const__29_20const_1((HEAP32[(btAlignedObjectArray_btConvexHullInternal__Vertex____operator_5b_5d_28int_29($7 + 80 | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0) + 88 | 0 | 0, $6 + 24 | 0 | 0) | 0; + } + label$19 : { + if (!($222 & 1 | 0)) { + break label$19 + } + HEAP32[($6 + 20 | 0) >> 2] = (HEAP32[($6 + 20 | 0) >> 2] | 0) + 1 | 0; + continue label$17; + } + break label$17; + }; + btConvexHullInternal__computeInternal_28int_2c_20int_2c_20btConvexHullInternal__IntermediateHull__29($7 | 0, HEAP32[($6 + 88 | 0) >> 2] | 0 | 0, HEAP32[($6 + 40 | 0) >> 2] | 0 | 0, HEAP32[($6 + 80 | 0) >> 2] | 0 | 0); + btConvexHullInternal__IntermediateHull__IntermediateHull_28_29($6 + 4 | 0 | 0) | 0; + btConvexHullInternal__computeInternal_28int_2c_20int_2c_20btConvexHullInternal__IntermediateHull__29($7 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6 + 84 | 0) >> 2] | 0 | 0, $6 + 4 | 0 | 0); + btConvexHullInternal__merge_28btConvexHullInternal__IntermediateHull__2c_20btConvexHullInternal__IntermediateHull__29($7 | 0, HEAP32[($6 + 80 | 0) >> 2] | 0 | 0, $6 + 4 | 0 | 0); + } + __stack_pointer = $6 + 96 | 0; + return; + } + + function btAlignedObjectArray_btConvexHullInternal__Vertex____operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78295 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btConvexHullInternal__Vertex____size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78295 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 2 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btConvexHullInternal__Point32__operator___28btConvexHullInternal__Point32_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $15 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + $15 = 1; + label$1 : { + if ((HEAP32[$5 >> 2] | 0 | 0) != (HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$1 + } + $15 = 1; + if ((HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) != (HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$1 + } + $15 = (HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) != (HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + return $15 & 1 | 0 | 0; + } + + function btConvexHullInternal__Edge__link_28btConvexHullInternal__Edge__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(68510 | 0, 72732 | 0, 528 | 0, 77666 | 0); + wasm2js_trap(); + } + HEAP32[$5 >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $5; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btConvexHullInternal__Point32__operator___28btConvexHullInternal__Point32_20const__29_20const_1($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $15 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + $15 = 0; + label$1 : { + if (!((HEAP32[$5 >> 2] | 0 | 0) == (HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + $15 = 0; + if (!((HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + $15 = (HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + return $15 & 1 | 0 | 0; + } + + function btConvexHullInternal__IntermediateHull__IntermediateHull_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + HEAP32[($4 + 12 | 0) >> 2] = 0; + return $4 | 0; + } + + function btConvexHullInternal__merge_28btConvexHullInternal__IntermediateHull__2c_20btConvexHullInternal__IntermediateHull__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, $6 = 0, $118$hi = 0, $119$hi = 0, $129$hi = 0, $130$hi = 0, $150$hi = 0, $151$hi = 0, $222$hi = 0, $223$hi = 0, $233$hi = 0, $234$hi = 0, $254$hi = 0, $255$hi = 0, $24 = 0, $26 = 0, $65 = 0, $60 = 0, $61 = 0, $62 = 0, $137 = 0, $63 = 0, $64 = 0, $66 = 0, $166 = 0, $172 = 0, $67 = 0, $68 = 0, $69 = 0, $241 = 0, $70 = 0, $71 = 0, $72 = 0, $270 = 0, $276 = 0, $325 = 0, $346 = 0, $347 = 0, $359 = 0, $360 = 0, $408 = 0, $429 = 0, $482 = 0, $491 = 0, $565 = 0, $635 = 0, $636 = 0, $716 = 0, $717 = 0, $863 = 0, $873 = 0, $1040 = 0, $167 = 0, $168 = 0, $1226 = 0, $271 = 0, $272 = 0, $1462 = 0, $1466 = 0, $1491 = 0, $1495 = 0, $2055 = 0, $2059 = 0, $2228 = 0, $2232 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 496 | 0; + __stack_pointer = $5; + HEAP32[($5 + 492 | 0) >> 2] = $0; + HEAP32[($5 + 488 | 0) >> 2] = $1; + HEAP32[($5 + 484 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 492 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if ((HEAP32[((HEAP32[($5 + 484 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$2 + } + break label$1; + } + label$3 : { + if ((HEAP32[((HEAP32[($5 + 488 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$3 + } + $24 = HEAP32[($5 + 488 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($5 + 484 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $863 = i64toi32_i32$0; + i64toi32_i32$0 = $24; + HEAP32[i64toi32_i32$0 >> 2] = $863; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $26 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $26 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $873 = i64toi32_i32$1; + i64toi32_i32$1 = $24 + $26 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $873; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$1; + } + HEAP32[($6 + 100 | 0) >> 2] = (HEAP32[($6 + 100 | 0) >> 2] | 0) + -1 | 0; + HEAP32[($5 + 480 | 0) >> 2] = 0; + HEAP32[($5 + 476 | 0) >> 2] = 0; + HEAP32[($5 + 472 | 0) >> 2] = 0; + HEAP32[($5 + 468 | 0) >> 2] = 0; + HEAP32[($5 + 464 | 0) >> 2] = 0; + HEAP32[($5 + 460 | 0) >> 2] = 0; + HEAP32[($5 + 456 | 0) >> 2] = 0; + HEAP32[($5 + 452 | 0) >> 2] = 0; + HEAP32[($5 + 448 | 0) >> 2] = 0; + HEAP32[($5 + 444 | 0) >> 2] = 0; + btConvexHullInternal__Point32__Point32_28_29($5 + 424 | 0 | 0) | 0; + label$4 : { + label$5 : { + if (!((btConvexHullInternal__mergeProjection_28btConvexHullInternal__IntermediateHull__2c_20btConvexHullInternal__IntermediateHull__2c_20btConvexHullInternal__Vertex___2c_20btConvexHullInternal__Vertex___29($6 | 0, HEAP32[($5 + 488 | 0) >> 2] | 0 | 0, HEAP32[($5 + 484 | 0) >> 2] | 0 | 0, $5 + 480 | 0 | 0, $5 + 460 | 0 | 0) | 0) & 1 | 0)) { + break label$5 + } + btConvexHullInternal__Vertex__operator__28btConvexHullInternal__Vertex_20const__29_20const($5 + 408 | 0 | 0, HEAP32[($5 + 460 | 0) >> 2] | 0 | 0, HEAP32[($5 + 480 | 0) >> 2] | 0 | 0); + $65 = 0; + btConvexHullInternal__Point32__Point32_28int_2c_20int_2c_20int_29($5 + 368 | 0 | 0, $65 | 0, $65 | 0, -1 | 0) | 0; + btConvexHullInternal__Point32__cross_28btConvexHullInternal__Point32_20const__29_20const($5 + 384 | 0 | 0, $5 + 368 | 0 | 0, $5 + 408 | 0 | 0); + btConvexHullInternal__Point32__cross_28btConvexHullInternal__Point64_20const__29_20const($5 + 344 | 0 | 0, $5 + 408 | 0 | 0, $5 + 384 | 0 | 0); + label$6 : { + if (!((btConvexHullInternal__Point64__isZero_28_29($5 + 344 | 0 | 0) | 0) & 1 | 0)) { + break label$6 + } + __assert_fail(87266 | 0, 72732 | 0, 1691 | 0, 81906 | 0); + wasm2js_trap(); + } + HEAP32[($5 + 340 | 0) >> 2] = HEAP32[((HEAP32[($5 + 480 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($5 + 336 | 0) >> 2] = 0; + label$7 : { + if (!((HEAP32[($5 + 340 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + label$8 : while (1) { + btConvexHullInternal__Vertex__operator__28btConvexHullInternal__Vertex_20const__29_20const($5 + 312 | 0 | 0, HEAP32[((HEAP32[($5 + 340 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($5 + 480 | 0) >> 2] | 0 | 0); + i64toi32_i32$0 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const($5 + 312 | 0 | 0, $5 + 384 | 0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $1040 = i64toi32_i32$0; + i64toi32_i32$0 = $5; + HEAP32[($5 + 328 | 0) >> 2] = $1040; + HEAP32[($5 + 332 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $5; + i64toi32_i32$1 = HEAP32[($5 + 328 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 332 | 0) >> 2] | 0; + $118$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $119$hi = i64toi32_i32$0; + i64toi32_i32$0 = $118$hi; + i64toi32_i32$0 = $119$hi; + i64toi32_i32$0 = $118$hi; + i64toi32_i32$0 = $119$hi; + i64toi32_i32$0 = $118$hi; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$1 = $119$hi; + i64toi32_i32$3 = 0; + if ((i64toi32_i32$0 | 0) < (i64toi32_i32$1 | 0)) { + $60 = 1 + } else { + if ((i64toi32_i32$0 | 0) <= (i64toi32_i32$1 | 0)) { + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$3 >>> 0) { + $61 = 0 + } else { + $61 = 1 + } + $62 = $61; + } else { + $62 = 0 + } + $60 = $62; + } + label$9 : { + if ($60 & 1 | 0) { + break label$9 + } + __assert_fail(86116 | 0, 72732 | 0, 1700 | 0, 81906 | 0); + wasm2js_trap(); + } + i64toi32_i32$3 = $5; + i64toi32_i32$2 = HEAP32[($5 + 328 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 332 | 0) >> 2] | 0; + $129$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $130$hi = i64toi32_i32$0; + i64toi32_i32$0 = $129$hi; + i64toi32_i32$0 = $130$hi; + i64toi32_i32$0 = $129$hi; + i64toi32_i32$0 = $130$hi; + i64toi32_i32$0 = $129$hi; + i64toi32_i32$3 = i64toi32_i32$2; + i64toi32_i32$2 = $130$hi; + i64toi32_i32$1 = 0; + $137 = 0; + label$10 : { + if (!(((i64toi32_i32$3 | 0) == (i64toi32_i32$1 | 0) & (i64toi32_i32$0 | 0) == (i64toi32_i32$2 | 0) | 0) & 1 | 0)) { + break label$10 + } + btConvexHullInternal__Vertex__operator__28btConvexHullInternal__Vertex_20const__29_20const($5 + 296 | 0 | 0, HEAP32[((HEAP32[($5 + 340 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($5 + 480 | 0) >> 2] | 0 | 0); + i64toi32_i32$3 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const($5 + 296 | 0 | 0, $5 + 344 | 0 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $150$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $151$hi = i64toi32_i32$0; + i64toi32_i32$0 = $150$hi; + i64toi32_i32$0 = $151$hi; + i64toi32_i32$0 = $150$hi; + i64toi32_i32$0 = $151$hi; + i64toi32_i32$0 = $150$hi; + i64toi32_i32$1 = i64toi32_i32$3; + i64toi32_i32$3 = $151$hi; + i64toi32_i32$2 = 0; + if ((i64toi32_i32$0 | 0) > (i64toi32_i32$3 | 0)) { + $63 = 1 + } else { + if ((i64toi32_i32$0 | 0) >= (i64toi32_i32$3 | 0)) { + if (i64toi32_i32$1 >>> 0 <= i64toi32_i32$2 >>> 0) { + $64 = 0 + } else { + $64 = 1 + } + $66 = $64; + } else { + $66 = 0 + } + $63 = $66; + } + $137 = $63; + } + label$11 : { + if (!($137 & 1 | 0)) { + break label$11 + } + $166 = 1; + label$12 : { + if (!((HEAP32[($5 + 336 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$12 + } + $167 = HEAP32[($5 + 336 | 0) >> 2] | 0; + $168 = HEAP32[($5 + 340 | 0) >> 2] | 0; + $172 = 0; + btConvexHullInternal__Point32__Point32_28int_2c_20int_2c_20int_29($5 + 280 | 0 | 0, $172 | 0, $172 | 0, -1 | 0) | 0; + $166 = (btConvexHullInternal__getOrientation_28btConvexHullInternal__Edge_20const__2c_20btConvexHullInternal__Edge_20const__2c_20btConvexHullInternal__Point32_20const__2c_20btConvexHullInternal__Point32_20const__29($167 | 0, $168 | 0, $5 + 408 | 0 | 0, $5 + 280 | 0 | 0) | 0 | 0) == (1 | 0); + } + label$13 : { + if (!($166 & 1 | 0)) { + break label$13 + } + HEAP32[($5 + 336 | 0) >> 2] = HEAP32[($5 + 340 | 0) >> 2] | 0; + } + } + HEAP32[($5 + 340 | 0) >> 2] = HEAP32[(HEAP32[($5 + 340 | 0) >> 2] | 0) >> 2] | 0; + if ((HEAP32[($5 + 340 | 0) >> 2] | 0 | 0) != (HEAP32[((HEAP32[($5 + 480 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) & 1 | 0) { + continue label$8 + } + break label$8; + }; + } + HEAP32[($5 + 340 | 0) >> 2] = HEAP32[((HEAP32[($5 + 460 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($5 + 276 | 0) >> 2] = 0; + label$14 : { + if (!((HEAP32[($5 + 340 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$14 + } + label$15 : while (1) { + btConvexHullInternal__Vertex__operator__28btConvexHullInternal__Vertex_20const__29_20const($5 + 248 | 0 | 0, HEAP32[((HEAP32[($5 + 340 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($5 + 460 | 0) >> 2] | 0 | 0); + i64toi32_i32$1 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const($5 + 248 | 0 | 0, $5 + 384 | 0 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $1226 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 264 | 0) >> 2] = $1226; + HEAP32[($5 + 268 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 264 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 268 | 0) >> 2] | 0; + $222$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $223$hi = i64toi32_i32$1; + i64toi32_i32$1 = $222$hi; + i64toi32_i32$1 = $223$hi; + i64toi32_i32$1 = $222$hi; + i64toi32_i32$1 = $223$hi; + i64toi32_i32$1 = $222$hi; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$0 = $223$hi; + i64toi32_i32$3 = 0; + if ((i64toi32_i32$1 | 0) < (i64toi32_i32$0 | 0)) { + $67 = 1 + } else { + if ((i64toi32_i32$1 | 0) <= (i64toi32_i32$0 | 0)) { + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$3 >>> 0) { + $68 = 0 + } else { + $68 = 1 + } + $69 = $68; + } else { + $69 = 0 + } + $67 = $69; + } + label$16 : { + if ($67 & 1 | 0) { + break label$16 + } + __assert_fail(86116 | 0, 72732 | 0, 1719 | 0, 81906 | 0); + wasm2js_trap(); + } + i64toi32_i32$3 = $5; + i64toi32_i32$2 = HEAP32[($5 + 264 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 268 | 0) >> 2] | 0; + $233$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $234$hi = i64toi32_i32$1; + i64toi32_i32$1 = $233$hi; + i64toi32_i32$1 = $234$hi; + i64toi32_i32$1 = $233$hi; + i64toi32_i32$1 = $234$hi; + i64toi32_i32$1 = $233$hi; + i64toi32_i32$3 = i64toi32_i32$2; + i64toi32_i32$2 = $234$hi; + i64toi32_i32$0 = 0; + $241 = 0; + label$17 : { + if (!(((i64toi32_i32$3 | 0) == (i64toi32_i32$0 | 0) & (i64toi32_i32$1 | 0) == (i64toi32_i32$2 | 0) | 0) & 1 | 0)) { + break label$17 + } + btConvexHullInternal__Vertex__operator__28btConvexHullInternal__Vertex_20const__29_20const($5 + 232 | 0 | 0, HEAP32[((HEAP32[($5 + 340 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($5 + 460 | 0) >> 2] | 0 | 0); + i64toi32_i32$3 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const($5 + 232 | 0 | 0, $5 + 344 | 0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $254$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $255$hi = i64toi32_i32$1; + i64toi32_i32$1 = $254$hi; + i64toi32_i32$1 = $255$hi; + i64toi32_i32$1 = $254$hi; + i64toi32_i32$1 = $255$hi; + i64toi32_i32$1 = $254$hi; + i64toi32_i32$0 = i64toi32_i32$3; + i64toi32_i32$3 = $255$hi; + i64toi32_i32$2 = 0; + if ((i64toi32_i32$1 | 0) > (i64toi32_i32$3 | 0)) { + $70 = 1 + } else { + if ((i64toi32_i32$1 | 0) >= (i64toi32_i32$3 | 0)) { + if (i64toi32_i32$0 >>> 0 <= i64toi32_i32$2 >>> 0) { + $71 = 0 + } else { + $71 = 1 + } + $72 = $71; + } else { + $72 = 0 + } + $70 = $72; + } + $241 = $70; + } + label$18 : { + if (!($241 & 1 | 0)) { + break label$18 + } + $270 = 1; + label$19 : { + if (!((HEAP32[($5 + 276 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$19 + } + $271 = HEAP32[($5 + 276 | 0) >> 2] | 0; + $272 = HEAP32[($5 + 340 | 0) >> 2] | 0; + $276 = 0; + btConvexHullInternal__Point32__Point32_28int_2c_20int_2c_20int_29($5 + 216 | 0 | 0, $276 | 0, $276 | 0, -1 | 0) | 0; + $270 = (btConvexHullInternal__getOrientation_28btConvexHullInternal__Edge_20const__2c_20btConvexHullInternal__Edge_20const__2c_20btConvexHullInternal__Point32_20const__2c_20btConvexHullInternal__Point32_20const__29($271 | 0, $272 | 0, $5 + 408 | 0 | 0, $5 + 216 | 0 | 0) | 0 | 0) == (2 | 0); + } + label$20 : { + if (!($270 & 1 | 0)) { + break label$20 + } + HEAP32[($5 + 276 | 0) >> 2] = HEAP32[($5 + 340 | 0) >> 2] | 0; + } + } + HEAP32[($5 + 340 | 0) >> 2] = HEAP32[(HEAP32[($5 + 340 | 0) >> 2] | 0) >> 2] | 0; + if ((HEAP32[($5 + 340 | 0) >> 2] | 0 | 0) != (HEAP32[((HEAP32[($5 + 460 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) & 1 | 0) { + continue label$15 + } + break label$15; + }; + } + label$21 : { + label$22 : { + if ((HEAP32[($5 + 336 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$22 + } + if (!((HEAP32[($5 + 276 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$21 + } + } + $325 = 0; + btConvexHullInternal__findEdgeForCoplanarFaces_28btConvexHullInternal__Vertex__2c_20btConvexHullInternal__Vertex__2c_20btConvexHullInternal__Edge___2c_20btConvexHullInternal__Edge___2c_20btConvexHullInternal__Vertex__2c_20btConvexHullInternal__Vertex__29($6 | 0, HEAP32[($5 + 480 | 0) >> 2] | 0 | 0, HEAP32[($5 + 460 | 0) >> 2] | 0 | 0, $5 + 336 | 0 | 0, $5 + 276 | 0 | 0, $325 | 0, $325 | 0); + label$23 : { + if (!((HEAP32[($5 + 336 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$23 + } + HEAP32[($5 + 480 | 0) >> 2] = HEAP32[((HEAP32[($5 + 336 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + } + label$24 : { + if (!((HEAP32[($5 + 276 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$24 + } + HEAP32[($5 + 460 | 0) >> 2] = HEAP32[((HEAP32[($5 + 276 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + } + } + $346 = (HEAP32[($5 + 460 | 0) >> 2] | 0) + 88 | 0; + $347 = 8; + i64toi32_i32$2 = $346 + $347 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1462 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 424 | 0) + $347 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1462; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $346; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1466 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 424 | 0) >> 2] = $1466; + HEAP32[($5 + 428 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($5 + 432 | 0) >> 2] = (HEAP32[($5 + 432 | 0) >> 2] | 0) + 1 | 0; + break label$4; + } + $359 = (HEAP32[($5 + 460 | 0) >> 2] | 0) + 88 | 0; + $360 = 8; + i64toi32_i32$2 = $359 + $360 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1491 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 424 | 0) + $360 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1491; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $359; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1495 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 424 | 0) >> 2] = $1495; + HEAP32[($5 + 428 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($5 + 424 | 0) >> 2] = (HEAP32[($5 + 424 | 0) >> 2] | 0) + 1 | 0; + } + HEAP32[($5 + 212 | 0) >> 2] = HEAP32[($5 + 480 | 0) >> 2] | 0; + HEAP32[($5 + 208 | 0) >> 2] = HEAP32[($5 + 460 | 0) >> 2] | 0; + HEAP8[($5 + 207 | 0) >> 0] = 1; + label$25 : while (1) { + btConvexHullInternal__Vertex__operator__28btConvexHullInternal__Vertex_20const__29_20const($5 + 188 | 0 | 0, HEAP32[($5 + 460 | 0) >> 2] | 0 | 0, HEAP32[($5 + 480 | 0) >> 2] | 0 | 0); + btConvexHullInternal__Point32__operator__28btConvexHullInternal__Point32_20const__29_20const($5 + 172 | 0 | 0, $5 + 424 | 0 | 0, (HEAP32[($5 + 480 | 0) >> 2] | 0) + 88 | 0 | 0); + btConvexHullInternal__Point32__cross_28btConvexHullInternal__Point32_20const__29_20const($5 + 144 | 0 | 0, $5 + 172 | 0 | 0, $5 + 188 | 0 | 0); + btConvexHullInternal__Point32__cross_28btConvexHullInternal__Point64_20const__29_20const($5 + 120 | 0 | 0, $5 + 188 | 0 | 0, $5 + 144 | 0 | 0); + i64toi32_i32$0 = 0; + $408 = 0; + i64toi32_i32$1 = i64toi32_i32$0; + btConvexHullInternal__Rational64__Rational64_28long_20long_2c_20long_20long_29($5 + 96 | 0 | 0, $408 | 0, i64toi32_i32$0 | 0, $408 | 0, i64toi32_i32$0 | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btConvexHullInternal__findMaxAngle_28bool_2c_20btConvexHullInternal__Vertex_20const__2c_20btConvexHullInternal__Point32_20const__2c_20btConvexHullInternal__Point64_20const__2c_20btConvexHullInternal__Point64_20const__2c_20btConvexHullInternal__Rational64__29($6 | 0, 0 & 1 | 0 | 0, HEAP32[($5 + 480 | 0) >> 2] | 0 | 0, $5 + 188 | 0 | 0, $5 + 144 | 0 | 0, $5 + 120 | 0 | 0, $5 + 96 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 92 | 0) >> 2] = wasm2js_i32$1; + i64toi32_i32$1 = 0; + $429 = 0; + i64toi32_i32$0 = i64toi32_i32$1; + btConvexHullInternal__Rational64__Rational64_28long_20long_2c_20long_20long_29($5 + 64 | 0 | 0, $429 | 0, i64toi32_i32$0 | 0, $429 | 0, i64toi32_i32$0 | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btConvexHullInternal__findMaxAngle_28bool_2c_20btConvexHullInternal__Vertex_20const__2c_20btConvexHullInternal__Point32_20const__2c_20btConvexHullInternal__Point64_20const__2c_20btConvexHullInternal__Point64_20const__2c_20btConvexHullInternal__Rational64__29($6 | 0, 1 & 1 | 0 | 0, HEAP32[($5 + 460 | 0) >> 2] | 0 | 0, $5 + 188 | 0 | 0, $5 + 144 | 0 | 0, $5 + 120 | 0 | 0, $5 + 64 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 60 | 0) >> 2] = wasm2js_i32$1; + label$26 : { + if ((HEAP32[($5 + 92 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$26 + } + if ((HEAP32[($5 + 60 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$26 + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btConvexHullInternal__newEdgePair_28btConvexHullInternal__Vertex__2c_20btConvexHullInternal__Vertex__29($6 | 0, HEAP32[($5 + 480 | 0) >> 2] | 0 | 0, HEAP32[($5 + 460 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 56 | 0) >> 2] = wasm2js_i32$1; + btConvexHullInternal__Edge__link_28btConvexHullInternal__Edge__29(HEAP32[($5 + 56 | 0) >> 2] | 0 | 0, HEAP32[($5 + 56 | 0) >> 2] | 0 | 0); + HEAP32[((HEAP32[($5 + 480 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($5 + 56 | 0) >> 2] | 0; + HEAP32[($5 + 56 | 0) >> 2] = HEAP32[((HEAP32[($5 + 56 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + btConvexHullInternal__Edge__link_28btConvexHullInternal__Edge__29(HEAP32[($5 + 56 | 0) >> 2] | 0 | 0, HEAP32[($5 + 56 | 0) >> 2] | 0 | 0); + HEAP32[((HEAP32[($5 + 460 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($5 + 56 | 0) >> 2] | 0; + break label$1; + } + label$27 : { + label$28 : { + if ((HEAP32[($5 + 92 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$28 + } + $482 = 1; + break label$27; + } + label$29 : { + label$30 : { + if ((HEAP32[($5 + 60 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$30 + } + $491 = -1; + break label$29; + } + $491 = btConvexHullInternal__Rational64__compare_28btConvexHullInternal__Rational64_20const__29_20const($5 + 96 | 0 | 0, $5 + 64 | 0 | 0) | 0; + } + $482 = $491; + } + HEAP32[($5 + 52 | 0) >> 2] = $482; + label$31 : { + label$32 : { + if ((HEAPU8[($5 + 207 | 0) >> 0] | 0) & 1 | 0) { + break label$32 + } + label$33 : { + if (!((HEAP32[($5 + 52 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$33 + } + if ((btConvexHullInternal__Rational64__isNegativeInfinity_28_29_20const($5 + 64 | 0 | 0) | 0) & 1 | 0) { + break label$31 + } + break label$32; + } + if ((btConvexHullInternal__Rational64__isNegativeInfinity_28_29_20const($5 + 96 | 0 | 0) | 0) & 1 | 0) { + break label$31 + } + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btConvexHullInternal__newEdgePair_28btConvexHullInternal__Vertex__2c_20btConvexHullInternal__Vertex__29($6 | 0, HEAP32[($5 + 480 | 0) >> 2] | 0 | 0, HEAP32[($5 + 460 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 48 | 0) >> 2] = wasm2js_i32$1; + label$34 : { + label$35 : { + if (!((HEAP32[($5 + 464 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$35 + } + HEAP32[((HEAP32[($5 + 464 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($5 + 48 | 0) >> 2] | 0; + break label$34; + } + HEAP32[($5 + 468 | 0) >> 2] = HEAP32[($5 + 48 | 0) >> 2] | 0; + } + HEAP32[(HEAP32[($5 + 48 | 0) >> 2] | 0) >> 2] = HEAP32[($5 + 464 | 0) >> 2] | 0; + HEAP32[($5 + 464 | 0) >> 2] = HEAP32[($5 + 48 | 0) >> 2] | 0; + HEAP32[($5 + 48 | 0) >> 2] = HEAP32[((HEAP32[($5 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$36 : { + label$37 : { + if (!((HEAP32[($5 + 444 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$37 + } + HEAP32[(HEAP32[($5 + 444 | 0) >> 2] | 0) >> 2] = HEAP32[($5 + 48 | 0) >> 2] | 0; + break label$36; + } + HEAP32[($5 + 448 | 0) >> 2] = HEAP32[($5 + 48 | 0) >> 2] | 0; + } + HEAP32[((HEAP32[($5 + 48 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($5 + 444 | 0) >> 2] | 0; + HEAP32[($5 + 444 | 0) >> 2] = HEAP32[($5 + 48 | 0) >> 2] | 0; + } + HEAP32[($5 + 44 | 0) >> 2] = HEAP32[($5 + 92 | 0) >> 2] | 0; + HEAP32[($5 + 40 | 0) >> 2] = HEAP32[($5 + 60 | 0) >> 2] | 0; + label$38 : { + if (HEAP32[($5 + 52 | 0) >> 2] | 0) { + break label$38 + } + $565 = 0; + btConvexHullInternal__findEdgeForCoplanarFaces_28btConvexHullInternal__Vertex__2c_20btConvexHullInternal__Vertex__2c_20btConvexHullInternal__Edge___2c_20btConvexHullInternal__Edge___2c_20btConvexHullInternal__Vertex__2c_20btConvexHullInternal__Vertex__29($6 | 0, HEAP32[($5 + 480 | 0) >> 2] | 0 | 0, HEAP32[($5 + 460 | 0) >> 2] | 0 | 0, $5 + 44 | 0 | 0, $5 + 40 | 0 | 0, $565 | 0, $565 | 0); + } + label$39 : { + if (!((HEAP32[($5 + 52 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$39 + } + if (!((HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$39 + } + label$40 : { + if (!((HEAP32[($5 + 456 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$40 + } + HEAP32[($5 + 36 | 0) >> 2] = HEAP32[(HEAP32[($5 + 456 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 32 | 0) >> 2] = 0; + label$41 : { + label$42 : while (1) { + if (!((HEAP32[($5 + 36 | 0) >> 2] | 0 | 0) != (HEAP32[($5 + 60 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$41 + } + HEAP32[($5 + 32 | 0) >> 2] = HEAP32[(HEAP32[($5 + 36 | 0) >> 2] | 0) >> 2] | 0; + btConvexHullInternal__removeEdgePair_28btConvexHullInternal__Edge__29($6 | 0, HEAP32[($5 + 36 | 0) >> 2] | 0 | 0); + HEAP32[($5 + 36 | 0) >> 2] = HEAP32[($5 + 32 | 0) >> 2] | 0; + continue label$42; + }; + } + } + label$43 : { + label$44 : { + if (!((HEAP32[($5 + 444 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$44 + } + label$45 : { + label$46 : { + if (!((HEAP32[($5 + 456 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$46 + } + btConvexHullInternal__Edge__link_28btConvexHullInternal__Edge__29(HEAP32[($5 + 456 | 0) >> 2] | 0 | 0, HEAP32[($5 + 448 | 0) >> 2] | 0 | 0); + break label$45; + } + btConvexHullInternal__Edge__link_28btConvexHullInternal__Edge__29(HEAP32[((HEAP32[($5 + 60 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($5 + 448 | 0) >> 2] | 0 | 0); + HEAP32[($5 + 452 | 0) >> 2] = HEAP32[($5 + 448 | 0) >> 2] | 0; + } + btConvexHullInternal__Edge__link_28btConvexHullInternal__Edge__29(HEAP32[($5 + 444 | 0) >> 2] | 0 | 0, HEAP32[($5 + 60 | 0) >> 2] | 0 | 0); + HEAP32[($5 + 448 | 0) >> 2] = 0; + HEAP32[($5 + 444 | 0) >> 2] = 0; + break label$43; + } + label$47 : { + if ((HEAP32[($5 + 456 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$47 + } + HEAP32[($5 + 452 | 0) >> 2] = HEAP32[($5 + 60 | 0) >> 2] | 0; + } + } + $635 = (HEAP32[($5 + 460 | 0) >> 2] | 0) + 88 | 0; + $636 = 8; + i64toi32_i32$2 = $635 + $636 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2055 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 424 | 0) + $636 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2055; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $635; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2059 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 424 | 0) >> 2] = $2059; + HEAP32[($5 + 428 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($5 + 460 | 0) >> 2] = HEAP32[((HEAP32[($5 + 40 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + HEAP32[($5 + 456 | 0) >> 2] = HEAP32[((HEAP32[($5 + 40 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + } + label$48 : { + if (!((HEAP32[($5 + 52 | 0) >> 2] | 0 | 0) <= (0 | 0) & 1 | 0)) { + break label$48 + } + if (!((HEAP32[($5 + 44 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$48 + } + label$49 : { + if (!((HEAP32[($5 + 476 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$49 + } + HEAP32[($5 + 28 | 0) >> 2] = HEAP32[((HEAP32[($5 + 476 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($5 + 24 | 0) >> 2] = 0; + label$50 : { + label$51 : while (1) { + if (!((HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) != (HEAP32[($5 + 92 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$50 + } + HEAP32[($5 + 24 | 0) >> 2] = HEAP32[((HEAP32[($5 + 28 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + btConvexHullInternal__removeEdgePair_28btConvexHullInternal__Edge__29($6 | 0, HEAP32[($5 + 28 | 0) >> 2] | 0 | 0); + HEAP32[($5 + 28 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + continue label$51; + }; + } + } + label$52 : { + label$53 : { + if (!((HEAP32[($5 + 464 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$53 + } + label$54 : { + label$55 : { + if (!((HEAP32[($5 + 476 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$55 + } + btConvexHullInternal__Edge__link_28btConvexHullInternal__Edge__29(HEAP32[($5 + 468 | 0) >> 2] | 0 | 0, HEAP32[($5 + 476 | 0) >> 2] | 0 | 0); + break label$54; + } + btConvexHullInternal__Edge__link_28btConvexHullInternal__Edge__29(HEAP32[($5 + 468 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[($5 + 92 | 0) >> 2] | 0) >> 2] | 0 | 0); + HEAP32[($5 + 472 | 0) >> 2] = HEAP32[($5 + 468 | 0) >> 2] | 0; + } + btConvexHullInternal__Edge__link_28btConvexHullInternal__Edge__29(HEAP32[($5 + 92 | 0) >> 2] | 0 | 0, HEAP32[($5 + 464 | 0) >> 2] | 0 | 0); + HEAP32[($5 + 468 | 0) >> 2] = 0; + HEAP32[($5 + 464 | 0) >> 2] = 0; + break label$52; + } + label$56 : { + if ((HEAP32[($5 + 476 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$56 + } + HEAP32[($5 + 472 | 0) >> 2] = HEAP32[($5 + 92 | 0) >> 2] | 0; + } + } + $716 = (HEAP32[($5 + 480 | 0) >> 2] | 0) + 88 | 0; + $717 = 8; + i64toi32_i32$2 = $716 + $717 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2228 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 424 | 0) + $717 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2228; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $716; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2232 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 424 | 0) >> 2] = $2232; + HEAP32[($5 + 428 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($5 + 480 | 0) >> 2] = HEAP32[((HEAP32[($5 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + HEAP32[($5 + 476 | 0) >> 2] = HEAP32[((HEAP32[($5 + 44 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + } + label$57 : { + if (!((HEAP32[($5 + 480 | 0) >> 2] | 0 | 0) == (HEAP32[($5 + 212 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$57 + } + if (!((HEAP32[($5 + 460 | 0) >> 2] | 0 | 0) == (HEAP32[($5 + 208 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$57 + } + label$58 : { + label$59 : { + if (!((HEAP32[($5 + 476 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$59 + } + btConvexHullInternal__Edge__link_28btConvexHullInternal__Edge__29(HEAP32[($5 + 468 | 0) >> 2] | 0 | 0, HEAP32[($5 + 464 | 0) >> 2] | 0 | 0); + HEAP32[((HEAP32[($5 + 480 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($5 + 464 | 0) >> 2] | 0; + break label$58; + } + HEAP32[($5 + 20 | 0) >> 2] = HEAP32[((HEAP32[($5 + 476 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($5 + 16 | 0) >> 2] = 0; + label$60 : { + label$61 : while (1) { + if (!((HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) != (HEAP32[($5 + 472 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$60 + } + HEAP32[($5 + 16 | 0) >> 2] = HEAP32[((HEAP32[($5 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + btConvexHullInternal__removeEdgePair_28btConvexHullInternal__Edge__29($6 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0); + HEAP32[($5 + 20 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + continue label$61; + }; + } + label$62 : { + if (!((HEAP32[($5 + 464 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$62 + } + btConvexHullInternal__Edge__link_28btConvexHullInternal__Edge__29(HEAP32[($5 + 468 | 0) >> 2] | 0 | 0, HEAP32[($5 + 476 | 0) >> 2] | 0 | 0); + btConvexHullInternal__Edge__link_28btConvexHullInternal__Edge__29(HEAP32[($5 + 472 | 0) >> 2] | 0 | 0, HEAP32[($5 + 464 | 0) >> 2] | 0 | 0); + } + } + label$63 : { + label$64 : { + if (!((HEAP32[($5 + 456 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$64 + } + btConvexHullInternal__Edge__link_28btConvexHullInternal__Edge__29(HEAP32[($5 + 444 | 0) >> 2] | 0 | 0, HEAP32[($5 + 448 | 0) >> 2] | 0 | 0); + HEAP32[((HEAP32[($5 + 460 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($5 + 444 | 0) >> 2] | 0; + break label$63; + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[(HEAP32[($5 + 456 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = 0; + label$65 : { + label$66 : while (1) { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) != (HEAP32[($5 + 452 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$65 + } + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[(HEAP32[($5 + 12 | 0) >> 2] | 0) >> 2] | 0; + btConvexHullInternal__removeEdgePair_28btConvexHullInternal__Edge__29($6 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0); + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + continue label$66; + }; + } + label$67 : { + if (!((HEAP32[($5 + 444 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$67 + } + btConvexHullInternal__Edge__link_28btConvexHullInternal__Edge__29(HEAP32[($5 + 456 | 0) >> 2] | 0 | 0, HEAP32[($5 + 448 | 0) >> 2] | 0 | 0); + btConvexHullInternal__Edge__link_28btConvexHullInternal__Edge__29(HEAP32[($5 + 444 | 0) >> 2] | 0 | 0, HEAP32[($5 + 452 | 0) >> 2] | 0 | 0); + } + } + break label$1; + } + HEAP8[($5 + 207 | 0) >> 0] = 0; + continue label$25; + }; + } + __stack_pointer = $5 + 496 | 0; + return; + } + + function btAlignedObjectArray_btConvexHullInternal__Vertex____size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btConvexHullInternal__Point32__Point32_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btConvexHullInternal__Vertex__operator__28btConvexHullInternal__Vertex_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $1; + HEAP32[($5 + 8 | 0) >> 2] = $2; + btConvexHullInternal__Point32__operator__28btConvexHullInternal__Point32_20const__29_20const($0 | 0, (HEAP32[($5 + 12 | 0) >> 2] | 0) + 88 | 0 | 0, (HEAP32[($5 + 8 | 0) >> 2] | 0) + 88 | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function btConvexHullInternal__Point32__Point32_28int_2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + HEAP32[$7 >> 2] = HEAP32[($6 + 8 | 0) >> 2] | 0; + HEAP32[($7 + 4 | 0) >> 2] = HEAP32[($6 + 4 | 0) >> 2] | 0; + HEAP32[($7 + 8 | 0) >> 2] = HEAP32[$6 >> 2] | 0; + HEAP32[($7 + 12 | 0) >> 2] = -1; + return $7 | 0; + } + + function btConvexHullInternal__Point32__cross_28btConvexHullInternal__Point32_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $6 = 0, $17$hi = 0, $28$hi = 0, $39$hi = 0, $17 = 0, $28 = 0, $128 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $1; + HEAP32[($5 + 8 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + i64toi32_i32$1 = Math_imul(HEAP32[($6 + 4 | 0) >> 2] | 0, HEAP32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) - Math_imul(HEAP32[($6 + 8 | 0) >> 2] | 0, HEAP32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$1 >> 31 | 0; + $17 = i64toi32_i32$1; + $17$hi = i64toi32_i32$0; + i64toi32_i32$1 = Math_imul(HEAP32[($6 + 8 | 0) >> 2] | 0, HEAP32[(HEAP32[($5 + 8 | 0) >> 2] | 0) >> 2] | 0) - Math_imul(HEAP32[$6 >> 2] | 0, HEAP32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$1 >> 31 | 0; + $28 = i64toi32_i32$1; + $28$hi = i64toi32_i32$0; + i64toi32_i32$1 = Math_imul(HEAP32[$6 >> 2] | 0, HEAP32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - Math_imul(HEAP32[($6 + 4 | 0) >> 2] | 0, HEAP32[(HEAP32[($5 + 8 | 0) >> 2] | 0) >> 2] | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$1 >> 31 | 0; + $39$hi = i64toi32_i32$0; + i64toi32_i32$0 = $17$hi; + i64toi32_i32$0 = $28$hi; + i64toi32_i32$0 = $39$hi; + $128 = i64toi32_i32$1; + i64toi32_i32$0 = $17$hi; + i64toi32_i32$1 = $28$hi; + btConvexHullInternal__Point64__Point64_28long_20long_2c_20long_20long_2c_20long_20long_29($0 | 0, $17 | 0, i64toi32_i32$0 | 0, $28 | 0, i64toi32_i32$1 | 0, $128 | 0, $39$hi | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return; + } + + function btConvexHullInternal__Point32__cross_28btConvexHullInternal__Point64_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, $5 = 0, i64toi32_i32$3 = 0, $6 = 0, i64toi32_i32$6 = 0, $9$hi = 0, $11$hi = 0, $12$hi = 0, $15$hi = 0, $17$hi = 0, $18$hi = 0, $19$hi = 0, $22$hi = 0, $24$hi = 0, $25$hi = 0, $28$hi = 0, $30$hi = 0, $31$hi = 0, $32$hi = 0, $35$hi = 0, $37$hi = 0, $38$hi = 0, $41$hi = 0, $43$hi = 0, $44$hi = 0, $45$hi = 0, $9 = 0, $69 = 0, $12 = 0, $15 = 0, $81 = 0, $84 = 0, $19 = 0, $22 = 0, $96 = 0, $25 = 0, $28 = 0, $108 = 0, $111 = 0, $32 = 0, $35 = 0, $123 = 0, $38 = 0, $41 = 0, $135 = 0, $138 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $1; + HEAP32[($5 + 8 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = i64toi32_i32$1 >> 31 | 0; + $9 = i64toi32_i32$1; + $9$hi = i64toi32_i32$0; + i64toi32_i32$2 = HEAP32[($5 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 16 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 20 | 0) >> 2] | 0; + $11$hi = i64toi32_i32$1; + i64toi32_i32$1 = $9$hi; + i64toi32_i32$1 = $11$hi; + $69 = i64toi32_i32$0; + i64toi32_i32$1 = $9$hi; + i64toi32_i32$0 = $11$hi; + i64toi32_i32$0 = __wasm_i64_mul($9 | 0, i64toi32_i32$1 | 0, $69 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $12 = i64toi32_i32$0; + $12$hi = i64toi32_i32$1; + i64toi32_i32$0 = HEAP32[($6 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0; + $15 = i64toi32_i32$0; + $15$hi = i64toi32_i32$1; + i64toi32_i32$2 = HEAP32[($5 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 12 | 0) >> 2] | 0; + $17$hi = i64toi32_i32$0; + i64toi32_i32$0 = $15$hi; + i64toi32_i32$0 = $17$hi; + $81 = i64toi32_i32$1; + i64toi32_i32$0 = $15$hi; + i64toi32_i32$1 = $17$hi; + i64toi32_i32$1 = __wasm_i64_mul($15 | 0, i64toi32_i32$0 | 0, $81 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $18$hi = i64toi32_i32$0; + i64toi32_i32$0 = $12$hi; + i64toi32_i32$0 = $18$hi; + $84 = i64toi32_i32$1; + i64toi32_i32$0 = $12$hi; + i64toi32_i32$2 = $12; + i64toi32_i32$1 = $18$hi; + i64toi32_i32$3 = $84; + i64toi32_i32$4 = i64toi32_i32$2 - i64toi32_i32$3 | 0; + i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0; + i64toi32_i32$5 = i64toi32_i32$6 + i64toi32_i32$1 | 0; + i64toi32_i32$5 = i64toi32_i32$0 - i64toi32_i32$5 | 0; + $19 = i64toi32_i32$4; + $19$hi = i64toi32_i32$5; + i64toi32_i32$2 = HEAP32[($6 + 8 | 0) >> 2] | 0; + i64toi32_i32$5 = i64toi32_i32$2 >> 31 | 0; + $22 = i64toi32_i32$2; + $22$hi = i64toi32_i32$5; + i64toi32_i32$0 = HEAP32[($5 + 8 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $24$hi = i64toi32_i32$2; + i64toi32_i32$2 = $22$hi; + i64toi32_i32$2 = $24$hi; + $96 = i64toi32_i32$5; + i64toi32_i32$2 = $22$hi; + i64toi32_i32$5 = $24$hi; + i64toi32_i32$5 = __wasm_i64_mul($22 | 0, i64toi32_i32$2 | 0, $96 | 0, i64toi32_i32$5 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $25 = i64toi32_i32$5; + $25$hi = i64toi32_i32$2; + i64toi32_i32$5 = HEAP32[$6 >> 2] | 0; + i64toi32_i32$2 = i64toi32_i32$5 >> 31 | 0; + $28 = i64toi32_i32$5; + $28$hi = i64toi32_i32$2; + i64toi32_i32$0 = HEAP32[($5 + 8 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$0 + 16 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 20 | 0) >> 2] | 0; + $30$hi = i64toi32_i32$5; + i64toi32_i32$5 = $28$hi; + i64toi32_i32$5 = $30$hi; + $108 = i64toi32_i32$2; + i64toi32_i32$5 = $28$hi; + i64toi32_i32$2 = $30$hi; + i64toi32_i32$2 = __wasm_i64_mul($28 | 0, i64toi32_i32$5 | 0, $108 | 0, i64toi32_i32$2 | 0) | 0; + i64toi32_i32$5 = i64toi32_i32$HIGH_BITS; + $31$hi = i64toi32_i32$5; + i64toi32_i32$5 = $25$hi; + i64toi32_i32$5 = $31$hi; + $111 = i64toi32_i32$2; + i64toi32_i32$5 = $25$hi; + i64toi32_i32$0 = $25; + i64toi32_i32$2 = $31$hi; + i64toi32_i32$3 = $111; + i64toi32_i32$1 = i64toi32_i32$0 - i64toi32_i32$3 | 0; + i64toi32_i32$6 = i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0; + i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$2 | 0; + i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0; + $32 = i64toi32_i32$1; + $32$hi = i64toi32_i32$4; + i64toi32_i32$0 = HEAP32[$6 >> 2] | 0; + i64toi32_i32$4 = i64toi32_i32$0 >> 31 | 0; + $35 = i64toi32_i32$0; + $35$hi = i64toi32_i32$4; + i64toi32_i32$5 = HEAP32[($5 + 8 | 0) >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$5 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$5 + 12 | 0) >> 2] | 0; + $37$hi = i64toi32_i32$0; + i64toi32_i32$0 = $35$hi; + i64toi32_i32$0 = $37$hi; + $123 = i64toi32_i32$4; + i64toi32_i32$0 = $35$hi; + i64toi32_i32$4 = $37$hi; + i64toi32_i32$4 = __wasm_i64_mul($35 | 0, i64toi32_i32$0 | 0, $123 | 0, i64toi32_i32$4 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $38 = i64toi32_i32$4; + $38$hi = i64toi32_i32$0; + i64toi32_i32$4 = HEAP32[($6 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = i64toi32_i32$4 >> 31 | 0; + $41 = i64toi32_i32$4; + $41$hi = i64toi32_i32$0; + i64toi32_i32$5 = HEAP32[($5 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $43$hi = i64toi32_i32$4; + i64toi32_i32$4 = $41$hi; + i64toi32_i32$4 = $43$hi; + $135 = i64toi32_i32$0; + i64toi32_i32$4 = $41$hi; + i64toi32_i32$0 = $43$hi; + i64toi32_i32$0 = __wasm_i64_mul($41 | 0, i64toi32_i32$4 | 0, $135 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$4 = i64toi32_i32$HIGH_BITS; + $44$hi = i64toi32_i32$4; + i64toi32_i32$4 = $38$hi; + i64toi32_i32$4 = $44$hi; + $138 = i64toi32_i32$0; + i64toi32_i32$4 = $38$hi; + i64toi32_i32$5 = $38; + i64toi32_i32$0 = $44$hi; + i64toi32_i32$3 = $138; + i64toi32_i32$2 = i64toi32_i32$5 - i64toi32_i32$3 | 0; + i64toi32_i32$6 = i64toi32_i32$5 >>> 0 < i64toi32_i32$3 >>> 0; + i64toi32_i32$1 = i64toi32_i32$6 + i64toi32_i32$0 | 0; + i64toi32_i32$1 = i64toi32_i32$4 - i64toi32_i32$1 | 0; + $45$hi = i64toi32_i32$1; + i64toi32_i32$1 = $19$hi; + i64toi32_i32$1 = $32$hi; + i64toi32_i32$1 = $45$hi; + i64toi32_i32$1 = $19$hi; + i64toi32_i32$5 = $32$hi; + i64toi32_i32$4 = $45$hi; + btConvexHullInternal__Point64__Point64_28long_20long_2c_20long_20long_2c_20long_20long_29($0 | 0, $19 | 0, i64toi32_i32$1 | 0, $32 | 0, i64toi32_i32$5 | 0, i64toi32_i32$2 | 0, i64toi32_i32$4 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return; + } + + function btConvexHullInternal__Point64__isZero_28_29($0) { + $0 = $0 | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, $4 = 0, $5$hi = 0, $6$hi = 0, $13 = 0, $14$hi = 0, $15$hi = 0, $22$hi = 0, $23$hi = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $5$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $6$hi = i64toi32_i32$1; + i64toi32_i32$1 = $5$hi; + i64toi32_i32$1 = $6$hi; + i64toi32_i32$1 = $5$hi; + i64toi32_i32$1 = $6$hi; + i64toi32_i32$1 = $5$hi; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$0 = $6$hi; + i64toi32_i32$3 = 0; + $13 = 0; + label$1 : { + if (!(((i64toi32_i32$2 | 0) == (i64toi32_i32$3 | 0) & (i64toi32_i32$1 | 0) == (i64toi32_i32$0 | 0) | 0) & 1 | 0)) { + break label$1 + } + i64toi32_i32$3 = $4; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$3 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$3 + 12 | 0) >> 2] | 0; + $14$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $15$hi = i64toi32_i32$1; + i64toi32_i32$1 = $14$hi; + i64toi32_i32$1 = $15$hi; + i64toi32_i32$1 = $14$hi; + i64toi32_i32$1 = $15$hi; + i64toi32_i32$1 = $14$hi; + i64toi32_i32$3 = i64toi32_i32$2; + i64toi32_i32$2 = $15$hi; + i64toi32_i32$0 = 0; + $13 = 0; + if (!(((i64toi32_i32$3 | 0) == (i64toi32_i32$0 | 0) & (i64toi32_i32$1 | 0) == (i64toi32_i32$2 | 0) | 0) & 1 | 0)) { + break label$1 + } + i64toi32_i32$0 = $4; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$0 + 16 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$0 + 20 | 0) >> 2] | 0; + $22$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $23$hi = i64toi32_i32$1; + i64toi32_i32$1 = $22$hi; + i64toi32_i32$1 = $23$hi; + i64toi32_i32$1 = $22$hi; + i64toi32_i32$1 = $23$hi; + i64toi32_i32$1 = $22$hi; + i64toi32_i32$0 = i64toi32_i32$3; + i64toi32_i32$3 = $23$hi; + i64toi32_i32$2 = 0; + $13 = (i64toi32_i32$0 | 0) == (i64toi32_i32$2 | 0) & (i64toi32_i32$1 | 0) == (i64toi32_i32$3 | 0) | 0; + } + return $13 & 1 | 0 | 0; + } + + function btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, i64toi32_i32$5 = 0, $4 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $5 = 0, $8$hi = 0, $10$hi = 0, $11$hi = 0, $14$hi = 0, $16$hi = 0, $17$hi = 0, $18$hi = 0, $21$hi = 0, $23$hi = 0, $24$hi = 0, $8 = 0, $46 = 0, $11 = 0, $14 = 0, $58 = 0, $61 = 0, $21 = 0, $73 = 0, $76 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[$5 >> 2] | 0; + i64toi32_i32$0 = i64toi32_i32$1 >> 31 | 0; + $8 = i64toi32_i32$1; + $8$hi = i64toi32_i32$0; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $10$hi = i64toi32_i32$1; + i64toi32_i32$1 = $8$hi; + i64toi32_i32$1 = $10$hi; + $46 = i64toi32_i32$0; + i64toi32_i32$1 = $8$hi; + i64toi32_i32$0 = $10$hi; + i64toi32_i32$0 = __wasm_i64_mul($8 | 0, i64toi32_i32$1 | 0, $46 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $11 = i64toi32_i32$0; + $11$hi = i64toi32_i32$1; + i64toi32_i32$0 = HEAP32[($5 + 4 | 0) >> 2] | 0; + i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0; + $14 = i64toi32_i32$0; + $14$hi = i64toi32_i32$1; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 12 | 0) >> 2] | 0; + $16$hi = i64toi32_i32$0; + i64toi32_i32$0 = $14$hi; + i64toi32_i32$0 = $16$hi; + $58 = i64toi32_i32$1; + i64toi32_i32$0 = $14$hi; + i64toi32_i32$1 = $16$hi; + i64toi32_i32$1 = __wasm_i64_mul($14 | 0, i64toi32_i32$0 | 0, $58 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $17$hi = i64toi32_i32$0; + i64toi32_i32$0 = $11$hi; + i64toi32_i32$0 = $17$hi; + $61 = i64toi32_i32$1; + i64toi32_i32$0 = $11$hi; + i64toi32_i32$2 = $11; + i64toi32_i32$1 = $17$hi; + i64toi32_i32$3 = $61; + i64toi32_i32$4 = i64toi32_i32$2 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$0 + i64toi32_i32$1 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $18$hi = i64toi32_i32$5; + i64toi32_i32$2 = HEAP32[($5 + 8 | 0) >> 2] | 0; + i64toi32_i32$5 = i64toi32_i32$2 >> 31 | 0; + $21 = i64toi32_i32$2; + $21$hi = i64toi32_i32$5; + i64toi32_i32$0 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 16 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$0 + 20 | 0) >> 2] | 0; + $23$hi = i64toi32_i32$2; + i64toi32_i32$2 = $21$hi; + i64toi32_i32$2 = $23$hi; + $73 = i64toi32_i32$5; + i64toi32_i32$2 = $21$hi; + i64toi32_i32$5 = $23$hi; + i64toi32_i32$5 = __wasm_i64_mul($21 | 0, i64toi32_i32$2 | 0, $73 | 0, i64toi32_i32$5 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $24$hi = i64toi32_i32$2; + i64toi32_i32$2 = $18$hi; + i64toi32_i32$2 = $24$hi; + $76 = i64toi32_i32$5; + i64toi32_i32$2 = $18$hi; + i64toi32_i32$0 = i64toi32_i32$4; + i64toi32_i32$5 = $24$hi; + i64toi32_i32$3 = $76; + i64toi32_i32$1 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + i64toi32_i32$4 = i64toi32_i32$2 + i64toi32_i32$5 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + i64toi32_i32$0 = i64toi32_i32$1; + i64toi32_i32$HIGH_BITS = i64toi32_i32$4; + return i64toi32_i32$0 | 0; + } + + function btConvexHullInternal__getOrientation_28btConvexHullInternal__Edge_20const__2c_20btConvexHullInternal__Edge_20const__2c_20btConvexHullInternal__Point32_20const__2c_20btConvexHullInternal__Point32_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, $85$hi = 0, $86$hi = 0, $96$hi = 0, $97$hi = 0, $15 = 0, $16 = 0, $17 = 0, $277 = 0, $117 = 0; + $6 = __stack_pointer - 112 | 0; + __stack_pointer = $6; + HEAP32[($6 + 104 | 0) >> 2] = $0; + HEAP32[($6 + 100 | 0) >> 2] = $1; + HEAP32[($6 + 96 | 0) >> 2] = $2; + HEAP32[($6 + 92 | 0) >> 2] = $3; + label$1 : { + if ((HEAP32[((HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[((HEAP32[($6 + 100 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(68463 | 0, 72732 | 0, 1400 | 0, 76667 | 0); + wasm2js_trap(); + } + label$2 : { + label$3 : { + if (!((HEAP32[(HEAP32[($6 + 104 | 0) >> 2] | 0) >> 2] | 0 | 0) == (HEAP32[($6 + 100 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + label$4 : { + if (!((HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (HEAP32[($6 + 100 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + btConvexHullInternal__Point32__cross_28btConvexHullInternal__Point32_20const__29_20const($6 + 64 | 0 | 0, HEAP32[($6 + 92 | 0) >> 2] | 0 | 0, HEAP32[($6 + 96 | 0) >> 2] | 0 | 0); + btConvexHullInternal__Vertex__operator__28btConvexHullInternal__Vertex_20const__29_20const($6 + 24 | 0 | 0, HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($6 + 100 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0); + btConvexHullInternal__Vertex__operator__28btConvexHullInternal__Vertex_20const__29_20const($6 + 8 | 0 | 0, HEAP32[((HEAP32[($6 + 100 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($6 + 100 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0); + btConvexHullInternal__Point32__cross_28btConvexHullInternal__Point32_20const__29_20const($6 + 40 | 0 | 0, $6 + 24 | 0 | 0, $6 + 8 | 0 | 0); + label$5 : { + if (!((btConvexHullInternal__Point64__isZero_28_29($6 + 40 | 0 | 0) | 0) & 1 | 0)) { + break label$5 + } + __assert_fail(87293 | 0, 72732 | 0, 1407 | 0, 76667 | 0); + wasm2js_trap(); + } + i64toi32_i32$0 = btConvexHullInternal__Point64__dot_28btConvexHullInternal__Point64_20const__29_20const($6 + 64 | 0 | 0, $6 + 40 | 0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $277 = i64toi32_i32$0; + i64toi32_i32$0 = $6; + HEAP32[$6 >> 2] = $277; + HEAP32[($6 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[$6 >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 4 | 0) >> 2] | 0; + $85$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $86$hi = i64toi32_i32$0; + i64toi32_i32$0 = $85$hi; + i64toi32_i32$0 = $86$hi; + i64toi32_i32$0 = $85$hi; + i64toi32_i32$0 = $86$hi; + i64toi32_i32$0 = $85$hi; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$1 = $86$hi; + i64toi32_i32$3 = 0; + label$6 : { + if (((i64toi32_i32$2 | 0) != (i64toi32_i32$3 | 0) | (i64toi32_i32$0 | 0) != (i64toi32_i32$1 | 0) | 0) & 1 | 0) { + break label$6 + } + __assert_fail(86151 | 0, 72732 | 0, 1409 | 0, 76667 | 0); + wasm2js_trap(); + } + i64toi32_i32$3 = $6; + i64toi32_i32$2 = HEAP32[$6 >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 4 | 0) >> 2] | 0; + $96$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $97$hi = i64toi32_i32$0; + i64toi32_i32$0 = $96$hi; + i64toi32_i32$0 = $97$hi; + i64toi32_i32$0 = $96$hi; + i64toi32_i32$0 = $97$hi; + i64toi32_i32$0 = $96$hi; + i64toi32_i32$3 = i64toi32_i32$2; + i64toi32_i32$2 = $97$hi; + i64toi32_i32$1 = 0; + if ((i64toi32_i32$0 | 0) > (i64toi32_i32$2 | 0)) { + $15 = 1 + } else { + if ((i64toi32_i32$0 | 0) >= (i64toi32_i32$2 | 0)) { + if (i64toi32_i32$3 >>> 0 <= i64toi32_i32$1 >>> 0) { + $16 = 0 + } else { + $16 = 1 + } + $17 = $16; + } else { + $17 = 0 + } + $15 = $17; + } + HEAP32[($6 + 108 | 0) >> 2] = $15 & 1 | 0 ? 2 : 1; + break label$2; + } + HEAP32[($6 + 108 | 0) >> 2] = 2; + break label$2; + } + label$7 : { + if (!((HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (HEAP32[($6 + 100 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$7 + } + HEAP32[($6 + 108 | 0) >> 2] = 1; + break label$2; + } + HEAP32[($6 + 108 | 0) >> 2] = 0; + } + $117 = HEAP32[($6 + 108 | 0) >> 2] | 0; + __stack_pointer = $6 + 112 | 0; + return $117 | 0; + } + + function btConvexHullInternal__findEdgeForCoplanarFaces_28btConvexHullInternal__Vertex__2c_20btConvexHullInternal__Vertex__2c_20btConvexHullInternal__Edge___2c_20btConvexHullInternal__Edge___2c_20btConvexHullInternal__Vertex__2c_20btConvexHullInternal__Vertex__29($0, $1, $2, $3, $4, $5, $6) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + var $9 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$5 = 0, i64toi32_i32$3 = 0, $10 = 0, $120$hi = 0, $121$hi = 0, $185$hi = 0, $186$hi = 0, $199$hi = 0, $200$hi = 0, $226$hi = 0, $227$hi = 0, $282$hi = 0, $283$hi = 0, $296$hi = 0, $297$hi = 0, $323$hi = 0, $324$hi = 0, $347$hi = 0, $348$hi = 0, $433$hi = 0, $434$hi = 0, $440$hi = 0, $441$hi = 0, $446$hi = 0, $447$hi = 0, $565$hi = 0, $566$hi = 0, $603$hi = 0, $604$hi = 0, $612$hi = 0, $613$hi = 0, $619$hi = 0, $620$hi = 0, $625$hi = 0, $626$hi = 0, $689$hi = 0, $690$hi = 0, $700$hi = 0, $701$hi = 0, $786$hi = 0, $787$hi = 0, $793$hi = 0, $794$hi = 0, $799$hi = 0, $800$hi = 0, $918$hi = 0, $919$hi = 0, $956$hi = 0, $957$hi = 0, $965$hi = 0, $966$hi = 0, $972$hi = 0, $973$hi = 0, $978$hi = 0, $979$hi = 0, $1042$hi = 0, $1043$hi = 0, $26 = 0, $30 = 0, $31 = 0, $49 = 0, $53 = 0, $54 = 0, $78 = 0, $189 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $239 = 0, $240 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $200 = 0, $201 = 0, $336 = 0, $337 = 0, $344$hi = 0, $345$hi = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $445 = 0, $208 = 0, $209 = 0, $210 = 0, $454 = 0, $455$hi = 0, $456$hi = 0, $460$hi = 0, $461$hi = 0, $483 = 0, $484 = 0, $516 = 0, $211 = 0, $212 = 0, $213 = 0, $611 = 0, $214 = 0, $215 = 0, $216 = 0, $624 = 0, $217 = 0, $218 = 0, $219 = 0, $633 = 0, $634$hi = 0, $635$hi = 0, $639$hi = 0, $640$hi = 0, $666 = 0, $667 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $227 = 0, $228 = 0, $229 = 0, $798 = 0, $230 = 0, $231 = 0, $232 = 0, $807 = 0, $808$hi = 0, $809$hi = 0, $813$hi = 0, $814$hi = 0, $836 = 0, $837 = 0, $869 = 0, $233 = 0, $234 = 0, $235 = 0, $964 = 0, $236 = 0, $237 = 0, $238 = 0, $977 = 0, $241 = 0, $242 = 0, $243 = 0, $986 = 0, $987$hi = 0, $988$hi = 0, $992$hi = 0, $993$hi = 0, $1019 = 0, $1020 = 0, $244 = 0, $245 = 0, $246 = 0, $1127 = 0, $1131 = 0, $1171 = 0, $1175 = 0, $1257 = 0, $120 = 0, $1289 = 0, $1341 = 0, $185 = 0, $1403 = 0, $199 = 0, $1429 = 0, $1470 = 0, $226 = 0, $1478 = 0, $1488 = 0, $1514 = 0, $1518 = 0, $1531 = 0, $282 = 0, $1593 = 0, $296 = 0, $1619 = 0, $1660 = 0, $323 = 0, $1668 = 0, $1678 = 0, $1704 = 0, $1708 = 0, $344 = 0, $1714 = 0, $1717 = 0, $1757 = 0, $1846 = 0, $1877 = 0, $455 = 0, $1921 = 0, $460 = 0, $1933 = 0, $1979 = 0, $1983 = 0, $2011 = 0, $2146 = 0, $2159 = 0, $2190 = 0, $634 = 0, $2247 = 0, $639 = 0, $2259 = 0, $2315 = 0, $2319 = 0, $2323 = 0, $2403 = 0, $2492 = 0, $2523 = 0, $808 = 0, $2567 = 0, $813 = 0, $2579 = 0, $2625 = 0, $2629 = 0, $2657 = 0, $2792 = 0, $2805 = 0, $2836 = 0, $987 = 0, $2893 = 0, $992 = 0, $2905 = 0, $2961 = 0, $2965 = 0, $2969 = 0; + $9 = __stack_pointer - 736 | 0; + __stack_pointer = $9; + HEAP32[($9 + 732 | 0) >> 2] = $0; + HEAP32[($9 + 728 | 0) >> 2] = $1; + HEAP32[($9 + 724 | 0) >> 2] = $2; + HEAP32[($9 + 720 | 0) >> 2] = $3; + HEAP32[($9 + 716 | 0) >> 2] = $4; + HEAP32[($9 + 712 | 0) >> 2] = $5; + HEAP32[($9 + 708 | 0) >> 2] = $6; + $10 = HEAP32[($9 + 732 | 0) >> 2] | 0; + HEAP32[($9 + 704 | 0) >> 2] = HEAP32[(HEAP32[($9 + 720 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($9 + 700 | 0) >> 2] = HEAP32[(HEAP32[($9 + 716 | 0) >> 2] | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($9 + 704 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + $26 = (HEAP32[((HEAP32[($9 + 704 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 88 | 0; + break label$1; + } + $26 = (HEAP32[($9 + 728 | 0) >> 2] | 0) + 88 | 0; + } + $30 = $26; + $31 = 8; + i64toi32_i32$2 = $30 + $31 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1127 = i64toi32_i32$0; + i64toi32_i32$0 = ($9 + 680 | 0) + $31 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1127; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $30; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1131 = i64toi32_i32$1; + i64toi32_i32$1 = $9; + HEAP32[($9 + 680 | 0) >> 2] = $1131; + HEAP32[($9 + 684 | 0) >> 2] = i64toi32_i32$0; + label$3 : { + label$4 : { + if (!((HEAP32[($9 + 700 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $49 = (HEAP32[((HEAP32[($9 + 700 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 88 | 0; + break label$3; + } + $49 = (HEAP32[($9 + 724 | 0) >> 2] | 0) + 88 | 0; + } + $53 = $49; + $54 = 8; + i64toi32_i32$2 = $53 + $54 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1171 = i64toi32_i32$0; + i64toi32_i32$0 = ($9 + 664 | 0) + $54 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1171; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $53; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1175 = i64toi32_i32$1; + i64toi32_i32$1 = $9; + HEAP32[($9 + 664 | 0) >> 2] = $1175; + HEAP32[($9 + 668 | 0) >> 2] = i64toi32_i32$0; + btConvexHullInternal__Point32__operator__28btConvexHullInternal__Point32_20const__29_20const($9 + 648 | 0 | 0, (HEAP32[($9 + 724 | 0) >> 2] | 0) + 88 | 0 | 0, (HEAP32[($9 + 728 | 0) >> 2] | 0) + 88 | 0 | 0); + label$5 : { + label$6 : { + if (!((HEAP32[($9 + 704 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $78 = HEAP32[($9 + 704 | 0) >> 2] | 0; + break label$5; + } + $78 = HEAP32[($9 + 700 | 0) >> 2] | 0; + } + btConvexHullInternal__Point32__operator__28btConvexHullInternal__Point32_20const__29_20const($9 + 608 | 0 | 0, (HEAP32[($78 + 12 | 0) >> 2] | 0) + 88 | 0 | 0, (HEAP32[($9 + 728 | 0) >> 2] | 0) + 88 | 0 | 0); + btConvexHullInternal__Point32__cross_28btConvexHullInternal__Point32_20const__29_20const($9 + 624 | 0 | 0, $9 + 608 | 0 | 0, $9 + 648 | 0 | 0); + i64toi32_i32$0 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const((HEAP32[($9 + 728 | 0) >> 2] | 0) + 88 | 0 | 0, $9 + 624 | 0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $1257 = i64toi32_i32$0; + i64toi32_i32$0 = $9; + HEAP32[($9 + 600 | 0) >> 2] = $1257; + HEAP32[($9 + 604 | 0) >> 2] = i64toi32_i32$1; + label$7 : { + if (!((HEAP32[($9 + 700 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + i64toi32_i32$1 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const((HEAP32[((HEAP32[($9 + 700 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 88 | 0 | 0, $9 + 624 | 0 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $120 = i64toi32_i32$1; + $120$hi = i64toi32_i32$0; + i64toi32_i32$2 = $9; + i64toi32_i32$0 = HEAP32[($9 + 600 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 604 | 0) >> 2] | 0; + $121$hi = i64toi32_i32$1; + i64toi32_i32$1 = $120$hi; + i64toi32_i32$1 = $121$hi; + i64toi32_i32$1 = $120$hi; + i64toi32_i32$1 = $121$hi; + $1289 = i64toi32_i32$0; + i64toi32_i32$1 = $120$hi; + i64toi32_i32$2 = $120; + i64toi32_i32$0 = $121$hi; + i64toi32_i32$3 = $1289; + if (((i64toi32_i32$2 | 0) == (i64toi32_i32$3 | 0) & (i64toi32_i32$1 | 0) == (i64toi32_i32$0 | 0) | 0) & 1 | 0) { + break label$7 + } + __assert_fail(86181 | 0, 72732 | 0, 1485 | 0, 70286 | 0); + wasm2js_trap(); + } + btConvexHullInternal__Point32__cross_28btConvexHullInternal__Point64_20const__29_20const($9 + 576 | 0 | 0, $9 + 648 | 0 | 0, $9 + 624 | 0 | 0); + label$8 : { + if (!((btConvexHullInternal__Point64__isZero_28_29($9 + 576 | 0 | 0) | 0) & 1 | 0)) { + break label$8 + } + __assert_fail(87278 | 0, 72732 | 0, 1487 | 0, 70286 | 0); + wasm2js_trap(); + } + i64toi32_i32$2 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const($9 + 680 | 0 | 0, $9 + 576 | 0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $1341 = i64toi32_i32$2; + i64toi32_i32$2 = $9; + HEAP32[($9 + 568 | 0) >> 2] = $1341; + HEAP32[($9 + 572 | 0) >> 2] = i64toi32_i32$1; + label$9 : { + if (!((HEAP32[(HEAP32[($9 + 720 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$9 + } + label$10 : { + label$11 : while (1) { + if (!((HEAP32[((HEAP32[(HEAP32[($9 + 720 | 0) >> 2] | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (HEAP32[($9 + 712 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$10 + } + HEAP32[($9 + 564 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[(HEAP32[($9 + 720 | 0) >> 2] | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + i64toi32_i32$1 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const((HEAP32[((HEAP32[($9 + 564 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 88 | 0 | 0, $9 + 624 | 0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $185 = i64toi32_i32$1; + $185$hi = i64toi32_i32$2; + i64toi32_i32$3 = $9; + i64toi32_i32$2 = HEAP32[($9 + 600 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 604 | 0) >> 2] | 0; + $186$hi = i64toi32_i32$1; + i64toi32_i32$1 = $185$hi; + i64toi32_i32$1 = $186$hi; + i64toi32_i32$1 = $185$hi; + i64toi32_i32$1 = $186$hi; + $1403 = i64toi32_i32$2; + i64toi32_i32$1 = $185$hi; + i64toi32_i32$3 = $185; + i64toi32_i32$2 = $186$hi; + i64toi32_i32$0 = $1403; + if ((i64toi32_i32$1 | 0) < (i64toi32_i32$2 | 0)) { + $189 = 1 + } else { + if ((i64toi32_i32$1 | 0) <= (i64toi32_i32$2 | 0)) { + if (i64toi32_i32$3 >>> 0 >= i64toi32_i32$0 >>> 0) { + $190 = 0 + } else { + $190 = 1 + } + $191 = $190; + } else { + $191 = 0 + } + $189 = $191; + } + label$12 : { + if (!($189 & 1 | 0)) { + break label$12 + } + break label$10; + } + i64toi32_i32$3 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const((HEAP32[((HEAP32[($9 + 564 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 88 | 0 | 0, $9 + 624 | 0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $199 = i64toi32_i32$3; + $199$hi = i64toi32_i32$1; + i64toi32_i32$0 = $9; + i64toi32_i32$1 = HEAP32[($9 + 600 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($9 + 604 | 0) >> 2] | 0; + $200$hi = i64toi32_i32$3; + i64toi32_i32$3 = $199$hi; + i64toi32_i32$3 = $200$hi; + i64toi32_i32$3 = $199$hi; + i64toi32_i32$3 = $200$hi; + $1429 = i64toi32_i32$1; + i64toi32_i32$3 = $199$hi; + i64toi32_i32$0 = $199; + i64toi32_i32$1 = $200$hi; + i64toi32_i32$2 = $1429; + label$13 : { + if (((i64toi32_i32$0 | 0) == (i64toi32_i32$2 | 0) & (i64toi32_i32$3 | 0) == (i64toi32_i32$1 | 0) | 0) & 1 | 0) { + break label$13 + } + __assert_fail(67337 | 0, 72732 | 0, 1503 | 0, 70286 | 0); + wasm2js_trap(); + } + label$14 : { + if (!((HEAP32[((HEAP32[($9 + 564 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) == (HEAP32[($10 + 100 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$14 + } + break label$10; + } + i64toi32_i32$0 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const((HEAP32[((HEAP32[($9 + 564 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 88 | 0 | 0, $9 + 576 | 0 | 0) | 0; + i64toi32_i32$3 = i64toi32_i32$HIGH_BITS; + $1470 = i64toi32_i32$0; + i64toi32_i32$0 = $9; + HEAP32[($9 + 552 | 0) >> 2] = $1470; + HEAP32[($9 + 556 | 0) >> 2] = i64toi32_i32$3; + i64toi32_i32$2 = $9; + i64toi32_i32$3 = HEAP32[($9 + 552 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($9 + 556 | 0) >> 2] | 0; + $226 = i64toi32_i32$3; + $226$hi = i64toi32_i32$0; + i64toi32_i32$2 = $9; + i64toi32_i32$0 = HEAP32[($9 + 568 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($9 + 572 | 0) >> 2] | 0; + $227$hi = i64toi32_i32$3; + i64toi32_i32$3 = $226$hi; + i64toi32_i32$3 = $227$hi; + i64toi32_i32$3 = $226$hi; + i64toi32_i32$3 = $227$hi; + $1478 = i64toi32_i32$0; + i64toi32_i32$3 = $226$hi; + i64toi32_i32$2 = $226; + i64toi32_i32$0 = $227$hi; + i64toi32_i32$1 = $1478; + if ((i64toi32_i32$3 | 0) < (i64toi32_i32$0 | 0)) { + $192 = 1 + } else { + if ((i64toi32_i32$3 | 0) <= (i64toi32_i32$0 | 0)) { + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$1 >>> 0) { + $193 = 0 + } else { + $193 = 1 + } + $194 = $193; + } else { + $194 = 0 + } + $192 = $194; + } + label$15 : { + if (!($192 & 1 | 0)) { + break label$15 + } + break label$10; + } + i64toi32_i32$1 = $9; + i64toi32_i32$2 = HEAP32[($9 + 552 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($9 + 556 | 0) >> 2] | 0; + $1488 = i64toi32_i32$2; + i64toi32_i32$2 = $9; + HEAP32[($9 + 568 | 0) >> 2] = $1488; + HEAP32[($9 + 572 | 0) >> 2] = i64toi32_i32$3; + HEAP32[(HEAP32[($9 + 720 | 0) >> 2] | 0) >> 2] = HEAP32[($9 + 564 | 0) >> 2] | 0; + $239 = (HEAP32[((HEAP32[($9 + 564 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 88 | 0; + $240 = 8; + i64toi32_i32$1 = $239 + $240 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $1514 = i64toi32_i32$3; + i64toi32_i32$3 = ($9 + 680 | 0) + $240 | 0; + HEAP32[i64toi32_i32$3 >> 2] = $1514; + HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] = i64toi32_i32$2; + i64toi32_i32$1 = $239; + i64toi32_i32$2 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $1518 = i64toi32_i32$2; + i64toi32_i32$2 = $9; + HEAP32[($9 + 680 | 0) >> 2] = $1518; + HEAP32[($9 + 684 | 0) >> 2] = i64toi32_i32$3; + continue label$11; + }; + } + } + i64toi32_i32$3 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const($9 + 664 | 0 | 0, $9 + 576 | 0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $1531 = i64toi32_i32$3; + i64toi32_i32$3 = $9; + HEAP32[($9 + 544 | 0) >> 2] = $1531; + HEAP32[($9 + 548 | 0) >> 2] = i64toi32_i32$2; + label$16 : { + if (!((HEAP32[(HEAP32[($9 + 716 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$16 + } + label$17 : { + label$18 : while (1) { + if (!((HEAP32[((HEAP32[(HEAP32[($9 + 716 | 0) >> 2] | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (HEAP32[($9 + 708 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$17 + } + HEAP32[($9 + 540 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[(HEAP32[($9 + 716 | 0) >> 2] | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0; + i64toi32_i32$2 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const((HEAP32[((HEAP32[($9 + 540 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 88 | 0 | 0, $9 + 624 | 0 | 0) | 0; + i64toi32_i32$3 = i64toi32_i32$HIGH_BITS; + $282 = i64toi32_i32$2; + $282$hi = i64toi32_i32$3; + i64toi32_i32$1 = $9; + i64toi32_i32$3 = HEAP32[($9 + 600 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($9 + 604 | 0) >> 2] | 0; + $283$hi = i64toi32_i32$2; + i64toi32_i32$2 = $282$hi; + i64toi32_i32$2 = $283$hi; + i64toi32_i32$2 = $282$hi; + i64toi32_i32$2 = $283$hi; + $1593 = i64toi32_i32$3; + i64toi32_i32$2 = $282$hi; + i64toi32_i32$1 = $282; + i64toi32_i32$3 = $283$hi; + i64toi32_i32$0 = $1593; + if ((i64toi32_i32$2 | 0) < (i64toi32_i32$3 | 0)) { + $195 = 1 + } else { + if ((i64toi32_i32$2 | 0) <= (i64toi32_i32$3 | 0)) { + if (i64toi32_i32$1 >>> 0 >= i64toi32_i32$0 >>> 0) { + $196 = 0 + } else { + $196 = 1 + } + $197 = $196; + } else { + $197 = 0 + } + $195 = $197; + } + label$19 : { + if (!($195 & 1 | 0)) { + break label$19 + } + break label$17; + } + i64toi32_i32$1 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const((HEAP32[((HEAP32[($9 + 540 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 88 | 0 | 0, $9 + 624 | 0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $296 = i64toi32_i32$1; + $296$hi = i64toi32_i32$2; + i64toi32_i32$0 = $9; + i64toi32_i32$2 = HEAP32[($9 + 600 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 604 | 0) >> 2] | 0; + $297$hi = i64toi32_i32$1; + i64toi32_i32$1 = $296$hi; + i64toi32_i32$1 = $297$hi; + i64toi32_i32$1 = $296$hi; + i64toi32_i32$1 = $297$hi; + $1619 = i64toi32_i32$2; + i64toi32_i32$1 = $296$hi; + i64toi32_i32$0 = $296; + i64toi32_i32$2 = $297$hi; + i64toi32_i32$3 = $1619; + label$20 : { + if (((i64toi32_i32$0 | 0) == (i64toi32_i32$3 | 0) & (i64toi32_i32$1 | 0) == (i64toi32_i32$2 | 0) | 0) & 1 | 0) { + break label$20 + } + __assert_fail(67337 | 0, 72732 | 0, 1529 | 0, 70286 | 0); + wasm2js_trap(); + } + label$21 : { + if (!((HEAP32[((HEAP32[($9 + 540 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) == (HEAP32[($10 + 100 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$21 + } + break label$17; + } + i64toi32_i32$0 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const((HEAP32[((HEAP32[($9 + 540 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 88 | 0 | 0, $9 + 576 | 0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $1660 = i64toi32_i32$0; + i64toi32_i32$0 = $9; + HEAP32[($9 + 528 | 0) >> 2] = $1660; + HEAP32[($9 + 532 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$3 = $9; + i64toi32_i32$1 = HEAP32[($9 + 528 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($9 + 532 | 0) >> 2] | 0; + $323 = i64toi32_i32$1; + $323$hi = i64toi32_i32$0; + i64toi32_i32$3 = $9; + i64toi32_i32$0 = HEAP32[($9 + 544 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 548 | 0) >> 2] | 0; + $324$hi = i64toi32_i32$1; + i64toi32_i32$1 = $323$hi; + i64toi32_i32$1 = $324$hi; + i64toi32_i32$1 = $323$hi; + i64toi32_i32$1 = $324$hi; + $1668 = i64toi32_i32$0; + i64toi32_i32$1 = $323$hi; + i64toi32_i32$3 = $323; + i64toi32_i32$0 = $324$hi; + i64toi32_i32$2 = $1668; + if ((i64toi32_i32$1 | 0) < (i64toi32_i32$0 | 0)) { + $198 = 1 + } else { + if ((i64toi32_i32$1 | 0) <= (i64toi32_i32$0 | 0)) { + if (i64toi32_i32$3 >>> 0 > i64toi32_i32$2 >>> 0) { + $200 = 0 + } else { + $200 = 1 + } + $201 = $200; + } else { + $201 = 0 + } + $198 = $201; + } + label$22 : { + if (!($198 & 1 | 0)) { + break label$22 + } + break label$17; + } + i64toi32_i32$2 = $9; + i64toi32_i32$3 = HEAP32[($9 + 528 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 532 | 0) >> 2] | 0; + $1678 = i64toi32_i32$3; + i64toi32_i32$3 = $9; + HEAP32[($9 + 544 | 0) >> 2] = $1678; + HEAP32[($9 + 548 | 0) >> 2] = i64toi32_i32$1; + HEAP32[(HEAP32[($9 + 716 | 0) >> 2] | 0) >> 2] = HEAP32[($9 + 540 | 0) >> 2] | 0; + $336 = (HEAP32[((HEAP32[($9 + 540 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 88 | 0; + $337 = 8; + i64toi32_i32$2 = $336 + $337 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1704 = i64toi32_i32$1; + i64toi32_i32$1 = ($9 + 664 | 0) + $337 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1704; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$3; + i64toi32_i32$2 = $336; + i64toi32_i32$3 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1708 = i64toi32_i32$3; + i64toi32_i32$3 = $9; + HEAP32[($9 + 664 | 0) >> 2] = $1708; + HEAP32[($9 + 668 | 0) >> 2] = i64toi32_i32$1; + continue label$18; + }; + } + } + i64toi32_i32$2 = $9; + i64toi32_i32$1 = HEAP32[($9 + 544 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($9 + 548 | 0) >> 2] | 0; + $344 = i64toi32_i32$1; + $344$hi = i64toi32_i32$3; + i64toi32_i32$2 = $9; + i64toi32_i32$3 = HEAP32[($9 + 568 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 572 | 0) >> 2] | 0; + $345$hi = i64toi32_i32$1; + i64toi32_i32$1 = $344$hi; + i64toi32_i32$1 = $345$hi; + $1714 = i64toi32_i32$3; + i64toi32_i32$1 = $344$hi; + i64toi32_i32$2 = $344; + i64toi32_i32$3 = $345$hi; + i64toi32_i32$0 = $1714; + i64toi32_i32$5 = (i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0) + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$1 - i64toi32_i32$5 | 0; + $1717 = i64toi32_i32$2 - i64toi32_i32$0 | 0; + i64toi32_i32$2 = $9; + HEAP32[($9 + 520 | 0) >> 2] = $1717; + HEAP32[($9 + 524 | 0) >> 2] = i64toi32_i32$5; + i64toi32_i32$1 = $9; + i64toi32_i32$5 = HEAP32[($9 + 520 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($9 + 524 | 0) >> 2] | 0; + $347$hi = i64toi32_i32$2; + i64toi32_i32$2 = 0; + $348$hi = i64toi32_i32$2; + i64toi32_i32$2 = $347$hi; + i64toi32_i32$2 = $348$hi; + i64toi32_i32$2 = $347$hi; + i64toi32_i32$2 = $348$hi; + i64toi32_i32$2 = $347$hi; + i64toi32_i32$1 = i64toi32_i32$5; + i64toi32_i32$5 = $348$hi; + i64toi32_i32$0 = 0; + if ((i64toi32_i32$2 | 0) > (i64toi32_i32$5 | 0)) { + $202 = 1 + } else { + if ((i64toi32_i32$2 | 0) >= (i64toi32_i32$5 | 0)) { + if (i64toi32_i32$1 >>> 0 <= i64toi32_i32$0 >>> 0) { + $203 = 0 + } else { + $203 = 1 + } + $204 = $203; + } else { + $204 = 0 + } + $202 = $204; + } + label$23 : { + label$24 : { + if (!($202 & 1 | 0)) { + break label$24 + } + label$25 : { + label$26 : { + label$27 : { + label$28 : { + label$29 : while (1) { + btConvexHullInternal__Point32__operator__28btConvexHullInternal__Point32_20const__29_20const($9 + 496 | 0 | 0, $9 + 664 | 0 | 0, $9 + 680 | 0 | 0); + i64toi32_i32$1 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point32_20const__29_20const($9 + 496 | 0 | 0, $9 + 648 | 0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $1757 = i64toi32_i32$1; + i64toi32_i32$1 = $9; + HEAP32[($9 + 512 | 0) >> 2] = $1757; + HEAP32[($9 + 516 | 0) >> 2] = i64toi32_i32$2; + label$30 : { + if (!((HEAP32[(HEAP32[($9 + 720 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$30 + } + if (!((HEAP32[((HEAP32[(HEAP32[($9 + 720 | 0) >> 2] | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (HEAP32[($9 + 712 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$30 + } + HEAP32[($9 + 492 | 0) >> 2] = HEAP32[((HEAP32[(HEAP32[(HEAP32[($9 + 720 | 0) >> 2] | 0) >> 2] | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$31 : { + if (!((HEAP32[((HEAP32[($9 + 492 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) > (HEAP32[($10 + 100 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$31 + } + btConvexHullInternal__Point32__operator__28btConvexHullInternal__Point32_20const__29_20const($9 + 464 | 0 | 0, (HEAP32[((HEAP32[($9 + 492 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 88 | 0 | 0, $9 + 680 | 0 | 0); + i64toi32_i32$2 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const($9 + 464 | 0 | 0, $9 + 576 | 0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $1846 = i64toi32_i32$2; + i64toi32_i32$2 = $9; + HEAP32[($9 + 480 | 0) >> 2] = $1846; + HEAP32[($9 + 484 | 0) >> 2] = i64toi32_i32$1; + btConvexHullInternal__Point32__operator__28btConvexHullInternal__Point32_20const__29_20const($9 + 440 | 0 | 0, (HEAP32[((HEAP32[($9 + 492 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 88 | 0 | 0, $9 + 680 | 0 | 0); + i64toi32_i32$1 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point32_20const__29_20const($9 + 440 | 0 | 0, $9 + 648 | 0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $1877 = i64toi32_i32$1; + i64toi32_i32$1 = $9; + HEAP32[($9 + 456 | 0) >> 2] = $1877; + HEAP32[($9 + 460 | 0) >> 2] = i64toi32_i32$2; + i64toi32_i32$0 = $9; + i64toi32_i32$2 = HEAP32[($9 + 480 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 484 | 0) >> 2] | 0; + $433$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $434$hi = i64toi32_i32$1; + i64toi32_i32$1 = $433$hi; + i64toi32_i32$1 = $434$hi; + i64toi32_i32$1 = $433$hi; + i64toi32_i32$1 = $434$hi; + i64toi32_i32$1 = $433$hi; + i64toi32_i32$0 = i64toi32_i32$2; + i64toi32_i32$2 = $434$hi; + i64toi32_i32$5 = 0; + label$32 : { + label$33 : { + if (!(((i64toi32_i32$0 | 0) == (i64toi32_i32$5 | 0) & (i64toi32_i32$1 | 0) == (i64toi32_i32$2 | 0) | 0) & 1 | 0)) { + break label$33 + } + i64toi32_i32$5 = $9; + i64toi32_i32$0 = HEAP32[($9 + 456 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 460 | 0) >> 2] | 0; + $440$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $441$hi = i64toi32_i32$1; + i64toi32_i32$1 = $440$hi; + i64toi32_i32$1 = $441$hi; + i64toi32_i32$1 = $440$hi; + i64toi32_i32$1 = $441$hi; + i64toi32_i32$1 = $440$hi; + i64toi32_i32$5 = i64toi32_i32$0; + i64toi32_i32$0 = $441$hi; + i64toi32_i32$2 = 0; + if ((i64toi32_i32$1 | 0) < (i64toi32_i32$0 | 0)) { + $205 = 1 + } else { + if ((i64toi32_i32$1 | 0) <= (i64toi32_i32$0 | 0)) { + if (i64toi32_i32$5 >>> 0 >= i64toi32_i32$2 >>> 0) { + $206 = 0 + } else { + $206 = 1 + } + $207 = $206; + } else { + $207 = 0 + } + $205 = $207; + } + $445 = $205; + break label$32; + } + i64toi32_i32$2 = $9; + i64toi32_i32$5 = HEAP32[($9 + 480 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 484 | 0) >> 2] | 0; + $446$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $447$hi = i64toi32_i32$1; + i64toi32_i32$1 = $446$hi; + i64toi32_i32$1 = $447$hi; + i64toi32_i32$1 = $446$hi; + i64toi32_i32$1 = $447$hi; + i64toi32_i32$1 = $446$hi; + i64toi32_i32$2 = i64toi32_i32$5; + i64toi32_i32$5 = $447$hi; + i64toi32_i32$0 = 0; + if ((i64toi32_i32$1 | 0) < (i64toi32_i32$5 | 0)) { + $208 = 1 + } else { + if ((i64toi32_i32$1 | 0) <= (i64toi32_i32$5 | 0)) { + if (i64toi32_i32$2 >>> 0 >= i64toi32_i32$0 >>> 0) { + $209 = 0 + } else { + $209 = 1 + } + $210 = $209; + } else { + $210 = 0 + } + $208 = $210; + } + $454 = 0; + label$34 : { + if (!($208 & 1 | 0)) { + break label$34 + } + i64toi32_i32$0 = $9; + i64toi32_i32$2 = HEAP32[($9 + 456 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 460 | 0) >> 2] | 0; + $455 = i64toi32_i32$2; + $455$hi = i64toi32_i32$1; + i64toi32_i32$0 = $9; + i64toi32_i32$1 = HEAP32[($9 + 480 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($9 + 484 | 0) >> 2] | 0; + $456$hi = i64toi32_i32$2; + i64toi32_i32$2 = $455$hi; + i64toi32_i32$2 = $456$hi; + $1921 = i64toi32_i32$1; + i64toi32_i32$2 = $455$hi; + i64toi32_i32$1 = $456$hi; + btConvexHullInternal__Rational64__Rational64_28long_20long_2c_20long_20long_29($9 + 416 | 0 | 0, $455 | 0, i64toi32_i32$2 | 0, $1921 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$0 = $9; + i64toi32_i32$1 = HEAP32[($9 + 512 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($9 + 516 | 0) >> 2] | 0; + $460 = i64toi32_i32$1; + $460$hi = i64toi32_i32$2; + i64toi32_i32$0 = $9; + i64toi32_i32$2 = HEAP32[($9 + 520 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 524 | 0) >> 2] | 0; + $461$hi = i64toi32_i32$1; + i64toi32_i32$1 = $460$hi; + i64toi32_i32$1 = $461$hi; + $1933 = i64toi32_i32$2; + i64toi32_i32$1 = $460$hi; + i64toi32_i32$2 = $461$hi; + btConvexHullInternal__Rational64__Rational64_28long_20long_2c_20long_20long_29($9 + 392 | 0 | 0, $460 | 0, i64toi32_i32$1 | 0, $1933 | 0, i64toi32_i32$2 | 0) | 0; + $454 = (btConvexHullInternal__Rational64__compare_28btConvexHullInternal__Rational64_20const__29_20const($9 + 416 | 0 | 0, $9 + 392 | 0 | 0) | 0 | 0) >= (0 | 0); + } + $445 = $454; + } + label$35 : { + if (!($445 & 1 | 0)) { + break label$35 + } + $483 = (HEAP32[((HEAP32[($9 + 492 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 88 | 0; + $484 = 8; + i64toi32_i32$0 = $483 + $484 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $1979 = i64toi32_i32$2; + i64toi32_i32$2 = ($9 + 680 | 0) + $484 | 0; + HEAP32[i64toi32_i32$2 >> 2] = $1979; + HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$0 = $483; + i64toi32_i32$1 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $1983 = i64toi32_i32$1; + i64toi32_i32$1 = $9; + HEAP32[($9 + 680 | 0) >> 2] = $1983; + HEAP32[($9 + 684 | 0) >> 2] = i64toi32_i32$2; + btConvexHullInternal__Point32__operator__28btConvexHullInternal__Point32_20const__29_20const($9 + 376 | 0 | 0, $9 + 664 | 0 | 0, $9 + 680 | 0 | 0); + i64toi32_i32$2 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const($9 + 376 | 0 | 0, $9 + 576 | 0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $2011 = i64toi32_i32$2; + i64toi32_i32$2 = $9; + HEAP32[($9 + 520 | 0) >> 2] = $2011; + HEAP32[($9 + 524 | 0) >> 2] = i64toi32_i32$1; + label$36 : { + label$37 : { + if (!((HEAP32[(HEAP32[($9 + 720 | 0) >> 2] | 0) >> 2] | 0 | 0) == (HEAP32[($9 + 704 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$37 + } + $516 = 0; + break label$36; + } + $516 = HEAP32[($9 + 492 | 0) >> 2] | 0; + } + HEAP32[(HEAP32[($9 + 720 | 0) >> 2] | 0) >> 2] = $516; + continue label$29; + } + } + } + if (!((HEAP32[(HEAP32[($9 + 716 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$25 + } + if (!((HEAP32[((HEAP32[(HEAP32[($9 + 716 | 0) >> 2] | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (HEAP32[($9 + 708 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$25 + } + HEAP32[($9 + 372 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[(HEAP32[($9 + 716 | 0) >> 2] | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0; + if (!((HEAP32[((HEAP32[($9 + 372 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) > (HEAP32[($10 + 100 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$26 + } + btConvexHullInternal__Point32__operator__28btConvexHullInternal__Point32_20const__29_20const($9 + 356 | 0 | 0, (HEAP32[((HEAP32[($9 + 372 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 88 | 0 | 0, $9 + 664 | 0 | 0); + i64toi32_i32$1 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const($9 + 356 | 0 | 0, $9 + 624 | 0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $565$hi = i64toi32_i32$2; + i64toi32_i32$2 = 0; + $566$hi = i64toi32_i32$2; + i64toi32_i32$2 = $565$hi; + i64toi32_i32$2 = $566$hi; + i64toi32_i32$2 = $565$hi; + i64toi32_i32$2 = $566$hi; + i64toi32_i32$2 = $565$hi; + i64toi32_i32$0 = i64toi32_i32$1; + i64toi32_i32$1 = $566$hi; + i64toi32_i32$5 = 0; + if (!(((i64toi32_i32$0 | 0) == (i64toi32_i32$5 | 0) & (i64toi32_i32$2 | 0) == (i64toi32_i32$1 | 0) | 0) & 1 | 0)) { + break label$28 + } + i64toi32_i32$0 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const($9 + 356 | 0 | 0, $9 + 576 | 0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $2146 = i64toi32_i32$0; + i64toi32_i32$0 = $9; + HEAP32[($9 + 344 | 0) >> 2] = $2146; + HEAP32[($9 + 348 | 0) >> 2] = i64toi32_i32$2; + i64toi32_i32$2 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point32_20const__29_20const($9 + 356 | 0 | 0, $9 + 648 | 0 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $2159 = i64toi32_i32$2; + i64toi32_i32$2 = $9; + HEAP32[($9 + 336 | 0) >> 2] = $2159; + HEAP32[($9 + 340 | 0) >> 2] = i64toi32_i32$0; + btConvexHullInternal__Point32__operator__28btConvexHullInternal__Point32_20const__29_20const($9 + 312 | 0 | 0, (HEAP32[((HEAP32[($9 + 372 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 88 | 0 | 0, $9 + 680 | 0 | 0); + i64toi32_i32$0 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const($9 + 312 | 0 | 0, $9 + 576 | 0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $2190 = i64toi32_i32$0; + i64toi32_i32$0 = $9; + HEAP32[($9 + 328 | 0) >> 2] = $2190; + HEAP32[($9 + 332 | 0) >> 2] = i64toi32_i32$2; + i64toi32_i32$5 = $9; + i64toi32_i32$2 = HEAP32[($9 + 328 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($9 + 332 | 0) >> 2] | 0; + $603$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $604$hi = i64toi32_i32$0; + i64toi32_i32$0 = $603$hi; + i64toi32_i32$0 = $604$hi; + i64toi32_i32$0 = $603$hi; + i64toi32_i32$0 = $604$hi; + i64toi32_i32$0 = $603$hi; + i64toi32_i32$5 = i64toi32_i32$2; + i64toi32_i32$2 = $604$hi; + i64toi32_i32$1 = 0; + if ((i64toi32_i32$0 | 0) > (i64toi32_i32$2 | 0)) { + $211 = 1 + } else { + if ((i64toi32_i32$0 | 0) >= (i64toi32_i32$2 | 0)) { + if (i64toi32_i32$5 >>> 0 <= i64toi32_i32$1 >>> 0) { + $212 = 0 + } else { + $212 = 1 + } + $213 = $212; + } else { + $213 = 0 + } + $211 = $213; + } + $611 = 0; + label$38 : { + if (!($211 & 1 | 0)) { + break label$38 + } + i64toi32_i32$1 = $9; + i64toi32_i32$5 = HEAP32[($9 + 344 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($9 + 348 | 0) >> 2] | 0; + $612$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $613$hi = i64toi32_i32$0; + i64toi32_i32$0 = $612$hi; + i64toi32_i32$0 = $613$hi; + i64toi32_i32$0 = $612$hi; + i64toi32_i32$0 = $613$hi; + i64toi32_i32$0 = $612$hi; + i64toi32_i32$1 = i64toi32_i32$5; + i64toi32_i32$5 = $613$hi; + i64toi32_i32$2 = 0; + label$39 : { + label$40 : { + if (!(((i64toi32_i32$1 | 0) == (i64toi32_i32$2 | 0) & (i64toi32_i32$0 | 0) == (i64toi32_i32$5 | 0) | 0) & 1 | 0)) { + break label$40 + } + i64toi32_i32$2 = $9; + i64toi32_i32$1 = HEAP32[($9 + 336 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($9 + 340 | 0) >> 2] | 0; + $619$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $620$hi = i64toi32_i32$0; + i64toi32_i32$0 = $619$hi; + i64toi32_i32$0 = $620$hi; + i64toi32_i32$0 = $619$hi; + i64toi32_i32$0 = $620$hi; + i64toi32_i32$0 = $619$hi; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$1 = $620$hi; + i64toi32_i32$5 = 0; + if ((i64toi32_i32$0 | 0) < (i64toi32_i32$1 | 0)) { + $214 = 1 + } else { + if ((i64toi32_i32$0 | 0) <= (i64toi32_i32$1 | 0)) { + if (i64toi32_i32$2 >>> 0 >= i64toi32_i32$5 >>> 0) { + $215 = 0 + } else { + $215 = 1 + } + $216 = $215; + } else { + $216 = 0 + } + $214 = $216; + } + $624 = $214; + break label$39; + } + i64toi32_i32$5 = $9; + i64toi32_i32$2 = HEAP32[($9 + 344 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($9 + 348 | 0) >> 2] | 0; + $625$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $626$hi = i64toi32_i32$0; + i64toi32_i32$0 = $625$hi; + i64toi32_i32$0 = $626$hi; + i64toi32_i32$0 = $625$hi; + i64toi32_i32$0 = $626$hi; + i64toi32_i32$0 = $625$hi; + i64toi32_i32$5 = i64toi32_i32$2; + i64toi32_i32$2 = $626$hi; + i64toi32_i32$1 = 0; + if ((i64toi32_i32$0 | 0) < (i64toi32_i32$2 | 0)) { + $217 = 1 + } else { + if ((i64toi32_i32$0 | 0) <= (i64toi32_i32$2 | 0)) { + if (i64toi32_i32$5 >>> 0 >= i64toi32_i32$1 >>> 0) { + $218 = 0 + } else { + $218 = 1 + } + $219 = $218; + } else { + $219 = 0 + } + $217 = $219; + } + $633 = 0; + label$41 : { + if (!($217 & 1 | 0)) { + break label$41 + } + i64toi32_i32$1 = $9; + i64toi32_i32$5 = HEAP32[($9 + 336 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($9 + 340 | 0) >> 2] | 0; + $634 = i64toi32_i32$5; + $634$hi = i64toi32_i32$0; + i64toi32_i32$1 = $9; + i64toi32_i32$0 = HEAP32[($9 + 344 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[($9 + 348 | 0) >> 2] | 0; + $635$hi = i64toi32_i32$5; + i64toi32_i32$5 = $634$hi; + i64toi32_i32$5 = $635$hi; + $2247 = i64toi32_i32$0; + i64toi32_i32$5 = $634$hi; + i64toi32_i32$0 = $635$hi; + btConvexHullInternal__Rational64__Rational64_28long_20long_2c_20long_20long_29($9 + 288 | 0 | 0, $634 | 0, i64toi32_i32$5 | 0, $2247 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$1 = $9; + i64toi32_i32$0 = HEAP32[($9 + 512 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[($9 + 516 | 0) >> 2] | 0; + $639 = i64toi32_i32$0; + $639$hi = i64toi32_i32$5; + i64toi32_i32$1 = $9; + i64toi32_i32$5 = HEAP32[($9 + 520 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($9 + 524 | 0) >> 2] | 0; + $640$hi = i64toi32_i32$0; + i64toi32_i32$0 = $639$hi; + i64toi32_i32$0 = $640$hi; + $2259 = i64toi32_i32$5; + i64toi32_i32$0 = $639$hi; + i64toi32_i32$5 = $640$hi; + btConvexHullInternal__Rational64__Rational64_28long_20long_2c_20long_20long_29($9 + 264 | 0 | 0, $639 | 0, i64toi32_i32$0 | 0, $2259 | 0, i64toi32_i32$5 | 0) | 0; + $633 = (btConvexHullInternal__Rational64__compare_28btConvexHullInternal__Rational64_20const__29_20const($9 + 288 | 0 | 0, $9 + 264 | 0 | 0) | 0 | 0) > (0 | 0); + } + $624 = $633; + } + $611 = $624; + } + label$42 : { + if (!($611 & 1 | 0)) { + break label$42 + } + HEAP32[(HEAP32[($9 + 716 | 0) >> 2] | 0) >> 2] = HEAP32[($9 + 372 | 0) >> 2] | 0; + $666 = (HEAP32[((HEAP32[(HEAP32[($9 + 716 | 0) >> 2] | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 88 | 0; + $667 = 8; + i64toi32_i32$1 = $666 + $667 | 0; + i64toi32_i32$5 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $2315 = i64toi32_i32$5; + i64toi32_i32$5 = ($9 + 664 | 0) + $667 | 0; + HEAP32[i64toi32_i32$5 >> 2] = $2315; + HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $666; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $2319 = i64toi32_i32$0; + i64toi32_i32$0 = $9; + HEAP32[($9 + 664 | 0) >> 2] = $2319; + HEAP32[($9 + 668 | 0) >> 2] = i64toi32_i32$5; + i64toi32_i32$1 = $9; + i64toi32_i32$5 = HEAP32[($9 + 328 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($9 + 332 | 0) >> 2] | 0; + $2323 = i64toi32_i32$5; + i64toi32_i32$5 = $9; + HEAP32[($9 + 520 | 0) >> 2] = $2323; + HEAP32[($9 + 524 | 0) >> 2] = i64toi32_i32$0; + continue label$29; + } + break label$29; + }; + break label$27; + } + label$43 : { + label$44 : { + if (!((HEAP32[(HEAP32[($9 + 716 | 0) >> 2] | 0) >> 2] | 0 | 0) == (HEAP32[($9 + 700 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$44 + } + i64toi32_i32$0 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const($9 + 356 | 0 | 0, $9 + 624 | 0 | 0) | 0; + i64toi32_i32$5 = i64toi32_i32$HIGH_BITS; + $689$hi = i64toi32_i32$5; + i64toi32_i32$5 = 0; + $690$hi = i64toi32_i32$5; + i64toi32_i32$5 = $689$hi; + i64toi32_i32$5 = $690$hi; + i64toi32_i32$5 = $689$hi; + i64toi32_i32$5 = $690$hi; + i64toi32_i32$5 = $689$hi; + i64toi32_i32$1 = i64toi32_i32$0; + i64toi32_i32$0 = $690$hi; + i64toi32_i32$2 = 0; + if ((i64toi32_i32$5 | 0) < (i64toi32_i32$0 | 0)) { + $220 = 1 + } else { + if ((i64toi32_i32$5 | 0) <= (i64toi32_i32$0 | 0)) { + if (i64toi32_i32$1 >>> 0 >= i64toi32_i32$2 >>> 0) { + $221 = 0 + } else { + $221 = 1 + } + $222 = $221; + } else { + $222 = 0 + } + $220 = $222; + } + if ($220 & 1 | 0) { + break label$43 + } + } + __assert_fail(86764 | 0, 72732 | 0, 1594 | 0, 70286 | 0); + wasm2js_trap(); + } + } + } + } + break label$23; + } + i64toi32_i32$2 = $9; + i64toi32_i32$1 = HEAP32[($9 + 520 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[($9 + 524 | 0) >> 2] | 0; + $700$hi = i64toi32_i32$5; + i64toi32_i32$5 = 0; + $701$hi = i64toi32_i32$5; + i64toi32_i32$5 = $700$hi; + i64toi32_i32$5 = $701$hi; + i64toi32_i32$5 = $700$hi; + i64toi32_i32$5 = $701$hi; + i64toi32_i32$5 = $700$hi; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$1 = $701$hi; + i64toi32_i32$0 = 0; + if ((i64toi32_i32$5 | 0) < (i64toi32_i32$1 | 0)) { + $223 = 1 + } else { + if ((i64toi32_i32$5 | 0) <= (i64toi32_i32$1 | 0)) { + if (i64toi32_i32$2 >>> 0 >= i64toi32_i32$0 >>> 0) { + $224 = 0 + } else { + $224 = 1 + } + $225 = $224; + } else { + $225 = 0 + } + $223 = $225; + } + label$45 : { + if (!($223 & 1 | 0)) { + break label$45 + } + label$46 : { + label$47 : { + label$48 : { + label$49 : { + label$50 : while (1) { + btConvexHullInternal__Point32__operator__28btConvexHullInternal__Point32_20const__29_20const($9 + 240 | 0 | 0, $9 + 664 | 0 | 0, $9 + 680 | 0 | 0); + i64toi32_i32$2 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point32_20const__29_20const($9 + 240 | 0 | 0, $9 + 648 | 0 | 0) | 0; + i64toi32_i32$5 = i64toi32_i32$HIGH_BITS; + $2403 = i64toi32_i32$2; + i64toi32_i32$2 = $9; + HEAP32[($9 + 256 | 0) >> 2] = $2403; + HEAP32[($9 + 260 | 0) >> 2] = i64toi32_i32$5; + label$51 : { + if (!((HEAP32[(HEAP32[($9 + 716 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$51 + } + if (!((HEAP32[((HEAP32[(HEAP32[($9 + 716 | 0) >> 2] | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (HEAP32[($9 + 708 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$51 + } + HEAP32[($9 + 236 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[(HEAP32[($9 + 716 | 0) >> 2] | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$52 : { + if (!((HEAP32[((HEAP32[($9 + 236 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) > (HEAP32[($10 + 100 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$52 + } + btConvexHullInternal__Point32__operator__28btConvexHullInternal__Point32_20const__29_20const($9 + 208 | 0 | 0, (HEAP32[((HEAP32[($9 + 236 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 88 | 0 | 0, $9 + 664 | 0 | 0); + i64toi32_i32$5 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const($9 + 208 | 0 | 0, $9 + 576 | 0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $2492 = i64toi32_i32$5; + i64toi32_i32$5 = $9; + HEAP32[($9 + 224 | 0) >> 2] = $2492; + HEAP32[($9 + 228 | 0) >> 2] = i64toi32_i32$2; + btConvexHullInternal__Point32__operator__28btConvexHullInternal__Point32_20const__29_20const($9 + 184 | 0 | 0, (HEAP32[((HEAP32[($9 + 236 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 88 | 0 | 0, $9 + 664 | 0 | 0); + i64toi32_i32$2 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point32_20const__29_20const($9 + 184 | 0 | 0, $9 + 648 | 0 | 0) | 0; + i64toi32_i32$5 = i64toi32_i32$HIGH_BITS; + $2523 = i64toi32_i32$2; + i64toi32_i32$2 = $9; + HEAP32[($9 + 200 | 0) >> 2] = $2523; + HEAP32[($9 + 204 | 0) >> 2] = i64toi32_i32$5; + i64toi32_i32$0 = $9; + i64toi32_i32$5 = HEAP32[($9 + 224 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($9 + 228 | 0) >> 2] | 0; + $786$hi = i64toi32_i32$2; + i64toi32_i32$2 = 0; + $787$hi = i64toi32_i32$2; + i64toi32_i32$2 = $786$hi; + i64toi32_i32$2 = $787$hi; + i64toi32_i32$2 = $786$hi; + i64toi32_i32$2 = $787$hi; + i64toi32_i32$2 = $786$hi; + i64toi32_i32$0 = i64toi32_i32$5; + i64toi32_i32$5 = $787$hi; + i64toi32_i32$1 = 0; + label$53 : { + label$54 : { + if (!(((i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) & (i64toi32_i32$2 | 0) == (i64toi32_i32$5 | 0) | 0) & 1 | 0)) { + break label$54 + } + i64toi32_i32$1 = $9; + i64toi32_i32$0 = HEAP32[($9 + 200 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($9 + 204 | 0) >> 2] | 0; + $793$hi = i64toi32_i32$2; + i64toi32_i32$2 = 0; + $794$hi = i64toi32_i32$2; + i64toi32_i32$2 = $793$hi; + i64toi32_i32$2 = $794$hi; + i64toi32_i32$2 = $793$hi; + i64toi32_i32$2 = $794$hi; + i64toi32_i32$2 = $793$hi; + i64toi32_i32$1 = i64toi32_i32$0; + i64toi32_i32$0 = $794$hi; + i64toi32_i32$5 = 0; + if ((i64toi32_i32$2 | 0) > (i64toi32_i32$0 | 0)) { + $227 = 1 + } else { + if ((i64toi32_i32$2 | 0) >= (i64toi32_i32$0 | 0)) { + if (i64toi32_i32$1 >>> 0 <= i64toi32_i32$5 >>> 0) { + $228 = 0 + } else { + $228 = 1 + } + $229 = $228; + } else { + $229 = 0 + } + $227 = $229; + } + $798 = $227; + break label$53; + } + i64toi32_i32$5 = $9; + i64toi32_i32$1 = HEAP32[($9 + 224 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($9 + 228 | 0) >> 2] | 0; + $799$hi = i64toi32_i32$2; + i64toi32_i32$2 = 0; + $800$hi = i64toi32_i32$2; + i64toi32_i32$2 = $799$hi; + i64toi32_i32$2 = $800$hi; + i64toi32_i32$2 = $799$hi; + i64toi32_i32$2 = $800$hi; + i64toi32_i32$2 = $799$hi; + i64toi32_i32$5 = i64toi32_i32$1; + i64toi32_i32$1 = $800$hi; + i64toi32_i32$0 = 0; + if ((i64toi32_i32$2 | 0) < (i64toi32_i32$1 | 0)) { + $230 = 1 + } else { + if ((i64toi32_i32$2 | 0) <= (i64toi32_i32$1 | 0)) { + if (i64toi32_i32$5 >>> 0 >= i64toi32_i32$0 >>> 0) { + $231 = 0 + } else { + $231 = 1 + } + $232 = $231; + } else { + $232 = 0 + } + $230 = $232; + } + $807 = 0; + label$55 : { + if (!($230 & 1 | 0)) { + break label$55 + } + i64toi32_i32$0 = $9; + i64toi32_i32$5 = HEAP32[($9 + 200 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($9 + 204 | 0) >> 2] | 0; + $808 = i64toi32_i32$5; + $808$hi = i64toi32_i32$2; + i64toi32_i32$0 = $9; + i64toi32_i32$2 = HEAP32[($9 + 224 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[($9 + 228 | 0) >> 2] | 0; + $809$hi = i64toi32_i32$5; + i64toi32_i32$5 = $808$hi; + i64toi32_i32$5 = $809$hi; + $2567 = i64toi32_i32$2; + i64toi32_i32$5 = $808$hi; + i64toi32_i32$2 = $809$hi; + btConvexHullInternal__Rational64__Rational64_28long_20long_2c_20long_20long_29($9 + 160 | 0 | 0, $808 | 0, i64toi32_i32$5 | 0, $2567 | 0, i64toi32_i32$2 | 0) | 0; + i64toi32_i32$0 = $9; + i64toi32_i32$2 = HEAP32[($9 + 256 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[($9 + 260 | 0) >> 2] | 0; + $813 = i64toi32_i32$2; + $813$hi = i64toi32_i32$5; + i64toi32_i32$0 = $9; + i64toi32_i32$5 = HEAP32[($9 + 520 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($9 + 524 | 0) >> 2] | 0; + $814$hi = i64toi32_i32$2; + i64toi32_i32$2 = $813$hi; + i64toi32_i32$2 = $814$hi; + $2579 = i64toi32_i32$5; + i64toi32_i32$2 = $813$hi; + i64toi32_i32$5 = $814$hi; + btConvexHullInternal__Rational64__Rational64_28long_20long_2c_20long_20long_29($9 + 136 | 0 | 0, $813 | 0, i64toi32_i32$2 | 0, $2579 | 0, i64toi32_i32$5 | 0) | 0; + $807 = (btConvexHullInternal__Rational64__compare_28btConvexHullInternal__Rational64_20const__29_20const($9 + 160 | 0 | 0, $9 + 136 | 0 | 0) | 0 | 0) <= (0 | 0); + } + $798 = $807; + } + label$56 : { + if (!($798 & 1 | 0)) { + break label$56 + } + $836 = (HEAP32[((HEAP32[($9 + 236 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 88 | 0; + $837 = 8; + i64toi32_i32$0 = $836 + $837 | 0; + i64toi32_i32$5 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $2625 = i64toi32_i32$5; + i64toi32_i32$5 = ($9 + 664 | 0) + $837 | 0; + HEAP32[i64toi32_i32$5 >> 2] = $2625; + HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] = i64toi32_i32$2; + i64toi32_i32$0 = $836; + i64toi32_i32$2 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $2629 = i64toi32_i32$2; + i64toi32_i32$2 = $9; + HEAP32[($9 + 664 | 0) >> 2] = $2629; + HEAP32[($9 + 668 | 0) >> 2] = i64toi32_i32$5; + btConvexHullInternal__Point32__operator__28btConvexHullInternal__Point32_20const__29_20const($9 + 120 | 0 | 0, $9 + 664 | 0 | 0, $9 + 680 | 0 | 0); + i64toi32_i32$5 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const($9 + 120 | 0 | 0, $9 + 576 | 0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $2657 = i64toi32_i32$5; + i64toi32_i32$5 = $9; + HEAP32[($9 + 520 | 0) >> 2] = $2657; + HEAP32[($9 + 524 | 0) >> 2] = i64toi32_i32$2; + label$57 : { + label$58 : { + if (!((HEAP32[(HEAP32[($9 + 716 | 0) >> 2] | 0) >> 2] | 0 | 0) == (HEAP32[($9 + 700 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$58 + } + $869 = 0; + break label$57; + } + $869 = HEAP32[($9 + 236 | 0) >> 2] | 0; + } + HEAP32[(HEAP32[($9 + 716 | 0) >> 2] | 0) >> 2] = $869; + continue label$50; + } + } + } + if (!((HEAP32[(HEAP32[($9 + 720 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$46 + } + if (!((HEAP32[((HEAP32[(HEAP32[($9 + 720 | 0) >> 2] | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (HEAP32[($9 + 712 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$46 + } + HEAP32[($9 + 116 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[(HEAP32[($9 + 720 | 0) >> 2] | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + if (!((HEAP32[((HEAP32[($9 + 116 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) > (HEAP32[($10 + 100 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$47 + } + btConvexHullInternal__Point32__operator__28btConvexHullInternal__Point32_20const__29_20const($9 + 100 | 0 | 0, (HEAP32[((HEAP32[($9 + 116 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 88 | 0 | 0, $9 + 680 | 0 | 0); + i64toi32_i32$2 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const($9 + 100 | 0 | 0, $9 + 624 | 0 | 0) | 0; + i64toi32_i32$5 = i64toi32_i32$HIGH_BITS; + $918$hi = i64toi32_i32$5; + i64toi32_i32$5 = 0; + $919$hi = i64toi32_i32$5; + i64toi32_i32$5 = $918$hi; + i64toi32_i32$5 = $919$hi; + i64toi32_i32$5 = $918$hi; + i64toi32_i32$5 = $919$hi; + i64toi32_i32$5 = $918$hi; + i64toi32_i32$0 = i64toi32_i32$2; + i64toi32_i32$2 = $919$hi; + i64toi32_i32$1 = 0; + if (!(((i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) & (i64toi32_i32$5 | 0) == (i64toi32_i32$2 | 0) | 0) & 1 | 0)) { + break label$49 + } + i64toi32_i32$0 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const($9 + 100 | 0 | 0, $9 + 576 | 0 | 0) | 0; + i64toi32_i32$5 = i64toi32_i32$HIGH_BITS; + $2792 = i64toi32_i32$0; + i64toi32_i32$0 = $9; + HEAP32[($9 + 88 | 0) >> 2] = $2792; + HEAP32[($9 + 92 | 0) >> 2] = i64toi32_i32$5; + i64toi32_i32$5 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point32_20const__29_20const($9 + 100 | 0 | 0, $9 + 648 | 0 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $2805 = i64toi32_i32$5; + i64toi32_i32$5 = $9; + HEAP32[($9 + 80 | 0) >> 2] = $2805; + HEAP32[($9 + 84 | 0) >> 2] = i64toi32_i32$0; + btConvexHullInternal__Point32__operator__28btConvexHullInternal__Point32_20const__29_20const($9 + 56 | 0 | 0, $9 + 664 | 0 | 0, (HEAP32[((HEAP32[($9 + 116 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 88 | 0 | 0); + i64toi32_i32$0 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const($9 + 56 | 0 | 0, $9 + 576 | 0 | 0) | 0; + i64toi32_i32$5 = i64toi32_i32$HIGH_BITS; + $2836 = i64toi32_i32$0; + i64toi32_i32$0 = $9; + HEAP32[($9 + 72 | 0) >> 2] = $2836; + HEAP32[($9 + 76 | 0) >> 2] = i64toi32_i32$5; + i64toi32_i32$1 = $9; + i64toi32_i32$5 = HEAP32[($9 + 72 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($9 + 76 | 0) >> 2] | 0; + $956$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $957$hi = i64toi32_i32$0; + i64toi32_i32$0 = $956$hi; + i64toi32_i32$0 = $957$hi; + i64toi32_i32$0 = $956$hi; + i64toi32_i32$0 = $957$hi; + i64toi32_i32$0 = $956$hi; + i64toi32_i32$1 = i64toi32_i32$5; + i64toi32_i32$5 = $957$hi; + i64toi32_i32$2 = 0; + if ((i64toi32_i32$0 | 0) < (i64toi32_i32$5 | 0)) { + $233 = 1 + } else { + if ((i64toi32_i32$0 | 0) <= (i64toi32_i32$5 | 0)) { + if (i64toi32_i32$1 >>> 0 >= i64toi32_i32$2 >>> 0) { + $234 = 0 + } else { + $234 = 1 + } + $235 = $234; + } else { + $235 = 0 + } + $233 = $235; + } + $964 = 0; + label$59 : { + if (!($233 & 1 | 0)) { + break label$59 + } + i64toi32_i32$2 = $9; + i64toi32_i32$1 = HEAP32[($9 + 88 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($9 + 92 | 0) >> 2] | 0; + $965$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $966$hi = i64toi32_i32$0; + i64toi32_i32$0 = $965$hi; + i64toi32_i32$0 = $966$hi; + i64toi32_i32$0 = $965$hi; + i64toi32_i32$0 = $966$hi; + i64toi32_i32$0 = $965$hi; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$1 = $966$hi; + i64toi32_i32$5 = 0; + label$60 : { + label$61 : { + if (!(((i64toi32_i32$2 | 0) == (i64toi32_i32$5 | 0) & (i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) | 0) & 1 | 0)) { + break label$61 + } + i64toi32_i32$5 = $9; + i64toi32_i32$2 = HEAP32[($9 + 80 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($9 + 84 | 0) >> 2] | 0; + $972$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $973$hi = i64toi32_i32$0; + i64toi32_i32$0 = $972$hi; + i64toi32_i32$0 = $973$hi; + i64toi32_i32$0 = $972$hi; + i64toi32_i32$0 = $973$hi; + i64toi32_i32$0 = $972$hi; + i64toi32_i32$5 = i64toi32_i32$2; + i64toi32_i32$2 = $973$hi; + i64toi32_i32$1 = 0; + if ((i64toi32_i32$0 | 0) > (i64toi32_i32$2 | 0)) { + $236 = 1 + } else { + if ((i64toi32_i32$0 | 0) >= (i64toi32_i32$2 | 0)) { + if (i64toi32_i32$5 >>> 0 <= i64toi32_i32$1 >>> 0) { + $237 = 0 + } else { + $237 = 1 + } + $238 = $237; + } else { + $238 = 0 + } + $236 = $238; + } + $977 = $236; + break label$60; + } + i64toi32_i32$1 = $9; + i64toi32_i32$5 = HEAP32[($9 + 88 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($9 + 92 | 0) >> 2] | 0; + $978$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $979$hi = i64toi32_i32$0; + i64toi32_i32$0 = $978$hi; + i64toi32_i32$0 = $979$hi; + i64toi32_i32$0 = $978$hi; + i64toi32_i32$0 = $979$hi; + i64toi32_i32$0 = $978$hi; + i64toi32_i32$1 = i64toi32_i32$5; + i64toi32_i32$5 = $979$hi; + i64toi32_i32$2 = 0; + if ((i64toi32_i32$0 | 0) < (i64toi32_i32$5 | 0)) { + $241 = 1 + } else { + if ((i64toi32_i32$0 | 0) <= (i64toi32_i32$5 | 0)) { + if (i64toi32_i32$1 >>> 0 >= i64toi32_i32$2 >>> 0) { + $242 = 0 + } else { + $242 = 1 + } + $243 = $242; + } else { + $243 = 0 + } + $241 = $243; + } + $986 = 0; + label$62 : { + if (!($241 & 1 | 0)) { + break label$62 + } + i64toi32_i32$2 = $9; + i64toi32_i32$1 = HEAP32[($9 + 80 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($9 + 84 | 0) >> 2] | 0; + $987 = i64toi32_i32$1; + $987$hi = i64toi32_i32$0; + i64toi32_i32$2 = $9; + i64toi32_i32$0 = HEAP32[($9 + 88 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 92 | 0) >> 2] | 0; + $988$hi = i64toi32_i32$1; + i64toi32_i32$1 = $987$hi; + i64toi32_i32$1 = $988$hi; + $2893 = i64toi32_i32$0; + i64toi32_i32$1 = $987$hi; + i64toi32_i32$0 = $988$hi; + btConvexHullInternal__Rational64__Rational64_28long_20long_2c_20long_20long_29($9 + 32 | 0 | 0, $987 | 0, i64toi32_i32$1 | 0, $2893 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$2 = $9; + i64toi32_i32$0 = HEAP32[($9 + 256 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 260 | 0) >> 2] | 0; + $992 = i64toi32_i32$0; + $992$hi = i64toi32_i32$1; + i64toi32_i32$2 = $9; + i64toi32_i32$1 = HEAP32[($9 + 520 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($9 + 524 | 0) >> 2] | 0; + $993$hi = i64toi32_i32$0; + i64toi32_i32$0 = $992$hi; + i64toi32_i32$0 = $993$hi; + $2905 = i64toi32_i32$1; + i64toi32_i32$0 = $992$hi; + i64toi32_i32$1 = $993$hi; + btConvexHullInternal__Rational64__Rational64_28long_20long_2c_20long_20long_29($9 + 8 | 0 | 0, $992 | 0, i64toi32_i32$0 | 0, $2905 | 0, i64toi32_i32$1 | 0) | 0; + $986 = (btConvexHullInternal__Rational64__compare_28btConvexHullInternal__Rational64_20const__29_20const($9 + 32 | 0 | 0, $9 + 8 | 0 | 0) | 0 | 0) < (0 | 0); + } + $977 = $986; + } + $964 = $977; + } + label$63 : { + if (!($964 & 1 | 0)) { + break label$63 + } + HEAP32[(HEAP32[($9 + 720 | 0) >> 2] | 0) >> 2] = HEAP32[($9 + 116 | 0) >> 2] | 0; + $1019 = (HEAP32[((HEAP32[(HEAP32[($9 + 720 | 0) >> 2] | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 88 | 0; + $1020 = 8; + i64toi32_i32$2 = $1019 + $1020 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2961 = i64toi32_i32$1; + i64toi32_i32$1 = ($9 + 680 | 0) + $1020 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $2961; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $1019; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2965 = i64toi32_i32$0; + i64toi32_i32$0 = $9; + HEAP32[($9 + 680 | 0) >> 2] = $2965; + HEAP32[($9 + 684 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $9; + i64toi32_i32$1 = HEAP32[($9 + 72 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($9 + 76 | 0) >> 2] | 0; + $2969 = i64toi32_i32$1; + i64toi32_i32$1 = $9; + HEAP32[($9 + 520 | 0) >> 2] = $2969; + HEAP32[($9 + 524 | 0) >> 2] = i64toi32_i32$0; + continue label$50; + } + break label$50; + }; + break label$48; + } + label$64 : { + label$65 : { + if (!((HEAP32[(HEAP32[($9 + 720 | 0) >> 2] | 0) >> 2] | 0 | 0) == (HEAP32[($9 + 704 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$65 + } + i64toi32_i32$0 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const($9 + 100 | 0 | 0, $9 + 624 | 0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $1042$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $1043$hi = i64toi32_i32$1; + i64toi32_i32$1 = $1042$hi; + i64toi32_i32$1 = $1043$hi; + i64toi32_i32$1 = $1042$hi; + i64toi32_i32$1 = $1043$hi; + i64toi32_i32$1 = $1042$hi; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$0 = $1043$hi; + i64toi32_i32$5 = 0; + if ((i64toi32_i32$1 | 0) < (i64toi32_i32$0 | 0)) { + $244 = 1 + } else { + if ((i64toi32_i32$1 | 0) <= (i64toi32_i32$0 | 0)) { + if (i64toi32_i32$2 >>> 0 >= i64toi32_i32$5 >>> 0) { + $245 = 0 + } else { + $245 = 1 + } + $246 = $245; + } else { + $246 = 0 + } + $244 = $246; + } + if ($244 & 1 | 0) { + break label$64 + } + } + __assert_fail(86803 | 0, 72732 | 0, 1646 | 0, 70286 | 0); + wasm2js_trap(); + } + } + } + } + } + } + __stack_pointer = $9 + 736 | 0; + return; + } + + function btConvexHullInternal__Point32__operator__28btConvexHullInternal__Point32_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $1; + HEAP32[($5 + 8 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btConvexHullInternal__Point32__Point32_28int_2c_20int_2c_20int_29($0 | 0, (HEAP32[$6 >> 2] | 0) - (HEAP32[(HEAP32[($5 + 8 | 0) >> 2] | 0) >> 2] | 0) | 0 | 0, (HEAP32[($6 + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0 | 0, (HEAP32[($6 + 8 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) | 0 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return; + } + + function btConvexHullInternal__Rational64__Rational64_28long_20long_2c_20long_20long_29($0, $1, $1$hi, $2, $2$hi) { + $0 = $0 | 0; + $1 = $1 | 0; + $1$hi = $1$hi | 0; + $2 = $2 | 0; + $2$hi = $2$hi | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$5 = 0, $5 = 0, $6 = 0, i64toi32_i32$3 = 0, i64toi32_i32$4 = 0, $7$hi = 0, $8$hi = 0, $16$hi = 0, $17$hi = 0, i64toi32_i32$6 = 0, $29$hi = 0, $30$hi = 0, $37$hi = 0, $38$hi = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $24$hi = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $47$hi = 0, $83 = 0, $100$hi = 0, $101 = 0, $124 = 0, $146$hi = 0, $147 = 0; + $5 = __stack_pointer - 32 | 0; + HEAP32[($5 + 24 | 0) >> 2] = $0; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$1 = $5; + HEAP32[(i64toi32_i32$1 + 16 | 0) >> 2] = $1; + HEAP32[(i64toi32_i32$1 + 20 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$0 = $2$hi; + HEAP32[(i64toi32_i32$1 + 8 | 0) >> 2] = $2; + HEAP32[(i64toi32_i32$1 + 12 | 0) >> 2] = i64toi32_i32$0; + $6 = HEAP32[(i64toi32_i32$1 + 24 | 0) >> 2] | 0; + HEAP32[(i64toi32_i32$1 + 28 | 0) >> 2] = $6; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 16 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 20 | 0) >> 2] | 0; + $7$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $8$hi = i64toi32_i32$1; + i64toi32_i32$1 = $7$hi; + i64toi32_i32$1 = $8$hi; + i64toi32_i32$1 = $7$hi; + i64toi32_i32$1 = $8$hi; + i64toi32_i32$1 = $7$hi; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$0 = $8$hi; + i64toi32_i32$3 = 0; + if ((i64toi32_i32$1 | 0) > (i64toi32_i32$0 | 0)) { + $30 = 1 + } else { + if ((i64toi32_i32$1 | 0) >= (i64toi32_i32$0 | 0)) { + if (i64toi32_i32$2 >>> 0 <= i64toi32_i32$3 >>> 0) { + $31 = 0 + } else { + $31 = 1 + } + $32 = $31; + } else { + $32 = 0 + } + $30 = $32; + } + label$1 : { + label$2 : { + if (!($30 & 1 | 0)) { + break label$2 + } + HEAP32[($6 + 16 | 0) >> 2] = 1; + i64toi32_i32$3 = $5; + i64toi32_i32$2 = HEAP32[($5 + 16 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 20 | 0) >> 2] | 0; + $83 = i64toi32_i32$2; + i64toi32_i32$2 = $6; + HEAP32[i64toi32_i32$2 >> 2] = $83; + HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] = i64toi32_i32$1; + break label$1; + } + i64toi32_i32$3 = $5; + i64toi32_i32$1 = HEAP32[($5 + 16 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($5 + 20 | 0) >> 2] | 0; + $16$hi = i64toi32_i32$2; + i64toi32_i32$2 = 0; + $17$hi = i64toi32_i32$2; + i64toi32_i32$2 = $16$hi; + i64toi32_i32$2 = $17$hi; + i64toi32_i32$2 = $16$hi; + i64toi32_i32$2 = $17$hi; + i64toi32_i32$2 = $16$hi; + i64toi32_i32$3 = i64toi32_i32$1; + i64toi32_i32$1 = $17$hi; + i64toi32_i32$0 = 0; + if ((i64toi32_i32$2 | 0) < (i64toi32_i32$1 | 0)) { + $33 = 1 + } else { + if ((i64toi32_i32$2 | 0) <= (i64toi32_i32$1 | 0)) { + if (i64toi32_i32$3 >>> 0 >= i64toi32_i32$0 >>> 0) { + $34 = 0 + } else { + $34 = 1 + } + $35 = $34; + } else { + $35 = 0 + } + $33 = $35; + } + label$3 : { + label$4 : { + if (!($33 & 1 | 0)) { + break label$4 + } + HEAP32[($6 + 16 | 0) >> 2] = -1; + i64toi32_i32$0 = $5; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$0 + 16 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$0 + 20 | 0) >> 2] | 0; + $24$hi = i64toi32_i32$2; + i64toi32_i32$2 = 0; + $100$hi = i64toi32_i32$2; + i64toi32_i32$2 = $24$hi; + $101 = i64toi32_i32$3; + i64toi32_i32$2 = $100$hi; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = $24$hi; + i64toi32_i32$1 = $101; + i64toi32_i32$4 = i64toi32_i32$0 - i64toi32_i32$1 | 0; + i64toi32_i32$6 = i64toi32_i32$0 >>> 0 < i64toi32_i32$1 >>> 0; + i64toi32_i32$5 = i64toi32_i32$6 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0; + i64toi32_i32$0 = $6; + HEAP32[i64toi32_i32$0 >> 2] = i64toi32_i32$4; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$5; + break label$3; + } + HEAP32[($6 + 16 | 0) >> 2] = 0; + i64toi32_i32$5 = 0; + i64toi32_i32$0 = $6; + HEAP32[i64toi32_i32$0 >> 2] = 0; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$5; + } + } + i64toi32_i32$2 = $5; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$2 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 12 | 0) >> 2] | 0; + $29$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $30$hi = i64toi32_i32$0; + i64toi32_i32$0 = $29$hi; + i64toi32_i32$0 = $30$hi; + i64toi32_i32$0 = $29$hi; + i64toi32_i32$0 = $30$hi; + i64toi32_i32$0 = $29$hi; + i64toi32_i32$2 = i64toi32_i32$5; + i64toi32_i32$5 = $30$hi; + i64toi32_i32$1 = 0; + if ((i64toi32_i32$0 | 0) > (i64toi32_i32$5 | 0)) { + $36 = 1 + } else { + if ((i64toi32_i32$0 | 0) >= (i64toi32_i32$5 | 0)) { + if (i64toi32_i32$2 >>> 0 <= i64toi32_i32$1 >>> 0) { + $37 = 0 + } else { + $37 = 1 + } + $38 = $37; + } else { + $38 = 0 + } + $36 = $38; + } + label$5 : { + label$6 : { + if (!($36 & 1 | 0)) { + break label$6 + } + i64toi32_i32$1 = $5; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$1 + 12 | 0) >> 2] | 0; + $124 = i64toi32_i32$2; + i64toi32_i32$2 = $6; + HEAP32[(i64toi32_i32$2 + 8 | 0) >> 2] = $124; + HEAP32[(i64toi32_i32$2 + 12 | 0) >> 2] = i64toi32_i32$0; + break label$5; + } + i64toi32_i32$1 = $5; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$1 + 8 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 12 | 0) >> 2] | 0; + $37$hi = i64toi32_i32$2; + i64toi32_i32$2 = 0; + $38$hi = i64toi32_i32$2; + i64toi32_i32$2 = $37$hi; + i64toi32_i32$2 = $38$hi; + i64toi32_i32$2 = $37$hi; + i64toi32_i32$2 = $38$hi; + i64toi32_i32$2 = $37$hi; + i64toi32_i32$1 = i64toi32_i32$0; + i64toi32_i32$0 = $38$hi; + i64toi32_i32$5 = 0; + if ((i64toi32_i32$2 | 0) < (i64toi32_i32$0 | 0)) { + $39 = 1 + } else { + if ((i64toi32_i32$2 | 0) <= (i64toi32_i32$0 | 0)) { + if (i64toi32_i32$1 >>> 0 >= i64toi32_i32$5 >>> 0) { + $40 = 0 + } else { + $40 = 1 + } + $41 = $40; + } else { + $41 = 0 + } + $39 = $41; + } + label$7 : { + label$8 : { + if (!($39 & 1 | 0)) { + break label$8 + } + HEAP32[($6 + 16 | 0) >> 2] = 0 - (HEAP32[($6 + 16 | 0) >> 2] | 0) | 0; + i64toi32_i32$5 = $5; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$5 + 8 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$5 + 12 | 0) >> 2] | 0; + $47$hi = i64toi32_i32$2; + i64toi32_i32$2 = 0; + $146$hi = i64toi32_i32$2; + i64toi32_i32$2 = $47$hi; + $147 = i64toi32_i32$1; + i64toi32_i32$2 = $146$hi; + i64toi32_i32$5 = 0; + i64toi32_i32$1 = $47$hi; + i64toi32_i32$0 = $147; + i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$0 | 0; + i64toi32_i32$6 = i64toi32_i32$5 >>> 0 < i64toi32_i32$0 >>> 0; + i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0; + i64toi32_i32$4 = i64toi32_i32$2 - i64toi32_i32$4 | 0; + i64toi32_i32$5 = $6; + HEAP32[(i64toi32_i32$5 + 8 | 0) >> 2] = i64toi32_i32$3; + HEAP32[(i64toi32_i32$5 + 12 | 0) >> 2] = i64toi32_i32$4; + break label$7; + } + i64toi32_i32$4 = 0; + i64toi32_i32$5 = $6; + HEAP32[(i64toi32_i32$5 + 8 | 0) >> 2] = 0; + HEAP32[(i64toi32_i32$5 + 12 | 0) >> 2] = i64toi32_i32$4; + } + } + return HEAP32[($5 + 28 | 0) >> 2] | 0 | 0; + } + + function btConvexHullInternal__findMaxAngle_28bool_2c_20btConvexHullInternal__Vertex_20const__2c_20btConvexHullInternal__Point32_20const__2c_20btConvexHullInternal__Point64_20const__2c_20btConvexHullInternal__Point64_20const__2c_20btConvexHullInternal__Rational64__29($0, $1, $2, $3, $4, $5, $6) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + var $9 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, i64toi32_i32$2 = 0, $62$hi = 0, $63$hi = 0, $73$hi = 0, $74$hi = 0, $40$hi = 0, $45$hi = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $91 = 0, $93 = 0, $99 = 0, $110 = 0, $117 = 0, $119 = 0, $125 = 0, $11 = 0, $40 = 0, $263 = 0, $340 = 0, $366 = 0, $397 = 0, $423 = 0, $165 = 0; + $9 = __stack_pointer - 96 | 0; + __stack_pointer = $9; + HEAP32[($9 + 92 | 0) >> 2] = $0; + HEAP8[($9 + 91 | 0) >> 0] = $1; + HEAP32[($9 + 84 | 0) >> 2] = $2; + HEAP32[($9 + 80 | 0) >> 2] = $3; + HEAP32[($9 + 76 | 0) >> 2] = $4; + HEAP32[($9 + 72 | 0) >> 2] = $5; + HEAP32[($9 + 68 | 0) >> 2] = $6; + $11 = HEAP32[($9 + 92 | 0) >> 2] | 0; + HEAP32[($9 + 64 | 0) >> 2] = 0; + HEAP32[($9 + 60 | 0) >> 2] = HEAP32[((HEAP32[($9 + 84 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($9 + 60 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : while (1) { + label$3 : { + if (!((HEAP32[((HEAP32[($9 + 60 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) > (HEAP32[($11 + 100 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + btConvexHullInternal__Vertex__operator__28btConvexHullInternal__Vertex_20const__29_20const($9 + 44 | 0 | 0, HEAP32[((HEAP32[($9 + 60 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($9 + 84 | 0) >> 2] | 0 | 0); + i64toi32_i32$0 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const($9 + 44 | 0 | 0, HEAP32[($9 + 72 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $40 = i64toi32_i32$0; + $40$hi = i64toi32_i32$1; + i64toi32_i32$1 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const($9 + 44 | 0 | 0, HEAP32[($9 + 76 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $45$hi = i64toi32_i32$0; + i64toi32_i32$0 = $40$hi; + i64toi32_i32$0 = $45$hi; + $263 = i64toi32_i32$1; + i64toi32_i32$0 = $40$hi; + i64toi32_i32$1 = $45$hi; + btConvexHullInternal__Rational64__Rational64_28long_20long_2c_20long_20long_29($9 + 16 | 0 | 0, $40 | 0, i64toi32_i32$0 | 0, $263 | 0, i64toi32_i32$1 | 0) | 0; + label$4 : { + label$5 : { + if (!((btConvexHullInternal__Rational64__isNaN_28_29_20const($9 + 16 | 0 | 0) | 0) & 1 | 0)) { + break label$5 + } + label$6 : { + label$7 : { + label$8 : { + if (!((HEAPU8[($9 + 91 | 0) >> 0] | 0) & 1 | 0)) { + break label$8 + } + i64toi32_i32$1 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point32_20const__29_20const($9 + 44 | 0 | 0, HEAP32[($9 + 80 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $62$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $63$hi = i64toi32_i32$0; + i64toi32_i32$0 = $62$hi; + i64toi32_i32$0 = $63$hi; + i64toi32_i32$0 = $62$hi; + i64toi32_i32$0 = $63$hi; + i64toi32_i32$0 = $62$hi; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$1 = $63$hi; + i64toi32_i32$3 = 0; + if ((i64toi32_i32$0 | 0) < (i64toi32_i32$1 | 0)) { + $33 = 1 + } else { + if ((i64toi32_i32$0 | 0) <= (i64toi32_i32$1 | 0)) { + if (i64toi32_i32$2 >>> 0 >= i64toi32_i32$3 >>> 0) { + $34 = 0 + } else { + $34 = 1 + } + $35 = $34; + } else { + $35 = 0 + } + $33 = $35; + } + if ($33 & 1 | 0) { + break label$6 + } + break label$7; + } + i64toi32_i32$2 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point32_20const__29_20const($9 + 44 | 0 | 0, HEAP32[($9 + 80 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $73$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $74$hi = i64toi32_i32$0; + i64toi32_i32$0 = $73$hi; + i64toi32_i32$0 = $74$hi; + i64toi32_i32$0 = $73$hi; + i64toi32_i32$0 = $74$hi; + i64toi32_i32$0 = $73$hi; + i64toi32_i32$3 = i64toi32_i32$2; + i64toi32_i32$2 = $74$hi; + i64toi32_i32$1 = 0; + if ((i64toi32_i32$0 | 0) > (i64toi32_i32$2 | 0)) { + $36 = 1 + } else { + if ((i64toi32_i32$0 | 0) >= (i64toi32_i32$2 | 0)) { + if (i64toi32_i32$3 >>> 0 <= i64toi32_i32$1 >>> 0) { + $37 = 0 + } else { + $37 = 1 + } + $38 = $37; + } else { + $38 = 0 + } + $36 = $38; + } + if ($36 & 1 | 0) { + break label$6 + } + } + __assert_fail(86726 | 0, 72732 | 0, 1446 | 0, 81886 | 0); + wasm2js_trap(); + } + break label$4; + } + label$9 : { + label$10 : { + if (!((HEAP32[($9 + 64 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$10 + } + $91 = HEAP32[($9 + 68 | 0) >> 2] | 0; + i64toi32_i32$1 = $9; + i64toi32_i32$3 = HEAP32[($9 + 16 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($9 + 20 | 0) >> 2] | 0; + $340 = i64toi32_i32$3; + i64toi32_i32$3 = $91; + HEAP32[i64toi32_i32$3 >> 2] = $340; + HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] = i64toi32_i32$0; + $93 = 16; + HEAP32[(i64toi32_i32$3 + $93 | 0) >> 2] = HEAP32[(($9 + 16 | 0) + $93 | 0) >> 2] | 0; + $99 = 8; + i64toi32_i32$1 = ($9 + 16 | 0) + $99 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $366 = i64toi32_i32$0; + i64toi32_i32$0 = $91 + $99 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $366; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$3; + HEAP32[($9 + 64 | 0) >> 2] = HEAP32[($9 + 60 | 0) >> 2] | 0; + break label$9; + } + $110 = btConvexHullInternal__Rational64__compare_28btConvexHullInternal__Rational64_20const__29_20const($9 + 16 | 0 | 0, HEAP32[($9 + 68 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($9 + 12 | 0) >> 2] = $110; + label$11 : { + label$12 : { + if (!(($110 | 0) < (0 | 0) & 1 | 0)) { + break label$12 + } + $117 = HEAP32[($9 + 68 | 0) >> 2] | 0; + i64toi32_i32$1 = $9; + i64toi32_i32$3 = HEAP32[($9 + 16 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($9 + 20 | 0) >> 2] | 0; + $397 = i64toi32_i32$3; + i64toi32_i32$3 = $117; + HEAP32[i64toi32_i32$3 >> 2] = $397; + HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] = i64toi32_i32$0; + $119 = 16; + HEAP32[(i64toi32_i32$3 + $119 | 0) >> 2] = HEAP32[(($9 + 16 | 0) + $119 | 0) >> 2] | 0; + $125 = 8; + i64toi32_i32$1 = ($9 + 16 | 0) + $125 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $423 = i64toi32_i32$0; + i64toi32_i32$0 = $117 + $125 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $423; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$3; + HEAP32[($9 + 64 | 0) >> 2] = HEAP32[($9 + 60 | 0) >> 2] | 0; + break label$11; + } + label$13 : { + if (HEAP32[($9 + 12 | 0) >> 2] | 0) { + break label$13 + } + if (!(((HEAPU8[($9 + 91 | 0) >> 0] | 0) & 1 | 0 | 0) == ((btConvexHullInternal__getOrientation_28btConvexHullInternal__Edge_20const__2c_20btConvexHullInternal__Edge_20const__2c_20btConvexHullInternal__Point32_20const__2c_20btConvexHullInternal__Point32_20const__29(HEAP32[($9 + 64 | 0) >> 2] | 0 | 0, HEAP32[($9 + 60 | 0) >> 2] | 0 | 0, HEAP32[($9 + 80 | 0) >> 2] | 0 | 0, $9 + 44 | 0 | 0) | 0 | 0) == (2 | 0) & 1 | 0 | 0) & 1 | 0)) { + break label$13 + } + HEAP32[($9 + 64 | 0) >> 2] = HEAP32[($9 + 60 | 0) >> 2] | 0; + } + } + } + } + } + HEAP32[($9 + 60 | 0) >> 2] = HEAP32[(HEAP32[($9 + 60 | 0) >> 2] | 0) >> 2] | 0; + if ((HEAP32[($9 + 60 | 0) >> 2] | 0 | 0) != (HEAP32[((HEAP32[($9 + 84 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) & 1 | 0) { + continue label$2 + } + break label$2; + }; + } + $165 = HEAP32[($9 + 64 | 0) >> 2] | 0; + __stack_pointer = $9 + 96 | 0; + return $165 | 0; + } + + function btConvexHullInternal__Rational64__isNegativeInfinity_28_29_20const($0) { + $0 = $0 | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $14$hi = 0, $15$hi = 0, $3 = 0, $4 = 0, $13 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + $13 = 0; + label$1 : { + if (!((HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0)) { + break label$1 + } + i64toi32_i32$2 = $4; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 12 | 0) >> 2] | 0; + $14$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $15$hi = i64toi32_i32$1; + i64toi32_i32$1 = $14$hi; + i64toi32_i32$1 = $15$hi; + i64toi32_i32$1 = $14$hi; + i64toi32_i32$1 = $15$hi; + i64toi32_i32$1 = $14$hi; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$2 + 8 | 0) >> 2] | 0; + $13 = (i64toi32_i32$2 | 0) == (0 | 0) & ($14$hi | 0) == ($15$hi | 0) | 0; + } + return $13 & 1 | 0 | 0; + } + + function btConvexHullInternal__removeEdgePair_28btConvexHullInternal__Edge__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[$4 >> 2] = HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + if ((HEAP32[((HEAP32[$4 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$1 + } + } + __assert_fail(68437 | 0, 72732 | 0, 784 | 0, 71040 | 0); + wasm2js_trap(); + } + label$3 : { + label$4 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) != (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($4 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[(HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[((HEAP32[$4 >> 2] | 0) + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + break label$3; + } + HEAP32[((HEAP32[((HEAP32[$4 >> 2] | 0) + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = 0; + } + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[(HEAP32[$4 >> 2] | 0) >> 2] | 0; + label$5 : { + label$6 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) != (HEAP32[$4 >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[((HEAP32[($4 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[((HEAP32[$4 >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[(HEAP32[((HEAP32[$4 >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + break label$5; + } + HEAP32[((HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = 0; + } + btConvexHullInternal__Pool_btConvexHullInternal__Edge___freeObject_28btConvexHullInternal__Edge__29($5 + 48 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + btConvexHullInternal__Pool_btConvexHullInternal__Edge___freeObject_28btConvexHullInternal__Edge__29($5 + 48 | 0 | 0, HEAP32[$4 >> 2] | 0 | 0); + HEAP32[($5 + 116 | 0) >> 2] = (HEAP32[($5 + 116 | 0) >> 2] | 0) + -1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btConvexHullInternal__Point64__dot_28btConvexHullInternal__Point64_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$5 = 0, $4 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $5 = 0, $6$hi = 0, $8$hi = 0, $9$hi = 0, $10$hi = 0, $12$hi = 0, $13$hi = 0, $14$hi = 0, $15$hi = 0, $17$hi = 0, $18$hi = 0, $6 = 0, $37 = 0, $9 = 0, $10 = 0, $46 = 0, $49 = 0, $15 = 0, $58 = 0, $61 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $6 = i64toi32_i32$0; + $6$hi = i64toi32_i32$1; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $8$hi = i64toi32_i32$0; + i64toi32_i32$0 = $6$hi; + i64toi32_i32$0 = $8$hi; + $37 = i64toi32_i32$1; + i64toi32_i32$0 = $6$hi; + i64toi32_i32$1 = $8$hi; + i64toi32_i32$1 = __wasm_i64_mul($6 | 0, i64toi32_i32$0 | 0, $37 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $9 = i64toi32_i32$1; + $9$hi = i64toi32_i32$0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 12 | 0) >> 2] | 0; + $10 = i64toi32_i32$0; + $10$hi = i64toi32_i32$1; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 12 | 0) >> 2] | 0; + $12$hi = i64toi32_i32$0; + i64toi32_i32$0 = $10$hi; + i64toi32_i32$0 = $12$hi; + $46 = i64toi32_i32$1; + i64toi32_i32$0 = $10$hi; + i64toi32_i32$1 = $12$hi; + i64toi32_i32$1 = __wasm_i64_mul($10 | 0, i64toi32_i32$0 | 0, $46 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $13$hi = i64toi32_i32$0; + i64toi32_i32$0 = $9$hi; + i64toi32_i32$0 = $13$hi; + $49 = i64toi32_i32$1; + i64toi32_i32$0 = $9$hi; + i64toi32_i32$2 = $9; + i64toi32_i32$1 = $13$hi; + i64toi32_i32$3 = $49; + i64toi32_i32$4 = i64toi32_i32$2 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$0 + i64toi32_i32$1 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $14$hi = i64toi32_i32$5; + i64toi32_i32$0 = $5; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 16 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$0 + 20 | 0) >> 2] | 0; + $15 = i64toi32_i32$5; + $15$hi = i64toi32_i32$2; + i64toi32_i32$0 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$0 + 16 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 20 | 0) >> 2] | 0; + $17$hi = i64toi32_i32$5; + i64toi32_i32$5 = $15$hi; + i64toi32_i32$5 = $17$hi; + $58 = i64toi32_i32$2; + i64toi32_i32$5 = $15$hi; + i64toi32_i32$2 = $17$hi; + i64toi32_i32$2 = __wasm_i64_mul($15 | 0, i64toi32_i32$5 | 0, $58 | 0, i64toi32_i32$2 | 0) | 0; + i64toi32_i32$5 = i64toi32_i32$HIGH_BITS; + $18$hi = i64toi32_i32$5; + i64toi32_i32$5 = $14$hi; + i64toi32_i32$5 = $18$hi; + $61 = i64toi32_i32$2; + i64toi32_i32$5 = $14$hi; + i64toi32_i32$0 = i64toi32_i32$4; + i64toi32_i32$2 = $18$hi; + i64toi32_i32$3 = $61; + i64toi32_i32$1 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$2 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + i64toi32_i32$0 = i64toi32_i32$1; + i64toi32_i32$HIGH_BITS = i64toi32_i32$4; + return i64toi32_i32$0 | 0; + } + + function btConvexHullInternal__Point64__Point64_28long_20long_2c_20long_20long_2c_20long_20long_29($0, $1, $1$hi, $2, $2$hi, $3, $3$hi) { + $0 = $0 | 0; + $1 = $1 | 0; + $1$hi = $1$hi | 0; + $2 = $2 | 0; + $2$hi = $2$hi | 0; + $3 = $3 | 0; + $3$hi = $3$hi | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, $7 = 0, $6 = 0, $28 = 0, $32 = 0, $36 = 0; + $6 = __stack_pointer - 32 | 0; + HEAP32[($6 + 28 | 0) >> 2] = $0; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$1 = $6; + HEAP32[(i64toi32_i32$1 + 16 | 0) >> 2] = $1; + HEAP32[(i64toi32_i32$1 + 20 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$0 = $2$hi; + HEAP32[(i64toi32_i32$1 + 8 | 0) >> 2] = $2; + HEAP32[(i64toi32_i32$1 + 12 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$0 = $3$hi; + HEAP32[i64toi32_i32$1 >> 2] = $3; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $7 = HEAP32[(i64toi32_i32$1 + 28 | 0) >> 2] | 0; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$1 + 16 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 20 | 0) >> 2] | 0; + $28 = i64toi32_i32$0; + i64toi32_i32$0 = $7; + HEAP32[i64toi32_i32$0 >> 2] = $28; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 12 | 0) >> 2] | 0; + $32 = i64toi32_i32$1; + i64toi32_i32$1 = $7; + HEAP32[(i64toi32_i32$1 + 8 | 0) >> 2] = $32; + HEAP32[(i64toi32_i32$1 + 12 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $36 = i64toi32_i32$0; + i64toi32_i32$0 = $7; + HEAP32[(i64toi32_i32$0 + 16 | 0) >> 2] = $36; + HEAP32[(i64toi32_i32$0 + 20 | 0) >> 2] = i64toi32_i32$1; + return i64toi32_i32$0 | 0; + } + + function btConvexHullInternal__Rational64__isNaN_28_29_20const($0) { + $0 = $0 | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $8$hi = 0, $9$hi = 0, $3 = 0, $4 = 0, $7 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + $7 = 0; + label$1 : { + if (HEAP32[($4 + 16 | 0) >> 2] | 0) { + break label$1 + } + i64toi32_i32$2 = $4; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 12 | 0) >> 2] | 0; + $8$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $9$hi = i64toi32_i32$1; + i64toi32_i32$1 = $8$hi; + i64toi32_i32$1 = $9$hi; + i64toi32_i32$1 = $8$hi; + i64toi32_i32$1 = $9$hi; + i64toi32_i32$1 = $8$hi; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$2 + 8 | 0) >> 2] | 0; + $7 = (i64toi32_i32$2 | 0) == (0 | 0) & ($8$hi | 0) == ($9$hi | 0) | 0; + } + return $7 & 1 | 0 | 0; + } + + function btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point32_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + i64toi32_i32$1 = (Math_imul(HEAP32[$5 >> 2] | 0, HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 4 | 0) >> 2] | 0, HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0) + Math_imul(HEAP32[($5 + 8 | 0) >> 2] | 0, HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$1 >> 31 | 0; + i64toi32_i32$HIGH_BITS = i64toi32_i32$0; + return i64toi32_i32$1 | 0; + } + + function btConvexHullInternal__Pool_btConvexHullInternal__Edge___freeObject_28btConvexHullInternal__Edge__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btConvexHullInternal__Edge___Edge_28_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btConvexHullInternal__compute_28void_20const__2c_20bool_2c_20int_2c_20int_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $9 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $189 = 0, $278 = 0, $280 = 0, $353 = 0, $370 = Math_fround(0), $376 = 0, $392 = Math_fround(0), $398 = 0, $414 = Math_fround(0), $420 = 0, $476 = 0, $493 = Math_fround(0), $499 = 0, $515 = Math_fround(0), $521 = 0, $537 = Math_fround(0), $543 = 0, $598 = 0, $600 = 0, $1014 = 0, $1027 = 0, $211 = Math_fround(0), $232 = Math_fround(0), $253 = Math_fround(0), $1177 = 0, $1190 = 0, $289 = 0, $1345 = 0, $1349 = 0, $428 = 0, $1584 = 0, $1588 = 0, $551 = 0, $573 = 0, $595 = 0, $1808 = 0, $1818 = 0, $606 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $7 = __stack_pointer - 400 | 0; + __stack_pointer = $7; + HEAP32[($7 + 396 | 0) >> 2] = $0; + HEAP32[($7 + 392 | 0) >> 2] = $1; + HEAP8[($7 + 391 | 0) >> 0] = $2; + HEAP32[($7 + 384 | 0) >> 2] = $3; + HEAP32[($7 + 380 | 0) >> 2] = $4; + $9 = HEAP32[($7 + 396 | 0) >> 2] | 0; + HEAPF32[($7 + 360 | 0) >> 2] = Math_fround(1000000015047466219876688.0e6); + HEAPF32[($7 + 356 | 0) >> 2] = Math_fround(1000000015047466219876688.0e6); + HEAPF32[($7 + 352 | 0) >> 2] = Math_fround(1000000015047466219876688.0e6); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 364 | 0 | 0, $7 + 360 | 0 | 0, $7 + 356 | 0 | 0, $7 + 352 | 0 | 0) | 0; + HEAPF32[($7 + 332 | 0) >> 2] = Math_fround(-1000000015047466219876688.0e6); + HEAPF32[($7 + 328 | 0) >> 2] = Math_fround(-1000000015047466219876688.0e6); + HEAPF32[($7 + 324 | 0) >> 2] = Math_fround(-1000000015047466219876688.0e6); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 336 | 0 | 0, $7 + 332 | 0 | 0, $7 + 328 | 0 | 0, $7 + 324 | 0 | 0) | 0; + HEAP32[($7 + 320 | 0) >> 2] = HEAP32[($7 + 392 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($7 + 391 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($7 + 316 | 0) >> 2] = 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($7 + 316 | 0) >> 2] | 0 | 0) < (HEAP32[($7 + 380 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($7 + 312 | 0) >> 2] = HEAP32[($7 + 320 | 0) >> 2] | 0; + HEAPF32[($7 + 292 | 0) >> 2] = Math_fround(+HEAPF64[(HEAP32[($7 + 312 | 0) >> 2] | 0) >> 3]); + HEAPF32[($7 + 288 | 0) >> 2] = Math_fround(+HEAPF64[((HEAP32[($7 + 312 | 0) >> 2] | 0) + 8 | 0) >> 3]); + HEAPF32[($7 + 284 | 0) >> 2] = Math_fround(+HEAPF64[((HEAP32[($7 + 312 | 0) >> 2] | 0) + 16 | 0) >> 3]); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 296 | 0 | 0, $7 + 292 | 0 | 0, $7 + 288 | 0 | 0, $7 + 284 | 0 | 0) | 0; + HEAP32[($7 + 320 | 0) >> 2] = (HEAP32[($7 + 320 | 0) >> 2] | 0) + (HEAP32[($7 + 384 | 0) >> 2] | 0) | 0; + btVector3__setMin_28btVector3_20const__29($7 + 364 | 0 | 0, $7 + 296 | 0 | 0); + btVector3__setMax_28btVector3_20const__29($7 + 336 | 0 | 0, $7 + 296 | 0 | 0); + HEAP32[($7 + 316 | 0) >> 2] = (HEAP32[($7 + 316 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + break label$1; + } + HEAP32[($7 + 280 | 0) >> 2] = 0; + label$5 : { + label$6 : while (1) { + if (!((HEAP32[($7 + 280 | 0) >> 2] | 0 | 0) < (HEAP32[($7 + 380 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + HEAP32[($7 + 276 | 0) >> 2] = HEAP32[($7 + 320 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 260 | 0 | 0, HEAP32[($7 + 276 | 0) >> 2] | 0 | 0, (HEAP32[($7 + 276 | 0) >> 2] | 0) + 4 | 0 | 0, (HEAP32[($7 + 276 | 0) >> 2] | 0) + 8 | 0 | 0) | 0; + HEAP32[($7 + 320 | 0) >> 2] = (HEAP32[($7 + 320 | 0) >> 2] | 0) + (HEAP32[($7 + 384 | 0) >> 2] | 0) | 0; + btVector3__setMin_28btVector3_20const__29($7 + 364 | 0 | 0, $7 + 260 | 0 | 0); + btVector3__setMax_28btVector3_20const__29($7 + 336 | 0 | 0, $7 + 260 | 0 | 0); + HEAP32[($7 + 280 | 0) >> 2] = (HEAP32[($7 + 280 | 0) >> 2] | 0) + 1 | 0; + continue label$6; + }; + } + } + operator__28btVector3_20const__2c_20btVector3_20const__29($7 + 244 | 0 | 0, $7 + 336 | 0 | 0, $7 + 364 | 0 | 0); + (wasm2js_i32$0 = $9, wasm2js_i32$1 = btVector3__maxAxis_28_29_20const($7 + 244 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 112 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $9, wasm2js_i32$1 = btVector3__minAxis_28_29_20const($7 + 244 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 104 | 0) >> 2] = wasm2js_i32$1; + label$7 : { + if (!((HEAP32[($9 + 104 | 0) >> 2] | 0 | 0) == (HEAP32[($9 + 112 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$7 + } + HEAP32[($9 + 104 | 0) >> 2] = ((HEAP32[($9 + 112 | 0) >> 2] | 0) + 1 | 0 | 0) % (3 | 0) | 0; + } + HEAP32[($9 + 108 | 0) >> 2] = (3 - (HEAP32[($9 + 112 | 0) >> 2] | 0) | 0) - (HEAP32[($9 + 104 | 0) >> 2] | 0) | 0; + HEAPF32[($7 + 240 | 0) >> 2] = Math_fround(10216.0); + btVector3__operator___28float_20const__29($7 + 244 | 0 | 0, $7 + 240 | 0 | 0) | 0; + label$8 : { + if (!((((HEAP32[($9 + 108 | 0) >> 2] | 0) + 1 | 0 | 0) % (3 | 0) | 0 | 0) != (HEAP32[($9 + 112 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + HEAPF32[($7 + 236 | 0) >> 2] = Math_fround(-1.0); + btVector3__operator___28float_20const__29_1($7 + 244 | 0 | 0, $7 + 236 | 0 | 0) | 0; + } + i64toi32_i32$2 = $7; + i64toi32_i32$0 = HEAP32[($7 + 244 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7 + 248 | 0) >> 2] | 0; + $1014 = i64toi32_i32$0; + i64toi32_i32$0 = $9; + HEAP32[i64toi32_i32$0 >> 2] = $1014; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $189 = 8; + i64toi32_i32$2 = ($7 + 244 | 0) + $189 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1027 = i64toi32_i32$1; + i64toi32_i32$1 = $9 + $189 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1027; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + label$9 : { + if (!(Math_fround(HEAPF32[(btVector3__operator_20float__28_29($7 + 244 | 0 | 0) | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0)) { + break label$9 + } + $211 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[(btVector3__operator_20float__28_29($7 + 244 | 0 | 0) | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($7 + 244 | 0 | 0) | 0, wasm2js_f32$0 = $211), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + } + label$10 : { + if (!(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($7 + 244 | 0 | 0) | 0) + 4 | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0)) { + break label$10 + } + $232 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[((btVector3__operator_20float__28_29($7 + 244 | 0 | 0) | 0) + 4 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($7 + 244 | 0 | 0) | 0, wasm2js_f32$0 = $232), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + } + label$11 : { + if (!(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($7 + 244 | 0 | 0) | 0) + 8 | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0)) { + break label$11 + } + $253 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[((btVector3__operator_20float__28_29($7 + 244 | 0 | 0) | 0) + 8 | 0) >> 2])); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($7 + 244 | 0 | 0) | 0, wasm2js_f32$0 = $253), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + } + operator__28btVector3_20const__2c_20btVector3_20const__29_2($7 + 204 | 0 | 0, $7 + 364 | 0 | 0, $7 + 336 | 0 | 0); + HEAPF32[($7 + 200 | 0) >> 2] = Math_fround(.5); + operator__28btVector3_20const__2c_20float_20const__29($7 + 220 | 0 | 0, $7 + 204 | 0 | 0, $7 + 200 | 0 | 0); + $278 = $9 + 16 | 0; + i64toi32_i32$2 = $7; + i64toi32_i32$0 = HEAP32[($7 + 220 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7 + 224 | 0) >> 2] | 0; + $1177 = i64toi32_i32$0; + i64toi32_i32$0 = $278; + HEAP32[i64toi32_i32$0 >> 2] = $1177; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $280 = 8; + i64toi32_i32$2 = ($7 + 220 | 0) + $280 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1190 = i64toi32_i32$1; + i64toi32_i32$1 = $278 + $280 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1190; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btAlignedObjectArray_btConvexHullInternal__Point32___btAlignedObjectArray_28_29($7 + 180 | 0 | 0) | 0; + $289 = HEAP32[($7 + 380 | 0) >> 2] | 0; + btConvexHullInternal__Point32__Point32_28_29($7 + 164 | 0 | 0) | 0; + btAlignedObjectArray_btConvexHullInternal__Point32___resize_28int_2c_20btConvexHullInternal__Point32_20const__29($7 + 180 | 0 | 0, $289 | 0, $7 + 164 | 0 | 0); + HEAP32[($7 + 320 | 0) >> 2] = HEAP32[($7 + 392 | 0) >> 2] | 0; + label$12 : { + label$13 : { + if (!((HEAPU8[($7 + 391 | 0) >> 0] | 0) & 1 | 0)) { + break label$13 + } + HEAP32[($7 + 160 | 0) >> 2] = 0; + label$14 : { + label$15 : while (1) { + if (!((HEAP32[($7 + 160 | 0) >> 2] | 0 | 0) < (HEAP32[($7 + 380 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$14 + } + HEAP32[($7 + 156 | 0) >> 2] = HEAP32[($7 + 320 | 0) >> 2] | 0; + HEAPF32[($7 + 132 | 0) >> 2] = Math_fround(+HEAPF64[(HEAP32[($7 + 156 | 0) >> 2] | 0) >> 3]); + HEAPF32[($7 + 128 | 0) >> 2] = Math_fround(+HEAPF64[((HEAP32[($7 + 156 | 0) >> 2] | 0) + 8 | 0) >> 3]); + HEAPF32[($7 + 124 | 0) >> 2] = Math_fround(+HEAPF64[((HEAP32[($7 + 156 | 0) >> 2] | 0) + 16 | 0) >> 3]); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 136 | 0 | 0, $7 + 132 | 0 | 0, $7 + 128 | 0 | 0, $7 + 124 | 0 | 0) | 0; + HEAP32[($7 + 320 | 0) >> 2] = (HEAP32[($7 + 320 | 0) >> 2] | 0) + (HEAP32[($7 + 384 | 0) >> 2] | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($7 + 92 | 0 | 0, $7 + 136 | 0 | 0, $9 + 16 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($7 + 108 | 0 | 0, $7 + 92 | 0 | 0, $7 + 244 | 0 | 0); + $353 = 8; + i64toi32_i32$2 = ($7 + 108 | 0) + $353 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1345 = i64toi32_i32$0; + i64toi32_i32$0 = ($7 + 136 | 0) + $353 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1345; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $7; + i64toi32_i32$1 = HEAP32[($7 + 108 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($7 + 112 | 0) >> 2] | 0; + $1349 = i64toi32_i32$1; + i64toi32_i32$1 = $7; + HEAP32[($7 + 136 | 0) >> 2] = $1349; + HEAP32[($7 + 140 | 0) >> 2] = i64toi32_i32$0; + $370 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($7 + 136 | 0 | 0) | 0) + ((HEAP32[($9 + 108 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + label$16 : { + label$17 : { + if (!(Math_fround(Math_abs($370)) < Math_fround(2147483648.0))) { + break label$17 + } + $376 = ~~$370; + break label$16; + } + $376 = -2147483648; + } + (wasm2js_i32$0 = btAlignedObjectArray_btConvexHullInternal__Point32___operator_5b_5d_28int_29($7 + 180 | 0 | 0, HEAP32[($7 + 160 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $376), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $392 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($7 + 136 | 0 | 0) | 0) + ((HEAP32[($9 + 112 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + label$18 : { + label$19 : { + if (!(Math_fround(Math_abs($392)) < Math_fround(2147483648.0))) { + break label$19 + } + $398 = ~~$392; + break label$18; + } + $398 = -2147483648; + } + (wasm2js_i32$0 = btAlignedObjectArray_btConvexHullInternal__Point32___operator_5b_5d_28int_29($7 + 180 | 0 | 0, HEAP32[($7 + 160 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $398), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + $414 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($7 + 136 | 0 | 0) | 0) + ((HEAP32[($9 + 104 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + label$20 : { + label$21 : { + if (!(Math_fround(Math_abs($414)) < Math_fround(2147483648.0))) { + break label$21 + } + $420 = ~~$414; + break label$20; + } + $420 = -2147483648; + } + (wasm2js_i32$0 = btAlignedObjectArray_btConvexHullInternal__Point32___operator_5b_5d_28int_29($7 + 180 | 0 | 0, HEAP32[($7 + 160 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $420), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + $428 = HEAP32[($7 + 160 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btConvexHullInternal__Point32___operator_5b_5d_28int_29($7 + 180 | 0 | 0, HEAP32[($7 + 160 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $428), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($7 + 160 | 0) >> 2] = (HEAP32[($7 + 160 | 0) >> 2] | 0) + 1 | 0; + continue label$15; + }; + } + break label$12; + } + HEAP32[($7 + 88 | 0) >> 2] = 0; + label$22 : { + label$23 : while (1) { + if (!((HEAP32[($7 + 88 | 0) >> 2] | 0 | 0) < (HEAP32[($7 + 380 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$22 + } + HEAP32[($7 + 84 | 0) >> 2] = HEAP32[($7 + 320 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 64 | 0 | 0, HEAP32[($7 + 84 | 0) >> 2] | 0 | 0, (HEAP32[($7 + 84 | 0) >> 2] | 0) + 4 | 0 | 0, (HEAP32[($7 + 84 | 0) >> 2] | 0) + 8 | 0 | 0) | 0; + HEAP32[($7 + 320 | 0) >> 2] = (HEAP32[($7 + 320 | 0) >> 2] | 0) + (HEAP32[($7 + 384 | 0) >> 2] | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($7 + 32 | 0 | 0, $7 + 64 | 0 | 0, $9 + 16 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($7 + 48 | 0 | 0, $7 + 32 | 0 | 0, $7 + 244 | 0 | 0); + $476 = 8; + i64toi32_i32$2 = ($7 + 48 | 0) + $476 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1584 = i64toi32_i32$0; + i64toi32_i32$0 = ($7 + 64 | 0) + $476 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1584; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $7; + i64toi32_i32$1 = HEAP32[($7 + 48 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($7 + 52 | 0) >> 2] | 0; + $1588 = i64toi32_i32$1; + i64toi32_i32$1 = $7; + HEAP32[($7 + 64 | 0) >> 2] = $1588; + HEAP32[($7 + 68 | 0) >> 2] = i64toi32_i32$0; + $493 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($7 + 64 | 0 | 0) | 0) + ((HEAP32[($9 + 108 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + label$24 : { + label$25 : { + if (!(Math_fround(Math_abs($493)) < Math_fround(2147483648.0))) { + break label$25 + } + $499 = ~~$493; + break label$24; + } + $499 = -2147483648; + } + (wasm2js_i32$0 = btAlignedObjectArray_btConvexHullInternal__Point32___operator_5b_5d_28int_29($7 + 180 | 0 | 0, HEAP32[($7 + 88 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $499), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $515 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($7 + 64 | 0 | 0) | 0) + ((HEAP32[($9 + 112 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + label$26 : { + label$27 : { + if (!(Math_fround(Math_abs($515)) < Math_fround(2147483648.0))) { + break label$27 + } + $521 = ~~$515; + break label$26; + } + $521 = -2147483648; + } + (wasm2js_i32$0 = btAlignedObjectArray_btConvexHullInternal__Point32___operator_5b_5d_28int_29($7 + 180 | 0 | 0, HEAP32[($7 + 88 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $521), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + $537 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($7 + 64 | 0 | 0) | 0) + ((HEAP32[($9 + 104 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + label$28 : { + label$29 : { + if (!(Math_fround(Math_abs($537)) < Math_fround(2147483648.0))) { + break label$29 + } + $543 = ~~$537; + break label$28; + } + $543 = -2147483648; + } + (wasm2js_i32$0 = btAlignedObjectArray_btConvexHullInternal__Point32___operator_5b_5d_28int_29($7 + 180 | 0 | 0, HEAP32[($7 + 88 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $543), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + $551 = HEAP32[($7 + 88 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btConvexHullInternal__Point32___operator_5b_5d_28int_29($7 + 180 | 0 | 0, HEAP32[($7 + 88 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $551), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($7 + 88 | 0) >> 2] = (HEAP32[($7 + 88 | 0) >> 2] | 0) + 1 | 0; + continue label$23; + }; + } + } + void_20btAlignedObjectArray_btConvexHullInternal__Point32___quickSort_pointCmp__28pointCmp_20const__29($7 + 180 | 0 | 0, $7 + 31 | 0 | 0); + btConvexHullInternal__Pool_btConvexHullInternal__Vertex___reset_28_29($9 + 32 | 0 | 0); + btConvexHullInternal__Pool_btConvexHullInternal__Vertex___setArraySize_28int_29($9 + 32 | 0 | 0, HEAP32[($7 + 380 | 0) >> 2] | 0 | 0); + $573 = HEAP32[($7 + 380 | 0) >> 2] | 0; + HEAP32[($7 + 24 | 0) >> 2] = 0; + btAlignedObjectArray_btConvexHullInternal__Vertex____resize_28int_2c_20btConvexHullInternal__Vertex__20const__29($9 + 80 | 0 | 0, $573 | 0, $7 + 24 | 0 | 0); + HEAP32[($7 + 20 | 0) >> 2] = 0; + label$30 : { + label$31 : while (1) { + if (!((HEAP32[($7 + 20 | 0) >> 2] | 0 | 0) < (HEAP32[($7 + 380 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$30 + } + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btConvexHullInternal__Pool_btConvexHullInternal__Vertex___newObject_28_29($9 + 32 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + HEAP32[((HEAP32[($7 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] = 0; + $595 = btAlignedObjectArray_btConvexHullInternal__Point32___operator_5b_5d_28int_29($7 + 180 | 0 | 0, HEAP32[($7 + 20 | 0) >> 2] | 0 | 0) | 0; + $598 = (HEAP32[($7 + 16 | 0) >> 2] | 0) + 88 | 0; + i64toi32_i32$2 = $595; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1808 = i64toi32_i32$0; + i64toi32_i32$0 = $598; + HEAP32[i64toi32_i32$0 >> 2] = $1808; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $600 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $600 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1818 = i64toi32_i32$1; + i64toi32_i32$1 = $598 + $600 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1818; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[((HEAP32[($7 + 16 | 0) >> 2] | 0) + 104 | 0) >> 2] = -1; + $606 = HEAP32[($7 + 16 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btConvexHullInternal__Vertex____operator_5b_5d_28int_29($9 + 80 | 0 | 0, HEAP32[($7 + 20 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $606), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[($7 + 20 | 0) >> 2] = (HEAP32[($7 + 20 | 0) >> 2] | 0) + 1 | 0; + continue label$31; + }; + } + btAlignedObjectArray_btConvexHullInternal__Point32___clear_28_29($7 + 180 | 0 | 0); + btConvexHullInternal__Pool_btConvexHullInternal__Edge___reset_28_29($9 + 48 | 0 | 0); + btConvexHullInternal__Pool_btConvexHullInternal__Edge___setArraySize_28int_29($9 + 48 | 0 | 0, Math_imul(HEAP32[($7 + 380 | 0) >> 2] | 0, 6) | 0); + HEAP32[($9 + 116 | 0) >> 2] = 0; + HEAP32[($9 + 120 | 0) >> 2] = 0; + HEAP32[($9 + 100 | 0) >> 2] = -3; + btConvexHullInternal__IntermediateHull__IntermediateHull_28_29($7 | 0) | 0; + btConvexHullInternal__computeInternal_28int_2c_20int_2c_20btConvexHullInternal__IntermediateHull__29($9 | 0, 0 | 0, HEAP32[($7 + 380 | 0) >> 2] | 0 | 0, $7 | 0); + HEAP32[($9 + 124 | 0) >> 2] = HEAP32[$7 >> 2] | 0; + btAlignedObjectArray_btConvexHullInternal__Point32____btAlignedObjectArray_28_29($7 + 180 | 0 | 0) | 0; + __stack_pointer = $7 + 400 | 0; + return; + } + + function btAlignedObjectArray_btConvexHullInternal__Point32___btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btConvexHullInternal__Point32_2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btConvexHullInternal__Point32___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btConvexHullInternal__Point32___resize_28int_2c_20btConvexHullInternal__Point32_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0, $46 = 0, $49 = 0, $166 = 0, $176 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btConvexHullInternal__Point32___size_28_29_20const($6 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + break label$1; + } + label$5 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) > (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + btAlignedObjectArray_btConvexHullInternal__Point32___reserve_28int_29($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + $46 = (HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = HEAP32[($5 + 20 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $166 = i64toi32_i32$0; + i64toi32_i32$0 = $46; + HEAP32[i64toi32_i32$0 >> 2] = $166; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $49 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $49 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $176 = i64toi32_i32$1; + i64toi32_i32$1 = $46 + $49 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $176; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btAlignedObjectArray_btConvexHullInternal__Point32___operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78295 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btConvexHullInternal__Point32___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78295 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 4 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function void_20btAlignedObjectArray_btConvexHullInternal__Point32___quickSort_pointCmp__28pointCmp_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btConvexHullInternal__Point32___size_28_29_20const($5 | 0) | 0 | 0) > (1 | 0) & 1 | 0)) { + break label$1 + } + void_20btAlignedObjectArray_btConvexHullInternal__Point32___quickSortInternal_pointCmp__28pointCmp_20const__2c_20int_2c_20int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 0 | 0, (btAlignedObjectArray_btConvexHullInternal__Point32___size_28_29_20const($5 | 0) | 0) - 1 | 0 | 0); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btConvexHullInternal__Pool_btConvexHullInternal__Vertex___reset_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[$4 >> 2] | 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btConvexHullInternal__Pool_btConvexHullInternal__Vertex___setArraySize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return; + } + + function btAlignedObjectArray_btConvexHullInternal__Vertex____resize_28int_2c_20btConvexHullInternal__Vertex__20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btConvexHullInternal__Vertex____size_28_29_20const($6 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + break label$1; + } + label$5 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) > (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + btAlignedObjectArray_btConvexHullInternal__Vertex____reserve_28int_29($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[(HEAP32[($5 + 20 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btConvexHullInternal__Pool_btConvexHullInternal__Vertex___newObject_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $25 = 0, $34 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$1 + } + HEAP32[($3 + 4 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + label$2 : { + label$3 : { + if (!((HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + break label$2; + } + $25 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(12 | 0, 16 | 0) | 0; + btConvexHullInternal__PoolArray_btConvexHullInternal__Vertex___PoolArray_28int_29($25 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($3 + 4 | 0) >> 2] = $25; + HEAP32[((HEAP32[($3 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[$4 >> 2] | 0; + HEAP32[$4 >> 2] = HEAP32[($3 + 4 | 0) >> 2] | 0; + } + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btConvexHullInternal__PoolArray_btConvexHullInternal__Vertex___init_28_29(HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + } + HEAP32[($4 + 8 | 0) >> 2] = HEAP32[(HEAP32[($3 + 8 | 0) >> 2] | 0) >> 2] | 0; + $34 = HEAP32[($3 + 8 | 0) >> 2] | 0; + btConvexHullInternal__Vertex__Vertex_28_29($34 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $34 | 0; + } + + function btAlignedObjectArray_btConvexHullInternal__Point32___clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btConvexHullInternal__Point32___destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btConvexHullInternal__Point32___size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btConvexHullInternal__Point32___deallocate_28_29($4 | 0); + btAlignedObjectArray_btConvexHullInternal__Point32___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btConvexHullInternal__Pool_btConvexHullInternal__Edge___reset_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[$4 >> 2] | 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btConvexHullInternal__Pool_btConvexHullInternal__Edge___setArraySize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return; + } + + function btAlignedObjectArray_btConvexHullInternal__Point32____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btConvexHullInternal__Point32___clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedAllocator_btConvexHullInternal__Point32_2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btConvexHullInternal__Point32___init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btAlignedObjectArray_btConvexHullInternal__Point32___size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btConvexHullInternal__Point32___reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btConvexHullInternal__Point32___capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btConvexHullInternal__Point32___allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btConvexHullInternal__Point32___copy_28int_2c_20int_2c_20btConvexHullInternal__Point32__29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btConvexHullInternal__Point32___size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btConvexHullInternal__Point32___destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btConvexHullInternal__Point32___size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btConvexHullInternal__Point32___deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function void_20btAlignedObjectArray_btConvexHullInternal__Point32___quickSortInternal_pointCmp__28pointCmp_20const__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $18 = 0, $19 = 0, $153 = 0, $157 = 0; + $6 = __stack_pointer - 48 | 0; + __stack_pointer = $6; + HEAP32[($6 + 44 | 0) >> 2] = $0; + HEAP32[($6 + 40 | 0) >> 2] = $1; + HEAP32[($6 + 36 | 0) >> 2] = $2; + HEAP32[($6 + 32 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 44 | 0) >> 2] | 0; + HEAP32[($6 + 28 | 0) >> 2] = HEAP32[($6 + 36 | 0) >> 2] | 0; + HEAP32[($6 + 24 | 0) >> 2] = HEAP32[($6 + 32 | 0) >> 2] | 0; + $18 = (HEAP32[($7 + 12 | 0) >> 2] | 0) + ((((HEAP32[($6 + 36 | 0) >> 2] | 0) + (HEAP32[($6 + 32 | 0) >> 2] | 0) | 0 | 0) / (2 | 0) | 0) << 4 | 0) | 0; + $19 = 8; + i64toi32_i32$2 = $18 + $19 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $153 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 8 | 0) + $19 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $153; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $18; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $157 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 8 | 0) >> 2] = $157; + HEAP32[($6 + 12 | 0) >> 2] = i64toi32_i32$0; + label$1 : while (1) { + label$2 : { + label$3 : while (1) { + if (!((pointCmp__operator_28_29_28btConvexHullInternal__Point32_20const__2c_20btConvexHullInternal__Point32_20const__29_20const(HEAP32[($6 + 40 | 0) >> 2] | 0 | 0, (HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 28 | 0) >> 2] | 0) << 4 | 0) | 0 | 0, $6 + 8 | 0 | 0) | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($6 + 28 | 0) >> 2] = (HEAP32[($6 + 28 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + label$4 : { + label$5 : while (1) { + if (!((pointCmp__operator_28_29_28btConvexHullInternal__Point32_20const__2c_20btConvexHullInternal__Point32_20const__29_20const(HEAP32[($6 + 40 | 0) >> 2] | 0 | 0, $6 + 8 | 0 | 0, (HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 24 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($6 + 24 | 0) >> 2] = (HEAP32[($6 + 24 | 0) >> 2] | 0) + -1 | 0; + continue label$5; + }; + } + label$6 : { + if (!((HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) <= (HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + btAlignedObjectArray_btConvexHullInternal__Point32___swap_28int_2c_20int_29($7 | 0, HEAP32[($6 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0); + HEAP32[($6 + 28 | 0) >> 2] = (HEAP32[($6 + 28 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($6 + 24 | 0) >> 2] = (HEAP32[($6 + 24 | 0) >> 2] | 0) + -1 | 0; + } + if ((HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) <= (HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) & 1 | 0) { + continue label$1 + } + break label$1; + }; + label$7 : { + if (!((HEAP32[($6 + 36 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$7 + } + void_20btAlignedObjectArray_btConvexHullInternal__Point32___quickSortInternal_pointCmp__28pointCmp_20const__2c_20int_2c_20int_29($7 | 0, HEAP32[($6 + 40 | 0) >> 2] | 0 | 0, HEAP32[($6 + 36 | 0) >> 2] | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0); + } + label$8 : { + if (!((HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 32 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + void_20btAlignedObjectArray_btConvexHullInternal__Point32___quickSortInternal_pointCmp__28pointCmp_20const__2c_20int_2c_20int_29($7 | 0, HEAP32[($6 + 40 | 0) >> 2] | 0 | 0, HEAP32[($6 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6 + 32 | 0) >> 2] | 0 | 0); + } + __stack_pointer = $6 + 48 | 0; + return; + } + + function btAlignedObjectArray_btConvexHullInternal__Vertex____reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btConvexHullInternal__Vertex____capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btConvexHullInternal__Vertex____allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btConvexHullInternal__Vertex____copy_28int_2c_20int_2c_20btConvexHullInternal__Vertex___29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btConvexHullInternal__Vertex____size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btConvexHullInternal__Vertex____destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btConvexHullInternal__Vertex____size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btConvexHullInternal__Vertex____deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btConvexHullInternal__PoolArray_btConvexHullInternal__Vertex___PoolArray_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($5 + 4 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(Math_imul(HEAP32[($4 + 8 | 0) >> 2] | 0, 112) | 0, 16 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function btConvexHullInternal__PoolArray_btConvexHullInternal__Vertex___init_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $26 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[$4 >> 2] | 0; + HEAP32[($3 + 4 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + label$3 : { + label$4 : { + if (!(((HEAP32[($3 + 4 | 0) >> 2] | 0) + 1 | 0 | 0) < (HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + $26 = (HEAP32[($3 + 8 | 0) >> 2] | 0) + 112 | 0; + break label$3; + } + $26 = 0; + } + HEAP32[(HEAP32[($3 + 8 | 0) >> 2] | 0) >> 2] = $26; + HEAP32[($3 + 4 | 0) >> 2] = (HEAP32[($3 + 4 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($3 + 8 | 0) >> 2] = (HEAP32[($3 + 8 | 0) >> 2] | 0) + 112 | 0; + continue label$2; + }; + } + return HEAP32[$4 >> 2] | 0 | 0; + } + + function btConvexHullInternal__Vertex__Vertex_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 16 | 0) >> 2] = 0; + btConvexHullInternal__PointR128__PointR128_28_29($4 + 24 | 0 | 0) | 0; + btConvexHullInternal__Point32__Point32_28_29($4 + 88 | 0 | 0) | 0; + HEAP32[($4 + 104 | 0) >> 2] = -1; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btConvexHullInternal__Point32___destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btConvexHullInternal__Point32___deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btConvexHullInternal__Point32_2c_2016u___deallocate_28btConvexHullInternal__Point32__29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btConvexHullInternal__toBtVector_28btConvexHullInternal__Point32_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $12 = Math_fround(0), $23 = Math_fround(0), $34 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $1; + HEAP32[($5 + 24 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + btVector3__btVector3_28_29($5 + 8 | 0 | 0) | 0; + $12 = Math_fround(HEAP32[(HEAP32[($5 + 24 | 0) >> 2] | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($5 + 8 | 0 | 0) | 0) + ((HEAP32[($6 + 108 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $12), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $23 = Math_fround(HEAP32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($5 + 8 | 0 | 0) | 0) + ((HEAP32[($6 + 112 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $23), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $34 = Math_fround(HEAP32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($5 + 8 | 0 | 0) | 0) + ((HEAP32[($6 + 104 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $34), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($0 | 0, $5 + 8 | 0 | 0, $6 | 0); + __stack_pointer = $5 + 32 | 0; + return; + } + + function btConvexHullInternal__getBtNormal_28btConvexHullInternal__Face__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 64 | 0; + __stack_pointer = $5; + HEAP32[($5 + 60 | 0) >> 2] = $1; + HEAP32[($5 + 56 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 60 | 0) >> 2] | 0; + btConvexHullInternal__toBtVector_28btConvexHullInternal__Point32_20const__29($5 + 24 | 0 | 0, $6 | 0, (HEAP32[($5 + 56 | 0) >> 2] | 0) + 28 | 0 | 0); + btConvexHullInternal__toBtVector_28btConvexHullInternal__Point32_20const__29($5 + 8 | 0 | 0, $6 | 0, (HEAP32[($5 + 56 | 0) >> 2] | 0) + 44 | 0 | 0); + btVector3__cross_28btVector3_20const__29_20const($5 + 40 | 0 | 0, $5 + 24 | 0 | 0, $5 + 8 | 0 | 0); + btVector3__normalized_28_29_20const($0 | 0, $5 + 40 | 0 | 0); + __stack_pointer = $5 + 64 | 0; + return; + } + + function btConvexHullInternal__getCoordinates_28btConvexHullInternal__Vertex_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $11 = Math_fround(0), $21 = Math_fround(0), $31 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 44 | 0) >> 2] = $1; + HEAP32[($5 + 40 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 44 | 0) >> 2] | 0; + btVector3__btVector3_28_29($5 + 24 | 0 | 0) | 0; + $11 = Math_fround(btConvexHullInternal__Vertex__xvalue_28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0)); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($5 + 24 | 0 | 0) | 0) + ((HEAP32[($6 + 108 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $11), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $21 = Math_fround(btConvexHullInternal__Vertex__yvalue_28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0)); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($5 + 24 | 0 | 0) | 0) + ((HEAP32[($6 + 112 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $21), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $31 = Math_fround(btConvexHullInternal__Vertex__zvalue_28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0)); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($5 + 24 | 0 | 0) | 0) + ((HEAP32[($6 + 104 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $31), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($5 + 8 | 0 | 0, $5 + 24 | 0 | 0, $6 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($0 | 0, $5 + 8 | 0 | 0, $6 + 16 | 0 | 0); + __stack_pointer = $5 + 48 | 0; + return; + } + + function btConvexHullInternal__Vertex__xvalue_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $14 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($4 + 100 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$2 + } + $14 = Math_fround(HEAP32[($4 + 88 | 0) >> 2] | 0 | 0); + break label$1; + } + $14 = Math_fround(btConvexHullInternal__PointR128__xvalue_28_29_20const($4 + 24 | 0 | 0)); + } + __stack_pointer = $3 + 16 | 0; + return Math_fround($14); + } + + function btConvexHullInternal__Vertex__yvalue_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $14 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($4 + 100 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$2 + } + $14 = Math_fround(HEAP32[($4 + 92 | 0) >> 2] | 0 | 0); + break label$1; + } + $14 = Math_fround(btConvexHullInternal__PointR128__yvalue_28_29_20const($4 + 24 | 0 | 0)); + } + __stack_pointer = $3 + 16 | 0; + return Math_fround($14); + } + + function btConvexHullInternal__Vertex__zvalue_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $14 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($4 + 100 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$2 + } + $14 = Math_fround(HEAP32[($4 + 96 | 0) >> 2] | 0 | 0); + break label$1; + } + $14 = Math_fround(btConvexHullInternal__PointR128__zvalue_28_29_20const($4 + 24 | 0 | 0)); + } + __stack_pointer = $3 + 16 | 0; + return Math_fround($14); + } + + function btConvexHullInternal__PointR128__xvalue_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $9 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + $9 = Math_fround(Math_fround(btConvexHullInternal__Int128__toScalar_28_29_20const($4 | 0)) / Math_fround(btConvexHullInternal__Int128__toScalar_28_29_20const($4 + 48 | 0 | 0))); + __stack_pointer = $3 + 16 | 0; + return Math_fround($9); + } + + function btConvexHullInternal__PointR128__yvalue_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $11 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + $11 = Math_fround(Math_fround(btConvexHullInternal__Int128__toScalar_28_29_20const($4 + 16 | 0 | 0)) / Math_fround(btConvexHullInternal__Int128__toScalar_28_29_20const($4 + 48 | 0 | 0))); + __stack_pointer = $3 + 16 | 0; + return Math_fround($11); + } + + function btConvexHullInternal__PointR128__zvalue_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $11 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + $11 = Math_fround(Math_fround(btConvexHullInternal__Int128__toScalar_28_29_20const($4 + 32 | 0 | 0)) / Math_fround(btConvexHullInternal__Int128__toScalar_28_29_20const($4 + 48 | 0 | 0))); + __stack_pointer = $3 + 16 | 0; + return Math_fround($11); + } + + function btConvexHullInternal__shrink_28float_2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $6 = 0, $194$hi = 0, $195$hi = 0, $18 = 0, $34 = 0, $35 = 0, $45 = 0, $49 = 0, $53 = 0, $57 = 0, i64toi32_i32$3 = 0, $40 = 0, $41 = 0, $42 = 0, $232$hi = 0, $235$hi = 0, $246$hi = 0, $249$hi = 0, $260$hi = 0, $263$hi = 0, $633 = 0, $637 = 0, $926 = 0, $232 = 0, $998 = 0, $246 = 0, $1026 = 0, $260 = 0, $1054 = 0, $342 = Math_fround(0), $354 = Math_fround(0), $366 = Math_fround(0), $516 = 0, $517 = Math_fround(0), $529 = 0, $549 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 496 | 0; + __stack_pointer = $5; + HEAP32[($5 + 488 | 0) >> 2] = $0; + HEAPF32[($5 + 484 | 0) >> 2] = $1; + HEAPF32[($5 + 480 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 488 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if ((HEAP32[($6 + 124 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$2 + } + HEAPF32[($5 + 492 | 0) >> 2] = Math_fround(0 | 0); + break label$1; + } + $18 = (HEAP32[($6 + 100 | 0) >> 2] | 0) + -1 | 0; + HEAP32[($6 + 100 | 0) >> 2] = $18; + HEAP32[($5 + 476 | 0) >> 2] = $18; + btAlignedObjectArray_btConvexHullInternal__Vertex____btAlignedObjectArray_28_29($5 + 456 | 0 | 0) | 0; + HEAP32[((HEAP32[($6 + 124 | 0) >> 2] | 0) + 104 | 0) >> 2] = HEAP32[($5 + 476 | 0) >> 2] | 0; + btAlignedObjectArray_btConvexHullInternal__Vertex____push_back_28btConvexHullInternal__Vertex__20const__29($5 + 456 | 0 | 0, $6 + 124 | 0 | 0); + btAlignedObjectArray_btConvexHullInternal__Face____btAlignedObjectArray_28_29($5 + 436 | 0 | 0) | 0; + $34 = (HEAP32[($6 + 124 | 0) >> 2] | 0) + 88 | 0; + $35 = 8; + i64toi32_i32$2 = $34 + $35 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $633 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 416 | 0) + $35 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $633; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $34; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $637 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 416 | 0) >> 2] = $637; + HEAP32[($5 + 420 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $45 = 0; + i64toi32_i32$1 = i64toi32_i32$0; + btConvexHullInternal__Int128__Int128_28unsigned_20long_20long_2c_20unsigned_20long_20long_29($5 + 400 | 0 | 0, $45 | 0, i64toi32_i32$0 | 0, $45 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$1 = 0; + $49 = 0; + i64toi32_i32$0 = i64toi32_i32$1; + btConvexHullInternal__Int128__Int128_28unsigned_20long_20long_2c_20unsigned_20long_20long_29($5 + 384 | 0 | 0, $49 | 0, i64toi32_i32$0 | 0, $49 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$0 = 0; + $53 = 0; + i64toi32_i32$1 = i64toi32_i32$0; + btConvexHullInternal__Int128__Int128_28unsigned_20long_20long_2c_20unsigned_20long_20long_29($5 + 368 | 0 | 0, $53 | 0, i64toi32_i32$0 | 0, $53 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$1 = 0; + $57 = 0; + i64toi32_i32$0 = i64toi32_i32$1; + btConvexHullInternal__Int128__Int128_28unsigned_20long_20long_2c_20unsigned_20long_20long_29($5 + 352 | 0 | 0, $57 | 0, i64toi32_i32$0 | 0, $57 | 0, i64toi32_i32$0 | 0) | 0; + label$3 : { + label$4 : while (1) { + if (!((btAlignedObjectArray_btConvexHullInternal__Vertex____size_28_29_20const($5 + 456 | 0 | 0) | 0 | 0) > (0 | 0) & 1 | 0)) { + break label$3 + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btConvexHullInternal__Vertex____operator_5b_5d_28int_29($5 + 456 | 0 | 0, (btAlignedObjectArray_btConvexHullInternal__Vertex____size_28_29_20const($5 + 456 | 0 | 0) | 0) - 1 | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 348 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btConvexHullInternal__Vertex____pop_back_28_29($5 + 456 | 0 | 0); + HEAP32[($5 + 344 | 0) >> 2] = HEAP32[((HEAP32[($5 + 348 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($5 + 344 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + label$6 : while (1) { + label$7 : { + if (!((HEAP32[((HEAP32[((HEAP32[($5 + 344 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 104 | 0) >> 2] | 0 | 0) != (HEAP32[($5 + 476 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$7 + } + HEAP32[((HEAP32[((HEAP32[($5 + 344 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 104 | 0) >> 2] = HEAP32[($5 + 476 | 0) >> 2] | 0; + btAlignedObjectArray_btConvexHullInternal__Vertex____push_back_28btConvexHullInternal__Vertex__20const__29($5 + 456 | 0 | 0, (HEAP32[($5 + 344 | 0) >> 2] | 0) + 12 | 0 | 0); + } + label$8 : { + if (!((HEAP32[((HEAP32[($5 + 344 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) != (HEAP32[($5 + 476 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btConvexHullInternal__Pool_btConvexHullInternal__Face___newObject_28_29($6 + 64 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 340 | 0) >> 2] = wasm2js_i32$1; + btConvexHullInternal__Face__init_28btConvexHullInternal__Vertex__2c_20btConvexHullInternal__Vertex__2c_20btConvexHullInternal__Vertex__29(HEAP32[($5 + 340 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5 + 344 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[((HEAP32[($5 + 344 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($5 + 348 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btConvexHullInternal__Face____push_back_28btConvexHullInternal__Face__20const__29($5 + 436 | 0 | 0, $5 + 340 | 0 | 0); + HEAP32[($5 + 336 | 0) >> 2] = HEAP32[($5 + 344 | 0) >> 2] | 0; + HEAP32[($5 + 332 | 0) >> 2] = 0; + HEAP32[($5 + 328 | 0) >> 2] = 0; + label$9 : while (1) { + label$10 : { + if (!((HEAP32[($5 + 332 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$10 + } + if (!((HEAP32[($5 + 328 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$10 + } + btConvexHullInternal__Point32__operator__28btConvexHullInternal__Point32_20const__29_20const($5 + 304 | 0 | 0, (HEAP32[($5 + 348 | 0) >> 2] | 0) + 88 | 0 | 0, $5 + 416 | 0 | 0); + btConvexHullInternal__Point32__operator__28btConvexHullInternal__Point32_20const__29_20const($5 + 264 | 0 | 0, (HEAP32[($5 + 332 | 0) >> 2] | 0) + 88 | 0 | 0, $5 + 416 | 0 | 0); + btConvexHullInternal__Point32__operator__28btConvexHullInternal__Point32_20const__29_20const($5 + 248 | 0 | 0, (HEAP32[($5 + 328 | 0) >> 2] | 0) + 88 | 0 | 0, $5 + 416 | 0 | 0); + btConvexHullInternal__Point32__cross_28btConvexHullInternal__Point32_20const__29_20const($5 + 280 | 0 | 0, $5 + 264 | 0 | 0, $5 + 248 | 0 | 0); + i64toi32_i32$0 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const($5 + 304 | 0 | 0, $5 + 280 | 0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $926 = i64toi32_i32$0; + i64toi32_i32$0 = $5; + HEAP32[($5 + 320 | 0) >> 2] = $926; + HEAP32[($5 + 324 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $5; + i64toi32_i32$1 = HEAP32[($5 + 320 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 324 | 0) >> 2] | 0; + $194$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $195$hi = i64toi32_i32$0; + i64toi32_i32$0 = $194$hi; + i64toi32_i32$0 = $195$hi; + i64toi32_i32$0 = $194$hi; + i64toi32_i32$0 = $195$hi; + i64toi32_i32$0 = $194$hi; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$1 = $195$hi; + i64toi32_i32$3 = 0; + if ((i64toi32_i32$0 | 0) > (i64toi32_i32$1 | 0)) { + $40 = 1 + } else { + if ((i64toi32_i32$0 | 0) >= (i64toi32_i32$1 | 0)) { + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0) { + $41 = 0 + } else { + $41 = 1 + } + $42 = $41; + } else { + $42 = 0 + } + $40 = $42; + } + label$11 : { + if ($40 & 1 | 0) { + break label$11 + } + __assert_fail(86093 | 0, 72732 | 0, 2147 | 0, 77659 | 0); + wasm2js_trap(); + } + btConvexHullInternal__Point32__operator__28btConvexHullInternal__Point32_20const__29_20const_1($5 + 200 | 0 | 0, (HEAP32[($5 + 348 | 0) >> 2] | 0) + 88 | 0 | 0, (HEAP32[($5 + 332 | 0) >> 2] | 0) + 88 | 0 | 0); + btConvexHullInternal__Point32__operator__28btConvexHullInternal__Point32_20const__29_20const_1($5 + 216 | 0 | 0, $5 + 200 | 0 | 0, (HEAP32[($5 + 328 | 0) >> 2] | 0) + 88 | 0 | 0); + btConvexHullInternal__Point32__operator__28btConvexHullInternal__Point32_20const__29_20const_1($5 + 232 | 0 | 0, $5 + 216 | 0 | 0, $5 + 416 | 0 | 0); + i64toi32_i32$2 = HEAP32[($5 + 320 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 324 | 0) >> 2] | 0; + $232 = i64toi32_i32$2; + $232$hi = i64toi32_i32$0; + i64toi32_i32$2 = HEAP32[($5 + 232 | 0) >> 2] | 0; + i64toi32_i32$0 = i64toi32_i32$2 >> 31 | 0; + $235$hi = i64toi32_i32$0; + i64toi32_i32$0 = $232$hi; + i64toi32_i32$0 = $235$hi; + $998 = i64toi32_i32$2; + i64toi32_i32$0 = $232$hi; + i64toi32_i32$2 = $235$hi; + i64toi32_i32$2 = __wasm_i64_mul($232 | 0, i64toi32_i32$0 | 0, $998 | 0, i64toi32_i32$2 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + btConvexHullInternal__Int128__Int128_28long_20long_29($5 + 184 | 0 | 0, i64toi32_i32$2 | 0, i64toi32_i32$0 | 0) | 0; + btConvexHullInternal__Int128__operator___28btConvexHullInternal__Int128_20const__29($5 + 400 | 0 | 0, $5 + 184 | 0 | 0) | 0; + i64toi32_i32$0 = HEAP32[($5 + 320 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($5 + 324 | 0) >> 2] | 0; + $246 = i64toi32_i32$0; + $246$hi = i64toi32_i32$2; + i64toi32_i32$0 = HEAP32[($5 + 236 | 0) >> 2] | 0; + i64toi32_i32$2 = i64toi32_i32$0 >> 31 | 0; + $249$hi = i64toi32_i32$2; + i64toi32_i32$2 = $246$hi; + i64toi32_i32$2 = $249$hi; + $1026 = i64toi32_i32$0; + i64toi32_i32$2 = $246$hi; + i64toi32_i32$0 = $249$hi; + i64toi32_i32$0 = __wasm_i64_mul($246 | 0, i64toi32_i32$2 | 0, $1026 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + btConvexHullInternal__Int128__Int128_28long_20long_29($5 + 168 | 0 | 0, i64toi32_i32$0 | 0, i64toi32_i32$2 | 0) | 0; + btConvexHullInternal__Int128__operator___28btConvexHullInternal__Int128_20const__29($5 + 384 | 0 | 0, $5 + 168 | 0 | 0) | 0; + i64toi32_i32$2 = HEAP32[($5 + 320 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 324 | 0) >> 2] | 0; + $260 = i64toi32_i32$2; + $260$hi = i64toi32_i32$0; + i64toi32_i32$2 = HEAP32[($5 + 240 | 0) >> 2] | 0; + i64toi32_i32$0 = i64toi32_i32$2 >> 31 | 0; + $263$hi = i64toi32_i32$0; + i64toi32_i32$0 = $260$hi; + i64toi32_i32$0 = $263$hi; + $1054 = i64toi32_i32$2; + i64toi32_i32$0 = $260$hi; + i64toi32_i32$2 = $263$hi; + i64toi32_i32$2 = __wasm_i64_mul($260 | 0, i64toi32_i32$0 | 0, $1054 | 0, i64toi32_i32$2 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + btConvexHullInternal__Int128__Int128_28long_20long_29($5 + 152 | 0 | 0, i64toi32_i32$2 | 0, i64toi32_i32$0 | 0) | 0; + btConvexHullInternal__Int128__operator___28btConvexHullInternal__Int128_20const__29($5 + 368 | 0 | 0, $5 + 152 | 0 | 0) | 0; + i64toi32_i32$3 = $5; + i64toi32_i32$0 = HEAP32[($5 + 320 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($5 + 324 | 0) >> 2] | 0; + btConvexHullInternal__Int128__Int128_28long_20long_29($5 + 136 | 0 | 0, i64toi32_i32$0 | 0, i64toi32_i32$2 | 0) | 0; + btConvexHullInternal__Int128__operator___28btConvexHullInternal__Int128_20const__29($5 + 352 | 0 | 0, $5 + 136 | 0 | 0) | 0; + } + label$12 : { + if ((HEAP32[((HEAP32[($5 + 336 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) != (HEAP32[($5 + 476 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$12 + } + __assert_fail(76078 | 0, 72732 | 0, 2155 | 0, 77659 | 0); + wasm2js_trap(); + } + HEAP32[((HEAP32[($5 + 336 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[($5 + 476 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 336 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[($5 + 340 | 0) >> 2] | 0; + HEAP32[($5 + 332 | 0) >> 2] = HEAP32[($5 + 328 | 0) >> 2] | 0; + HEAP32[($5 + 328 | 0) >> 2] = HEAP32[((HEAP32[($5 + 336 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + HEAP32[($5 + 336 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($5 + 336 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + if ((HEAP32[($5 + 336 | 0) >> 2] | 0 | 0) != (HEAP32[($5 + 344 | 0) >> 2] | 0 | 0) & 1 | 0) { + continue label$9 + } + break label$9; + }; + } + HEAP32[($5 + 344 | 0) >> 2] = HEAP32[(HEAP32[($5 + 344 | 0) >> 2] | 0) >> 2] | 0; + if ((HEAP32[($5 + 344 | 0) >> 2] | 0 | 0) != (HEAP32[((HEAP32[($5 + 348 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) & 1 | 0) { + continue label$6 + } + break label$6; + }; + } + continue label$4; + }; + } + label$13 : { + label$14 : { + if (!((btConvexHullInternal__Int128__getSign_28_29_20const($5 + 352 | 0 | 0) | 0 | 0) <= (0 | 0) & 1 | 0)) { + break label$14 + } + HEAPF32[($5 + 492 | 0) >> 2] = Math_fround(0 | 0); + HEAP32[($5 + 132 | 0) >> 2] = 1; + break label$13; + } + btVector3__btVector3_28_29($5 + 116 | 0 | 0) | 0; + $342 = Math_fround(btConvexHullInternal__Int128__toScalar_28_29_20const($5 + 400 | 0 | 0)); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($5 + 116 | 0 | 0) | 0) + ((HEAP32[($6 + 108 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $342), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $354 = Math_fround(btConvexHullInternal__Int128__toScalar_28_29_20const($5 + 384 | 0 | 0)); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($5 + 116 | 0 | 0) | 0) + ((HEAP32[($6 + 112 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $354), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $366 = Math_fround(btConvexHullInternal__Int128__toScalar_28_29_20const($5 + 368 | 0 | 0)); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($5 + 116 | 0 | 0) | 0) + ((HEAP32[($6 + 104 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $366), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(4.0) * Math_fround(btConvexHullInternal__Int128__toScalar_28_29_20const($5 + 352 | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 112 | 0) >> 2] = wasm2js_f32$0; + btVector3__operator___28float_20const__29($5 + 116 | 0 | 0, $5 + 112 | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29_2($5 + 116 | 0 | 0, $6 | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btConvexHullInternal__Face____size_28_29_20const($5 + 436 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 108 | 0) >> 2] = wasm2js_i32$1; + label$15 : { + if (!(Math_fround(HEAPF32[($5 + 480 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$15 + } + HEAPF32[($5 + 104 | 0) >> 2] = Math_fround(3402823466385288598117041.0e14); + HEAP32[($5 + 100 | 0) >> 2] = 0; + label$16 : { + label$17 : while (1) { + if (!((HEAP32[($5 + 100 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 108 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$16 + } + btConvexHullInternal__getBtNormal_28btConvexHullInternal__Face__29($5 + 84 | 0 | 0, $6 | 0, HEAP32[(btAlignedObjectArray_btConvexHullInternal__Face____operator_5b_5d_28int_29($5 + 436 | 0 | 0, HEAP32[($5 + 100 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0); + btConvexHullInternal__toBtVector_28btConvexHullInternal__Point32_20const__29($5 + 48 | 0 | 0, $6 | 0, (HEAP32[(btAlignedObjectArray_btConvexHullInternal__Face____operator_5b_5d_28int_29($5 + 436 | 0 | 0, HEAP32[($5 + 100 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0) + 12 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 64 | 0 | 0, $5 + 48 | 0 | 0, $5 + 116 | 0 | 0); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($5 + 84 | 0 | 0, $5 + 64 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 80 | 0) >> 2] = wasm2js_f32$0; + label$18 : { + if (!(Math_fround(HEAPF32[($5 + 80 | 0) >> 2]) < Math_fround(HEAPF32[($5 + 104 | 0) >> 2]) & 1 | 0)) { + break label$18 + } + HEAPF32[($5 + 104 | 0) >> 2] = Math_fround(HEAPF32[($5 + 80 | 0) >> 2]); + } + HEAP32[($5 + 100 | 0) >> 2] = (HEAP32[($5 + 100 | 0) >> 2] | 0) + 1 | 0; + continue label$17; + }; + } + label$19 : { + if (!(Math_fround(HEAPF32[($5 + 104 | 0) >> 2]) <= Math_fround(0 | 0) & 1 | 0)) { + break label$19 + } + HEAPF32[($5 + 492 | 0) >> 2] = Math_fround(0 | 0); + HEAP32[($5 + 132 | 0) >> 2] = 1; + break label$13; + } + HEAPF32[($5 + 44 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 104 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 480 | 0) >> 2])); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(HEAPF32[(float_20const__20btMin_float__28float_20const__2c_20float_20const__29($5 + 484 | 0 | 0, $5 + 44 | 0 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 484 | 0) >> 2] = wasm2js_f32$0; + } + HEAP32[($5 + 40 | 0) >> 2] = 243703; + HEAP32[($5 + 36 | 0) >> 2] = 0; + label$20 : { + label$21 : while (1) { + if (!((HEAP32[($5 + 36 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 108 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$20 + } + void_20btSwap_btConvexHullInternal__Face___28btConvexHullInternal__Face___2c_20btConvexHullInternal__Face___29(btAlignedObjectArray_btConvexHullInternal__Face____operator_5b_5d_28int_29($5 + 436 | 0 | 0, HEAP32[($5 + 36 | 0) >> 2] | 0 | 0) | 0 | 0, btAlignedObjectArray_btConvexHullInternal__Face____operator_5b_5d_28int_29($5 + 436 | 0 | 0, ((HEAP32[($5 + 40 | 0) >> 2] | 0) >>> 0) % ((HEAP32[($5 + 108 | 0) >> 2] | 0) >>> 0) | 0 | 0) | 0 | 0); + HEAP32[($5 + 36 | 0) >> 2] = (HEAP32[($5 + 36 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($5 + 40 | 0) >> 2] = Math_imul(HEAP32[($5 + 40 | 0) >> 2] | 0, 1664525) + 1013904223 | 0; + continue label$21; + }; + } + HEAP32[($5 + 32 | 0) >> 2] = 0; + label$22 : { + label$23 : while (1) { + if (!((HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 108 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$22 + } + $516 = HEAP32[(btAlignedObjectArray_btConvexHullInternal__Face____operator_5b_5d_28int_29($5 + 436 | 0 | 0, HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + $517 = Math_fround(HEAPF32[($5 + 484 | 0) >> 2]); + btAlignedObjectArray_btConvexHullInternal__Vertex____btAlignedObjectArray_28btAlignedObjectArray_btConvexHullInternal__Vertex___20const__29($5 + 12 | 0 | 0, $5 + 456 | 0 | 0) | 0; + $529 = (btConvexHullInternal__shiftFace_28btConvexHullInternal__Face__2c_20float_2c_20btAlignedObjectArray_btConvexHullInternal__Vertex___29($6 | 0, $516 | 0, Math_fround($517), $5 + 12 | 0 | 0) | 0) ^ -1 | 0; + btAlignedObjectArray_btConvexHullInternal__Vertex_____btAlignedObjectArray_28_29($5 + 12 | 0 | 0) | 0; + label$24 : { + if (!($529 & 1 | 0)) { + break label$24 + } + HEAPF32[($5 + 492 | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[($5 + 484 | 0) >> 2])); + HEAP32[($5 + 132 | 0) >> 2] = 1; + break label$13; + } + HEAP32[($5 + 32 | 0) >> 2] = (HEAP32[($5 + 32 | 0) >> 2] | 0) + 1 | 0; + continue label$23; + }; + } + HEAPF32[($5 + 492 | 0) >> 2] = Math_fround(HEAPF32[($5 + 484 | 0) >> 2]); + HEAP32[($5 + 132 | 0) >> 2] = 1; + } + btAlignedObjectArray_btConvexHullInternal__Face_____btAlignedObjectArray_28_29($5 + 436 | 0 | 0) | 0; + btAlignedObjectArray_btConvexHullInternal__Vertex_____btAlignedObjectArray_28_29($5 + 456 | 0 | 0) | 0; + } + $549 = Math_fround(HEAPF32[($5 + 492 | 0) >> 2]); + __stack_pointer = $5 + 496 | 0; + return Math_fround($549); + } + + function btAlignedObjectArray_btConvexHullInternal__Vertex____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btConvexHullInternal__Vertex__2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btConvexHullInternal__Vertex____init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btConvexHullInternal__Vertex____push_back_28btConvexHullInternal__Vertex__20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btConvexHullInternal__Vertex____size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btConvexHullInternal__Vertex____capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btConvexHullInternal__Vertex____reserve_28int_29($5 | 0, btAlignedObjectArray_btConvexHullInternal__Vertex____allocSize_28int_29($5 | 0, btAlignedObjectArray_btConvexHullInternal__Vertex____size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btConvexHullInternal__Face____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btConvexHullInternal__Face__2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btConvexHullInternal__Face____init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btConvexHullInternal__Vertex____pop_back_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85800 | 0, 78295 | 0, 201 | 0, 77711 | 0); + wasm2js_trap(); + } + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + -1 | 0; + __stack_pointer = $3 + 16 | 0; + return; + } + + function btConvexHullInternal__Pool_btConvexHullInternal__Face___newObject_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $25 = 0, $34 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$1 + } + HEAP32[($3 + 4 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + label$2 : { + label$3 : { + if (!((HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + break label$2; + } + $25 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(12 | 0, 16 | 0) | 0; + btConvexHullInternal__PoolArray_btConvexHullInternal__Face___PoolArray_28int_29($25 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($3 + 4 | 0) >> 2] = $25; + HEAP32[((HEAP32[($3 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[$4 >> 2] | 0; + HEAP32[$4 >> 2] = HEAP32[($3 + 4 | 0) >> 2] | 0; + } + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btConvexHullInternal__PoolArray_btConvexHullInternal__Face___init_28_29(HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + } + HEAP32[($4 + 8 | 0) >> 2] = HEAP32[(HEAP32[($3 + 8 | 0) >> 2] | 0) >> 2] | 0; + $34 = HEAP32[($3 + 8 | 0) >> 2] | 0; + btConvexHullInternal__Face__Face_28_29($34 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $34 | 0; + } + + function btConvexHullInternal__Face__init_28btConvexHullInternal__Vertex__2c_20btConvexHullInternal__Vertex__2c_20btConvexHullInternal__Vertex__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $7 = 0, $13 = 0, $15 = 0, $25 = 0, $27 = 0, $37 = 0, $39 = 0, $87 = 0, $97 = 0, $115 = 0, $128 = 0, $143 = 0, $153 = 0; + $6 = __stack_pointer - 48 | 0; + __stack_pointer = $6; + HEAP32[($6 + 44 | 0) >> 2] = $0; + HEAP32[($6 + 40 | 0) >> 2] = $1; + HEAP32[($6 + 36 | 0) >> 2] = $2; + HEAP32[($6 + 32 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 44 | 0) >> 2] | 0; + HEAP32[($7 + 4 | 0) >> 2] = HEAP32[($6 + 40 | 0) >> 2] | 0; + $13 = $7 + 12 | 0; + i64toi32_i32$2 = (HEAP32[($6 + 40 | 0) >> 2] | 0) + 88 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $87 = i64toi32_i32$0; + i64toi32_i32$0 = $13; + HEAP32[i64toi32_i32$0 >> 2] = $87; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $15 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $15 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $97 = i64toi32_i32$1; + i64toi32_i32$1 = $13 + $15 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $97; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btConvexHullInternal__Vertex__operator__28btConvexHullInternal__Vertex_20const__29_20const($6 + 16 | 0 | 0, HEAP32[($6 + 36 | 0) >> 2] | 0 | 0, HEAP32[($6 + 40 | 0) >> 2] | 0 | 0); + $25 = $7 + 28 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 16 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 20 | 0) >> 2] | 0; + $115 = i64toi32_i32$0; + i64toi32_i32$0 = $25; + HEAP32[i64toi32_i32$0 >> 2] = $115; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $27 = 8; + i64toi32_i32$2 = ($6 + 16 | 0) + $27 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $128 = i64toi32_i32$1; + i64toi32_i32$1 = $25 + $27 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $128; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btConvexHullInternal__Vertex__operator__28btConvexHullInternal__Vertex_20const__29_20const($6 | 0, HEAP32[($6 + 32 | 0) >> 2] | 0 | 0, HEAP32[($6 + 40 | 0) >> 2] | 0 | 0); + $37 = $7 + 44 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[$6 >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 4 | 0) >> 2] | 0; + $143 = i64toi32_i32$0; + i64toi32_i32$0 = $37; + HEAP32[i64toi32_i32$0 >> 2] = $143; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $39 = 8; + i64toi32_i32$2 = $6 + $39 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $153 = i64toi32_i32$1; + i64toi32_i32$1 = $37 + $39 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $153; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + label$1 : { + label$2 : { + if (!((HEAP32[((HEAP32[($6 + 40 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[((HEAP32[((HEAP32[($6 + 40 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] = $7; + break label$1; + } + HEAP32[((HEAP32[($6 + 40 | 0) >> 2] | 0) + 12 | 0) >> 2] = $7; + } + HEAP32[((HEAP32[($6 + 40 | 0) >> 2] | 0) + 16 | 0) >> 2] = $7; + __stack_pointer = $6 + 48 | 0; + return; + } + + function btAlignedObjectArray_btConvexHullInternal__Face____push_back_28btConvexHullInternal__Face__20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btConvexHullInternal__Face____size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btConvexHullInternal__Face____capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btConvexHullInternal__Face____reserve_28int_29($5 | 0, btAlignedObjectArray_btConvexHullInternal__Face____allocSize_28int_29($5 | 0, btAlignedObjectArray_btConvexHullInternal__Face____size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btConvexHullInternal__Point32__operator__28btConvexHullInternal__Point32_20const__29_20const_1($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $1; + HEAP32[($5 + 8 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btConvexHullInternal__Point32__Point32_28int_2c_20int_2c_20int_29($0 | 0, (HEAP32[$6 >> 2] | 0) + (HEAP32[(HEAP32[($5 + 8 | 0) >> 2] | 0) >> 2] | 0) | 0 | 0, (HEAP32[($6 + 4 | 0) >> 2] | 0) + (HEAP32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0 | 0, (HEAP32[($6 + 8 | 0) >> 2] | 0) + (HEAP32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) | 0 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return; + } + + function btConvexHullInternal__Int128__Int128_28long_20long_29($0, $1, $1$hi) { + $0 = $0 | 0; + $1 = $1 | 0; + $1$hi = $1$hi | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $7$hi = 0, $8$hi = 0, i64toi32_i32$3 = 0, $4 = 0, $5 = 0, $16 = 0, $17 = 0, $18 = 0, $12$hi = 0, $13$hi = 0, i64toi32_i32$4 = 0, $30 = 0, $46 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$1 = $4; + HEAP32[i64toi32_i32$1 >> 2] = $1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $5 = HEAP32[(i64toi32_i32$1 + 12 | 0) >> 2] | 0; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $30 = i64toi32_i32$0; + i64toi32_i32$0 = $5; + HEAP32[i64toi32_i32$0 >> 2] = $30; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $7$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $8$hi = i64toi32_i32$0; + i64toi32_i32$0 = $7$hi; + i64toi32_i32$0 = $8$hi; + i64toi32_i32$0 = $7$hi; + i64toi32_i32$0 = $8$hi; + i64toi32_i32$0 = $7$hi; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$1 = $8$hi; + i64toi32_i32$3 = 0; + if ((i64toi32_i32$0 | 0) > (i64toi32_i32$1 | 0)) { + $16 = 1 + } else { + if ((i64toi32_i32$0 | 0) >= (i64toi32_i32$1 | 0)) { + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0) { + $17 = 0 + } else { + $17 = 1 + } + $18 = $17; + } else { + $18 = 0 + } + $16 = $18; + } + i64toi32_i32$2 = 0; + $12$hi = i64toi32_i32$2; + i64toi32_i32$2 = -1; + $13$hi = i64toi32_i32$2; + i64toi32_i32$2 = $12$hi; + i64toi32_i32$2 = $13$hi; + i64toi32_i32$4 = $16 & 1 | 0; + i64toi32_i32$2 = $12$hi; + i64toi32_i32$0 = $13$hi; + i64toi32_i32$1 = i64toi32_i32$4 ? 0 : -1; + i64toi32_i32$3 = i64toi32_i32$4 ? i64toi32_i32$2 : i64toi32_i32$0; + $46 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[(i64toi32_i32$1 + 8 | 0) >> 2] = $46; + HEAP32[(i64toi32_i32$1 + 12 | 0) >> 2] = i64toi32_i32$3; + return i64toi32_i32$1 | 0; + } + + function btConvexHullInternal__Int128__getSign_28_29_20const($0) { + $0 = $0 | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, $4 = 0, $5$hi = 0, $6$hi = 0, $14$hi = 0, $15$hi = 0, $23$hi = 0, $24$hi = 0, $3 = 0, $15 = 0, $16 = 0, $17 = 0, $13 = 0, $22 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 12 | 0) >> 2] | 0; + $5$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $6$hi = i64toi32_i32$1; + i64toi32_i32$1 = $5$hi; + i64toi32_i32$1 = $6$hi; + i64toi32_i32$1 = $5$hi; + i64toi32_i32$1 = $6$hi; + i64toi32_i32$1 = $5$hi; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$0 = $6$hi; + i64toi32_i32$3 = 0; + if ((i64toi32_i32$1 | 0) < (i64toi32_i32$0 | 0)) { + $15 = 1 + } else { + if ((i64toi32_i32$1 | 0) <= (i64toi32_i32$0 | 0)) { + if (i64toi32_i32$2 >>> 0 >= i64toi32_i32$3 >>> 0) { + $16 = 0 + } else { + $16 = 1 + } + $17 = $16; + } else { + $17 = 0 + } + $15 = $17; + } + label$1 : { + label$2 : { + if (!($15 & 1 | 0)) { + break label$2 + } + $13 = -1; + break label$1; + } + i64toi32_i32$3 = $4; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$3 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$3 + 12 | 0) >> 2] | 0; + $14$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $15$hi = i64toi32_i32$1; + i64toi32_i32$1 = $14$hi; + i64toi32_i32$1 = $15$hi; + i64toi32_i32$1 = $14$hi; + i64toi32_i32$1 = $15$hi; + i64toi32_i32$1 = $14$hi; + i64toi32_i32$3 = i64toi32_i32$2; + i64toi32_i32$2 = $15$hi; + i64toi32_i32$0 = 0; + $22 = 1; + label$3 : { + if (((i64toi32_i32$3 | 0) != (i64toi32_i32$0 | 0) | (i64toi32_i32$1 | 0) != (i64toi32_i32$2 | 0) | 0) & 1 | 0) { + break label$3 + } + i64toi32_i32$0 = $4; + i64toi32_i32$3 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $23$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $24$hi = i64toi32_i32$1; + i64toi32_i32$1 = $23$hi; + i64toi32_i32$1 = $24$hi; + i64toi32_i32$1 = $23$hi; + i64toi32_i32$1 = $24$hi; + i64toi32_i32$1 = $23$hi; + i64toi32_i32$0 = i64toi32_i32$3; + i64toi32_i32$3 = $24$hi; + i64toi32_i32$2 = 0; + $22 = (i64toi32_i32$0 | 0) != (i64toi32_i32$2 | 0) | (i64toi32_i32$1 | 0) != (i64toi32_i32$3 | 0) | 0; + } + $13 = $22 & 1 | 0 ? 1 : 0; + } + return $13 | 0; + } + + function btConvexHullInternal__Int128__toScalar_28_29_20const($0) { + $0 = $0 | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, i64toi32_i32$2 = 0, $3 = 0, $4 = 0, $6$hi = 0, i64toi32_i32$0 = 0, $5$hi = 0, $11 = 0, $12 = 0, $14 = 0, $19 = Math_fround(0), $13 = Math_fround(0); + $3 = __stack_pointer - 32 | 0; + __stack_pointer = $3; + HEAP32[($3 + 28 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 28 | 0) >> 2] | 0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 12 | 0) >> 2] | 0; + $5$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $6$hi = i64toi32_i32$1; + i64toi32_i32$1 = $5$hi; + i64toi32_i32$1 = $6$hi; + i64toi32_i32$1 = $5$hi; + i64toi32_i32$1 = $6$hi; + i64toi32_i32$1 = $5$hi; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$0 = $6$hi; + i64toi32_i32$3 = 0; + if ((i64toi32_i32$1 | 0) > ($6$hi | 0)) { + $11 = 1 + } else { + if ((i64toi32_i32$1 | 0) >= (i64toi32_i32$0 | 0)) { + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0) { + $12 = 0 + } else { + $12 = 1 + } + $14 = $12; + } else { + $14 = 0 + } + $11 = $14; + } + label$1 : { + label$2 : { + if (!($11 & 1 | 0)) { + break label$2 + } + i64toi32_i32$3 = $4; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$3 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$3 + 12 | 0) >> 2] | 0; + i64toi32_i32$3 = 0; + $13 = Math_fround(+(i64toi32_i32$2 >>> 0) + 4294967296.0 * +(i64toi32_i32$1 >>> 0)); + i64toi32_i32$3 = $4; + i64toi32_i32$1 = HEAP32[i64toi32_i32$3 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] | 0; + i64toi32_i32$3 = 0; + $19 = Math_fround(Math_fround($13 * Math_fround(18446744073709551615.0)) + Math_fround(+(i64toi32_i32$1 >>> 0) + 4294967296.0 * +(i64toi32_i32$2 >>> 0))); + break label$1; + } + btConvexHullInternal__Int128__operator__28_29_20const($3 + 8 | 0 | 0, $4 | 0); + $19 = Math_fround(-Math_fround(btConvexHullInternal__Int128__toScalar_28_29_20const($3 + 8 | 0 | 0))); + } + __stack_pointer = $3 + 32 | 0; + return Math_fround($19); + } + + function btAlignedObjectArray_btConvexHullInternal__Face____size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btConvexHullInternal__Face____operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78295 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btConvexHullInternal__Face____size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78295 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 2 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function void_20btSwap_btConvexHullInternal__Face___28btConvexHullInternal__Face___2c_20btConvexHullInternal__Face___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] = HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + return; + } + + function btAlignedObjectArray_btConvexHullInternal__Vertex____btAlignedObjectArray_28btAlignedObjectArray_btConvexHullInternal__Vertex___20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $8 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btConvexHullInternal__Vertex__2c_2016u___btAlignedAllocator_28_29($5 | 0) | 0; + btAlignedObjectArray_btConvexHullInternal__Vertex____init_28_29($5 | 0); + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btConvexHullInternal__Vertex____size_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + $8 = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 0; + btAlignedObjectArray_btConvexHullInternal__Vertex____resize_28int_2c_20btConvexHullInternal__Vertex__20const__29($5 | 0, $8 | 0, $4 | 0); + btAlignedObjectArray_btConvexHullInternal__Vertex____copy_28int_2c_20int_2c_20btConvexHullInternal__Vertex___29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function btConvexHullInternal__shiftFace_28btConvexHullInternal__Face__2c_20float_2c_20btAlignedObjectArray_btConvexHullInternal__Vertex___29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $7 = 0, $951 = 0, $992 = 0, $204 = 0, $205 = 0, $158$hi = 0, $159$hi = 0, $169$hi = 0, $170$hi = 0, $35 = 0, $50 = 0, $65 = 0, $76 = Math_fround(0), $82 = 0, $93 = Math_fround(0), $99 = 0, $110 = Math_fround(0), $116 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $210 = 0, $211 = 0, $245 = 0, $253 = 0, $261 = 0, $269 = 0, $359 = 0, $367 = 0, $375 = 0, $383 = 0, $651$hi = 0, $652$hi = 0, $656$hi = 0, $657$hi = 0, $688$hi = 0, $689$hi = 0, $690$hi = 0, $691$hi = 0, $698$hi = 0, $699$hi = 0, $700$hi = 0, $701$hi = 0, $717$hi = 0, $718$hi = 0, $719$hi = 0, $720$hi = 0, $736$hi = 0, $737$hi = 0, $738$hi = 0, $739$hi = 0, $773$hi = 0, $774$hi = 0, $775$hi = 0, $776$hi = 0, $783$hi = 0, $784$hi = 0, $785$hi = 0, $786$hi = 0, $802$hi = 0, $803$hi = 0, $804$hi = 0, $805$hi = 0, $821$hi = 0, $822$hi = 0, $823$hi = 0, $824$hi = 0, $858$hi = 0, $859$hi = 0, $860$hi = 0, $861$hi = 0, $868$hi = 0, $869$hi = 0, $870$hi = 0, $871$hi = 0, $887$hi = 0, $888$hi = 0, $889$hi = 0, $890$hi = 0, $906$hi = 0, $907$hi = 0, $908$hi = 0, $909$hi = 0, $940 = 0, $994 = 0, $1000 = 0, $1006 = 0, $1012 = 0, $1018 = 0, $1024 = 0, $1030 = 0, $1039 = Math_fround(0), $1045 = 0, $1052 = Math_fround(0), $1058 = 0, $1065 = Math_fround(0), $1071 = 0, $1278 = 0, $1284 = 0, $1288 = 0, $1332 = 0, $1334 = 0, $31 = Math_fround(0), $46 = Math_fround(0), $61 = Math_fround(0), $84 = 0, $101 = 0, $1619 = 0, $1648 = 0, $158 = 0, $1656 = 0, $169 = 0, $1673 = 0, $1821 = 0, $1837 = 0, $1853 = 0, $1869 = 0, $1873 = 0, $2043 = 0, $2059 = 0, $2075 = 0, $2091 = 0, $2095 = 0, $2518 = 0, $2532 = 0, $2546 = 0, $2560 = 0, $2591 = 0, $2624 = 0, $651 = 0, $2635 = 0, $656 = 0, $2646 = 0, $688 = 0, $2698 = 0, $690 = 0, $2708 = 0, $698 = 0, $2719 = 0, $700 = 0, $2729 = 0, $717 = 0, $2755 = 0, $719 = 0, $2765 = 0, $736 = 0, $2791 = 0, $738 = 0, $2801 = 0, $773 = 0, $2858 = 0, $775 = 0, $2868 = 0, $783 = 0, $2879 = 0, $785 = 0, $2889 = 0, $802 = 0, $2915 = 0, $804 = 0, $2925 = 0, $821 = 0, $2951 = 0, $823 = 0, $2961 = 0, $858 = 0, $3018 = 0, $860 = 0, $3028 = 0, $868 = 0, $3039 = 0, $870 = 0, $3049 = 0, $887 = 0, $3075 = 0, $889 = 0, $3085 = 0, $906 = 0, $3111 = 0, $908 = 0, $3121 = 0, $3183 = 0, $3187 = 0, $3207 = 0, $3211 = 0, $3227 = 0, $3231 = 0, $3247 = 0, $3251 = 0, $3264 = 0, $3268 = 0, $3295 = 0, $3308 = 0, $3321 = 0, $3334 = 0, $3347 = 0, $3360 = 0, $3373 = 0, $3386 = 0, $4019 = 0, $4032 = 0, $1345 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 1248 | 0; + __stack_pointer = $6; + HEAP32[($6 + 1240 | 0) >> 2] = $0; + HEAP32[($6 + 1236 | 0) >> 2] = $1; + HEAPF32[($6 + 1232 | 0) >> 2] = $2; + HEAP32[($6 + 1228 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 1240 | 0) >> 2] | 0; + btConvexHullInternal__getBtNormal_28btConvexHullInternal__Face__29($6 + 1196 | 0 | 0, $7 | 0, HEAP32[($6 + 1236 | 0) >> 2] | 0 | 0); + HEAPF32[($6 + 1192 | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[($6 + 1232 | 0) >> 2])); + operator__28btVector3_20const__2c_20float_20const__29($6 + 1212 | 0 | 0, $6 + 1196 | 0 | 0, $6 + 1192 | 0 | 0); + label$1 : { + if (!(Math_fround(HEAPF32[(btVector3__operator_20float__28_29($7 | 0) | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0)) { + break label$1 + } + $31 = Math_fround(HEAPF32[(btVector3__operator_20float__28_29($7 | 0) | 0) >> 2]); + $35 = btVector3__operator_20float__28_29($6 + 1212 | 0 | 0) | 0; + HEAPF32[$35 >> 2] = Math_fround(Math_fround(HEAPF32[$35 >> 2]) / $31); + } + label$2 : { + if (!(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($7 | 0) | 0) + 4 | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + $46 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($7 | 0) | 0) + 4 | 0) >> 2]); + $50 = btVector3__operator_20float__28_29($6 + 1212 | 0 | 0) | 0; + HEAPF32[($50 + 4 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($50 + 4 | 0) >> 2]) / $46); + } + label$3 : { + if (!(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($7 | 0) | 0) + 8 | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0)) { + break label$3 + } + $61 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($7 | 0) | 0) + 8 | 0) >> 2]); + $65 = btVector3__operator_20float__28_29($6 + 1212 | 0 | 0) | 0; + HEAPF32[($65 + 8 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($65 + 8 | 0) >> 2]) / $61); + } + $76 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 1212 | 0 | 0) | 0) + ((HEAP32[($7 + 108 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + label$4 : { + label$5 : { + if (!(Math_fround(Math_abs($76)) < Math_fround(2147483648.0))) { + break label$5 + } + $82 = ~~$76; + break label$4; + } + $82 = -2147483648; + } + $84 = $82; + $93 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 1212 | 0 | 0) | 0) + ((HEAP32[($7 + 112 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + label$6 : { + label$7 : { + if (!(Math_fround(Math_abs($93)) < Math_fround(2147483648.0))) { + break label$7 + } + $99 = ~~$93; + break label$6; + } + $99 = -2147483648; + } + $101 = $99; + $110 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 1212 | 0 | 0) | 0) + ((HEAP32[($7 + 104 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + label$8 : { + label$9 : { + if (!(Math_fround(Math_abs($110)) < Math_fround(2147483648.0))) { + break label$9 + } + $116 = ~~$110; + break label$8; + } + $116 = -2147483648; + } + btConvexHullInternal__Point32__Point32_28int_2c_20int_2c_20int_29($6 + 1176 | 0 | 0, $84 | 0, $101 | 0, $116 | 0) | 0; + label$10 : { + label$11 : { + if (!((btConvexHullInternal__Point32__isZero_28_29($6 + 1176 | 0 | 0) | 0) & 1 | 0)) { + break label$11 + } + HEAP8[($6 + 1247 | 0) >> 0] = 1 & 1 | 0; + break label$10; + } + btConvexHullInternal__Face__getNormal_28_29($6 + 1152 | 0 | 0, HEAP32[($6 + 1236 | 0) >> 2] | 0 | 0); + i64toi32_i32$0 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const((HEAP32[($6 + 1236 | 0) >> 2] | 0) + 12 | 0 | 0, $6 + 1152 | 0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $1619 = i64toi32_i32$0; + i64toi32_i32$0 = $6; + HEAP32[($6 + 1144 | 0) >> 2] = $1619; + HEAP32[($6 + 1148 | 0) >> 2] = i64toi32_i32$1; + btConvexHullInternal__Point32__operator__28btConvexHullInternal__Point32_20const__29_20const_1($6 + 1128 | 0 | 0, (HEAP32[($6 + 1236 | 0) >> 2] | 0) + 12 | 0 | 0, $6 + 1176 | 0 | 0); + i64toi32_i32$1 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const($6 + 1128 | 0 | 0, $6 + 1152 | 0 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $1648 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 1120 | 0) >> 2] = $1648; + HEAP32[($6 + 1124 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 1120 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 1124 | 0) >> 2] | 0; + $158 = i64toi32_i32$0; + $158$hi = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 1144 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 1148 | 0) >> 2] | 0; + $159$hi = i64toi32_i32$0; + i64toi32_i32$0 = $158$hi; + i64toi32_i32$0 = $159$hi; + i64toi32_i32$0 = $158$hi; + i64toi32_i32$0 = $159$hi; + $1656 = i64toi32_i32$1; + i64toi32_i32$0 = $158$hi; + i64toi32_i32$2 = $158; + i64toi32_i32$1 = $159$hi; + i64toi32_i32$3 = $1656; + if ((i64toi32_i32$0 | 0) < (i64toi32_i32$1 | 0)) { + $206 = 1 + } else { + if ((i64toi32_i32$0 | 0) <= (i64toi32_i32$1 | 0)) { + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$3 >>> 0) { + $207 = 0 + } else { + $207 = 1 + } + $208 = $207; + } else { + $208 = 0 + } + $206 = $208; + } + label$12 : { + if ($206 & 1 | 0) { + break label$12 + } + __assert_fail(67544 | 0, 72732 | 0, 2250 | 0, 82177 | 0); + wasm2js_trap(); + } + i64toi32_i32$3 = $6; + i64toi32_i32$2 = HEAP32[($6 + 1120 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 1124 | 0) >> 2] | 0; + $169 = i64toi32_i32$2; + $169$hi = i64toi32_i32$0; + i64toi32_i32$3 = $6; + i64toi32_i32$0 = HEAP32[($6 + 1144 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($6 + 1148 | 0) >> 2] | 0; + $170$hi = i64toi32_i32$2; + i64toi32_i32$2 = $169$hi; + i64toi32_i32$2 = $170$hi; + i64toi32_i32$2 = $169$hi; + i64toi32_i32$2 = $170$hi; + $1673 = i64toi32_i32$0; + i64toi32_i32$2 = $169$hi; + i64toi32_i32$3 = $169; + i64toi32_i32$0 = $170$hi; + i64toi32_i32$1 = $1673; + if ((i64toi32_i32$2 | 0) > (i64toi32_i32$0 | 0)) { + $209 = 1 + } else { + if ((i64toi32_i32$2 | 0) >= (i64toi32_i32$0 | 0)) { + if (i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0) { + $210 = 0 + } else { + $210 = 1 + } + $211 = $210; + } else { + $211 = 0 + } + $209 = $211; + } + label$13 : { + if (!($209 & 1 | 0)) { + break label$13 + } + HEAP8[($6 + 1247 | 0) >> 0] = 0 & 1 | 0; + break label$10; + } + HEAP32[($6 + 1116 | 0) >> 2] = 0; + HEAP32[($6 + 1112 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($6 + 1236 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + btConvexHullInternal__Vertex__dot_28btConvexHullInternal__Point64_20const__29_20const($6 + 1072 | 0 | 0, HEAP32[((HEAP32[($6 + 1236 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, $6 + 1152 | 0 | 0); + i64toi32_i32$1 = $6; + i64toi32_i32$3 = HEAP32[($6 + 1120 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($6 + 1124 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btConvexHullInternal__Rational128__compare_28long_20long_29_20const($6 + 1072 | 0 | 0, i64toi32_i32$3 | 0, i64toi32_i32$2 | 0) | 0), HEAP32[(wasm2js_i32$0 + 1068 | 0) >> 2] = wasm2js_i32$1; + label$14 : { + label$15 : { + if (!((HEAP32[($6 + 1068 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$15 + } + HEAP32[($6 + 1064 | 0) >> 2] = HEAP32[($6 + 1112 | 0) >> 2] | 0; + label$16 : while (1) { + btConvexHullInternal__Vertex__dot_28btConvexHullInternal__Point64_20const__29_20const($6 + 1024 | 0 | 0, HEAP32[((HEAP32[($6 + 1064 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $6 + 1152 | 0 | 0); + i64toi32_i32$1 = $6; + i64toi32_i32$2 = HEAP32[($6 + 1144 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($6 + 1148 | 0) >> 2] | 0; + label$17 : { + if ((btConvexHullInternal__Rational128__compare_28long_20long_29_20const($6 + 1024 | 0 | 0, i64toi32_i32$2 | 0, i64toi32_i32$3 | 0) | 0 | 0) <= (0 | 0) & 1 | 0) { + break label$17 + } + __assert_fail(86125 | 0, 72732 | 0, 2278 | 0, 82177 | 0); + wasm2js_trap(); + } + label$18 : { + label$19 : { + if (!((btConvexHullInternal__Rational128__compare_28btConvexHullInternal__Rational128_20const__29_20const($6 + 1024 | 0 | 0, $6 + 1072 | 0 | 0) | 0 | 0) < (0 | 0) & 1 | 0)) { + break label$19 + } + i64toi32_i32$1 = $6; + i64toi32_i32$3 = HEAP32[($6 + 1120 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($6 + 1124 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btConvexHullInternal__Rational128__compare_28long_20long_29_20const($6 + 1024 | 0 | 0, i64toi32_i32$3 | 0, i64toi32_i32$2 | 0) | 0), HEAP32[(wasm2js_i32$0 + 1020 | 0) >> 2] = wasm2js_i32$1; + $245 = 29; + i64toi32_i32$1 = ($6 + 1024 | 0) + $245 | 0; + i64toi32_i32$2 = HEAPU8[i64toi32_i32$1 >> 0] | 0 | ((HEAPU8[(i64toi32_i32$1 + 1 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[(i64toi32_i32$1 + 2 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[(i64toi32_i32$1 + 3 | 0) >> 0] | 0) << 24 | 0) | 0) | 0; + i64toi32_i32$3 = HEAPU8[(i64toi32_i32$1 + 4 | 0) >> 0] | 0 | ((HEAPU8[(i64toi32_i32$1 + 5 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[(i64toi32_i32$1 + 6 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[(i64toi32_i32$1 + 7 | 0) >> 0] | 0) << 24 | 0) | 0) | 0; + $1821 = i64toi32_i32$2; + i64toi32_i32$2 = ($6 + 1072 | 0) + $245 | 0; + $204 = $1821; + HEAP8[i64toi32_i32$2 >> 0] = $204; + HEAP8[(i64toi32_i32$2 + 1 | 0) >> 0] = $204 >>> 8 | 0; + HEAP8[(i64toi32_i32$2 + 2 | 0) >> 0] = $204 >>> 16 | 0; + HEAP8[(i64toi32_i32$2 + 3 | 0) >> 0] = $204 >>> 24 | 0; + HEAP8[(i64toi32_i32$2 + 4 | 0) >> 0] = i64toi32_i32$3; + HEAP8[(i64toi32_i32$2 + 5 | 0) >> 0] = i64toi32_i32$3 >>> 8 | 0; + HEAP8[(i64toi32_i32$2 + 6 | 0) >> 0] = i64toi32_i32$3 >>> 16 | 0; + HEAP8[(i64toi32_i32$2 + 7 | 0) >> 0] = i64toi32_i32$3 >>> 24 | 0; + $253 = 24; + i64toi32_i32$1 = ($6 + 1024 | 0) + $253 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $1837 = i64toi32_i32$3; + i64toi32_i32$3 = ($6 + 1072 | 0) + $253 | 0; + HEAP32[i64toi32_i32$3 >> 2] = $1837; + HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] = i64toi32_i32$2; + $261 = 16; + i64toi32_i32$1 = ($6 + 1024 | 0) + $261 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $1853 = i64toi32_i32$2; + i64toi32_i32$2 = ($6 + 1072 | 0) + $261 | 0; + HEAP32[i64toi32_i32$2 >> 2] = $1853; + HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] = i64toi32_i32$3; + $269 = 8; + i64toi32_i32$1 = ($6 + 1024 | 0) + $269 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $1869 = i64toi32_i32$3; + i64toi32_i32$3 = ($6 + 1072 | 0) + $269 | 0; + HEAP32[i64toi32_i32$3 >> 2] = $1869; + HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] = i64toi32_i32$2; + i64toi32_i32$1 = $6; + i64toi32_i32$2 = HEAP32[($6 + 1024 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($6 + 1028 | 0) >> 2] | 0; + $1873 = i64toi32_i32$2; + i64toi32_i32$2 = $6; + HEAP32[($6 + 1072 | 0) >> 2] = $1873; + HEAP32[($6 + 1076 | 0) >> 2] = i64toi32_i32$3; + HEAP32[($6 + 1064 | 0) >> 2] = HEAP32[((HEAP32[($6 + 1064 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($6 + 1112 | 0) >> 2] = HEAP32[($6 + 1064 | 0) >> 2] | 0; + label$20 : { + if (!((HEAP32[($6 + 1020 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0)) { + break label$20 + } + HEAP32[($6 + 1116 | 0) >> 2] = HEAP32[($6 + 1064 | 0) >> 2] | 0; + break label$18; + } + HEAP32[($6 + 1068 | 0) >> 2] = HEAP32[($6 + 1020 | 0) >> 2] | 0; + } + HEAP32[($6 + 1064 | 0) >> 2] = HEAP32[((HEAP32[($6 + 1064 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + if ((HEAP32[($6 + 1064 | 0) >> 2] | 0 | 0) != (HEAP32[($6 + 1112 | 0) >> 2] | 0 | 0) & 1 | 0) { + continue label$16 + } + } + break label$16; + }; + label$21 : { + if ((HEAP32[($6 + 1116 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$21 + } + HEAP8[($6 + 1247 | 0) >> 0] = 0 & 1 | 0; + break label$10; + } + break label$14; + } + HEAP32[($6 + 1016 | 0) >> 2] = HEAP32[($6 + 1112 | 0) >> 2] | 0; + label$22 : while (1) { + btConvexHullInternal__Vertex__dot_28btConvexHullInternal__Point64_20const__29_20const($6 + 976 | 0 | 0, HEAP32[((HEAP32[($6 + 1016 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $6 + 1152 | 0 | 0); + i64toi32_i32$1 = $6; + i64toi32_i32$3 = HEAP32[($6 + 1144 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($6 + 1148 | 0) >> 2] | 0; + label$23 : { + if ((btConvexHullInternal__Rational128__compare_28long_20long_29_20const($6 + 976 | 0 | 0, i64toi32_i32$3 | 0, i64toi32_i32$2 | 0) | 0 | 0) <= (0 | 0) & 1 | 0) { + break label$23 + } + __assert_fail(86125 | 0, 72732 | 0, 2314 | 0, 82177 | 0); + wasm2js_trap(); + } + label$24 : { + label$25 : { + if (!((btConvexHullInternal__Rational128__compare_28btConvexHullInternal__Rational128_20const__29_20const($6 + 976 | 0 | 0, $6 + 1072 | 0 | 0) | 0 | 0) > (0 | 0) & 1 | 0)) { + break label$25 + } + i64toi32_i32$1 = $6; + i64toi32_i32$2 = HEAP32[($6 + 1120 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($6 + 1124 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btConvexHullInternal__Rational128__compare_28long_20long_29_20const($6 + 976 | 0 | 0, i64toi32_i32$2 | 0, i64toi32_i32$3 | 0) | 0), HEAP32[(wasm2js_i32$0 + 1068 | 0) >> 2] = wasm2js_i32$1; + label$26 : { + if (!((HEAP32[($6 + 1068 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$26 + } + HEAP32[($6 + 1116 | 0) >> 2] = HEAP32[($6 + 1016 | 0) >> 2] | 0; + break label$24; + } + $359 = 29; + i64toi32_i32$1 = ($6 + 976 | 0) + $359 | 0; + i64toi32_i32$3 = HEAPU8[i64toi32_i32$1 >> 0] | 0 | ((HEAPU8[(i64toi32_i32$1 + 1 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[(i64toi32_i32$1 + 2 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[(i64toi32_i32$1 + 3 | 0) >> 0] | 0) << 24 | 0) | 0) | 0; + i64toi32_i32$2 = HEAPU8[(i64toi32_i32$1 + 4 | 0) >> 0] | 0 | ((HEAPU8[(i64toi32_i32$1 + 5 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[(i64toi32_i32$1 + 6 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[(i64toi32_i32$1 + 7 | 0) >> 0] | 0) << 24 | 0) | 0) | 0; + $2043 = i64toi32_i32$3; + i64toi32_i32$3 = ($6 + 1072 | 0) + $359 | 0; + $205 = $2043; + HEAP8[i64toi32_i32$3 >> 0] = $205; + HEAP8[(i64toi32_i32$3 + 1 | 0) >> 0] = $205 >>> 8 | 0; + HEAP8[(i64toi32_i32$3 + 2 | 0) >> 0] = $205 >>> 16 | 0; + HEAP8[(i64toi32_i32$3 + 3 | 0) >> 0] = $205 >>> 24 | 0; + HEAP8[(i64toi32_i32$3 + 4 | 0) >> 0] = i64toi32_i32$2; + HEAP8[(i64toi32_i32$3 + 5 | 0) >> 0] = i64toi32_i32$2 >>> 8 | 0; + HEAP8[(i64toi32_i32$3 + 6 | 0) >> 0] = i64toi32_i32$2 >>> 16 | 0; + HEAP8[(i64toi32_i32$3 + 7 | 0) >> 0] = i64toi32_i32$2 >>> 24 | 0; + $367 = 24; + i64toi32_i32$1 = ($6 + 976 | 0) + $367 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $2059 = i64toi32_i32$2; + i64toi32_i32$2 = ($6 + 1072 | 0) + $367 | 0; + HEAP32[i64toi32_i32$2 >> 2] = $2059; + HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] = i64toi32_i32$3; + $375 = 16; + i64toi32_i32$1 = ($6 + 976 | 0) + $375 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $2075 = i64toi32_i32$3; + i64toi32_i32$3 = ($6 + 1072 | 0) + $375 | 0; + HEAP32[i64toi32_i32$3 >> 2] = $2075; + HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] = i64toi32_i32$2; + $383 = 8; + i64toi32_i32$1 = ($6 + 976 | 0) + $383 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $2091 = i64toi32_i32$2; + i64toi32_i32$2 = ($6 + 1072 | 0) + $383 | 0; + HEAP32[i64toi32_i32$2 >> 2] = $2091; + HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] = i64toi32_i32$3; + i64toi32_i32$1 = $6; + i64toi32_i32$3 = HEAP32[($6 + 976 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($6 + 980 | 0) >> 2] | 0; + $2095 = i64toi32_i32$3; + i64toi32_i32$3 = $6; + HEAP32[($6 + 1072 | 0) >> 2] = $2095; + HEAP32[($6 + 1076 | 0) >> 2] = i64toi32_i32$2; + HEAP32[($6 + 1016 | 0) >> 2] = HEAP32[((HEAP32[($6 + 1016 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($6 + 1112 | 0) >> 2] = HEAP32[($6 + 1016 | 0) >> 2] | 0; + } + HEAP32[($6 + 1016 | 0) >> 2] = HEAP32[((HEAP32[($6 + 1016 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + if ((HEAP32[($6 + 1016 | 0) >> 2] | 0 | 0) != (HEAP32[($6 + 1112 | 0) >> 2] | 0 | 0) & 1 | 0) { + continue label$22 + } + } + break label$22; + }; + label$27 : { + if ((HEAP32[($6 + 1116 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$27 + } + HEAP8[($6 + 1247 | 0) >> 0] = 1 & 1 | 0; + break label$10; + } + } + label$28 : { + if (HEAP32[($6 + 1068 | 0) >> 2] | 0) { + break label$28 + } + HEAP32[($6 + 972 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($6 + 1116 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0; + label$29 : { + label$30 : while (1) { + btConvexHullInternal__Vertex__dot_28btConvexHullInternal__Point64_20const__29_20const($6 + 928 | 0 | 0, HEAP32[((HEAP32[($6 + 972 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $6 + 1152 | 0 | 0); + i64toi32_i32$1 = $6; + i64toi32_i32$2 = HEAP32[($6 + 1120 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($6 + 1124 | 0) >> 2] | 0; + if (!((btConvexHullInternal__Rational128__compare_28long_20long_29_20const($6 + 928 | 0 | 0, i64toi32_i32$2 | 0, i64toi32_i32$3 | 0) | 0 | 0) <= (0 | 0) & 1 | 0)) { + break label$29 + } + HEAP32[($6 + 972 | 0) >> 2] = HEAP32[(HEAP32[($6 + 972 | 0) >> 2] | 0) >> 2] | 0; + label$31 : { + if (!((HEAP32[($6 + 972 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($6 + 1116 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$31 + } + HEAP8[($6 + 1247 | 0) >> 0] = 1 & 1 | 0; + break label$10; + } + continue label$30; + }; + } + } + HEAP32[($6 + 924 | 0) >> 2] = 0; + HEAP32[($6 + 920 | 0) >> 2] = 0; + HEAP32[($6 + 916 | 0) >> 2] = 0; + label$32 : while (1) { + label$33 : { + if (HEAP32[($6 + 1068 | 0) >> 2] | 0) { + break label$33 + } + HEAP32[($6 + 912 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($6 + 1116 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($6 + 1112 | 0) >> 2] = HEAP32[($6 + 912 | 0) >> 2] | 0; + label$34 : { + label$35 : while (1) { + btConvexHullInternal__Vertex__dot_28btConvexHullInternal__Point64_20const__29_20const($6 + 872 | 0 | 0, HEAP32[((HEAP32[($6 + 912 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $6 + 1152 | 0 | 0); + i64toi32_i32$1 = $6; + i64toi32_i32$3 = HEAP32[($6 + 1120 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($6 + 1124 | 0) >> 2] | 0; + label$36 : { + if (!((btConvexHullInternal__Rational128__compare_28long_20long_29_20const($6 + 872 | 0 | 0, i64toi32_i32$3 | 0, i64toi32_i32$2 | 0) | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$36 + } + break label$34; + } + HEAP32[($6 + 1116 | 0) >> 2] = HEAP32[((HEAP32[($6 + 912 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($6 + 912 | 0) >> 2] = HEAP32[(HEAP32[($6 + 912 | 0) >> 2] | 0) >> 2] | 0; + label$37 : { + if (!((HEAP32[($6 + 912 | 0) >> 2] | 0 | 0) == (HEAP32[($6 + 1112 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$37 + } + HEAP8[($6 + 1247 | 0) >> 0] = 1 & 1 | 0; + break label$10; + } + continue label$35; + }; + } + } + label$38 : { + label$39 : { + label$40 : { + if ((HEAP32[($6 + 924 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$40 + } + HEAP32[($6 + 924 | 0) >> 2] = HEAP32[($6 + 1116 | 0) >> 2] | 0; + break label$39; + } + label$41 : { + if (!((HEAP32[($6 + 1116 | 0) >> 2] | 0 | 0) == (HEAP32[($6 + 924 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$41 + } + break label$38; + } + } + HEAP32[($6 + 868 | 0) >> 2] = HEAP32[($6 + 1068 | 0) >> 2] | 0; + HEAP32[($6 + 864 | 0) >> 2] = HEAP32[($6 + 1116 | 0) >> 2] | 0; + HEAP32[($6 + 860 | 0) >> 2] = HEAP32[($6 + 920 | 0) >> 2] | 0; + HEAP32[($6 + 856 | 0) >> 2] = HEAP32[((HEAP32[($6 + 1116 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$42 : while (1) { + HEAP32[($6 + 856 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($6 + 856 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$43 : { + if ((HEAP32[($6 + 856 | 0) >> 2] | 0 | 0) != (HEAP32[((HEAP32[($6 + 1116 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$43 + } + __assert_fail(81402 | 0, 72732 | 0, 2446 | 0, 82177 | 0); + wasm2js_trap(); + } + btConvexHullInternal__Vertex__dot_28btConvexHullInternal__Point64_20const__29_20const($6 + 816 | 0 | 0, HEAP32[((HEAP32[($6 + 856 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $6 + 1152 | 0 | 0); + i64toi32_i32$1 = $6; + i64toi32_i32$2 = HEAP32[($6 + 1120 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($6 + 1124 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btConvexHullInternal__Rational128__compare_28long_20long_29_20const($6 + 816 | 0 | 0, i64toi32_i32$2 | 0, i64toi32_i32$3 | 0) | 0), HEAP32[(wasm2js_i32$0 + 1068 | 0) >> 2] = wasm2js_i32$1; + label$44 : { + label$45 : { + if (!((HEAP32[($6 + 1068 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$45 + } + HEAP32[($6 + 1116 | 0) >> 2] = HEAP32[($6 + 856 | 0) >> 2] | 0; + break label$44; + } + continue label$42; + } + break label$42; + }; + label$46 : { + if (!((HEAP32[($6 + 1068 | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0)) { + break label$46 + } + HEAP32[($6 + 812 | 0) >> 2] = HEAP32[((HEAP32[($6 + 1116 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + HEAP32[($6 + 856 | 0) >> 2] = HEAP32[((HEAP32[($6 + 1116 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$47 : { + label$48 : { + if (!((HEAP32[((HEAP32[($6 + 856 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (HEAP32[($6 + 856 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$48 + } + HEAP32[((HEAP32[($6 + 812 | 0) >> 2] | 0) + 8 | 0) >> 2] = 0; + break label$47; + } + HEAP32[((HEAP32[($6 + 812 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[((HEAP32[($6 + 856 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + btConvexHullInternal__Edge__link_28btConvexHullInternal__Edge__29(HEAP32[((HEAP32[($6 + 856 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[($6 + 856 | 0) >> 2] | 0) >> 2] | 0 | 0); + btConvexHullInternal__Edge__link_28btConvexHullInternal__Edge__29(HEAP32[($6 + 856 | 0) >> 2] | 0 | 0, HEAP32[($6 + 856 | 0) >> 2] | 0 | 0); + } + btConvexHullInternal__Face__getNormal_28_29($6 + 784 | 0 | 0, HEAP32[((HEAP32[($6 + 1116 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0); + btConvexHullInternal__Face__getNormal_28_29($6 + 760 | 0 | 0, HEAP32[((HEAP32[((HEAP32[($6 + 1116 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0); + i64toi32_i32$3 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const((HEAP32[($6 + 1236 | 0) >> 2] | 0) + 28 | 0 | 0, $6 + 784 | 0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $2518 = i64toi32_i32$3; + i64toi32_i32$3 = $6; + HEAP32[($6 + 752 | 0) >> 2] = $2518; + HEAP32[($6 + 756 | 0) >> 2] = i64toi32_i32$2; + i64toi32_i32$2 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const((HEAP32[($6 + 1236 | 0) >> 2] | 0) + 44 | 0 | 0, $6 + 784 | 0 | 0) | 0; + i64toi32_i32$3 = i64toi32_i32$HIGH_BITS; + $2532 = i64toi32_i32$2; + i64toi32_i32$2 = $6; + HEAP32[($6 + 744 | 0) >> 2] = $2532; + HEAP32[($6 + 748 | 0) >> 2] = i64toi32_i32$3; + i64toi32_i32$3 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const((HEAP32[($6 + 1236 | 0) >> 2] | 0) + 28 | 0 | 0, $6 + 760 | 0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $2546 = i64toi32_i32$3; + i64toi32_i32$3 = $6; + HEAP32[($6 + 736 | 0) >> 2] = $2546; + HEAP32[($6 + 740 | 0) >> 2] = i64toi32_i32$2; + i64toi32_i32$2 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const((HEAP32[($6 + 1236 | 0) >> 2] | 0) + 44 | 0 | 0, $6 + 760 | 0 | 0) | 0; + i64toi32_i32$3 = i64toi32_i32$HIGH_BITS; + $2560 = i64toi32_i32$2; + i64toi32_i32$2 = $6; + HEAP32[($6 + 728 | 0) >> 2] = $2560; + HEAP32[($6 + 732 | 0) >> 2] = i64toi32_i32$3; + btConvexHullInternal__Point32__operator__28btConvexHullInternal__Point32_20const__29_20const($6 + 704 | 0 | 0, (HEAP32[((HEAP32[($6 + 1116 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 12 | 0 | 0, $6 + 1128 | 0 | 0); + i64toi32_i32$3 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const($6 + 704 | 0 | 0, $6 + 784 | 0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $2591 = i64toi32_i32$3; + i64toi32_i32$3 = $6; + HEAP32[($6 + 720 | 0) >> 2] = $2591; + HEAP32[($6 + 724 | 0) >> 2] = i64toi32_i32$2; + btConvexHullInternal__Point32__operator__28btConvexHullInternal__Point32_20const__29_20const($6 + 680 | 0 | 0, (HEAP32[((HEAP32[((HEAP32[($6 + 1116 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 12 | 0 | 0, $6 + 1128 | 0 | 0); + i64toi32_i32$2 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const($6 + 680 | 0 | 0, $6 + 760 | 0 | 0) | 0; + i64toi32_i32$3 = i64toi32_i32$HIGH_BITS; + $2624 = i64toi32_i32$2; + i64toi32_i32$2 = $6; + HEAP32[($6 + 696 | 0) >> 2] = $2624; + HEAP32[($6 + 700 | 0) >> 2] = i64toi32_i32$3; + i64toi32_i32$1 = $6; + i64toi32_i32$3 = HEAP32[($6 + 752 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($6 + 756 | 0) >> 2] | 0; + $651 = i64toi32_i32$3; + $651$hi = i64toi32_i32$2; + i64toi32_i32$1 = $6; + i64toi32_i32$2 = HEAP32[($6 + 728 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($6 + 732 | 0) >> 2] | 0; + $652$hi = i64toi32_i32$3; + i64toi32_i32$3 = $651$hi; + i64toi32_i32$3 = $652$hi; + $2635 = i64toi32_i32$2; + i64toi32_i32$3 = $651$hi; + i64toi32_i32$2 = $652$hi; + btConvexHullInternal__Int128__mul_28long_20long_2c_20long_20long_29($6 + 648 | 0 | 0, $651 | 0, i64toi32_i32$3 | 0, $2635 | 0, i64toi32_i32$2 | 0); + i64toi32_i32$1 = $6; + i64toi32_i32$2 = HEAP32[($6 + 744 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($6 + 748 | 0) >> 2] | 0; + $656 = i64toi32_i32$2; + $656$hi = i64toi32_i32$3; + i64toi32_i32$1 = $6; + i64toi32_i32$3 = HEAP32[($6 + 736 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($6 + 740 | 0) >> 2] | 0; + $657$hi = i64toi32_i32$2; + i64toi32_i32$2 = $656$hi; + i64toi32_i32$2 = $657$hi; + $2646 = i64toi32_i32$3; + i64toi32_i32$2 = $656$hi; + i64toi32_i32$3 = $657$hi; + btConvexHullInternal__Int128__mul_28long_20long_2c_20long_20long_29($6 + 632 | 0 | 0, $656 | 0, i64toi32_i32$2 | 0, $2646 | 0, i64toi32_i32$3 | 0); + btConvexHullInternal__Int128__operator__28btConvexHullInternal__Int128_20const__29_20const_2($6 + 664 | 0 | 0, $6 + 648 | 0 | 0, $6 + 632 | 0 | 0); + label$49 : { + if (btConvexHullInternal__Int128__getSign_28_29_20const($6 + 664 | 0 | 0) | 0) { + break label$49 + } + __assert_fail(86160 | 0, 72732 | 0, 2490 | 0, 82177 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btConvexHullInternal__Pool_btConvexHullInternal__Vertex___newObject_28_29($7 + 32 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 628 | 0) >> 2] = wasm2js_i32$1; + HEAP32[((HEAP32[($6 + 628 | 0) >> 2] | 0) + 100 | 0) >> 2] = -1; + HEAP32[((HEAP32[($6 + 628 | 0) >> 2] | 0) + 104 | 0) >> 2] = -1; + i64toi32_i32$2 = HEAP32[((HEAP32[($6 + 1236 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0; + i64toi32_i32$3 = i64toi32_i32$2 >> 31 | 0; + $688 = i64toi32_i32$2; + $688$hi = i64toi32_i32$3; + i64toi32_i32$1 = $6; + i64toi32_i32$3 = HEAP32[($6 + 720 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($6 + 724 | 0) >> 2] | 0; + $689$hi = i64toi32_i32$2; + i64toi32_i32$2 = $688$hi; + i64toi32_i32$2 = $689$hi; + $2698 = i64toi32_i32$3; + i64toi32_i32$2 = $688$hi; + i64toi32_i32$3 = $689$hi; + i64toi32_i32$3 = __wasm_i64_mul($688 | 0, i64toi32_i32$2 | 0, $2698 | 0, i64toi32_i32$3 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $690 = i64toi32_i32$3; + $690$hi = i64toi32_i32$2; + i64toi32_i32$1 = $6; + i64toi32_i32$2 = HEAP32[($6 + 728 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($6 + 732 | 0) >> 2] | 0; + $691$hi = i64toi32_i32$3; + i64toi32_i32$3 = $690$hi; + i64toi32_i32$3 = $691$hi; + $2708 = i64toi32_i32$2; + i64toi32_i32$3 = $690$hi; + i64toi32_i32$2 = $691$hi; + btConvexHullInternal__Int128__mul_28long_20long_2c_20long_20long_29($6 + 480 | 0 | 0, $690 | 0, i64toi32_i32$3 | 0, $2708 | 0, i64toi32_i32$2 | 0); + i64toi32_i32$3 = HEAP32[((HEAP32[($6 + 1236 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0; + i64toi32_i32$2 = i64toi32_i32$3 >> 31 | 0; + $698 = i64toi32_i32$3; + $698$hi = i64toi32_i32$2; + i64toi32_i32$1 = $6; + i64toi32_i32$2 = HEAP32[($6 + 696 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($6 + 700 | 0) >> 2] | 0; + $699$hi = i64toi32_i32$3; + i64toi32_i32$3 = $698$hi; + i64toi32_i32$3 = $699$hi; + $2719 = i64toi32_i32$2; + i64toi32_i32$3 = $698$hi; + i64toi32_i32$2 = $699$hi; + i64toi32_i32$2 = __wasm_i64_mul($698 | 0, i64toi32_i32$3 | 0, $2719 | 0, i64toi32_i32$2 | 0) | 0; + i64toi32_i32$3 = i64toi32_i32$HIGH_BITS; + $700 = i64toi32_i32$2; + $700$hi = i64toi32_i32$3; + i64toi32_i32$1 = $6; + i64toi32_i32$3 = HEAP32[($6 + 744 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($6 + 748 | 0) >> 2] | 0; + $701$hi = i64toi32_i32$2; + i64toi32_i32$2 = $700$hi; + i64toi32_i32$2 = $701$hi; + $2729 = i64toi32_i32$3; + i64toi32_i32$2 = $700$hi; + i64toi32_i32$3 = $701$hi; + btConvexHullInternal__Int128__mul_28long_20long_2c_20long_20long_29($6 + 464 | 0 | 0, $700 | 0, i64toi32_i32$2 | 0, $2729 | 0, i64toi32_i32$3 | 0); + btConvexHullInternal__Int128__operator__28btConvexHullInternal__Int128_20const__29_20const_2($6 + 496 | 0 | 0, $6 + 480 | 0 | 0, $6 + 464 | 0 | 0); + i64toi32_i32$2 = HEAP32[((HEAP32[($6 + 1236 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0; + i64toi32_i32$3 = i64toi32_i32$2 >> 31 | 0; + $717 = i64toi32_i32$2; + $717$hi = i64toi32_i32$3; + i64toi32_i32$1 = $6; + i64toi32_i32$3 = HEAP32[($6 + 696 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($6 + 700 | 0) >> 2] | 0; + $718$hi = i64toi32_i32$2; + i64toi32_i32$2 = $717$hi; + i64toi32_i32$2 = $718$hi; + $2755 = i64toi32_i32$3; + i64toi32_i32$2 = $717$hi; + i64toi32_i32$3 = $718$hi; + i64toi32_i32$3 = __wasm_i64_mul($717 | 0, i64toi32_i32$2 | 0, $2755 | 0, i64toi32_i32$3 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $719 = i64toi32_i32$3; + $719$hi = i64toi32_i32$2; + i64toi32_i32$1 = $6; + i64toi32_i32$2 = HEAP32[($6 + 752 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($6 + 756 | 0) >> 2] | 0; + $720$hi = i64toi32_i32$3; + i64toi32_i32$3 = $719$hi; + i64toi32_i32$3 = $720$hi; + $2765 = i64toi32_i32$2; + i64toi32_i32$3 = $719$hi; + i64toi32_i32$2 = $720$hi; + btConvexHullInternal__Int128__mul_28long_20long_2c_20long_20long_29($6 + 448 | 0 | 0, $719 | 0, i64toi32_i32$3 | 0, $2765 | 0, i64toi32_i32$2 | 0); + btConvexHullInternal__Int128__operator__28btConvexHullInternal__Int128_20const__29_20const($6 + 512 | 0 | 0, $6 + 496 | 0 | 0, $6 + 448 | 0 | 0); + i64toi32_i32$3 = HEAP32[((HEAP32[($6 + 1236 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0; + i64toi32_i32$2 = i64toi32_i32$3 >> 31 | 0; + $736 = i64toi32_i32$3; + $736$hi = i64toi32_i32$2; + i64toi32_i32$1 = $6; + i64toi32_i32$2 = HEAP32[($6 + 720 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($6 + 724 | 0) >> 2] | 0; + $737$hi = i64toi32_i32$3; + i64toi32_i32$3 = $736$hi; + i64toi32_i32$3 = $737$hi; + $2791 = i64toi32_i32$2; + i64toi32_i32$3 = $736$hi; + i64toi32_i32$2 = $737$hi; + i64toi32_i32$2 = __wasm_i64_mul($736 | 0, i64toi32_i32$3 | 0, $2791 | 0, i64toi32_i32$2 | 0) | 0; + i64toi32_i32$3 = i64toi32_i32$HIGH_BITS; + $738 = i64toi32_i32$2; + $738$hi = i64toi32_i32$3; + i64toi32_i32$1 = $6; + i64toi32_i32$3 = HEAP32[($6 + 736 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($6 + 740 | 0) >> 2] | 0; + $739$hi = i64toi32_i32$2; + i64toi32_i32$2 = $738$hi; + i64toi32_i32$2 = $739$hi; + $2801 = i64toi32_i32$3; + i64toi32_i32$2 = $738$hi; + i64toi32_i32$3 = $739$hi; + btConvexHullInternal__Int128__mul_28long_20long_2c_20long_20long_29($6 + 432 | 0 | 0, $738 | 0, i64toi32_i32$2 | 0, $2801 | 0, i64toi32_i32$3 | 0); + btConvexHullInternal__Int128__operator__28btConvexHullInternal__Int128_20const__29_20const_2($6 + 528 | 0 | 0, $6 + 512 | 0 | 0, $6 + 432 | 0 | 0); + i64toi32_i32$2 = HEAP32[($6 + 1128 | 0) >> 2] | 0; + i64toi32_i32$3 = i64toi32_i32$2 >> 31 | 0; + btConvexHullInternal__Int128__operator__28long_20long_29_20const($6 + 416 | 0 | 0, $6 + 664 | 0 | 0, i64toi32_i32$2 | 0, i64toi32_i32$3 | 0); + btConvexHullInternal__Int128__operator__28btConvexHullInternal__Int128_20const__29_20const($6 + 544 | 0 | 0, $6 + 528 | 0 | 0, $6 + 416 | 0 | 0); + i64toi32_i32$2 = HEAP32[((HEAP32[($6 + 1236 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + i64toi32_i32$3 = i64toi32_i32$2 >> 31 | 0; + $773 = i64toi32_i32$2; + $773$hi = i64toi32_i32$3; + i64toi32_i32$1 = $6; + i64toi32_i32$3 = HEAP32[($6 + 720 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($6 + 724 | 0) >> 2] | 0; + $774$hi = i64toi32_i32$2; + i64toi32_i32$2 = $773$hi; + i64toi32_i32$2 = $774$hi; + $2858 = i64toi32_i32$3; + i64toi32_i32$2 = $773$hi; + i64toi32_i32$3 = $774$hi; + i64toi32_i32$3 = __wasm_i64_mul($773 | 0, i64toi32_i32$2 | 0, $2858 | 0, i64toi32_i32$3 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $775 = i64toi32_i32$3; + $775$hi = i64toi32_i32$2; + i64toi32_i32$1 = $6; + i64toi32_i32$2 = HEAP32[($6 + 728 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($6 + 732 | 0) >> 2] | 0; + $776$hi = i64toi32_i32$3; + i64toi32_i32$3 = $775$hi; + i64toi32_i32$3 = $776$hi; + $2868 = i64toi32_i32$2; + i64toi32_i32$3 = $775$hi; + i64toi32_i32$2 = $776$hi; + btConvexHullInternal__Int128__mul_28long_20long_2c_20long_20long_29($6 + 336 | 0 | 0, $775 | 0, i64toi32_i32$3 | 0, $2868 | 0, i64toi32_i32$2 | 0); + i64toi32_i32$3 = HEAP32[((HEAP32[($6 + 1236 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + i64toi32_i32$2 = i64toi32_i32$3 >> 31 | 0; + $783 = i64toi32_i32$3; + $783$hi = i64toi32_i32$2; + i64toi32_i32$1 = $6; + i64toi32_i32$2 = HEAP32[($6 + 696 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($6 + 700 | 0) >> 2] | 0; + $784$hi = i64toi32_i32$3; + i64toi32_i32$3 = $783$hi; + i64toi32_i32$3 = $784$hi; + $2879 = i64toi32_i32$2; + i64toi32_i32$3 = $783$hi; + i64toi32_i32$2 = $784$hi; + i64toi32_i32$2 = __wasm_i64_mul($783 | 0, i64toi32_i32$3 | 0, $2879 | 0, i64toi32_i32$2 | 0) | 0; + i64toi32_i32$3 = i64toi32_i32$HIGH_BITS; + $785 = i64toi32_i32$2; + $785$hi = i64toi32_i32$3; + i64toi32_i32$1 = $6; + i64toi32_i32$3 = HEAP32[($6 + 744 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($6 + 748 | 0) >> 2] | 0; + $786$hi = i64toi32_i32$2; + i64toi32_i32$2 = $785$hi; + i64toi32_i32$2 = $786$hi; + $2889 = i64toi32_i32$3; + i64toi32_i32$2 = $785$hi; + i64toi32_i32$3 = $786$hi; + btConvexHullInternal__Int128__mul_28long_20long_2c_20long_20long_29($6 + 320 | 0 | 0, $785 | 0, i64toi32_i32$2 | 0, $2889 | 0, i64toi32_i32$3 | 0); + btConvexHullInternal__Int128__operator__28btConvexHullInternal__Int128_20const__29_20const_2($6 + 352 | 0 | 0, $6 + 336 | 0 | 0, $6 + 320 | 0 | 0); + i64toi32_i32$2 = HEAP32[((HEAP32[($6 + 1236 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0; + i64toi32_i32$3 = i64toi32_i32$2 >> 31 | 0; + $802 = i64toi32_i32$2; + $802$hi = i64toi32_i32$3; + i64toi32_i32$1 = $6; + i64toi32_i32$3 = HEAP32[($6 + 696 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($6 + 700 | 0) >> 2] | 0; + $803$hi = i64toi32_i32$2; + i64toi32_i32$2 = $802$hi; + i64toi32_i32$2 = $803$hi; + $2915 = i64toi32_i32$3; + i64toi32_i32$2 = $802$hi; + i64toi32_i32$3 = $803$hi; + i64toi32_i32$3 = __wasm_i64_mul($802 | 0, i64toi32_i32$2 | 0, $2915 | 0, i64toi32_i32$3 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $804 = i64toi32_i32$3; + $804$hi = i64toi32_i32$2; + i64toi32_i32$1 = $6; + i64toi32_i32$2 = HEAP32[($6 + 752 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($6 + 756 | 0) >> 2] | 0; + $805$hi = i64toi32_i32$3; + i64toi32_i32$3 = $804$hi; + i64toi32_i32$3 = $805$hi; + $2925 = i64toi32_i32$2; + i64toi32_i32$3 = $804$hi; + i64toi32_i32$2 = $805$hi; + btConvexHullInternal__Int128__mul_28long_20long_2c_20long_20long_29($6 + 304 | 0 | 0, $804 | 0, i64toi32_i32$3 | 0, $2925 | 0, i64toi32_i32$2 | 0); + btConvexHullInternal__Int128__operator__28btConvexHullInternal__Int128_20const__29_20const($6 + 368 | 0 | 0, $6 + 352 | 0 | 0, $6 + 304 | 0 | 0); + i64toi32_i32$3 = HEAP32[((HEAP32[($6 + 1236 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0; + i64toi32_i32$2 = i64toi32_i32$3 >> 31 | 0; + $821 = i64toi32_i32$3; + $821$hi = i64toi32_i32$2; + i64toi32_i32$1 = $6; + i64toi32_i32$2 = HEAP32[($6 + 720 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($6 + 724 | 0) >> 2] | 0; + $822$hi = i64toi32_i32$3; + i64toi32_i32$3 = $821$hi; + i64toi32_i32$3 = $822$hi; + $2951 = i64toi32_i32$2; + i64toi32_i32$3 = $821$hi; + i64toi32_i32$2 = $822$hi; + i64toi32_i32$2 = __wasm_i64_mul($821 | 0, i64toi32_i32$3 | 0, $2951 | 0, i64toi32_i32$2 | 0) | 0; + i64toi32_i32$3 = i64toi32_i32$HIGH_BITS; + $823 = i64toi32_i32$2; + $823$hi = i64toi32_i32$3; + i64toi32_i32$1 = $6; + i64toi32_i32$3 = HEAP32[($6 + 736 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($6 + 740 | 0) >> 2] | 0; + $824$hi = i64toi32_i32$2; + i64toi32_i32$2 = $823$hi; + i64toi32_i32$2 = $824$hi; + $2961 = i64toi32_i32$3; + i64toi32_i32$2 = $823$hi; + i64toi32_i32$3 = $824$hi; + btConvexHullInternal__Int128__mul_28long_20long_2c_20long_20long_29($6 + 288 | 0 | 0, $823 | 0, i64toi32_i32$2 | 0, $2961 | 0, i64toi32_i32$3 | 0); + btConvexHullInternal__Int128__operator__28btConvexHullInternal__Int128_20const__29_20const_2($6 + 384 | 0 | 0, $6 + 368 | 0 | 0, $6 + 288 | 0 | 0); + i64toi32_i32$2 = HEAP32[($6 + 1132 | 0) >> 2] | 0; + i64toi32_i32$3 = i64toi32_i32$2 >> 31 | 0; + btConvexHullInternal__Int128__operator__28long_20long_29_20const($6 + 272 | 0 | 0, $6 + 664 | 0 | 0, i64toi32_i32$2 | 0, i64toi32_i32$3 | 0); + btConvexHullInternal__Int128__operator__28btConvexHullInternal__Int128_20const__29_20const($6 + 400 | 0 | 0, $6 + 384 | 0 | 0, $6 + 272 | 0 | 0); + i64toi32_i32$2 = HEAP32[((HEAP32[($6 + 1236 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + i64toi32_i32$3 = i64toi32_i32$2 >> 31 | 0; + $858 = i64toi32_i32$2; + $858$hi = i64toi32_i32$3; + i64toi32_i32$1 = $6; + i64toi32_i32$3 = HEAP32[($6 + 720 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($6 + 724 | 0) >> 2] | 0; + $859$hi = i64toi32_i32$2; + i64toi32_i32$2 = $858$hi; + i64toi32_i32$2 = $859$hi; + $3018 = i64toi32_i32$3; + i64toi32_i32$2 = $858$hi; + i64toi32_i32$3 = $859$hi; + i64toi32_i32$3 = __wasm_i64_mul($858 | 0, i64toi32_i32$2 | 0, $3018 | 0, i64toi32_i32$3 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $860 = i64toi32_i32$3; + $860$hi = i64toi32_i32$2; + i64toi32_i32$1 = $6; + i64toi32_i32$2 = HEAP32[($6 + 728 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($6 + 732 | 0) >> 2] | 0; + $861$hi = i64toi32_i32$3; + i64toi32_i32$3 = $860$hi; + i64toi32_i32$3 = $861$hi; + $3028 = i64toi32_i32$2; + i64toi32_i32$3 = $860$hi; + i64toi32_i32$2 = $861$hi; + btConvexHullInternal__Int128__mul_28long_20long_2c_20long_20long_29($6 + 192 | 0 | 0, $860 | 0, i64toi32_i32$3 | 0, $3028 | 0, i64toi32_i32$2 | 0); + i64toi32_i32$3 = HEAP32[((HEAP32[($6 + 1236 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + i64toi32_i32$2 = i64toi32_i32$3 >> 31 | 0; + $868 = i64toi32_i32$3; + $868$hi = i64toi32_i32$2; + i64toi32_i32$1 = $6; + i64toi32_i32$2 = HEAP32[($6 + 696 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($6 + 700 | 0) >> 2] | 0; + $869$hi = i64toi32_i32$3; + i64toi32_i32$3 = $868$hi; + i64toi32_i32$3 = $869$hi; + $3039 = i64toi32_i32$2; + i64toi32_i32$3 = $868$hi; + i64toi32_i32$2 = $869$hi; + i64toi32_i32$2 = __wasm_i64_mul($868 | 0, i64toi32_i32$3 | 0, $3039 | 0, i64toi32_i32$2 | 0) | 0; + i64toi32_i32$3 = i64toi32_i32$HIGH_BITS; + $870 = i64toi32_i32$2; + $870$hi = i64toi32_i32$3; + i64toi32_i32$1 = $6; + i64toi32_i32$3 = HEAP32[($6 + 744 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($6 + 748 | 0) >> 2] | 0; + $871$hi = i64toi32_i32$2; + i64toi32_i32$2 = $870$hi; + i64toi32_i32$2 = $871$hi; + $3049 = i64toi32_i32$3; + i64toi32_i32$2 = $870$hi; + i64toi32_i32$3 = $871$hi; + btConvexHullInternal__Int128__mul_28long_20long_2c_20long_20long_29($6 + 176 | 0 | 0, $870 | 0, i64toi32_i32$2 | 0, $3049 | 0, i64toi32_i32$3 | 0); + btConvexHullInternal__Int128__operator__28btConvexHullInternal__Int128_20const__29_20const_2($6 + 208 | 0 | 0, $6 + 192 | 0 | 0, $6 + 176 | 0 | 0); + i64toi32_i32$2 = HEAP32[((HEAP32[($6 + 1236 | 0) >> 2] | 0) + 52 | 0) >> 2] | 0; + i64toi32_i32$3 = i64toi32_i32$2 >> 31 | 0; + $887 = i64toi32_i32$2; + $887$hi = i64toi32_i32$3; + i64toi32_i32$1 = $6; + i64toi32_i32$3 = HEAP32[($6 + 696 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($6 + 700 | 0) >> 2] | 0; + $888$hi = i64toi32_i32$2; + i64toi32_i32$2 = $887$hi; + i64toi32_i32$2 = $888$hi; + $3075 = i64toi32_i32$3; + i64toi32_i32$2 = $887$hi; + i64toi32_i32$3 = $888$hi; + i64toi32_i32$3 = __wasm_i64_mul($887 | 0, i64toi32_i32$2 | 0, $3075 | 0, i64toi32_i32$3 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $889 = i64toi32_i32$3; + $889$hi = i64toi32_i32$2; + i64toi32_i32$1 = $6; + i64toi32_i32$2 = HEAP32[($6 + 752 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($6 + 756 | 0) >> 2] | 0; + $890$hi = i64toi32_i32$3; + i64toi32_i32$3 = $889$hi; + i64toi32_i32$3 = $890$hi; + $3085 = i64toi32_i32$2; + i64toi32_i32$3 = $889$hi; + i64toi32_i32$2 = $890$hi; + btConvexHullInternal__Int128__mul_28long_20long_2c_20long_20long_29($6 + 160 | 0 | 0, $889 | 0, i64toi32_i32$3 | 0, $3085 | 0, i64toi32_i32$2 | 0); + btConvexHullInternal__Int128__operator__28btConvexHullInternal__Int128_20const__29_20const($6 + 224 | 0 | 0, $6 + 208 | 0 | 0, $6 + 160 | 0 | 0); + i64toi32_i32$3 = HEAP32[((HEAP32[($6 + 1236 | 0) >> 2] | 0) + 52 | 0) >> 2] | 0; + i64toi32_i32$2 = i64toi32_i32$3 >> 31 | 0; + $906 = i64toi32_i32$3; + $906$hi = i64toi32_i32$2; + i64toi32_i32$1 = $6; + i64toi32_i32$2 = HEAP32[($6 + 720 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($6 + 724 | 0) >> 2] | 0; + $907$hi = i64toi32_i32$3; + i64toi32_i32$3 = $906$hi; + i64toi32_i32$3 = $907$hi; + $3111 = i64toi32_i32$2; + i64toi32_i32$3 = $906$hi; + i64toi32_i32$2 = $907$hi; + i64toi32_i32$2 = __wasm_i64_mul($906 | 0, i64toi32_i32$3 | 0, $3111 | 0, i64toi32_i32$2 | 0) | 0; + i64toi32_i32$3 = i64toi32_i32$HIGH_BITS; + $908 = i64toi32_i32$2; + $908$hi = i64toi32_i32$3; + i64toi32_i32$1 = $6; + i64toi32_i32$3 = HEAP32[($6 + 736 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($6 + 740 | 0) >> 2] | 0; + $909$hi = i64toi32_i32$2; + i64toi32_i32$2 = $908$hi; + i64toi32_i32$2 = $909$hi; + $3121 = i64toi32_i32$3; + i64toi32_i32$2 = $908$hi; + i64toi32_i32$3 = $909$hi; + btConvexHullInternal__Int128__mul_28long_20long_2c_20long_20long_29($6 + 144 | 0 | 0, $908 | 0, i64toi32_i32$2 | 0, $3121 | 0, i64toi32_i32$3 | 0); + btConvexHullInternal__Int128__operator__28btConvexHullInternal__Int128_20const__29_20const_2($6 + 240 | 0 | 0, $6 + 224 | 0 | 0, $6 + 144 | 0 | 0); + i64toi32_i32$2 = HEAP32[($6 + 1136 | 0) >> 2] | 0; + i64toi32_i32$3 = i64toi32_i32$2 >> 31 | 0; + btConvexHullInternal__Int128__operator__28long_20long_29_20const($6 + 128 | 0 | 0, $6 + 664 | 0 | 0, i64toi32_i32$2 | 0, i64toi32_i32$3 | 0); + btConvexHullInternal__Int128__operator__28btConvexHullInternal__Int128_20const__29_20const($6 + 256 | 0 | 0, $6 + 240 | 0 | 0, $6 + 128 | 0 | 0); + $940 = 8; + i64toi32_i32$1 = ($6 + 664 | 0) + $940 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $3183 = i64toi32_i32$3; + i64toi32_i32$3 = ($6 + 112 | 0) + $940 | 0; + HEAP32[i64toi32_i32$3 >> 2] = $3183; + HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] = i64toi32_i32$2; + i64toi32_i32$1 = $6; + i64toi32_i32$2 = HEAP32[($6 + 664 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($6 + 668 | 0) >> 2] | 0; + $3187 = i64toi32_i32$2; + i64toi32_i32$2 = $6; + HEAP32[($6 + 112 | 0) >> 2] = $3187; + HEAP32[($6 + 116 | 0) >> 2] = i64toi32_i32$3; + $951 = 8; + i64toi32_i32$1 = ($6 + 544 | 0) + $951 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $3207 = i64toi32_i32$3; + i64toi32_i32$3 = ($6 + 48 | 0) + $951 | 0; + HEAP32[i64toi32_i32$3 >> 2] = $3207; + HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] = i64toi32_i32$2; + i64toi32_i32$1 = $6; + i64toi32_i32$2 = HEAP32[($6 + 544 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($6 + 548 | 0) >> 2] | 0; + $3211 = i64toi32_i32$2; + i64toi32_i32$2 = $6; + HEAP32[($6 + 48 | 0) >> 2] = $3211; + HEAP32[($6 + 52 | 0) >> 2] = i64toi32_i32$3; + i64toi32_i32$1 = ($6 + 400 | 0) + $951 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $3227 = i64toi32_i32$3; + i64toi32_i32$3 = ($6 + 32 | 0) + $951 | 0; + HEAP32[i64toi32_i32$3 >> 2] = $3227; + HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] = i64toi32_i32$2; + i64toi32_i32$1 = $6; + i64toi32_i32$2 = HEAP32[($6 + 400 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($6 + 404 | 0) >> 2] | 0; + $3231 = i64toi32_i32$2; + i64toi32_i32$2 = $6; + HEAP32[($6 + 32 | 0) >> 2] = $3231; + HEAP32[($6 + 36 | 0) >> 2] = i64toi32_i32$3; + i64toi32_i32$1 = ($6 + 256 | 0) + $951 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $3247 = i64toi32_i32$3; + i64toi32_i32$3 = ($6 + 16 | 0) + $951 | 0; + HEAP32[i64toi32_i32$3 >> 2] = $3247; + HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] = i64toi32_i32$2; + i64toi32_i32$1 = $6; + i64toi32_i32$2 = HEAP32[($6 + 256 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($6 + 260 | 0) >> 2] | 0; + $3251 = i64toi32_i32$2; + i64toi32_i32$2 = $6; + HEAP32[($6 + 16 | 0) >> 2] = $3251; + HEAP32[($6 + 20 | 0) >> 2] = i64toi32_i32$3; + i64toi32_i32$1 = ($6 + 112 | 0) + $951 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $3264 = i64toi32_i32$3; + i64toi32_i32$3 = $6 + $951 | 0; + HEAP32[i64toi32_i32$3 >> 2] = $3264; + HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] = i64toi32_i32$2; + i64toi32_i32$1 = $6; + i64toi32_i32$2 = HEAP32[($6 + 112 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($6 + 116 | 0) >> 2] | 0; + $3268 = i64toi32_i32$2; + i64toi32_i32$2 = $6; + HEAP32[$6 >> 2] = $3268; + HEAP32[($6 + 4 | 0) >> 2] = i64toi32_i32$3; + btConvexHullInternal__PointR128__PointR128_28btConvexHullInternal__Int128_2c_20btConvexHullInternal__Int128_2c_20btConvexHullInternal__Int128_2c_20btConvexHullInternal__Int128_29($6 + 560 | 0 | 0, $6 + 48 | 0 | 0, $6 + 32 | 0 | 0, $6 + 16 | 0 | 0, $6 | 0) | 0; + $992 = (HEAP32[($6 + 628 | 0) >> 2] | 0) + 24 | 0; + i64toi32_i32$1 = $6; + i64toi32_i32$3 = HEAP32[($6 + 560 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($6 + 564 | 0) >> 2] | 0; + $3295 = i64toi32_i32$3; + i64toi32_i32$3 = $992; + HEAP32[i64toi32_i32$3 >> 2] = $3295; + HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] = i64toi32_i32$2; + $994 = 56; + i64toi32_i32$1 = ($6 + 560 | 0) + $994 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $3308 = i64toi32_i32$2; + i64toi32_i32$2 = $992 + $994 | 0; + HEAP32[i64toi32_i32$2 >> 2] = $3308; + HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] = i64toi32_i32$3; + $1000 = 48; + i64toi32_i32$1 = ($6 + 560 | 0) + $1000 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $3321 = i64toi32_i32$3; + i64toi32_i32$3 = $992 + $1000 | 0; + HEAP32[i64toi32_i32$3 >> 2] = $3321; + HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] = i64toi32_i32$2; + $1006 = 40; + i64toi32_i32$1 = ($6 + 560 | 0) + $1006 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $3334 = i64toi32_i32$2; + i64toi32_i32$2 = $992 + $1006 | 0; + HEAP32[i64toi32_i32$2 >> 2] = $3334; + HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] = i64toi32_i32$3; + $1012 = 32; + i64toi32_i32$1 = ($6 + 560 | 0) + $1012 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $3347 = i64toi32_i32$3; + i64toi32_i32$3 = $992 + $1012 | 0; + HEAP32[i64toi32_i32$3 >> 2] = $3347; + HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] = i64toi32_i32$2; + $1018 = 24; + i64toi32_i32$1 = ($6 + 560 | 0) + $1018 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $3360 = i64toi32_i32$2; + i64toi32_i32$2 = $992 + $1018 | 0; + HEAP32[i64toi32_i32$2 >> 2] = $3360; + HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] = i64toi32_i32$3; + $1024 = 16; + i64toi32_i32$1 = ($6 + 560 | 0) + $1024 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $3373 = i64toi32_i32$3; + i64toi32_i32$3 = $992 + $1024 | 0; + HEAP32[i64toi32_i32$3 >> 2] = $3373; + HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] = i64toi32_i32$2; + $1030 = 8; + i64toi32_i32$1 = ($6 + 560 | 0) + $1030 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $3386 = i64toi32_i32$2; + i64toi32_i32$2 = $992 + $1030 | 0; + HEAP32[i64toi32_i32$2 >> 2] = $3386; + HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] = i64toi32_i32$3; + $1039 = Math_fround(btConvexHullInternal__PointR128__xvalue_28_29_20const((HEAP32[($6 + 628 | 0) >> 2] | 0) + 24 | 0 | 0)); + label$50 : { + label$51 : { + if (!(Math_fround(Math_abs($1039)) < Math_fround(2147483648.0))) { + break label$51 + } + $1045 = ~~$1039; + break label$50; + } + $1045 = -2147483648; + } + HEAP32[((HEAP32[($6 + 628 | 0) >> 2] | 0) + 88 | 0) >> 2] = $1045; + $1052 = Math_fround(btConvexHullInternal__PointR128__yvalue_28_29_20const((HEAP32[($6 + 628 | 0) >> 2] | 0) + 24 | 0 | 0)); + label$52 : { + label$53 : { + if (!(Math_fround(Math_abs($1052)) < Math_fround(2147483648.0))) { + break label$53 + } + $1058 = ~~$1052; + break label$52; + } + $1058 = -2147483648; + } + HEAP32[((HEAP32[($6 + 628 | 0) >> 2] | 0) + 92 | 0) >> 2] = $1058; + $1065 = Math_fround(btConvexHullInternal__PointR128__zvalue_28_29_20const((HEAP32[($6 + 628 | 0) >> 2] | 0) + 24 | 0 | 0)); + label$54 : { + label$55 : { + if (!(Math_fround(Math_abs($1065)) < Math_fround(2147483648.0))) { + break label$55 + } + $1071 = ~~$1065; + break label$54; + } + $1071 = -2147483648; + } + HEAP32[((HEAP32[($6 + 628 | 0) >> 2] | 0) + 96 | 0) >> 2] = $1071; + HEAP32[((HEAP32[($6 + 1116 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($6 + 628 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 628 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($6 + 856 | 0) >> 2] | 0; + btAlignedObjectArray_btConvexHullInternal__Vertex____push_back_28btConvexHullInternal__Vertex__20const__29($3 | 0, $6 + 628 | 0 | 0); + btAlignedObjectArray_btConvexHullInternal__Vertex____push_back_28btConvexHullInternal__Vertex__20const__29($3 | 0, $6 + 812 | 0 | 0); + HEAP32[($6 + 108 | 0) >> 2] = 0; + btAlignedObjectArray_btConvexHullInternal__Vertex____push_back_28btConvexHullInternal__Vertex__20const__29($3 | 0, $6 + 108 | 0 | 0); + } + label$56 : { + label$57 : { + label$58 : { + if (HEAP32[($6 + 1068 | 0) >> 2] | 0) { + break label$58 + } + if (HEAP32[($6 + 868 | 0) >> 2] | 0) { + break label$58 + } + if (!((HEAP32[((HEAP32[(HEAP32[((HEAP32[($6 + 864 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (HEAP32[((HEAP32[($6 + 1116 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$57 + } + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btConvexHullInternal__newEdgePair_28btConvexHullInternal__Vertex__2c_20btConvexHullInternal__Vertex__29($7 | 0, HEAP32[((HEAP32[($6 + 864 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6 + 1116 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 920 | 0) >> 2] = wasm2js_i32$1; + label$59 : { + if (HEAP32[($6 + 868 | 0) >> 2] | 0) { + break label$59 + } + btConvexHullInternal__Edge__link_28btConvexHullInternal__Edge__29(HEAP32[($6 + 920 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[((HEAP32[($6 + 864 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0 | 0); + } + label$60 : { + label$61 : { + if (!(HEAP32[($6 + 868 | 0) >> 2] | 0)) { + break label$61 + } + if (!((HEAP32[($6 + 860 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$60 + } + } + btConvexHullInternal__Edge__link_28btConvexHullInternal__Edge__29(HEAP32[((HEAP32[($6 + 864 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($6 + 920 | 0) >> 2] | 0 | 0); + } + label$62 : { + if (HEAP32[($6 + 1068 | 0) >> 2] | 0) { + break label$62 + } + btConvexHullInternal__Edge__link_28btConvexHullInternal__Edge__29(HEAP32[((HEAP32[((HEAP32[($6 + 1116 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6 + 920 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + btConvexHullInternal__Edge__link_28btConvexHullInternal__Edge__29(HEAP32[((HEAP32[($6 + 920 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6 + 1116 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + break label$56; + } + HEAP32[($6 + 920 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($6 + 864 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0; + } + label$63 : { + if (!((HEAP32[($6 + 860 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$63 + } + label$64 : { + label$65 : { + if (!((HEAP32[($6 + 868 | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0)) { + break label$65 + } + btConvexHullInternal__Edge__link_28btConvexHullInternal__Edge__29(HEAP32[($6 + 920 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6 + 860 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + break label$64; + } + label$66 : { + if (!((HEAP32[($6 + 920 | 0) >> 2] | 0 | 0) != (HEAP32[((HEAP32[($6 + 860 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$66 + } + btAlignedObjectArray_btConvexHullInternal__Vertex____push_back_28btConvexHullInternal__Vertex__20const__29($3 | 0, (HEAP32[($6 + 860 | 0) >> 2] | 0) + 12 | 0 | 0); + label$67 : { + label$68 : while (1) { + if (!((HEAP32[(HEAP32[($6 + 920 | 0) >> 2] | 0) >> 2] | 0 | 0) != (HEAP32[((HEAP32[($6 + 860 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$67 + } + HEAP32[($6 + 104 | 0) >> 2] = HEAP32[((HEAP32[(HEAP32[($6 + 920 | 0) >> 2] | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + btConvexHullInternal__removeEdgePair_28btConvexHullInternal__Edge__29($7 | 0, HEAP32[(HEAP32[($6 + 920 | 0) >> 2] | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btConvexHullInternal__Vertex____push_back_28btConvexHullInternal__Vertex__20const__29($3 | 0, $6 + 104 | 0 | 0); + continue label$68; + }; + } + HEAP32[($6 + 100 | 0) >> 2] = 0; + btAlignedObjectArray_btConvexHullInternal__Vertex____push_back_28btConvexHullInternal__Vertex__20const__29($3 | 0, $6 + 100 | 0 | 0); + } + } + } + HEAP32[((HEAP32[($6 + 920 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[($6 + 1236 | 0) >> 2] | 0; + HEAP32[((HEAP32[((HEAP32[($6 + 920 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[($6 + 1116 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + label$69 : { + if ((HEAP32[($6 + 916 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$69 + } + HEAP32[($6 + 916 | 0) >> 2] = HEAP32[($6 + 920 | 0) >> 2] | 0; + } + continue label$32; + } + break label$32; + }; + label$70 : { + label$71 : { + if (!((HEAP32[($6 + 1068 | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0)) { + break label$71 + } + HEAP32[((HEAP32[((HEAP32[($6 + 916 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[($6 + 920 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + btConvexHullInternal__Edge__link_28btConvexHullInternal__Edge__29(HEAP32[((HEAP32[($6 + 924 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($6 + 916 | 0) >> 2] | 0 | 0); + btConvexHullInternal__Edge__link_28btConvexHullInternal__Edge__29(HEAP32[($6 + 916 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6 + 920 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + break label$70; + } + label$72 : { + if (!((HEAP32[($6 + 916 | 0) >> 2] | 0 | 0) != (HEAP32[((HEAP32[($6 + 920 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$72 + } + btAlignedObjectArray_btConvexHullInternal__Vertex____push_back_28btConvexHullInternal__Vertex__20const__29($3 | 0, (HEAP32[($6 + 920 | 0) >> 2] | 0) + 12 | 0 | 0); + label$73 : { + label$74 : while (1) { + if (!((HEAP32[(HEAP32[($6 + 916 | 0) >> 2] | 0) >> 2] | 0 | 0) != (HEAP32[((HEAP32[($6 + 920 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$73 + } + HEAP32[($6 + 96 | 0) >> 2] = HEAP32[((HEAP32[(HEAP32[($6 + 916 | 0) >> 2] | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + btConvexHullInternal__removeEdgePair_28btConvexHullInternal__Edge__29($7 | 0, HEAP32[(HEAP32[($6 + 916 | 0) >> 2] | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btConvexHullInternal__Vertex____push_back_28btConvexHullInternal__Vertex__20const__29($3 | 0, $6 + 96 | 0 | 0); + continue label$74; + }; + } + HEAP32[($6 + 92 | 0) >> 2] = 0; + btAlignedObjectArray_btConvexHullInternal__Vertex____push_back_28btConvexHullInternal__Vertex__20const__29($3 | 0, $6 + 92 | 0 | 0); + } + } + label$75 : { + if ((btAlignedObjectArray_btConvexHullInternal__Vertex____size_28_29_20const($3 | 0) | 0 | 0) > (0 | 0) & 1 | 0) { + break label$75 + } + __assert_fail(86063 | 0, 72732 | 0, 2588 | 0, 82177 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $7, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btConvexHullInternal__Vertex____operator_5b_5d_28int_29($3 | 0, 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 124 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($6 + 88 | 0) >> 2] = 0; + label$76 : { + label$77 : while (1) { + if (!((HEAP32[($6 + 88 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btConvexHullInternal__Vertex____size_28_29_20const($3 | 0) | 0 | 0) & 1 | 0)) { + break label$76 + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btAlignedObjectArray_btConvexHullInternal__Vertex____size_28_29_20const($3 | 0) | 0), HEAP32[(wasm2js_i32$0 + 84 | 0) >> 2] = wasm2js_i32$1; + label$78 : { + label$79 : while (1) { + if (!((HEAP32[($6 + 88 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 84 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$78 + } + $1278 = HEAP32[($6 + 88 | 0) >> 2] | 0; + HEAP32[($6 + 88 | 0) >> 2] = $1278 + 1 | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btConvexHullInternal__Vertex____operator_5b_5d_28int_29($3 | 0, $1278 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 80 | 0) >> 2] = wasm2js_i32$1; + HEAP8[($6 + 79 | 0) >> 0] = 0; + label$80 : { + label$81 : while (1) { + $1284 = HEAP32[($6 + 88 | 0) >> 2] | 0; + HEAP32[($6 + 88 | 0) >> 2] = $1284 + 1 | 0; + $1288 = HEAP32[(btAlignedObjectArray_btConvexHullInternal__Vertex____operator_5b_5d_28int_29($3 | 0, $1284 | 0) | 0) >> 2] | 0; + HEAP32[($6 + 72 | 0) >> 2] = $1288; + if (!(($1288 | 0) != (0 | 0) & 1 | 0)) { + break label$80 + } + btConvexHullInternal__Vertex__receiveNearbyFaces_28btConvexHullInternal__Vertex__29(HEAP32[($6 + 80 | 0) >> 2] | 0 | 0, HEAP32[($6 + 72 | 0) >> 2] | 0 | 0); + label$82 : { + label$83 : while (1) { + if (!((HEAP32[((HEAP32[($6 + 72 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$82 + } + label$84 : { + if ((HEAPU8[($6 + 79 | 0) >> 0] | 0) & 1 | 0) { + break label$84 + } + HEAP8[($6 + 79 | 0) >> 0] = 1; + btAlignedObjectArray_btConvexHullInternal__Vertex____push_back_28btConvexHullInternal__Vertex__20const__29($3 | 0, $6 + 80 | 0 | 0); + } + btAlignedObjectArray_btConvexHullInternal__Vertex____push_back_28btConvexHullInternal__Vertex__20const__29($3 | 0, (HEAP32[((HEAP32[($6 + 72 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 12 | 0 | 0); + btConvexHullInternal__removeEdgePair_28btConvexHullInternal__Edge__29($7 | 0, HEAP32[((HEAP32[($6 + 72 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + continue label$83; + }; + } + continue label$81; + }; + } + label$85 : { + if (!((HEAPU8[($6 + 79 | 0) >> 0] | 0) & 1 | 0)) { + break label$85 + } + HEAP32[($6 + 68 | 0) >> 2] = 0; + btAlignedObjectArray_btConvexHullInternal__Vertex____push_back_28btConvexHullInternal__Vertex__20const__29($3 | 0, $6 + 68 | 0 | 0); + } + continue label$79; + }; + } + continue label$77; + }; + } + HEAP32[($6 + 64 | 0) >> 2] = 0; + btAlignedObjectArray_btConvexHullInternal__Vertex____resize_28int_2c_20btConvexHullInternal__Vertex__20const__29($3 | 0, 0 | 0, $6 + 64 | 0 | 0); + $1332 = (HEAP32[($6 + 1236 | 0) >> 2] | 0) + 12 | 0; + i64toi32_i32$1 = $6; + i64toi32_i32$3 = HEAP32[($6 + 1128 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($6 + 1132 | 0) >> 2] | 0; + $4019 = i64toi32_i32$3; + i64toi32_i32$3 = $1332; + HEAP32[i64toi32_i32$3 >> 2] = $4019; + HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] = i64toi32_i32$2; + $1334 = 8; + i64toi32_i32$1 = ($6 + 1128 | 0) + $1334 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $4032 = i64toi32_i32$2; + i64toi32_i32$2 = $1332 + $1334 | 0; + HEAP32[i64toi32_i32$2 >> 2] = $4032; + HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] = i64toi32_i32$3; + HEAP8[($6 + 1247 | 0) >> 0] = 1 & 1 | 0; + } + $1345 = (HEAPU8[($6 + 1247 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $6 + 1248 | 0; + return $1345 | 0; + } + + function btAlignedObjectArray_btConvexHullInternal__Vertex_____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btConvexHullInternal__Vertex____clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btConvexHullInternal__Face_____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btConvexHullInternal__Face____clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedAllocator_btConvexHullInternal__Vertex__2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btConvexHullInternal__Vertex____init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btAlignedObjectArray_btConvexHullInternal__Vertex____capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btConvexHullInternal__Vertex____allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btAlignedAllocator_btConvexHullInternal__Face__2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btConvexHullInternal__Face____init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btConvexHullInternal__PoolArray_btConvexHullInternal__Face___PoolArray_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($5 + 4 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(Math_imul(HEAP32[($4 + 8 | 0) >> 2] | 0, 60) | 0, 16 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function btConvexHullInternal__PoolArray_btConvexHullInternal__Face___init_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $26 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[$4 >> 2] | 0; + HEAP32[($3 + 4 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + label$3 : { + label$4 : { + if (!(((HEAP32[($3 + 4 | 0) >> 2] | 0) + 1 | 0 | 0) < (HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + $26 = (HEAP32[($3 + 8 | 0) >> 2] | 0) + 60 | 0; + break label$3; + } + $26 = 0; + } + HEAP32[(HEAP32[($3 + 8 | 0) >> 2] | 0) >> 2] = $26; + HEAP32[($3 + 4 | 0) >> 2] = (HEAP32[($3 + 4 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($3 + 8 | 0) >> 2] = (HEAP32[($3 + 8 | 0) >> 2] | 0) + 60 | 0; + continue label$2; + }; + } + return HEAP32[$4 >> 2] | 0 | 0; + } + + function btConvexHullInternal__Face__Face_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + btConvexHullInternal__Point32__Point32_28_29($4 + 12 | 0 | 0) | 0; + btConvexHullInternal__Point32__Point32_28_29($4 + 28 | 0 | 0) | 0; + btConvexHullInternal__Point32__Point32_28_29($4 + 44 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btConvexHullInternal__Face____capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btConvexHullInternal__Face____allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btAlignedObjectArray_btConvexHullInternal__Face____reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btConvexHullInternal__Face____capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btConvexHullInternal__Face____allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btConvexHullInternal__Face____copy_28int_2c_20int_2c_20btConvexHullInternal__Face___29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btConvexHullInternal__Face____size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btConvexHullInternal__Face____destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btConvexHullInternal__Face____size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btConvexHullInternal__Face____deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btConvexHullInternal__Point32__isZero_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $7 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + $7 = 0; + label$1 : { + if (HEAP32[$4 >> 2] | 0) { + break label$1 + } + $7 = 0; + if (HEAP32[($4 + 4 | 0) >> 2] | 0) { + break label$1 + } + $7 = (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) == (0 | 0); + } + return $7 & 1 | 0 | 0; + } + + function btConvexHullInternal__Face__getNormal_28_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btConvexHullInternal__Point32__cross_28btConvexHullInternal__Point32_20const__29_20const($0 | 0, $5 + 28 | 0 | 0, $5 + 44 | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btConvexHullInternal__Vertex__dot_28btConvexHullInternal__Point64_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0; + $5 = __stack_pointer - 96 | 0; + __stack_pointer = $5; + HEAP32[($5 + 92 | 0) >> 2] = $1; + HEAP32[($5 + 88 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 92 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($6 + 100 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$2 + } + i64toi32_i32$0 = btConvexHullInternal__Point32__dot_28btConvexHullInternal__Point64_20const__29_20const($6 + 88 | 0 | 0, HEAP32[($5 + 88 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + btConvexHullInternal__Rational128__Rational128_28long_20long_29($0 | 0, i64toi32_i32$0 | 0, i64toi32_i32$1 | 0) | 0; + break label$1; + } + i64toi32_i32$2 = HEAP32[($5 + 88 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + btConvexHullInternal__Int128__operator__28long_20long_29_20const($5 + 40 | 0 | 0, $6 + 24 | 0 | 0, i64toi32_i32$1 | 0, i64toi32_i32$0 | 0); + i64toi32_i32$2 = HEAP32[($5 + 88 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 12 | 0) >> 2] | 0; + btConvexHullInternal__Int128__operator__28long_20long_29_20const($5 + 24 | 0 | 0, ($6 + 24 | 0) + 16 | 0 | 0, i64toi32_i32$0 | 0, i64toi32_i32$1 | 0); + btConvexHullInternal__Int128__operator__28btConvexHullInternal__Int128_20const__29_20const($5 + 56 | 0 | 0, $5 + 40 | 0 | 0, $5 + 24 | 0 | 0); + i64toi32_i32$2 = HEAP32[($5 + 88 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 16 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 20 | 0) >> 2] | 0; + btConvexHullInternal__Int128__operator__28long_20long_29_20const($5 + 8 | 0 | 0, ($6 + 24 | 0) + 32 | 0 | 0, i64toi32_i32$1 | 0, i64toi32_i32$0 | 0); + btConvexHullInternal__Int128__operator__28btConvexHullInternal__Int128_20const__29_20const($5 + 72 | 0 | 0, $5 + 56 | 0 | 0, $5 + 8 | 0 | 0); + btConvexHullInternal__Rational128__Rational128_28btConvexHullInternal__Int128_20const__2c_20btConvexHullInternal__Int128_20const__29($0 | 0, $5 + 72 | 0 | 0, ($6 + 24 | 0) + 48 | 0 | 0) | 0; + } + __stack_pointer = $5 + 96 | 0; + return; + } + + function btConvexHullInternal__Int128__operator__28btConvexHullInternal__Int128_20const__29_20const_2($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $1; + HEAP32[($5 + 24 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + btConvexHullInternal__Int128__operator__28_29_20const($5 + 8 | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + btConvexHullInternal__Int128__operator__28btConvexHullInternal__Int128_20const__29_20const($0 | 0, $6 | 0, $5 + 8 | 0 | 0); + __stack_pointer = $5 + 32 | 0; + return; + } + + function btConvexHullInternal__PointR128__PointR128_28btConvexHullInternal__Int128_2c_20btConvexHullInternal__Int128_2c_20btConvexHullInternal__Int128_2c_20btConvexHullInternal__Int128_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $8 = 0, $7 = 0, $10 = 0, $15 = 0, $17 = 0, $22 = 0, $24 = 0, $29 = 0, $31 = 0, $46 = 0, $56 = 0, $63 = 0, $73 = 0, $80 = 0, $90 = 0, $97 = 0, $107 = 0; + $7 = __stack_pointer - 16 | 0; + HEAP32[($7 + 12 | 0) >> 2] = $0; + $8 = HEAP32[($7 + 12 | 0) >> 2] | 0; + i64toi32_i32$2 = $1; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $46 = i64toi32_i32$0; + i64toi32_i32$0 = $8; + HEAP32[i64toi32_i32$0 >> 2] = $46; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $10 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $10 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $56 = i64toi32_i32$1; + i64toi32_i32$1 = $8 + $10 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $56; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $15 = $8 + 16 | 0; + i64toi32_i32$2 = $2; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $63 = i64toi32_i32$0; + i64toi32_i32$0 = $15; + HEAP32[i64toi32_i32$0 >> 2] = $63; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $17 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $17 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $73 = i64toi32_i32$1; + i64toi32_i32$1 = $15 + $17 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $73; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $22 = $8 + 32 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $80 = i64toi32_i32$0; + i64toi32_i32$0 = $22; + HEAP32[i64toi32_i32$0 >> 2] = $80; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $24 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $24 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $90 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $24 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $90; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $29 = $8 + 48 | 0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $97 = i64toi32_i32$0; + i64toi32_i32$0 = $29; + HEAP32[i64toi32_i32$0 >> 2] = $97; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $31 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $31 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $107 = i64toi32_i32$1; + i64toi32_i32$1 = $29 + $31 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $107; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return $8 | 0; + } + + function btConvexHullInternal__Vertex__receiveNearbyFaces_28btConvexHullInternal__Vertex__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + break label$1; + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + } + label$3 : { + if (!((HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 16 | 0) >> 2] = HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + } + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + label$6 : { + if ((HEAP32[((HEAP32[($4 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$6 + } + __assert_fail(82799 | 0, 72732 | 0, 498 | 0, 70267 | 0); + wasm2js_trap(); + } + HEAP32[((HEAP32[($4 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = $5; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$5; + }; + } + HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] = 0; + HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] = 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btConvexHullInternal__Vertex____copy_28int_2c_20int_2c_20btConvexHullInternal__Vertex___29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[((HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[((HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btConvexHullInternal__Vertex____clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btConvexHullInternal__Vertex____destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btConvexHullInternal__Vertex____size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btConvexHullInternal__Vertex____deallocate_28_29($4 | 0); + btAlignedObjectArray_btConvexHullInternal__Vertex____init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btConvexHullInternal__Face____clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btConvexHullInternal__Face____destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btConvexHullInternal__Face____size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btConvexHullInternal__Face____deallocate_28_29($4 | 0); + btAlignedObjectArray_btConvexHullInternal__Face____init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btConvexHullInternal__Rational128__Rational128_28long_20long_29($0, $1, $1$hi) { + $0 = $0 | 0; + $1 = $1 | 0; + $1$hi = $1$hi | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$5 = 0, $4 = 0, $5 = 0, i64toi32_i32$3 = 0, $8$hi = 0, $9$hi = 0, $27$hi = 0, $28$hi = 0, $31 = 0, $32 = 0, $33 = 0, $21 = 0, $34 = 0, $35 = 0, $36 = 0, $35$hi = 0, $42 = 0, $54 = 0, $63 = 0, $65 = 0, $119 = 0, $132 = 0, $149$hi = 0, $150 = 0, $162 = 0, $175 = 0, $188 = 0, $201 = 0, $212 = 0, $222 = 0, $70 = 0; + $4 = __stack_pointer - 80 | 0; + __stack_pointer = $4; + HEAP32[($4 + 72 | 0) >> 2] = $0; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$1 = $4; + HEAP32[(i64toi32_i32$1 + 64 | 0) >> 2] = $1; + HEAP32[(i64toi32_i32$1 + 68 | 0) >> 2] = i64toi32_i32$0; + $5 = HEAP32[(i64toi32_i32$1 + 72 | 0) >> 2] | 0; + HEAP32[(i64toi32_i32$1 + 76 | 0) >> 2] = $5; + btConvexHullInternal__Int128__Int128_28_29($5 | 0) | 0; + btConvexHullInternal__Int128__Int128_28_29($5 + 16 | 0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 64 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 68 | 0) >> 2] | 0; + $8$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $9$hi = i64toi32_i32$1; + i64toi32_i32$1 = $8$hi; + i64toi32_i32$1 = $9$hi; + i64toi32_i32$1 = $8$hi; + i64toi32_i32$1 = $9$hi; + i64toi32_i32$1 = $8$hi; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$0 = $9$hi; + i64toi32_i32$3 = 0; + if ((i64toi32_i32$1 | 0) > (i64toi32_i32$0 | 0)) { + $31 = 1 + } else { + if ((i64toi32_i32$1 | 0) >= (i64toi32_i32$0 | 0)) { + if (i64toi32_i32$2 >>> 0 <= i64toi32_i32$3 >>> 0) { + $32 = 0 + } else { + $32 = 1 + } + $33 = $32; + } else { + $33 = 0 + } + $31 = $33; + } + label$1 : { + label$2 : { + if (!($31 & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 32 | 0) >> 2] = 1; + i64toi32_i32$3 = $4; + i64toi32_i32$2 = HEAP32[($4 + 64 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($4 + 68 | 0) >> 2] | 0; + btConvexHullInternal__Int128__Int128_28long_20long_29($4 + 48 | 0 | 0, i64toi32_i32$2 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$3 = $4; + i64toi32_i32$1 = HEAP32[($4 + 48 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($4 + 52 | 0) >> 2] | 0; + $119 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[i64toi32_i32$1 >> 2] = $119; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$2; + $21 = 8; + i64toi32_i32$3 = ($4 + 48 | 0) + $21 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$3 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] | 0; + $132 = i64toi32_i32$2; + i64toi32_i32$2 = $5 + $21 | 0; + HEAP32[i64toi32_i32$2 >> 2] = $132; + HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] = i64toi32_i32$1; + break label$1; + } + i64toi32_i32$3 = $4; + i64toi32_i32$1 = HEAP32[($4 + 64 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($4 + 68 | 0) >> 2] | 0; + $27$hi = i64toi32_i32$2; + i64toi32_i32$2 = 0; + $28$hi = i64toi32_i32$2; + i64toi32_i32$2 = $27$hi; + i64toi32_i32$2 = $28$hi; + i64toi32_i32$2 = $27$hi; + i64toi32_i32$2 = $28$hi; + i64toi32_i32$2 = $27$hi; + i64toi32_i32$3 = i64toi32_i32$1; + i64toi32_i32$1 = $28$hi; + i64toi32_i32$0 = 0; + if ((i64toi32_i32$2 | 0) < (i64toi32_i32$1 | 0)) { + $34 = 1 + } else { + if ((i64toi32_i32$2 | 0) <= (i64toi32_i32$1 | 0)) { + if (i64toi32_i32$3 >>> 0 >= i64toi32_i32$0 >>> 0) { + $35 = 0 + } else { + $35 = 1 + } + $36 = $35; + } else { + $36 = 0 + } + $34 = $36; + } + label$3 : { + label$4 : { + if (!($34 & 1 | 0)) { + break label$4 + } + HEAP32[($5 + 32 | 0) >> 2] = -1; + i64toi32_i32$0 = $4; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$0 + 64 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$0 + 68 | 0) >> 2] | 0; + $35$hi = i64toi32_i32$2; + i64toi32_i32$2 = 0; + $149$hi = i64toi32_i32$2; + i64toi32_i32$2 = $35$hi; + $150 = i64toi32_i32$3; + i64toi32_i32$2 = $149$hi; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = $35$hi; + i64toi32_i32$1 = $150; + i64toi32_i32$5 = (i64toi32_i32$0 >>> 0 < i64toi32_i32$1 >>> 0) + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0; + btConvexHullInternal__Int128__Int128_28long_20long_29($4 + 32 | 0 | 0, i64toi32_i32$0 - i64toi32_i32$1 | 0 | 0, i64toi32_i32$5 | 0) | 0; + i64toi32_i32$2 = $4; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$2 + 32 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 36 | 0) >> 2] | 0; + $162 = i64toi32_i32$5; + i64toi32_i32$5 = $5; + HEAP32[i64toi32_i32$5 >> 2] = $162; + HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] = i64toi32_i32$0; + $42 = 8; + i64toi32_i32$2 = (i64toi32_i32$2 + 32 | 0) + $42 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $175 = i64toi32_i32$0; + i64toi32_i32$0 = $5 + $42 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $175; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$5; + break label$3; + } + HEAP32[($5 + 32 | 0) >> 2] = 0; + i64toi32_i32$5 = 0; + btConvexHullInternal__Int128__Int128_28unsigned_20long_20long_29($4 + 16 | 0 | 0, 0 | 0, i64toi32_i32$5 | 0) | 0; + i64toi32_i32$2 = $4; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$2 + 16 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 20 | 0) >> 2] | 0; + $188 = i64toi32_i32$5; + i64toi32_i32$5 = $5; + HEAP32[i64toi32_i32$5 >> 2] = $188; + HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] = i64toi32_i32$0; + $54 = 8; + i64toi32_i32$2 = (i64toi32_i32$2 + 16 | 0) + $54 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $201 = i64toi32_i32$0; + i64toi32_i32$0 = $5 + $54 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $201; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$5; + } + } + i64toi32_i32$5 = 0; + btConvexHullInternal__Int128__Int128_28unsigned_20long_20long_29($4 | 0, 1 | 0, i64toi32_i32$5 | 0) | 0; + $63 = $5 + 16 | 0; + i64toi32_i32$2 = $4; + i64toi32_i32$5 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $212 = i64toi32_i32$5; + i64toi32_i32$5 = $63; + HEAP32[i64toi32_i32$5 >> 2] = $212; + HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] = i64toi32_i32$0; + $65 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $65 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $222 = i64toi32_i32$0; + i64toi32_i32$0 = $63 + $65 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $222; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$5; + HEAP8[($5 + 36 | 0) >> 0] = 1; + $70 = HEAP32[($4 + 76 | 0) >> 2] | 0; + __stack_pointer = $4 + 80 | 0; + return $70 | 0; + } + + function btConvexHullInternal__Rational128__Rational128_28btConvexHullInternal__Int128_20const__2c_20btConvexHullInternal__Int128_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5 = 0, i64toi32_i32$2 = 0, $6 = 0, $20 = 0, $29 = 0, $46 = 0, $48 = 0, $60 = 0, $62 = 0, $117 = 0, $127 = 0, $139 = 0, $152 = 0, $179 = 0, $189 = 0, $211 = 0, $224 = 0, $69 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 64 | 0; + __stack_pointer = $5; + HEAP32[($5 + 56 | 0) >> 2] = $0; + HEAP32[($5 + 52 | 0) >> 2] = $1; + HEAP32[($5 + 48 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 56 | 0) >> 2] | 0; + HEAP32[($5 + 60 | 0) >> 2] = $6; + btConvexHullInternal__Int128__Int128_28_29($6 | 0) | 0; + btConvexHullInternal__Int128__Int128_28_29($6 + 16 | 0 | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btConvexHullInternal__Int128__getSign_28_29_20const(HEAP32[($5 + 52 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($6 + 32 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$2 + } + i64toi32_i32$2 = HEAP32[($5 + 52 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $117 = i64toi32_i32$0; + i64toi32_i32$0 = $6; + HEAP32[i64toi32_i32$0 >> 2] = $117; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $20 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $20 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $127 = i64toi32_i32$1; + i64toi32_i32$1 = $6 + $20 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $127; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$1; + } + btConvexHullInternal__Int128__operator__28_29_20const($5 + 32 | 0 | 0, HEAP32[($5 + 52 | 0) >> 2] | 0 | 0); + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 32 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 36 | 0) >> 2] | 0; + $139 = i64toi32_i32$0; + i64toi32_i32$0 = $6; + HEAP32[i64toi32_i32$0 >> 2] = $139; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $29 = 8; + i64toi32_i32$2 = ($5 + 32 | 0) + $29 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $152 = i64toi32_i32$1; + i64toi32_i32$1 = $6 + $29 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $152; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btConvexHullInternal__Int128__getSign_28_29_20const(HEAP32[($5 + 48 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + label$3 : { + label$4 : { + if (!((HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$4 + } + $46 = $6 + 16 | 0; + i64toi32_i32$2 = HEAP32[($5 + 48 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $179 = i64toi32_i32$0; + i64toi32_i32$0 = $46; + HEAP32[i64toi32_i32$0 >> 2] = $179; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $48 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $48 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $189 = i64toi32_i32$1; + i64toi32_i32$1 = $46 + $48 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $189; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$3; + } + HEAP32[($6 + 32 | 0) >> 2] = 0 - (HEAP32[($6 + 32 | 0) >> 2] | 0) | 0; + btConvexHullInternal__Int128__operator__28_29_20const($5 + 8 | 0 | 0, HEAP32[($5 + 48 | 0) >> 2] | 0 | 0); + $60 = $6 + 16 | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 12 | 0) >> 2] | 0; + $211 = i64toi32_i32$0; + i64toi32_i32$0 = $60; + HEAP32[i64toi32_i32$0 >> 2] = $211; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $62 = 8; + i64toi32_i32$2 = ($5 + 8 | 0) + $62 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $224 = i64toi32_i32$1; + i64toi32_i32$1 = $60 + $62 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $224; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + HEAP8[($6 + 36 | 0) >> 0] = 0; + $69 = HEAP32[($5 + 60 | 0) >> 2] | 0; + __stack_pointer = $5 + 64 | 0; + return $69 | 0; + } + + function btConvexHullComputer__compute_28void_20const__2c_20bool_2c_20int_2c_20int_2c_20float_2c_20float_29($0, $1, $2, $3, $4, $5, $6) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = Math_fround($5); + $6 = Math_fround($6); + var $9 = 0, $11 = 0, i64toi32_i32$0 = 0, $50 = Math_fround(0), $187 = 0, $201 = 0, $222 = 0, $300 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $9 = __stack_pointer - 336 | 0; + __stack_pointer = $9; + HEAP32[($9 + 328 | 0) >> 2] = $0; + HEAP32[($9 + 324 | 0) >> 2] = $1; + HEAP8[($9 + 323 | 0) >> 0] = $2; + HEAP32[($9 + 316 | 0) >> 2] = $3; + HEAP32[($9 + 312 | 0) >> 2] = $4; + HEAPF32[($9 + 308 | 0) >> 2] = $5; + HEAPF32[($9 + 304 | 0) >> 2] = $6; + $11 = HEAP32[($9 + 328 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($9 + 312 | 0) >> 2] | 0 | 0) <= (0 | 0) & 1 | 0)) { + break label$2 + } + btAlignedObjectArray_btVector3___clear_28_29($11 | 0); + btAlignedObjectArray_btConvexHullComputer__Edge___clear_28_29($11 + 20 | 0 | 0); + btAlignedObjectArray_int___clear_28_29($11 + 40 | 0 | 0); + HEAPF32[($9 + 332 | 0) >> 2] = Math_fround(0 | 0); + break label$1; + } + btConvexHullInternal__btConvexHullInternal_28_29($9 + 176 | 0 | 0) | 0; + btConvexHullInternal__compute_28void_20const__2c_20bool_2c_20int_2c_20int_29($9 + 176 | 0 | 0, HEAP32[($9 + 324 | 0) >> 2] | 0 | 0, (HEAPU8[($9 + 323 | 0) >> 0] | 0) & 1 | 0 | 0, HEAP32[($9 + 316 | 0) >> 2] | 0 | 0, HEAP32[($9 + 312 | 0) >> 2] | 0 | 0); + HEAPF32[($9 + 172 | 0) >> 2] = Math_fround(0 | 0); + label$3 : { + label$4 : { + if (!(Math_fround(HEAPF32[($9 + 308 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$4 + } + $50 = Math_fround(btConvexHullInternal__shrink_28float_2c_20float_29($9 + 176 | 0 | 0, Math_fround(Math_fround(HEAPF32[($9 + 308 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($9 + 304 | 0) >> 2])))); + HEAPF32[($9 + 172 | 0) >> 2] = $50; + if (!($50 < Math_fround(0 | 0) & 1 | 0)) { + break label$4 + } + btAlignedObjectArray_btVector3___clear_28_29($11 | 0); + btAlignedObjectArray_btConvexHullComputer__Edge___clear_28_29($11 + 20 | 0 | 0); + btAlignedObjectArray_int___clear_28_29($11 + 40 | 0 | 0); + HEAPF32[($9 + 332 | 0) >> 2] = Math_fround(HEAPF32[($9 + 172 | 0) >> 2]); + HEAP32[($9 + 168 | 0) >> 2] = 1; + break label$3; + } + btVector3__btVector3_28_29($9 + 152 | 0 | 0) | 0; + btAlignedObjectArray_btVector3___resize_28int_2c_20btVector3_20const__29($11 | 0, 0 | 0, $9 + 152 | 0 | 0); + HEAP32[($9 + 144 | 0) >> 2] = 0; + i64toi32_i32$0 = 0; + HEAP32[($9 + 136 | 0) >> 2] = 0; + HEAP32[($9 + 140 | 0) >> 2] = i64toi32_i32$0; + btAlignedObjectArray_btConvexHullComputer__Edge___resize_28int_2c_20btConvexHullComputer__Edge_20const__29($11 + 20 | 0 | 0, 0 | 0, $9 + 136 | 0 | 0); + HEAP32[($9 + 132 | 0) >> 2] = 0; + btAlignedObjectArray_int___resize_28int_2c_20int_20const__29($11 + 40 | 0 | 0, 0 | 0, $9 + 132 | 0 | 0); + btAlignedObjectArray_btConvexHullInternal__Vertex____btAlignedObjectArray_28_29($9 + 112 | 0 | 0) | 0; + getVertexCopy_28btConvexHullInternal__Vertex__2c_20btAlignedObjectArray_btConvexHullInternal__Vertex____29(HEAP32[($9 + 300 | 0) >> 2] | 0 | 0, $9 + 112 | 0 | 0) | 0; + HEAP32[($9 + 108 | 0) >> 2] = 0; + label$5 : { + label$6 : while (1) { + if (!((HEAP32[($9 + 108 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btConvexHullInternal__Vertex____size_28_29_20const($9 + 112 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$5 + } + (wasm2js_i32$0 = $9, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btConvexHullInternal__Vertex____operator_5b_5d_28int_29($9 + 112 | 0 | 0, HEAP32[($9 + 108 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 104 | 0) >> 2] = wasm2js_i32$1; + btConvexHullInternal__getCoordinates_28btConvexHullInternal__Vertex_20const__29($9 + 88 | 0 | 0, $9 + 176 | 0 | 0, HEAP32[($9 + 104 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btVector3___push_back_28btVector3_20const__29($11 | 0, $9 + 88 | 0 | 0); + HEAP32[($9 + 84 | 0) >> 2] = HEAP32[((HEAP32[($9 + 104 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$7 : { + if (!((HEAP32[($9 + 84 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + HEAP32[($9 + 80 | 0) >> 2] = -1; + HEAP32[($9 + 76 | 0) >> 2] = -1; + HEAP32[($9 + 72 | 0) >> 2] = HEAP32[($9 + 84 | 0) >> 2] | 0; + label$8 : while (1) { + label$9 : { + if (!((HEAP32[((HEAP32[($9 + 72 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0)) { + break label$9 + } + (wasm2js_i32$0 = $9, wasm2js_i32$1 = btAlignedObjectArray_btConvexHullComputer__Edge___size_28_29_20const($11 + 20 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 68 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($9 + 64 | 0) >> 2] = 0; + i64toi32_i32$0 = 0; + HEAP32[($9 + 56 | 0) >> 2] = 0; + HEAP32[($9 + 60 | 0) >> 2] = i64toi32_i32$0; + btAlignedObjectArray_btConvexHullComputer__Edge___push_back_28btConvexHullComputer__Edge_20const__29($11 + 20 | 0 | 0, $9 + 56 | 0 | 0); + HEAP32[($9 + 48 | 0) >> 2] = 0; + i64toi32_i32$0 = 0; + HEAP32[($9 + 40 | 0) >> 2] = 0; + HEAP32[($9 + 44 | 0) >> 2] = i64toi32_i32$0; + btAlignedObjectArray_btConvexHullComputer__Edge___push_back_28btConvexHullComputer__Edge_20const__29($11 + 20 | 0 | 0, $9 + 40 | 0 | 0); + (wasm2js_i32$0 = $9, wasm2js_i32$1 = btAlignedObjectArray_btConvexHullComputer__Edge___operator_5b_5d_28int_29($11 + 20 | 0 | 0, HEAP32[($9 + 68 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $9, wasm2js_i32$1 = btAlignedObjectArray_btConvexHullComputer__Edge___operator_5b_5d_28int_29($11 + 20 | 0 | 0, (HEAP32[($9 + 68 | 0) >> 2] | 0) + 1 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + HEAP32[((HEAP32[($9 + 72 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[($9 + 68 | 0) >> 2] | 0; + HEAP32[((HEAP32[((HEAP32[($9 + 72 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] = (HEAP32[($9 + 68 | 0) >> 2] | 0) + 1 | 0; + HEAP32[((HEAP32[($9 + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] = 1; + HEAP32[((HEAP32[($9 + 32 | 0) >> 2] | 0) + 4 | 0) >> 2] = -1; + $187 = getVertexCopy_28btConvexHullInternal__Vertex__2c_20btAlignedObjectArray_btConvexHullInternal__Vertex____29(HEAP32[((HEAP32[($9 + 72 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $9 + 112 | 0 | 0) | 0; + HEAP32[((HEAP32[($9 + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] = $187; + HEAP32[((HEAP32[($9 + 32 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($9 + 108 | 0) >> 2] | 0; + } + label$10 : { + label$11 : { + if (!((HEAP32[($9 + 76 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$11 + } + $201 = (HEAP32[($9 + 76 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($9 + 72 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btConvexHullComputer__Edge___operator_5b_5d_28int_29($11 + 20 | 0 | 0, HEAP32[((HEAP32[($9 + 72 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $201), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + break label$10; + } + HEAP32[($9 + 80 | 0) >> 2] = HEAP32[((HEAP32[($9 + 72 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0; + } + HEAP32[($9 + 76 | 0) >> 2] = HEAP32[((HEAP32[($9 + 72 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0; + HEAP32[($9 + 72 | 0) >> 2] = HEAP32[(HEAP32[($9 + 72 | 0) >> 2] | 0) >> 2] | 0; + if ((HEAP32[($9 + 72 | 0) >> 2] | 0 | 0) != (HEAP32[($9 + 84 | 0) >> 2] | 0 | 0) & 1 | 0) { + continue label$8 + } + break label$8; + }; + $222 = (HEAP32[($9 + 76 | 0) >> 2] | 0) - (HEAP32[($9 + 80 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btConvexHullComputer__Edge___operator_5b_5d_28int_29($11 + 20 | 0 | 0, HEAP32[($9 + 80 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $222), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + } + HEAP32[($9 + 108 | 0) >> 2] = (HEAP32[($9 + 108 | 0) >> 2] | 0) + 1 | 0; + continue label$6; + }; + } + HEAP32[($9 + 28 | 0) >> 2] = 0; + label$12 : { + label$13 : while (1) { + if (!((HEAP32[($9 + 28 | 0) >> 2] | 0 | 0) < (HEAP32[($9 + 108 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$12 + } + (wasm2js_i32$0 = $9, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btConvexHullInternal__Vertex____operator_5b_5d_28int_29($9 + 112 | 0 | 0, HEAP32[($9 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($9 + 20 | 0) >> 2] = HEAP32[((HEAP32[($9 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$14 : { + if (!((HEAP32[($9 + 20 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$14 + } + HEAP32[($9 + 16 | 0) >> 2] = HEAP32[($9 + 20 | 0) >> 2] | 0; + label$15 : while (1) { + label$16 : { + if (!((HEAP32[((HEAP32[($9 + 16 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$16 + } + btAlignedObjectArray_int___push_back_28int_20const__29($11 + 40 | 0 | 0, (HEAP32[($9 + 16 | 0) >> 2] | 0) + 20 | 0 | 0); + HEAP32[($9 + 12 | 0) >> 2] = HEAP32[($9 + 16 | 0) >> 2] | 0; + label$17 : while (1) { + HEAP32[((HEAP32[($9 + 12 | 0) >> 2] | 0) + 20 | 0) >> 2] = -1; + HEAP32[($9 + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($9 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + if ((HEAP32[($9 + 12 | 0) >> 2] | 0 | 0) != (HEAP32[($9 + 16 | 0) >> 2] | 0 | 0) & 1 | 0) { + continue label$17 + } + break label$17; + }; + } + HEAP32[($9 + 16 | 0) >> 2] = HEAP32[(HEAP32[($9 + 16 | 0) >> 2] | 0) >> 2] | 0; + if ((HEAP32[($9 + 16 | 0) >> 2] | 0 | 0) != (HEAP32[($9 + 20 | 0) >> 2] | 0 | 0) & 1 | 0) { + continue label$15 + } + break label$15; + }; + } + HEAP32[($9 + 28 | 0) >> 2] = (HEAP32[($9 + 28 | 0) >> 2] | 0) + 1 | 0; + continue label$13; + }; + } + HEAPF32[($9 + 332 | 0) >> 2] = Math_fround(HEAPF32[($9 + 172 | 0) >> 2]); + HEAP32[($9 + 168 | 0) >> 2] = 1; + btAlignedObjectArray_btConvexHullInternal__Vertex_____btAlignedObjectArray_28_29($9 + 112 | 0 | 0) | 0; + } + btConvexHullInternal___btConvexHullInternal_28_29($9 + 176 | 0 | 0) | 0; + } + $300 = Math_fround(HEAPF32[($9 + 332 | 0) >> 2]); + __stack_pointer = $9 + 336 | 0; + return Math_fround($300); + } + + function btConvexHullInternal__btConvexHullInternal_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btVector3__btVector3_28_29($4 | 0) | 0; + btVector3__btVector3_28_29($4 + 16 | 0 | 0) | 0; + btConvexHullInternal__Pool_btConvexHullInternal__Vertex___Pool_28_29($4 + 32 | 0 | 0) | 0; + btConvexHullInternal__Pool_btConvexHullInternal__Edge___Pool_28_29($4 + 48 | 0 | 0) | 0; + btConvexHullInternal__Pool_btConvexHullInternal__Face___Pool_28_29($4 + 64 | 0 | 0) | 0; + btAlignedObjectArray_btConvexHullInternal__Vertex____btAlignedObjectArray_28_29($4 + 80 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btConvexHullComputer__Edge___resize_28int_2c_20btConvexHullComputer__Edge_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, $6 = 0, $47 = 0, $49 = 0, i64toi32_i32$1 = 0, $166 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btConvexHullComputer__Edge___size_28_29_20const($6 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + break label$1; + } + label$5 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) > (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + btAlignedObjectArray_btConvexHullComputer__Edge___reserve_28int_29($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + $47 = HEAP32[($5 + 20 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[$47 >> 2] | 0; + i64toi32_i32$1 = HEAP32[($47 + 4 | 0) >> 2] | 0; + $166 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[($6 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 8 | 0) >> 2] | 0, 12) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $166; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $49 = 8; + HEAP32[(i64toi32_i32$0 + $49 | 0) >> 2] = HEAP32[($47 + $49 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function getVertexCopy_28btConvexHullInternal__Vertex__2c_20btAlignedObjectArray_btConvexHullInternal__Vertex____29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $22 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 104 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btConvexHullInternal__Vertex____size_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 104 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + btAlignedObjectArray_btConvexHullInternal__Vertex____push_back_28btConvexHullInternal__Vertex__20const__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, $4 + 12 | 0 | 0); + } + $22 = HEAP32[($4 + 4 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $22 | 0; + } + + function btAlignedObjectArray_btConvexHullComputer__Edge___push_back_28btConvexHullComputer__Edge_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0, i64toi32_i32$0 = 0, $21 = 0, $23 = 0, i64toi32_i32$1 = 0, $83 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btConvexHullComputer__Edge___size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btConvexHullComputer__Edge___capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btConvexHullComputer__Edge___reserve_28int_29($5 | 0, btAlignedObjectArray_btConvexHullComputer__Edge___allocSize_28int_29($5 | 0, btAlignedObjectArray_btConvexHullComputer__Edge___size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + $21 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[$21 >> 2] | 0; + i64toi32_i32$1 = HEAP32[($21 + 4 | 0) >> 2] | 0; + $83 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 4 | 0) >> 2] | 0, 12) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $83; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $23 = 8; + HEAP32[(i64toi32_i32$0 + $23 | 0) >> 2] = HEAP32[($21 + $23 | 0) >> 2] | 0; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btConvexHullInternal___btConvexHullInternal_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btConvexHullInternal__Vertex_____btAlignedObjectArray_28_29($4 + 80 | 0 | 0) | 0; + btConvexHullInternal__Pool_btConvexHullInternal__Face____Pool_28_29($4 + 64 | 0 | 0) | 0; + btConvexHullInternal__Pool_btConvexHullInternal__Edge____Pool_28_29($4 + 48 | 0 | 0) | 0; + btConvexHullInternal__Pool_btConvexHullInternal__Vertex____Pool_28_29($4 + 32 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConvexHullInternal__Pool_btConvexHullInternal__Vertex___Pool_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + HEAP32[($4 + 12 | 0) >> 2] = 256; + return $4 | 0; + } + + function btConvexHullInternal__Pool_btConvexHullInternal__Edge___Pool_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + HEAP32[($4 + 12 | 0) >> 2] = 256; + return $4 | 0; + } + + function btConvexHullInternal__Pool_btConvexHullInternal__Face___Pool_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + HEAP32[($4 + 12 | 0) >> 2] = 256; + return $4 | 0; + } + + function btAlignedObjectArray_btConvexHullComputer__Edge___reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btConvexHullComputer__Edge___capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btConvexHullComputer__Edge___allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btConvexHullComputer__Edge___copy_28int_2c_20int_2c_20btConvexHullComputer__Edge__29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btConvexHullComputer__Edge___size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btConvexHullComputer__Edge___destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btConvexHullComputer__Edge___size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btConvexHullComputer__Edge___deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btConvexHullComputer__Edge___capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btConvexHullComputer__Edge___allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btConvexHullInternal__Pool_btConvexHullInternal__Face____Pool_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $17 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $4; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$4 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[($3 + 4 | 0) >> 2] = HEAP32[$4 >> 2] | 0; + HEAP32[$4 >> 2] = HEAP32[((HEAP32[($3 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + btConvexHullInternal__PoolArray_btConvexHullInternal__Face____PoolArray_28_29(HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 4 | 0) >> 2] | 0 | 0); + continue label$2; + }; + } + $17 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $17 | 0; + } + + function btConvexHullInternal__Pool_btConvexHullInternal__Edge____Pool_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $17 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $4; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$4 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[($3 + 4 | 0) >> 2] = HEAP32[$4 >> 2] | 0; + HEAP32[$4 >> 2] = HEAP32[((HEAP32[($3 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + btConvexHullInternal__PoolArray_btConvexHullInternal__Edge____PoolArray_28_29(HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 4 | 0) >> 2] | 0 | 0); + continue label$2; + }; + } + $17 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $17 | 0; + } + + function btConvexHullInternal__Pool_btConvexHullInternal__Vertex____Pool_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $17 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $4; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$4 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[($3 + 4 | 0) >> 2] = HEAP32[$4 >> 2] | 0; + HEAP32[$4 >> 2] = HEAP32[((HEAP32[($3 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + btConvexHullInternal__PoolArray_btConvexHullInternal__Vertex____PoolArray_28_29(HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 4 | 0) >> 2] | 0 | 0); + continue label$2; + }; + } + $17 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $17 | 0; + } + + function btConvexHullInternal__Edge___Edge_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 16 | 0) >> 2] = 0; + return $4 | 0; + } + + function btConvexHullInternal__PoolArray_btConvexHullInternal__Face____PoolArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedFreeInternal_28void__29(HEAP32[$4 >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConvexHullInternal__PoolArray_btConvexHullInternal__Edge____PoolArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedFreeInternal_28void__29(HEAP32[$4 >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConvexHullInternal__PoolArray_btConvexHullInternal__Vertex____PoolArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedFreeInternal_28void__29(HEAP32[$4 >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btConvexHullInternal__Point32___capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btConvexHullInternal__Point32___allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btConvexHullInternal__Point32_2c_2016u___allocate_28int_2c_20btConvexHullInternal__Point32_20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btConvexHullInternal__Point32___copy_28int_2c_20int_2c_20btConvexHullInternal__Point32__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $20 = 0, $27 = 0, $7 = 0, $89 = 0, $99 = 0; + $6 = __stack_pointer - 32 | 0; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + $20 = (HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = (HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $89 = i64toi32_i32$0; + i64toi32_i32$0 = $20; + HEAP32[i64toi32_i32$0 >> 2] = $89; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $27 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $27 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $99 = i64toi32_i32$1; + i64toi32_i32$1 = $20 + $27 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $99; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedAllocator_btConvexHullInternal__Point32_2c_2016u___allocate_28int_2c_20btConvexHullInternal__Point32_20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 4 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btAlignedAllocator_btConvexHullInternal__Point32_2c_2016u___deallocate_28btConvexHullInternal__Point32__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function pointCmp__operator_28_29_28btConvexHullInternal__Point32_20const__2c_20btConvexHullInternal__Point32_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $16 = 0, $27 = 0, $38 = 0, $49 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $16 = 1; + label$1 : { + if ((HEAP32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) < (HEAP32[((HEAP32[($5 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$1 + } + $27 = 0; + label$2 : { + if (!((HEAP32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($5 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + $38 = 1; + label$3 : { + if ((HEAP32[(HEAP32[($5 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) < (HEAP32[(HEAP32[($5 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$3 + } + $49 = 0; + label$4 : { + if (!((HEAP32[(HEAP32[($5 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (HEAP32[(HEAP32[($5 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + $49 = (HEAP32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) < (HEAP32[((HEAP32[($5 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + $38 = $49; + } + $27 = $38; + } + $16 = $27; + } + return $16 & 1 | 0 | 0; + } + + function btAlignedObjectArray_btConvexHullInternal__Point32___swap_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, $5 = 0, $6 = 0, $11 = 0, $12 = 0, $26 = 0, $28 = 0, $36 = 0, $38 = 0, $73 = 0, $77 = 0, $101 = 0, $111 = 0, $125 = 0, $135 = 0; + $5 = __stack_pointer - 32 | 0; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + $11 = (HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 24 | 0) >> 2] | 0) << 4 | 0) | 0; + $12 = 8; + i64toi32_i32$2 = $11 + $12 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $73 = i64toi32_i32$0; + i64toi32_i32$0 = $5 + $12 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $73; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $11; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $77 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[i64toi32_i32$1 >> 2] = $77; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $26 = (HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[(i64toi32_i32$1 + 24 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = (HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[(i64toi32_i32$1 + 20 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $101 = i64toi32_i32$0; + i64toi32_i32$0 = $26; + HEAP32[i64toi32_i32$0 >> 2] = $101; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $28 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $28 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $111 = i64toi32_i32$1; + i64toi32_i32$1 = $26 + $28 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $111; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $36 = (HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 20 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $125 = i64toi32_i32$0; + i64toi32_i32$0 = $36; + HEAP32[i64toi32_i32$0 >> 2] = $125; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $38 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $38 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $135 = i64toi32_i32$1; + i64toi32_i32$1 = $36 + $38 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $135; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function btAlignedObjectArray_btConvexHullInternal__Vertex____allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btConvexHullInternal__Vertex__2c_2016u___allocate_28int_2c_20btConvexHullInternal__Vertex__20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btConvexHullInternal__Vertex____destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btConvexHullInternal__Vertex____deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btConvexHullInternal__Vertex__2c_2016u___deallocate_28btConvexHullInternal__Vertex___29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocator_btConvexHullInternal__Vertex__2c_2016u___allocate_28int_2c_20btConvexHullInternal__Vertex__20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btAlignedAllocator_btConvexHullInternal__Vertex__2c_2016u___deallocate_28btConvexHullInternal__Vertex___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btConvexHullInternal__PointR128__PointR128_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConvexHullInternal__Int128__Int128_28_29($4 | 0) | 0; + btConvexHullInternal__Int128__Int128_28_29($4 + 16 | 0 | 0) | 0; + btConvexHullInternal__Int128__Int128_28_29($4 + 32 | 0 | 0) | 0; + btConvexHullInternal__Int128__Int128_28_29($4 + 48 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btConvexHullInternal__Face____destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btConvexHullInternal__Face____deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btConvexHullInternal__Face__2c_2016u___deallocate_28btConvexHullInternal__Face___29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocator_btConvexHullInternal__Face__2c_2016u___deallocate_28btConvexHullInternal__Face___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btConvexHullInternal__Face____allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btConvexHullInternal__Face__2c_2016u___allocate_28int_2c_20btConvexHullInternal__Face__20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btConvexHullInternal__Face____copy_28int_2c_20int_2c_20btConvexHullInternal__Face___29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[((HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[((HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedAllocator_btConvexHullInternal__Face__2c_2016u___allocate_28int_2c_20btConvexHullInternal__Face__20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btAlignedObjectArray_btConvexHullComputer__Edge___allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btConvexHullComputer__Edge_2c_2016u___allocate_28int_2c_20btConvexHullComputer__Edge_20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btConvexHullComputer__Edge___copy_28int_2c_20int_2c_20btConvexHullComputer__Edge__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, $25 = 0, $27 = 0, $7 = 0, i64toi32_i32$1 = 0, $89 = 0; + $6 = __stack_pointer - 32 | 0; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + $25 = (HEAP32[($7 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($6 + 12 | 0) >> 2] | 0, 12) | 0; + i64toi32_i32$0 = HEAP32[$25 >> 2] | 0; + i64toi32_i32$1 = HEAP32[($25 + 4 | 0) >> 2] | 0; + $89 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[($6 + 16 | 0) >> 2] | 0) + Math_imul(HEAP32[($6 + 12 | 0) >> 2] | 0, 12) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $89; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $27 = 8; + HEAP32[(i64toi32_i32$0 + $27 | 0) >> 2] = HEAP32[($25 + $27 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedAllocator_btConvexHullComputer__Edge_2c_2016u___allocate_28int_2c_20btConvexHullComputer__Edge_20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(Math_imul(HEAP32[($5 + 8 | 0) >> 2] | 0, 12) | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function _GLOBAL__sub_I_btConvexHullComputer_cpp() { + __cxx_global_var_init_45(); + return; + } + + function __cxx_global_var_init_46() { + btInfMaskConverter__btInfMaskConverter_28int_29(114172 | 0, 2139095040 | 0) | 0; + return; + } + + function btPolyhedralConvexShape__btPolyhedralConvexShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConvexInternalShape__btConvexInternalShape_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 99444 + 8 | 0; + HEAP32[($4 + 60 | 0) >> 2] = 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btPolyhedralConvexShape___btPolyhedralConvexShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $15 = 0, $19 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $4; + HEAP32[$4 >> 2] = 99444 + 8 | 0; + label$1 : { + if (!((HEAP32[($4 + 60 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + $15 = HEAP32[($4 + 60 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$15 >> 2] | 0) >> 2] | 0 | 0]($15) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 60 | 0) >> 2] | 0 | 0); + } + btConvexInternalShape___btConvexInternalShape_28_29($4 | 0) | 0; + $19 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $19 | 0; + } + + function btPolyhedralConvexShape___btPolyhedralConvexShape_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btPolyhedralConvexShape__initializePolyhedralFeatures_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $5 = 0, $191 = 0, $13 = 0, $22 = 0, $84 = 0, $85 = 0, $98 = 0, $134 = Math_fround(0), $159 = Math_fround(0), $235 = 0, $237 = 0, $266 = 0, $269 = 0, $270 = 0, $272 = 0, $293 = 0, $294 = 0, $303 = 0, $304 = 0, $330 = 0, $338 = 0, $340 = 0, $378 = 0, $380 = 0, $717 = 0, $718 = 0, $1265 = 0, $1269 = 0, $94 = Math_fround(0), $169 = 0, $185 = 0, $212 = 0, $213 = 0, $230 = 0, $1554 = 0, $1564 = 0, $268 = 0, $1691 = 0, $1695 = 0, $1715 = 0, $1719 = 0, $1773 = 0, $1786 = 0, $1850 = 0, $1863 = 0, $397 = Math_fround(0), $409 = Math_fround(0), $421 = Math_fround(0), $427 = Math_fround(0), $478 = Math_fround(0), $2521 = 0, $2525 = 0, $797 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 848 | 0; + __stack_pointer = $4; + HEAP32[($4 + 844 | 0) >> 2] = $0; + HEAP32[($4 + 840 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 844 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($5 + 60 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + $13 = HEAP32[($5 + 60 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$13 >> 2] | 0) >> 2] | 0 | 0]($13) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($5 + 60 | 0) >> 2] | 0 | 0); + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(132 | 0, 16 | 0) | 0), HEAP32[(wasm2js_i32$0 + 836 | 0) >> 2] = wasm2js_i32$1; + $22 = btConvexPolyhedron__operator_20new_28unsigned_20long_2c_20void__29(132 | 0, HEAP32[($4 + 836 | 0) >> 2] | 0 | 0) | 0; + btConvexPolyhedron__btConvexPolyhedron_28_29($22 | 0) | 0; + HEAP32[($5 + 60 | 0) >> 2] = $22; + btAlignedObjectArray_btVector3___btAlignedObjectArray_28_29($4 + 816 | 0 | 0) | 0; + HEAP32[($4 + 812 | 0) >> 2] = 0; + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($4 + 812 | 0) >> 2] | 0 | 0) < (FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 96 | 0) >> 2] | 0 | 0]($5) | 0 | 0) & 1 | 0)) { + break label$2 + } + btVector3__btVector3_28_29($4 + 792 | 0 | 0) | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btVector3___expand_28btVector3_20const__29($4 + 816 | 0 | 0, $4 + 792 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 808 | 0) >> 2] = wasm2js_i32$1; + FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 108 | 0) >> 2] | 0 | 0]($5, HEAP32[($4 + 812 | 0) >> 2] | 0, HEAP32[($4 + 808 | 0) >> 2] | 0); + HEAP32[($4 + 812 | 0) >> 2] = (HEAP32[($4 + 812 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + btConvexHullComputer__btConvexHullComputer_28_29($4 + 732 | 0 | 0) | 0; + label$4 : { + label$5 : { + if (!(HEAP32[($4 + 840 | 0) >> 2] | 0)) { + break label$5 + } + btAlignedObjectArray_btVector3___btAlignedObjectArray_28_29($4 + 712 | 0 | 0) | 0; + btGeometryUtil__getPlaneEquationsFromVertices_28btAlignedObjectArray_btVector3___2c_20btAlignedObjectArray_btVector3___29($4 + 816 | 0 | 0, $4 + 712 | 0 | 0); + btAlignedObjectArray_btVector3___btAlignedObjectArray_28_29($4 + 692 | 0 | 0) | 0; + HEAP32[($4 + 688 | 0) >> 2] = 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($4 + 688 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btVector3___size_28_29_20const($4 + 712 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$6 + } + $84 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29($4 + 712 | 0 | 0, HEAP32[($4 + 688 | 0) >> 2] | 0 | 0) | 0; + $85 = 8; + i64toi32_i32$2 = $84 + $85 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1265 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 672 | 0) + $85 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1265; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $84; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1269 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 672 | 0) >> 2] = $1269; + HEAP32[($4 + 676 | 0) >> 2] = i64toi32_i32$0; + $94 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($5)); + $98 = btVector3__operator_20float__28_29($4 + 672 | 0 | 0) | 0; + HEAPF32[($98 + 12 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($98 + 12 | 0) >> 2]) - $94); + btAlignedObjectArray_btVector3___push_back_28btVector3_20const__29($4 + 692 | 0 | 0, $4 + 672 | 0 | 0); + HEAP32[($4 + 688 | 0) >> 2] = (HEAP32[($4 + 688 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + btAlignedObjectArray_btVector3___btAlignedObjectArray_28_29($4 + 652 | 0 | 0) | 0; + btGeometryUtil__getVerticesFromPlaneEquations_28btAlignedObjectArray_btVector3__20const__2c_20btAlignedObjectArray_btVector3___29($4 + 692 | 0 | 0, $4 + 652 | 0 | 0); + $134 = Math_fround(0 | 0); + Math_fround(btConvexHullComputer__compute_28float_20const__2c_20int_2c_20int_2c_20float_2c_20float_29($4 + 732 | 0 | 0, btVector3__getX_28_29_20const(btAlignedObjectArray_btVector3___operator_5b_5d_28int_29($4 + 652 | 0 | 0, 0 | 0) | 0 | 0) | 0 | 0, 16 | 0, btAlignedObjectArray_btVector3___size_28_29_20const($4 + 652 | 0 | 0) | 0 | 0, Math_fround($134), Math_fround($134))); + btAlignedObjectArray_btVector3____btAlignedObjectArray_28_29($4 + 652 | 0 | 0) | 0; + btAlignedObjectArray_btVector3____btAlignedObjectArray_28_29($4 + 692 | 0 | 0) | 0; + btAlignedObjectArray_btVector3____btAlignedObjectArray_28_29($4 + 712 | 0 | 0) | 0; + break label$4; + } + $159 = Math_fround(0 | 0); + Math_fround(btConvexHullComputer__compute_28float_20const__2c_20int_2c_20int_2c_20float_2c_20float_29($4 + 732 | 0 | 0, btVector3__getX_28_29_20const(btAlignedObjectArray_btVector3___operator_5b_5d_28int_29($4 + 816 | 0 | 0, 0 | 0) | 0 | 0) | 0 | 0, 16 | 0, btAlignedObjectArray_btVector3___size_28_29_20const($4 + 816 | 0 | 0) | 0 | 0, Math_fround($159), Math_fround($159))); + } + btAlignedObjectArray_btVector3___btAlignedObjectArray_28_29($4 + 632 | 0 | 0) | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_int___size_28_29_20const(($4 + 732 | 0) + 40 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 628 | 0) >> 2] = wasm2js_i32$1; + $169 = HEAP32[($4 + 628 | 0) >> 2] | 0; + btVector3__btVector3_28_29($4 + 612 | 0 | 0) | 0; + btAlignedObjectArray_btVector3___resize_28int_2c_20btVector3_20const__29($4 + 632 | 0 | 0, $169 | 0, $4 + 612 | 0 | 0); + HEAP32[($4 + 608 | 0) >> 2] = $4 + 732 | 0; + btAlignedObjectArray_btFace___btAlignedObjectArray_28_29($4 + 588 | 0 | 0) | 0; + $185 = HEAP32[($4 + 628 | 0) >> 2] | 0; + HEAP32[($4 + 584 | 0) >> 2] = 0; + i64toi32_i32$0 = 0; + $191 = 0; + i64toi32_i32$1 = $4 + 576 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $191; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $4 + 568 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $191; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $4 + 560 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $191; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $4; + HEAP32[($4 + 552 | 0) >> 2] = $191; + HEAP32[($4 + 556 | 0) >> 2] = i64toi32_i32$0; + btFace__btFace_28_29($4 + 552 | 0 | 0) | 0; + btAlignedObjectArray_btFace___resize_28int_2c_20btFace_20const__29($4 + 588 | 0 | 0, $185 | 0, $4 + 552 | 0 | 0); + btFace___btFace_28_29($4 + 552 | 0 | 0) | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btVector3___size_28_29_20const(HEAP32[($4 + 608 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 548 | 0) >> 2] = wasm2js_i32$1; + $212 = (HEAP32[($5 + 60 | 0) >> 2] | 0) + 4 | 0; + $213 = HEAP32[($4 + 548 | 0) >> 2] | 0; + btVector3__btVector3_28_29($4 + 532 | 0 | 0) | 0; + btAlignedObjectArray_btVector3___resize_28int_2c_20btVector3_20const__29($212 | 0, $213 | 0, $4 + 532 | 0 | 0); + HEAP32[($4 + 528 | 0) >> 2] = 0; + label$8 : { + label$9 : while (1) { + if (!((HEAP32[($4 + 528 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 548 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + $230 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29(HEAP32[($4 + 608 | 0) >> 2] | 0 | 0, HEAP32[($4 + 528 | 0) >> 2] | 0 | 0) | 0; + $235 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29((HEAP32[($5 + 60 | 0) >> 2] | 0) + 4 | 0 | 0, HEAP32[($4 + 528 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $230; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1554 = i64toi32_i32$0; + i64toi32_i32$0 = $235; + HEAP32[i64toi32_i32$0 >> 2] = $1554; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $237 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $237 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1564 = i64toi32_i32$1; + i64toi32_i32$1 = $235 + $237 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1564; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4 + 528 | 0) >> 2] = (HEAP32[($4 + 528 | 0) >> 2] | 0) + 1 | 0; + continue label$9; + }; + } + HEAP32[($4 + 524 | 0) >> 2] = 0; + label$10 : { + label$11 : while (1) { + if (!((HEAP32[($4 + 524 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 628 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$10 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29((HEAP32[($4 + 608 | 0) >> 2] | 0) + 40 | 0 | 0, HEAP32[($4 + 524 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 520 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btConvexHullComputer__Edge___operator_5b_5d_28int_29((HEAP32[($4 + 608 | 0) >> 2] | 0) + 20 | 0 | 0, HEAP32[($4 + 520 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 516 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($4 + 512 | 0) >> 2] = HEAP32[($4 + 516 | 0) >> 2] | 0; + $266 = $4 + 464 | 0; + $268 = $266 + 48 | 0; + $269 = $266; + label$12 : while (1) { + $270 = $269; + btVector3__btVector3_28_29($270 | 0) | 0; + $272 = $270 + 16 | 0; + $269 = $272; + if (!(($272 | 0) == ($268 | 0) & 1 | 0)) { + continue label$12 + } + break label$12; + }; + HEAP32[($4 + 460 | 0) >> 2] = 0; + label$13 : while (1) { + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btConvexHullComputer__Edge__getSourceVertex_28_29_20const(HEAP32[($4 + 512 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 456 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_int___push_back_28int_20const__29(btAlignedObjectArray_btFace___operator_5b_5d_28int_29($4 + 588 | 0 | 0, HEAP32[($4 + 524 | 0) >> 2] | 0 | 0) | 0 | 0, $4 + 456 | 0 | 0); + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btConvexHullComputer__Edge__getTargetVertex_28_29_20const(HEAP32[($4 + 512 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 452 | 0) >> 2] = wasm2js_i32$1; + $293 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29(HEAP32[($4 + 608 | 0) >> 2] | 0 | 0, HEAP32[($4 + 456 | 0) >> 2] | 0 | 0) | 0; + $294 = 8; + i64toi32_i32$2 = $293 + $294 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1691 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 432 | 0) + $294 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1691; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $293; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1695 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 432 | 0) >> 2] = $1695; + HEAP32[($4 + 436 | 0) >> 2] = i64toi32_i32$0; + $303 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29(HEAP32[($4 + 608 | 0) >> 2] | 0 | 0, HEAP32[($4 + 452 | 0) >> 2] | 0 | 0) | 0; + $304 = 8; + i64toi32_i32$2 = $303 + $304 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1715 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 416 | 0) + $304 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1715; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $303; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1719 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 416 | 0) >> 2] = $1719; + HEAP32[($4 + 420 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($4 + 400 | 0 | 0, $4 + 416 | 0 | 0, $4 + 432 | 0 | 0); + btVector3__normalize_28_29($4 + 400 | 0 | 0) | 0; + label$14 : { + if (!((HEAP32[($4 + 460 | 0) >> 2] | 0 | 0) < (2 | 0) & 1 | 0)) { + break label$14 + } + $330 = HEAP32[($4 + 460 | 0) >> 2] | 0; + HEAP32[($4 + 460 | 0) >> 2] = $330 + 1 | 0; + $338 = ($4 + 464 | 0) + ($330 << 4 | 0) | 0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[($4 + 400 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($4 + 404 | 0) >> 2] | 0; + $1773 = i64toi32_i32$0; + i64toi32_i32$0 = $338; + HEAP32[i64toi32_i32$0 >> 2] = $1773; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $340 = 8; + i64toi32_i32$2 = ($4 + 400 | 0) + $340 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1786 = i64toi32_i32$1; + i64toi32_i32$1 = $338 + $340 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1786; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btConvexHullComputer__Edge__getNextEdgeOfFace_28_29_20const(HEAP32[($4 + 512 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 512 | 0) >> 2] = wasm2js_i32$1; + if ((HEAP32[($4 + 512 | 0) >> 2] | 0 | 0) != (HEAP32[($4 + 516 | 0) >> 2] | 0 | 0) & 1 | 0) { + continue label$13 + } + break label$13; + }; + HEAPF32[($4 + 396 | 0) >> 2] = Math_fround(1000000015047466219876688.0e6); + label$15 : { + label$16 : { + if (!((HEAP32[($4 + 460 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$16 + } + btVector3__cross_28btVector3_20const__29_20const($4 + 380 | 0 | 0, $4 + 464 | 0 | 0, ($4 + 464 | 0) + 16 | 0 | 0); + $378 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29($4 + 632 | 0 | 0, HEAP32[($4 + 524 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[($4 + 380 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($4 + 384 | 0) >> 2] | 0; + $1850 = i64toi32_i32$0; + i64toi32_i32$0 = $378; + HEAP32[i64toi32_i32$0 >> 2] = $1850; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $380 = 8; + i64toi32_i32$2 = ($4 + 380 | 0) + $380 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1863 = i64toi32_i32$1; + i64toi32_i32$1 = $378 + $380 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1863; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__normalize_28_29(btAlignedObjectArray_btVector3___operator_5b_5d_28int_29($4 + 632 | 0 | 0, HEAP32[($4 + 524 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + $397 = Math_fround(HEAPF32[(btVector3__getX_28_29_20const(btAlignedObjectArray_btVector3___operator_5b_5d_28int_29($4 + 632 | 0 | 0, HEAP32[($4 + 524 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) >> 2]); + (wasm2js_i32$0 = btAlignedObjectArray_btFace___operator_5b_5d_28int_29($4 + 588 | 0 | 0, HEAP32[($4 + 524 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $397), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + $409 = Math_fround(HEAPF32[(btVector3__getY_28_29_20const(btAlignedObjectArray_btVector3___operator_5b_5d_28int_29($4 + 632 | 0 | 0, HEAP32[($4 + 524 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) >> 2]); + (wasm2js_i32$0 = btAlignedObjectArray_btFace___operator_5b_5d_28int_29($4 + 588 | 0 | 0, HEAP32[($4 + 524 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $409), HEAPF32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_f32$0; + $421 = Math_fround(HEAPF32[(btVector3__getZ_28_29_20const(btAlignedObjectArray_btVector3___operator_5b_5d_28int_29($4 + 632 | 0 | 0, HEAP32[($4 + 524 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) >> 2]); + (wasm2js_i32$0 = btAlignedObjectArray_btFace___operator_5b_5d_28int_29($4 + 588 | 0 | 0, HEAP32[($4 + 524 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $421), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + $427 = Math_fround(HEAPF32[($4 + 396 | 0) >> 2]); + (wasm2js_i32$0 = btAlignedObjectArray_btFace___operator_5b_5d_28int_29($4 + 588 | 0 | 0, HEAP32[($4 + 524 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $427), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + break label$15; + } + __assert_fail(86177 | 0, 74379 | 0, 152 | 0, 69994 | 0); + wasm2js_trap(); + } + HEAP32[($4 + 376 | 0) >> 2] = 0; + label$17 : { + label$18 : while (1) { + if (!((HEAP32[($4 + 376 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_int___size_28_29_20const(btAlignedObjectArray_btFace___operator_5b_5d_28int_29($4 + 588 | 0 | 0, HEAP32[($4 + 524 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$17 + } + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const(btAlignedObjectArray_btVector3___operator_5b_5d_28int_29((HEAP32[($5 + 60 | 0) >> 2] | 0) + 4 | 0 | 0, HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29(btAlignedObjectArray_btFace___operator_5b_5d_28int_29($4 + 588 | 0 | 0, HEAP32[($4 + 524 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($4 + 376 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) | 0 | 0, btAlignedObjectArray_btVector3___operator_5b_5d_28int_29($4 + 632 | 0 | 0, HEAP32[($4 + 524 | 0) >> 2] | 0 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 372 | 0) >> 2] = wasm2js_f32$0; + label$19 : { + if (!(Math_fround(HEAPF32[($4 + 396 | 0) >> 2]) > Math_fround(HEAPF32[($4 + 372 | 0) >> 2]) & 1 | 0)) { + break label$19 + } + HEAPF32[($4 + 396 | 0) >> 2] = Math_fround(HEAPF32[($4 + 372 | 0) >> 2]); + } + HEAP32[($4 + 376 | 0) >> 2] = (HEAP32[($4 + 376 | 0) >> 2] | 0) + 1 | 0; + continue label$18; + }; + } + $478 = Math_fround(-Math_fround(HEAPF32[($4 + 396 | 0) >> 2])); + (wasm2js_i32$0 = btAlignedObjectArray_btFace___operator_5b_5d_28int_29($4 + 588 | 0 | 0, HEAP32[($4 + 524 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $478), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + HEAP32[($4 + 524 | 0) >> 2] = (HEAP32[($4 + 524 | 0) >> 2] | 0) + 1 | 0; + continue label$11; + }; + } + HEAPF32[($4 + 368 | 0) >> 2] = Math_fround(.9990000128746033); + btAlignedObjectArray_int___btAlignedObjectArray_28_29($4 + 348 | 0 | 0) | 0; + HEAP32[($4 + 344 | 0) >> 2] = 0; + label$20 : { + label$21 : while (1) { + if (!((HEAP32[($4 + 344 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btFace___size_28_29_20const($4 + 588 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$20 + } + btAlignedObjectArray_int___push_back_28int_20const__29($4 + 348 | 0 | 0, $4 + 344 | 0 | 0); + HEAP32[($4 + 344 | 0) >> 2] = (HEAP32[($4 + 344 | 0) >> 2] | 0) + 1 | 0; + continue label$21; + }; + } + label$22 : { + label$23 : while (1) { + if (!(btAlignedObjectArray_int___size_28_29_20const($4 + 348 | 0 | 0) | 0)) { + break label$22 + } + btAlignedObjectArray_int___btAlignedObjectArray_28_29($4 + 324 | 0 | 0) | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($4 + 348 | 0 | 0, (btAlignedObjectArray_int___size_28_29_20const($4 + 348 | 0 | 0) | 0) - 1 | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 320 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_int___push_back_28int_20const__29($4 + 324 | 0 | 0, $4 + 320 | 0 | 0); + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btFace___operator_5b_5d_28int_29($4 + 588 | 0 | 0, HEAP32[($4 + 320 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 316 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_int___pop_back_28_29($4 + 348 | 0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 300 | 0 | 0, (HEAP32[($4 + 316 | 0) >> 2] | 0) + 20 | 0 | 0, ((HEAP32[($4 + 316 | 0) >> 2] | 0) + 20 | 0) + 4 | 0 | 0, ((HEAP32[($4 + 316 | 0) >> 2] | 0) + 20 | 0) + 8 | 0 | 0) | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = (btAlignedObjectArray_int___size_28_29_20const($4 + 348 | 0 | 0) | 0) - 1 | 0), HEAP32[(wasm2js_i32$0 + 296 | 0) >> 2] = wasm2js_i32$1; + label$24 : { + label$25 : while (1) { + if (!((HEAP32[($4 + 296 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$24 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($4 + 348 | 0 | 0, HEAP32[($4 + 296 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 292 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btFace___operator_5b_5d_28int_29($4 + 588 | 0 | 0, HEAP32[($4 + 292 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 288 | 0) >> 2] = wasm2js_i32$1; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 272 | 0 | 0, (HEAP32[($4 + 288 | 0) >> 2] | 0) + 20 | 0 | 0, ((HEAP32[($4 + 288 | 0) >> 2] | 0) + 20 | 0) + 4 | 0 | 0, ((HEAP32[($4 + 288 | 0) >> 2] | 0) + 20 | 0) + 8 | 0 | 0) | 0; + label$26 : { + if (!(Math_fround(btVector3__dot_28btVector3_20const__29_20const($4 + 300 | 0 | 0, $4 + 272 | 0 | 0)) > Math_fround(HEAPF32[($4 + 368 | 0) >> 2]) & 1 | 0)) { + break label$26 + } + btAlignedObjectArray_int___push_back_28int_20const__29($4 + 324 | 0 | 0, $4 + 292 | 0 | 0); + btAlignedObjectArray_int___remove_28int_20const__29($4 + 348 | 0 | 0, $4 + 292 | 0 | 0); + } + HEAP32[($4 + 296 | 0) >> 2] = (HEAP32[($4 + 296 | 0) >> 2] | 0) + -1 | 0; + continue label$25; + }; + } + HEAP8[($4 + 271 | 0) >> 0] = 0; + label$27 : { + if (!((btAlignedObjectArray_int___size_28_29_20const($4 + 324 | 0 | 0) | 0 | 0) > (1 | 0) & 1 | 0)) { + break label$27 + } + btAlignedObjectArray_GrahamVector3___btAlignedObjectArray_28_29($4 + 248 | 0 | 0) | 0; + HEAPF32[($4 + 228 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 224 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 220 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 232 | 0 | 0, $4 + 228 | 0 | 0, $4 + 224 | 0 | 0, $4 + 220 | 0 | 0) | 0; + HEAP32[($4 + 216 | 0) >> 2] = 0; + label$28 : { + label$29 : while (1) { + if (!((HEAP32[($4 + 216 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_int___size_28_29_20const($4 + 324 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$28 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btFace___operator_5b_5d_28int_29($4 + 588 | 0 | 0, HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($4 + 324 | 0 | 0, HEAP32[($4 + 216 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 212 | 0) >> 2] = wasm2js_i32$1; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 196 | 0 | 0, (HEAP32[($4 + 212 | 0) >> 2] | 0) + 20 | 0 | 0, ((HEAP32[($4 + 212 | 0) >> 2] | 0) + 20 | 0) + 4 | 0 | 0, ((HEAP32[($4 + 212 | 0) >> 2] | 0) + 20 | 0) + 8 | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($4 + 232 | 0 | 0, $4 + 196 | 0 | 0) | 0; + HEAP32[($4 + 192 | 0) >> 2] = 0; + label$30 : { + label$31 : while (1) { + if (!((HEAP32[($4 + 192 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_int___size_28_29_20const(HEAP32[($4 + 212 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$30 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29(HEAP32[($4 + 212 | 0) >> 2] | 0 | 0, HEAP32[($4 + 192 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 188 | 0) >> 2] = wasm2js_i32$1; + $717 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29((HEAP32[($5 + 60 | 0) >> 2] | 0) + 4 | 0 | 0, HEAP32[($4 + 188 | 0) >> 2] | 0 | 0) | 0; + $718 = 8; + i64toi32_i32$2 = $717 + $718 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2521 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 168 | 0) + $718 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2521; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $717; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2525 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 168 | 0) >> 2] = $2525; + HEAP32[($4 + 172 | 0) >> 2] = i64toi32_i32$0; + HEAP8[($4 + 167 | 0) >> 0] = 0; + HEAP32[($4 + 160 | 0) >> 2] = 0; + label$32 : { + label$33 : while (1) { + if (!((HEAP32[($4 + 160 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_GrahamVector3___size_28_29_20const($4 + 248 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$32 + } + label$34 : { + if (!((HEAP32[((btAlignedObjectArray_GrahamVector3___operator_5b_5d_28int_29($4 + 248 | 0 | 0, HEAP32[($4 + 160 | 0) >> 2] | 0 | 0) | 0) + 20 | 0) >> 2] | 0 | 0) == (HEAP32[($4 + 188 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$34 + } + HEAP8[($4 + 167 | 0) >> 0] = 1; + break label$32; + } + HEAP32[($4 + 160 | 0) >> 2] = (HEAP32[($4 + 160 | 0) >> 2] | 0) + 1 | 0; + continue label$33; + }; + } + label$35 : { + if ((HEAPU8[($4 + 167 | 0) >> 0] | 0) & 1 | 0) { + break label$35 + } + GrahamVector3__GrahamVector3_28btVector3_20const__2c_20int_29($4 + 136 | 0 | 0, $4 + 168 | 0 | 0, HEAP32[($4 + 188 | 0) >> 2] | 0 | 0) | 0; + btAlignedObjectArray_GrahamVector3___push_back_28GrahamVector3_20const__29($4 + 248 | 0 | 0, $4 + 136 | 0 | 0); + } + HEAP32[($4 + 192 | 0) >> 2] = (HEAP32[($4 + 192 | 0) >> 2] | 0) + 1 | 0; + continue label$31; + }; + } + HEAP32[($4 + 216 | 0) >> 2] = (HEAP32[($4 + 216 | 0) >> 2] | 0) + 1 | 0; + continue label$29; + }; + } + btFace__btFace_28_29($4 + 100 | 0 | 0) | 0; + HEAP32[($4 + 96 | 0) >> 2] = 0; + label$36 : { + label$37 : while (1) { + if (!((HEAP32[($4 + 96 | 0) >> 2] | 0 | 0) < (4 | 0) & 1 | 0)) { + break label$36 + } + $797 = (btAlignedObjectArray_btFace___operator_5b_5d_28int_29($4 + 588 | 0 | 0, HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($4 + 324 | 0 | 0, 0 | 0) | 0) >> 2] | 0 | 0) | 0) + 20 | 0; + HEAPF32[((($4 + 100 | 0) + 20 | 0) + ((HEAP32[($4 + 96 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($797 + ((HEAP32[($4 + 96 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + HEAP32[($4 + 96 | 0) >> 2] = (HEAP32[($4 + 96 | 0) >> 2] | 0) + 1 | 0; + continue label$37; + }; + } + btAlignedObjectArray_GrahamVector3___btAlignedObjectArray_28_29($4 + 76 | 0 | 0) | 0; + btVector3__normalize_28_29($4 + 232 | 0 | 0) | 0; + GrahamScanConvexHull2D_28btAlignedObjectArray_GrahamVector3___2c_20btAlignedObjectArray_GrahamVector3___2c_20btVector3_20const__29($4 + 248 | 0 | 0, $4 + 76 | 0 | 0, $4 + 232 | 0 | 0); + HEAP32[($4 + 72 | 0) >> 2] = 0; + label$38 : { + label$39 : while (1) { + if (!((HEAP32[($4 + 72 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_GrahamVector3___size_28_29_20const($4 + 76 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$38 + } + btAlignedObjectArray_int___push_back_28int_20const__29($4 + 100 | 0 | 0, (btAlignedObjectArray_GrahamVector3___operator_5b_5d_28int_29($4 + 76 | 0 | 0, HEAP32[($4 + 72 | 0) >> 2] | 0 | 0) | 0) + 20 | 0 | 0); + HEAP32[($4 + 68 | 0) >> 2] = 0; + label$40 : { + label$41 : while (1) { + if (!((HEAP32[($4 + 68 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_GrahamVector3___size_28_29_20const($4 + 248 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$40 + } + label$42 : { + if (!((HEAP32[((btAlignedObjectArray_GrahamVector3___operator_5b_5d_28int_29($4 + 248 | 0 | 0, HEAP32[($4 + 68 | 0) >> 2] | 0 | 0) | 0) + 20 | 0) >> 2] | 0 | 0) == (HEAP32[((btAlignedObjectArray_GrahamVector3___operator_5b_5d_28int_29($4 + 76 | 0 | 0, HEAP32[($4 + 72 | 0) >> 2] | 0 | 0) | 0) + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$42 + } + (wasm2js_i32$0 = btAlignedObjectArray_GrahamVector3___operator_5b_5d_28int_29($4 + 248 | 0 | 0, HEAP32[($4 + 68 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = -1), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + break label$40; + } + HEAP32[($4 + 68 | 0) >> 2] = (HEAP32[($4 + 68 | 0) >> 2] | 0) + 1 | 0; + continue label$41; + }; + } + HEAP32[($4 + 72 | 0) >> 2] = (HEAP32[($4 + 72 | 0) >> 2] | 0) + 1 | 0; + continue label$39; + }; + } + HEAP8[($4 + 67 | 0) >> 0] = 0; + HEAP32[($4 + 60 | 0) >> 2] = 0; + label$43 : { + label$44 : while (1) { + if (!((HEAP32[($4 + 60 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_GrahamVector3___size_28_29_20const($4 + 248 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$43 + } + label$45 : { + label$46 : { + if (!((HEAP32[((btAlignedObjectArray_GrahamVector3___operator_5b_5d_28int_29($4 + 248 | 0 | 0, HEAP32[($4 + 60 | 0) >> 2] | 0 | 0) | 0) + 20 | 0) >> 2] | 0 | 0) == (-1 | 0) & 1 | 0)) { + break label$46 + } + break label$45; + } + HEAP32[($4 + 56 | 0) >> 2] = 0; + label$47 : { + label$48 : while (1) { + if (!((HEAP32[($4 + 56 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btFace___size_28_29_20const($4 + 588 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$47 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btFace___operator_5b_5d_28int_29($4 + 588 | 0 | 0, HEAP32[($4 + 56 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 52 | 0) >> 2] = wasm2js_i32$1; + HEAP8[($4 + 51 | 0) >> 0] = 0; + HEAP32[($4 + 44 | 0) >> 2] = 0; + label$49 : { + label$50 : while (1) { + if (!((HEAP32[($4 + 44 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_int___size_28_29_20const($4 + 324 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$49 + } + label$51 : { + if (!((HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($4 + 324 | 0 | 0, HEAP32[($4 + 44 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) == (HEAP32[($4 + 56 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$51 + } + HEAP8[($4 + 51 | 0) >> 0] = 1; + break label$49; + } + HEAP32[($4 + 44 | 0) >> 2] = (HEAP32[($4 + 44 | 0) >> 2] | 0) + 1 | 0; + continue label$50; + }; + } + label$52 : { + label$53 : { + if (!((HEAPU8[($4 + 51 | 0) >> 0] | 0) & 1 | 0)) { + break label$53 + } + break label$52; + } + HEAP32[($4 + 40 | 0) >> 2] = 0; + label$54 : { + label$55 : while (1) { + if (!((HEAP32[($4 + 40 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_int___size_28_29_20const(HEAP32[($4 + 52 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$54 + } + label$56 : { + if (!((HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29(HEAP32[($4 + 52 | 0) >> 2] | 0 | 0, HEAP32[($4 + 40 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) == (HEAP32[((btAlignedObjectArray_GrahamVector3___operator_5b_5d_28int_29($4 + 248 | 0 | 0, HEAP32[($4 + 60 | 0) >> 2] | 0 | 0) | 0) + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$56 + } + HEAP8[($4 + 67 | 0) >> 0] = 1; + break label$54; + } + HEAP32[($4 + 40 | 0) >> 2] = (HEAP32[($4 + 40 | 0) >> 2] | 0) + 1 | 0; + continue label$55; + }; + } + label$57 : { + if (!((HEAPU8[($4 + 67 | 0) >> 0] | 0) & 1 | 0)) { + break label$57 + } + break label$47; + } + } + HEAP32[($4 + 56 | 0) >> 2] = (HEAP32[($4 + 56 | 0) >> 2] | 0) + 1 | 0; + continue label$48; + }; + } + label$58 : { + if (!((HEAPU8[($4 + 67 | 0) >> 0] | 0) & 1 | 0)) { + break label$58 + } + break label$43; + } + } + HEAP32[($4 + 60 | 0) >> 2] = (HEAP32[($4 + 60 | 0) >> 2] | 0) + 1 | 0; + continue label$44; + }; + } + label$59 : { + if ((HEAPU8[($4 + 67 | 0) >> 0] | 0) & 1 | 0) { + break label$59 + } + HEAP8[($4 + 271 | 0) >> 0] = 1; + btAlignedObjectArray_btFace___push_back_28btFace_20const__29((HEAP32[($5 + 60 | 0) >> 2] | 0) + 24 | 0 | 0, $4 + 100 | 0 | 0); + } + btAlignedObjectArray_GrahamVector3____btAlignedObjectArray_28_29($4 + 76 | 0 | 0) | 0; + btFace___btFace_28_29($4 + 100 | 0 | 0) | 0; + btAlignedObjectArray_GrahamVector3____btAlignedObjectArray_28_29($4 + 248 | 0 | 0) | 0; + } + label$60 : { + if ((HEAPU8[($4 + 271 | 0) >> 0] | 0) & 1 | 0) { + break label$60 + } + HEAP32[($4 + 36 | 0) >> 2] = 0; + label$61 : { + label$62 : while (1) { + if (!((HEAP32[($4 + 36 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_int___size_28_29_20const($4 + 324 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$61 + } + btFace__btFace_28btFace_20const__29($4 | 0, btAlignedObjectArray_btFace___operator_5b_5d_28int_29($4 + 588 | 0 | 0, HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($4 + 324 | 0 | 0, HEAP32[($4 + 36 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + btAlignedObjectArray_btFace___push_back_28btFace_20const__29((HEAP32[($5 + 60 | 0) >> 2] | 0) + 24 | 0 | 0, $4 | 0); + btFace___btFace_28_29($4 | 0) | 0; + HEAP32[($4 + 36 | 0) >> 2] = (HEAP32[($4 + 36 | 0) >> 2] | 0) + 1 | 0; + continue label$62; + }; + } + } + btAlignedObjectArray_int____btAlignedObjectArray_28_29($4 + 324 | 0 | 0) | 0; + continue label$23; + }; + } + btConvexPolyhedron__initialize_28_29(HEAP32[($5 + 60 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_int____btAlignedObjectArray_28_29($4 + 348 | 0 | 0) | 0; + btAlignedObjectArray_btFace____btAlignedObjectArray_28_29($4 + 588 | 0 | 0) | 0; + btAlignedObjectArray_btVector3____btAlignedObjectArray_28_29($4 + 632 | 0 | 0) | 0; + btConvexHullComputer___btConvexHullComputer_28_29($4 + 732 | 0 | 0) | 0; + btAlignedObjectArray_btVector3____btAlignedObjectArray_28_29($4 + 816 | 0 | 0) | 0; + __stack_pointer = $4 + 848 | 0; + return 1 & 1 | 0 | 0; + } + + function btConvexPolyhedron__operator_20new_28unsigned_20long_2c_20void__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return HEAP32[($4 + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btVector3___expand_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $25 = 0, $28 = 0, $100 = 0, $110 = 0, $36 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btVector3___size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btVector3___capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btVector3___reserve_28int_29($5 | 0, btAlignedObjectArray_btVector3___allocSize_28int_29($5 | 0, btAlignedObjectArray_btVector3___size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + $25 = btVector3__operator_20new_28unsigned_20long_2c_20void__29(16 | 0, (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 4 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $100 = i64toi32_i32$0; + i64toi32_i32$0 = $25; + HEAP32[i64toi32_i32$0 >> 2] = $100; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $28 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $28 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $110 = i64toi32_i32$1; + i64toi32_i32$1 = $25 + $28 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $110; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $36 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 4 | 0) >> 2] | 0) << 4 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $36 | 0; + } + + function btConvexHullComputer__btConvexHullComputer_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btVector3___btAlignedObjectArray_28_29($4 | 0) | 0; + btAlignedObjectArray_btConvexHullComputer__Edge___btAlignedObjectArray_28_29($4 + 20 | 0 | 0) | 0; + btAlignedObjectArray_int___btAlignedObjectArray_28_29($4 + 40 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConvexHullComputer__compute_28float_20const__2c_20int_2c_20int_2c_20float_2c_20float_29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = Math_fround($4); + $5 = Math_fround($5); + var $8 = 0, $18 = Math_fround(0); + $8 = __stack_pointer - 32 | 0; + __stack_pointer = $8; + HEAP32[($8 + 28 | 0) >> 2] = $0; + HEAP32[($8 + 24 | 0) >> 2] = $1; + HEAP32[($8 + 20 | 0) >> 2] = $2; + HEAP32[($8 + 16 | 0) >> 2] = $3; + HEAPF32[($8 + 12 | 0) >> 2] = $4; + HEAPF32[($8 + 8 | 0) >> 2] = $5; + $18 = Math_fround(btConvexHullComputer__compute_28void_20const__2c_20bool_2c_20int_2c_20int_2c_20float_2c_20float_29(HEAP32[($8 + 28 | 0) >> 2] | 0 | 0, HEAP32[($8 + 24 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0, HEAP32[($8 + 20 | 0) >> 2] | 0 | 0, HEAP32[($8 + 16 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($8 + 12 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($8 + 8 | 0) >> 2])))); + __stack_pointer = $8 + 32 | 0; + return Math_fround($18); + } + + function btAlignedObjectArray_btFace___btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btFace_2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btFace___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btFace__btFace_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_int___btAlignedObjectArray_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btFace___resize_28int_2c_20btFace_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btFace___size_28_29_20const($6 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + btFace___btFace_28_29((HEAP32[($6 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 12 | 0) >> 2] | 0, 36) | 0 | 0) | 0; + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + break label$1; + } + label$5 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) > (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + btAlignedObjectArray_btFace___reserve_28int_29($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + btFace__btFace_28btFace_20const__29((HEAP32[($6 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 8 | 0) >> 2] | 0, 36) | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btFace___btFace_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_int____btAlignedObjectArray_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btConvexHullComputer__Edge___operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btConvexHullComputer__Edge___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($4 + 8 | 0) >> 2] | 0, 12) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btConvexHullComputer__Edge__getSourceVertex_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + return HEAP32[(($4 + Math_imul(HEAP32[($4 + 4 | 0) >> 2] | 0, 12) | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btFace___operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btFace___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($4 + 8 | 0) >> 2] | 0, 36) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btConvexHullComputer__Edge__getTargetVertex_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btConvexHullComputer__Edge__getNextEdgeOfFace_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $9 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + $9 = btConvexHullComputer__Edge__getNextEdgeOfVertex_28_29_20const($4 + Math_imul(HEAP32[($4 + 4 | 0) >> 2] | 0, 12) | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $9 | 0; + } + + function btAlignedObjectArray_int___pop_back_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85800 | 0, 78192 | 0, 201 | 0, 77711 | 0); + wasm2js_trap(); + } + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + -1 | 0; + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_int___remove_28int_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_int___findLinearSearch_28int_20const__29_20const($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_int___removeAtIndex_28int_29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_GrahamVector3___btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_GrahamVector3_2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_GrahamVector3___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_GrahamVector3___size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_GrahamVector3___operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_GrahamVector3___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($4 + 8 | 0) >> 2] | 0, 24) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function GrahamVector3__GrahamVector3_28btVector3_20const__2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $9 = 0, $31 = 0, $41 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($5 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $31 = i64toi32_i32$0; + i64toi32_i32$0 = $6; + HEAP32[$6 >> 2] = $31; + HEAP32[($6 + 4 | 0) >> 2] = i64toi32_i32$1; + $9 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $9 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $41 = i64toi32_i32$1; + i64toi32_i32$1 = $6 + $9 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $41; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6 + 20 | 0) >> 2] = HEAP32[($5 + 4 | 0) >> 2] | 0; + return $6 | 0; + } + + function btAlignedObjectArray_GrahamVector3___push_back_28GrahamVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$0 = 0, $5 = 0, i64toi32_i32$2 = 0, $4 = 0, i64toi32_i32$1 = 0, $22 = 0, $23 = 0, $25 = 0, $29 = 0, $92 = 0, $102 = 0, $112 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_GrahamVector3___size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_GrahamVector3___capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_GrahamVector3___reserve_28int_29($5 | 0, btAlignedObjectArray_GrahamVector3___allocSize_28int_29($5 | 0, btAlignedObjectArray_GrahamVector3___size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + $22 = btVector3__operator_20new_28unsigned_20long_2c_20void__29(24 | 0, (HEAP32[($5 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 4 | 0) >> 2] | 0, 24) | 0 | 0) | 0; + $23 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$2 = $23; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $92 = i64toi32_i32$0; + i64toi32_i32$0 = $22; + HEAP32[i64toi32_i32$0 >> 2] = $92; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $25 = 16; + i64toi32_i32$2 = i64toi32_i32$2 + $25 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $102 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $25 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $102; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $29 = 8; + i64toi32_i32$2 = $23 + $29 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $112 = i64toi32_i32$0; + i64toi32_i32$0 = $22 + $29 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $112; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function GrahamScanConvexHull2D_28btAlignedObjectArray_GrahamVector3___2c_20btAlignedObjectArray_GrahamVector3___2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $181 = 0, $131 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$1 = 0; + $5 = __stack_pointer - 176 | 0; + __stack_pointer = $5; + HEAP32[($5 + 172 | 0) >> 2] = $0; + HEAP32[($5 + 168 | 0) >> 2] = $1; + HEAP32[($5 + 164 | 0) >> 2] = $2; + btVector3__btVector3_28_29($5 + 148 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 132 | 0 | 0) | 0; + void_20btPlaneSpace1_btVector3__28btVector3_20const__2c_20btVector3__2c_20btVector3__29(HEAP32[($5 + 164 | 0) >> 2] | 0 | 0, $5 + 148 | 0 | 0, $5 + 132 | 0 | 0); + label$1 : { + label$2 : { + if (!((btAlignedObjectArray_GrahamVector3___size_28_29_20const(HEAP32[($5 + 172 | 0) >> 2] | 0 | 0) | 0 | 0) <= (1 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 128 | 0) >> 2] = 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 128 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_GrahamVector3___size_28_29_20const(HEAP32[($5 + 172 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$3 + } + btAlignedObjectArray_GrahamVector3___push_back_28GrahamVector3_20const__29(HEAP32[($5 + 168 | 0) >> 2] | 0 | 0, btAlignedObjectArray_GrahamVector3___operator_5b_5d_28int_29(HEAP32[($5 + 172 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0); + HEAP32[($5 + 128 | 0) >> 2] = (HEAP32[($5 + 128 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + break label$1; + } + HEAP32[($5 + 124 | 0) >> 2] = 0; + label$5 : { + label$6 : while (1) { + if (!((HEAP32[($5 + 124 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_GrahamVector3___size_28_29_20const(HEAP32[($5 + 172 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$5 + } + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const(btAlignedObjectArray_GrahamVector3___operator_5b_5d_28int_29(HEAP32[($5 + 172 | 0) >> 2] | 0 | 0, HEAP32[($5 + 124 | 0) >> 2] | 0 | 0) | 0 | 0, $5 + 148 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 120 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const(btAlignedObjectArray_GrahamVector3___operator_5b_5d_28int_29(HEAP32[($5 + 172 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0, $5 + 148 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 116 | 0) >> 2] = wasm2js_f32$0; + label$7 : { + if (!(Math_fround(HEAPF32[($5 + 120 | 0) >> 2]) < Math_fround(HEAPF32[($5 + 116 | 0) >> 2]) & 1 | 0)) { + break label$7 + } + btAlignedObjectArray_GrahamVector3___swap_28int_2c_20int_29(HEAP32[($5 + 172 | 0) >> 2] | 0 | 0, 0 | 0, HEAP32[($5 + 124 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 124 | 0) >> 2] = (HEAP32[($5 + 124 | 0) >> 2] | 0) + 1 | 0; + continue label$6; + }; + } + (wasm2js_i32$0 = btAlignedObjectArray_GrahamVector3___operator_5b_5d_28int_29(HEAP32[($5 + 172 | 0) >> 2] | 0 | 0, 0 | 0) | 0, wasm2js_f32$0 = Math_fround(-1000000015047466219876688.0e6)), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + HEAP32[($5 + 112 | 0) >> 2] = 1; + label$8 : { + label$9 : while (1) { + if (!((HEAP32[($5 + 112 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_GrahamVector3___size_28_29_20const(HEAP32[($5 + 172 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$8 + } + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 96 | 0 | 0, btAlignedObjectArray_GrahamVector3___operator_5b_5d_28int_29(HEAP32[($5 + 172 | 0) >> 2] | 0 | 0, HEAP32[($5 + 112 | 0) >> 2] | 0 | 0) | 0 | 0, btAlignedObjectArray_GrahamVector3___operator_5b_5d_28int_29(HEAP32[($5 + 172 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($5 + 132 | 0 | 0, $5 + 96 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 92 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($5 + 148 | 0 | 0, $5 + 96 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 88 | 0) >> 2] = wasm2js_f32$0; + label$10 : { + label$11 : { + if (!(Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 92 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 92 | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($5 + 88 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 88 | 0) >> 2]))) < Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$11 + } + (wasm2js_i32$0 = btAlignedObjectArray_GrahamVector3___operator_5b_5d_28int_29(HEAP32[($5 + 172 | 0) >> 2] | 0 | 0, HEAP32[($5 + 112 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + break label$10; + } + $131 = Math_fround(btAtan2Fast_28float_2c_20float_29(Math_fround(Math_fround(HEAPF32[($5 + 92 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($5 + 88 | 0) >> 2])))); + (wasm2js_i32$0 = btAlignedObjectArray_GrahamVector3___operator_5b_5d_28int_29(HEAP32[($5 + 172 | 0) >> 2] | 0 | 0, HEAP32[($5 + 112 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $131), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + } + HEAP32[($5 + 112 | 0) >> 2] = (HEAP32[($5 + 112 | 0) >> 2] | 0) + 1 | 0; + continue label$9; + }; + } + btAngleCompareFunc__btAngleCompareFunc_28btVector3_20const__29($5 + 72 | 0 | 0, btAlignedObjectArray_GrahamVector3___operator_5b_5d_28int_29(HEAP32[($5 + 172 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0) | 0; + void_20btAlignedObjectArray_GrahamVector3___quickSortInternal_btAngleCompareFunc__28btAngleCompareFunc_20const__2c_20int_2c_20int_29(HEAP32[($5 + 172 | 0) >> 2] | 0 | 0, $5 + 72 | 0 | 0, 1 | 0, (btAlignedObjectArray_GrahamVector3___size_28_29_20const(HEAP32[($5 + 172 | 0) >> 2] | 0 | 0) | 0) - 1 | 0 | 0); + HEAP32[($5 + 68 | 0) >> 2] = 0; + label$12 : { + label$13 : while (1) { + if (!((HEAP32[($5 + 68 | 0) >> 2] | 0 | 0) < (2 | 0) & 1 | 0)) { + break label$12 + } + btAlignedObjectArray_GrahamVector3___push_back_28GrahamVector3_20const__29(HEAP32[($5 + 168 | 0) >> 2] | 0 | 0, btAlignedObjectArray_GrahamVector3___operator_5b_5d_28int_29(HEAP32[($5 + 172 | 0) >> 2] | 0 | 0, HEAP32[($5 + 68 | 0) >> 2] | 0 | 0) | 0 | 0); + HEAP32[($5 + 68 | 0) >> 2] = (HEAP32[($5 + 68 | 0) >> 2] | 0) + 1 | 0; + continue label$13; + }; + } + label$14 : while (1) { + if (!((HEAP32[($5 + 68 | 0) >> 2] | 0 | 0) != (btAlignedObjectArray_GrahamVector3___size_28_29_20const(HEAP32[($5 + 172 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP8[($5 + 67 | 0) >> 0] = 0; + label$15 : while (1) { + $181 = 0; + label$16 : { + if ((HEAPU8[($5 + 67 | 0) >> 0] | 0) & 1 | 0) { + break label$16 + } + $181 = (btAlignedObjectArray_GrahamVector3___size_28_29_20const(HEAP32[($5 + 168 | 0) >> 2] | 0 | 0) | 0 | 0) > (1 | 0); + } + label$17 : { + if (!($181 & 1 | 0)) { + break label$17 + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_GrahamVector3___operator_5b_5d_28int_29(HEAP32[($5 + 168 | 0) >> 2] | 0 | 0, (btAlignedObjectArray_GrahamVector3___size_28_29_20const(HEAP32[($5 + 168 | 0) >> 2] | 0 | 0) | 0) - 2 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 60 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_GrahamVector3___operator_5b_5d_28int_29(HEAP32[($5 + 168 | 0) >> 2] | 0 | 0, (btAlignedObjectArray_GrahamVector3___size_28_29_20const(HEAP32[($5 + 168 | 0) >> 2] | 0 | 0) | 0) - 1 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 56 | 0) >> 2] = wasm2js_i32$1; + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 24 | 0 | 0, HEAP32[($5 + 60 | 0) >> 2] | 0 | 0, HEAP32[($5 + 56 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 8 | 0 | 0, HEAP32[($5 + 60 | 0) >> 2] | 0 | 0, btAlignedObjectArray_GrahamVector3___operator_5b_5d_28int_29(HEAP32[($5 + 172 | 0) >> 2] | 0 | 0, HEAP32[($5 + 68 | 0) >> 2] | 0 | 0) | 0 | 0); + btCross_28btVector3_20const__2c_20btVector3_20const__29($5 + 40 | 0 | 0, $5 + 24 | 0 | 0, $5 + 8 | 0 | 0); + (wasm2js_i32$0 = $5, wasm2js_i32$1 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($5 + 40 | 0 | 0, HEAP32[($5 + 164 | 0) >> 2] | 0 | 0)) > Math_fround(0 | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 67 | 0) >> 0] = wasm2js_i32$1; + label$18 : { + label$19 : { + if ((HEAPU8[($5 + 67 | 0) >> 0] | 0) & 1 | 0) { + break label$19 + } + btAlignedObjectArray_GrahamVector3___pop_back_28_29(HEAP32[($5 + 168 | 0) >> 2] | 0 | 0); + break label$18; + } + btAlignedObjectArray_GrahamVector3___push_back_28GrahamVector3_20const__29(HEAP32[($5 + 168 | 0) >> 2] | 0 | 0, btAlignedObjectArray_GrahamVector3___operator_5b_5d_28int_29(HEAP32[($5 + 172 | 0) >> 2] | 0 | 0, HEAP32[($5 + 68 | 0) >> 2] | 0 | 0) | 0 | 0); + } + continue label$15; + } + break label$15; + }; + label$20 : { + if (!((btAlignedObjectArray_GrahamVector3___size_28_29_20const(HEAP32[($5 + 168 | 0) >> 2] | 0 | 0) | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$20 + } + btAlignedObjectArray_GrahamVector3___push_back_28GrahamVector3_20const__29(HEAP32[($5 + 168 | 0) >> 2] | 0 | 0, btAlignedObjectArray_GrahamVector3___operator_5b_5d_28int_29(HEAP32[($5 + 172 | 0) >> 2] | 0 | 0, HEAP32[($5 + 68 | 0) >> 2] | 0 | 0) | 0 | 0); + } + HEAP32[($5 + 68 | 0) >> 2] = (HEAP32[($5 + 68 | 0) >> 2] | 0) + 1 | 0; + continue label$14; + }; + } + __stack_pointer = $5 + 176 | 0; + return; + } + + function btAlignedObjectArray_btFace___push_back_28btFace_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btFace___size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btFace___capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btFace___reserve_28int_29($5 | 0, btAlignedObjectArray_btFace___allocSize_28int_29($5 | 0, btAlignedObjectArray_btFace___size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + btFace__btFace_28btFace_20const__29((HEAP32[($5 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 4 | 0) >> 2] | 0, 36) | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_GrahamVector3____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_GrahamVector3___clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btFace__btFace_28btFace_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5 = 0, $8 = 0, $13 = 0, $46 = 0, $56 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_int___btAlignedObjectArray_28btAlignedObjectArray_int__20const__29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + $8 = $5 + 20 | 0; + i64toi32_i32$2 = (HEAP32[($4 + 8 | 0) >> 2] | 0) + 20 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $46 = i64toi32_i32$0; + i64toi32_i32$0 = $8; + HEAP32[i64toi32_i32$0 >> 2] = $46; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $13 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $13 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $56 = i64toi32_i32$1; + i64toi32_i32$1 = $8 + $13 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $56; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function btAlignedObjectArray_btFace____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btFace___clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConvexHullComputer___btConvexHullComputer_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_int____btAlignedObjectArray_28_29($4 + 40 | 0 | 0) | 0; + btAlignedObjectArray_btConvexHullComputer__Edge____btAlignedObjectArray_28_29($4 + 20 | 0 | 0) | 0; + btAlignedObjectArray_btVector3____btAlignedObjectArray_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btConvexHullComputer__Edge___btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btConvexHullComputer__Edge_2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btConvexHullComputer__Edge___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedAllocator_btFace_2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btFace___init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btAlignedObjectArray_btFace___reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btFace___capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btFace___allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btFace___copy_28int_2c_20int_2c_20btFace__29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btFace___size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btFace___destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btFace___size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btFace___deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btConvexHullComputer__Edge___size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btConvexHullComputer__Edge__getNextEdgeOfVertex_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + return $4 + Math_imul(HEAP32[$4 >> 2] | 0, 12) | 0 | 0; + } + + function btAlignedObjectArray_int___findLinearSearch_28int_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_int___size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + HEAP32[$4 >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$4 >> 2] | 0 | 0) < (btAlignedObjectArray_int___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + label$3 : { + if (!((HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[$4 >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) == (HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[$4 >> 2] | 0; + break label$1; + } + HEAP32[$4 >> 2] = (HEAP32[$4 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + $32 = HEAP32[($4 + 4 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btAlignedObjectArray_int___removeAtIndex_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_int___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_int___swap_28int_2c_20int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, (btAlignedObjectArray_int___size_28_29_20const($5 | 0) | 0) - 1 | 0 | 0); + btAlignedObjectArray_int___pop_back_28_29($5 | 0); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedAllocator_GrahamVector3_2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_GrahamVector3___init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btAlignedObjectArray_GrahamVector3___capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_GrahamVector3___allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btAlignedObjectArray_GrahamVector3___reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_GrahamVector3___capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_GrahamVector3___allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_GrahamVector3___copy_28int_2c_20int_2c_20GrahamVector3__29_20const($5 | 0, 0 | 0, btAlignedObjectArray_GrahamVector3___size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_GrahamVector3___destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_GrahamVector3___size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_GrahamVector3___deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_GrahamVector3___swap_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $5 = 0, $6 = 0, $11 = 0, $34 = 0, $48 = 0, $12 = 0, $18 = 0, $29 = 0, $36 = 0, $40 = 0, $50 = 0, $56 = 0, $96 = 0, $109 = 0, $113 = 0, $137 = 0, $147 = 0, $157 = 0, $171 = 0, $184 = 0, $197 = 0; + $5 = __stack_pointer - 48 | 0; + HEAP32[($5 + 44 | 0) >> 2] = $0; + HEAP32[($5 + 40 | 0) >> 2] = $1; + HEAP32[($5 + 36 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 44 | 0) >> 2] | 0; + $11 = (HEAP32[($6 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 40 | 0) >> 2] | 0, 24) | 0; + $12 = 16; + i64toi32_i32$2 = $11 + $12 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $96 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 8 | 0) + $12 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $96; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $18 = 8; + i64toi32_i32$2 = $11 + $18 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $109 = i64toi32_i32$1; + i64toi32_i32$1 = ($5 + 8 | 0) + $18 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $109; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $11; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $113 = i64toi32_i32$0; + i64toi32_i32$0 = $5; + HEAP32[(i64toi32_i32$0 + 8 | 0) >> 2] = $113; + HEAP32[(i64toi32_i32$0 + 12 | 0) >> 2] = i64toi32_i32$1; + $29 = (HEAP32[($6 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[(i64toi32_i32$0 + 36 | 0) >> 2] | 0, 24) | 0; + $34 = (HEAP32[($6 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[(i64toi32_i32$0 + 40 | 0) >> 2] | 0, 24) | 0; + i64toi32_i32$2 = $29; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $137 = i64toi32_i32$1; + i64toi32_i32$1 = $34; + HEAP32[i64toi32_i32$1 >> 2] = $137; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $36 = 16; + i64toi32_i32$2 = i64toi32_i32$2 + $36 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $147 = i64toi32_i32$0; + i64toi32_i32$0 = $34 + $36 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $147; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $40 = 8; + i64toi32_i32$2 = $29 + $40 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $157 = i64toi32_i32$1; + i64toi32_i32$1 = $34 + $40 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $157; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $48 = (HEAP32[($6 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 36 | 0) >> 2] | 0, 24) | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 12 | 0) >> 2] | 0; + $171 = i64toi32_i32$0; + i64toi32_i32$0 = $48; + HEAP32[i64toi32_i32$0 >> 2] = $171; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $50 = 16; + i64toi32_i32$2 = (i64toi32_i32$2 + 8 | 0) + $50 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $184 = i64toi32_i32$1; + i64toi32_i32$1 = $48 + $50 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $184; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $56 = 8; + i64toi32_i32$2 = ($5 + 8 | 0) + $56 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $197 = i64toi32_i32$0; + i64toi32_i32$0 = $48 + $56 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $197; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + return; + } + + function btAtan2Fast_28float_2c_20float_29($0, $1) { + $0 = Math_fround($0); + $1 = Math_fround($1); + var $4 = 0, $51 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAPF32[($4 + 28 | 0) >> 2] = $0; + HEAPF32[($4 + 24 | 0) >> 2] = $1; + HEAPF32[($4 + 20 | 0) >> 2] = Math_fround(.7853981852531433); + HEAPF32[($4 + 16 | 0) >> 2] = Math_fround(Math_fround(3.0) * Math_fround(HEAPF32[($4 + 20 | 0) >> 2])); + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[($4 + 28 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($4 + 24 | 0) >> 2]) >= Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + HEAPF32[($4 + 4 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($4 + 24 | 0) >> 2]) - Math_fround(HEAPF32[($4 + 12 | 0) >> 2])) / Math_fround(Math_fround(HEAPF32[($4 + 24 | 0) >> 2]) + Math_fround(HEAPF32[($4 + 12 | 0) >> 2]))); + HEAPF32[($4 + 8 | 0) >> 2] = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($4 + 20 | 0) >> 2])) * Math_fround(HEAPF32[($4 + 4 | 0) >> 2])) + Math_fround(HEAPF32[($4 + 20 | 0) >> 2])); + break label$1; + } + HEAPF32[$4 >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($4 + 24 | 0) >> 2]) + Math_fround(HEAPF32[($4 + 12 | 0) >> 2])) / Math_fround(Math_fround(HEAPF32[($4 + 12 | 0) >> 2]) - Math_fround(HEAPF32[($4 + 24 | 0) >> 2]))); + HEAPF32[($4 + 8 | 0) >> 2] = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($4 + 20 | 0) >> 2])) * Math_fround(HEAPF32[$4 >> 2])) + Math_fround(HEAPF32[($4 + 16 | 0) >> 2])); + } + label$3 : { + label$4 : { + if (!(Math_fround(HEAPF32[($4 + 28 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$4 + } + $51 = Math_fround(-Math_fround(HEAPF32[($4 + 8 | 0) >> 2])); + break label$3; + } + $51 = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + } + __stack_pointer = $4 + 32 | 0; + return Math_fround($51); + } + + function btAngleCompareFunc__btAngleCompareFunc_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, $5 = 0, $8 = 0, $27 = 0, $37 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $27 = i64toi32_i32$0; + i64toi32_i32$0 = $5; + HEAP32[i64toi32_i32$0 >> 2] = $27; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $8 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $37 = i64toi32_i32$1; + i64toi32_i32$1 = $5 + $8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $37; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return $5 | 0; + } + + function void_20btAlignedObjectArray_GrahamVector3___quickSortInternal_btAngleCompareFunc__28btAngleCompareFunc_20const__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $7 = 0, $18 = 0, $19 = 0, $23 = 0, $148 = 0, $158 = 0, $162 = 0; + $6 = __stack_pointer - 48 | 0; + __stack_pointer = $6; + HEAP32[($6 + 44 | 0) >> 2] = $0; + HEAP32[($6 + 40 | 0) >> 2] = $1; + HEAP32[($6 + 36 | 0) >> 2] = $2; + HEAP32[($6 + 32 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 44 | 0) >> 2] | 0; + HEAP32[($6 + 28 | 0) >> 2] = HEAP32[($6 + 36 | 0) >> 2] | 0; + HEAP32[($6 + 24 | 0) >> 2] = HEAP32[($6 + 32 | 0) >> 2] | 0; + $18 = (HEAP32[($7 + 12 | 0) >> 2] | 0) + Math_imul(((HEAP32[($6 + 36 | 0) >> 2] | 0) + (HEAP32[($6 + 32 | 0) >> 2] | 0) | 0 | 0) / (2 | 0) | 0, 24) | 0; + $19 = 16; + i64toi32_i32$2 = $18 + $19 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $148 = i64toi32_i32$0; + i64toi32_i32$0 = $6 + $19 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $148; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $23 = 8; + i64toi32_i32$2 = $18 + $23 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $158 = i64toi32_i32$1; + i64toi32_i32$1 = $6 + $23 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $158; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $18; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $162 = i64toi32_i32$0; + i64toi32_i32$0 = $6; + HEAP32[$6 >> 2] = $162; + HEAP32[($6 + 4 | 0) >> 2] = i64toi32_i32$1; + label$1 : while (1) { + label$2 : { + label$3 : while (1) { + if (!((btAngleCompareFunc__operator_28_29_28GrahamVector3_20const__2c_20GrahamVector3_20const__29_20const(HEAP32[($6 + 40 | 0) >> 2] | 0 | 0, (HEAP32[($7 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($6 + 28 | 0) >> 2] | 0, 24) | 0 | 0, $6 | 0) | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($6 + 28 | 0) >> 2] = (HEAP32[($6 + 28 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + label$4 : { + label$5 : while (1) { + if (!((btAngleCompareFunc__operator_28_29_28GrahamVector3_20const__2c_20GrahamVector3_20const__29_20const(HEAP32[($6 + 40 | 0) >> 2] | 0 | 0, $6 | 0, (HEAP32[($7 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($6 + 24 | 0) >> 2] | 0, 24) | 0 | 0) | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($6 + 24 | 0) >> 2] = (HEAP32[($6 + 24 | 0) >> 2] | 0) + -1 | 0; + continue label$5; + }; + } + label$6 : { + if (!((HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) <= (HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + btAlignedObjectArray_GrahamVector3___swap_28int_2c_20int_29($7 | 0, HEAP32[($6 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0); + HEAP32[($6 + 28 | 0) >> 2] = (HEAP32[($6 + 28 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($6 + 24 | 0) >> 2] = (HEAP32[($6 + 24 | 0) >> 2] | 0) + -1 | 0; + } + if ((HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) <= (HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) & 1 | 0) { + continue label$1 + } + break label$1; + }; + label$7 : { + if (!((HEAP32[($6 + 36 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$7 + } + void_20btAlignedObjectArray_GrahamVector3___quickSortInternal_btAngleCompareFunc__28btAngleCompareFunc_20const__2c_20int_2c_20int_29($7 | 0, HEAP32[($6 + 40 | 0) >> 2] | 0 | 0, HEAP32[($6 + 36 | 0) >> 2] | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0); + } + label$8 : { + if (!((HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 32 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + void_20btAlignedObjectArray_GrahamVector3___quickSortInternal_btAngleCompareFunc__28btAngleCompareFunc_20const__2c_20int_2c_20int_29($7 | 0, HEAP32[($6 + 40 | 0) >> 2] | 0 | 0, HEAP32[($6 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6 + 32 | 0) >> 2] | 0 | 0); + } + __stack_pointer = $6 + 48 | 0; + return; + } + + function btCross_28btVector3_20const__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $1; + HEAP32[($5 + 8 | 0) >> 2] = $2; + btVector3__cross_28btVector3_20const__29_20const($0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function btAlignedObjectArray_GrahamVector3___pop_back_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85800 | 0, 78192 | 0, 201 | 0, 77711 | 0); + wasm2js_trap(); + } + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + -1 | 0; + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btFace___capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btFace___allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btAlignedObjectArray_GrahamVector3___clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_GrahamVector3___destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_GrahamVector3___size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_GrahamVector3___deallocate_28_29($4 | 0); + btAlignedObjectArray_GrahamVector3___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_int___btAlignedObjectArray_28btAlignedObjectArray_int__20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $8 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btAlignedAllocator_int_2c_2016u___btAlignedAllocator_28_29($5 | 0) | 0; + btAlignedObjectArray_int___init_28_29($5 | 0); + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_int___size_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + $8 = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 0; + btAlignedObjectArray_int___resize_28int_2c_20int_20const__29($5 | 0, $8 | 0, $4 | 0); + btAlignedObjectArray_int___copy_28int_2c_20int_2c_20int__29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function btAlignedObjectArray_btFace___clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btFace___destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btFace___size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btFace___deallocate_28_29($4 | 0); + btAlignedObjectArray_btFace___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btConvexHullComputer__Edge____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btConvexHullComputer__Edge___clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btPolyhedralConvexShape__localGetSupportingVertexWithoutMargin_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $6 = 0, $23 = 0, $24 = 0, $82 = 0, $85 = 0, $86 = 0, $88 = 0, $110 = 0, $159 = 0, $224 = 0, $228 = 0, $84 = 0, $485 = 0, $495 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$1 = 0; + $5 = __stack_pointer - 2160 | 0; + __stack_pointer = $5; + HEAP32[($5 + 2156 | 0) >> 2] = $1; + HEAP32[($5 + 2152 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 2156 | 0) >> 2] | 0; + HEAPF32[($5 + 2148 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 2144 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 2140 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $5 + 2148 | 0 | 0, $5 + 2144 | 0 | 0, $5 + 2140 | 0 | 0) | 0; + HEAPF32[($5 + 2132 | 0) >> 2] = Math_fround(-999999984306749440.0); + $23 = HEAP32[($5 + 2152 | 0) >> 2] | 0; + $24 = 8; + i64toi32_i32$2 = $23 + $24 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $224 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 2112 | 0) + $24 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $224; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $23; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $228 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 2112 | 0) >> 2] = $228; + HEAP32[($5 + 2116 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($5 + 2112 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 2108 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($5 + 2108 | 0) >> 2]) < Math_fround(9.999999747378752e-05) & 1 | 0)) { + break label$2 + } + HEAPF32[($5 + 2104 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($5 + 2100 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 2096 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 2112 | 0 | 0, $5 + 2104 | 0 | 0, $5 + 2100 | 0 | 0, $5 + 2096 | 0 | 0); + break label$1; + } + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(1.0) / Math_fround(btSqrt_28float_29(Math_fround(Math_fround(HEAPF32[($5 + 2108 | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 2092 | 0) >> 2] = wasm2js_f32$0; + btVector3__operator___28float_20const__29_1($5 + 2112 | 0 | 0, $5 + 2092 | 0 | 0) | 0; + } + btVector3__btVector3_28_29($5 + 2076 | 0 | 0) | 0; + HEAP32[($5 + 2068 | 0) >> 2] = 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 2068 | 0) >> 2] | 0 | 0) < (FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 96 | 0) >> 2] | 0 | 0]($6) | 0 | 0) & 1 | 0)) { + break label$3 + } + $82 = $5 + 16 | 0; + $84 = $82 + 2048 | 0; + $85 = $82; + label$5 : while (1) { + $86 = $85; + btVector3__btVector3_28_29($86 | 0) | 0; + $88 = $86 + 16 | 0; + $85 = $88; + if (!(($88 | 0) == ($84 | 0) & 1 | 0)) { + continue label$5 + } + break label$5; + }; + label$6 : { + label$7 : { + if (!(((FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 96 | 0) >> 2] | 0 | 0]($6) | 0) - (HEAP32[($5 + 2068 | 0) >> 2] | 0) | 0 | 0) < (128 | 0) & 1 | 0)) { + break label$7 + } + $110 = (FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 96 | 0) >> 2] | 0 | 0]($6) | 0) - (HEAP32[($5 + 2068 | 0) >> 2] | 0) | 0; + break label$6; + } + $110 = 128; + } + HEAP32[($5 + 12 | 0) >> 2] = $110; + HEAP32[($5 + 2136 | 0) >> 2] = 0; + label$8 : { + label$9 : while (1) { + if (!((HEAP32[($5 + 2136 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 108 | 0) >> 2] | 0 | 0]($6, HEAP32[($5 + 2136 | 0) >> 2] | 0, ($5 + 16 | 0) + ((HEAP32[($5 + 2136 | 0) >> 2] | 0) << 4 | 0) | 0); + HEAP32[($5 + 2136 | 0) >> 2] = (HEAP32[($5 + 2136 | 0) >> 2] | 0) + 1 | 0; + continue label$9; + }; + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btVector3__maxDot_28btVector3_20const__2c_20long_2c_20float__29_20const($5 + 2112 | 0 | 0, $5 + 16 | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0, $5 + 2072 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 2136 | 0) >> 2] = wasm2js_i32$1; + label$10 : { + if (!(Math_fround(HEAPF32[($5 + 2072 | 0) >> 2]) > Math_fround(HEAPF32[($5 + 2132 | 0) >> 2]) & 1 | 0)) { + break label$10 + } + HEAPF32[($5 + 2132 | 0) >> 2] = Math_fround(HEAPF32[($5 + 2072 | 0) >> 2]); + i64toi32_i32$2 = ($5 + 16 | 0) + ((HEAP32[($5 + 2136 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $485 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $485; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $159 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $159 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $495 = i64toi32_i32$1; + i64toi32_i32$1 = $0 + $159 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $495; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + HEAP32[($5 + 2068 | 0) >> 2] = (HEAP32[($5 + 2068 | 0) >> 2] | 0) + 128 | 0; + continue label$4; + }; + } + __stack_pointer = $5 + 2160 | 0; + return; + } + + function btPolyhedralConvexShape__batchedUnitVectorGetSupportingVertexWithoutMargin_28btVector3_20const__2c_20btVector3__2c_20int_29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $54 = 0, $57 = 0, $58 = 0, $60 = 0, $82 = 0, $137 = 0, $139 = 0, $56 = 0, $442 = 0, $452 = 0, $143 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$1 = 0; + $6 = __stack_pointer - 2128 | 0; + __stack_pointer = $6; + HEAP32[($6 + 2124 | 0) >> 2] = $0; + HEAP32[($6 + 2120 | 0) >> 2] = $1; + HEAP32[($6 + 2116 | 0) >> 2] = $2; + HEAP32[($6 + 2112 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 2124 | 0) >> 2] | 0; + btVector3__btVector3_28_29($6 + 2092 | 0 | 0) | 0; + HEAP32[($6 + 2108 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 2108 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 2112 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29((HEAP32[($6 + 2116 | 0) >> 2] | 0) + ((HEAP32[($6 + 2108 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(-999999984306749440.0)), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + HEAP32[($6 + 2108 | 0) >> 2] = (HEAP32[($6 + 2108 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + HEAP32[($6 + 2084 | 0) >> 2] = 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($6 + 2084 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 2112 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6 + 2080 | 0) >> 2] = (HEAP32[($6 + 2120 | 0) >> 2] | 0) + ((HEAP32[($6 + 2084 | 0) >> 2] | 0) << 4 | 0) | 0; + HEAP32[($6 + 2076 | 0) >> 2] = 0; + label$5 : { + label$6 : while (1) { + if (!((HEAP32[($6 + 2076 | 0) >> 2] | 0 | 0) < (FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 96 | 0) >> 2] | 0 | 0]($7) | 0 | 0) & 1 | 0)) { + break label$5 + } + $54 = $6 + 16 | 0; + $56 = $54 + 2048 | 0; + $57 = $54; + label$7 : while (1) { + $58 = $57; + btVector3__btVector3_28_29($58 | 0) | 0; + $60 = $58 + 16 | 0; + $57 = $60; + if (!(($60 | 0) == ($56 | 0) & 1 | 0)) { + continue label$7 + } + break label$7; + }; + label$8 : { + label$9 : { + if (!(((FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 96 | 0) >> 2] | 0 | 0]($7) | 0) - (HEAP32[($6 + 2076 | 0) >> 2] | 0) | 0 | 0) < (128 | 0) & 1 | 0)) { + break label$9 + } + $82 = (FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 96 | 0) >> 2] | 0 | 0]($7) | 0) - (HEAP32[($6 + 2076 | 0) >> 2] | 0) | 0; + break label$8; + } + $82 = 128; + } + HEAP32[($6 + 12 | 0) >> 2] = $82; + HEAP32[($6 + 2108 | 0) >> 2] = 0; + label$10 : { + label$11 : while (1) { + if (!((HEAP32[($6 + 2108 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$10 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 108 | 0) >> 2] | 0 | 0]($7, HEAP32[($6 + 2108 | 0) >> 2] | 0, ($6 + 16 | 0) + ((HEAP32[($6 + 2108 | 0) >> 2] | 0) << 4 | 0) | 0); + HEAP32[($6 + 2108 | 0) >> 2] = (HEAP32[($6 + 2108 | 0) >> 2] | 0) + 1 | 0; + continue label$11; + }; + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btVector3__maxDot_28btVector3_20const__2c_20long_2c_20float__29_20const(HEAP32[($6 + 2080 | 0) >> 2] | 0 | 0, $6 + 16 | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0, $6 + 2088 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 2108 | 0) >> 2] = wasm2js_i32$1; + label$12 : { + if (!(Math_fround(HEAPF32[($6 + 2088 | 0) >> 2]) > Math_fround(HEAPF32[((btVector3__operator_20float__28_29((HEAP32[($6 + 2116 | 0) >> 2] | 0) + ((HEAP32[($6 + 2084 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0) + 12 | 0) >> 2]) & 1 | 0)) { + break label$12 + } + $137 = (HEAP32[($6 + 2116 | 0) >> 2] | 0) + ((HEAP32[($6 + 2084 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = ($6 + 16 | 0) + ((HEAP32[($6 + 2108 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $442 = i64toi32_i32$0; + i64toi32_i32$0 = $137; + HEAP32[i64toi32_i32$0 >> 2] = $442; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $139 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $139 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $452 = i64toi32_i32$1; + i64toi32_i32$1 = $137 + $139 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $452; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $143 = Math_fround(HEAPF32[($6 + 2088 | 0) >> 2]); + (wasm2js_i32$0 = btVector3__operator_20float__28_29((HEAP32[($6 + 2116 | 0) >> 2] | 0) + ((HEAP32[($6 + 2084 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0, wasm2js_f32$0 = $143), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + } + HEAP32[($6 + 2076 | 0) >> 2] = (HEAP32[($6 + 2076 | 0) >> 2] | 0) + 128 | 0; + continue label$6; + }; + } + HEAP32[($6 + 2084 | 0) >> 2] = (HEAP32[($6 + 2084 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + __stack_pointer = $6 + 2128 | 0; + return; + } + + function btPolyhedralConvexShape__calculateLocalInertia_28float_2c_20btVector3__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0, i64toi32_i32$2 = 0, $121 = 0, $123 = 0, $385 = 0, $398 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 224 | 0; + __stack_pointer = $5; + HEAP32[($5 + 220 | 0) >> 2] = $0; + HEAPF32[($5 + 216 | 0) >> 2] = $1; + HEAP32[($5 + 212 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 220 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($6))), HEAPF32[(wasm2js_i32$0 + 208 | 0) >> 2] = wasm2js_f32$0; + btTransform__btTransform_28_29($5 + 144 | 0 | 0) | 0; + btTransform__setIdentity_28_29($5 + 144 | 0 | 0); + btVector3__btVector3_28_29($5 + 128 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 112 | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($6, $5 + 144 | 0, $5 + 128 | 0, $5 + 112 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 80 | 0 | 0, $5 + 112 | 0 | 0, $5 + 128 | 0 | 0); + HEAPF32[($5 + 76 | 0) >> 2] = Math_fround(.5); + operator__28btVector3_20const__2c_20float_20const__29($5 + 96 | 0 | 0, $5 + 80 | 0 | 0, $5 + 76 | 0 | 0); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(2.0) * Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($5 + 96 | 0 | 0) | 0) >> 2]) + Math_fround(HEAPF32[($5 + 208 | 0) >> 2])))), HEAPF32[(wasm2js_i32$0 + 72 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(2.0) * Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($5 + 96 | 0 | 0) | 0) >> 2]) + Math_fround(HEAPF32[($5 + 208 | 0) >> 2])))), HEAPF32[(wasm2js_i32$0 + 68 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(2.0) * Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($5 + 96 | 0 | 0) | 0) >> 2]) + Math_fround(HEAPF32[($5 + 208 | 0) >> 2])))), HEAPF32[(wasm2js_i32$0 + 64 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($5 + 60 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 72 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 72 | 0) >> 2])); + HEAPF32[($5 + 56 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 68 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 68 | 0) >> 2])); + HEAPF32[($5 + 52 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 64 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 64 | 0) >> 2])); + HEAPF32[($5 + 48 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 216 | 0) >> 2]) * Math_fround(.0833333283662796)); + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 56 | 0) >> 2]) + Math_fround(HEAPF32[($5 + 52 | 0) >> 2])); + HEAPF32[($5 + 8 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 60 | 0) >> 2]) + Math_fround(HEAPF32[($5 + 52 | 0) >> 2])); + HEAPF32[($5 + 4 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 60 | 0) >> 2]) + Math_fround(HEAPF32[($5 + 56 | 0) >> 2])); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 16 | 0 | 0, $5 + 12 | 0 | 0, $5 + 8 | 0 | 0, $5 + 4 | 0 | 0) | 0; + operator__28float_20const__2c_20btVector3_20const__29($5 + 32 | 0 | 0, $5 + 48 | 0 | 0, $5 + 16 | 0 | 0); + $121 = HEAP32[($5 + 212 | 0) >> 2] | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 32 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 36 | 0) >> 2] | 0; + $385 = i64toi32_i32$0; + i64toi32_i32$0 = $121; + HEAP32[i64toi32_i32$0 >> 2] = $385; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $123 = 8; + i64toi32_i32$2 = ($5 + 32 | 0) + $123 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $398 = i64toi32_i32$1; + i64toi32_i32$1 = $121 + $123 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $398; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $5 + 224 | 0; + return; + } + + function btPolyhedralConvexAabbCachingShape__setLocalScaling_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btConvexInternalShape__setLocalScaling_28btVector3_20const__29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + btPolyhedralConvexAabbCachingShape__recalcLocalAabb_28_29($5 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btPolyhedralConvexAabbCachingShape__recalcLocalAabb_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $120 = 0, $137 = 0, $154 = 0, $171 = 0, $188 = 0, $250 = Math_fround(0), $274 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $3 = __stack_pointer - 256 | 0; + __stack_pointer = $3; + HEAP32[($3 + 252 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 252 | 0) >> 2] | 0; + HEAP8[($4 + 96 | 0) >> 0] = 1; + label$1 : { + if (!(((HEAPU8[(0 + 114272 | 0) >> 0] | 0) & 255 | 0 | 0) == (0 & 255 | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAPF32[($3 + 248 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($3 + 244 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 240 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114176 | 0, $3 + 248 | 0 | 0, $3 + 244 | 0 | 0, $3 + 240 | 0 | 0) | 0; + HEAPF32[($3 + 236 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 232 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($3 + 228 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114176 + 16 | 0 | 0, $3 + 236 | 0 | 0, $3 + 232 | 0 | 0, $3 + 228 | 0 | 0) | 0; + HEAPF32[($3 + 224 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 220 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 216 | 0) >> 2] = Math_fround(1.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114176 + 32 | 0 | 0, $3 + 224 | 0 | 0, $3 + 220 | 0 | 0, $3 + 216 | 0 | 0) | 0; + HEAPF32[($3 + 212 | 0) >> 2] = Math_fround(-1.0); + HEAPF32[($3 + 208 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 204 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114176 + 48 | 0 | 0, $3 + 212 | 0 | 0, $3 + 208 | 0 | 0, $3 + 204 | 0 | 0) | 0; + HEAPF32[($3 + 200 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 196 | 0) >> 2] = Math_fround(-1.0); + HEAPF32[($3 + 192 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114176 + 64 | 0 | 0, $3 + 200 | 0 | 0, $3 + 196 | 0 | 0, $3 + 192 | 0 | 0) | 0; + HEAPF32[($3 + 188 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 184 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 180 | 0) >> 2] = Math_fround(-1.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114176 + 80 | 0 | 0, $3 + 188 | 0 | 0, $3 + 184 | 0 | 0, $3 + 180 | 0 | 0) | 0; + HEAP8[(0 + 114272 | 0) >> 0] = 1; + } + $120 = $3 + 80 | 0; + HEAPF32[($3 + 76 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 72 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 68 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($120 | 0, $3 + 76 | 0 | 0, $3 + 72 | 0 | 0, $3 + 68 | 0 | 0) | 0; + $137 = $120 + 16 | 0; + HEAPF32[($3 + 64 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 60 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 56 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($137 | 0, $3 + 64 | 0 | 0, $3 + 60 | 0 | 0, $3 + 56 | 0 | 0) | 0; + $154 = $137 + 16 | 0; + HEAPF32[($3 + 52 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 48 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 44 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($154 | 0, $3 + 52 | 0 | 0, $3 + 48 | 0 | 0, $3 + 44 | 0 | 0) | 0; + $171 = $154 + 16 | 0; + HEAPF32[($3 + 40 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 36 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 32 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($171 | 0, $3 + 40 | 0 | 0, $3 + 36 | 0 | 0, $3 + 32 | 0 | 0) | 0; + $188 = $171 + 16 | 0; + HEAPF32[($3 + 28 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 24 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 20 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($188 | 0, $3 + 28 | 0 | 0, $3 + 24 | 0 | 0, $3 + 20 | 0 | 0) | 0; + HEAPF32[($3 + 16 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 12 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 8 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($188 + 16 | 0 | 0, $3 + 16 | 0 | 0, $3 + 12 | 0 | 0, $3 + 8 | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 76 | 0) >> 2] | 0 | 0]($4, 114176, $3 + 80 | 0, 6); + HEAP32[($3 + 4 | 0) >> 2] = 0; + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$2 + } + $250 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29(($3 + 80 | 0) + ((HEAP32[($3 + 4 | 0) >> 2] | 0) << 4 | 0) | 0 | 0) | 0) + ((HEAP32[($3 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) + Math_fround(HEAPF32[($4 + 52 | 0) >> 2])); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($4 + 80 | 0 | 0) | 0) + ((HEAP32[($3 + 4 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $250), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $274 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29(($3 + 80 | 0) + (((HEAP32[($3 + 4 | 0) >> 2] | 0) + 3 | 0) << 4 | 0) | 0 | 0) | 0) + ((HEAP32[($3 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) - Math_fround(HEAPF32[($4 + 52 | 0) >> 2])); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($4 + 64 | 0 | 0) | 0) + ((HEAP32[($3 + 4 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $274), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP32[($3 + 4 | 0) >> 2] = (HEAP32[($3 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + __stack_pointer = $3 + 256 | 0; + return; + } + + function btPolyhedralConvexAabbCachingShape__btPolyhedralConvexAabbCachingShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 32 | 0; + __stack_pointer = $3; + HEAP32[($3 + 28 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 28 | 0) >> 2] | 0; + btPolyhedralConvexShape__btPolyhedralConvexShape_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 99576 + 8 | 0; + HEAPF32[($3 + 24 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($3 + 20 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($3 + 16 | 0) >> 2] = Math_fround(1.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 64 | 0 | 0, $3 + 24 | 0 | 0, $3 + 20 | 0 | 0, $3 + 16 | 0 | 0) | 0; + HEAPF32[($3 + 12 | 0) >> 2] = Math_fround(-1.0); + HEAPF32[($3 + 8 | 0) >> 2] = Math_fround(-1.0); + HEAPF32[($3 + 4 | 0) >> 2] = Math_fround(-1.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 80 | 0 | 0, $3 + 12 | 0 | 0, $3 + 8 | 0 | 0, $3 + 4 | 0 | 0) | 0; + HEAP8[($4 + 96 | 0) >> 0] = 0; + __stack_pointer = $3 + 32 | 0; + return $4 | 0; + } + + function btPolyhedralConvexAabbCachingShape__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btPolyhedralConvexAabbCachingShape__getNonvirtualAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__2c_20float_29_20const($7 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6 >> 2] | 0 | 0, Math_fround(Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($7)))); + __stack_pointer = $6 + 16 | 0; + return; + } + + function btPolyhedralConvexAabbCachingShape___btPolyhedralConvexAabbCachingShape_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btAlignedAllocator_btConvexHullComputer__Edge_2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btConvexHullComputer__Edge___init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btAngleCompareFunc__operator_28_29_28GrahamVector3_20const__2c_20GrahamVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $58 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 64 | 0; + __stack_pointer = $5; + HEAP32[($5 + 56 | 0) >> 2] = $0; + HEAP32[($5 + 52 | 0) >> 2] = $1; + HEAP32[($5 + 48 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 56 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 16 | 0) >> 2]) != Math_fround(HEAPF32[((HEAP32[($5 + 48 | 0) >> 2] | 0) + 16 | 0) >> 2]) & 1 | 0)) { + break label$2 + } + HEAP8[($5 + 63 | 0) >> 0] = Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 16 | 0) >> 2]) < Math_fround(HEAPF32[((HEAP32[($5 + 48 | 0) >> 2] | 0) + 16 | 0) >> 2]) & 1 | 0; + break label$1; + } + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 28 | 0 | 0, HEAP32[($5 + 52 | 0) >> 2] | 0 | 0, $6 | 0); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($5 + 28 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 8 | 0 | 0, HEAP32[($5 + 48 | 0) >> 2] | 0 | 0, $6 | 0); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($5 + 8 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_f32$0; + label$3 : { + if (!(Math_fround(HEAPF32[($5 + 44 | 0) >> 2]) != Math_fround(HEAPF32[($5 + 24 | 0) >> 2]) & 1 | 0)) { + break label$3 + } + HEAP8[($5 + 63 | 0) >> 0] = Math_fround(HEAPF32[($5 + 44 | 0) >> 2]) < Math_fround(HEAPF32[($5 + 24 | 0) >> 2]) & 1 | 0; + break label$1; + } + HEAP8[($5 + 63 | 0) >> 0] = (HEAP32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) < (HEAP32[((HEAP32[($5 + 48 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) & 1 | 0; + } + $58 = (HEAPU8[($5 + 63 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $5 + 64 | 0; + return $58 | 0; + } + + function btAlignedObjectArray_btConvexHullComputer__Edge___clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btConvexHullComputer__Edge___destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btConvexHullComputer__Edge___size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btConvexHullComputer__Edge___deallocate_28_29($4 | 0); + btAlignedObjectArray_btConvexHullComputer__Edge___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btConvexHullComputer__Edge___destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btConvexHullComputer__Edge___deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btConvexHullComputer__Edge_2c_2016u___deallocate_28btConvexHullComputer__Edge__29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocator_btConvexHullComputer__Edge_2c_2016u___deallocate_28btConvexHullComputer__Edge__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_GrahamVector3___allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_GrahamVector3_2c_2016u___allocate_28int_2c_20GrahamVector3_20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_GrahamVector3___copy_28int_2c_20int_2c_20GrahamVector3__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $22 = 0, $27 = 0, $29 = 0, $33 = 0, $7 = 0, $101 = 0, $111 = 0, $121 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + $22 = btVector3__operator_20new_28unsigned_20long_2c_20void__29(24 | 0, (HEAP32[($6 + 16 | 0) >> 2] | 0) + Math_imul(HEAP32[($6 + 12 | 0) >> 2] | 0, 24) | 0 | 0) | 0; + $27 = (HEAP32[($7 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($6 + 12 | 0) >> 2] | 0, 24) | 0; + i64toi32_i32$2 = $27; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $101 = i64toi32_i32$0; + i64toi32_i32$0 = $22; + HEAP32[i64toi32_i32$0 >> 2] = $101; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $29 = 16; + i64toi32_i32$2 = i64toi32_i32$2 + $29 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $111 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $29 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $111; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $33 = 8; + i64toi32_i32$2 = $27 + $33 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $121 = i64toi32_i32$0; + i64toi32_i32$0 = $22 + $33 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $121; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $6 + 32 | 0; + return; + } + + function btAlignedObjectArray_GrahamVector3___destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_GrahamVector3___deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_GrahamVector3_2c_2016u___deallocate_28GrahamVector3__29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocator_GrahamVector3_2c_2016u___allocate_28int_2c_20GrahamVector3_20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(Math_imul(HEAP32[($5 + 8 | 0) >> 2] | 0, 24) | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btAlignedAllocator_GrahamVector3_2c_2016u___deallocate_28GrahamVector3__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btFace___destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + btFace___btFace_28_29((HEAP32[($6 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[$5 >> 2] | 0, 36) | 0 | 0) | 0; + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $5 + 16 | 0; + return; + } + + function btAlignedObjectArray_btFace___deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btFace_2c_2016u___deallocate_28btFace__29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocator_btFace_2c_2016u___deallocate_28btFace__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btFace___allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btFace_2c_2016u___allocate_28int_2c_20btFace_20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btFace___copy_28int_2c_20int_2c_20btFace__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + btFace__btFace_28btFace_20const__29((HEAP32[($6 + 16 | 0) >> 2] | 0) + Math_imul(HEAP32[($6 + 12 | 0) >> 2] | 0, 36) | 0 | 0, (HEAP32[($7 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($6 + 12 | 0) >> 2] | 0, 36) | 0 | 0) | 0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $6 + 32 | 0; + return; + } + + function btAlignedAllocator_btFace_2c_2016u___allocate_28int_2c_20btFace_20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(Math_imul(HEAP32[($5 + 8 | 0) >> 2] | 0, 36) | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btAlignedObjectArray_int___swap_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[$5 >> 2] | 0; + return; + } + + function _GLOBAL__sub_I_btPolyhedralConvexShape_cpp() { + __cxx_global_var_init_46(); + return; + } + + function __cxx_global_var_init_47() { + btInfMaskConverter__btInfMaskConverter_28int_29(114276 | 0, 2139095040 | 0) | 0; + return; + } + + function btScaledBvhTriangleMeshShape__btScaledBvhTriangleMeshShape_28btBvhTriangleMeshShape__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $11 = 0, $14 = 0, $50 = 0, $60 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btConcaveShape__btConcaveShape_28_29($6 | 0) | 0; + HEAP32[$6 >> 2] = 99800 + 8 | 0; + $11 = $6 + 24 | 0; + i64toi32_i32$2 = HEAP32[($5 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $50 = i64toi32_i32$0; + i64toi32_i32$0 = $11; + HEAP32[i64toi32_i32$0 >> 2] = $50; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $14 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $14 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $60 = i64toi32_i32$1; + i64toi32_i32$1 = $11 + $14 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $60; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6 + 40 | 0) >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + HEAP32[($6 + 4 | 0) >> 2] = 22; + __stack_pointer = $5 + 16 | 0; + return $6 | 0; + } + + function btScaledBvhTriangleMeshShape___btScaledBvhTriangleMeshShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConcaveShape___btConcaveShape_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btScaledBvhTriangleMeshShape___btScaledBvhTriangleMeshShape_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[928 | 0]($4) | 0; + btScaledBvhTriangleMeshShape__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btScaledBvhTriangleMeshShape__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btScaledBvhTriangleMeshShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $10 = 0, $15 = Math_fround(0), $52 = Math_fround(0), $85 = Math_fround(0), $118 = Math_fround(0), $155 = Math_fround(0), $188 = Math_fround(0), $221 = Math_fround(0), $242 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$1 = 0; + $6 = __stack_pointer - 112 | 0; + __stack_pointer = $6; + HEAP32[($6 + 108 | 0) >> 2] = $0; + HEAP32[($6 + 104 | 0) >> 2] = $1; + HEAP32[($6 + 100 | 0) >> 2] = $2; + HEAP32[($6 + 96 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 108 | 0) >> 2] | 0; + $10 = $7 + 24 | 0; + btScaledTriangleCallback__btScaledTriangleCallback_28btTriangleCallback__2c_20btVector3_20const__29($6 + 72 | 0 | 0, HEAP32[($6 + 104 | 0) >> 2] | 0 | 0, $10 | 0) | 0; + $15 = Math_fround(1.0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround($15 / Math_fround(HEAPF32[(btVector3__getX_28_29_20const($10 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 52 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround($15 / Math_fround(HEAPF32[(btVector3__getY_28_29_20const($10 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 48 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround($15 / Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($10 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 56 | 0 | 0, $6 + 52 | 0 | 0, $6 + 48 | 0 | 0, $6 + 44 | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 28 | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 12 | 0 | 0) | 0; + label$1 : { + label$2 : { + if (!(+Math_fround(HEAPF32[(btVector3__getX_28_29_20const($10 | 0) | 0) >> 2]) >= +(0 | 0) & 1 | 0)) { + break label$2 + } + $52 = Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 100 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__operator_20float__28_29($6 + 56 | 0 | 0) | 0) >> 2])); + break label$1; + } + $52 = Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 96 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__operator_20float__28_29($6 + 56 | 0 | 0) | 0) >> 2])); + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($6 + 28 | 0 | 0) | 0, wasm2js_f32$0 = $52), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + label$3 : { + label$4 : { + if (!(+Math_fround(HEAPF32[(btVector3__getY_28_29_20const($7 + 24 | 0 | 0) | 0) >> 2]) >= +(0 | 0) & 1 | 0)) { + break label$4 + } + $85 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 100 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 56 | 0 | 0) | 0) + 4 | 0) >> 2])); + break label$3; + } + $85 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 96 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 56 | 0 | 0) | 0) + 4 | 0) >> 2])); + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($6 + 28 | 0 | 0) | 0, wasm2js_f32$0 = $85), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + label$5 : { + label$6 : { + if (!(+Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($7 + 24 | 0 | 0) | 0) >> 2]) >= +(0 | 0) & 1 | 0)) { + break label$6 + } + $118 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 100 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 56 | 0 | 0) | 0) + 8 | 0) >> 2])); + break label$5; + } + $118 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 96 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 56 | 0 | 0) | 0) + 8 | 0) >> 2])); + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($6 + 28 | 0 | 0) | 0, wasm2js_f32$0 = $118), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29($6 + 28 | 0 | 0) | 0, wasm2js_i32$1 = 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + label$7 : { + label$8 : { + if (!(+Math_fround(HEAPF32[(btVector3__getX_28_29_20const($7 + 24 | 0 | 0) | 0) >> 2]) <= +(0 | 0) & 1 | 0)) { + break label$8 + } + $155 = Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 100 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__operator_20float__28_29($6 + 56 | 0 | 0) | 0) >> 2])); + break label$7; + } + $155 = Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 96 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__operator_20float__28_29($6 + 56 | 0 | 0) | 0) >> 2])); + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($6 + 12 | 0 | 0) | 0, wasm2js_f32$0 = $155), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + label$9 : { + label$10 : { + if (!(+Math_fround(HEAPF32[(btVector3__getY_28_29_20const($7 + 24 | 0 | 0) | 0) >> 2]) <= +(0 | 0) & 1 | 0)) { + break label$10 + } + $188 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 100 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 56 | 0 | 0) | 0) + 4 | 0) >> 2])); + break label$9; + } + $188 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 96 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 56 | 0 | 0) | 0) + 4 | 0) >> 2])); + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($6 + 12 | 0 | 0) | 0, wasm2js_f32$0 = $188), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + label$11 : { + label$12 : { + if (!(+Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($7 + 24 | 0 | 0) | 0) >> 2]) <= +(0 | 0) & 1 | 0)) { + break label$12 + } + $221 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 100 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 56 | 0 | 0) | 0) + 8 | 0) >> 2])); + break label$11; + } + $221 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($6 + 96 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 56 | 0 | 0) | 0) + 8 | 0) >> 2])); + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($6 + 12 | 0 | 0) | 0, wasm2js_f32$0 = $221), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29($6 + 12 | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + $242 = HEAP32[($7 + 40 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$242 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($242, $6 + 72 | 0, $6 + 28 | 0, $6 + 12 | 0); + btScaledTriangleCallback___btScaledTriangleCallback_28_29($6 + 72 | 0 | 0) | 0; + __stack_pointer = $6 + 112 | 0; + return; + } + + function btScaledTriangleCallback__btScaledTriangleCallback_28btTriangleCallback__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0, $12 = 0, $15 = 0, $53 = 0, $63 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btTriangleCallback__btTriangleCallback_28_29($6 | 0) | 0; + HEAP32[$6 >> 2] = 99920 + 8 | 0; + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + $12 = $6 + 8 | 0; + i64toi32_i32$2 = HEAP32[($5 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $53 = i64toi32_i32$0; + i64toi32_i32$0 = $12; + HEAP32[i64toi32_i32$0 >> 2] = $53; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $15 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $15 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $63 = i64toi32_i32$1; + i64toi32_i32$1 = $12 + $15 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $63; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $5 + 16 | 0; + return $6 | 0; + } + + function btScaledTriangleCallback___btScaledTriangleCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btTriangleCallback___btTriangleCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btScaledBvhTriangleMeshShape__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $7 = 0, $10 = 0, $26 = 0, $212 = 0, $9 = 0, $18 = 0, $48 = Math_fround(0), $73 = Math_fround(0), $98 = Math_fround(0), $123 = Math_fround(0), $148 = Math_fround(0), $173 = Math_fround(0), $203 = 0, $280 = 0, $282 = 0, $297 = 0, $299 = 0, $338 = 0, $342 = 0, $359 = 0, $363 = 0, $829 = 0, $842 = 0, $863 = 0, $876 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 288 | 0; + __stack_pointer = $6; + HEAP32[($6 + 284 | 0) >> 2] = $0; + HEAP32[($6 + 280 | 0) >> 2] = $1; + HEAP32[($6 + 276 | 0) >> 2] = $2; + HEAP32[($6 + 272 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 284 | 0) >> 2] | 0; + $9 = btTriangleMeshShape__getLocalAabbMin_28_29_20const(HEAP32[($7 + 40 | 0) >> 2] | 0 | 0) | 0; + $10 = 8; + i64toi32_i32$2 = $9 + $10 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $338 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 256 | 0) + $10 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $338; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $9; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $342 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 256 | 0) >> 2] = $342; + HEAP32[($6 + 260 | 0) >> 2] = i64toi32_i32$0; + $18 = btTriangleMeshShape__getLocalAabbMax_28_29_20const(HEAP32[($7 + 40 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $18 + $10 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $359 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 240 | 0) + $10 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $359; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $18; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $363 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 240 | 0) >> 2] = $363; + HEAP32[($6 + 244 | 0) >> 2] = i64toi32_i32$0; + $26 = $7 + 24 | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($6 + 224 | 0 | 0, $6 + 256 | 0 | 0, $26 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($6 + 208 | 0 | 0, $6 + 240 | 0 | 0, $26 | 0); + label$1 : { + label$2 : { + if (!(+Math_fround(HEAPF32[(btVector3__getX_28_29_20const($26 | 0) | 0) >> 2]) >= +(0 | 0) & 1 | 0)) { + break label$2 + } + $48 = Math_fround(HEAPF32[(btVector3__operator_20float__28_29($6 + 224 | 0 | 0) | 0) >> 2]); + break label$1; + } + $48 = Math_fround(HEAPF32[(btVector3__operator_20float__28_29($6 + 208 | 0 | 0) | 0) >> 2]); + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($6 + 256 | 0 | 0) | 0, wasm2js_f32$0 = $48), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + label$3 : { + label$4 : { + if (!(+Math_fround(HEAPF32[(btVector3__getY_28_29_20const($7 + 24 | 0 | 0) | 0) >> 2]) >= +(0 | 0) & 1 | 0)) { + break label$4 + } + $73 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 224 | 0 | 0) | 0) + 4 | 0) >> 2]); + break label$3; + } + $73 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 208 | 0 | 0) | 0) + 4 | 0) >> 2]); + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($6 + 256 | 0 | 0) | 0, wasm2js_f32$0 = $73), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + label$5 : { + label$6 : { + if (!(+Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($7 + 24 | 0 | 0) | 0) >> 2]) >= +(0 | 0) & 1 | 0)) { + break label$6 + } + $98 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 224 | 0 | 0) | 0) + 8 | 0) >> 2]); + break label$5; + } + $98 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 208 | 0 | 0) | 0) + 8 | 0) >> 2]); + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($6 + 256 | 0 | 0) | 0, wasm2js_f32$0 = $98), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + label$7 : { + label$8 : { + if (!(+Math_fround(HEAPF32[(btVector3__getX_28_29_20const($7 + 24 | 0 | 0) | 0) >> 2]) <= +(0 | 0) & 1 | 0)) { + break label$8 + } + $123 = Math_fround(HEAPF32[(btVector3__operator_20float__28_29($6 + 224 | 0 | 0) | 0) >> 2]); + break label$7; + } + $123 = Math_fround(HEAPF32[(btVector3__operator_20float__28_29($6 + 208 | 0 | 0) | 0) >> 2]); + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($6 + 240 | 0 | 0) | 0, wasm2js_f32$0 = $123), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + label$9 : { + label$10 : { + if (!(+Math_fround(HEAPF32[(btVector3__getY_28_29_20const($7 + 24 | 0 | 0) | 0) >> 2]) <= +(0 | 0) & 1 | 0)) { + break label$10 + } + $148 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 224 | 0 | 0) | 0) + 4 | 0) >> 2]); + break label$9; + } + $148 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 208 | 0 | 0) | 0) + 4 | 0) >> 2]); + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($6 + 240 | 0 | 0) | 0, wasm2js_f32$0 = $148), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + label$11 : { + label$12 : { + if (!(+Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($7 + 24 | 0 | 0) | 0) >> 2]) <= +(0 | 0) & 1 | 0)) { + break label$12 + } + $173 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 224 | 0 | 0) | 0) + 8 | 0) >> 2]); + break label$11; + } + $173 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 208 | 0 | 0) | 0) + 8 | 0) >> 2]); + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($6 + 240 | 0 | 0) | 0, wasm2js_f32$0 = $173), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($6 + 188 | 0) >> 2] = Math_fround(.5); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 172 | 0 | 0, $6 + 240 | 0 | 0, $6 + 256 | 0 | 0); + operator__28float_20const__2c_20btVector3_20const__29($6 + 192 | 0 | 0, $6 + 188 | 0 | 0, $6 + 172 | 0 | 0); + $203 = HEAP32[($7 + 40 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$203 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($203))), HEAPF32[(wasm2js_i32$0 + 168 | 0) >> 2] = wasm2js_f32$0; + $212 = $6 + 168 | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 152 | 0 | 0, $212 | 0, $212 | 0, $212 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($6 + 192 | 0 | 0, $6 + 152 | 0 | 0) | 0; + HEAPF32[($6 + 132 | 0) >> 2] = Math_fround(.5); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 116 | 0 | 0, $6 + 240 | 0 | 0, $6 + 256 | 0 | 0); + operator__28float_20const__2c_20btVector3_20const__29($6 + 136 | 0 | 0, $6 + 132 | 0 | 0, $6 + 116 | 0 | 0); + btMatrix3x3__absolute_28_29_20const($6 + 68 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($6 + 280 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator_28_29_28btVector3_20const__29_20const($6 + 52 | 0 | 0, HEAP32[($6 + 280 | 0) >> 2] | 0 | 0, $6 + 136 | 0 | 0); + btVector3__dot3_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29_20const($6 + 36 | 0 | 0, $6 + 192 | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($6 + 68 | 0 | 0, 0 | 0) | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($6 + 68 | 0 | 0, 1 | 0) | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($6 + 68 | 0 | 0, 2 | 0) | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 20 | 0 | 0, $6 + 52 | 0 | 0, $6 + 36 | 0 | 0); + $280 = HEAP32[($6 + 276 | 0) >> 2] | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 20 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 24 | 0) >> 2] | 0; + $829 = i64toi32_i32$0; + i64toi32_i32$0 = $280; + HEAP32[i64toi32_i32$0 >> 2] = $829; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $282 = 8; + i64toi32_i32$2 = ($6 + 20 | 0) + $282 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $842 = i64toi32_i32$1; + i64toi32_i32$1 = $280 + $282 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $842; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 4 | 0 | 0, $6 + 52 | 0 | 0, $6 + 36 | 0 | 0); + $297 = HEAP32[($6 + 272 | 0) >> 2] | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 4 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 8 | 0) >> 2] | 0; + $863 = i64toi32_i32$0; + i64toi32_i32$0 = $297; + HEAP32[i64toi32_i32$0 >> 2] = $863; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $299 = 8; + i64toi32_i32$2 = ($6 + 4 | 0) + $299 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $876 = i64toi32_i32$1; + i64toi32_i32$1 = $297 + $299 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $876; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $6 + 288 | 0; + return; + } + + function btTriangleMeshShape__getLocalAabbMin_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 24 | 0 | 0; + } + + function btTriangleMeshShape__getLocalAabbMax_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 40 | 0 | 0; + } + + function btScaledBvhTriangleMeshShape__setLocalScaling_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, $8 = 0, $10 = 0, $32 = 0, $42 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $8 = (HEAP32[($4 + 12 | 0) >> 2] | 0) + 24 | 0; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $32 = i64toi32_i32$0; + i64toi32_i32$0 = $8; + HEAP32[i64toi32_i32$0 >> 2] = $32; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $10 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $10 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $42 = i64toi32_i32$1; + i64toi32_i32$1 = $8 + $10 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $42; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function btScaledBvhTriangleMeshShape__getLocalScaling_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 24 | 0 | 0; + } + + function btScaledBvhTriangleMeshShape__calculateLocalInertia_28float_2c_20btVector3__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAPF32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + return; + } + + function btScaledBvhTriangleMeshShape__getName_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 84381 | 0; + } + + function btScaledBvhTriangleMeshShape__calculateSerializeBufferSize_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 76 | 0; + } + + function btScaledBvhTriangleMeshShape__serialize_28void__2c_20btSerializer__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $8 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + $8 = HEAP32[($6 + 40 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($8, HEAP32[$5 >> 2] | 0, HEAP32[($5 + 4 | 0) >> 2] | 0) | 0; + HEAP32[((HEAP32[$5 >> 2] | 0) + 4 | 0) >> 2] = 22; + btVector3__serializeFloat_28btVector3FloatData__29_20const($6 + 24 | 0 | 0, (HEAP32[$5 >> 2] | 0) + 60 | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return 83525 | 0; + } + + function btScaledTriangleCallback___btScaledTriangleCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btScaledTriangleCallback___btScaledTriangleCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btScaledTriangleCallback__processTriangle_28btVector3__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $7 = 0, $10 = 0, $13 = 0, $14 = 0, $16 = 0, $30 = 0, $32 = 0, $50 = 0, $52 = 0, $68 = 0, $70 = 0, $74 = 0, $12 = 0, $143 = 0, $156 = 0, $182 = 0, $195 = 0, $218 = 0, $228 = 0; + $6 = __stack_pointer - 112 | 0; + __stack_pointer = $6; + HEAP32[($6 + 108 | 0) >> 2] = $0; + HEAP32[($6 + 104 | 0) >> 2] = $1; + HEAP32[($6 + 100 | 0) >> 2] = $2; + HEAP32[($6 + 96 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 108 | 0) >> 2] | 0; + $10 = $6 + 48 | 0; + $12 = $10 + 48 | 0; + $13 = $10; + label$1 : while (1) { + $14 = $13; + btVector3__btVector3_28_29($14 | 0) | 0; + $16 = $14 + 16 | 0; + $13 = $16; + if (!(($16 | 0) == ($12 | 0) & 1 | 0)) { + continue label$1 + } + break label$1; + }; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($6 + 32 | 0 | 0, HEAP32[($6 + 104 | 0) >> 2] | 0 | 0, $7 + 8 | 0 | 0); + $30 = $6 + 48 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 32 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 36 | 0) >> 2] | 0; + $143 = i64toi32_i32$0; + i64toi32_i32$0 = $30; + HEAP32[i64toi32_i32$0 >> 2] = $143; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $32 = 8; + i64toi32_i32$2 = ($6 + 32 | 0) + $32 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $156 = i64toi32_i32$1; + i64toi32_i32$1 = $30 + $32 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $156; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($6 + 16 | 0 | 0, (HEAP32[($6 + 104 | 0) >> 2] | 0) + 16 | 0 | 0, $7 + 8 | 0 | 0); + $50 = ($6 + 48 | 0) + 16 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 16 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 20 | 0) >> 2] | 0; + $182 = i64toi32_i32$0; + i64toi32_i32$0 = $50; + HEAP32[i64toi32_i32$0 >> 2] = $182; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $52 = 8; + i64toi32_i32$2 = ($6 + 16 | 0) + $52 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $195 = i64toi32_i32$1; + i64toi32_i32$1 = $50 + $52 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $195; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($6 | 0, (HEAP32[($6 + 104 | 0) >> 2] | 0) + 32 | 0 | 0, $7 + 8 | 0 | 0); + $68 = ($6 + 48 | 0) + 32 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[$6 >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 4 | 0) >> 2] | 0; + $218 = i64toi32_i32$0; + i64toi32_i32$0 = $68; + HEAP32[i64toi32_i32$0 >> 2] = $218; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $70 = 8; + i64toi32_i32$2 = $6 + $70 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $228 = i64toi32_i32$1; + i64toi32_i32$1 = $68 + $70 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $228; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $74 = HEAP32[($7 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$74 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($74, $6 + 48 | 0, HEAP32[($6 + 100 | 0) >> 2] | 0, HEAP32[($6 + 96 | 0) >> 2] | 0); + __stack_pointer = $6 + 112 | 0; + return; + } + + function _GLOBAL__sub_I_btScaledBvhTriangleMeshShape_cpp() { + __cxx_global_var_init_47(); + return; + } + + function __cxx_global_var_init_48() { + btInfMaskConverter__btInfMaskConverter_28int_29(114280 | 0, 2139095040 | 0) | 0; + return; + } + + function btSphereShape__localGetSupportingVertexWithoutMargin_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $1; + HEAP32[($5 + 24 | 0) >> 2] = $2; + HEAPF32[($5 + 20 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $5 + 20 | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0) | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btSphereShape__batchedUnitVectorGetSupportingVertexWithoutMargin_28btVector3_20const__2c_20btVector3__2c_20int_29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $19 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + HEAP32[($6 + 12 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + $19 = (HEAP32[($6 + 20 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 4 | 0) | 0; + HEAPF32[($6 + 8 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 4 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[$6 >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($19 | 0, $6 + 8 | 0 | 0, $6 + 4 | 0 | 0, $6 | 0); + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $6 + 32 | 0; + return; + } + + function btSphereShape__localGetSupportingVertex_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $6 = 0, $14 = 0, $20 = 0, $21 = 0, $101 = 0, $114 = 0, $129 = 0, $133 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 80 | 0; + __stack_pointer = $5; + HEAP32[($5 + 76 | 0) >> 2] = $1; + HEAP32[($5 + 72 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 76 | 0) >> 2] | 0; + btVector3__btVector3_28_29($0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 68 | 0) >> 2] | 0 | 0]($5 + 56 | 0, $6, HEAP32[($5 + 72 | 0) >> 2] | 0); + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 56 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 60 | 0) >> 2] | 0; + $101 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $101; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $14 = 8; + i64toi32_i32$2 = ($5 + 56 | 0) + $14 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $114 = i64toi32_i32$1; + i64toi32_i32$1 = $0 + $14 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $114; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $20 = HEAP32[($5 + 72 | 0) >> 2] | 0; + $21 = 8; + i64toi32_i32$2 = $20 + $21 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $129 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 40 | 0) + $21 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $129; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $20; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $133 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 40 | 0) >> 2] = $133; + HEAP32[($5 + 44 | 0) >> 2] = i64toi32_i32$0; + label$1 : { + if (!(Math_fround(btVector3__length2_28_29_20const($5 + 40 | 0 | 0)) < Math_fround(1.4210854715202004e-14) & 1 | 0)) { + break label$1 + } + HEAPF32[($5 + 36 | 0) >> 2] = Math_fround(-1.0); + HEAPF32[($5 + 32 | 0) >> 2] = Math_fround(-1.0); + HEAPF32[($5 + 28 | 0) >> 2] = Math_fround(-1.0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 40 | 0 | 0, $5 + 36 | 0 | 0, $5 + 32 | 0 | 0, $5 + 28 | 0 | 0); + } + btVector3__normalize_28_29($5 + 40 | 0 | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($6))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + operator__28float_20const__2c_20btVector3_20const__29($5 + 12 | 0 | 0, $5 + 8 | 0 | 0, $5 + 40 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($0 | 0, $5 + 12 | 0 | 0) | 0; + __stack_pointer = $5 + 80 | 0; + return; + } + + function btSphereShape__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $7 = 0, $38 = 0, $40 = 0, $51 = 0, $53 = 0, $146 = 0, $159 = 0, $175 = 0, $185 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 80 | 0; + __stack_pointer = $6; + HEAP32[($6 + 76 | 0) >> 2] = $0; + HEAP32[($6 + 72 | 0) >> 2] = $1; + HEAP32[($6 + 68 | 0) >> 2] = $2; + HEAP32[($6 + 64 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 76 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btTransform__getOrigin_28_29_20const(HEAP32[($6 + 72 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 60 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($7))), HEAPF32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($7))), HEAPF32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($7))), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 44 | 0 | 0, $6 + 40 | 0 | 0, $6 + 36 | 0 | 0, $6 + 32 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 16 | 0 | 0, HEAP32[($6 + 60 | 0) >> 2] | 0 | 0, $6 + 44 | 0 | 0); + $38 = HEAP32[($6 + 68 | 0) >> 2] | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 16 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 20 | 0) >> 2] | 0; + $146 = i64toi32_i32$0; + i64toi32_i32$0 = $38; + HEAP32[i64toi32_i32$0 >> 2] = $146; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $40 = 8; + i64toi32_i32$2 = ($6 + 16 | 0) + $40 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $159 = i64toi32_i32$1; + i64toi32_i32$1 = $38 + $40 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $159; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 | 0, HEAP32[($6 + 60 | 0) >> 2] | 0 | 0, $6 + 44 | 0 | 0); + $51 = HEAP32[($6 + 64 | 0) >> 2] | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[$6 >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 4 | 0) >> 2] | 0; + $175 = i64toi32_i32$0; + i64toi32_i32$0 = $51; + HEAP32[i64toi32_i32$0 >> 2] = $175; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $53 = 8; + i64toi32_i32$2 = $6 + $53 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $185 = i64toi32_i32$1; + i64toi32_i32$1 = $51 + $53 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $185; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $6 + 80 | 0; + return; + } + + function btSphereShape__calculateLocalInertia_28float_2c_20btVector3__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = $2 | 0; + var $5 = 0, $6 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAPF32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(Math_fround(.4000000059604645) * Math_fround(HEAPF32[($5 + 8 | 0) >> 2])) * Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($6))) * Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($6)))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0, $5 | 0, $5 | 0, $5 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function btSphereShape___btSphereShape_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btSphereShape___btSphereShape_28_29($4 | 0) | 0; + btSphereShape__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btSphereShape__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btSphereShape__getName_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 84407 | 0; + } + + function btSphereShape__getMargin_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $5 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = Math_fround(btSphereShape__getRadius_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0)); + __stack_pointer = $3 + 16 | 0; + return Math_fround($5); + } + + function _GLOBAL__sub_I_btSphereShape_cpp() { + __cxx_global_var_init_48(); + return; + } + + function __cxx_global_var_init_49() { + btInfMaskConverter__btInfMaskConverter_28int_29(114284 | 0, 2139095040 | 0) | 0; + return; + } + + function btStaticPlaneShape__btStaticPlaneShape_28btVector3_20const__2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAPF32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + btConcaveShape__btConcaveShape_28_29($6 | 0) | 0; + HEAP32[$6 >> 2] = 100108 + 8 | 0; + btVector3__btVector3_28_29($6 + 24 | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 40 | 0 | 0) | 0; + btVector3__normalized_28_29_20const($6 + 56 | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + HEAPF32[($6 + 72 | 0) >> 2] = Math_fround(HEAPF32[($5 + 20 | 0) >> 2]); + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($5 + 8 | 0) >> 2] = Math_fround(1.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 76 | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0, $5 + 8 | 0 | 0) | 0; + HEAP32[($6 + 4 | 0) >> 2] = 28; + __stack_pointer = $5 + 32 | 0; + return $6 | 0; + } + + function btStaticPlaneShape___btStaticPlaneShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConcaveShape___btConcaveShape_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btStaticPlaneShape___btStaticPlaneShape_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[951 | 0]($4) | 0; + btStaticPlaneShape__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btStaticPlaneShape__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btStaticPlaneShape__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $20 = 0; + $6 = __stack_pointer - 48 | 0; + __stack_pointer = $6; + HEAP32[($6 + 44 | 0) >> 2] = $0; + HEAP32[($6 + 40 | 0) >> 2] = $1; + HEAP32[($6 + 36 | 0) >> 2] = $2; + HEAP32[($6 + 32 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 36 | 0) >> 2] | 0; + HEAPF32[($6 + 28 | 0) >> 2] = Math_fround(-999999984306749440.0); + HEAPF32[($6 + 24 | 0) >> 2] = Math_fround(-999999984306749440.0); + HEAPF32[($6 + 20 | 0) >> 2] = Math_fround(-999999984306749440.0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($7 | 0, $6 + 28 | 0 | 0, $6 + 24 | 0 | 0, $6 + 20 | 0 | 0); + $20 = HEAP32[($6 + 32 | 0) >> 2] | 0; + HEAPF32[($6 + 16 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAPF32[($6 + 12 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAPF32[($6 + 8 | 0) >> 2] = Math_fround(999999984306749440.0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($20 | 0, $6 + 16 | 0 | 0, $6 + 12 | 0 | 0, $6 + 8 | 0 | 0); + __stack_pointer = $6 + 48 | 0; + return; + } + + function btStaticPlaneShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $7 = 0, $89 = 0, $92 = 0, $93 = 0, $95 = 0, $139 = 0, $141 = 0, $187 = 0, $189 = 0, $235 = 0, $237 = 0, $243 = 0, $249 = 0, $288 = 0, $290 = 0, $336 = 0, $338 = 0, $380 = 0, $382 = 0, $388 = 0, $91 = 0, $653 = 0, $666 = 0, $737 = 0, $750 = 0, $821 = 0, $834 = 0, $917 = 0, $930 = 0, $1001 = 0, $1014 = 0, $1079 = 0, $1092 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 624 | 0; + __stack_pointer = $6; + HEAP32[($6 + 620 | 0) >> 2] = $0; + HEAP32[($6 + 616 | 0) >> 2] = $1; + HEAP32[($6 + 612 | 0) >> 2] = $2; + HEAP32[($6 + 608 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 620 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 576 | 0 | 0, HEAP32[($6 + 608 | 0) >> 2] | 0 | 0, HEAP32[($6 + 612 | 0) >> 2] | 0 | 0); + HEAPF32[($6 + 572 | 0) >> 2] = Math_fround(.5); + operator__28btVector3_20const__2c_20float_20const__29($6 + 592 | 0 | 0, $6 + 576 | 0 | 0, $6 + 572 | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__length_28_29_20const($6 + 592 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 568 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 536 | 0 | 0, HEAP32[($6 + 608 | 0) >> 2] | 0 | 0, HEAP32[($6 + 612 | 0) >> 2] | 0 | 0); + HEAPF32[($6 + 532 | 0) >> 2] = Math_fround(.5); + operator__28btVector3_20const__2c_20float_20const__29($6 + 552 | 0 | 0, $6 + 536 | 0 | 0, $6 + 532 | 0 | 0); + btVector3__btVector3_28_29($6 + 516 | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 500 | 0 | 0) | 0; + void_20btPlaneSpace1_btVector3__28btVector3_20const__2c_20btVector3__2c_20btVector3__29($7 + 56 | 0 | 0, $6 + 516 | 0 | 0, $6 + 500 | 0 | 0); + btVector3__btVector3_28_29($6 + 484 | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 468 | 0 | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(btVector3__dot_28btVector3_20const__29_20const($7 + 56 | 0 | 0, $6 + 552 | 0 | 0)) - Math_fround(HEAPF32[($7 + 72 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 432 | 0) >> 2] = wasm2js_f32$0; + operator__28float_20const__2c_20btVector3_20const__29($6 + 436 | 0 | 0, $6 + 432 | 0 | 0, $7 + 56 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 452 | 0 | 0, $6 + 552 | 0 | 0, $6 + 436 | 0 | 0); + $89 = $6 + 384 | 0; + $91 = $89 + 48 | 0; + $92 = $89; + label$1 : while (1) { + $93 = $92; + btVector3__btVector3_28_29($93 | 0) | 0; + $95 = $93 + 16 | 0; + $92 = $95; + if (!(($95 | 0) == ($91 | 0) & 1 | 0)) { + continue label$1 + } + break label$1; + }; + operator__28btVector3_20const__2c_20float_20const__29($6 + 336 | 0 | 0, $6 + 516 | 0 | 0, $6 + 568 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 352 | 0 | 0, $6 + 452 | 0 | 0, $6 + 336 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($6 + 320 | 0 | 0, $6 + 500 | 0 | 0, $6 + 568 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 368 | 0 | 0, $6 + 352 | 0 | 0, $6 + 320 | 0 | 0); + $139 = $6 + 384 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 368 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 372 | 0) >> 2] | 0; + $653 = i64toi32_i32$0; + i64toi32_i32$0 = $139; + HEAP32[i64toi32_i32$0 >> 2] = $653; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $141 = 8; + i64toi32_i32$2 = ($6 + 368 | 0) + $141 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $666 = i64toi32_i32$1; + i64toi32_i32$1 = $139 + $141 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $666; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20float_20const__29($6 + 272 | 0 | 0, $6 + 516 | 0 | 0, $6 + 568 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 288 | 0 | 0, $6 + 452 | 0 | 0, $6 + 272 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($6 + 256 | 0 | 0, $6 + 500 | 0 | 0, $6 + 568 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 304 | 0 | 0, $6 + 288 | 0 | 0, $6 + 256 | 0 | 0); + $187 = ($6 + 384 | 0) + 16 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 304 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 308 | 0) >> 2] | 0; + $737 = i64toi32_i32$0; + i64toi32_i32$0 = $187; + HEAP32[i64toi32_i32$0 >> 2] = $737; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $189 = 8; + i64toi32_i32$2 = ($6 + 304 | 0) + $189 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $750 = i64toi32_i32$1; + i64toi32_i32$1 = $187 + $189 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $750; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20float_20const__29($6 + 208 | 0 | 0, $6 + 516 | 0 | 0, $6 + 568 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 224 | 0 | 0, $6 + 452 | 0 | 0, $6 + 208 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($6 + 192 | 0 | 0, $6 + 500 | 0 | 0, $6 + 568 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 240 | 0 | 0, $6 + 224 | 0 | 0, $6 + 192 | 0 | 0); + $235 = ($6 + 384 | 0) + 32 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 240 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 244 | 0) >> 2] | 0; + $821 = i64toi32_i32$0; + i64toi32_i32$0 = $235; + HEAP32[i64toi32_i32$0 >> 2] = $821; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $237 = 8; + i64toi32_i32$2 = ($6 + 240 | 0) + $237 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $834 = i64toi32_i32$1; + i64toi32_i32$1 = $235 + $237 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $834; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $243 = HEAP32[($6 + 616 | 0) >> 2] | 0; + $249 = 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$243 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($243, $6 + 384 | 0, $249, $249); + operator__28btVector3_20const__2c_20float_20const__29($6 + 144 | 0 | 0, $6 + 516 | 0 | 0, $6 + 568 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 160 | 0 | 0, $6 + 452 | 0 | 0, $6 + 144 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($6 + 128 | 0 | 0, $6 + 500 | 0 | 0, $6 + 568 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 176 | 0 | 0, $6 + 160 | 0 | 0, $6 + 128 | 0 | 0); + $288 = $6 + 384 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 176 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 180 | 0) >> 2] | 0; + $917 = i64toi32_i32$0; + i64toi32_i32$0 = $288; + HEAP32[i64toi32_i32$0 >> 2] = $917; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $290 = 8; + i64toi32_i32$2 = ($6 + 176 | 0) + $290 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $930 = i64toi32_i32$1; + i64toi32_i32$1 = $288 + $290 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $930; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20float_20const__29($6 + 80 | 0 | 0, $6 + 516 | 0 | 0, $6 + 568 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 96 | 0 | 0, $6 + 452 | 0 | 0, $6 + 80 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($6 + 64 | 0 | 0, $6 + 500 | 0 | 0, $6 + 568 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 112 | 0 | 0, $6 + 96 | 0 | 0, $6 + 64 | 0 | 0); + $336 = ($6 + 384 | 0) + 16 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 112 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 116 | 0) >> 2] | 0; + $1001 = i64toi32_i32$0; + i64toi32_i32$0 = $336; + HEAP32[i64toi32_i32$0 >> 2] = $1001; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $338 = 8; + i64toi32_i32$2 = ($6 + 112 | 0) + $338 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1014 = i64toi32_i32$1; + i64toi32_i32$1 = $336 + $338 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1014; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20float_20const__29($6 + 16 | 0 | 0, $6 + 516 | 0 | 0, $6 + 568 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 32 | 0 | 0, $6 + 452 | 0 | 0, $6 + 16 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($6 | 0, $6 + 500 | 0 | 0, $6 + 568 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 48 | 0 | 0, $6 + 32 | 0 | 0, $6 | 0); + $380 = ($6 + 384 | 0) + 32 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 48 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 52 | 0) >> 2] | 0; + $1079 = i64toi32_i32$0; + i64toi32_i32$0 = $380; + HEAP32[i64toi32_i32$0 >> 2] = $1079; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $382 = 8; + i64toi32_i32$2 = ($6 + 48 | 0) + $382 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1092 = i64toi32_i32$1; + i64toi32_i32$1 = $380 + $382 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1092; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $388 = HEAP32[($6 + 616 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$388 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($388, $6 + 384 | 0, 0, 1); + __stack_pointer = $6 + 624 | 0; + return; + } + + function btStaticPlaneShape__calculateLocalInertia_28float_2c_20btVector3__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAPF32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 20 | 0) >> 2] | 0; + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 8 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($6 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0, $5 + 8 | 0 | 0); + __stack_pointer = $5 + 32 | 0; + return; + } + + function btStaticPlaneShape__setLocalScaling_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, $8 = 0, $10 = 0, $32 = 0, $42 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $8 = (HEAP32[($4 + 12 | 0) >> 2] | 0) + 76 | 0; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $32 = i64toi32_i32$0; + i64toi32_i32$0 = $8; + HEAP32[i64toi32_i32$0 >> 2] = $32; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $10 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $10 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $42 = i64toi32_i32$1; + i64toi32_i32$1 = $8 + $10 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $42; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function btStaticPlaneShape__getLocalScaling_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 76 | 0 | 0; + } + + function btStaticPlaneShape__getName_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 84414 | 0; + } + + function btStaticPlaneShape__calculateSerializeBufferSize_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 52 | 0; + } + + function btStaticPlaneShape__serialize_28void__2c_20btSerializer__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + btCollisionShape__serialize_28void__2c_20btSerializer__29_20const($6 | 0, HEAP32[$5 >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0; + btVector3__serializeFloat_28btVector3FloatData__29_20const($6 + 76 | 0 | 0, (HEAP32[$5 >> 2] | 0) + 12 | 0 | 0); + btVector3__serializeFloat_28btVector3FloatData__29_20const($6 + 56 | 0 | 0, (HEAP32[$5 >> 2] | 0) + 28 | 0 | 0); + HEAPF32[((HEAP32[$5 >> 2] | 0) + 44 | 0) >> 2] = Math_fround(HEAPF32[($6 + 72 | 0) >> 2]); + HEAP8[((HEAP32[$5 >> 2] | 0) + 48 | 0) >> 0] = 0; + HEAP8[((HEAP32[$5 >> 2] | 0) + 49 | 0) >> 0] = 0; + HEAP8[((HEAP32[$5 >> 2] | 0) + 50 | 0) >> 0] = 0; + HEAP8[((HEAP32[$5 >> 2] | 0) + 51 | 0) >> 0] = 0; + __stack_pointer = $5 + 16 | 0; + return 83571 | 0; + } + + function _GLOBAL__sub_I_btStaticPlaneShape_cpp() { + __cxx_global_var_init_49(); + return; + } + + function __cxx_global_var_init_50() { + btInfMaskConverter__btInfMaskConverter_28int_29(114288 | 0, 2139095040 | 0) | 0; + return; + } + + function btBU_Simplex1to4__btBU_Simplex1to4_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $10 = 0, $13 = 0, $14 = 0, $16 = 0, $12 = 0, $23 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $4; + btPolyhedralConvexAabbCachingShape__btPolyhedralConvexAabbCachingShape_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 100220 + 8 | 0; + HEAP32[($4 + 100 | 0) >> 2] = 0; + $10 = $4 + 104 | 0; + $12 = $10 + 64 | 0; + $13 = $10; + label$1 : while (1) { + $14 = $13; + btVector3__btVector3_28_29($14 | 0) | 0; + $16 = $14 + 16 | 0; + $13 = $16; + if (!(($16 | 0) == ($12 | 0) & 1 | 0)) { + continue label$1 + } + break label$1; + }; + HEAP32[($4 + 4 | 0) >> 2] = 2; + $23 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $23 | 0; + } + + function btBU_Simplex1to4__addVertex_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5 = 0, $9 = 0, $14 = 0, $16 = 0, $6 = 0, $54 = 0, $64 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + $6 = HEAP32[($4 + 8 | 0) >> 2] | 0; + $9 = HEAP32[($5 + 100 | 0) >> 2] | 0; + HEAP32[($5 + 100 | 0) >> 2] = $9 + 1 | 0; + $14 = ($5 + 104 | 0) + ($9 << 4 | 0) | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $54 = i64toi32_i32$0; + i64toi32_i32$0 = $14; + HEAP32[i64toi32_i32$0 >> 2] = $54; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $16 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $16 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $64 = i64toi32_i32$1; + i64toi32_i32$1 = $14 + $16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $64; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btPolyhedralConvexAabbCachingShape__recalcLocalAabb_28_29($5 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btBU_Simplex1to4__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + btPolyhedralConvexAabbCachingShape__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const(HEAP32[($6 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6 >> 2] | 0 | 0); + __stack_pointer = $6 + 16 | 0; + return; + } + + function btBU_Simplex1to4__getNumVertices_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 100 | 0) >> 2] | 0 | 0; + } + + function btBU_Simplex1to4__getNumEdges_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $5 = HEAP32[((HEAP32[($3 + 8 | 0) >> 2] | 0) + 100 | 0) >> 2] | 0; + label$1 : { + label$2 : { + switch ($5 | 0) { + case 0: + HEAP32[($3 + 12 | 0) >> 2] = 0; + break label$1; + case 1: + HEAP32[($3 + 12 | 0) >> 2] = 0; + break label$1; + case 2: + HEAP32[($3 + 12 | 0) >> 2] = 1; + break label$1; + case 3: + HEAP32[($3 + 12 | 0) >> 2] = 3; + break label$1; + case 4: + HEAP32[($3 + 12 | 0) >> 2] = 6; + break label$1; + default: + break label$2; + }; + } + HEAP32[($3 + 12 | 0) >> 2] = 0; + } + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btBU_Simplex1to4__getEdge_28int_2c_20btVector3__2c_20btVector3__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0, $7 = 0, $10 = 0, $14 = 0, $16 = 0, $24 = 0, $26 = 0, $30 = 0, $34 = 0, $36 = 0, $44 = 0, $46 = 0, $54 = 0, $56 = 0, $64 = 0, $66 = 0, $74 = 0, $76 = 0, $82 = 0, $84 = 0, $88 = 0, $92 = 0, $94 = 0, $102 = 0, $104 = 0, $112 = 0, $114 = 0, $122 = 0, $124 = 0, $132 = 0, $134 = 0, $140 = 0, $142 = 0, $148 = 0, $150 = 0, $158 = 0, $160 = 0, $168 = 0, $170 = 0, $178 = 0, $180 = 0, $188 = 0, $190 = 0, $198 = 0, $200 = 0, $235 = 0, $245 = 0, $257 = 0, $267 = 0, $282 = 0, $292 = 0, $304 = 0, $314 = 0, $326 = 0, $336 = 0, $348 = 0, $358 = 0, $370 = 0, $380 = 0, $389 = 0, $399 = 0, $414 = 0, $424 = 0, $436 = 0, $446 = 0, $458 = 0, $468 = 0, $480 = 0, $490 = 0, $502 = 0, $512 = 0, $521 = 0, $531 = 0, $540 = 0, $550 = 0, $562 = 0, $572 = 0, $584 = 0, $594 = 0, $606 = 0, $616 = 0, $628 = 0, $638 = 0, $650 = 0, $660 = 0; + $6 = __stack_pointer - 16 | 0; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + $10 = (HEAP32[($7 + 100 | 0) >> 2] | 0) + -2 | 0; + label$1 : { + label$2 : { + switch ($10 | 0) { + case 0: + $14 = HEAP32[($6 + 4 | 0) >> 2] | 0; + i64toi32_i32$2 = $7 + 104 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $235 = i64toi32_i32$0; + i64toi32_i32$0 = $14; + HEAP32[i64toi32_i32$0 >> 2] = $235; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $16 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $16 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $245 = i64toi32_i32$1; + i64toi32_i32$1 = $14 + $16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $245; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $24 = HEAP32[$6 >> 2] | 0; + i64toi32_i32$2 = ($7 + 104 | 0) + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $257 = i64toi32_i32$0; + i64toi32_i32$0 = $24; + HEAP32[i64toi32_i32$0 >> 2] = $257; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $26 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $26 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $267 = i64toi32_i32$1; + i64toi32_i32$1 = $24 + $26 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $267; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$1; + case 1: + $30 = HEAP32[($6 + 8 | 0) >> 2] | 0; + label$5 : { + label$6 : { + switch ($30 | 0) { + case 0: + $34 = HEAP32[($6 + 4 | 0) >> 2] | 0; + i64toi32_i32$2 = $7 + 104 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $282 = i64toi32_i32$0; + i64toi32_i32$0 = $34; + HEAP32[i64toi32_i32$0 >> 2] = $282; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $36 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $36 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $292 = i64toi32_i32$1; + i64toi32_i32$1 = $34 + $36 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $292; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $44 = HEAP32[$6 >> 2] | 0; + i64toi32_i32$2 = ($7 + 104 | 0) + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $304 = i64toi32_i32$0; + i64toi32_i32$0 = $44; + HEAP32[i64toi32_i32$0 >> 2] = $304; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $46 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $46 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $314 = i64toi32_i32$1; + i64toi32_i32$1 = $44 + $46 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $314; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$5; + case 1: + $54 = HEAP32[($6 + 4 | 0) >> 2] | 0; + i64toi32_i32$2 = ($7 + 104 | 0) + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $326 = i64toi32_i32$0; + i64toi32_i32$0 = $54; + HEAP32[i64toi32_i32$0 >> 2] = $326; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $56 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $56 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $336 = i64toi32_i32$1; + i64toi32_i32$1 = $54 + $56 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $336; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $64 = HEAP32[$6 >> 2] | 0; + i64toi32_i32$2 = ($7 + 104 | 0) + 32 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $348 = i64toi32_i32$0; + i64toi32_i32$0 = $64; + HEAP32[i64toi32_i32$0 >> 2] = $348; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $66 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $66 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $358 = i64toi32_i32$1; + i64toi32_i32$1 = $64 + $66 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $358; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$5; + case 2: + break label$6; + default: + break label$5; + }; + } + $74 = HEAP32[($6 + 4 | 0) >> 2] | 0; + i64toi32_i32$2 = ($7 + 104 | 0) + 32 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $370 = i64toi32_i32$0; + i64toi32_i32$0 = $74; + HEAP32[i64toi32_i32$0 >> 2] = $370; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $76 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $76 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $380 = i64toi32_i32$1; + i64toi32_i32$1 = $74 + $76 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $380; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $82 = HEAP32[$6 >> 2] | 0; + i64toi32_i32$2 = $7 + 104 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $389 = i64toi32_i32$0; + i64toi32_i32$0 = $82; + HEAP32[i64toi32_i32$0 >> 2] = $389; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $84 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $84 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $399 = i64toi32_i32$1; + i64toi32_i32$1 = $82 + $84 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $399; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + break label$1; + case 2: + break label$2; + default: + break label$1; + }; + } + $88 = HEAP32[($6 + 8 | 0) >> 2] | 0; + label$9 : { + label$10 : { + switch ($88 | 0) { + case 0: + $92 = HEAP32[($6 + 4 | 0) >> 2] | 0; + i64toi32_i32$2 = $7 + 104 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $414 = i64toi32_i32$0; + i64toi32_i32$0 = $92; + HEAP32[i64toi32_i32$0 >> 2] = $414; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $94 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $94 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $424 = i64toi32_i32$1; + i64toi32_i32$1 = $92 + $94 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $424; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $102 = HEAP32[$6 >> 2] | 0; + i64toi32_i32$2 = ($7 + 104 | 0) + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $436 = i64toi32_i32$0; + i64toi32_i32$0 = $102; + HEAP32[i64toi32_i32$0 >> 2] = $436; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $104 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $104 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $446 = i64toi32_i32$1; + i64toi32_i32$1 = $102 + $104 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $446; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$9; + case 1: + $112 = HEAP32[($6 + 4 | 0) >> 2] | 0; + i64toi32_i32$2 = ($7 + 104 | 0) + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $458 = i64toi32_i32$0; + i64toi32_i32$0 = $112; + HEAP32[i64toi32_i32$0 >> 2] = $458; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $114 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $114 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $468 = i64toi32_i32$1; + i64toi32_i32$1 = $112 + $114 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $468; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $122 = HEAP32[$6 >> 2] | 0; + i64toi32_i32$2 = ($7 + 104 | 0) + 32 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $480 = i64toi32_i32$0; + i64toi32_i32$0 = $122; + HEAP32[i64toi32_i32$0 >> 2] = $480; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $124 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $124 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $490 = i64toi32_i32$1; + i64toi32_i32$1 = $122 + $124 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $490; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$9; + case 2: + $132 = HEAP32[($6 + 4 | 0) >> 2] | 0; + i64toi32_i32$2 = ($7 + 104 | 0) + 32 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $502 = i64toi32_i32$0; + i64toi32_i32$0 = $132; + HEAP32[i64toi32_i32$0 >> 2] = $502; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $134 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $134 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $512 = i64toi32_i32$1; + i64toi32_i32$1 = $132 + $134 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $512; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $140 = HEAP32[$6 >> 2] | 0; + i64toi32_i32$2 = $7 + 104 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $521 = i64toi32_i32$0; + i64toi32_i32$0 = $140; + HEAP32[i64toi32_i32$0 >> 2] = $521; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $142 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $142 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $531 = i64toi32_i32$1; + i64toi32_i32$1 = $140 + $142 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $531; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$9; + case 3: + $148 = HEAP32[($6 + 4 | 0) >> 2] | 0; + i64toi32_i32$2 = $7 + 104 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $540 = i64toi32_i32$0; + i64toi32_i32$0 = $148; + HEAP32[i64toi32_i32$0 >> 2] = $540; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $150 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $150 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $550 = i64toi32_i32$1; + i64toi32_i32$1 = $148 + $150 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $550; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $158 = HEAP32[$6 >> 2] | 0; + i64toi32_i32$2 = ($7 + 104 | 0) + 48 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $562 = i64toi32_i32$0; + i64toi32_i32$0 = $158; + HEAP32[i64toi32_i32$0 >> 2] = $562; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $160 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $160 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $572 = i64toi32_i32$1; + i64toi32_i32$1 = $158 + $160 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $572; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$9; + case 4: + $168 = HEAP32[($6 + 4 | 0) >> 2] | 0; + i64toi32_i32$2 = ($7 + 104 | 0) + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $584 = i64toi32_i32$0; + i64toi32_i32$0 = $168; + HEAP32[i64toi32_i32$0 >> 2] = $584; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $170 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $170 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $594 = i64toi32_i32$1; + i64toi32_i32$1 = $168 + $170 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $594; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $178 = HEAP32[$6 >> 2] | 0; + i64toi32_i32$2 = ($7 + 104 | 0) + 48 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $606 = i64toi32_i32$0; + i64toi32_i32$0 = $178; + HEAP32[i64toi32_i32$0 >> 2] = $606; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $180 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $180 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $616 = i64toi32_i32$1; + i64toi32_i32$1 = $178 + $180 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $616; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$9; + case 5: + break label$10; + default: + break label$9; + }; + } + $188 = HEAP32[($6 + 4 | 0) >> 2] | 0; + i64toi32_i32$2 = ($7 + 104 | 0) + 32 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $628 = i64toi32_i32$0; + i64toi32_i32$0 = $188; + HEAP32[i64toi32_i32$0 >> 2] = $628; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $190 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $190 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $638 = i64toi32_i32$1; + i64toi32_i32$1 = $188 + $190 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $638; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $198 = HEAP32[$6 >> 2] | 0; + i64toi32_i32$2 = ($7 + 104 | 0) + 48 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $650 = i64toi32_i32$0; + i64toi32_i32$0 = $198; + HEAP32[i64toi32_i32$0 >> 2] = $650; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $200 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $200 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $660 = i64toi32_i32$1; + i64toi32_i32$1 = $198 + $200 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $660; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + } + return; + } + + function btBU_Simplex1to4__getVertex_28int_2c_20btVector3__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $13 = 0, $15 = 0, $47 = 0, $57 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $13 = HEAP32[($5 + 4 | 0) >> 2] | 0; + i64toi32_i32$2 = ((HEAP32[($5 + 12 | 0) >> 2] | 0) + 104 | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $47 = i64toi32_i32$0; + i64toi32_i32$0 = $13; + HEAP32[i64toi32_i32$0 >> 2] = $47; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $15 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $15 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $57 = i64toi32_i32$1; + i64toi32_i32$1 = $13 + $15 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $57; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function btBU_Simplex1to4__getNumPlanes_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $5 = HEAP32[((HEAP32[($3 + 8 | 0) >> 2] | 0) + 100 | 0) >> 2] | 0; + label$1 : { + label$2 : { + switch ($5 | 0) { + case 0: + HEAP32[($3 + 12 | 0) >> 2] = 0; + break label$1; + case 1: + HEAP32[($3 + 12 | 0) >> 2] = 0; + break label$1; + case 2: + HEAP32[($3 + 12 | 0) >> 2] = 0; + break label$1; + case 3: + HEAP32[($3 + 12 | 0) >> 2] = 2; + break label$1; + case 4: + HEAP32[($3 + 12 | 0) >> 2] = 4; + break label$1; + default: + break label$2; + }; + } + HEAP32[($3 + 12 | 0) >> 2] = 0; + } + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btBU_Simplex1to4__getPlane_28btVector3__2c_20btVector3__2c_20int_29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0; + $6 = __stack_pointer - 16 | 0; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + return; + } + + function btBU_Simplex1to4__getIndex_28int_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return 0 | 0; + } + + function btBU_Simplex1to4__isInside_28btVector3_20const__2c_20float_29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + return 0 & 1 | 0 | 0; + } + + function btBU_Simplex1to4___btBU_Simplex1to4_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btPolyhedralConvexAabbCachingShape___btPolyhedralConvexAabbCachingShape_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btBU_Simplex1to4___btBU_Simplex1to4_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btBU_Simplex1to4___btBU_Simplex1to4_28_29($4 | 0) | 0; + btBU_Simplex1to4__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btBU_Simplex1to4__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btBU_Simplex1to4__getName_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 85350 | 0; + } + + function _GLOBAL__sub_I_btTetrahedronShape_cpp() { + __cxx_global_var_init_50(); + return; + } + + function __cxx_global_var_init_51() { + btInfMaskConverter__btInfMaskConverter_28int_29(114292 | 0, 2139095040 | 0) | 0; + return; + } + + function btTriangleCallback___btTriangleCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btTriangleCallback___btTriangleCallback_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btInternalTriangleIndexCallback___btInternalTriangleIndexCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btInternalTriangleIndexCallback___btInternalTriangleIndexCallback_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function _GLOBAL__sub_I_btTriangleCallback_cpp() { + __cxx_global_var_init_51(); + return; + } + + function __cxx_global_var_init_52() { + btInfMaskConverter__btInfMaskConverter_28int_29(114296 | 0, 2139095040 | 0) | 0; + return; + } + + function btStridingMeshInterface___btStridingMeshInterface_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btStridingMeshInterface___btStridingMeshInterface_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btStridingMeshInterface__InternalProcessAllTriangles_28btInternalTriangleIndexCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $14 = 0, $17 = 0, $18 = 0, $20 = 0, $26 = 0, $27 = 0, $66 = 0, $70 = 0, $215 = 0, $375 = 0, $535 = 0, $566 = 0, $699 = 0, $841 = 0, $983 = 0, $16 = 0, $1097 = 0, $1101 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 384 | 0; + __stack_pointer = $6; + HEAP32[($6 + 380 | 0) >> 2] = $0; + HEAP32[($6 + 376 | 0) >> 2] = $1; + HEAP32[($6 + 372 | 0) >> 2] = $2; + HEAP32[($6 + 368 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 380 | 0) >> 2] | 0; + HEAP32[($6 + 364 | 0) >> 2] = 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($7) | 0), HEAP32[(wasm2js_i32$0 + 356 | 0) >> 2] = wasm2js_i32$1; + $14 = $6 + 272 | 0; + $16 = $14 + 48 | 0; + $17 = $14; + label$1 : while (1) { + $18 = $17; + btVector3__btVector3_28_29($18 | 0) | 0; + $20 = $18 + 16 | 0; + $17 = $20; + if (!(($20 | 0) == ($16 | 0) & 1 | 0)) { + continue label$1 + } + break label$1; + }; + $26 = btStridingMeshInterface__getScaling_28_29_20const($7 | 0) | 0; + $27 = 8; + i64toi32_i32$2 = $26 + $27 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1097 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 256 | 0) + $27 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1097; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $26; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1101 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 256 | 0) >> 2] = $1101; + HEAP32[($6 + 260 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6 + 360 | 0) >> 2] = 0; + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($6 + 360 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 356 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($7, $6 + 352 | 0, $6 + 328 | 0, $6 + 340 | 0, $6 + 332 | 0, $6 + 348 | 0, $6 + 344 | 0, $6 + 324 | 0, $6 + 336 | 0, HEAP32[($6 + 360 | 0) >> 2] | 0); + HEAP32[($6 + 364 | 0) >> 2] = (HEAP32[($6 + 364 | 0) >> 2] | 0) + Math_imul(HEAP32[($6 + 324 | 0) >> 2] | 0, 3) | 0; + $66 = HEAP32[($6 + 340 | 0) >> 2] | 0; + label$4 : { + label$5 : { + switch ($66 | 0) { + case 0: + $70 = (HEAP32[($6 + 336 | 0) >> 2] | 0) + -2 | 0; + label$8 : { + label$9 : { + switch ($70 | 0) { + case 0: + HEAP32[($6 + 320 | 0) >> 2] = 0; + label$13 : { + label$14 : while (1) { + if (!((HEAP32[($6 + 320 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 324 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$13 + } + HEAP32[($6 + 248 | 0) >> 2] = (HEAP32[($6 + 348 | 0) >> 2] | 0) + Math_imul(HEAP32[($6 + 320 | 0) >> 2] | 0, HEAP32[($6 + 344 | 0) >> 2] | 0) | 0; + HEAP32[($6 + 252 | 0) >> 2] = (HEAP32[($6 + 352 | 0) >> 2] | 0) + Math_imul(HEAP32[(HEAP32[($6 + 248 | 0) >> 2] | 0) >> 2] | 0, HEAP32[($6 + 332 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(HEAP32[($6 + 252 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getX_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 244 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((HEAP32[($6 + 252 | 0) >> 2] | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getY_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 240 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((HEAP32[($6 + 252 | 0) >> 2] | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 236 | 0) >> 2] = wasm2js_f32$0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 272 | 0 | 0, $6 + 244 | 0 | 0, $6 + 240 | 0 | 0, $6 + 236 | 0 | 0); + HEAP32[($6 + 252 | 0) >> 2] = (HEAP32[($6 + 352 | 0) >> 2] | 0) + Math_imul(HEAP32[((HEAP32[($6 + 248 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0, HEAP32[($6 + 332 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(HEAP32[($6 + 252 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getX_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 232 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((HEAP32[($6 + 252 | 0) >> 2] | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getY_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 228 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((HEAP32[($6 + 252 | 0) >> 2] | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 224 | 0) >> 2] = wasm2js_f32$0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29(($6 + 272 | 0) + 16 | 0 | 0, $6 + 232 | 0 | 0, $6 + 228 | 0 | 0, $6 + 224 | 0 | 0); + HEAP32[($6 + 252 | 0) >> 2] = (HEAP32[($6 + 352 | 0) >> 2] | 0) + Math_imul(HEAP32[((HEAP32[($6 + 248 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0, HEAP32[($6 + 332 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(HEAP32[($6 + 252 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getX_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 220 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((HEAP32[($6 + 252 | 0) >> 2] | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getY_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 216 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((HEAP32[($6 + 252 | 0) >> 2] | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 212 | 0) >> 2] = wasm2js_f32$0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29(($6 + 272 | 0) + 32 | 0 | 0, $6 + 220 | 0 | 0, $6 + 216 | 0 | 0, $6 + 212 | 0 | 0); + $215 = HEAP32[($6 + 376 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$215 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($215, $6 + 272 | 0, HEAP32[($6 + 360 | 0) >> 2] | 0, HEAP32[($6 + 320 | 0) >> 2] | 0); + HEAP32[($6 + 320 | 0) >> 2] = (HEAP32[($6 + 320 | 0) >> 2] | 0) + 1 | 0; + continue label$14; + }; + } + break label$8; + case 1: + HEAP32[($6 + 320 | 0) >> 2] = 0; + label$15 : { + label$16 : while (1) { + if (!((HEAP32[($6 + 320 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 324 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$15 + } + HEAP32[($6 + 208 | 0) >> 2] = (HEAP32[($6 + 348 | 0) >> 2] | 0) + Math_imul(HEAP32[($6 + 320 | 0) >> 2] | 0, HEAP32[($6 + 344 | 0) >> 2] | 0) | 0; + HEAP32[($6 + 252 | 0) >> 2] = (HEAP32[($6 + 352 | 0) >> 2] | 0) + Math_imul((HEAPU16[(HEAP32[($6 + 208 | 0) >> 2] | 0) >> 1] | 0) & 65535 | 0, HEAP32[($6 + 332 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(HEAP32[($6 + 252 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getX_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 204 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((HEAP32[($6 + 252 | 0) >> 2] | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getY_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 200 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((HEAP32[($6 + 252 | 0) >> 2] | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 196 | 0) >> 2] = wasm2js_f32$0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 272 | 0 | 0, $6 + 204 | 0 | 0, $6 + 200 | 0 | 0, $6 + 196 | 0 | 0); + HEAP32[($6 + 252 | 0) >> 2] = (HEAP32[($6 + 352 | 0) >> 2] | 0) + Math_imul((HEAPU16[((HEAP32[($6 + 208 | 0) >> 2] | 0) + 2 | 0) >> 1] | 0) & 65535 | 0, HEAP32[($6 + 332 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(HEAP32[($6 + 252 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getX_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 192 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((HEAP32[($6 + 252 | 0) >> 2] | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getY_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 188 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((HEAP32[($6 + 252 | 0) >> 2] | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 184 | 0) >> 2] = wasm2js_f32$0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29(($6 + 272 | 0) + 16 | 0 | 0, $6 + 192 | 0 | 0, $6 + 188 | 0 | 0, $6 + 184 | 0 | 0); + HEAP32[($6 + 252 | 0) >> 2] = (HEAP32[($6 + 352 | 0) >> 2] | 0) + Math_imul((HEAPU16[((HEAP32[($6 + 208 | 0) >> 2] | 0) + 4 | 0) >> 1] | 0) & 65535 | 0, HEAP32[($6 + 332 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(HEAP32[($6 + 252 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getX_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 180 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((HEAP32[($6 + 252 | 0) >> 2] | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getY_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 176 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((HEAP32[($6 + 252 | 0) >> 2] | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 172 | 0) >> 2] = wasm2js_f32$0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29(($6 + 272 | 0) + 32 | 0 | 0, $6 + 180 | 0 | 0, $6 + 176 | 0 | 0, $6 + 172 | 0 | 0); + $375 = HEAP32[($6 + 376 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$375 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($375, $6 + 272 | 0, HEAP32[($6 + 360 | 0) >> 2] | 0, HEAP32[($6 + 320 | 0) >> 2] | 0); + HEAP32[($6 + 320 | 0) >> 2] = (HEAP32[($6 + 320 | 0) >> 2] | 0) + 1 | 0; + continue label$16; + }; + } + break label$8; + case 3: + HEAP32[($6 + 320 | 0) >> 2] = 0; + label$17 : { + label$18 : while (1) { + if (!((HEAP32[($6 + 320 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 324 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$17 + } + HEAP32[($6 + 168 | 0) >> 2] = (HEAP32[($6 + 348 | 0) >> 2] | 0) + Math_imul(HEAP32[($6 + 320 | 0) >> 2] | 0, HEAP32[($6 + 344 | 0) >> 2] | 0) | 0; + HEAP32[($6 + 252 | 0) >> 2] = (HEAP32[($6 + 352 | 0) >> 2] | 0) + Math_imul((HEAPU8[(HEAP32[($6 + 168 | 0) >> 2] | 0) >> 0] | 0) & 255 | 0, HEAP32[($6 + 332 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(HEAP32[($6 + 252 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getX_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 164 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((HEAP32[($6 + 252 | 0) >> 2] | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getY_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 160 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((HEAP32[($6 + 252 | 0) >> 2] | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 156 | 0) >> 2] = wasm2js_f32$0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 272 | 0 | 0, $6 + 164 | 0 | 0, $6 + 160 | 0 | 0, $6 + 156 | 0 | 0); + HEAP32[($6 + 252 | 0) >> 2] = (HEAP32[($6 + 352 | 0) >> 2] | 0) + Math_imul((HEAPU8[((HEAP32[($6 + 168 | 0) >> 2] | 0) + 1 | 0) >> 0] | 0) & 255 | 0, HEAP32[($6 + 332 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(HEAP32[($6 + 252 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getX_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 152 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((HEAP32[($6 + 252 | 0) >> 2] | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getY_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 148 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((HEAP32[($6 + 252 | 0) >> 2] | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 144 | 0) >> 2] = wasm2js_f32$0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29(($6 + 272 | 0) + 16 | 0 | 0, $6 + 152 | 0 | 0, $6 + 148 | 0 | 0, $6 + 144 | 0 | 0); + HEAP32[($6 + 252 | 0) >> 2] = (HEAP32[($6 + 352 | 0) >> 2] | 0) + Math_imul((HEAPU8[((HEAP32[($6 + 168 | 0) >> 2] | 0) + 2 | 0) >> 0] | 0) & 255 | 0, HEAP32[($6 + 332 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(HEAP32[($6 + 252 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getX_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 140 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((HEAP32[($6 + 252 | 0) >> 2] | 0) + 4 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getY_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 136 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((HEAP32[($6 + 252 | 0) >> 2] | 0) + 8 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 132 | 0) >> 2] = wasm2js_f32$0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29(($6 + 272 | 0) + 32 | 0 | 0, $6 + 140 | 0 | 0, $6 + 136 | 0 | 0, $6 + 132 | 0 | 0); + $535 = HEAP32[($6 + 376 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$535 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($535, $6 + 272 | 0, HEAP32[($6 + 360 | 0) >> 2] | 0, HEAP32[($6 + 320 | 0) >> 2] | 0); + HEAP32[($6 + 320 | 0) >> 2] = (HEAP32[($6 + 320 | 0) >> 2] | 0) + 1 | 0; + continue label$18; + }; + } + break label$8; + default: + break label$9; + }; + } + label$19 : { + if ((HEAP32[($6 + 336 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0) { + break label$19 + } + if ((HEAP32[($6 + 336 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0) { + break label$19 + } + __assert_fail(86334 | 0, 75524 | 0, 107 | 0, 70188 | 0); + wasm2js_trap(); + } + } + break label$4; + case 1: + $566 = (HEAP32[($6 + 336 | 0) >> 2] | 0) + -2 | 0; + label$20 : { + label$21 : { + switch ($566 | 0) { + case 0: + HEAP32[($6 + 320 | 0) >> 2] = 0; + label$25 : { + label$26 : while (1) { + if (!((HEAP32[($6 + 320 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 324 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$25 + } + HEAP32[($6 + 124 | 0) >> 2] = (HEAP32[($6 + 348 | 0) >> 2] | 0) + Math_imul(HEAP32[($6 + 320 | 0) >> 2] | 0, HEAP32[($6 + 344 | 0) >> 2] | 0) | 0; + HEAP32[($6 + 128 | 0) >> 2] = (HEAP32[($6 + 352 | 0) >> 2] | 0) + Math_imul(HEAP32[(HEAP32[($6 + 124 | 0) >> 2] | 0) >> 2] | 0, HEAP32[($6 + 332 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[(HEAP32[($6 + 128 | 0) >> 2] | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getX_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 120 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[((HEAP32[($6 + 128 | 0) >> 2] | 0) + 8 | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getY_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 116 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[((HEAP32[($6 + 128 | 0) >> 2] | 0) + 16 | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 112 | 0) >> 2] = wasm2js_f32$0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 272 | 0 | 0, $6 + 120 | 0 | 0, $6 + 116 | 0 | 0, $6 + 112 | 0 | 0); + HEAP32[($6 + 128 | 0) >> 2] = (HEAP32[($6 + 352 | 0) >> 2] | 0) + Math_imul(HEAP32[((HEAP32[($6 + 124 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0, HEAP32[($6 + 332 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[(HEAP32[($6 + 128 | 0) >> 2] | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getX_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 108 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[((HEAP32[($6 + 128 | 0) >> 2] | 0) + 8 | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getY_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 104 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[((HEAP32[($6 + 128 | 0) >> 2] | 0) + 16 | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 100 | 0) >> 2] = wasm2js_f32$0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 288 | 0 | 0, $6 + 108 | 0 | 0, $6 + 104 | 0 | 0, $6 + 100 | 0 | 0); + HEAP32[($6 + 128 | 0) >> 2] = (HEAP32[($6 + 352 | 0) >> 2] | 0) + Math_imul(HEAP32[((HEAP32[($6 + 124 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0, HEAP32[($6 + 332 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[(HEAP32[($6 + 128 | 0) >> 2] | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getX_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 96 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[((HEAP32[($6 + 128 | 0) >> 2] | 0) + 8 | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getY_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 92 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[((HEAP32[($6 + 128 | 0) >> 2] | 0) + 16 | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 88 | 0) >> 2] = wasm2js_f32$0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 304 | 0 | 0, $6 + 96 | 0 | 0, $6 + 92 | 0 | 0, $6 + 88 | 0 | 0); + $699 = HEAP32[($6 + 376 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$699 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($699, $6 + 272 | 0, HEAP32[($6 + 360 | 0) >> 2] | 0, HEAP32[($6 + 320 | 0) >> 2] | 0); + HEAP32[($6 + 320 | 0) >> 2] = (HEAP32[($6 + 320 | 0) >> 2] | 0) + 1 | 0; + continue label$26; + }; + } + break label$20; + case 1: + HEAP32[($6 + 320 | 0) >> 2] = 0; + label$27 : { + label$28 : while (1) { + if (!((HEAP32[($6 + 320 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 324 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$27 + } + HEAP32[($6 + 84 | 0) >> 2] = (HEAP32[($6 + 348 | 0) >> 2] | 0) + Math_imul(HEAP32[($6 + 320 | 0) >> 2] | 0, HEAP32[($6 + 344 | 0) >> 2] | 0) | 0; + HEAP32[($6 + 128 | 0) >> 2] = (HEAP32[($6 + 352 | 0) >> 2] | 0) + Math_imul(HEAPU16[(HEAP32[($6 + 84 | 0) >> 2] | 0) >> 1] | 0, HEAP32[($6 + 332 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[(HEAP32[($6 + 128 | 0) >> 2] | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getX_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 80 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[((HEAP32[($6 + 128 | 0) >> 2] | 0) + 8 | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getY_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 76 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[((HEAP32[($6 + 128 | 0) >> 2] | 0) + 16 | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 72 | 0) >> 2] = wasm2js_f32$0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 272 | 0 | 0, $6 + 80 | 0 | 0, $6 + 76 | 0 | 0, $6 + 72 | 0 | 0); + HEAP32[($6 + 128 | 0) >> 2] = (HEAP32[($6 + 352 | 0) >> 2] | 0) + Math_imul(HEAPU16[((HEAP32[($6 + 84 | 0) >> 2] | 0) + 2 | 0) >> 1] | 0, HEAP32[($6 + 332 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[(HEAP32[($6 + 128 | 0) >> 2] | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getX_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 68 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[((HEAP32[($6 + 128 | 0) >> 2] | 0) + 8 | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getY_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 64 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[((HEAP32[($6 + 128 | 0) >> 2] | 0) + 16 | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 60 | 0) >> 2] = wasm2js_f32$0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 288 | 0 | 0, $6 + 68 | 0 | 0, $6 + 64 | 0 | 0, $6 + 60 | 0 | 0); + HEAP32[($6 + 128 | 0) >> 2] = (HEAP32[($6 + 352 | 0) >> 2] | 0) + Math_imul(HEAPU16[((HEAP32[($6 + 84 | 0) >> 2] | 0) + 4 | 0) >> 1] | 0, HEAP32[($6 + 332 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[(HEAP32[($6 + 128 | 0) >> 2] | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getX_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 56 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[((HEAP32[($6 + 128 | 0) >> 2] | 0) + 8 | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getY_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 52 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[((HEAP32[($6 + 128 | 0) >> 2] | 0) + 16 | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 48 | 0) >> 2] = wasm2js_f32$0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 304 | 0 | 0, $6 + 56 | 0 | 0, $6 + 52 | 0 | 0, $6 + 48 | 0 | 0); + $841 = HEAP32[($6 + 376 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$841 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($841, $6 + 272 | 0, HEAP32[($6 + 360 | 0) >> 2] | 0, HEAP32[($6 + 320 | 0) >> 2] | 0); + HEAP32[($6 + 320 | 0) >> 2] = (HEAP32[($6 + 320 | 0) >> 2] | 0) + 1 | 0; + continue label$28; + }; + } + break label$20; + case 3: + HEAP32[($6 + 320 | 0) >> 2] = 0; + label$29 : { + label$30 : while (1) { + if (!((HEAP32[($6 + 320 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 324 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$29 + } + HEAP32[($6 + 44 | 0) >> 2] = (HEAP32[($6 + 348 | 0) >> 2] | 0) + Math_imul(HEAP32[($6 + 320 | 0) >> 2] | 0, HEAP32[($6 + 344 | 0) >> 2] | 0) | 0; + HEAP32[($6 + 128 | 0) >> 2] = (HEAP32[($6 + 352 | 0) >> 2] | 0) + Math_imul(HEAPU8[(HEAP32[($6 + 44 | 0) >> 2] | 0) >> 0] | 0, HEAP32[($6 + 332 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[(HEAP32[($6 + 128 | 0) >> 2] | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getX_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[((HEAP32[($6 + 128 | 0) >> 2] | 0) + 8 | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getY_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[((HEAP32[($6 + 128 | 0) >> 2] | 0) + 16 | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 272 | 0 | 0, $6 + 40 | 0 | 0, $6 + 36 | 0 | 0, $6 + 32 | 0 | 0); + HEAP32[($6 + 128 | 0) >> 2] = (HEAP32[($6 + 352 | 0) >> 2] | 0) + Math_imul(HEAPU8[((HEAP32[($6 + 44 | 0) >> 2] | 0) + 1 | 0) >> 0] | 0, HEAP32[($6 + 332 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[(HEAP32[($6 + 128 | 0) >> 2] | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getX_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[((HEAP32[($6 + 128 | 0) >> 2] | 0) + 8 | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getY_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[((HEAP32[($6 + 128 | 0) >> 2] | 0) + 16 | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 288 | 0 | 0, $6 + 28 | 0 | 0, $6 + 24 | 0 | 0, $6 + 20 | 0 | 0); + HEAP32[($6 + 128 | 0) >> 2] = (HEAP32[($6 + 352 | 0) >> 2] | 0) + Math_imul(HEAPU8[((HEAP32[($6 + 44 | 0) >> 2] | 0) + 2 | 0) >> 0] | 0, HEAP32[($6 + 332 | 0) >> 2] | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[(HEAP32[($6 + 128 | 0) >> 2] | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getX_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[((HEAP32[($6 + 128 | 0) >> 2] | 0) + 8 | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getY_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(+HEAPF64[((HEAP32[($6 + 128 | 0) >> 2] | 0) + 16 | 0) >> 3]) * Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($6 + 256 | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 304 | 0 | 0, $6 + 16 | 0 | 0, $6 + 12 | 0 | 0, $6 + 8 | 0 | 0); + $983 = HEAP32[($6 + 376 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$983 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($983, $6 + 272 | 0, HEAP32[($6 + 360 | 0) >> 2] | 0, HEAP32[($6 + 320 | 0) >> 2] | 0); + HEAP32[($6 + 320 | 0) >> 2] = (HEAP32[($6 + 320 | 0) >> 2] | 0) + 1 | 0; + continue label$30; + }; + } + break label$20; + default: + break label$21; + }; + } + label$31 : { + if ((HEAP32[($6 + 336 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0) { + break label$31 + } + if ((HEAP32[($6 + 336 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0) { + break label$31 + } + __assert_fail(86334 | 0, 75524 | 0, 164 | 0, 70188 | 0); + wasm2js_trap(); + } + } + break label$4; + default: + break label$5; + }; + } + label$32 : { + if (!(HEAP32[($6 + 340 | 0) >> 2] | 0)) { + break label$32 + } + if ((HEAP32[($6 + 340 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0) { + break label$32 + } + __assert_fail(86480 | 0, 75524 | 0, 169 | 0, 70188 | 0); + wasm2js_trap(); + } + } + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 24 | 0) >> 2] | 0 | 0]($7, HEAP32[($6 + 360 | 0) >> 2] | 0); + HEAP32[($6 + 360 | 0) >> 2] = (HEAP32[($6 + 360 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + __stack_pointer = $6 + 384 | 0; + return; + } + + function btStridingMeshInterface__serialize_28void__2c_20btSerializer__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $66 = 0, $16 = 0, $25 = 0, $74 = 0, $80 = 0, $88 = 0, $141 = 0, $150 = 0, $158 = 0, $213 = 0, $222 = 0, $230 = 0, $279 = 0, $291 = 0, $294 = 0, $302 = 0, $345 = 0, $354 = 0, $362 = 0, $405 = 0, $434 = 0, $10 = 0, $29 = 0, $92 = 0, $162 = 0, $234 = 0, $306 = 0, $366 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 144 | 0; + __stack_pointer = $5; + HEAP32[($5 + 140 | 0) >> 2] = $0; + HEAP32[($5 + 136 | 0) >> 2] = $1; + HEAP32[($5 + 132 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 140 | 0) >> 2] | 0; + HEAP32[($5 + 128 | 0) >> 2] = HEAP32[($5 + 136 | 0) >> 2] | 0; + $10 = FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($6) | 0; + HEAP32[((HEAP32[($5 + 128 | 0) >> 2] | 0) + 20 | 0) >> 2] = $10; + HEAP32[(HEAP32[($5 + 128 | 0) >> 2] | 0) >> 2] = 0; + label$1 : { + if (!(HEAP32[((HEAP32[($5 + 128 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0)) { + break label$1 + } + $16 = HEAP32[($5 + 132 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$16 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($16, 32, HEAP32[((HEAP32[($5 + 128 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 124 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($5 + 120 | 0) >> 2] = HEAP32[((HEAP32[($5 + 124 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $25 = HEAP32[($5 + 132 | 0) >> 2] | 0; + $29 = FUNCTION_TABLE[HEAP32[((HEAP32[$25 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($25, HEAP32[($5 + 120 | 0) >> 2] | 0) | 0; + HEAP32[(HEAP32[($5 + 128 | 0) >> 2] | 0) >> 2] = $29; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($6) | 0), HEAP32[(wasm2js_i32$0 + 112 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($5 + 116 | 0) >> 2] = 0; + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($5 + 116 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 112 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($6, $5 + 108 | 0, $5 + 84 | 0, $5 + 96 | 0, $5 + 88 | 0, $5 + 104 | 0, $5 + 100 | 0, $5 + 80 | 0, $5 + 92 | 0, HEAP32[($5 + 116 | 0) >> 2] | 0); + HEAP32[((HEAP32[($5 + 120 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[($5 + 80 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 120 | 0) >> 2] | 0) + 28 | 0) >> 2] = HEAP32[($5 + 84 | 0) >> 2] | 0; + $66 = 0; + HEAP32[((HEAP32[($5 + 120 | 0) >> 2] | 0) + 20 | 0) >> 2] = $66; + HEAP32[((HEAP32[($5 + 120 | 0) >> 2] | 0) + 8 | 0) >> 2] = $66; + HEAP32[((HEAP32[($5 + 120 | 0) >> 2] | 0) + 12 | 0) >> 2] = $66; + HEAP32[((HEAP32[($5 + 120 | 0) >> 2] | 0) + 16 | 0) >> 2] = $66; + HEAP32[(HEAP32[($5 + 120 | 0) >> 2] | 0) >> 2] = $66; + HEAP32[((HEAP32[($5 + 120 | 0) >> 2] | 0) + 4 | 0) >> 2] = $66; + $74 = (HEAP32[($5 + 92 | 0) >> 2] | 0) + -2 | 0; + label$4 : { + label$5 : { + switch ($74 | 0) { + case 0: + HEAP32[($5 + 72 | 0) >> 2] = Math_imul(HEAP32[($5 + 80 | 0) >> 2] | 0, 3); + label$9 : { + if (!(HEAP32[($5 + 72 | 0) >> 2] | 0)) { + break label$9 + } + $80 = HEAP32[($5 + 132 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$80 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($80, 4, HEAP32[($5 + 72 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 68 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($5 + 64 | 0) >> 2] = HEAP32[((HEAP32[($5 + 68 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $88 = HEAP32[($5 + 132 | 0) >> 2] | 0; + $92 = FUNCTION_TABLE[HEAP32[((HEAP32[$88 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($88, HEAP32[($5 + 64 | 0) >> 2] | 0) | 0; + HEAP32[((HEAP32[($5 + 120 | 0) >> 2] | 0) + 8 | 0) >> 2] = $92; + HEAP32[($5 + 76 | 0) >> 2] = 0; + label$10 : { + label$11 : while (1) { + if (!((HEAP32[($5 + 76 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 80 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$10 + } + HEAP32[($5 + 60 | 0) >> 2] = (HEAP32[($5 + 104 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 76 | 0) >> 2] | 0, HEAP32[($5 + 100 | 0) >> 2] | 0) | 0; + HEAP32[((HEAP32[($5 + 64 | 0) >> 2] | 0) + (Math_imul(HEAP32[($5 + 76 | 0) >> 2] | 0, 3) << 2 | 0) | 0) >> 2] = HEAP32[(HEAP32[($5 + 60 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 64 | 0) >> 2] | 0) + ((Math_imul(HEAP32[($5 + 76 | 0) >> 2] | 0, 3) + 1 | 0) << 2 | 0) | 0) >> 2] = HEAP32[((HEAP32[($5 + 60 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 64 | 0) >> 2] | 0) + ((Math_imul(HEAP32[($5 + 76 | 0) >> 2] | 0, 3) + 2 | 0) << 2 | 0) | 0) >> 2] = HEAP32[((HEAP32[($5 + 60 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($5 + 76 | 0) >> 2] = (HEAP32[($5 + 76 | 0) >> 2] | 0) + 1 | 0; + continue label$11; + }; + } + $141 = HEAP32[($5 + 132 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$141 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($141, HEAP32[($5 + 68 | 0) >> 2] | 0, 83095, 1497453121, HEAP32[((HEAP32[($5 + 68 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0); + } + break label$4; + case 1: + label$12 : { + if (!(HEAP32[($5 + 80 | 0) >> 2] | 0)) { + break label$12 + } + $150 = HEAP32[($5 + 132 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$150 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($150, 8, HEAP32[($5 + 80 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 56 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($5 + 52 | 0) >> 2] = HEAP32[((HEAP32[($5 + 56 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $158 = HEAP32[($5 + 132 | 0) >> 2] | 0; + $162 = FUNCTION_TABLE[HEAP32[((HEAP32[$158 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($158, HEAP32[($5 + 52 | 0) >> 2] | 0) | 0; + HEAP32[((HEAP32[($5 + 120 | 0) >> 2] | 0) + 12 | 0) >> 2] = $162; + HEAP32[($5 + 76 | 0) >> 2] = 0; + label$13 : { + label$14 : while (1) { + if (!((HEAP32[($5 + 76 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 80 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$13 + } + HEAP32[($5 + 48 | 0) >> 2] = (HEAP32[($5 + 104 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 76 | 0) >> 2] | 0, HEAP32[($5 + 100 | 0) >> 2] | 0) | 0; + HEAP16[((HEAP32[($5 + 52 | 0) >> 2] | 0) + ((HEAP32[($5 + 76 | 0) >> 2] | 0) << 3 | 0) | 0) >> 1] = HEAPU16[(HEAP32[($5 + 48 | 0) >> 2] | 0) >> 1] | 0; + HEAP16[(((HEAP32[($5 + 52 | 0) >> 2] | 0) + ((HEAP32[($5 + 76 | 0) >> 2] | 0) << 3 | 0) | 0) + 2 | 0) >> 1] = HEAPU16[((HEAP32[($5 + 48 | 0) >> 2] | 0) + 2 | 0) >> 1] | 0; + HEAP16[(((HEAP32[($5 + 52 | 0) >> 2] | 0) + ((HEAP32[($5 + 76 | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 1] = HEAPU16[((HEAP32[($5 + 48 | 0) >> 2] | 0) + 4 | 0) >> 1] | 0; + HEAP8[(((HEAP32[($5 + 52 | 0) >> 2] | 0) + ((HEAP32[($5 + 76 | 0) >> 2] | 0) << 3 | 0) | 0) + 6 | 0) >> 0] = 0; + HEAP8[(((HEAP32[($5 + 52 | 0) >> 2] | 0) + ((HEAP32[($5 + 76 | 0) >> 2] | 0) << 3 | 0) | 0) + 7 | 0) >> 0] = 0; + HEAP32[($5 + 76 | 0) >> 2] = (HEAP32[($5 + 76 | 0) >> 2] | 0) + 1 | 0; + continue label$14; + }; + } + $213 = HEAP32[($5 + 132 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$213 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($213, HEAP32[($5 + 56 | 0) >> 2] | 0, 83160, 1497453121, HEAP32[((HEAP32[($5 + 56 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0); + } + break label$4; + case 3: + label$15 : { + if (!(HEAP32[($5 + 80 | 0) >> 2] | 0)) { + break label$15 + } + $222 = HEAP32[($5 + 132 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$222 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($222, 4, HEAP32[($5 + 80 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($5 + 40 | 0) >> 2] = HEAP32[((HEAP32[($5 + 44 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $230 = HEAP32[($5 + 132 | 0) >> 2] | 0; + $234 = FUNCTION_TABLE[HEAP32[((HEAP32[$230 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($230, HEAP32[($5 + 40 | 0) >> 2] | 0) | 0; + HEAP32[((HEAP32[($5 + 120 | 0) >> 2] | 0) + 16 | 0) >> 2] = $234; + HEAP32[($5 + 76 | 0) >> 2] = 0; + label$16 : { + label$17 : while (1) { + if (!((HEAP32[($5 + 76 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 80 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$16 + } + HEAP32[($5 + 36 | 0) >> 2] = (HEAP32[($5 + 104 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 76 | 0) >> 2] | 0, HEAP32[($5 + 100 | 0) >> 2] | 0) | 0; + HEAP8[((HEAP32[($5 + 40 | 0) >> 2] | 0) + ((HEAP32[($5 + 76 | 0) >> 2] | 0) << 2 | 0) | 0) >> 0] = HEAPU8[(HEAP32[($5 + 36 | 0) >> 2] | 0) >> 0] | 0; + HEAP8[(((HEAP32[($5 + 40 | 0) >> 2] | 0) + ((HEAP32[($5 + 76 | 0) >> 2] | 0) << 2 | 0) | 0) + 1 | 0) >> 0] = HEAPU8[((HEAP32[($5 + 36 | 0) >> 2] | 0) + 1 | 0) >> 0] | 0; + HEAP8[(((HEAP32[($5 + 40 | 0) >> 2] | 0) + ((HEAP32[($5 + 76 | 0) >> 2] | 0) << 2 | 0) | 0) + 2 | 0) >> 0] = HEAPU8[((HEAP32[($5 + 36 | 0) >> 2] | 0) + 2 | 0) >> 0] | 0; + HEAP8[(((HEAP32[($5 + 40 | 0) >> 2] | 0) + ((HEAP32[($5 + 76 | 0) >> 2] | 0) << 2 | 0) | 0) + 3 | 0) >> 0] = 0; + HEAP32[($5 + 76 | 0) >> 2] = (HEAP32[($5 + 76 | 0) >> 2] | 0) + 1 | 0; + continue label$17; + }; + } + $279 = HEAP32[($5 + 132 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$279 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($279, HEAP32[($5 + 44 | 0) >> 2] | 0, 83187, 1497453121, HEAP32[((HEAP32[($5 + 44 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0); + } + break label$4; + default: + break label$5; + }; + } + __assert_fail(86177 | 0, 75524 | 0, 326 | 0, 80835 | 0); + wasm2js_trap(); + } + $291 = HEAP32[($5 + 96 | 0) >> 2] | 0; + label$18 : { + label$19 : { + switch ($291 | 0) { + case 0: + label$22 : { + if (!(HEAP32[($5 + 84 | 0) >> 2] | 0)) { + break label$22 + } + $294 = HEAP32[($5 + 132 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$294 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($294, 16, HEAP32[($5 + 84 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($5 + 24 | 0) >> 2] = HEAP32[((HEAP32[($5 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $302 = HEAP32[($5 + 132 | 0) >> 2] | 0; + $306 = FUNCTION_TABLE[HEAP32[((HEAP32[$302 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($302, HEAP32[($5 + 24 | 0) >> 2] | 0) | 0; + HEAP32[(HEAP32[($5 + 120 | 0) >> 2] | 0) >> 2] = $306; + HEAP32[($5 + 20 | 0) >> 2] = 0; + label$23 : { + label$24 : while (1) { + if (!((HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 84 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$23 + } + HEAP32[($5 + 32 | 0) >> 2] = (HEAP32[($5 + 108 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 20 | 0) >> 2] | 0, HEAP32[($5 + 88 | 0) >> 2] | 0) | 0; + HEAPF32[((HEAP32[($5 + 24 | 0) >> 2] | 0) + ((HEAP32[($5 + 20 | 0) >> 2] | 0) << 4 | 0) | 0) >> 2] = Math_fround(HEAPF32[(HEAP32[($5 + 32 | 0) >> 2] | 0) >> 2]); + HEAPF32[(((HEAP32[($5 + 24 | 0) >> 2] | 0) + ((HEAP32[($5 + 20 | 0) >> 2] | 0) << 4 | 0) | 0) + 4 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($5 + 32 | 0) >> 2] | 0) + 4 | 0) >> 2]); + HEAPF32[(((HEAP32[($5 + 24 | 0) >> 2] | 0) + ((HEAP32[($5 + 20 | 0) >> 2] | 0) << 4 | 0) | 0) + 8 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($5 + 32 | 0) >> 2] | 0) + 8 | 0) >> 2]); + HEAP32[($5 + 20 | 0) >> 2] = (HEAP32[($5 + 20 | 0) >> 2] | 0) + 1 | 0; + continue label$24; + }; + } + $345 = HEAP32[($5 + 132 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$345 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($345, HEAP32[($5 + 28 | 0) >> 2] | 0, 83394, 1497453121, HEAP32[((HEAP32[($5 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0); + } + break label$18; + case 1: + label$25 : { + if (!(HEAP32[($5 + 84 | 0) >> 2] | 0)) { + break label$25 + } + $354 = HEAP32[($5 + 132 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$354 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($354, 32, HEAP32[($5 + 84 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $362 = HEAP32[($5 + 132 | 0) >> 2] | 0; + $366 = FUNCTION_TABLE[HEAP32[((HEAP32[$362 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($362, HEAP32[($5 + 12 | 0) >> 2] | 0) | 0; + HEAP32[((HEAP32[($5 + 120 | 0) >> 2] | 0) + 4 | 0) >> 2] = $366; + HEAP32[($5 + 8 | 0) >> 2] = 0; + label$26 : { + label$27 : while (1) { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 84 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$26 + } + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 108 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 8 | 0) >> 2] | 0, HEAP32[($5 + 88 | 0) >> 2] | 0) | 0; + HEAPF64[((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 5 | 0) | 0) >> 3] = +HEAPF64[(HEAP32[($5 + 4 | 0) >> 2] | 0) >> 3]; + HEAPF64[(((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 5 | 0) | 0) + 8 | 0) >> 3] = +HEAPF64[((HEAP32[($5 + 4 | 0) >> 2] | 0) + 8 | 0) >> 3]; + HEAPF64[(((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 5 | 0) | 0) + 16 | 0) >> 3] = +HEAPF64[((HEAP32[($5 + 4 | 0) >> 2] | 0) + 16 | 0) >> 3]; + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$27; + }; + } + $405 = HEAP32[($5 + 132 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$405 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($405, HEAP32[($5 + 16 | 0) >> 2] | 0, 83633, 1497453121, HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0); + } + break label$18; + default: + break label$19; + }; + } + label$28 : { + if (!(HEAP32[($5 + 96 | 0) >> 2] | 0)) { + break label$28 + } + if ((HEAP32[($5 + 96 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0) { + break label$28 + } + __assert_fail(86480 | 0, 75524 | 0, 374 | 0, 80835 | 0); + wasm2js_trap(); + } + } + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 24 | 0) >> 2] | 0 | 0]($6, HEAP32[($5 + 116 | 0) >> 2] | 0); + HEAP32[($5 + 116 | 0) >> 2] = (HEAP32[($5 + 116 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($5 + 120 | 0) >> 2] = (HEAP32[($5 + 120 | 0) >> 2] | 0) + 32 | 0; + continue label$3; + }; + } + $434 = HEAP32[($5 + 132 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$434 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($434, HEAP32[($5 + 124 | 0) >> 2] | 0, 83110, 1497453121, HEAP32[((HEAP32[($5 + 124 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0); + } + HEAP32[((HEAP32[($5 + 128 | 0) >> 2] | 0) + 24 | 0) >> 2] = 0; + btVector3__serializeFloat_28btVector3FloatData__29_20const($6 + 4 | 0 | 0, (HEAP32[($5 + 128 | 0) >> 2] | 0) + 4 | 0 | 0); + __stack_pointer = $5 + 144 | 0; + return 83699 | 0; + } + + function btStridingMeshInterface__hasPremadeAabb_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 0 & 1 | 0 | 0; + } + + function btStridingMeshInterface__setPremadeAabb_28btVector3_20const__2c_20btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + return; + } + + function btStridingMeshInterface__getPremadeAabb_28btVector3__2c_20btVector3__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + return; + } + + function _GLOBAL__sub_I_btStridingMeshInterface_cpp() { + __cxx_global_var_init_52(); + return; + } + + function __cxx_global_var_init_53() { + btInfMaskConverter__btInfMaskConverter_28int_29(114300 | 0, 2139095040 | 0) | 0; + return; + } + + function btTriangleIndexVertexArray___btTriangleIndexVertexArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 100608 + 8 | 0; + btAlignedObjectArray_btIndexedMesh____btAlignedObjectArray_28_29($4 + 20 | 0 | 0) | 0; + btStridingMeshInterface___btStridingMeshInterface_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btIndexedMesh____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btIndexedMesh___clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btIndexedMesh___clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btIndexedMesh___destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btIndexedMesh___size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btIndexedMesh___deallocate_28_29($4 | 0); + btAlignedObjectArray_btIndexedMesh___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btTriangleIndexVertexArray___btTriangleIndexVertexArray_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[985 | 0]($4) | 0; + btTriangleIndexVertexArray__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btTriangleIndexVertexArray__getLockedVertexIndexBase_28unsigned_20char___2c_20int__2c_20PHY_ScalarType__2c_20int__2c_20unsigned_20char___2c_20int__2c_20int__2c_20PHY_ScalarType__2c_20int_29($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + $8 = $8 | 0; + $9 = $9 | 0; + var $12 = 0, $13 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $12 = __stack_pointer - 48 | 0; + __stack_pointer = $12; + HEAP32[($12 + 44 | 0) >> 2] = $0; + HEAP32[($12 + 40 | 0) >> 2] = $1; + HEAP32[($12 + 36 | 0) >> 2] = $2; + HEAP32[($12 + 32 | 0) >> 2] = $3; + HEAP32[($12 + 28 | 0) >> 2] = $4; + HEAP32[($12 + 24 | 0) >> 2] = $5; + HEAP32[($12 + 20 | 0) >> 2] = $6; + HEAP32[($12 + 16 | 0) >> 2] = $7; + HEAP32[($12 + 12 | 0) >> 2] = $8; + HEAP32[($12 + 8 | 0) >> 2] = $9; + $13 = HEAP32[($12 + 44 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($12 + 8 | 0) >> 2] | 0 | 0) < (FUNCTION_TABLE[HEAP32[((HEAP32[$13 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($13) | 0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(87090 | 0, 71325 | 0, 41 | 0, 81493 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $12, wasm2js_i32$1 = btAlignedObjectArray_btIndexedMesh___operator_5b_5d_28int_29($13 + 20 | 0 | 0, HEAP32[($12 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + HEAP32[(HEAP32[($12 + 36 | 0) >> 2] | 0) >> 2] = HEAP32[((HEAP32[($12 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + HEAP32[(HEAP32[($12 + 40 | 0) >> 2] | 0) >> 2] = HEAP32[((HEAP32[($12 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[(HEAP32[($12 + 32 | 0) >> 2] | 0) >> 2] = HEAP32[((HEAP32[($12 + 4 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0; + HEAP32[(HEAP32[($12 + 28 | 0) >> 2] | 0) >> 2] = HEAP32[((HEAP32[($12 + 4 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0; + HEAP32[(HEAP32[($12 + 16 | 0) >> 2] | 0) >> 2] = HEAP32[(HEAP32[($12 + 4 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[(HEAP32[($12 + 24 | 0) >> 2] | 0) >> 2] = HEAP32[((HEAP32[($12 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[(HEAP32[($12 + 20 | 0) >> 2] | 0) >> 2] = HEAP32[((HEAP32[($12 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[(HEAP32[($12 + 12 | 0) >> 2] | 0) >> 2] = HEAP32[((HEAP32[($12 + 4 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + __stack_pointer = $12 + 48 | 0; + return; + } + + function btTriangleIndexVertexArray__getLockedReadOnlyVertexIndexBase_28unsigned_20char_20const___2c_20int__2c_20PHY_ScalarType__2c_20int__2c_20unsigned_20char_20const___2c_20int__2c_20int__2c_20PHY_ScalarType__2c_20int_29_20const($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + $8 = $8 | 0; + $9 = $9 | 0; + var $12 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $12 = __stack_pointer - 48 | 0; + __stack_pointer = $12; + HEAP32[($12 + 44 | 0) >> 2] = $0; + HEAP32[($12 + 40 | 0) >> 2] = $1; + HEAP32[($12 + 36 | 0) >> 2] = $2; + HEAP32[($12 + 32 | 0) >> 2] = $3; + HEAP32[($12 + 28 | 0) >> 2] = $4; + HEAP32[($12 + 24 | 0) >> 2] = $5; + HEAP32[($12 + 20 | 0) >> 2] = $6; + HEAP32[($12 + 16 | 0) >> 2] = $7; + HEAP32[($12 + 12 | 0) >> 2] = $8; + HEAP32[($12 + 8 | 0) >> 2] = $9; + (wasm2js_i32$0 = $12, wasm2js_i32$1 = btAlignedObjectArray_btIndexedMesh___operator_5b_5d_28int_29_20const((HEAP32[($12 + 44 | 0) >> 2] | 0) + 20 | 0 | 0, HEAP32[($12 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + HEAP32[(HEAP32[($12 + 36 | 0) >> 2] | 0) >> 2] = HEAP32[((HEAP32[($12 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + HEAP32[(HEAP32[($12 + 40 | 0) >> 2] | 0) >> 2] = HEAP32[((HEAP32[($12 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[(HEAP32[($12 + 32 | 0) >> 2] | 0) >> 2] = HEAP32[((HEAP32[($12 + 4 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0; + HEAP32[(HEAP32[($12 + 28 | 0) >> 2] | 0) >> 2] = HEAP32[((HEAP32[($12 + 4 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0; + HEAP32[(HEAP32[($12 + 16 | 0) >> 2] | 0) >> 2] = HEAP32[(HEAP32[($12 + 4 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[(HEAP32[($12 + 24 | 0) >> 2] | 0) >> 2] = HEAP32[((HEAP32[($12 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[(HEAP32[($12 + 20 | 0) >> 2] | 0) >> 2] = HEAP32[((HEAP32[($12 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[(HEAP32[($12 + 12 | 0) >> 2] | 0) >> 2] = HEAP32[((HEAP32[($12 + 4 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + __stack_pointer = $12 + 48 | 0; + return; + } + + function btAlignedObjectArray_btIndexedMesh___operator_5b_5d_28int_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 176 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btIndexedMesh___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 177 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 5 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btTriangleIndexVertexArray__hasPremadeAabb_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0 | 0; + } + + function btTriangleIndexVertexArray__setPremadeAabb_28btVector3_20const__2c_20btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5 = 0, $6 = 0, $9 = 0, $11 = 0, $17 = 0, $19 = 0, $44 = 0, $54 = 0, $63 = 0, $73 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + $9 = $6 + 52 | 0; + i64toi32_i32$2 = HEAP32[($5 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $44 = i64toi32_i32$0; + i64toi32_i32$0 = $9; + HEAP32[i64toi32_i32$0 >> 2] = $44; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $11 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $11 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $54 = i64toi32_i32$1; + i64toi32_i32$1 = $9 + $11 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $54; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $17 = $6 + 68 | 0; + i64toi32_i32$2 = HEAP32[($5 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $63 = i64toi32_i32$0; + i64toi32_i32$0 = $17; + HEAP32[i64toi32_i32$0 >> 2] = $63; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $19 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $19 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $73 = i64toi32_i32$1; + i64toi32_i32$1 = $17 + $19 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $73; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6 + 48 | 0) >> 2] = 1; + return; + } + + function btTriangleIndexVertexArray__getPremadeAabb_28btVector3__2c_20btVector3__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5 = 0, $6 = 0, $9 = 0, $11 = 0, $17 = 0, $19 = 0, $43 = 0, $53 = 0, $62 = 0, $72 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + $9 = HEAP32[($5 + 8 | 0) >> 2] | 0; + i64toi32_i32$2 = $6 + 52 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $43 = i64toi32_i32$0; + i64toi32_i32$0 = $9; + HEAP32[i64toi32_i32$0 >> 2] = $43; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $11 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $11 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $53 = i64toi32_i32$1; + i64toi32_i32$1 = $9 + $11 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $53; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $17 = HEAP32[($5 + 4 | 0) >> 2] | 0; + i64toi32_i32$2 = $6 + 68 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $62 = i64toi32_i32$0; + i64toi32_i32$0 = $17; + HEAP32[i64toi32_i32$0 >> 2] = $62; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $19 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $19 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $72 = i64toi32_i32$1; + i64toi32_i32$1 = $17 + $19 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $72; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function btTriangleIndexVertexArray__preallocateVertices_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return; + } + + function btTriangleIndexVertexArray__preallocateIndices_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return; + } + + function _GLOBAL__sub_I_btTriangleIndexVertexArray_cpp() { + __cxx_global_var_init_53(); + return; + } + + function __cxx_global_var_init_54() { + btInfMaskConverter__btInfMaskConverter_28int_29(114304 | 0, 2139095040 | 0) | 0; + return; + } + + function btTriangleMesh__btTriangleMesh_28bool_2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $8 = 0, $5 = 0, $50 = 0, $74 = 0, $99 = 0, $118 = 0, $133 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 40 | 0) >> 2] = $0; + HEAP8[($5 + 39 | 0) >> 0] = $1; + HEAP8[($5 + 38 | 0) >> 0] = $2; + $8 = HEAP32[($5 + 40 | 0) >> 2] | 0; + HEAP32[($5 + 44 | 0) >> 2] = $8; + btTriangleIndexVertexArray__btTriangleIndexVertexArray_28_29($8 | 0) | 0; + HEAP32[$8 >> 2] = 100720 + 8 | 0; + btAlignedObjectArray_btVector3___btAlignedObjectArray_28_29($8 + 84 | 0 | 0) | 0; + btAlignedObjectArray_float___btAlignedObjectArray_28_29($8 + 104 | 0 | 0) | 0; + btAlignedObjectArray_unsigned_20int___btAlignedObjectArray_28_29($8 + 124 | 0 | 0) | 0; + btAlignedObjectArray_unsigned_20short___btAlignedObjectArray_28_29($8 + 144 | 0 | 0) | 0; + HEAP8[($8 + 164 | 0) >> 0] = (HEAPU8[($5 + 39 | 0) >> 0] | 0) & 1 | 0; + HEAP8[($8 + 165 | 0) >> 0] = (HEAPU8[($5 + 38 | 0) >> 0] | 0) & 1 | 0; + HEAPF32[($8 + 168 | 0) >> 2] = Math_fround(0 | 0); + btIndexedMesh__btIndexedMesh_28_29($5 + 4 | 0 | 0) | 0; + HEAP32[($5 + 4 | 0) >> 2] = 0; + HEAP32[($5 + 16 | 0) >> 2] = 0; + HEAP32[($5 + 28 | 0) >> 2] = 2; + HEAP32[($5 + 8 | 0) >> 2] = 0; + HEAP32[($5 + 12 | 0) >> 2] = 12; + HEAP32[($5 + 20 | 0) >> 2] = 0; + HEAP32[($5 + 24 | 0) >> 2] = 16; + btAlignedObjectArray_btIndexedMesh___push_back_28btIndexedMesh_20const__29($8 + 20 | 0 | 0, $5 + 4 | 0 | 0); + label$1 : { + label$2 : { + if (!((HEAPU8[($8 + 164 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + $50 = (btAlignedObjectArray_unsigned_20int___size_28_29_20const($8 + 124 | 0 | 0) | 0 | 0) / (3 | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btIndexedMesh___operator_5b_5d_28int_29($8 + 20 | 0 | 0, 0 | 0) | 0, wasm2js_i32$1 = $50), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = btAlignedObjectArray_btIndexedMesh___operator_5b_5d_28int_29($8 + 20 | 0 | 0, 0 | 0) | 0, wasm2js_i32$1 = 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = btAlignedObjectArray_btIndexedMesh___operator_5b_5d_28int_29($8 + 20 | 0 | 0, 0 | 0) | 0, wasm2js_i32$1 = 2), HEAP32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = btAlignedObjectArray_btIndexedMesh___operator_5b_5d_28int_29($8 + 20 | 0 | 0, 0 | 0) | 0, wasm2js_i32$1 = 12), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + $74 = (btAlignedObjectArray_unsigned_20short___size_28_29_20const($8 + 144 | 0 | 0) | 0 | 0) / (3 | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btIndexedMesh___operator_5b_5d_28int_29($8 + 20 | 0 | 0, 0 | 0) | 0, wasm2js_i32$1 = $74), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = btAlignedObjectArray_btIndexedMesh___operator_5b_5d_28int_29($8 + 20 | 0 | 0, 0 | 0) | 0, wasm2js_i32$1 = 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = btAlignedObjectArray_btIndexedMesh___operator_5b_5d_28int_29($8 + 20 | 0 | 0, 0 | 0) | 0, wasm2js_i32$1 = 3), HEAP32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = btAlignedObjectArray_btIndexedMesh___operator_5b_5d_28int_29($8 + 20 | 0 | 0, 0 | 0) | 0, wasm2js_i32$1 = 6), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + } + label$3 : { + label$4 : { + if (!((HEAPU8[($8 + 165 | 0) >> 0] | 0) & 1 | 0)) { + break label$4 + } + $99 = btAlignedObjectArray_btVector3___size_28_29_20const($8 + 84 | 0 | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btIndexedMesh___operator_5b_5d_28int_29($8 + 20 | 0 | 0, 0 | 0) | 0, wasm2js_i32$1 = $99), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = btAlignedObjectArray_btIndexedMesh___operator_5b_5d_28int_29($8 + 20 | 0 | 0, 0 | 0) | 0, wasm2js_i32$1 = 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = btAlignedObjectArray_btIndexedMesh___operator_5b_5d_28int_29($8 + 20 | 0 | 0, 0 | 0) | 0, wasm2js_i32$1 = 16), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + break label$3; + } + $118 = (btAlignedObjectArray_float___size_28_29_20const($8 + 104 | 0 | 0) | 0 | 0) / (3 | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btIndexedMesh___operator_5b_5d_28int_29($8 + 20 | 0 | 0, 0 | 0) | 0, wasm2js_i32$1 = $118), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = btAlignedObjectArray_btIndexedMesh___operator_5b_5d_28int_29($8 + 20 | 0 | 0, 0 | 0) | 0, wasm2js_i32$1 = 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = btAlignedObjectArray_btIndexedMesh___operator_5b_5d_28int_29($8 + 20 | 0 | 0, 0 | 0) | 0, wasm2js_i32$1 = 12), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + } + $133 = HEAP32[($5 + 44 | 0) >> 2] | 0; + __stack_pointer = $5 + 48 | 0; + return $133 | 0; + } + + function btTriangleIndexVertexArray__btTriangleIndexVertexArray_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btStridingMeshInterface__btStridingMeshInterface_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 100608 + 8 | 0; + btAlignedObjectArray_btIndexedMesh___btAlignedObjectArray_28_29($4 + 20 | 0 | 0) | 0; + HEAP32[($4 + 48 | 0) >> 2] = 0; + btVector3__btVector3_28_29($4 + 52 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 68 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_unsigned_20int___btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_unsigned_20int_2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_unsigned_20int___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_unsigned_20short___btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_unsigned_20short_2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_unsigned_20short___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btIndexedMesh__btIndexedMesh_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[($4 + 24 | 0) >> 2] = 2; + HEAP32[($4 + 28 | 0) >> 2] = 0; + return $4 | 0; + } + + function btAlignedObjectArray_btIndexedMesh___push_back_28btIndexedMesh_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $5 = 0, $4 = 0, $22 = 0, $23 = 0, $25 = 0, $29 = 0, $33 = 0, $96 = 0, $106 = 0, $116 = 0, $126 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btIndexedMesh___size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btIndexedMesh___capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btIndexedMesh___reserve_28int_29($5 | 0, btAlignedObjectArray_btIndexedMesh___allocSize_28int_29($5 | 0, btAlignedObjectArray_btIndexedMesh___size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + $22 = btIndexedMesh__operator_20new_28unsigned_20long_2c_20void__29(32 | 0, (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 5 | 0) | 0 | 0) | 0; + $23 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$2 = $23; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $96 = i64toi32_i32$0; + i64toi32_i32$0 = $22; + HEAP32[i64toi32_i32$0 >> 2] = $96; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $25 = 24; + i64toi32_i32$2 = i64toi32_i32$2 + $25 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $106 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $25 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $106; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $29 = 16; + i64toi32_i32$2 = $23 + $29 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $116 = i64toi32_i32$0; + i64toi32_i32$0 = $22 + $29 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $116; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $33 = 8; + i64toi32_i32$2 = $23 + $33 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $126 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $33 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $126; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_unsigned_20int___size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btIndexedMesh___operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btIndexedMesh___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 5 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btAlignedObjectArray_unsigned_20short___size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btStridingMeshInterface__btStridingMeshInterface_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 100504 + 8 | 0; + HEAPF32[($3 + 8 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($3 + 4 | 0) >> 2] = Math_fround(1.0); + HEAPF32[$3 >> 2] = Math_fround(1.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 4 | 0 | 0, $3 + 8 | 0 | 0, $3 + 4 | 0 | 0, $3 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btIndexedMesh___btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btIndexedMesh_2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btIndexedMesh___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedAllocator_unsigned_20int_2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_unsigned_20int___init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btAlignedAllocator_unsigned_20short_2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_unsigned_20short___init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btAlignedObjectArray_btIndexedMesh___size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btIndexedMesh___capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btIndexedMesh___allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btAlignedObjectArray_btIndexedMesh___reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btIndexedMesh___capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btIndexedMesh___allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btIndexedMesh___copy_28int_2c_20int_2c_20btIndexedMesh__29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btIndexedMesh___size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btIndexedMesh___destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btIndexedMesh___size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btIndexedMesh___deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btIndexedMesh__operator_20new_28unsigned_20long_2c_20void__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return HEAP32[($4 + 8 | 0) >> 2] | 0 | 0; + } + + function btTriangleMesh__addIndex_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $18 = 0, $32 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($5 + 164 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + btAlignedObjectArray_unsigned_20int___push_back_28unsigned_20int_20const__29($5 + 124 | 0 | 0, $4 + 4 | 0 | 0); + $18 = btAlignedObjectArray_unsigned_20int___operator_5b_5d_28int_29($5 + 124 | 0 | 0, 0 | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btIndexedMesh___operator_5b_5d_28int_29($5 + 20 | 0 | 0, 0 | 0) | 0, wasm2js_i32$1 = $18), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP16[($4 + 2 | 0) >> 1] = HEAP32[($4 + 8 | 0) >> 2] | 0; + btAlignedObjectArray_unsigned_20short___push_back_28unsigned_20short_20const__29($5 + 144 | 0 | 0, $4 + 2 | 0 | 0); + $32 = btAlignedObjectArray_unsigned_20short___operator_5b_5d_28int_29($5 + 144 | 0 | 0, 0 | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btIndexedMesh___operator_5b_5d_28int_29($5 + 20 | 0 | 0, 0 | 0) | 0, wasm2js_i32$1 = $32), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_unsigned_20int___push_back_28unsigned_20int_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_unsigned_20int___size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_unsigned_20int___capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_unsigned_20int___reserve_28int_29($5 | 0, btAlignedObjectArray_unsigned_20int___allocSize_28int_29($5 | 0, btAlignedObjectArray_unsigned_20int___size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_unsigned_20int___operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_unsigned_20int___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 2 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btAlignedObjectArray_unsigned_20short___push_back_28unsigned_20short_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_unsigned_20short___size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_unsigned_20short___capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_unsigned_20short___reserve_28int_29($5 | 0, btAlignedObjectArray_unsigned_20short___allocSize_28int_29($5 | 0, btAlignedObjectArray_unsigned_20short___size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + HEAP16[((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] = HEAPU16[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 1] | 0; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_unsigned_20short___operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_unsigned_20short___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btAlignedObjectArray_unsigned_20int___capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_unsigned_20int___allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btAlignedObjectArray_unsigned_20int___reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_unsigned_20int___capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_unsigned_20int___allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_unsigned_20int___copy_28int_2c_20int_2c_20unsigned_20int__29_20const($5 | 0, 0 | 0, btAlignedObjectArray_unsigned_20int___size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_unsigned_20int___destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_unsigned_20int___size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_unsigned_20int___deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_unsigned_20short___capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_unsigned_20short___allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btAlignedObjectArray_unsigned_20short___reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_unsigned_20short___capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_unsigned_20short___allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_unsigned_20short___copy_28int_2c_20int_2c_20unsigned_20short__29_20const($5 | 0, 0 | 0, btAlignedObjectArray_unsigned_20short___size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_unsigned_20short___destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_unsigned_20short___size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_unsigned_20short___deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btTriangleMesh__findOrAddVertex_28btVector3_20const__2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $7 = 0, $47 = 0, $135 = 0, $57 = 0, $142 = 0, $154 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 80 | 0; + __stack_pointer = $5; + HEAP32[($5 + 72 | 0) >> 2] = $0; + HEAP32[($5 + 68 | 0) >> 2] = $1; + HEAP8[($5 + 67 | 0) >> 0] = $2; + $7 = HEAP32[($5 + 72 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($7 + 165 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + label$3 : { + if (!((HEAPU8[($5 + 67 | 0) >> 0] | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 60 | 0) >> 2] = 0; + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($5 + 60 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btVector3___size_28_29_20const($7 + 84 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$4 + } + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 44 | 0 | 0, btAlignedObjectArray_btVector3___operator_5b_5d_28int_29($7 + 84 | 0 | 0, HEAP32[($5 + 60 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($5 + 68 | 0) >> 2] | 0 | 0); + label$6 : { + if (!(Math_fround(btVector3__length2_28_29_20const($5 + 44 | 0 | 0)) <= Math_fround(HEAPF32[($7 + 168 | 0) >> 2]) & 1 | 0)) { + break label$6 + } + HEAP32[($5 + 76 | 0) >> 2] = HEAP32[($5 + 60 | 0) >> 2] | 0; + break label$1; + } + HEAP32[($5 + 60 | 0) >> 2] = (HEAP32[($5 + 60 | 0) >> 2] | 0) + 1 | 0; + continue label$5; + }; + } + } + $47 = btAlignedObjectArray_btIndexedMesh___operator_5b_5d_28int_29($7 + 20 | 0 | 0, 0 | 0) | 0; + HEAP32[($47 + 12 | 0) >> 2] = (HEAP32[($47 + 12 | 0) >> 2] | 0) + 1 | 0; + btAlignedObjectArray_btVector3___push_back_28btVector3_20const__29($7 + 84 | 0 | 0, HEAP32[($5 + 68 | 0) >> 2] | 0 | 0); + $57 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29($7 + 84 | 0 | 0, 0 | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btIndexedMesh___operator_5b_5d_28int_29($7 + 20 | 0 | 0, 0 | 0) | 0, wasm2js_i32$1 = $57), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = (btAlignedObjectArray_btVector3___size_28_29_20const($7 + 84 | 0 | 0) | 0) - 1 | 0), HEAP32[(wasm2js_i32$0 + 76 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + label$7 : { + if (!((HEAPU8[($5 + 67 | 0) >> 0] | 0) & 1 | 0)) { + break label$7 + } + HEAP32[($5 + 40 | 0) >> 2] = 0; + label$8 : { + label$9 : while (1) { + if (!((HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_float___size_28_29_20const($7 + 104 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$8 + } + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 24 | 0 | 0, btAlignedObjectArray_float___operator_5b_5d_28int_29($7 + 104 | 0 | 0, HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0 | 0, btAlignedObjectArray_float___operator_5b_5d_28int_29($7 + 104 | 0 | 0, (HEAP32[($5 + 40 | 0) >> 2] | 0) + 1 | 0 | 0) | 0 | 0, btAlignedObjectArray_float___operator_5b_5d_28int_29($7 + 104 | 0 | 0, (HEAP32[($5 + 40 | 0) >> 2] | 0) + 2 | 0 | 0) | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 8 | 0 | 0, $5 + 24 | 0 | 0, HEAP32[($5 + 68 | 0) >> 2] | 0 | 0); + label$10 : { + if (!(Math_fround(btVector3__length2_28_29_20const($5 + 8 | 0 | 0)) <= Math_fround(HEAPF32[($7 + 168 | 0) >> 2]) & 1 | 0)) { + break label$10 + } + HEAP32[($5 + 76 | 0) >> 2] = (HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) / (3 | 0) | 0; + break label$1; + } + HEAP32[($5 + 40 | 0) >> 2] = (HEAP32[($5 + 40 | 0) >> 2] | 0) + 3 | 0; + continue label$9; + }; + } + } + btAlignedObjectArray_float___push_back_28float_20const__29($7 + 104 | 0 | 0, btVector3__getX_28_29_20const(HEAP32[($5 + 68 | 0) >> 2] | 0 | 0) | 0 | 0); + btAlignedObjectArray_float___push_back_28float_20const__29($7 + 104 | 0 | 0, btVector3__getY_28_29_20const(HEAP32[($5 + 68 | 0) >> 2] | 0 | 0) | 0 | 0); + btAlignedObjectArray_float___push_back_28float_20const__29($7 + 104 | 0 | 0, btVector3__getZ_28_29_20const(HEAP32[($5 + 68 | 0) >> 2] | 0 | 0) | 0 | 0); + $135 = btAlignedObjectArray_btIndexedMesh___operator_5b_5d_28int_29($7 + 20 | 0 | 0, 0 | 0) | 0; + HEAP32[($135 + 12 | 0) >> 2] = (HEAP32[($135 + 12 | 0) >> 2] | 0) + 1 | 0; + $142 = btAlignedObjectArray_float___operator_5b_5d_28int_29($7 + 104 | 0 | 0, 0 | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btIndexedMesh___operator_5b_5d_28int_29($7 + 20 | 0 | 0, 0 | 0) | 0, wasm2js_i32$1 = $142), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = ((btAlignedObjectArray_float___size_28_29_20const($7 + 104 | 0 | 0) | 0 | 0) / (3 | 0) | 0) - 1 | 0), HEAP32[(wasm2js_i32$0 + 76 | 0) >> 2] = wasm2js_i32$1; + } + $154 = HEAP32[($5 + 76 | 0) >> 2] | 0; + __stack_pointer = $5 + 80 | 0; + return $154 | 0; + } + + function btAlignedObjectArray_float___operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_float___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 2 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btTriangleMesh__addTriangle_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20bool_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $9 = 0, $13 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP8[($7 + 15 | 0) >> 0] = $4; + $9 = HEAP32[($7 + 28 | 0) >> 2] | 0; + $13 = btAlignedObjectArray_btIndexedMesh___operator_5b_5d_28int_29($9 + 20 | 0 | 0, 0 | 0) | 0; + HEAP32[$13 >> 2] = (HEAP32[$13 >> 2] | 0) + 1 | 0; + btTriangleMesh__addIndex_28int_29($9 | 0, btTriangleMesh__findOrAddVertex_28btVector3_20const__2c_20bool_29($9 | 0, HEAP32[($7 + 24 | 0) >> 2] | 0 | 0, (HEAPU8[($7 + 15 | 0) >> 0] | 0) & 1 | 0 | 0) | 0 | 0); + btTriangleMesh__addIndex_28int_29($9 | 0, btTriangleMesh__findOrAddVertex_28btVector3_20const__2c_20bool_29($9 | 0, HEAP32[($7 + 20 | 0) >> 2] | 0 | 0, (HEAPU8[($7 + 15 | 0) >> 0] | 0) & 1 | 0 | 0) | 0 | 0); + btTriangleMesh__addIndex_28int_29($9 | 0, btTriangleMesh__findOrAddVertex_28btVector3_20const__2c_20bool_29($9 | 0, HEAP32[($7 + 16 | 0) >> 2] | 0 | 0, (HEAPU8[($7 + 15 | 0) >> 0] | 0) & 1 | 0 | 0) | 0 | 0); + __stack_pointer = $7 + 32 | 0; + return; + } + + function btTriangleMesh__preallocateVertices_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($5 + 165 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedObjectArray_btVector3___reserve_28int_29($5 + 84 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + break label$1; + } + btAlignedObjectArray_float___reserve_28int_29($5 + 104 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btTriangleMesh__preallocateIndices_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($5 + 164 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedObjectArray_unsigned_20int___reserve_28int_29($5 + 124 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + break label$1; + } + btAlignedObjectArray_unsigned_20short___reserve_28int_29($5 + 144 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_unsigned_20int___allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_unsigned_20int_2c_2016u___allocate_28int_2c_20unsigned_20int_20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_unsigned_20int___copy_28int_2c_20int_2c_20unsigned_20int__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[((HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[((HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_unsigned_20int___destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_unsigned_20int___deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_unsigned_20int_2c_2016u___deallocate_28unsigned_20int__29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_unsigned_20short___allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_unsigned_20short_2c_2016u___allocate_28int_2c_20unsigned_20short_20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_unsigned_20short___copy_28int_2c_20int_2c_20unsigned_20short__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP16[((HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] = HEAPU16[((HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] | 0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_unsigned_20short___destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_unsigned_20short___deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_unsigned_20short_2c_2016u___deallocate_28unsigned_20short__29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btTriangleMesh___btTriangleMesh_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 100720 + 8 | 0; + btAlignedObjectArray_unsigned_20short____btAlignedObjectArray_28_29($4 + 144 | 0 | 0) | 0; + btAlignedObjectArray_unsigned_20int____btAlignedObjectArray_28_29($4 + 124 | 0 | 0) | 0; + btAlignedObjectArray_float____btAlignedObjectArray_28_29($4 + 104 | 0 | 0) | 0; + btAlignedObjectArray_btVector3____btAlignedObjectArray_28_29($4 + 84 | 0 | 0) | 0; + btTriangleIndexVertexArray___btTriangleIndexVertexArray_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_unsigned_20short____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_unsigned_20short___clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_unsigned_20int____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_unsigned_20int___clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btTriangleMesh___btTriangleMesh_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btTriangleMesh___btTriangleMesh_28_29($4 | 0) | 0; + btTriangleIndexVertexArray__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btTriangleIndexVertexArray__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btTriangleIndexVertexArray__unLockVertexBase_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return; + } + + function btTriangleIndexVertexArray__unLockReadOnlyVertexBase_28int_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return; + } + + function btTriangleIndexVertexArray__getNumSubParts_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $7 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $7 = btAlignedObjectArray_btIndexedMesh___size_28_29_20const((HEAP32[($3 + 12 | 0) >> 2] | 0) + 20 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $7 | 0; + } + + function btStridingMeshInterface__calculateSerializeBufferSize_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 28 | 0; + } + + function btAlignedAllocator_btIndexedMesh_2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btIndexedMesh___init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btAlignedObjectArray_unsigned_20short___clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_unsigned_20short___destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_unsigned_20short___size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_unsigned_20short___deallocate_28_29($4 | 0); + btAlignedObjectArray_unsigned_20short___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_unsigned_20int___clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_unsigned_20int___destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_unsigned_20int___size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_unsigned_20int___deallocate_28_29($4 | 0); + btAlignedObjectArray_unsigned_20int___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocator_unsigned_20short_2c_2016u___deallocate_28unsigned_20short__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedAllocator_unsigned_20int_2c_2016u___deallocate_28unsigned_20int__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btIndexedMesh___allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btIndexedMesh_2c_2016u___allocate_28int_2c_20btIndexedMesh_20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btIndexedMesh___copy_28int_2c_20int_2c_20btIndexedMesh__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $22 = 0, $27 = 0, $29 = 0, $33 = 0, $37 = 0, $7 = 0, $105 = 0, $115 = 0, $125 = 0, $135 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + $22 = btIndexedMesh__operator_20new_28unsigned_20long_2c_20void__29(32 | 0, (HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 5 | 0) | 0 | 0) | 0; + $27 = (HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 5 | 0) | 0; + i64toi32_i32$2 = $27; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $105 = i64toi32_i32$0; + i64toi32_i32$0 = $22; + HEAP32[i64toi32_i32$0 >> 2] = $105; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $29 = 24; + i64toi32_i32$2 = i64toi32_i32$2 + $29 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $115 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $29 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $115; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $33 = 16; + i64toi32_i32$2 = $27 + $33 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $125 = i64toi32_i32$0; + i64toi32_i32$0 = $22 + $33 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $125; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $37 = 8; + i64toi32_i32$2 = $27 + $37 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $135 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $37 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $135; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $6 + 32 | 0; + return; + } + + function btAlignedObjectArray_btIndexedMesh___destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btIndexedMesh___deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btIndexedMesh_2c_2016u___deallocate_28btIndexedMesh__29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocator_btIndexedMesh_2c_2016u___allocate_28int_2c_20btIndexedMesh_20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 5 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btAlignedAllocator_btIndexedMesh_2c_2016u___deallocate_28btIndexedMesh__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedAllocator_unsigned_20int_2c_2016u___allocate_28int_2c_20unsigned_20int_20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btAlignedAllocator_unsigned_20short_2c_2016u___allocate_28int_2c_20unsigned_20short_20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 1 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function _GLOBAL__sub_I_btTriangleMesh_cpp() { + __cxx_global_var_init_54(); + return; + } + + function __cxx_global_var_init_55() { + btInfMaskConverter__btInfMaskConverter_28int_29(114308 | 0, 2139095040 | 0) | 0; + return; + } + + function btTriangleMeshShape__btTriangleMeshShape_28btStridingMeshInterface__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $15 = 0, $21 = 0, $28 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + HEAP32[($4 + 12 | 0) >> 2] = $5; + btConcaveShape__btConcaveShape_28_29($5 | 0) | 0; + HEAP32[$5 >> 2] = 100820 + 8 | 0; + btVector3__btVector3_28_29($5 + 24 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 40 | 0 | 0) | 0; + HEAP32[($5 + 56 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 4 | 0) >> 2] = 21; + $15 = HEAP32[($4 + 4 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$15 >> 2] | 0) + 40 | 0) >> 2] | 0 | 0]($15) | 0) & 1 | 0)) { + break label$2 + } + $21 = HEAP32[($4 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$21 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($21, $5 + 24 | 0, $5 + 40 | 0); + break label$1; + } + btTriangleMeshShape__recalcLocalAabb_28_29($5 | 0); + } + $28 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $28 | 0; + } + + function btTriangleMeshShape__recalcLocalAabb_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $83 = 0, $58 = Math_fround(0), $286 = 0, $290 = 0, $102 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $3 = __stack_pointer - 80 | 0; + __stack_pointer = $3; + HEAP32[($3 + 76 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 76 | 0) >> 2] | 0; + HEAP32[($3 + 72 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3 + 72 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$1 + } + HEAPF32[($3 + 52 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 48 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 44 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 56 | 0 | 0, $3 + 52 | 0 | 0, $3 + 48 | 0 | 0, $3 + 44 | 0 | 0) | 0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($3 + 56 | 0 | 0) | 0) + ((HEAP32[($3 + 72 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = Math_fround(1.0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 68 | 0) >> 2] | 0 | 0]($3 + 24 | 0, $4, $3 + 56 | 0); + $58 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($3 + 24 | 0 | 0) | 0) + ((HEAP32[($3 + 72 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) + Math_fround(HEAPF32[($4 + 20 | 0) >> 2])); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($4 + 40 | 0 | 0) | 0) + ((HEAP32[($3 + 72 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $58), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($3 + 56 | 0 | 0) | 0) + ((HEAP32[($3 + 72 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = Math_fround(-1.0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 68 | 0) >> 2] | 0 | 0]($3 + 8 | 0, $4, $3 + 56 | 0); + $83 = 8; + i64toi32_i32$2 = ($3 + 8 | 0) + $83 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $286 = i64toi32_i32$0; + i64toi32_i32$0 = ($3 + 24 | 0) + $83 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $286; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $3; + i64toi32_i32$1 = HEAP32[($3 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($3 + 12 | 0) >> 2] | 0; + $290 = i64toi32_i32$1; + i64toi32_i32$1 = $3; + HEAP32[($3 + 24 | 0) >> 2] = $290; + HEAP32[($3 + 28 | 0) >> 2] = i64toi32_i32$0; + $102 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($3 + 24 | 0 | 0) | 0) + ((HEAP32[($3 + 72 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) - Math_fround(HEAPF32[($4 + 20 | 0) >> 2])); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($4 + 24 | 0 | 0) | 0) + ((HEAP32[($3 + 72 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $102), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP32[($3 + 72 | 0) >> 2] = (HEAP32[($3 + 72 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $3 + 80 | 0; + return; + } + + function btTriangleMeshShape___btTriangleMeshShape_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConcaveShape___btConcaveShape_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btTriangleMeshShape___btTriangleMeshShape_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[1001 | 0]($4) | 0; + btTriangleMeshShape__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btTriangleMeshShape__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btTriangleMeshShape__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $7 = 0, i64toi32_i32$2 = 0, $111 = 0, $113 = 0, $128 = 0, $130 = 0, $349 = 0, $362 = 0, $383 = 0, $396 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 240 | 0; + __stack_pointer = $6; + HEAP32[($6 + 236 | 0) >> 2] = $0; + HEAP32[($6 + 232 | 0) >> 2] = $1; + HEAP32[($6 + 228 | 0) >> 2] = $2; + HEAP32[($6 + 224 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 236 | 0) >> 2] | 0; + HEAPF32[($6 + 204 | 0) >> 2] = Math_fround(.5); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 188 | 0 | 0, $7 + 40 | 0 | 0, $7 + 24 | 0 | 0); + operator__28float_20const__2c_20btVector3_20const__29($6 + 208 | 0 | 0, $6 + 204 | 0 | 0, $6 + 188 | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($7))), HEAPF32[(wasm2js_i32$0 + 168 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($7))), HEAPF32[(wasm2js_i32$0 + 164 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($7))), HEAPF32[(wasm2js_i32$0 + 160 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 172 | 0 | 0, $6 + 168 | 0 | 0, $6 + 164 | 0 | 0, $6 + 160 | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($6 + 208 | 0 | 0, $6 + 172 | 0 | 0) | 0; + HEAPF32[($6 + 140 | 0) >> 2] = Math_fround(.5); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 124 | 0 | 0, $7 + 40 | 0 | 0, $7 + 24 | 0 | 0); + operator__28float_20const__2c_20btVector3_20const__29($6 + 144 | 0 | 0, $6 + 140 | 0 | 0, $6 + 124 | 0 | 0); + btMatrix3x3__absolute_28_29_20const($6 + 76 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($6 + 232 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator_28_29_28btVector3_20const__29_20const($6 + 60 | 0 | 0, HEAP32[($6 + 232 | 0) >> 2] | 0 | 0, $6 + 144 | 0 | 0); + btVector3__dot3_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29_20const($6 + 44 | 0 | 0, $6 + 208 | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($6 + 76 | 0 | 0, 0 | 0) | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($6 + 76 | 0 | 0, 1 | 0) | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($6 + 76 | 0 | 0, 2 | 0) | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 28 | 0 | 0, $6 + 60 | 0 | 0, $6 + 44 | 0 | 0); + $111 = HEAP32[($6 + 228 | 0) >> 2] | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 28 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 32 | 0) >> 2] | 0; + $349 = i64toi32_i32$0; + i64toi32_i32$0 = $111; + HEAP32[i64toi32_i32$0 >> 2] = $349; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $113 = 8; + i64toi32_i32$2 = ($6 + 28 | 0) + $113 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $362 = i64toi32_i32$1; + i64toi32_i32$1 = $111 + $113 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $362; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 12 | 0 | 0, $6 + 60 | 0 | 0, $6 + 44 | 0 | 0); + $128 = HEAP32[($6 + 224 | 0) >> 2] | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 12 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 16 | 0) >> 2] | 0; + $383 = i64toi32_i32$0; + i64toi32_i32$0 = $128; + HEAP32[i64toi32_i32$0 >> 2] = $383; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $130 = 8; + i64toi32_i32$2 = ($6 + 12 | 0) + $130 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $396 = i64toi32_i32$1; + i64toi32_i32$1 = $128 + $130 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $396; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $6 + 240 | 0; + return; + } + + function btTriangleMeshShape__setLocalScaling_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btStridingMeshInterface__setScaling_28btVector3_20const__29(HEAP32[($5 + 56 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + btTriangleMeshShape__recalcLocalAabb_28_29($5 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btTriangleMeshShape__getLocalScaling_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $6 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $6 = btStridingMeshInterface__getScaling_28_29_20const(HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 56 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $6 | 0; + } + + function btTriangleMeshShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $14 = 0, $7 = 0; + $6 = __stack_pointer - 64 | 0; + __stack_pointer = $6; + HEAP32[($6 + 60 | 0) >> 2] = $0; + HEAP32[($6 + 56 | 0) >> 2] = $1; + HEAP32[($6 + 52 | 0) >> 2] = $2; + HEAP32[($6 + 48 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 60 | 0) >> 2] | 0; + btTriangleMeshShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const__FilteredCallback__FilteredCallback_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29($6 + 8 | 0 | 0, HEAP32[($6 + 56 | 0) >> 2] | 0 | 0, HEAP32[($6 + 52 | 0) >> 2] | 0 | 0, HEAP32[($6 + 48 | 0) >> 2] | 0 | 0) | 0; + $14 = HEAP32[($7 + 56 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$14 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($14, $6 + 8 | 0, HEAP32[($6 + 52 | 0) >> 2] | 0, HEAP32[($6 + 48 | 0) >> 2] | 0); + btTriangleMeshShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const__FilteredCallback___FilteredCallback_28_29($6 + 8 | 0 | 0) | 0; + __stack_pointer = $6 + 64 | 0; + return; + } + + function btTriangleMeshShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const__FilteredCallback__FilteredCallback_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0, $7 = 0, $13 = 0, $16 = 0, $21 = 0, $24 = 0, $64 = 0, $74 = 0, $83 = 0, $93 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btInternalTriangleIndexCallback__btInternalTriangleIndexCallback_28_29($7 | 0) | 0; + HEAP32[$7 >> 2] = 100940 + 8 | 0; + HEAP32[($7 + 4 | 0) >> 2] = HEAP32[($6 + 8 | 0) >> 2] | 0; + $13 = $7 + 8 | 0; + i64toi32_i32$2 = HEAP32[($6 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $64 = i64toi32_i32$0; + i64toi32_i32$0 = $13; + HEAP32[i64toi32_i32$0 >> 2] = $64; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $16 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $16 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $74 = i64toi32_i32$1; + i64toi32_i32$1 = $13 + $16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $74; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $21 = $7 + 24 | 0; + i64toi32_i32$2 = HEAP32[$6 >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $83 = i64toi32_i32$0; + i64toi32_i32$0 = $21; + HEAP32[i64toi32_i32$0 >> 2] = $83; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $24 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $24 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $93 = i64toi32_i32$1; + i64toi32_i32$1 = $21 + $24 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $93; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $6 + 16 | 0; + return $7 | 0; + } + + function btTriangleMeshShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const__FilteredCallback___FilteredCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btInternalTriangleIndexCallback___btInternalTriangleIndexCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btTriangleMeshShape__calculateLocalInertia_28float_2c_20btVector3__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAPF32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + __assert_fail(86177 | 0, 74770 | 0, 184 | 0, 83783 | 0); + wasm2js_trap(); + } + + function btTriangleMeshShape__localGetSupportingVertex_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $6 = 0, $59 = 0, $179 = 0, $192 = 0; + $5 = __stack_pointer - 240 | 0; + __stack_pointer = $5; + HEAP32[($5 + 236 | 0) >> 2] = $1; + HEAP32[($5 + 232 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 236 | 0) >> 2] | 0; + btVector3__btVector3_28_29($0 | 0) | 0; + btTransform__btTransform_28_29($5 + 168 | 0 | 0) | 0; + btTransform__setIdentity_28_29($5 + 168 | 0 | 0); + SupportVertexCallback__SupportVertexCallback_28btVector3_20const__2c_20btTransform_20const__29($5 + 64 | 0 | 0, HEAP32[($5 + 232 | 0) >> 2] | 0 | 0, $5 + 168 | 0 | 0) | 0; + HEAPF32[($5 + 44 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAPF32[($5 + 40 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAPF32[($5 + 36 | 0) >> 2] = Math_fround(999999984306749440.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 48 | 0 | 0, $5 + 44 | 0 | 0, $5 + 40 | 0 | 0, $5 + 36 | 0 | 0) | 0; + operator__28btVector3_20const__29($5 + 20 | 0 | 0, $5 + 48 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($6, $5 + 64 | 0, $5 + 20 | 0, $5 + 48 | 0); + SupportVertexCallback__GetSupportVertexLocal_28_29($5 + 4 | 0 | 0, $5 + 64 | 0 | 0); + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 4 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 8 | 0) >> 2] | 0; + $179 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $179; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $59 = 8; + i64toi32_i32$2 = ($5 + 4 | 0) + $59 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $192 = i64toi32_i32$1; + i64toi32_i32$1 = $0 + $59 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $192; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + SupportVertexCallback___SupportVertexCallback_28_29($5 + 64 | 0 | 0) | 0; + __stack_pointer = $5 + 240 | 0; + return; + } + + function SupportVertexCallback__SupportVertexCallback_28btVector3_20const__2c_20btTransform_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $41 = 0, $43 = 0, $138 = 0, $151 = 0; + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 44 | 0) >> 2] = $0; + HEAP32[($5 + 40 | 0) >> 2] = $1; + HEAP32[($5 + 36 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 44 | 0) >> 2] | 0; + btTriangleCallback__btTriangleCallback_28_29($6 | 0) | 0; + HEAP32[$6 >> 2] = 101076 + 8 | 0; + HEAPF32[($5 + 32 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 28 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 24 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 4 | 0 | 0, $5 + 32 | 0 | 0, $5 + 28 | 0 | 0, $5 + 24 | 0 | 0) | 0; + btTransform__btTransform_28btTransform_20const__29($6 + 20 | 0 | 0, HEAP32[($5 + 36 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($6 + 84 | 0) >> 2] = Math_fround(-999999984306749440.0); + btVector3__btVector3_28_29($6 + 88 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btMatrix3x3_20const__29($5 + 8 | 0 | 0, HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, btTransform__getBasis_28_29($6 + 20 | 0 | 0) | 0 | 0); + $41 = $6 + 88 | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 12 | 0) >> 2] | 0; + $138 = i64toi32_i32$0; + i64toi32_i32$0 = $41; + HEAP32[i64toi32_i32$0 >> 2] = $138; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $43 = 8; + i64toi32_i32$2 = ($5 + 8 | 0) + $43 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $151 = i64toi32_i32$1; + i64toi32_i32$1 = $41 + $43 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $151; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $5 + 48 | 0; + return $6 | 0; + } + + function SupportVertexCallback__GetSupportVertexLocal_28_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, $9 = 0, $27 = 0, $37 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $1; + i64toi32_i32$2 = (HEAP32[($4 + 12 | 0) >> 2] | 0) + 4 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $27 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $27; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $9 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $9 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $37 = i64toi32_i32$1; + i64toi32_i32$1 = $0 + $9 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $37; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function SupportVertexCallback___SupportVertexCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btTriangleCallback___btTriangleCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btTriangleMeshShape__getName_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 84390 | 0; + } + + function btTriangleMeshShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const__FilteredCallback___FilteredCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btTriangleMeshShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const__FilteredCallback___FilteredCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btTriangleMeshShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const__FilteredCallback__internalProcessTriangleIndex_28btVector3__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $16 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((TestTriangleAgainstAabb2_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29(HEAP32[($6 + 8 | 0) >> 2] | 0 | 0, $7 + 8 | 0 | 0, $7 + 24 | 0 | 0) | 0) & 1 | 0)) { + break label$1 + } + $16 = HEAP32[($7 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$16 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($16, HEAP32[($6 + 8 | 0) >> 2] | 0, HEAP32[($6 + 4 | 0) >> 2] | 0, HEAP32[$6 >> 2] | 0); + } + __stack_pointer = $6 + 16 | 0; + return; + } + + function SupportVertexCallback___SupportVertexCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + SupportVertexCallback___SupportVertexCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function SupportVertexCallback__processTriangle_28btVector3__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $7 = 0, $36 = 0, $38 = 0, $126 = 0, $136 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($7 + 88 | 0 | 0, (HEAP32[($6 + 24 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 4 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + label$3 : { + if (!(Math_fround(HEAPF32[($6 + 8 | 0) >> 2]) > Math_fround(HEAPF32[($7 + 84 | 0) >> 2]) & 1 | 0)) { + break label$3 + } + HEAPF32[($7 + 84 | 0) >> 2] = Math_fround(HEAPF32[($6 + 8 | 0) >> 2]); + $36 = $7 + 4 | 0; + i64toi32_i32$2 = (HEAP32[($6 + 24 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $126 = i64toi32_i32$0; + i64toi32_i32$0 = $36; + HEAP32[i64toi32_i32$0 >> 2] = $126; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $38 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $38 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $136 = i64toi32_i32$1; + i64toi32_i32$1 = $36 + $38 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $136; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $6 + 32 | 0; + return; + } + + function _GLOBAL__sub_I_btTriangleMeshShape_cpp() { + __cxx_global_var_init_55(); + return; + } + + function __cxx_global_var_init_56() { + btInfMaskConverter__btInfMaskConverter_28int_29(114312 | 0, 2139095040 | 0) | 0; + return; + } + + function btContinuousConvexCollision__btContinuousConvexCollision_28btConvexShape_20const__2c_20btConvexShape_20const__2c_20btVoronoiSimplexSolver__2c_20btConvexPenetrationDepthSolver__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + btConvexCast__btConvexCast_28_29($8 | 0) | 0; + HEAP32[$8 >> 2] = 101132 + 8 | 0; + HEAP32[($8 + 4 | 0) >> 2] = HEAP32[($7 + 16 | 0) >> 2] | 0; + HEAP32[($8 + 8 | 0) >> 2] = HEAP32[($7 + 12 | 0) >> 2] | 0; + HEAP32[($8 + 12 | 0) >> 2] = HEAP32[($7 + 24 | 0) >> 2] | 0; + HEAP32[($8 + 16 | 0) >> 2] = HEAP32[($7 + 20 | 0) >> 2] | 0; + HEAP32[($8 + 20 | 0) >> 2] = 0; + __stack_pointer = $7 + 32 | 0; + return $8 | 0; + } + + function btConvexCast__btConvexCast_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 101256 + 8 | 0; + return $4 | 0; + } + + function btContinuousConvexCollision__btContinuousConvexCollision_28btConvexShape_20const__2c_20btStaticPlaneShape_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btConvexCast__btConvexCast_28_29($6 | 0) | 0; + HEAP32[$6 >> 2] = 101132 + 8 | 0; + HEAP32[($6 + 4 | 0) >> 2] = 0; + HEAP32[($6 + 8 | 0) >> 2] = 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + HEAP32[($6 + 16 | 0) >> 2] = 0; + HEAP32[($6 + 20 | 0) >> 2] = HEAP32[($5 + 4 | 0) >> 2] | 0; + __stack_pointer = $5 + 16 | 0; + return $6 | 0; + } + + function btContinuousConvexCollision__computeClosestPoints_28btTransform_20const__2c_20btTransform_20const__2c_20btPointCollector__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $22 = 0, $26 = 0, $116 = 0, $185 = 0, $16 = 0, $17 = 0, $19 = 0, $21 = 0, $25 = Math_fround(0), $120 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 832 | 0; + __stack_pointer = $6; + HEAP32[($6 + 828 | 0) >> 2] = $0; + HEAP32[($6 + 824 | 0) >> 2] = $1; + HEAP32[($6 + 820 | 0) >> 2] = $2; + HEAP32[($6 + 816 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 828 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($7 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + btVoronoiSimplexSolver__reset_28_29(HEAP32[($7 + 4 | 0) >> 2] | 0 | 0); + $16 = HEAP32[($7 + 12 | 0) >> 2] | 0; + $17 = HEAP32[($7 + 16 | 0) >> 2] | 0; + $19 = btCollisionShape__getShapeType_28_29_20const(HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0; + $21 = btCollisionShape__getShapeType_28_29_20const(HEAP32[($7 + 16 | 0) >> 2] | 0 | 0) | 0; + $22 = HEAP32[($7 + 12 | 0) >> 2] | 0; + $25 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$22 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($22)); + $26 = HEAP32[($7 + 16 | 0) >> 2] | 0; + btGjkPairDetector__btGjkPairDetector_28btConvexShape_20const__2c_20btConvexShape_20const__2c_20int_2c_20int_2c_20float_2c_20float_2c_20btVoronoiSimplexSolver__2c_20btConvexPenetrationDepthSolver__29($6 + 736 | 0 | 0, $16 | 0, $17 | 0, $19 | 0, $21 | 0, Math_fround($25), Math_fround(Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$26 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($26))), HEAP32[($7 + 4 | 0) >> 2] | 0 | 0, HEAP32[($7 + 8 | 0) >> 2] | 0 | 0) | 0; + btDiscreteCollisionDetectorInterface__ClosestPointInput__ClosestPointInput_28_29($6 + 604 | 0 | 0) | 0; + btTransform__operator__28btTransform_20const__29($6 + 604 | 0 | 0, HEAP32[($6 + 824 | 0) >> 2] | 0 | 0) | 0; + btTransform__operator__28btTransform_20const__29(($6 + 604 | 0) + 64 | 0 | 0, HEAP32[($6 + 820 | 0) >> 2] | 0 | 0) | 0; + btGjkPairDetector__getClosestPoints_28btDiscreteCollisionDetectorInterface__ClosestPointInput_20const__2c_20btDiscreteCollisionDetectorInterface__Result__2c_20btIDebugDraw__2c_20bool_29($6 + 736 | 0 | 0, $6 + 604 | 0 | 0, HEAP32[($6 + 816 | 0) >> 2] | 0 | 0, 0 | 0, 0 & 1 | 0 | 0); + btGjkPairDetector___btGjkPairDetector_28_29($6 + 736 | 0 | 0) | 0; + break label$1; + } + HEAP32[($6 + 600 | 0) >> 2] = HEAP32[($7 + 12 | 0) >> 2] | 0; + HEAP32[($6 + 596 | 0) >> 2] = HEAP32[($7 + 20 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btStaticPlaneShape__getPlaneNormal_28_29_20const(HEAP32[($6 + 596 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 592 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btStaticPlaneShape__getPlaneConstant_28_29_20const(HEAP32[($6 + 596 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 588 | 0) >> 2] = wasm2js_i32$1; + btTransform__btTransform_28btTransform_20const__29($6 + 524 | 0 | 0, HEAP32[($6 + 824 | 0) >> 2] | 0 | 0) | 0; + btTransform__btTransform_28_29($6 + 460 | 0 | 0) | 0; + btTransform__inverse_28_29_20const($6 + 332 | 0 | 0, HEAP32[($6 + 820 | 0) >> 2] | 0 | 0); + btTransform__operator__28btTransform_20const__29_20const($6 + 396 | 0 | 0, $6 + 332 | 0 | 0, $6 + 524 | 0 | 0); + btTransform__operator__28btTransform_20const__29($6 + 460 | 0 | 0, $6 + 396 | 0 | 0) | 0; + btTransform__btTransform_28_29($6 + 268 | 0 | 0) | 0; + btTransform__inverse_28_29_20const($6 + 140 | 0 | 0, $6 + 524 | 0 | 0); + btTransform__operator__28btTransform_20const__29_20const($6 + 204 | 0 | 0, $6 + 140 | 0 | 0, HEAP32[($6 + 820 | 0) >> 2] | 0 | 0); + btTransform__operator__28btTransform_20const__29($6 + 268 | 0 | 0, $6 + 204 | 0 | 0) | 0; + $116 = HEAP32[($6 + 600 | 0) >> 2] | 0; + $120 = btTransform__getBasis_28_29($6 + 268 | 0 | 0) | 0; + operator__28btVector3_20const__29($6 + 92 | 0 | 0, HEAP32[($6 + 592 | 0) >> 2] | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($6 + 108 | 0 | 0, $120 | 0, $6 + 92 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$116 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($6 + 124 | 0, $116, $6 + 108 | 0); + btTransform__operator_28_29_28btVector3_20const__29_20const($6 + 76 | 0 | 0, $6 + 460 | 0 | 0, $6 + 124 | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($6 + 592 | 0) >> 2] | 0 | 0, $6 + 76 | 0 | 0)) - Math_fround(HEAPF32[(HEAP32[($6 + 588 | 0) >> 2] | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 72 | 0) >> 2] = wasm2js_f32$0; + operator__28float_20const__2c_20btVector3_20const__29($6 + 40 | 0 | 0, $6 + 72 | 0 | 0, HEAP32[($6 + 592 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 56 | 0 | 0, $6 + 76 | 0 | 0, $6 + 40 | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($6 + 24 | 0 | 0, HEAP32[($6 + 820 | 0) >> 2] | 0 | 0, $6 + 56 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($6 + 8 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($6 + 820 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($6 + 592 | 0) >> 2] | 0 | 0); + $185 = HEAP32[($6 + 816 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$185 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($185, $6 + 8 | 0, $6 + 24 | 0, Math_fround(HEAPF32[($6 + 72 | 0) >> 2])); + } + __stack_pointer = $6 + 832 | 0; + return; + } + + function btContinuousConvexCollision__calcTimeOfImpact_28btTransform_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btConvexCast__CastResult__29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $9 = 0, $40 = 0, $51 = 0, $55 = Math_fround(0), $168 = 0, $169 = 0, $187 = 0, $188 = 0, $227 = 0, $364 = 0, $392 = 0, $419 = 0, $420 = 0, $431 = 0, $432 = 0, $439 = 0, $458 = 0, $475 = 0, $477 = 0, $485 = 0, $487 = 0, $847 = 0, $851 = 0, $889 = 0, $893 = 0, $368 = 0, $1348 = 0, $1352 = 0, $1372 = 0, $1376 = 0, $1460 = 0, $1473 = 0, $1482 = 0, $1495 = 0, $506 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $8 = __stack_pointer - 656 | 0; + __stack_pointer = $8; + HEAP32[($8 + 648 | 0) >> 2] = $0; + HEAP32[($8 + 644 | 0) >> 2] = $1; + HEAP32[($8 + 640 | 0) >> 2] = $2; + HEAP32[($8 + 636 | 0) >> 2] = $3; + HEAP32[($8 + 632 | 0) >> 2] = $4; + HEAP32[($8 + 628 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 648 | 0) >> 2] | 0; + btVector3__btVector3_28_29($8 + 612 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 596 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 580 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 564 | 0 | 0) | 0; + btTransformUtil__calculateVelocity_28btTransform_20const__2c_20btTransform_20const__2c_20float_2c_20btVector3__2c_20btVector3__29(HEAP32[($8 + 644 | 0) >> 2] | 0 | 0, HEAP32[($8 + 640 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(1.0)), $8 + 612 | 0 | 0, $8 + 596 | 0 | 0); + btTransformUtil__calculateVelocity_28btTransform_20const__2c_20btTransform_20const__2c_20float_2c_20btVector3__2c_20btVector3__29(HEAP32[($8 + 636 | 0) >> 2] | 0 | 0, HEAP32[($8 + 632 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(1.0)), $8 + 580 | 0 | 0, $8 + 564 | 0 | 0); + $40 = HEAP32[($9 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$40 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($40))), HEAPF32[(wasm2js_i32$0 + 560 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!((HEAP32[($9 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + $51 = HEAP32[($9 + 16 | 0) >> 2] | 0; + $55 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$51 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($51)); + break label$1; + } + $55 = Math_fround(0 | 0); + } + HEAPF32[($8 + 556 | 0) >> 2] = $55; + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(btVector3__length_28_29_20const($8 + 596 | 0 | 0)) * Math_fround(HEAPF32[($8 + 560 | 0) >> 2])) + Math_fround(Math_fround(btVector3__length_28_29_20const($8 + 564 | 0 | 0)) * Math_fround(HEAPF32[($8 + 556 | 0) >> 2])))), HEAPF32[(wasm2js_i32$0 + 552 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 536 | 0 | 0, $8 + 580 | 0 | 0, $8 + 612 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 516 | 0 | 0, $8 + 580 | 0 | 0, $8 + 612 | 0 | 0); + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btVector3__length_28_29_20const($8 + 516 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 532 | 0) >> 2] = wasm2js_f32$0; + label$3 : { + label$4 : { + if (!(Math_fround(Math_fround(HEAPF32[($8 + 532 | 0) >> 2]) + Math_fround(HEAPF32[($8 + 552 | 0) >> 2])) == Math_fround(0 | 0) & 1 | 0)) { + break label$4 + } + HEAP8[($8 + 655 | 0) >> 0] = 0 & 1 | 0; + break label$3; + } + HEAPF32[($8 + 512 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 492 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($8 + 488 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 484 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 496 | 0 | 0, $8 + 492 | 0 | 0, $8 + 488 | 0 | 0, $8 + 484 | 0 | 0) | 0; + HEAP32[($8 + 480 | 0) >> 2] = 64; + btVector3__btVector3_28_29($8 + 464 | 0 | 0) | 0; + HEAPF32[($8 + 460 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 456 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 452 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 464 | 0 | 0, $8 + 460 | 0 | 0, $8 + 456 | 0 | 0, $8 + 452 | 0 | 0); + HEAP8[($8 + 451 | 0) >> 0] = 0; + btVector3__btVector3_28_29($8 + 432 | 0 | 0) | 0; + HEAPF32[($8 + 428 | 0) >> 2] = Math_fround(HEAPF32[($8 + 512 | 0) >> 2]); + HEAP32[($8 + 424 | 0) >> 2] = 0; + HEAPF32[($8 + 420 | 0) >> 2] = Math_fround(1.0000000474974513e-03); + btPointCollector__btPointCollector_28_29($8 + 376 | 0 | 0) | 0; + btContinuousConvexCollision__computeClosestPoints_28btTransform_20const__2c_20btTransform_20const__2c_20btPointCollector__29($9 | 0, HEAP32[($8 + 644 | 0) >> 2] | 0 | 0, HEAP32[($8 + 636 | 0) >> 2] | 0 | 0, $8 + 376 | 0 | 0); + HEAP8[($8 + 451 | 0) >> 0] = (HEAPU8[($8 + 416 | 0) >> 0] | 0) & 1 | 0; + $168 = ($8 + 376 | 0) + 20 | 0; + $169 = 8; + i64toi32_i32$2 = $168 + $169 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $847 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 432 | 0) + $169 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $847; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $168; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $851 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 432 | 0) >> 2] = $851; + HEAP32[($8 + 436 | 0) >> 2] = i64toi32_i32$0; + label$5 : { + label$6 : { + if (!((HEAPU8[($8 + 451 | 0) >> 0] | 0) & 1 | 0)) { + break label$6 + } + HEAPF32[($8 + 372 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($8 + 412 | 0) >> 2]) + Math_fround(HEAPF32[((HEAP32[($8 + 628 | 0) >> 2] | 0) + 172 | 0) >> 2])); + $187 = ($8 + 376 | 0) + 4 | 0; + $188 = 8; + i64toi32_i32$2 = $187 + $188 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $889 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 464 | 0) + $188 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $889; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $187; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $893 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 464 | 0) >> 2] = $893; + HEAP32[($8 + 468 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 536 | 0 | 0, $8 + 464 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 368 | 0) >> 2] = wasm2js_f32$0; + label$7 : { + if (!(Math_fround(Math_fround(HEAPF32[($8 + 368 | 0) >> 2]) + Math_fround(HEAPF32[($8 + 552 | 0) >> 2])) <= Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$7 + } + HEAP8[($8 + 655 | 0) >> 0] = 0 & 1 | 0; + HEAP32[($8 + 364 | 0) >> 2] = 1; + break label$5; + } + label$8 : { + label$9 : while (1) { + if (!(Math_fround(HEAPF32[($8 + 372 | 0) >> 2]) > Math_fround(HEAPF32[($8 + 420 | 0) >> 2]) & 1 | 0)) { + break label$8 + } + label$10 : { + if (!((HEAP32[((HEAP32[($8 + 628 | 0) >> 2] | 0) + 168 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$10 + } + $227 = HEAP32[((HEAP32[($8 + 628 | 0) >> 2] | 0) + 168 | 0) >> 2] | 0; + HEAPF32[($8 + 344 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($8 + 340 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($8 + 336 | 0) >> 2] = Math_fround(1.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 348 | 0 | 0, $8 + 344 | 0 | 0, $8 + 340 | 0 | 0, $8 + 336 | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$227 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($227, $8 + 432 | 0, Math_fround(.20000000298023224), $8 + 348 | 0); + } + HEAPF32[($8 + 332 | 0) >> 2] = Math_fround(0 | 0); + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 536 | 0 | 0, $8 + 464 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 368 | 0) >> 2] = wasm2js_f32$0; + label$11 : { + if (!(Math_fround(Math_fround(HEAPF32[($8 + 368 | 0) >> 2]) + Math_fround(HEAPF32[($8 + 552 | 0) >> 2])) <= Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$11 + } + HEAP8[($8 + 655 | 0) >> 0] = 0 & 1 | 0; + HEAP32[($8 + 364 | 0) >> 2] = 1; + break label$5; + } + HEAPF32[($8 + 332 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($8 + 372 | 0) >> 2]) / Math_fround(Math_fround(HEAPF32[($8 + 368 | 0) >> 2]) + Math_fround(HEAPF32[($8 + 552 | 0) >> 2]))); + HEAPF32[($8 + 512 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($8 + 512 | 0) >> 2]) + Math_fround(HEAPF32[($8 + 332 | 0) >> 2])); + label$12 : { + if (!(Math_fround(HEAPF32[($8 + 512 | 0) >> 2]) > Math_fround(1.0) & 1 | 0)) { + break label$12 + } + HEAP8[($8 + 655 | 0) >> 0] = 0 & 1 | 0; + HEAP32[($8 + 364 | 0) >> 2] = 1; + break label$5; + } + label$13 : { + if (!(Math_fround(HEAPF32[($8 + 512 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$13 + } + HEAP8[($8 + 655 | 0) >> 0] = 0 & 1 | 0; + HEAP32[($8 + 364 | 0) >> 2] = 1; + break label$5; + } + label$14 : { + if (!(Math_fround(HEAPF32[($8 + 512 | 0) >> 2]) <= Math_fround(HEAPF32[($8 + 428 | 0) >> 2]) & 1 | 0)) { + break label$14 + } + HEAP8[($8 + 655 | 0) >> 0] = 0 & 1 | 0; + HEAP32[($8 + 364 | 0) >> 2] = 1; + break label$5; + } + HEAPF32[($8 + 428 | 0) >> 2] = Math_fround(HEAPF32[($8 + 512 | 0) >> 2]); + btTransform__btTransform_28_29($8 + 268 | 0 | 0) | 0; + btTransform__btTransform_28_29($8 + 204 | 0 | 0) | 0; + btTransform__btTransform_28_29($8 + 140 | 0 | 0) | 0; + btTransformUtil__integrateTransform_28btTransform_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20btTransform__29(HEAP32[($8 + 644 | 0) >> 2] | 0 | 0, $8 + 612 | 0 | 0, $8 + 596 | 0 | 0, Math_fround(Math_fround(HEAPF32[($8 + 512 | 0) >> 2])), $8 + 268 | 0 | 0); + btTransformUtil__integrateTransform_28btTransform_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20btTransform__29(HEAP32[($8 + 636 | 0) >> 2] | 0 | 0, $8 + 580 | 0 | 0, $8 + 564 | 0 | 0, Math_fround(Math_fround(HEAPF32[($8 + 512 | 0) >> 2])), $8 + 204 | 0 | 0); + btTransform__inverseTimes_28btTransform_20const__29_20const($8 + 76 | 0 | 0, $8 + 204 | 0 | 0, $8 + 268 | 0 | 0); + btTransform__operator__28btTransform_20const__29($8 + 140 | 0 | 0, $8 + 76 | 0 | 0) | 0; + label$15 : { + if (!((HEAP32[((HEAP32[($8 + 628 | 0) >> 2] | 0) + 168 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$15 + } + $364 = HEAP32[((HEAP32[($8 + 628 | 0) >> 2] | 0) + 168 | 0) >> 2] | 0; + $368 = btTransform__getOrigin_28_29($8 + 268 | 0 | 0) | 0; + HEAPF32[($8 + 56 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($8 + 52 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 48 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 60 | 0 | 0, $8 + 56 | 0 | 0, $8 + 52 | 0 | 0, $8 + 48 | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$364 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($364, $368, Math_fround(.20000000298023224), $8 + 60 | 0); + } + $392 = HEAP32[($8 + 628 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$392 >> 2] | 0) >> 2] | 0 | 0]($392, Math_fround(HEAPF32[($8 + 512 | 0) >> 2])); + btPointCollector__btPointCollector_28_29($8 + 4 | 0 | 0) | 0; + btContinuousConvexCollision__computeClosestPoints_28btTransform_20const__2c_20btTransform_20const__2c_20btPointCollector__29($9 | 0, $8 + 268 | 0 | 0, $8 + 204 | 0 | 0, $8 + 4 | 0 | 0); + label$16 : { + label$17 : { + label$18 : { + if (!((HEAPU8[($8 + 44 | 0) >> 0] | 0) & 1 | 0)) { + break label$18 + } + HEAPF32[($8 + 372 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($8 + 40 | 0) >> 2]) + Math_fround(HEAPF32[((HEAP32[($8 + 628 | 0) >> 2] | 0) + 172 | 0) >> 2])); + $419 = ($8 + 4 | 0) + 20 | 0; + $420 = 8; + i64toi32_i32$2 = $419 + $420 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1348 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 432 | 0) + $420 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1348; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $419; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1352 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 432 | 0) >> 2] = $1352; + HEAP32[($8 + 436 | 0) >> 2] = i64toi32_i32$0; + $431 = ($8 + 4 | 0) + 4 | 0; + $432 = 8; + i64toi32_i32$2 = $431 + $432 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1372 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 464 | 0) + $432 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1372; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $431; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1376 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 464 | 0) >> 2] = $1376; + HEAP32[($8 + 468 | 0) >> 2] = i64toi32_i32$0; + break label$17; + } + $439 = HEAP32[($8 + 628 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$439 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($439, -1, HEAP32[($8 + 424 | 0) >> 2] | 0); + HEAP8[($8 + 655 | 0) >> 0] = 0 & 1 | 0; + HEAP32[($8 + 364 | 0) >> 2] = 1; + break label$16; + } + HEAP32[($8 + 424 | 0) >> 2] = (HEAP32[($8 + 424 | 0) >> 2] | 0) + 1 | 0; + label$19 : { + if (!((HEAP32[($8 + 424 | 0) >> 2] | 0 | 0) > (HEAP32[($8 + 480 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$19 + } + $458 = HEAP32[($8 + 628 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$458 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($458, -2, HEAP32[($8 + 424 | 0) >> 2] | 0); + HEAP8[($8 + 655 | 0) >> 0] = 0 & 1 | 0; + HEAP32[($8 + 364 | 0) >> 2] = 1; + break label$16; + } + HEAP32[($8 + 364 | 0) >> 2] = 0; + } + btPointCollector___btPointCollector_28_29($8 + 4 | 0 | 0) | 0; + if (HEAP32[($8 + 364 | 0) >> 2] | 0) { + break label$5 + } + continue label$9; + }; + } + HEAPF32[((HEAP32[($8 + 628 | 0) >> 2] | 0) + 164 | 0) >> 2] = Math_fround(HEAPF32[($8 + 512 | 0) >> 2]); + $475 = (HEAP32[($8 + 628 | 0) >> 2] | 0) + 132 | 0; + i64toi32_i32$2 = $8; + i64toi32_i32$0 = HEAP32[($8 + 464 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($8 + 468 | 0) >> 2] | 0; + $1460 = i64toi32_i32$0; + i64toi32_i32$0 = $475; + HEAP32[i64toi32_i32$0 >> 2] = $1460; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $477 = 8; + i64toi32_i32$2 = ($8 + 464 | 0) + $477 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1473 = i64toi32_i32$1; + i64toi32_i32$1 = $475 + $477 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1473; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $485 = (HEAP32[($8 + 628 | 0) >> 2] | 0) + 148 | 0; + i64toi32_i32$2 = $8; + i64toi32_i32$0 = HEAP32[($8 + 432 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($8 + 436 | 0) >> 2] | 0; + $1482 = i64toi32_i32$0; + i64toi32_i32$0 = $485; + HEAP32[i64toi32_i32$0 >> 2] = $1482; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $487 = 8; + i64toi32_i32$2 = ($8 + 432 | 0) + $487 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1495 = i64toi32_i32$1; + i64toi32_i32$1 = $485 + $487 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1495; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP8[($8 + 655 | 0) >> 0] = 1 & 1 | 0; + HEAP32[($8 + 364 | 0) >> 2] = 1; + break label$5; + } + HEAP8[($8 + 655 | 0) >> 0] = 0 & 1 | 0; + HEAP32[($8 + 364 | 0) >> 2] = 1; + } + btPointCollector___btPointCollector_28_29($8 + 376 | 0 | 0) | 0; + } + $506 = (HEAPU8[($8 + 655 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $8 + 656 | 0; + return $506 | 0; + } + + function btPointCollector__btPointCollector_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btDiscreteCollisionDetectorInterface__Result__Result_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 101196 + 8 | 0; + btVector3__btVector3_28_29($4 + 4 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 20 | 0 | 0) | 0; + HEAPF32[($4 + 36 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAP8[($4 + 40 | 0) >> 0] = 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btTransformUtil__integrateTransform_28btTransform_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20btTransform__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + $4 = $4 | 0; + var $7 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $79 = 0, $103 = 0, $8 = 0, $10 = 0, $56 = 0, $349 = 0, $353 = 0, $88 = 0, $401 = 0, $405 = 0, $115 = 0, $119 = 0, $123 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $7 = __stack_pointer - 176 | 0; + __stack_pointer = $7; + HEAP32[($7 + 172 | 0) >> 2] = $0; + HEAP32[($7 + 168 | 0) >> 2] = $1; + HEAP32[($7 + 164 | 0) >> 2] = $2; + HEAPF32[($7 + 160 | 0) >> 2] = $3; + HEAP32[($7 + 156 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 156 | 0) >> 2] | 0; + $10 = btTransform__getOrigin_28_29_20const(HEAP32[($7 + 172 | 0) >> 2] | 0 | 0) | 0; + operator__28btVector3_20const__2c_20float_20const__29($7 + 124 | 0 | 0, HEAP32[($7 + 168 | 0) >> 2] | 0 | 0, $7 + 160 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($7 + 140 | 0 | 0, $10 | 0, $7 + 124 | 0 | 0); + btTransform__setOrigin_28btVector3_20const__29($8 | 0, $7 + 140 | 0 | 0); + btVector3__btVector3_28_29($7 + 104 | 0 | 0) | 0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const(HEAP32[($7 + 164 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 100 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($7 + 96 | 0) >> 2] = Math_fround(0 | 0); + label$1 : { + if (!(Math_fround(HEAPF32[($7 + 100 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btSqrt_28float_29(Math_fround(Math_fround(HEAPF32[($7 + 100 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 96 | 0) >> 2] = wasm2js_f32$0; + } + label$2 : { + if (!(Math_fround(Math_fround(HEAPF32[($7 + 96 | 0) >> 2]) * Math_fround(HEAPF32[($7 + 160 | 0) >> 2])) > Math_fround(.7853981852531433) & 1 | 0)) { + break label$2 + } + HEAPF32[($7 + 96 | 0) >> 2] = Math_fround(Math_fround(.7853981852531433) / Math_fround(HEAPF32[($7 + 160 | 0) >> 2])); + } + label$3 : { + label$4 : { + if (!(Math_fround(HEAPF32[($7 + 96 | 0) >> 2]) < Math_fround(1.0000000474974513e-03) & 1 | 0)) { + break label$4 + } + $56 = HEAP32[($7 + 164 | 0) >> 2] | 0; + HEAPF32[($7 + 76 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($7 + 160 | 0) >> 2]) * Math_fround(.5)) + Math_fround(-Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[($7 + 160 | 0) >> 2]) * Math_fround(HEAPF32[($7 + 160 | 0) >> 2])) * Math_fround(HEAPF32[($7 + 160 | 0) >> 2])) * Math_fround(.02083333395421505)) * Math_fround(HEAPF32[($7 + 96 | 0) >> 2])) * Math_fround(HEAPF32[($7 + 96 | 0) >> 2])))); + operator__28btVector3_20const__2c_20float_20const__29($7 + 80 | 0 | 0, $56 | 0, $7 + 76 | 0 | 0); + $79 = 8; + i64toi32_i32$2 = ($7 + 80 | 0) + $79 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $349 = i64toi32_i32$0; + i64toi32_i32$0 = ($7 + 104 | 0) + $79 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $349; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $7; + i64toi32_i32$1 = HEAP32[($7 + 80 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($7 + 84 | 0) >> 2] | 0; + $353 = i64toi32_i32$1; + i64toi32_i32$1 = $7; + HEAP32[($7 + 104 | 0) >> 2] = $353; + HEAP32[($7 + 108 | 0) >> 2] = i64toi32_i32$0; + break label$3; + } + $88 = HEAP32[($7 + 164 | 0) >> 2] | 0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(Math_fround(btSin_28float_29(Math_fround(Math_fround(Math_fround(Math_fround(.5) * Math_fround(HEAPF32[($7 + 96 | 0) >> 2])) * Math_fround(HEAPF32[($7 + 160 | 0) >> 2]))))) / Math_fround(HEAPF32[($7 + 96 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 56 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20float_20const__29($7 + 60 | 0 | 0, $88 | 0, $7 + 56 | 0 | 0); + $103 = 8; + i64toi32_i32$2 = ($7 + 60 | 0) + $103 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $401 = i64toi32_i32$0; + i64toi32_i32$0 = ($7 + 104 | 0) + $103 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $401; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $7; + i64toi32_i32$1 = HEAP32[($7 + 60 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($7 + 64 | 0) >> 2] | 0; + $405 = i64toi32_i32$1; + i64toi32_i32$1 = $7; + HEAP32[($7 + 104 | 0) >> 2] = $405; + HEAP32[($7 + 108 | 0) >> 2] = i64toi32_i32$0; + } + $115 = btVector3__x_28_29_20const($7 + 104 | 0 | 0) | 0; + $119 = btVector3__y_28_29_20const($7 + 104 | 0 | 0) | 0; + $123 = btVector3__z_28_29_20const($7 + 104 | 0 | 0) | 0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btCos_28float_29(Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[($7 + 96 | 0) >> 2]) * Math_fround(HEAPF32[($7 + 160 | 0) >> 2])) * Math_fround(.5)))))), HEAPF32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_f32$0; + btQuaternion__btQuaternion_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($7 + 40 | 0 | 0, $115 | 0, $119 | 0, $123 | 0, $7 + 36 | 0 | 0) | 0; + btTransform__getRotation_28_29_20const($7 + 20 | 0 | 0, HEAP32[($7 + 172 | 0) >> 2] | 0 | 0); + operator__28btQuaternion_20const__2c_20btQuaternion_20const__29($7 + 4 | 0 | 0, $7 + 40 | 0 | 0, $7 + 20 | 0 | 0); + btQuaternion__safeNormalize_28_29($7 + 4 | 0 | 0) | 0; + label$5 : { + label$6 : { + if (!(Math_fround(btQuaternion__length2_28_29_20const($7 + 4 | 0 | 0)) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$6 + } + btTransform__setRotation_28btQuaternion_20const__29(HEAP32[($7 + 156 | 0) >> 2] | 0 | 0, $7 + 4 | 0 | 0); + break label$5; + } + btTransform__setBasis_28btMatrix3x3_20const__29(HEAP32[($7 + 156 | 0) >> 2] | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($7 + 172 | 0) >> 2] | 0 | 0) | 0 | 0); + } + __stack_pointer = $7 + 176 | 0; + return; + } + + function btPointCollector___btPointCollector_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btDiscreteCollisionDetectorInterface__Result___Result_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btQuaternion__safeNormalize_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(btQuaternion__length2_28_29_20const($4 | 0))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + if (!(Math_fround(HEAPF32[($3 + 8 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$1 + } + btQuaternion__normalize_28_29($4 | 0) | 0; + } + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btContinuousConvexCollision___btContinuousConvexCollision_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btContinuousConvexCollision___btContinuousConvexCollision_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btPointCollector___btPointCollector_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btPointCollector___btPointCollector_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btPointCollector__setShapeIdentifiersA_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + return; + } + + function btPointCollector__setShapeIdentifiersB_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + return; + } + + function btPointCollector__addContactPoint_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0, $7 = 0, $16 = 0, $18 = 0, $24 = 0, $26 = 0, $67 = 0, $77 = 0, $86 = 0, $96 = 0; + $6 = __stack_pointer - 16 | 0; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAPF32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + label$1 : { + if (!(Math_fround(HEAPF32[$6 >> 2]) < Math_fround(HEAPF32[($7 + 36 | 0) >> 2]) & 1 | 0)) { + break label$1 + } + HEAP8[($7 + 40 | 0) >> 0] = 1; + $16 = $7 + 4 | 0; + i64toi32_i32$2 = HEAP32[($6 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $67 = i64toi32_i32$0; + i64toi32_i32$0 = $16; + HEAP32[i64toi32_i32$0 >> 2] = $67; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $18 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $18 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $77 = i64toi32_i32$1; + i64toi32_i32$1 = $16 + $18 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $77; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $24 = $7 + 20 | 0; + i64toi32_i32$2 = HEAP32[($6 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $86 = i64toi32_i32$0; + i64toi32_i32$0 = $24; + HEAP32[i64toi32_i32$0 >> 2] = $86; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $26 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $26 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $96 = i64toi32_i32$1; + i64toi32_i32$1 = $24 + $26 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $96; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($7 + 36 | 0) >> 2] = Math_fround(HEAPF32[$6 >> 2]); + } + return; + } + + function _GLOBAL__sub_I_btContinuousConvexCollision_cpp() { + __cxx_global_var_init_56(); + return; + } + + function __cxx_global_var_init_57() { + btInfMaskConverter__btInfMaskConverter_28int_29(114316 | 0, 2139095040 | 0) | 0; + return; + } + + function btConvexCast___btConvexCast_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btConvexCast___btConvexCast_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function _GLOBAL__sub_I_btConvexCast_cpp() { + __cxx_global_var_init_57(); + return; + } + + function __cxx_global_var_init_58() { + btInfMaskConverter__btInfMaskConverter_28int_29(114320 | 0, 2139095040 | 0) | 0; + return; + } + + function btGjkConvexCast__btGjkConvexCast_28btConvexShape_20const__2c_20btConvexShape_20const__2c_20btVoronoiSimplexSolver__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btConvexCast__btConvexCast_28_29($7 | 0) | 0; + HEAP32[$7 >> 2] = 101300 + 8 | 0; + HEAP32[($7 + 4 | 0) >> 2] = HEAP32[$6 >> 2] | 0; + HEAP32[($7 + 8 | 0) >> 2] = HEAP32[($6 + 8 | 0) >> 2] | 0; + HEAP32[($7 + 12 | 0) >> 2] = HEAP32[($6 + 4 | 0) >> 2] | 0; + __stack_pointer = $6 + 16 | 0; + return $7 | 0; + } + + function btGjkConvexCast__calcTimeOfImpact_28btTransform_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btConvexCast__CastResult__29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $9 = 0, $24 = 0, $40 = 0, $155 = 0, $156 = 0, $171 = 0, $172 = 0, $242 = 0, $294 = 0, $295 = 0, $304 = 0, $306 = 0, $319 = 0, $321 = 0, $333 = 0, $334 = 0, $345 = 0, $346 = 0, $379 = 0, $381 = 0, $389 = 0, $391 = 0, $480 = 0, $484 = 0, $515 = 0, $519 = 0, $732 = 0, $736 = 0, $767 = 0, $771 = 0, $1024 = 0, $1028 = 0, $1037 = 0, $1050 = 0, $1066 = 0, $1076 = 0, $1103 = 0, $1107 = 0, $1127 = 0, $1131 = 0, $1189 = 0, $1202 = 0, $1211 = 0, $1224 = 0, $413 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $8 = __stack_pointer - 544 | 0; + __stack_pointer = $8; + HEAP32[($8 + 536 | 0) >> 2] = $0; + HEAP32[($8 + 532 | 0) >> 2] = $1; + HEAP32[($8 + 528 | 0) >> 2] = $2; + HEAP32[($8 + 524 | 0) >> 2] = $3; + HEAP32[($8 + 520 | 0) >> 2] = $4; + HEAP32[($8 + 516 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 536 | 0) >> 2] | 0; + btVoronoiSimplexSolver__reset_28_29(HEAP32[($9 + 4 | 0) >> 2] | 0 | 0); + btVector3__btVector3_28_29($8 + 496 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 480 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 464 | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($8 + 528 | 0) >> 2] | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($8 + 532 | 0) >> 2] | 0 | 0) | 0 | 0); + $24 = 8; + i64toi32_i32$2 = ($8 + 464 | 0) + $24 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $480 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 496 | 0) + $24 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $480; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 464 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 468 | 0) >> 2] | 0; + $484 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 496 | 0) >> 2] = $484; + HEAP32[($8 + 500 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 448 | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($8 + 520 | 0) >> 2] | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($8 + 524 | 0) >> 2] | 0 | 0) | 0 | 0); + $40 = 8; + i64toi32_i32$2 = ($8 + 448 | 0) + $40 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $515 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 480 | 0) + $40 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $515; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 448 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 452 | 0) >> 2] | 0; + $519 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 480 | 0) >> 2] = $519; + HEAP32[($8 + 484 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($8 + 444 | 0) >> 2] = Math_fround(1.0000000474974513e-03); + HEAPF32[($8 + 440 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 420 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($8 + 416 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 412 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 424 | 0 | 0, $8 + 420 | 0 | 0, $8 + 416 | 0 | 0, $8 + 412 | 0 | 0) | 0; + HEAP32[($8 + 408 | 0) >> 2] = 32; + btVector3__btVector3_28_29($8 + 392 | 0 | 0) | 0; + HEAPF32[($8 + 388 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 384 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 380 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 392 | 0 | 0, $8 + 388 | 0 | 0, $8 + 384 | 0 | 0, $8 + 380 | 0 | 0); + HEAP8[($8 + 379 | 0) >> 0] = 0; + btVector3__btVector3_28_29($8 + 360 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 344 | 0 | 0, $8 + 496 | 0 | 0, $8 + 480 | 0 | 0); + HEAPF32[($8 + 340 | 0) >> 2] = Math_fround(HEAPF32[($8 + 440 | 0) >> 2]); + HEAP32[($8 + 336 | 0) >> 2] = 0; + btTransform__btTransform_28_29($8 + 272 | 0 | 0) | 0; + btTransform__setIdentity_28_29($8 + 272 | 0 | 0); + btPointCollector__btPointCollector_28_29($8 + 228 | 0 | 0) | 0; + btGjkPairDetector__btGjkPairDetector_28btConvexShape_20const__2c_20btConvexShape_20const__2c_20btVoronoiSimplexSolver__2c_20btConvexPenetrationDepthSolver__29($8 + 148 | 0 | 0, HEAP32[($9 + 8 | 0) >> 2] | 0 | 0, HEAP32[($9 + 12 | 0) >> 2] | 0 | 0, HEAP32[($9 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + btDiscreteCollisionDetectorInterface__ClosestPointInput__ClosestPointInput_28_29($8 + 16 | 0 | 0) | 0; + btTransform__operator__28btTransform_20const__29($8 + 16 | 0 | 0, HEAP32[($8 + 532 | 0) >> 2] | 0 | 0) | 0; + btTransform__operator__28btTransform_20const__29(($8 + 16 | 0) + 64 | 0 | 0, HEAP32[($8 + 524 | 0) >> 2] | 0 | 0) | 0; + btGjkPairDetector__getClosestPoints_28btDiscreteCollisionDetectorInterface__ClosestPointInput_20const__2c_20btDiscreteCollisionDetectorInterface__Result__2c_20btIDebugDraw__2c_20bool_29($8 + 148 | 0 | 0, $8 + 16 | 0 | 0, $8 + 228 | 0 | 0, 0 | 0, 0 & 1 | 0 | 0); + HEAP8[($8 + 379 | 0) >> 0] = (HEAPU8[($8 + 268 | 0) >> 0] | 0) & 1 | 0; + $155 = ($8 + 228 | 0) + 20 | 0; + $156 = 8; + i64toi32_i32$2 = $155 + $156 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $732 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 360 | 0) + $156 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $732; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $155; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $736 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 360 | 0) >> 2] = $736; + HEAP32[($8 + 364 | 0) >> 2] = i64toi32_i32$0; + label$1 : { + label$2 : { + if (!((HEAPU8[($8 + 379 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + HEAPF32[($8 + 12 | 0) >> 2] = Math_fround(HEAPF32[($8 + 264 | 0) >> 2]); + $171 = ($8 + 228 | 0) + 4 | 0; + $172 = 8; + i64toi32_i32$2 = $171 + $172 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $767 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 392 | 0) + $172 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $767; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $171; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $771 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 392 | 0) >> 2] = $771; + HEAP32[($8 + 396 | 0) >> 2] = i64toi32_i32$0; + label$3 : { + label$4 : while (1) { + if (!(Math_fround(HEAPF32[($8 + 12 | 0) >> 2]) > Math_fround(HEAPF32[($8 + 444 | 0) >> 2]) & 1 | 0)) { + break label$3 + } + HEAP32[($8 + 336 | 0) >> 2] = (HEAP32[($8 + 336 | 0) >> 2] | 0) + 1 | 0; + label$5 : { + if (!((HEAP32[($8 + 336 | 0) >> 2] | 0 | 0) > (HEAP32[($8 + 408 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + HEAP8[($8 + 543 | 0) >> 0] = 0 & 1 | 0; + HEAP32[($8 + 8 | 0) >> 2] = 1; + break label$1; + } + HEAPF32[($8 + 4 | 0) >> 2] = Math_fround(0 | 0); + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 344 | 0 | 0, $8 + 392 | 0 | 0))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAPF32[($8 + 4 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($8 + 12 | 0) >> 2]) / Math_fround(HEAPF32[$8 >> 2])); + HEAPF32[($8 + 440 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($8 + 440 | 0) >> 2]) - Math_fround(HEAPF32[($8 + 4 | 0) >> 2])); + label$6 : { + if (!(Math_fround(HEAPF32[($8 + 440 | 0) >> 2]) > Math_fround(1.0) & 1 | 0)) { + break label$6 + } + HEAP8[($8 + 543 | 0) >> 0] = 0 & 1 | 0; + HEAP32[($8 + 8 | 0) >> 2] = 1; + break label$1; + } + label$7 : { + if (!(Math_fround(HEAPF32[($8 + 440 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$7 + } + HEAP8[($8 + 543 | 0) >> 0] = 0 & 1 | 0; + HEAP32[($8 + 8 | 0) >> 2] = 1; + break label$1; + } + label$8 : { + if (!(Math_fround(HEAPF32[($8 + 440 | 0) >> 2]) <= Math_fround(HEAPF32[($8 + 340 | 0) >> 2]) & 1 | 0)) { + break label$8 + } + HEAP8[($8 + 543 | 0) >> 0] = 0 & 1 | 0; + HEAP32[($8 + 8 | 0) >> 2] = 1; + break label$1; + } + HEAPF32[($8 + 340 | 0) >> 2] = Math_fround(HEAPF32[($8 + 440 | 0) >> 2]); + $242 = HEAP32[($8 + 516 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$242 >> 2] | 0) >> 2] | 0 | 0]($242, Math_fround(HEAPF32[($8 + 440 | 0) >> 2])); + btVector3__setInterpolate3_28btVector3_20const__2c_20btVector3_20const__2c_20float_29(btTransform__getOrigin_28_29($8 + 16 | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($8 + 532 | 0) >> 2] | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($8 + 528 | 0) >> 2] | 0 | 0) | 0 | 0, Math_fround(Math_fround(HEAPF32[($8 + 440 | 0) >> 2]))); + btVector3__setInterpolate3_28btVector3_20const__2c_20btVector3_20const__2c_20float_29(btTransform__getOrigin_28_29(($8 + 16 | 0) + 64 | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($8 + 524 | 0) >> 2] | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($8 + 520 | 0) >> 2] | 0 | 0) | 0 | 0, Math_fround(Math_fround(HEAPF32[($8 + 440 | 0) >> 2]))); + btGjkPairDetector__getClosestPoints_28btDiscreteCollisionDetectorInterface__ClosestPointInput_20const__2c_20btDiscreteCollisionDetectorInterface__Result__2c_20btIDebugDraw__2c_20bool_29($8 + 148 | 0 | 0, $8 + 16 | 0 | 0, $8 + 228 | 0 | 0, 0 | 0, 0 & 1 | 0 | 0); + label$9 : { + label$10 : { + if (!((HEAPU8[($8 + 268 | 0) >> 0] | 0) & 1 | 0)) { + break label$10 + } + label$11 : { + if (!(Math_fround(HEAPF32[($8 + 264 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$11 + } + HEAPF32[((HEAP32[($8 + 516 | 0) >> 2] | 0) + 164 | 0) >> 2] = Math_fround(HEAPF32[($8 + 340 | 0) >> 2]); + $294 = ($8 + 228 | 0) + 4 | 0; + $295 = 8; + i64toi32_i32$2 = $294 + $295 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1024 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 392 | 0) + $295 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1024; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $294; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1028 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 392 | 0) >> 2] = $1028; + HEAP32[($8 + 396 | 0) >> 2] = i64toi32_i32$0; + $304 = (HEAP32[($8 + 516 | 0) >> 2] | 0) + 132 | 0; + i64toi32_i32$2 = $8; + i64toi32_i32$0 = HEAP32[($8 + 392 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($8 + 396 | 0) >> 2] | 0; + $1037 = i64toi32_i32$0; + i64toi32_i32$0 = $304; + HEAP32[i64toi32_i32$0 >> 2] = $1037; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $306 = 8; + i64toi32_i32$2 = ($8 + 392 | 0) + $306 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1050 = i64toi32_i32$1; + i64toi32_i32$1 = $304 + $306 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1050; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $319 = (HEAP32[($8 + 516 | 0) >> 2] | 0) + 148 | 0; + i64toi32_i32$2 = ($8 + 228 | 0) + 20 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1066 = i64toi32_i32$0; + i64toi32_i32$0 = $319; + HEAP32[i64toi32_i32$0 >> 2] = $1066; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $321 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $321 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1076 = i64toi32_i32$1; + i64toi32_i32$1 = $319 + $321 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1076; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP8[($8 + 543 | 0) >> 0] = 1 & 1 | 0; + HEAP32[($8 + 8 | 0) >> 2] = 1; + break label$1; + } + $333 = ($8 + 228 | 0) + 20 | 0; + $334 = 8; + i64toi32_i32$2 = $333 + $334 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1103 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 360 | 0) + $334 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1103; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $333; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1107 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 360 | 0) >> 2] = $1107; + HEAP32[($8 + 364 | 0) >> 2] = i64toi32_i32$0; + $345 = ($8 + 228 | 0) + 4 | 0; + $346 = 8; + i64toi32_i32$2 = $345 + $346 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1127 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 392 | 0) + $346 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1127; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $345; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1131 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 392 | 0) >> 2] = $1131; + HEAP32[($8 + 396 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($8 + 12 | 0) >> 2] = Math_fround(HEAPF32[($8 + 264 | 0) >> 2]); + break label$9; + } + HEAP8[($8 + 543 | 0) >> 0] = 0 & 1 | 0; + HEAP32[($8 + 8 | 0) >> 2] = 1; + break label$1; + } + continue label$4; + }; + } + label$12 : { + if (!(Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 392 | 0 | 0, $8 + 344 | 0 | 0)) >= Math_fround(-Math_fround(HEAPF32[((HEAP32[($8 + 516 | 0) >> 2] | 0) + 172 | 0) >> 2])) & 1 | 0)) { + break label$12 + } + HEAP8[($8 + 543 | 0) >> 0] = 0 & 1 | 0; + HEAP32[($8 + 8 | 0) >> 2] = 1; + break label$1; + } + HEAPF32[((HEAP32[($8 + 516 | 0) >> 2] | 0) + 164 | 0) >> 2] = Math_fround(HEAPF32[($8 + 440 | 0) >> 2]); + $379 = (HEAP32[($8 + 516 | 0) >> 2] | 0) + 132 | 0; + i64toi32_i32$2 = $8; + i64toi32_i32$0 = HEAP32[($8 + 392 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($8 + 396 | 0) >> 2] | 0; + $1189 = i64toi32_i32$0; + i64toi32_i32$0 = $379; + HEAP32[i64toi32_i32$0 >> 2] = $1189; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $381 = 8; + i64toi32_i32$2 = ($8 + 392 | 0) + $381 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1202 = i64toi32_i32$1; + i64toi32_i32$1 = $379 + $381 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1202; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $389 = (HEAP32[($8 + 516 | 0) >> 2] | 0) + 148 | 0; + i64toi32_i32$2 = $8; + i64toi32_i32$0 = HEAP32[($8 + 360 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($8 + 364 | 0) >> 2] | 0; + $1211 = i64toi32_i32$0; + i64toi32_i32$0 = $389; + HEAP32[i64toi32_i32$0 >> 2] = $1211; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $391 = 8; + i64toi32_i32$2 = ($8 + 360 | 0) + $391 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1224 = i64toi32_i32$1; + i64toi32_i32$1 = $389 + $391 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1224; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP8[($8 + 543 | 0) >> 0] = 1 & 1 | 0; + HEAP32[($8 + 8 | 0) >> 2] = 1; + break label$1; + } + HEAP8[($8 + 543 | 0) >> 0] = 0 & 1 | 0; + HEAP32[($8 + 8 | 0) >> 2] = 1; + } + btGjkPairDetector___btGjkPairDetector_28_29($8 + 148 | 0 | 0) | 0; + btPointCollector___btPointCollector_28_29($8 + 228 | 0 | 0) | 0; + $413 = (HEAPU8[($8 + 543 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $8 + 544 | 0; + return $413 | 0; + } + + function btGjkConvexCast___btGjkConvexCast_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btGjkConvexCast___btGjkConvexCast_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function _GLOBAL__sub_I_btGjkConvexCast_cpp() { + __cxx_global_var_init_58(); + return; + } + + function __cxx_global_var_init_59() { + btInfMaskConverter__btInfMaskConverter_28int_29(114324 | 0, 2139095040 | 0) | 0; + return; + } + + function btGjkEpaSolver2__Distance_28btConvexShape_20const__2c_20btTransform_20const__2c_20btConvexShape_20const__2c_20btTransform_20const__2c_20btVector3_20const__2c_20btGjkEpaSolver2__sResults__29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $162 = 0, $164 = 0, $181 = 0, $183 = 0, $200 = 0, $202 = 0, $221 = Math_fround(0), $561 = 0, $574 = 0, $599 = 0, $612 = 0, $636 = 0, $649 = 0, $211 = Math_fround(0), $247 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $8 = __stack_pointer - 736 | 0; + __stack_pointer = $8; + HEAP32[($8 + 728 | 0) >> 2] = $0; + HEAP32[($8 + 724 | 0) >> 2] = $1; + HEAP32[($8 + 720 | 0) >> 2] = $2; + HEAP32[($8 + 716 | 0) >> 2] = $3; + HEAP32[($8 + 712 | 0) >> 2] = $4; + HEAP32[($8 + 708 | 0) >> 2] = $5; + gjkepa2_impl__MinkowskiDiff__MinkowskiDiff_28_29($8 + 580 | 0 | 0) | 0; + gjkepa2_impl__Initialize_28btConvexShape_20const__2c_20btTransform_20const__2c_20btConvexShape_20const__2c_20btTransform_20const__2c_20btGjkEpaSolver2__sResults__2c_20gjkepa2_impl__MinkowskiDiff__2c_20bool_29(HEAP32[($8 + 728 | 0) >> 2] | 0 | 0, HEAP32[($8 + 724 | 0) >> 2] | 0 | 0, HEAP32[($8 + 720 | 0) >> 2] | 0 | 0, HEAP32[($8 + 716 | 0) >> 2] | 0 | 0, HEAP32[($8 + 708 | 0) >> 2] | 0 | 0, $8 + 580 | 0 | 0, 0 & 1 | 0 | 0); + gjkepa2_impl__GJK__GJK_28_29($8 + 200 | 0 | 0) | 0; + (wasm2js_i32$0 = $8, wasm2js_i32$1 = gjkepa2_impl__GJK__Evaluate_28gjkepa2_impl__MinkowskiDiff_20const__2c_20btVector3_20const__29($8 + 200 | 0 | 0, $8 + 580 | 0 | 0, HEAP32[($8 + 712 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 196 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (HEAP32[($8 + 196 | 0) >> 2] | 0) { + break label$2 + } + HEAPF32[($8 + 176 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 172 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 168 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 180 | 0 | 0, $8 + 176 | 0 | 0, $8 + 172 | 0 | 0, $8 + 168 | 0 | 0) | 0; + HEAPF32[($8 + 148 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 144 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 140 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 152 | 0 | 0, $8 + 148 | 0 | 0, $8 + 144 | 0 | 0, $8 + 140 | 0 | 0) | 0; + HEAP32[($8 + 136 | 0) >> 2] = 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($8 + 136 | 0) >> 2] | 0) >>> 0 < (HEAP32[((HEAP32[($8 + 572 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$3 + } + HEAPF32[($8 + 132 | 0) >> 2] = Math_fround(HEAPF32[(((HEAP32[($8 + 572 | 0) >> 2] | 0) + 16 | 0) + ((HEAP32[($8 + 136 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + gjkepa2_impl__MinkowskiDiff__Support_28btVector3_20const__2c_20unsigned_20int_29_20const($8 + 100 | 0 | 0, $8 + 580 | 0 | 0, HEAP32[((HEAP32[($8 + 572 | 0) >> 2] | 0) + ((HEAP32[($8 + 136 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0, 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($8 + 116 | 0 | 0, $8 + 100 | 0 | 0, $8 + 132 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($8 + 180 | 0 | 0, $8 + 116 | 0 | 0) | 0; + operator__28btVector3_20const__29($8 + 52 | 0 | 0, HEAP32[((HEAP32[($8 + 572 | 0) >> 2] | 0) + ((HEAP32[($8 + 136 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0); + gjkepa2_impl__MinkowskiDiff__Support_28btVector3_20const__2c_20unsigned_20int_29_20const($8 + 68 | 0 | 0, $8 + 580 | 0 | 0, $8 + 52 | 0 | 0, 1 | 0); + operator__28btVector3_20const__2c_20float_20const__29($8 + 84 | 0 | 0, $8 + 68 | 0 | 0, $8 + 132 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($8 + 152 | 0 | 0, $8 + 84 | 0 | 0) | 0; + HEAP32[($8 + 136 | 0) >> 2] = (HEAP32[($8 + 136 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + btTransform__operator__28btVector3_20const__29_20const($8 + 36 | 0 | 0, HEAP32[($8 + 724 | 0) >> 2] | 0 | 0, $8 + 180 | 0 | 0); + $162 = (HEAP32[($8 + 708 | 0) >> 2] | 0) + 4 | 0; + i64toi32_i32$2 = $8; + i64toi32_i32$0 = HEAP32[($8 + 36 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($8 + 40 | 0) >> 2] | 0; + $561 = i64toi32_i32$0; + i64toi32_i32$0 = $162; + HEAP32[i64toi32_i32$0 >> 2] = $561; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $164 = 8; + i64toi32_i32$2 = ($8 + 36 | 0) + $164 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $574 = i64toi32_i32$1; + i64toi32_i32$1 = $162 + $164 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $574; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btTransform__operator__28btVector3_20const__29_20const($8 + 20 | 0 | 0, HEAP32[($8 + 724 | 0) >> 2] | 0 | 0, $8 + 152 | 0 | 0); + $181 = ((HEAP32[($8 + 708 | 0) >> 2] | 0) + 4 | 0) + 16 | 0; + i64toi32_i32$2 = $8; + i64toi32_i32$0 = HEAP32[($8 + 20 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($8 + 24 | 0) >> 2] | 0; + $599 = i64toi32_i32$0; + i64toi32_i32$0 = $181; + HEAP32[i64toi32_i32$0 >> 2] = $599; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $183 = 8; + i64toi32_i32$2 = ($8 + 20 | 0) + $183 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $612 = i64toi32_i32$1; + i64toi32_i32$1 = $181 + $183 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $612; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 4 | 0 | 0, $8 + 180 | 0 | 0, $8 + 152 | 0 | 0); + $200 = (HEAP32[($8 + 708 | 0) >> 2] | 0) + 36 | 0; + i64toi32_i32$2 = $8; + i64toi32_i32$0 = HEAP32[($8 + 4 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($8 + 8 | 0) >> 2] | 0; + $636 = i64toi32_i32$0; + i64toi32_i32$0 = $200; + HEAP32[i64toi32_i32$0 >> 2] = $636; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $202 = 8; + i64toi32_i32$2 = ($8 + 4 | 0) + $202 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $649 = i64toi32_i32$1; + i64toi32_i32$1 = $200 + $202 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $649; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $211 = Math_fround(btVector3__length_28_29_20const((HEAP32[($8 + 708 | 0) >> 2] | 0) + 36 | 0 | 0)); + HEAPF32[((HEAP32[($8 + 708 | 0) >> 2] | 0) + 52 | 0) >> 2] = $211; + label$5 : { + label$6 : { + if (!(Math_fround(HEAPF32[((HEAP32[($8 + 708 | 0) >> 2] | 0) + 52 | 0) >> 2]) > Math_fround(9.999999747378752e-05) & 1 | 0)) { + break label$6 + } + $221 = Math_fround(HEAPF32[((HEAP32[($8 + 708 | 0) >> 2] | 0) + 52 | 0) >> 2]); + break label$5; + } + $221 = Math_fround(1.0); + } + HEAPF32[$8 >> 2] = $221; + btVector3__operator___28float_20const__29((HEAP32[($8 + 708 | 0) >> 2] | 0) + 36 | 0 | 0, $8 | 0) | 0; + HEAP8[($8 + 735 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + HEAP32[(HEAP32[($8 + 708 | 0) >> 2] | 0) >> 2] = (HEAP32[($8 + 196 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0 ? 1 : 2; + HEAP8[($8 + 735 | 0) >> 0] = 0 & 1 | 0; + } + $247 = (HEAPU8[($8 + 735 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $8 + 736 | 0; + return $247 | 0; + } + + function gjkepa2_impl__MinkowskiDiff__MinkowskiDiff_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btMatrix3x3__btMatrix3x3_28_29($4 + 8 | 0 | 0) | 0; + btTransform__btTransform_28_29($4 + 56 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function gjkepa2_impl__Initialize_28btConvexShape_20const__2c_20btTransform_20const__2c_20btConvexShape_20const__2c_20btTransform_20const__2c_20btGjkEpaSolver2__sResults__2c_20gjkepa2_impl__MinkowskiDiff__2c_20bool_29($0, $1, $2, $3, $4, $5, $6) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + var $9 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $33 = 0, $35 = 0, $43 = 0, $45 = 0, $149 = 0, $162 = 0, $171 = 0, $181 = 0; + $9 = __stack_pointer - 176 | 0; + __stack_pointer = $9; + HEAP32[($9 + 172 | 0) >> 2] = $0; + HEAP32[($9 + 168 | 0) >> 2] = $1; + HEAP32[($9 + 164 | 0) >> 2] = $2; + HEAP32[($9 + 160 | 0) >> 2] = $3; + HEAP32[($9 + 156 | 0) >> 2] = $4; + HEAP32[($9 + 152 | 0) >> 2] = $5; + HEAP8[($9 + 151 | 0) >> 0] = $6; + HEAPF32[($9 + 128 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($9 + 124 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($9 + 120 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($9 + 132 | 0 | 0, $9 + 128 | 0 | 0, $9 + 124 | 0 | 0, $9 + 120 | 0 | 0) | 0; + $33 = ((HEAP32[($9 + 156 | 0) >> 2] | 0) + 4 | 0) + 16 | 0; + i64toi32_i32$2 = $9; + i64toi32_i32$0 = HEAP32[($9 + 132 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 136 | 0) >> 2] | 0; + $149 = i64toi32_i32$0; + i64toi32_i32$0 = $33; + HEAP32[i64toi32_i32$0 >> 2] = $149; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $35 = 8; + i64toi32_i32$2 = ($9 + 132 | 0) + $35 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $162 = i64toi32_i32$1; + i64toi32_i32$1 = $33 + $35 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $162; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $43 = (HEAP32[($9 + 156 | 0) >> 2] | 0) + 4 | 0; + i64toi32_i32$2 = $33; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $171 = i64toi32_i32$0; + i64toi32_i32$0 = $43; + HEAP32[i64toi32_i32$0 >> 2] = $171; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $45 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $45 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $181 = i64toi32_i32$1; + i64toi32_i32$1 = $43 + $45 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $181; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[(HEAP32[($9 + 156 | 0) >> 2] | 0) >> 2] = 0; + HEAP32[(HEAP32[($9 + 152 | 0) >> 2] | 0) >> 2] = HEAP32[($9 + 172 | 0) >> 2] | 0; + HEAP32[((HEAP32[($9 + 152 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($9 + 164 | 0) >> 2] | 0; + btMatrix3x3__transposeTimes_28btMatrix3x3_20const__29_20const($9 + 72 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($9 + 160 | 0) >> 2] | 0 | 0) | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($9 + 168 | 0) >> 2] | 0 | 0) | 0 | 0); + btMatrix3x3__operator__28btMatrix3x3_20const__29((HEAP32[($9 + 152 | 0) >> 2] | 0) + 8 | 0 | 0, $9 + 72 | 0 | 0) | 0; + btTransform__inverseTimes_28btTransform_20const__29_20const($9 + 8 | 0 | 0, HEAP32[($9 + 168 | 0) >> 2] | 0 | 0, HEAP32[($9 + 160 | 0) >> 2] | 0 | 0); + btTransform__operator__28btTransform_20const__29((HEAP32[($9 + 152 | 0) >> 2] | 0) + 56 | 0 | 0, $9 + 8 | 0 | 0) | 0; + gjkepa2_impl__MinkowskiDiff__EnableMargin_28bool_29(HEAP32[($9 + 152 | 0) >> 2] | 0 | 0, (HEAPU8[($9 + 151 | 0) >> 0] | 0) & 1 | 0 | 0); + __stack_pointer = $9 + 176 | 0; + return; + } + + function gjkepa2_impl__GJK__GJK_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $8 = 0, $11 = 0, $12 = 0, $14 = 0, $10 = 0, $20 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $4; + gjkepa2_impl__MinkowskiDiff__MinkowskiDiff_28_29($4 | 0) | 0; + btVector3__btVector3_28_29($4 + 128 | 0 | 0) | 0; + $8 = $4 + 220 | 0; + $10 = $8 + 128 | 0; + $11 = $8; + label$1 : while (1) { + $12 = $11; + gjkepa2_impl__GJK__sSV__sSV_28_29($12 | 0) | 0; + $14 = $12 + 32 | 0; + $11 = $14; + if (!(($14 | 0) == ($10 | 0) & 1 | 0)) { + continue label$1 + } + break label$1; + }; + gjkepa2_impl__GJK__Initialize_28_29($4 | 0); + $20 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $20 | 0; + } + + function gjkepa2_impl__GJK__Evaluate_28gjkepa2_impl__MinkowskiDiff_20const__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $110 = 0, $120 = 0, $130 = 0, $14 = 0, $17 = 0, $18 = 0, $20 = 0, $50 = 0, $52 = 0, $97 = 0, $99 = 0, $112 = 0, $122 = 0, $132 = 0, $138 = 0, $140 = 0, $234 = 0, $240 = 0, $242 = 0, $282 = 0, $368 = 0, $370 = 0, $415 = 0, $416 = 0, $453 = 0, $478 = 0, $486 = 0, $496 = 0, $16 = 0, $610 = 0, $620 = 0, $60 = 0, $703 = 0, $713 = 0, $731 = 0, $741 = 0, $752 = 0, $762 = 0, $773 = 0, $783 = 0, $791 = 0, $801 = 0, $168 = 0, $229 = 0, $999 = 0, $1009 = 0, $1257 = 0, $1270 = 0, $411 = Math_fround(0), $414 = 0, $450 = 0, $503 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 288 | 0; + __stack_pointer = $5; + HEAP32[($5 + 284 | 0) >> 2] = $0; + HEAP32[($5 + 280 | 0) >> 2] = $1; + HEAP32[($5 + 276 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 284 | 0) >> 2] | 0; + HEAP32[($5 + 272 | 0) >> 2] = 0; + HEAPF32[($5 + 268 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 264 | 0) >> 2] = Math_fround(0 | 0); + $14 = $5 + 192 | 0; + $16 = $14 + 64 | 0; + $17 = $14; + label$1 : while (1) { + $18 = $17; + btVector3__btVector3_28_29($18 | 0) | 0; + $20 = $18 + 16 | 0; + $17 = $20; + if (!(($20 | 0) == ($16 | 0) & 1 | 0)) { + continue label$1 + } + break label$1; + }; + HEAP32[($5 + 188 | 0) >> 2] = 0; + HEAP32[($6 + 348 | 0) >> 2] = $6 + 220 | 0; + HEAP32[($6 + 352 | 0) >> 2] = ($6 + 220 | 0) + 32 | 0; + HEAP32[($6 + 356 | 0) >> 2] = ($6 + 220 | 0) + 64 | 0; + HEAP32[($6 + 360 | 0) >> 2] = ($6 + 220 | 0) + 96 | 0; + HEAP32[($6 + 364 | 0) >> 2] = 4; + HEAP32[($6 + 368 | 0) >> 2] = 0; + HEAP32[($6 + 376 | 0) >> 2] = 0; + gjkepa2_impl__MinkowskiDiff__operator__28gjkepa2_impl__MinkowskiDiff_20const__29($6 | 0, HEAP32[($5 + 280 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($6 + 144 | 0) >> 2] = Math_fround(0 | 0); + HEAP32[($6 + 180 | 0) >> 2] = 0; + $50 = $6 + 128 | 0; + i64toi32_i32$2 = HEAP32[($5 + 276 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $610 = i64toi32_i32$0; + i64toi32_i32$0 = $50; + HEAP32[i64toi32_i32$0 >> 2] = $610; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $52 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $52 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $620 = i64toi32_i32$1; + i64toi32_i32$1 = $50 + $52 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $620; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($6 + 128 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 184 | 0) >> 2] = wasm2js_f32$0; + $60 = $6 + 148 | 0; + label$2 : { + label$3 : { + if (!(Math_fround(HEAPF32[($5 + 184 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$3 + } + operator__28btVector3_20const__29($5 + 168 | 0 | 0, $6 + 128 | 0 | 0); + break label$2; + } + HEAPF32[($5 + 164 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($5 + 160 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 156 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 168 | 0 | 0, $5 + 164 | 0 | 0, $5 + 160 | 0 | 0, $5 + 156 | 0 | 0) | 0; + } + gjkepa2_impl__GJK__appendvertice_28gjkepa2_impl__GJK__sSimplex__2c_20btVector3_20const__29($6 | 0, $60 | 0, $5 + 168 | 0 | 0); + HEAPF32[($6 + 164 | 0) >> 2] = Math_fround(1.0); + $97 = $6 + 128 | 0; + i64toi32_i32$2 = (HEAP32[($6 + 148 | 0) >> 2] | 0) + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $703 = i64toi32_i32$0; + i64toi32_i32$0 = $97; + HEAP32[i64toi32_i32$0 >> 2] = $703; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $99 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $99 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $713 = i64toi32_i32$1; + i64toi32_i32$1 = $97 + $99 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $713; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($5 + 268 | 0) >> 2] = Math_fround(HEAPF32[($5 + 184 | 0) >> 2]); + $110 = ($5 + 192 | 0) + 48 | 0; + i64toi32_i32$2 = $6 + 128 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $731 = i64toi32_i32$0; + i64toi32_i32$0 = $110; + HEAP32[i64toi32_i32$0 >> 2] = $731; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $112 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $112 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $741 = i64toi32_i32$1; + i64toi32_i32$1 = $110 + $112 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $741; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $120 = ($5 + 192 | 0) + 32 | 0; + i64toi32_i32$2 = $110; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $752 = i64toi32_i32$0; + i64toi32_i32$0 = $120; + HEAP32[i64toi32_i32$0 >> 2] = $752; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $122 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $122 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $762 = i64toi32_i32$1; + i64toi32_i32$1 = $120 + $122 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $762; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $130 = ($5 + 192 | 0) + 16 | 0; + i64toi32_i32$2 = $120; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $773 = i64toi32_i32$0; + i64toi32_i32$0 = $130; + HEAP32[i64toi32_i32$0 >> 2] = $773; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $132 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $132 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $783 = i64toi32_i32$1; + i64toi32_i32$1 = $130 + $132 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $783; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $138 = $5 + 192 | 0; + i64toi32_i32$2 = $130; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $791 = i64toi32_i32$0; + i64toi32_i32$0 = $138; + HEAP32[i64toi32_i32$0 >> 2] = $791; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $140 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $140 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $801 = i64toi32_i32$1; + i64toi32_i32$1 = $138 + $140 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $801; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + label$4 : { + label$5 : while (1) { + HEAP32[($5 + 152 | 0) >> 2] = 1 - (HEAP32[($6 + 368 | 0) >> 2] | 0) | 0; + HEAP32[($5 + 148 | 0) >> 2] = ($6 + 148 | 0) + Math_imul(HEAP32[($6 + 368 | 0) >> 2] | 0, 36) | 0; + HEAP32[($5 + 144 | 0) >> 2] = ($6 + 148 | 0) + Math_imul(HEAP32[($5 + 152 | 0) >> 2] | 0, 36) | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__length_28_29_20const($6 + 128 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 140 | 0) >> 2] = wasm2js_f32$0; + label$6 : { + if (!(Math_fround(HEAPF32[($5 + 140 | 0) >> 2]) < Math_fround(9.999999747378752e-05) & 1 | 0)) { + break label$6 + } + HEAP32[($6 + 376 | 0) >> 2] = 1; + break label$4; + } + $168 = HEAP32[($5 + 148 | 0) >> 2] | 0; + operator__28btVector3_20const__29($5 + 124 | 0 | 0, $6 + 128 | 0 | 0); + gjkepa2_impl__GJK__appendvertice_28gjkepa2_impl__GJK__sSimplex__2c_20btVector3_20const__29($6 | 0, $168 | 0, $5 + 124 | 0 | 0); + HEAP32[($5 + 120 | 0) >> 2] = (HEAP32[((HEAP32[($5 + 148 | 0) >> 2] | 0) + (((HEAP32[((HEAP32[($5 + 148 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) - 1 | 0) << 2 | 0) | 0) >> 2] | 0) + 16 | 0; + HEAP8[($5 + 119 | 0) >> 0] = 0; + HEAP32[($5 + 112 | 0) >> 2] = 0; + label$7 : { + label$8 : while (1) { + if (!((HEAP32[($5 + 112 | 0) >> 2] | 0) >>> 0 < 4 >>> 0 & 1 | 0)) { + break label$7 + } + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 96 | 0 | 0, HEAP32[($5 + 120 | 0) >> 2] | 0 | 0, ($5 + 192 | 0) + ((HEAP32[($5 + 112 | 0) >> 2] | 0) << 4 | 0) | 0 | 0); + label$9 : { + if (!(Math_fround(btVector3__length2_28_29_20const($5 + 96 | 0 | 0)) < Math_fround(9.999999747378752e-05) & 1 | 0)) { + break label$9 + } + HEAP8[($5 + 119 | 0) >> 0] = 1; + break label$7; + } + HEAP32[($5 + 112 | 0) >> 2] = (HEAP32[($5 + 112 | 0) >> 2] | 0) + 1 | 0; + continue label$8; + }; + } + label$10 : { + if (!((HEAPU8[($5 + 119 | 0) >> 0] | 0) & 1 | 0)) { + break label$10 + } + gjkepa2_impl__GJK__removevertice_28gjkepa2_impl__GJK__sSimplex__29($6 | 0, ($6 + 148 | 0) + Math_imul(HEAP32[($6 + 368 | 0) >> 2] | 0, 36) | 0 | 0); + break label$4; + } + $229 = HEAP32[($5 + 120 | 0) >> 2] | 0; + $234 = ((HEAP32[($5 + 188 | 0) >> 2] | 0) + 1 | 0) & 3 | 0; + HEAP32[($5 + 188 | 0) >> 2] = $234; + $240 = ($5 + 192 | 0) + ($234 << 4 | 0) | 0; + i64toi32_i32$2 = $229; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $999 = i64toi32_i32$0; + i64toi32_i32$0 = $240; + HEAP32[i64toi32_i32$0 >> 2] = $999; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $242 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $242 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1009 = i64toi32_i32$1; + i64toi32_i32$1 = $240 + $242 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1009; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(btDot_28btVector3_20const__2c_20btVector3_20const__29($6 + 128 | 0 | 0, HEAP32[($5 + 120 | 0) >> 2] | 0 | 0)) / Math_fround(HEAPF32[($5 + 140 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 92 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(HEAPF32[(float_20const__20btMax_float__28float_20const__2c_20float_20const__29($5 + 92 | 0 | 0, $5 + 264 | 0 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 264 | 0) >> 2] = wasm2js_f32$0; + label$11 : { + if (!(Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 140 | 0) >> 2]) * Math_fround(-9.999999747378752e-05)) + Math_fround(Math_fround(HEAPF32[($5 + 140 | 0) >> 2]) - Math_fround(HEAPF32[($5 + 264 | 0) >> 2]))) <= Math_fround(0 | 0) & 1 | 0)) { + break label$11 + } + gjkepa2_impl__GJK__removevertice_28gjkepa2_impl__GJK__sSimplex__29($6 | 0, ($6 + 148 | 0) + Math_imul(HEAP32[($6 + 368 | 0) >> 2] | 0, 36) | 0 | 0); + break label$4; + } + HEAP32[($5 + 60 | 0) >> 2] = 0; + $282 = (HEAP32[((HEAP32[($5 + 148 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) + -2 | 0; + label$12 : { + label$13 : { + switch ($282 | 0) { + case 0: + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(gjkepa2_impl__GJK__projectorigin_28btVector3_20const__2c_20btVector3_20const__2c_20float__2c_20unsigned_20int__29((HEAP32[(HEAP32[($5 + 148 | 0) >> 2] | 0) >> 2] | 0) + 16 | 0 | 0, (HEAP32[((HEAP32[($5 + 148 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 16 | 0 | 0, $5 + 64 | 0 | 0, $5 + 60 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 268 | 0) >> 2] = wasm2js_f32$0; + break label$12; + case 1: + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(gjkepa2_impl__GJK__projectorigin_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float__2c_20unsigned_20int__29((HEAP32[(HEAP32[($5 + 148 | 0) >> 2] | 0) >> 2] | 0) + 16 | 0 | 0, (HEAP32[((HEAP32[($5 + 148 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 16 | 0 | 0, (HEAP32[((HEAP32[($5 + 148 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 16 | 0 | 0, $5 + 64 | 0 | 0, $5 + 60 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 268 | 0) >> 2] = wasm2js_f32$0; + break label$12; + case 2: + break label$13; + default: + break label$12; + }; + } + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(gjkepa2_impl__GJK__projectorigin_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float__2c_20unsigned_20int__29((HEAP32[(HEAP32[($5 + 148 | 0) >> 2] | 0) >> 2] | 0) + 16 | 0 | 0, (HEAP32[((HEAP32[($5 + 148 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 16 | 0 | 0, (HEAP32[((HEAP32[($5 + 148 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 16 | 0 | 0, (HEAP32[((HEAP32[($5 + 148 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 16 | 0 | 0, $5 + 64 | 0 | 0, $5 + 60 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 268 | 0) >> 2] = wasm2js_f32$0; + } + label$16 : { + label$17 : { + if (!(Math_fround(HEAPF32[($5 + 268 | 0) >> 2]) >= Math_fround(0 | 0) & 1 | 0)) { + break label$17 + } + HEAP32[((HEAP32[($5 + 144 | 0) >> 2] | 0) + 32 | 0) >> 2] = 0; + HEAPF32[($5 + 40 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 36 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 32 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 44 | 0 | 0, $5 + 40 | 0 | 0, $5 + 36 | 0 | 0, $5 + 32 | 0 | 0) | 0; + $368 = $6 + 128 | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 44 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 48 | 0) >> 2] | 0; + $1257 = i64toi32_i32$0; + i64toi32_i32$0 = $368; + HEAP32[i64toi32_i32$0 >> 2] = $1257; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $370 = 8; + i64toi32_i32$2 = ($5 + 44 | 0) + $370 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1270 = i64toi32_i32$1; + i64toi32_i32$1 = $368 + $370 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1270; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6 + 368 | 0) >> 2] = HEAP32[($5 + 152 | 0) >> 2] | 0; + HEAP32[($5 + 28 | 0) >> 2] = 0; + HEAP32[($5 + 24 | 0) >> 2] = HEAP32[((HEAP32[($5 + 148 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + label$18 : { + label$19 : while (1) { + if (!((HEAP32[($5 + 28 | 0) >> 2] | 0) >>> 0 < (HEAP32[($5 + 24 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$18 + } + label$20 : { + label$21 : { + if (!((HEAP32[($5 + 60 | 0) >> 2] | 0) & (1 << (HEAP32[($5 + 28 | 0) >> 2] | 0) | 0) | 0)) { + break label$21 + } + HEAP32[((HEAP32[($5 + 144 | 0) >> 2] | 0) + ((HEAP32[((HEAP32[($5 + 144 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[((HEAP32[($5 + 148 | 0) >> 2] | 0) + ((HEAP32[($5 + 28 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + $411 = Math_fround(HEAPF32[(($5 + 64 | 0) + ((HEAP32[($5 + 28 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + $414 = (HEAP32[($5 + 144 | 0) >> 2] | 0) + 16 | 0; + $415 = HEAP32[($5 + 144 | 0) >> 2] | 0; + $416 = HEAP32[($415 + 32 | 0) >> 2] | 0; + HEAP32[($415 + 32 | 0) >> 2] = $416 + 1 | 0; + HEAPF32[($414 + ($416 << 2 | 0) | 0) >> 2] = $411; + operator__28btVector3_20const__2c_20float_20const__29($5 + 8 | 0 | 0, (HEAP32[((HEAP32[($5 + 148 | 0) >> 2] | 0) + ((HEAP32[($5 + 28 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 16 | 0 | 0, ($5 + 64 | 0) + ((HEAP32[($5 + 28 | 0) >> 2] | 0) << 2 | 0) | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($6 + 128 | 0 | 0, $5 + 8 | 0 | 0) | 0; + break label$20; + } + $450 = HEAP32[((HEAP32[($5 + 148 | 0) >> 2] | 0) + ((HEAP32[($5 + 28 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + $453 = HEAP32[($6 + 364 | 0) >> 2] | 0; + HEAP32[($6 + 364 | 0) >> 2] = $453 + 1 | 0; + HEAP32[(($6 + 348 | 0) + ($453 << 2 | 0) | 0) >> 2] = $450; + } + HEAP32[($5 + 28 | 0) >> 2] = (HEAP32[($5 + 28 | 0) >> 2] | 0) + 1 | 0; + continue label$19; + }; + } + label$22 : { + if (!((HEAP32[($5 + 60 | 0) >> 2] | 0 | 0) == (15 | 0) & 1 | 0)) { + break label$22 + } + HEAP32[($6 + 376 | 0) >> 2] = 1; + } + break label$16; + } + gjkepa2_impl__GJK__removevertice_28gjkepa2_impl__GJK__sSimplex__29($6 | 0, ($6 + 148 | 0) + Math_imul(HEAP32[($6 + 368 | 0) >> 2] | 0, 36) | 0 | 0); + break label$4; + } + $478 = (HEAP32[($5 + 272 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($5 + 272 | 0) >> 2] = $478; + label$23 : { + label$24 : { + if (!($478 >>> 0 < 128 >>> 0 & 1 | 0)) { + break label$24 + } + $486 = HEAP32[($6 + 376 | 0) >> 2] | 0; + break label$23; + } + $486 = 2; + } + HEAP32[($6 + 376 | 0) >> 2] = $486; + if (!(HEAP32[($6 + 376 | 0) >> 2] | 0)) { + continue label$5 + } + break label$5; + }; + } + HEAP32[($6 + 372 | 0) >> 2] = ($6 + Math_imul(HEAP32[($6 + 368 | 0) >> 2] | 0, 36) | 0) + 148 | 0; + $496 = HEAP32[($6 + 376 | 0) >> 2] | 0; + label$25 : { + label$26 : { + switch ($496 | 0) { + case 0: + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__length_28_29_20const($6 + 128 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 144 | 0) >> 2] = wasm2js_f32$0; + break label$25; + case 1: + HEAPF32[($6 + 144 | 0) >> 2] = Math_fround(0 | 0); + break label$25; + default: + break label$26; + }; + } + } + $503 = HEAP32[($6 + 376 | 0) >> 2] | 0; + __stack_pointer = $5 + 288 | 0; + return $503 | 0; + } + + function gjkepa2_impl__MinkowskiDiff__Support_28btVector3_20const__2c_20unsigned_20int_29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $1; + HEAP32[($6 + 8 | 0) >> 2] = $2; + HEAP32[($6 + 4 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($6 + 4 | 0) >> 2] | 0)) { + break label$2 + } + gjkepa2_impl__MinkowskiDiff__Support1_28btVector3_20const__29_20const($0 | 0, $7 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0); + break label$1; + } + gjkepa2_impl__MinkowskiDiff__Support0_28btVector3_20const__29_20const($0 | 0, $7 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0); + } + __stack_pointer = $6 + 16 | 0; + return; + } + + function gjkepa2_impl__MinkowskiDiff__EnableMargin_28bool_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP8[($4 + 11 | 0) >> 0] = $1; + $6 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($4 + 11 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($6 + 120 | 0) >> 2] = 1025; + HEAP32[($6 + 124 | 0) >> 2] = 0; + break label$1; + } + HEAP32[($6 + 120 | 0) >> 2] = 1026; + HEAP32[($6 + 124 | 0) >> 2] = 0; + } + return; + } + + function gjkepa2_impl__GJK__sSV__sSV_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btVector3__btVector3_28_29($4 | 0) | 0; + btVector3__btVector3_28_29($4 + 16 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function gjkepa2_impl__GJK__Initialize_28_29($0) { + $0 = $0 | 0; + var $3 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, i64toi32_i32$2 = 0, $22 = 0, $24 = 0, $82 = 0, $95 = 0; + $3 = __stack_pointer - 32 | 0; + __stack_pointer = $3; + HEAP32[($3 + 28 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 28 | 0) >> 2] | 0; + HEAPF32[($3 + 8 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 4 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[$3 >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 12 | 0 | 0, $3 + 8 | 0 | 0, $3 + 4 | 0 | 0, $3 | 0) | 0; + $22 = $4 + 128 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 12 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 16 | 0) >> 2] | 0; + $82 = i64toi32_i32$0; + i64toi32_i32$0 = $22; + HEAP32[i64toi32_i32$0 >> 2] = $82; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $24 = 8; + i64toi32_i32$2 = ($3 + 12 | 0) + $24 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $95 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $24 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $95; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4 + 364 | 0) >> 2] = 0; + HEAP32[($4 + 376 | 0) >> 2] = 2; + HEAP32[($4 + 368 | 0) >> 2] = 0; + HEAPF32[($4 + 144 | 0) >> 2] = Math_fround(0 | 0); + __stack_pointer = $3 + 32 | 0; + return; + } + + function gjkepa2_impl__MinkowskiDiff__operator__28gjkepa2_impl__MinkowskiDiff_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, i64toi32_i32$2 = 0, $8 = 0, $12 = 0, $16 = 0, $17 = 0, i64toi32_i32$1 = 0, $20 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[i64toi32_i32$2 >> 2] | 0; + HEAP32[($5 + 4 | 0) >> 2] = i64toi32_i32$1; + $8 = 8; + btMatrix3x3__operator__28btMatrix3x3_20const__29($5 + $8 | 0 | 0, (HEAP32[($4 + 8 | 0) >> 2] | 0) + $8 | 0 | 0) | 0; + $12 = 56; + btTransform__operator__28btTransform_20const__29($5 + $12 | 0 | 0, (HEAP32[($4 + 8 | 0) >> 2] | 0) + $12 | 0 | 0) | 0; + $16 = HEAP32[($4 + 8 | 0) >> 2] | 0; + $17 = 124; + $20 = HEAP32[($16 + 120 | 0) >> 2] | 0; + HEAP32[($5 + $17 | 0) >> 2] = HEAP32[($16 + $17 | 0) >> 2] | 0; + HEAP32[($5 + 120 | 0) >> 2] = $20; + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function gjkepa2_impl__GJK__appendvertice_28gjkepa2_impl__GJK__sSimplex__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $21 = 0, $34 = 0, $35 = 0, $32 = 0, $33 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAPF32[(((HEAP32[($5 + 8 | 0) >> 2] | 0) + 16 | 0) + ((HEAP32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(0 | 0); + $21 = (HEAP32[($6 + 364 | 0) >> 2] | 0) + -1 | 0; + HEAP32[($6 + 364 | 0) >> 2] = $21; + HEAP32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + ((HEAP32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[(($6 + 348 | 0) + ($21 << 2 | 0) | 0) >> 2] | 0; + $32 = HEAP32[($5 + 4 | 0) >> 2] | 0; + $33 = HEAP32[($5 + 8 | 0) >> 2] | 0; + $34 = HEAP32[($5 + 8 | 0) >> 2] | 0; + $35 = HEAP32[($34 + 32 | 0) >> 2] | 0; + HEAP32[($34 + 32 | 0) >> 2] = $35 + 1 | 0; + gjkepa2_impl__GJK__getsupport_28btVector3_20const__2c_20gjkepa2_impl__GJK__sSV__29_20const($6 | 0, $32 | 0, HEAP32[($33 + ($35 << 2 | 0) | 0) >> 2] | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function gjkepa2_impl__GJK__removevertice_28gjkepa2_impl__GJK__sSimplex__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $7 = 0, $10 = 0, $17 = 0, $6 = 0, $14 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + $6 = HEAP32[($4 + 8 | 0) >> 2] | 0; + $7 = HEAP32[($4 + 8 | 0) >> 2] | 0; + $10 = (HEAP32[($7 + 32 | 0) >> 2] | 0) + -1 | 0; + HEAP32[($7 + 32 | 0) >> 2] = $10; + $14 = HEAP32[($6 + ($10 << 2 | 0) | 0) >> 2] | 0; + $17 = HEAP32[($5 + 364 | 0) >> 2] | 0; + HEAP32[($5 + 364 | 0) >> 2] = $17 + 1 | 0; + HEAP32[(($5 + 348 | 0) + ($17 << 2 | 0) | 0) >> 2] = $14; + return; + } + + function gjkepa2_impl__GJK__projectorigin_28btVector3_20const__2c_20btVector3_20const__2c_20float__2c_20unsigned_20int__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $36 = Math_fround(0), $69 = Math_fround(0), $76 = 0, $97 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 80 | 0; + __stack_pointer = $6; + HEAP32[($6 + 72 | 0) >> 2] = $0; + HEAP32[($6 + 68 | 0) >> 2] = $1; + HEAP32[($6 + 64 | 0) >> 2] = $2; + HEAP32[($6 + 60 | 0) >> 2] = $3; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 44 | 0 | 0, HEAP32[($6 + 68 | 0) >> 2] | 0 | 0, HEAP32[($6 + 72 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($6 + 44 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($6 + 40 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + label$3 : { + label$4 : { + if (!(Math_fround(HEAPF32[($6 + 40 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$4 + } + $36 = Math_fround(Math_fround(-Math_fround(btDot_28btVector3_20const__2c_20btVector3_20const__29(HEAP32[($6 + 72 | 0) >> 2] | 0 | 0, $6 + 44 | 0 | 0))) / Math_fround(HEAPF32[($6 + 40 | 0) >> 2])); + break label$3; + } + $36 = Math_fround(0 | 0); + } + HEAPF32[($6 + 36 | 0) >> 2] = $36; + label$5 : { + if (!(Math_fround(HEAPF32[($6 + 36 | 0) >> 2]) >= Math_fround(1.0) & 1 | 0)) { + break label$5 + } + HEAPF32[(HEAP32[($6 + 64 | 0) >> 2] | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[((HEAP32[($6 + 64 | 0) >> 2] | 0) + 4 | 0) >> 2] = Math_fround(1.0); + HEAP32[(HEAP32[($6 + 60 | 0) >> 2] | 0) >> 2] = 2; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const(HEAP32[($6 + 68 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 76 | 0) >> 2] = wasm2js_f32$0; + break label$1; + } + label$6 : { + if (!(Math_fround(HEAPF32[($6 + 36 | 0) >> 2]) <= Math_fround(0 | 0) & 1 | 0)) { + break label$6 + } + HEAPF32[(HEAP32[($6 + 64 | 0) >> 2] | 0) >> 2] = Math_fround(1.0); + HEAPF32[((HEAP32[($6 + 64 | 0) >> 2] | 0) + 4 | 0) >> 2] = Math_fround(0 | 0); + HEAP32[(HEAP32[($6 + 60 | 0) >> 2] | 0) >> 2] = 1; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const(HEAP32[($6 + 72 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 76 | 0) >> 2] = wasm2js_f32$0; + break label$1; + } + $69 = Math_fround(HEAPF32[($6 + 36 | 0) >> 2]); + HEAPF32[((HEAP32[($6 + 64 | 0) >> 2] | 0) + 4 | 0) >> 2] = $69; + HEAPF32[(HEAP32[($6 + 64 | 0) >> 2] | 0) >> 2] = Math_fround(Math_fround(1.0) - $69); + HEAP32[(HEAP32[($6 + 60 | 0) >> 2] | 0) >> 2] = 3; + $76 = HEAP32[($6 + 72 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20float_20const__29($6 + 4 | 0 | 0, $6 + 44 | 0 | 0, $6 + 36 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 20 | 0 | 0, $76 | 0, $6 + 4 | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($6 + 20 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 76 | 0) >> 2] = wasm2js_f32$0; + break label$1; + } + HEAPF32[($6 + 76 | 0) >> 2] = Math_fround(-1.0); + } + $97 = Math_fround(HEAPF32[($6 + 76 | 0) >> 2]); + __stack_pointer = $6 + 80 | 0; + return Math_fround($97); + } + + function gjkepa2_impl__GJK__projectorigin_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float__2c_20unsigned_20int__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $13 = 0, $17 = 0, $133 = 0, $142 = 0, i64toi32_i32$0 = 0, $63 = 0, $135 = 0, $226 = Math_fround(0), $251 = Math_fround(0), $265 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $7 = __stack_pointer - 256 | 0; + __stack_pointer = $7; + HEAP32[($7 + 248 | 0) >> 2] = $0; + HEAP32[($7 + 244 | 0) >> 2] = $1; + HEAP32[($7 + 240 | 0) >> 2] = $2; + HEAP32[($7 + 236 | 0) >> 2] = $3; + HEAP32[($7 + 232 | 0) >> 2] = $4; + HEAP32[($7 + 220 | 0) >> 2] = HEAP32[($7 + 248 | 0) >> 2] | 0; + HEAP32[($7 + 224 | 0) >> 2] = HEAP32[($7 + 244 | 0) >> 2] | 0; + HEAP32[($7 + 228 | 0) >> 2] = HEAP32[($7 + 240 | 0) >> 2] | 0; + $13 = $7 + 160 | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($13 | 0, HEAP32[($7 + 248 | 0) >> 2] | 0 | 0, HEAP32[($7 + 244 | 0) >> 2] | 0 | 0); + $17 = $13 + 16 | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($17 | 0, HEAP32[($7 + 244 | 0) >> 2] | 0 | 0, HEAP32[($7 + 240 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($17 + 16 | 0 | 0, HEAP32[($7 + 240 | 0) >> 2] | 0 | 0, HEAP32[($7 + 248 | 0) >> 2] | 0 | 0); + btCross_28btVector3_20const__2c_20btVector3_20const__29($7 + 144 | 0 | 0, $7 + 160 | 0 | 0, ($7 + 160 | 0) + 16 | 0 | 0); + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($7 + 144 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 140 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($7 + 140 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + HEAPF32[($7 + 136 | 0) >> 2] = Math_fround(-1.0); + i64toi32_i32$0 = 0; + HEAP32[($7 + 128 | 0) >> 2] = 0; + HEAP32[($7 + 132 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($7 + 124 | 0) >> 2] = 0; + HEAP32[($7 + 120 | 0) >> 2] = 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($7 + 120 | 0) >> 2] | 0) >>> 0 < 3 >>> 0 & 1 | 0)) { + break label$3 + } + $63 = HEAP32[(($7 + 220 | 0) + ((HEAP32[($7 + 120 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + btCross_28btVector3_20const__2c_20btVector3_20const__29($7 + 104 | 0 | 0, ($7 + 160 | 0) + ((HEAP32[($7 + 120 | 0) >> 2] | 0) << 4 | 0) | 0 | 0, $7 + 144 | 0 | 0); + label$5 : { + if (!(Math_fround(btDot_28btVector3_20const__2c_20btVector3_20const__29($63 | 0, $7 + 104 | 0 | 0)) > Math_fround(0 | 0) & 1 | 0)) { + break label$5 + } + HEAP32[($7 + 100 | 0) >> 2] = HEAP32[(101352 + ((HEAP32[($7 + 120 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(gjkepa2_impl__GJK__projectorigin_28btVector3_20const__2c_20btVector3_20const__2c_20float__2c_20unsigned_20int__29(HEAP32[(($7 + 220 | 0) + ((HEAP32[($7 + 120 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0, HEAP32[(($7 + 220 | 0) + ((HEAP32[($7 + 100 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0, $7 + 128 | 0 | 0, $7 + 124 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 96 | 0) >> 2] = wasm2js_f32$0; + label$6 : { + label$7 : { + if (Math_fround(HEAPF32[($7 + 136 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0) { + break label$7 + } + if (!(Math_fround(HEAPF32[($7 + 96 | 0) >> 2]) < Math_fround(HEAPF32[($7 + 136 | 0) >> 2]) & 1 | 0)) { + break label$6 + } + } + HEAPF32[($7 + 136 | 0) >> 2] = Math_fround(HEAPF32[($7 + 96 | 0) >> 2]); + label$8 : { + label$9 : { + if (!((HEAP32[($7 + 124 | 0) >> 2] | 0) & 1 | 0)) { + break label$9 + } + $133 = 1 << (HEAP32[($7 + 120 | 0) >> 2] | 0) | 0; + break label$8; + } + $133 = 0; + } + $135 = $133; + label$10 : { + label$11 : { + if (!((HEAP32[($7 + 124 | 0) >> 2] | 0) & 2 | 0)) { + break label$11 + } + $142 = 1 << (HEAP32[($7 + 100 | 0) >> 2] | 0) | 0; + break label$10; + } + $142 = 0; + } + HEAP32[(HEAP32[($7 + 232 | 0) >> 2] | 0) >> 2] = $135 + $142 | 0; + HEAPF32[((HEAP32[($7 + 236 | 0) >> 2] | 0) + ((HEAP32[($7 + 120 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($7 + 128 | 0) >> 2]); + HEAPF32[((HEAP32[($7 + 236 | 0) >> 2] | 0) + ((HEAP32[($7 + 100 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($7 + 132 | 0) >> 2]); + HEAPF32[((HEAP32[($7 + 236 | 0) >> 2] | 0) + ((HEAP32[(101352 + ((HEAP32[($7 + 100 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(0 | 0); + } + } + HEAP32[($7 + 120 | 0) >> 2] = (HEAP32[($7 + 120 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + label$12 : { + if (!(Math_fround(HEAPF32[($7 + 136 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$12 + } + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btDot_28btVector3_20const__2c_20btVector3_20const__29(HEAP32[($7 + 248 | 0) >> 2] | 0 | 0, $7 + 144 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 92 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btSqrt_28float_29(Math_fround(Math_fround(HEAPF32[($7 + 140 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 88 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($7 + 68 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($7 + 92 | 0) >> 2]) / Math_fround(HEAPF32[($7 + 140 | 0) >> 2])); + operator__28btVector3_20const__2c_20float_20const__29($7 + 72 | 0 | 0, $7 + 144 | 0 | 0, $7 + 68 | 0 | 0); + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($7 + 72 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 136 | 0) >> 2] = wasm2js_f32$0; + HEAP32[(HEAP32[($7 + 232 | 0) >> 2] | 0) >> 2] = 7; + operator__28btVector3_20const__2c_20btVector3_20const__29($7 + 36 | 0 | 0, HEAP32[($7 + 244 | 0) >> 2] | 0 | 0, $7 + 72 | 0 | 0); + btCross_28btVector3_20const__2c_20btVector3_20const__29($7 + 52 | 0 | 0, ($7 + 160 | 0) + 16 | 0 | 0, $7 + 36 | 0 | 0); + $226 = Math_fround(btVector3__length_28_29_20const($7 + 52 | 0 | 0)); + HEAPF32[(HEAP32[($7 + 236 | 0) >> 2] | 0) >> 2] = Math_fround($226 / Math_fround(HEAPF32[($7 + 88 | 0) >> 2])); + operator__28btVector3_20const__2c_20btVector3_20const__29($7 + 4 | 0 | 0, HEAP32[($7 + 240 | 0) >> 2] | 0 | 0, $7 + 72 | 0 | 0); + btCross_28btVector3_20const__2c_20btVector3_20const__29($7 + 20 | 0 | 0, ($7 + 160 | 0) + 32 | 0 | 0, $7 + 4 | 0 | 0); + $251 = Math_fround(btVector3__length_28_29_20const($7 + 20 | 0 | 0)); + HEAPF32[((HEAP32[($7 + 236 | 0) >> 2] | 0) + 4 | 0) >> 2] = Math_fround($251 / Math_fround(HEAPF32[($7 + 88 | 0) >> 2])); + HEAPF32[((HEAP32[($7 + 236 | 0) >> 2] | 0) + 8 | 0) >> 2] = Math_fround(Math_fround(1.0) - Math_fround(Math_fround(HEAPF32[(HEAP32[($7 + 236 | 0) >> 2] | 0) >> 2]) + Math_fround(HEAPF32[((HEAP32[($7 + 236 | 0) >> 2] | 0) + 4 | 0) >> 2]))); + } + HEAPF32[($7 + 252 | 0) >> 2] = Math_fround(HEAPF32[($7 + 136 | 0) >> 2]); + break label$1; + } + HEAPF32[($7 + 252 | 0) >> 2] = Math_fround(-1.0); + } + $265 = Math_fround(HEAPF32[($7 + 252 | 0) >> 2]); + __stack_pointer = $7 + 256 | 0; + return Math_fround($265); + } + + function gjkepa2_impl__GJK__projectorigin_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float__2c_20unsigned_20int__29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, $15 = 0, $19 = 0, $173 = 0, $182 = 0, $40 = Math_fround(0), $41 = 0, i64toi32_i32$0 = 0, $101 = Math_fround(0), $102 = 0, $175 = 0, $236 = Math_fround(0), $243 = Math_fround(0), $250 = Math_fround(0), $267 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$1 = 0; + $8 = __stack_pointer - 208 | 0; + __stack_pointer = $8; + HEAP32[($8 + 200 | 0) >> 2] = $0; + HEAP32[($8 + 196 | 0) >> 2] = $1; + HEAP32[($8 + 192 | 0) >> 2] = $2; + HEAP32[($8 + 188 | 0) >> 2] = $3; + HEAP32[($8 + 184 | 0) >> 2] = $4; + HEAP32[($8 + 180 | 0) >> 2] = $5; + HEAP32[($8 + 160 | 0) >> 2] = HEAP32[($8 + 200 | 0) >> 2] | 0; + HEAP32[($8 + 164 | 0) >> 2] = HEAP32[($8 + 196 | 0) >> 2] | 0; + HEAP32[($8 + 168 | 0) >> 2] = HEAP32[($8 + 192 | 0) >> 2] | 0; + HEAP32[($8 + 172 | 0) >> 2] = HEAP32[($8 + 188 | 0) >> 2] | 0; + $15 = $8 + 112 | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($15 | 0, HEAP32[($8 + 200 | 0) >> 2] | 0 | 0, HEAP32[($8 + 188 | 0) >> 2] | 0 | 0); + $19 = $15 + 16 | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($19 | 0, HEAP32[($8 + 196 | 0) >> 2] | 0 | 0, HEAP32[($8 + 188 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($19 + 16 | 0 | 0, HEAP32[($8 + 192 | 0) >> 2] | 0 | 0, HEAP32[($8 + 188 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(gjkepa2_impl__GJK__det_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($8 + 112 | 0 | 0, ($8 + 112 | 0) + 16 | 0 | 0, ($8 + 112 | 0) + 32 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 108 | 0) >> 2] = wasm2js_f32$0; + $40 = Math_fround(HEAPF32[($8 + 108 | 0) >> 2]); + $41 = HEAP32[($8 + 200 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 72 | 0 | 0, HEAP32[($8 + 196 | 0) >> 2] | 0 | 0, HEAP32[($8 + 192 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 56 | 0 | 0, HEAP32[($8 + 200 | 0) >> 2] | 0 | 0, HEAP32[($8 + 196 | 0) >> 2] | 0 | 0); + btCross_28btVector3_20const__2c_20btVector3_20const__29($8 + 88 | 0 | 0, $8 + 72 | 0 | 0, $8 + 56 | 0 | 0); + (wasm2js_i32$0 = $8, wasm2js_i32$1 = Math_fround($40 * Math_fround(btDot_28btVector3_20const__2c_20btVector3_20const__29($41 | 0, $8 + 88 | 0 | 0))) <= Math_fround(0 | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 107 | 0) >> 0] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAPU8[($8 + 107 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + if (!(Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[($8 + 108 | 0) >> 2])))) > Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + HEAPF32[($8 + 52 | 0) >> 2] = Math_fround(-1.0); + HEAP32[($8 + 48 | 0) >> 2] = 0; + i64toi32_i32$0 = 0; + HEAP32[($8 + 40 | 0) >> 2] = 0; + HEAP32[($8 + 44 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($8 + 36 | 0) >> 2] = 0; + HEAP32[($8 + 32 | 0) >> 2] = 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($8 + 32 | 0) >> 2] | 0) >>> 0 < 3 >>> 0 & 1 | 0)) { + break label$3 + } + HEAP32[($8 + 28 | 0) >> 2] = HEAP32[(101364 + ((HEAP32[($8 + 32 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + $101 = Math_fround(HEAPF32[($8 + 108 | 0) >> 2]); + $102 = HEAP32[($8 + 188 | 0) >> 2] | 0; + btCross_28btVector3_20const__2c_20btVector3_20const__29($8 + 8 | 0 | 0, ($8 + 112 | 0) + ((HEAP32[($8 + 32 | 0) >> 2] | 0) << 4 | 0) | 0 | 0, ($8 + 112 | 0) + ((HEAP32[($8 + 28 | 0) >> 2] | 0) << 4 | 0) | 0 | 0); + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround($101 * Math_fround(btDot_28btVector3_20const__2c_20btVector3_20const__29($102 | 0, $8 + 8 | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_f32$0; + label$5 : { + if (!(Math_fround(HEAPF32[($8 + 24 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$5 + } + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(gjkepa2_impl__GJK__projectorigin_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float__2c_20unsigned_20int__29(HEAP32[(($8 + 160 | 0) + ((HEAP32[($8 + 32 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0, HEAP32[(($8 + 160 | 0) + ((HEAP32[($8 + 28 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0, HEAP32[($8 + 188 | 0) >> 2] | 0 | 0, $8 + 40 | 0 | 0, $8 + 36 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + label$6 : { + label$7 : { + if (Math_fround(HEAPF32[($8 + 52 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0) { + break label$7 + } + if (!(Math_fround(HEAPF32[($8 + 4 | 0) >> 2]) < Math_fround(HEAPF32[($8 + 52 | 0) >> 2]) & 1 | 0)) { + break label$6 + } + } + HEAPF32[($8 + 52 | 0) >> 2] = Math_fround(HEAPF32[($8 + 4 | 0) >> 2]); + label$8 : { + label$9 : { + if (!((HEAP32[($8 + 36 | 0) >> 2] | 0) & 1 | 0)) { + break label$9 + } + $173 = 1 << (HEAP32[($8 + 32 | 0) >> 2] | 0) | 0; + break label$8; + } + $173 = 0; + } + $175 = $173; + label$10 : { + label$11 : { + if (!((HEAP32[($8 + 36 | 0) >> 2] | 0) & 2 | 0)) { + break label$11 + } + $182 = 1 << (HEAP32[($8 + 28 | 0) >> 2] | 0) | 0; + break label$10; + } + $182 = 0; + } + HEAP32[(HEAP32[($8 + 180 | 0) >> 2] | 0) >> 2] = ($175 + $182 | 0) + ((HEAP32[($8 + 36 | 0) >> 2] | 0) & 4 | 0 ? 8 : 0) | 0; + HEAPF32[((HEAP32[($8 + 184 | 0) >> 2] | 0) + ((HEAP32[($8 + 32 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($8 + 40 | 0) >> 2]); + HEAPF32[((HEAP32[($8 + 184 | 0) >> 2] | 0) + ((HEAP32[($8 + 28 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($8 + 44 | 0) >> 2]); + HEAPF32[((HEAP32[($8 + 184 | 0) >> 2] | 0) + ((HEAP32[(101364 + ((HEAP32[($8 + 28 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[((HEAP32[($8 + 184 | 0) >> 2] | 0) + 12 | 0) >> 2] = Math_fround(HEAPF32[($8 + 48 | 0) >> 2]); + } + } + HEAP32[($8 + 32 | 0) >> 2] = (HEAP32[($8 + 32 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + label$12 : { + if (!(Math_fround(HEAPF32[($8 + 52 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$12 + } + HEAPF32[($8 + 52 | 0) >> 2] = Math_fround(0 | 0); + HEAP32[(HEAP32[($8 + 180 | 0) >> 2] | 0) >> 2] = 15; + $236 = Math_fround(gjkepa2_impl__GJK__det_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29(HEAP32[($8 + 192 | 0) >> 2] | 0 | 0, HEAP32[($8 + 196 | 0) >> 2] | 0 | 0, HEAP32[($8 + 188 | 0) >> 2] | 0 | 0)); + HEAPF32[(HEAP32[($8 + 184 | 0) >> 2] | 0) >> 2] = Math_fround($236 / Math_fround(HEAPF32[($8 + 108 | 0) >> 2])); + $243 = Math_fround(gjkepa2_impl__GJK__det_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29(HEAP32[($8 + 200 | 0) >> 2] | 0 | 0, HEAP32[($8 + 192 | 0) >> 2] | 0 | 0, HEAP32[($8 + 188 | 0) >> 2] | 0 | 0)); + HEAPF32[((HEAP32[($8 + 184 | 0) >> 2] | 0) + 4 | 0) >> 2] = Math_fround($243 / Math_fround(HEAPF32[($8 + 108 | 0) >> 2])); + $250 = Math_fround(gjkepa2_impl__GJK__det_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29(HEAP32[($8 + 196 | 0) >> 2] | 0 | 0, HEAP32[($8 + 200 | 0) >> 2] | 0 | 0, HEAP32[($8 + 188 | 0) >> 2] | 0 | 0)); + HEAPF32[((HEAP32[($8 + 184 | 0) >> 2] | 0) + 8 | 0) >> 2] = Math_fround($250 / Math_fround(HEAPF32[($8 + 108 | 0) >> 2])); + HEAPF32[((HEAP32[($8 + 184 | 0) >> 2] | 0) + 12 | 0) >> 2] = Math_fround(Math_fround(1.0) - Math_fround(Math_fround(Math_fround(HEAPF32[(HEAP32[($8 + 184 | 0) >> 2] | 0) >> 2]) + Math_fround(HEAPF32[((HEAP32[($8 + 184 | 0) >> 2] | 0) + 4 | 0) >> 2])) + Math_fround(HEAPF32[((HEAP32[($8 + 184 | 0) >> 2] | 0) + 8 | 0) >> 2]))); + } + HEAPF32[($8 + 204 | 0) >> 2] = Math_fround(HEAPF32[($8 + 52 | 0) >> 2]); + break label$1; + } + HEAPF32[($8 + 204 | 0) >> 2] = Math_fround(-1.0); + } + $267 = Math_fround(HEAPF32[($8 + 204 | 0) >> 2]); + __stack_pointer = $8 + 208 | 0; + return Math_fround($267); + } + + function gjkepa2_impl__MinkowskiDiff__Support1_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $12 = 0, $13 = 0, $16 = 0, $22 = 0, $8 = 0; + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 44 | 0) >> 2] = $1; + HEAP32[($5 + 40 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 44 | 0) >> 2] | 0; + $8 = $6 + 56 | 0; + $12 = HEAP32[($6 + 124 | 0) >> 2] | 0; + $13 = HEAP32[($6 + 120 | 0) >> 2] | 0; + $16 = (HEAP32[($6 + 4 | 0) >> 2] | 0) + ($12 >> 1 | 0) | 0; + label$1 : { + label$2 : { + if (!($12 & 1 | 0)) { + break label$2 + } + $22 = HEAP32[((HEAP32[$16 >> 2] | 0) + $13 | 0) >> 2] | 0; + break label$1; + } + $22 = $13; + } + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($5 + 8 | 0 | 0, $6 + 8 | 0 | 0, HEAP32[($5 + 40 | 0) >> 2] | 0 | 0); + FUNCTION_TABLE[$22 | 0]($5 + 24 | 0, $16, $5 + 8 | 0); + btTransform__operator__28btVector3_20const__29_20const($0 | 0, $8 | 0, $5 + 24 | 0 | 0); + __stack_pointer = $5 + 48 | 0; + return; + } + + function gjkepa2_impl__MinkowskiDiff__Support0_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $10 = 0, $11 = 0, $14 = 0, $20 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $1; + HEAP32[($5 + 8 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + $10 = HEAP32[($6 + 124 | 0) >> 2] | 0; + $11 = HEAP32[($6 + 120 | 0) >> 2] | 0; + $14 = (HEAP32[$6 >> 2] | 0) + ($10 >> 1 | 0) | 0; + label$1 : { + label$2 : { + if (!($10 & 1 | 0)) { + break label$2 + } + $20 = HEAP32[((HEAP32[$14 >> 2] | 0) + $11 | 0) >> 2] | 0; + break label$1; + } + $20 = $11; + } + FUNCTION_TABLE[$20 | 0]($0, $14, HEAP32[($5 + 8 | 0) >> 2] | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function btGjkEpaSolver2__Penetration_28btConvexShape_20const__2c_20btTransform_20const__2c_20btConvexShape_20const__2c_20btTransform_20const__2c_20btVector3_20const__2c_20btGjkEpaSolver2__sResults__2c_20bool_29($0, $1, $2, $3, $4, $5, $6) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + var $9 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $10 = 0, $37 = 0, $142 = 0, $144 = 0, $183 = 0, $185 = 0, $201 = 0, $203 = 0, $509 = 0, $522 = 0, $150 = 0, $583 = 0, $596 = 0, $618 = 0, $631 = 0, $224 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $9 = __stack_pointer - 19248 | 0; + __stack_pointer = $9; + HEAP32[($9 + 19240 | 0) >> 2] = $0; + HEAP32[($9 + 19236 | 0) >> 2] = $1; + HEAP32[($9 + 19232 | 0) >> 2] = $2; + HEAP32[($9 + 19228 | 0) >> 2] = $3; + HEAP32[($9 + 19224 | 0) >> 2] = $4; + HEAP32[($9 + 19220 | 0) >> 2] = $5; + $10 = 1; + HEAP8[($9 + 19219 | 0) >> 0] = $6 & $10 | 0; + gjkepa2_impl__MinkowskiDiff__MinkowskiDiff_28_29($9 + 19088 | 0 | 0) | 0; + gjkepa2_impl__Initialize_28btConvexShape_20const__2c_20btTransform_20const__2c_20btConvexShape_20const__2c_20btTransform_20const__2c_20btGjkEpaSolver2__sResults__2c_20gjkepa2_impl__MinkowskiDiff__2c_20bool_29(HEAP32[($9 + 19240 | 0) >> 2] | 0 | 0, HEAP32[($9 + 19236 | 0) >> 2] | 0 | 0, HEAP32[($9 + 19232 | 0) >> 2] | 0 | 0, HEAP32[($9 + 19228 | 0) >> 2] | 0 | 0, HEAP32[($9 + 19220 | 0) >> 2] | 0 | 0, $9 + 19088 | 0 | 0, (HEAPU8[($9 + 19219 | 0) >> 0] | 0) & $10 | 0 | 0); + gjkepa2_impl__GJK__GJK_28_29($9 + 18708 | 0 | 0) | 0; + operator__28btVector3_20const__29($9 + 18688 | 0 | 0, HEAP32[($9 + 19224 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $9, wasm2js_i32$1 = gjkepa2_impl__GJK__Evaluate_28gjkepa2_impl__MinkowskiDiff_20const__2c_20btVector3_20const__29($9 + 18708 | 0 | 0, $9 + 19088 | 0 | 0, $9 + 18688 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 18704 | 0) >> 2] = wasm2js_i32$1; + $37 = (HEAP32[($9 + 18704 | 0) >> 2] | 0) + -1 | 0; + label$1 : { + label$2 : { + label$3 : { + switch ($37 | 0) { + case 0: + gjkepa2_impl__EPA__EPA_28_29($9 + 176 | 0 | 0) | 0; + operator__28btVector3_20const__29($9 + 156 | 0 | 0, HEAP32[($9 + 19224 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $9, wasm2js_i32$1 = gjkepa2_impl__EPA__Evaluate_28gjkepa2_impl__GJK__2c_20btVector3_20const__29($9 + 176 | 0 | 0, $9 + 18708 | 0 | 0, $9 + 156 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 172 | 0) >> 2] = wasm2js_i32$1; + label$6 : { + if (!((HEAP32[($9 + 172 | 0) >> 2] | 0 | 0) != (9 | 0) & 1 | 0)) { + break label$6 + } + HEAPF32[($9 + 136 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($9 + 132 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($9 + 128 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($9 + 140 | 0 | 0, $9 + 136 | 0 | 0, $9 + 132 | 0 | 0, $9 + 128 | 0 | 0) | 0; + HEAP32[($9 + 124 | 0) >> 2] = 0; + label$7 : { + label$8 : while (1) { + if (!((HEAP32[($9 + 124 | 0) >> 2] | 0) >>> 0 < (HEAP32[($9 + 212 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$7 + } + gjkepa2_impl__MinkowskiDiff__Support_28btVector3_20const__2c_20unsigned_20int_29_20const($9 + 92 | 0 | 0, $9 + 19088 | 0 | 0, HEAP32[((($9 + 176 | 0) + 4 | 0) + ((HEAP32[($9 + 124 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0, 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($9 + 108 | 0 | 0, $9 + 92 | 0 | 0, ((($9 + 176 | 0) + 4 | 0) + 16 | 0) + ((HEAP32[($9 + 124 | 0) >> 2] | 0) << 2 | 0) | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($9 + 140 | 0 | 0, $9 + 108 | 0 | 0) | 0; + HEAP32[($9 + 124 | 0) >> 2] = (HEAP32[($9 + 124 | 0) >> 2] | 0) + 1 | 0; + continue label$8; + }; + } + HEAP32[(HEAP32[($9 + 19220 | 0) >> 2] | 0) >> 2] = 1; + btTransform__operator__28btVector3_20const__29_20const($9 + 76 | 0 | 0, HEAP32[($9 + 19236 | 0) >> 2] | 0 | 0, $9 + 140 | 0 | 0); + $142 = (HEAP32[($9 + 19220 | 0) >> 2] | 0) + 4 | 0; + i64toi32_i32$2 = $9; + i64toi32_i32$0 = HEAP32[($9 + 76 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 80 | 0) >> 2] | 0; + $509 = i64toi32_i32$0; + i64toi32_i32$0 = $142; + HEAP32[i64toi32_i32$0 >> 2] = $509; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $144 = 8; + i64toi32_i32$2 = ($9 + 76 | 0) + $144 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $522 = i64toi32_i32$1; + i64toi32_i32$1 = $142 + $144 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $522; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $150 = HEAP32[($9 + 19236 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20float_20const__29($9 + 28 | 0 | 0, ($9 + 176 | 0) + 40 | 0 | 0, ($9 + 176 | 0) + 56 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($9 + 44 | 0 | 0, $9 + 140 | 0 | 0, $9 + 28 | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($9 + 60 | 0 | 0, $150 | 0, $9 + 44 | 0 | 0); + $183 = ((HEAP32[($9 + 19220 | 0) >> 2] | 0) + 4 | 0) + 16 | 0; + i64toi32_i32$2 = $9; + i64toi32_i32$0 = HEAP32[($9 + 60 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 64 | 0) >> 2] | 0; + $583 = i64toi32_i32$0; + i64toi32_i32$0 = $183; + HEAP32[i64toi32_i32$0 >> 2] = $583; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $185 = 8; + i64toi32_i32$2 = ($9 + 60 | 0) + $185 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $596 = i64toi32_i32$1; + i64toi32_i32$1 = $183 + $185 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $596; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__29($9 + 12 | 0 | 0, ($9 + 176 | 0) + 40 | 0 | 0); + $201 = (HEAP32[($9 + 19220 | 0) >> 2] | 0) + 36 | 0; + i64toi32_i32$2 = $9; + i64toi32_i32$0 = HEAP32[($9 + 12 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($9 + 16 | 0) >> 2] | 0; + $618 = i64toi32_i32$0; + i64toi32_i32$0 = $201; + HEAP32[i64toi32_i32$0 >> 2] = $618; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $203 = 8; + i64toi32_i32$2 = ($9 + 12 | 0) + $203 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $631 = i64toi32_i32$1; + i64toi32_i32$1 = $201 + $203 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $631; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[((HEAP32[($9 + 19220 | 0) >> 2] | 0) + 52 | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[($9 + 232 | 0) >> 2])); + HEAP8[($9 + 19247 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + HEAP32[(HEAP32[($9 + 19220 | 0) >> 2] | 0) >> 2] = 3; + break label$2; + case 1: + HEAP32[(HEAP32[($9 + 19220 | 0) >> 2] | 0) >> 2] = 2; + break label$2; + default: + break label$3; + }; + } + } + HEAP8[($9 + 19247 | 0) >> 0] = 0 & 1 | 0; + } + $224 = (HEAPU8[($9 + 19247 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $9 + 19248 | 0; + return $224 | 0; + } + + function gjkepa2_impl__EPA__EPA_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0, $8 = 0, $11 = 0, $12 = 0, $14 = 0, $21 = 0, $24 = 0, $25 = 0, $27 = 0, $10 = 0, $23 = 0, $37 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $4; + btVector3__btVector3_28_29($4 + 40 | 0 | 0) | 0; + $8 = $4 + 60 | 0; + $10 = $8 + 4096 | 0; + $11 = $8; + label$1 : while (1) { + $12 = $11; + gjkepa2_impl__GJK__sSV__sSV_28_29($12 | 0) | 0; + $14 = $12 + 32 | 0; + $11 = $14; + if (!(($14 | 0) == ($10 | 0) & 1 | 0)) { + continue label$1 + } + break label$1; + }; + $21 = $4 + 4156 | 0; + $23 = $21 + 14336 | 0; + $24 = $21; + label$2 : while (1) { + $25 = $24; + gjkepa2_impl__EPA__sFace__sFace_28_29($25 | 0) | 0; + $27 = $25 + 56 | 0; + $24 = $27; + if (!(($27 | 0) == ($23 | 0) & 1 | 0)) { + continue label$2 + } + break label$2; + }; + gjkepa2_impl__EPA__sList__sList_28_29($4 + 18496 | 0 | 0) | 0; + gjkepa2_impl__EPA__sList__sList_28_29($4 + 18504 | 0 | 0) | 0; + gjkepa2_impl__EPA__Initialize_28_29($4 | 0); + $37 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $37 | 0; + } + + function gjkepa2_impl__EPA__Evaluate_28gjkepa2_impl__GJK__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $6 = 0, $145 = 0, $327 = 0, $146 = 0, $152 = 0, $158 = 0, $164 = 0, $170 = 0, $176 = 0, $187 = 0, $228 = 0, $237 = 0, $264 = 0, $328 = 0, $334 = 0, $340 = 0, $346 = 0, $352 = 0, $358 = 0, $386 = 0, $388 = 0, $511 = 0, $513 = 0, $537 = 0, $539 = 0, $563 = 0, $565 = 0, $892 = 0, $905 = 0, $918 = 0, $931 = 0, $944 = 0, $957 = 0, $961 = 0, $292 = 0, $1271 = 0, $1284 = 0, $1297 = 0, $1310 = 0, $1323 = 0, $1336 = 0, $1340 = 0, $1382 = 0, $1392 = 0, $1637 = 0, $1650 = 0, $1690 = 0, $1703 = 0, $1741 = 0, $1754 = 0, $578 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 432 | 0; + __stack_pointer = $5; + HEAP32[($5 + 424 | 0) >> 2] = $0; + HEAP32[($5 + 420 | 0) >> 2] = $1; + HEAP32[($5 + 416 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 424 | 0) >> 2] | 0; + HEAP32[($5 + 412 | 0) >> 2] = HEAP32[((HEAP32[($5 + 420 | 0) >> 2] | 0) + 372 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[((HEAP32[($5 + 412 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) >>> 0 > 1 >>> 0 & 1 | 0)) { + break label$2 + } + if (!((gjkepa2_impl__GJK__EncloseOrigin_28_29(HEAP32[($5 + 420 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$2 + } + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($6 + 18496 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 408 | 0) >> 2] = HEAP32[($6 + 18496 | 0) >> 2] | 0; + gjkepa2_impl__EPA__remove_28gjkepa2_impl__EPA__sList__2c_20gjkepa2_impl__EPA__sFace__29($6 + 18496 | 0 | 0, HEAP32[($5 + 408 | 0) >> 2] | 0 | 0); + gjkepa2_impl__EPA__append_28gjkepa2_impl__EPA__sList__2c_20gjkepa2_impl__EPA__sFace__29($6 + 18504 | 0 | 0, HEAP32[($5 + 408 | 0) >> 2] | 0 | 0); + continue label$4; + }; + } + HEAP32[$6 >> 2] = 0; + HEAP32[($6 + 18492 | 0) >> 2] = 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 392 | 0 | 0, (HEAP32[(HEAP32[($5 + 412 | 0) >> 2] | 0) >> 2] | 0) + 16 | 0 | 0, (HEAP32[((HEAP32[($5 + 412 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 16 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 376 | 0 | 0, (HEAP32[((HEAP32[($5 + 412 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 16 | 0 | 0, (HEAP32[((HEAP32[($5 + 412 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 16 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 360 | 0 | 0, (HEAP32[((HEAP32[($5 + 412 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 16 | 0 | 0, (HEAP32[((HEAP32[($5 + 412 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 16 | 0 | 0); + label$5 : { + if (!(Math_fround(gjkepa2_impl__GJK__det_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($5 + 392 | 0 | 0, $5 + 376 | 0 | 0, $5 + 360 | 0 | 0)) < Math_fround(0 | 0) & 1 | 0)) { + break label$5 + } + void_20btSwap_gjkepa2_impl__GJK__sSV___28gjkepa2_impl__GJK__sSV___2c_20gjkepa2_impl__GJK__sSV___29(HEAP32[($5 + 412 | 0) >> 2] | 0 | 0, (HEAP32[($5 + 412 | 0) >> 2] | 0) + 4 | 0 | 0); + void_20btSwap_float__28float__2c_20float__29((HEAP32[($5 + 412 | 0) >> 2] | 0) + 16 | 0 | 0, ((HEAP32[($5 + 412 | 0) >> 2] | 0) + 16 | 0) + 4 | 0 | 0); + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = gjkepa2_impl__EPA__newface_28gjkepa2_impl__GJK__sSV__2c_20gjkepa2_impl__GJK__sSV__2c_20gjkepa2_impl__GJK__sSV__2c_20bool_29($6 | 0, HEAP32[(HEAP32[($5 + 412 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5 + 412 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5 + 412 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, 1 & 1 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 336 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = gjkepa2_impl__EPA__newface_28gjkepa2_impl__GJK__sSV__2c_20gjkepa2_impl__GJK__sSV__2c_20gjkepa2_impl__GJK__sSV__2c_20bool_29($6 | 0, HEAP32[((HEAP32[($5 + 412 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[($5 + 412 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5 + 412 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, 1 & 1 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 340 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = gjkepa2_impl__EPA__newface_28gjkepa2_impl__GJK__sSV__2c_20gjkepa2_impl__GJK__sSV__2c_20gjkepa2_impl__GJK__sSV__2c_20bool_29($6 | 0, HEAP32[((HEAP32[($5 + 412 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5 + 412 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5 + 412 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, 1 & 1 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 344 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = gjkepa2_impl__EPA__newface_28gjkepa2_impl__GJK__sSV__2c_20gjkepa2_impl__GJK__sSV__2c_20gjkepa2_impl__GJK__sSV__2c_20bool_29($6 | 0, HEAP32[(HEAP32[($5 + 412 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5 + 412 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5 + 412 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, 1 & 1 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 348 | 0) >> 2] = wasm2js_i32$1; + label$6 : { + if (!((HEAP32[($6 + 18500 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$6 + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = gjkepa2_impl__EPA__findbest_28_29($6 | 0) | 0), HEAP32[(wasm2js_i32$0 + 332 | 0) >> 2] = wasm2js_i32$1; + $145 = HEAP32[($5 + 332 | 0) >> 2] | 0; + $146 = 48; + i64toi32_i32$2 = $145 + $146 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $892 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 272 | 0) + $146 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $892; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $152 = 40; + i64toi32_i32$2 = $145 + $152 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $905 = i64toi32_i32$1; + i64toi32_i32$1 = ($5 + 272 | 0) + $152 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $905; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $158 = 32; + i64toi32_i32$2 = $145 + $158 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $918 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 272 | 0) + $158 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $918; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $164 = 24; + i64toi32_i32$2 = $145 + $164 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $931 = i64toi32_i32$1; + i64toi32_i32$1 = ($5 + 272 | 0) + $164 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $931; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $170 = 16; + i64toi32_i32$2 = $145 + $170 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $944 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 272 | 0) + $170 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $944; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $176 = 8; + i64toi32_i32$2 = $145 + $176 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $957 = i64toi32_i32$1; + i64toi32_i32$1 = ($5 + 272 | 0) + $176 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $957; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $145; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $961 = i64toi32_i32$0; + i64toi32_i32$0 = $5; + HEAP32[($5 + 272 | 0) >> 2] = $961; + HEAP32[($5 + 276 | 0) >> 2] = i64toi32_i32$1; + HEAP32[($5 + 268 | 0) >> 2] = 0; + HEAP32[($5 + 264 | 0) >> 2] = 0; + $187 = 0; + gjkepa2_impl__EPA__bind_28gjkepa2_impl__EPA__sFace__2c_20unsigned_20int_2c_20gjkepa2_impl__EPA__sFace__2c_20unsigned_20int_29(HEAP32[($5 + 336 | 0) >> 2] | 0 | 0, $187 | 0, HEAP32[($5 + 340 | 0) >> 2] | 0 | 0, $187 | 0); + gjkepa2_impl__EPA__bind_28gjkepa2_impl__EPA__sFace__2c_20unsigned_20int_2c_20gjkepa2_impl__EPA__sFace__2c_20unsigned_20int_29(HEAP32[($5 + 336 | 0) >> 2] | 0 | 0, 1 | 0, HEAP32[($5 + 344 | 0) >> 2] | 0 | 0, 0 | 0); + gjkepa2_impl__EPA__bind_28gjkepa2_impl__EPA__sFace__2c_20unsigned_20int_2c_20gjkepa2_impl__EPA__sFace__2c_20unsigned_20int_29(HEAP32[($5 + 336 | 0) >> 2] | 0 | 0, 2 | 0, HEAP32[($5 + 348 | 0) >> 2] | 0 | 0, 0 | 0); + gjkepa2_impl__EPA__bind_28gjkepa2_impl__EPA__sFace__2c_20unsigned_20int_2c_20gjkepa2_impl__EPA__sFace__2c_20unsigned_20int_29(HEAP32[($5 + 340 | 0) >> 2] | 0 | 0, 1 | 0, HEAP32[($5 + 348 | 0) >> 2] | 0 | 0, 2 | 0); + gjkepa2_impl__EPA__bind_28gjkepa2_impl__EPA__sFace__2c_20unsigned_20int_2c_20gjkepa2_impl__EPA__sFace__2c_20unsigned_20int_29(HEAP32[($5 + 340 | 0) >> 2] | 0 | 0, 2 | 0, HEAP32[($5 + 344 | 0) >> 2] | 0 | 0, 1 | 0); + gjkepa2_impl__EPA__bind_28gjkepa2_impl__EPA__sFace__2c_20unsigned_20int_2c_20gjkepa2_impl__EPA__sFace__2c_20unsigned_20int_29(HEAP32[($5 + 344 | 0) >> 2] | 0 | 0, 2 | 0, HEAP32[($5 + 348 | 0) >> 2] | 0 | 0, 1 | 0); + HEAP32[$6 >> 2] = 0; + label$7 : { + label$8 : while (1) { + if (!((HEAP32[($5 + 264 | 0) >> 2] | 0) >>> 0 < 255 >>> 0 & 1 | 0)) { + break label$7 + } + label$9 : { + label$10 : { + if (!((HEAP32[($6 + 18492 | 0) >> 2] | 0) >>> 0 < 128 >>> 0 & 1 | 0)) { + break label$10 + } + gjkepa2_impl__EPA__sHorizon__sHorizon_28_29($5 + 252 | 0 | 0) | 0; + $228 = HEAP32[($6 + 18492 | 0) >> 2] | 0; + HEAP32[($6 + 18492 | 0) >> 2] = $228 + 1 | 0; + HEAP32[($5 + 248 | 0) >> 2] = ($6 + 60 | 0) + ($228 << 5 | 0) | 0; + HEAP8[($5 + 247 | 0) >> 0] = 1; + $237 = (HEAP32[($5 + 268 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($5 + 268 | 0) >> 2] = $237; + HEAP8[((HEAP32[($5 + 332 | 0) >> 2] | 0) + 55 | 0) >> 0] = $237; + gjkepa2_impl__GJK__getsupport_28btVector3_20const__2c_20gjkepa2_impl__GJK__sSV__29_20const(HEAP32[($5 + 420 | 0) >> 2] | 0 | 0, HEAP32[($5 + 332 | 0) >> 2] | 0 | 0, HEAP32[($5 + 248 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(btDot_28btVector3_20const__2c_20btVector3_20const__29(HEAP32[($5 + 332 | 0) >> 2] | 0 | 0, (HEAP32[($5 + 248 | 0) >> 2] | 0) + 16 | 0 | 0)) - Math_fround(HEAPF32[((HEAP32[($5 + 332 | 0) >> 2] | 0) + 16 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 240 | 0) >> 2] = wasm2js_f32$0; + label$11 : { + label$12 : { + if (!(Math_fround(HEAPF32[($5 + 240 | 0) >> 2]) > Math_fround(9.999999747378752e-05) & 1 | 0)) { + break label$12 + } + HEAP32[($5 + 236 | 0) >> 2] = 0; + label$13 : while (1) { + $264 = 0; + label$14 : { + if (!((HEAP32[($5 + 236 | 0) >> 2] | 0) >>> 0 < 3 >>> 0 & 1 | 0)) { + break label$14 + } + $264 = HEAPU8[($5 + 247 | 0) >> 0] | 0; + } + label$15 : { + if (!($264 & 1 | 0)) { + break label$15 + } + $292 = (gjkepa2_impl__EPA__expand_28unsigned_20int_2c_20gjkepa2_impl__GJK__sSV__2c_20gjkepa2_impl__EPA__sFace__2c_20unsigned_20int_2c_20gjkepa2_impl__EPA__sHorizon__29($6 | 0, HEAP32[($5 + 268 | 0) >> 2] | 0 | 0, HEAP32[($5 + 248 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($5 + 332 | 0) >> 2] | 0) + 32 | 0) + ((HEAP32[($5 + 236 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0, (HEAPU8[(((HEAP32[($5 + 332 | 0) >> 2] | 0) + 52 | 0) + (HEAP32[($5 + 236 | 0) >> 2] | 0) | 0) >> 0] | 0) & 255 | 0 | 0, $5 + 252 | 0 | 0) | 0) & 1 | 0; + HEAP8[($5 + 247 | 0) >> 0] = (((HEAPU8[($5 + 247 | 0) >> 0] | 0) & 1 | 0) & $292 | 0 | 0) != (0 | 0) & 1 | 0; + HEAP32[($5 + 236 | 0) >> 2] = (HEAP32[($5 + 236 | 0) >> 2] | 0) + 1 | 0; + continue label$13; + } + break label$13; + }; + label$16 : { + label$17 : { + if (!((HEAPU8[($5 + 247 | 0) >> 0] | 0) & 1 | 0)) { + break label$17 + } + if (!((HEAP32[($5 + 260 | 0) >> 2] | 0) >>> 0 >= 3 >>> 0 & 1 | 0)) { + break label$17 + } + gjkepa2_impl__EPA__bind_28gjkepa2_impl__EPA__sFace__2c_20unsigned_20int_2c_20gjkepa2_impl__EPA__sFace__2c_20unsigned_20int_29(HEAP32[($5 + 252 | 0) >> 2] | 0 | 0, 1 | 0, HEAP32[($5 + 256 | 0) >> 2] | 0 | 0, 2 | 0); + gjkepa2_impl__EPA__remove_28gjkepa2_impl__EPA__sList__2c_20gjkepa2_impl__EPA__sFace__29($6 + 18496 | 0 | 0, HEAP32[($5 + 332 | 0) >> 2] | 0 | 0); + gjkepa2_impl__EPA__append_28gjkepa2_impl__EPA__sList__2c_20gjkepa2_impl__EPA__sFace__29($6 + 18504 | 0 | 0, HEAP32[($5 + 332 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $5, wasm2js_i32$1 = gjkepa2_impl__EPA__findbest_28_29($6 | 0) | 0), HEAP32[(wasm2js_i32$0 + 332 | 0) >> 2] = wasm2js_i32$1; + $327 = HEAP32[($5 + 332 | 0) >> 2] | 0; + $328 = 48; + i64toi32_i32$2 = $327 + $328 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1271 = i64toi32_i32$1; + i64toi32_i32$1 = ($5 + 272 | 0) + $328 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1271; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $334 = 40; + i64toi32_i32$2 = $327 + $334 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1284 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 272 | 0) + $334 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1284; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $340 = 32; + i64toi32_i32$2 = $327 + $340 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1297 = i64toi32_i32$1; + i64toi32_i32$1 = ($5 + 272 | 0) + $340 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1297; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $346 = 24; + i64toi32_i32$2 = $327 + $346 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1310 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 272 | 0) + $346 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1310; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $352 = 16; + i64toi32_i32$2 = $327 + $352 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1323 = i64toi32_i32$1; + i64toi32_i32$1 = ($5 + 272 | 0) + $352 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1323; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $358 = 8; + i64toi32_i32$2 = $327 + $358 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1336 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 272 | 0) + $358 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1336; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $327; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1340 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 272 | 0) >> 2] = $1340; + HEAP32[($5 + 276 | 0) >> 2] = i64toi32_i32$0; + break label$16; + } + HEAP32[$6 >> 2] = 4; + break label$7; + } + break label$11; + } + HEAP32[$6 >> 2] = 7; + break label$7; + } + break label$9; + } + HEAP32[$6 >> 2] = 6; + break label$7; + } + HEAP32[($5 + 264 | 0) >> 2] = (HEAP32[($5 + 264 | 0) >> 2] | 0) + 1 | 0; + continue label$8; + }; + } + operator__28btVector3_20const__2c_20float_20const__29($5 + 220 | 0 | 0, $5 + 272 | 0 | 0, ($5 + 272 | 0) + 16 | 0 | 0); + $386 = $6 + 40 | 0; + i64toi32_i32$2 = $5 + 272 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1382 = i64toi32_i32$0; + i64toi32_i32$0 = $386; + HEAP32[i64toi32_i32$0 >> 2] = $1382; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $388 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $388 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1392 = i64toi32_i32$1; + i64toi32_i32$1 = $386 + $388 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1392; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($6 + 56 | 0) >> 2] = Math_fround(HEAPF32[($5 + 288 | 0) >> 2]); + HEAP32[($6 + 36 | 0) >> 2] = 3; + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 292 | 0) >> 2] | 0; + HEAP32[($6 + 8 | 0) >> 2] = HEAP32[($5 + 296 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($5 + 300 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 188 | 0 | 0, (HEAP32[($5 + 296 | 0) >> 2] | 0) + 16 | 0 | 0, $5 + 220 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 172 | 0 | 0, (HEAP32[($5 + 300 | 0) >> 2] | 0) + 16 | 0 | 0, $5 + 220 | 0 | 0); + btCross_28btVector3_20const__2c_20btVector3_20const__29($5 + 204 | 0 | 0, $5 + 188 | 0 | 0, $5 + 172 | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__length_28_29_20const($5 + 204 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 140 | 0 | 0, (HEAP32[($5 + 300 | 0) >> 2] | 0) + 16 | 0 | 0, $5 + 220 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 124 | 0 | 0, (HEAP32[($5 + 292 | 0) >> 2] | 0) + 16 | 0 | 0, $5 + 220 | 0 | 0); + btCross_28btVector3_20const__2c_20btVector3_20const__29($5 + 156 | 0 | 0, $5 + 140 | 0 | 0, $5 + 124 | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__length_28_29_20const($5 + 156 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 92 | 0 | 0, (HEAP32[($5 + 292 | 0) >> 2] | 0) + 16 | 0 | 0, $5 + 220 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 76 | 0 | 0, (HEAP32[($5 + 296 | 0) >> 2] | 0) + 16 | 0 | 0, $5 + 220 | 0 | 0); + btCross_28btVector3_20const__2c_20btVector3_20const__29($5 + 108 | 0 | 0, $5 + 92 | 0 | 0, $5 + 76 | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__length_28_29_20const($5 + 108 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($5 + 72 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($6 + 20 | 0) >> 2]) + Math_fround(HEAPF32[($6 + 24 | 0) >> 2])) + Math_fround(HEAPF32[($6 + 28 | 0) >> 2])); + HEAPF32[($6 + 20 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($6 + 20 | 0) >> 2]) / Math_fround(HEAPF32[($5 + 72 | 0) >> 2])); + HEAPF32[($6 + 24 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($6 + 24 | 0) >> 2]) / Math_fround(HEAPF32[($5 + 72 | 0) >> 2])); + HEAPF32[($6 + 28 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($6 + 28 | 0) >> 2]) / Math_fround(HEAPF32[($5 + 72 | 0) >> 2])); + HEAP32[($5 + 428 | 0) >> 2] = HEAP32[$6 >> 2] | 0; + break label$1; + } + } + HEAP32[$6 >> 2] = 8; + operator__28btVector3_20const__29($5 + 56 | 0 | 0, HEAP32[($5 + 416 | 0) >> 2] | 0 | 0); + $511 = $6 + 40 | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 56 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 60 | 0) >> 2] | 0; + $1637 = i64toi32_i32$0; + i64toi32_i32$0 = $511; + HEAP32[i64toi32_i32$0 >> 2] = $1637; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $513 = 8; + i64toi32_i32$2 = ($5 + 56 | 0) + $513 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1650 = i64toi32_i32$1; + i64toi32_i32$1 = $511 + $513 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1650; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__length_28_29_20const($6 + 40 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 52 | 0) >> 2] = wasm2js_f32$0; + label$18 : { + label$19 : { + if (!(Math_fround(HEAPF32[($5 + 52 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$19 + } + operator__28btVector3_20const__2c_20float_20const__29_1($5 + 36 | 0 | 0, $6 + 40 | 0 | 0, $5 + 52 | 0 | 0); + $537 = $6 + 40 | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 36 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 40 | 0) >> 2] | 0; + $1690 = i64toi32_i32$0; + i64toi32_i32$0 = $537; + HEAP32[i64toi32_i32$0 >> 2] = $1690; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $539 = 8; + i64toi32_i32$2 = ($5 + 36 | 0) + $539 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1703 = i64toi32_i32$1; + i64toi32_i32$1 = $537 + $539 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1703; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$18; + } + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 8 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 20 | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0, $5 + 8 | 0 | 0) | 0; + $563 = $6 + 40 | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 20 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 24 | 0) >> 2] | 0; + $1741 = i64toi32_i32$0; + i64toi32_i32$0 = $563; + HEAP32[i64toi32_i32$0 >> 2] = $1741; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $565 = 8; + i64toi32_i32$2 = ($5 + 20 | 0) + $565 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1754 = i64toi32_i32$1; + i64toi32_i32$1 = $563 + $565 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1754; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + HEAPF32[($6 + 56 | 0) >> 2] = Math_fround(0 | 0); + HEAP32[($6 + 36 | 0) >> 2] = 1; + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[(HEAP32[($5 + 412 | 0) >> 2] | 0) >> 2] | 0; + HEAPF32[($6 + 20 | 0) >> 2] = Math_fround(1.0); + HEAP32[($5 + 428 | 0) >> 2] = HEAP32[$6 >> 2] | 0; + } + $578 = HEAP32[($5 + 428 | 0) >> 2] | 0; + __stack_pointer = $5 + 432 | 0; + return $578 | 0; + } + + function gjkepa2_impl__EPA__sFace__sFace_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btVector3__btVector3_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function gjkepa2_impl__EPA__sList__sList_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + return $4 | 0; + } + + function gjkepa2_impl__EPA__Initialize_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $25 = 0, $27 = 0, $111 = 0, $124 = 0; + $3 = __stack_pointer - 48 | 0; + __stack_pointer = $3; + HEAP32[($3 + 44 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 44 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 9; + HEAPF32[($3 + 24 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 20 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 16 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 28 | 0 | 0, $3 + 24 | 0 | 0, $3 + 20 | 0 | 0, $3 + 16 | 0 | 0) | 0; + $25 = $4 + 40 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 28 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 32 | 0) >> 2] | 0; + $111 = i64toi32_i32$0; + i64toi32_i32$0 = $25; + HEAP32[i64toi32_i32$0 >> 2] = $111; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $27 = 8; + i64toi32_i32$2 = ($3 + 28 | 0) + $27 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $124 = i64toi32_i32$1; + i64toi32_i32$1 = $25 + $27 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $124; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($4 + 56 | 0) >> 2] = Math_fround(0 | 0); + HEAP32[($4 + 18492 | 0) >> 2] = 0; + HEAP32[($3 + 12 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3 + 12 | 0) >> 2] | 0) >>> 0 < 256 >>> 0 & 1 | 0)) { + break label$1 + } + gjkepa2_impl__EPA__append_28gjkepa2_impl__EPA__sList__2c_20gjkepa2_impl__EPA__sFace__29($4 + 18504 | 0 | 0, ($4 + 4156 | 0) + Math_imul((256 - (HEAP32[($3 + 12 | 0) >> 2] | 0) | 0) - 1 | 0, 56) | 0 | 0); + HEAP32[($3 + 12 | 0) >> 2] = (HEAP32[($3 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $3 + 48 | 0; + return; + } + + function gjkepa2_impl__GJK__EncloseOrigin_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $8 = 0, $56 = 0, $151 = 0, $222 = 0, $296 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $3 = __stack_pointer - 256 | 0; + __stack_pointer = $3; + HEAP32[($3 + 248 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 248 | 0) >> 2] | 0; + $8 = (HEAP32[((HEAP32[($4 + 372 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) + -1 | 0; + label$1 : { + label$2 : { + label$3 : { + switch ($8 | 0) { + case 0: + HEAP32[($3 + 244 | 0) >> 2] = 0; + label$7 : { + label$8 : while (1) { + if (!((HEAP32[($3 + 244 | 0) >> 2] | 0) >>> 0 < 3 >>> 0 & 1 | 0)) { + break label$7 + } + HEAPF32[($3 + 224 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 220 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 216 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 228 | 0 | 0, $3 + 224 | 0 | 0, $3 + 220 | 0 | 0, $3 + 216 | 0 | 0) | 0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($3 + 228 | 0 | 0) | 0) + ((HEAP32[($3 + 244 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = Math_fround(1.0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + gjkepa2_impl__GJK__appendvertice_28gjkepa2_impl__GJK__sSimplex__2c_20btVector3_20const__29($4 | 0, HEAP32[($4 + 372 | 0) >> 2] | 0 | 0, $3 + 228 | 0 | 0); + label$9 : { + if (!((gjkepa2_impl__GJK__EncloseOrigin_28_29($4 | 0) | 0) & 1 | 0)) { + break label$9 + } + HEAP8[($3 + 255 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + gjkepa2_impl__GJK__removevertice_28gjkepa2_impl__GJK__sSimplex__29($4 | 0, HEAP32[($4 + 372 | 0) >> 2] | 0 | 0); + $56 = HEAP32[($4 + 372 | 0) >> 2] | 0; + operator__28btVector3_20const__29($3 + 200 | 0 | 0, $3 + 228 | 0 | 0); + gjkepa2_impl__GJK__appendvertice_28gjkepa2_impl__GJK__sSimplex__2c_20btVector3_20const__29($4 | 0, $56 | 0, $3 + 200 | 0 | 0); + label$10 : { + if (!((gjkepa2_impl__GJK__EncloseOrigin_28_29($4 | 0) | 0) & 1 | 0)) { + break label$10 + } + HEAP8[($3 + 255 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + gjkepa2_impl__GJK__removevertice_28gjkepa2_impl__GJK__sSimplex__29($4 | 0, HEAP32[($4 + 372 | 0) >> 2] | 0 | 0); + HEAP32[($3 + 244 | 0) >> 2] = (HEAP32[($3 + 244 | 0) >> 2] | 0) + 1 | 0; + continue label$8; + }; + } + break label$2; + case 1: + operator__28btVector3_20const__2c_20btVector3_20const__29($3 + 184 | 0 | 0, (HEAP32[((HEAP32[($4 + 372 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 16 | 0 | 0, (HEAP32[(HEAP32[($4 + 372 | 0) >> 2] | 0) >> 2] | 0) + 16 | 0 | 0); + HEAP32[($3 + 180 | 0) >> 2] = 0; + label$11 : { + label$12 : while (1) { + if (!((HEAP32[($3 + 180 | 0) >> 2] | 0) >>> 0 < 3 >>> 0 & 1 | 0)) { + break label$11 + } + HEAPF32[($3 + 160 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 156 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 152 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 164 | 0 | 0, $3 + 160 | 0 | 0, $3 + 156 | 0 | 0, $3 + 152 | 0 | 0) | 0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($3 + 164 | 0 | 0) | 0) + ((HEAP32[($3 + 180 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = Math_fround(1.0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + btCross_28btVector3_20const__2c_20btVector3_20const__29($3 + 136 | 0 | 0, $3 + 184 | 0 | 0, $3 + 164 | 0 | 0); + label$13 : { + if (!(Math_fround(btVector3__length2_28_29_20const($3 + 136 | 0 | 0)) > Math_fround(0 | 0) & 1 | 0)) { + break label$13 + } + gjkepa2_impl__GJK__appendvertice_28gjkepa2_impl__GJK__sSimplex__2c_20btVector3_20const__29($4 | 0, HEAP32[($4 + 372 | 0) >> 2] | 0 | 0, $3 + 136 | 0 | 0); + label$14 : { + if (!((gjkepa2_impl__GJK__EncloseOrigin_28_29($4 | 0) | 0) & 1 | 0)) { + break label$14 + } + HEAP8[($3 + 255 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + gjkepa2_impl__GJK__removevertice_28gjkepa2_impl__GJK__sSimplex__29($4 | 0, HEAP32[($4 + 372 | 0) >> 2] | 0 | 0); + $151 = HEAP32[($4 + 372 | 0) >> 2] | 0; + operator__28btVector3_20const__29($3 + 120 | 0 | 0, $3 + 136 | 0 | 0); + gjkepa2_impl__GJK__appendvertice_28gjkepa2_impl__GJK__sSimplex__2c_20btVector3_20const__29($4 | 0, $151 | 0, $3 + 120 | 0 | 0); + label$15 : { + if (!((gjkepa2_impl__GJK__EncloseOrigin_28_29($4 | 0) | 0) & 1 | 0)) { + break label$15 + } + HEAP8[($3 + 255 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + gjkepa2_impl__GJK__removevertice_28gjkepa2_impl__GJK__sSimplex__29($4 | 0, HEAP32[($4 + 372 | 0) >> 2] | 0 | 0); + } + HEAP32[($3 + 180 | 0) >> 2] = (HEAP32[($3 + 180 | 0) >> 2] | 0) + 1 | 0; + continue label$12; + }; + } + break label$2; + case 2: + operator__28btVector3_20const__2c_20btVector3_20const__29($3 + 88 | 0 | 0, (HEAP32[((HEAP32[($4 + 372 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 16 | 0 | 0, (HEAP32[(HEAP32[($4 + 372 | 0) >> 2] | 0) >> 2] | 0) + 16 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($3 + 72 | 0 | 0, (HEAP32[((HEAP32[($4 + 372 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 16 | 0 | 0, (HEAP32[(HEAP32[($4 + 372 | 0) >> 2] | 0) >> 2] | 0) + 16 | 0 | 0); + btCross_28btVector3_20const__2c_20btVector3_20const__29($3 + 104 | 0 | 0, $3 + 88 | 0 | 0, $3 + 72 | 0 | 0); + label$16 : { + if (!(Math_fround(btVector3__length2_28_29_20const($3 + 104 | 0 | 0)) > Math_fround(0 | 0) & 1 | 0)) { + break label$16 + } + gjkepa2_impl__GJK__appendvertice_28gjkepa2_impl__GJK__sSimplex__2c_20btVector3_20const__29($4 | 0, HEAP32[($4 + 372 | 0) >> 2] | 0 | 0, $3 + 104 | 0 | 0); + label$17 : { + if (!((gjkepa2_impl__GJK__EncloseOrigin_28_29($4 | 0) | 0) & 1 | 0)) { + break label$17 + } + HEAP8[($3 + 255 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + gjkepa2_impl__GJK__removevertice_28gjkepa2_impl__GJK__sSimplex__29($4 | 0, HEAP32[($4 + 372 | 0) >> 2] | 0 | 0); + $222 = HEAP32[($4 + 372 | 0) >> 2] | 0; + operator__28btVector3_20const__29($3 + 56 | 0 | 0, $3 + 104 | 0 | 0); + gjkepa2_impl__GJK__appendvertice_28gjkepa2_impl__GJK__sSimplex__2c_20btVector3_20const__29($4 | 0, $222 | 0, $3 + 56 | 0 | 0); + label$18 : { + if (!((gjkepa2_impl__GJK__EncloseOrigin_28_29($4 | 0) | 0) & 1 | 0)) { + break label$18 + } + HEAP8[($3 + 255 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + gjkepa2_impl__GJK__removevertice_28gjkepa2_impl__GJK__sSimplex__29($4 | 0, HEAP32[($4 + 372 | 0) >> 2] | 0 | 0); + } + break label$2; + case 3: + break label$3; + default: + break label$2; + }; + } + operator__28btVector3_20const__2c_20btVector3_20const__29($3 + 40 | 0 | 0, (HEAP32[(HEAP32[($4 + 372 | 0) >> 2] | 0) >> 2] | 0) + 16 | 0 | 0, (HEAP32[((HEAP32[($4 + 372 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 16 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($3 + 24 | 0 | 0, (HEAP32[((HEAP32[($4 + 372 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 16 | 0 | 0, (HEAP32[((HEAP32[($4 + 372 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 16 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($3 + 8 | 0 | 0, (HEAP32[((HEAP32[($4 + 372 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 16 | 0 | 0, (HEAP32[((HEAP32[($4 + 372 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 16 | 0 | 0); + label$19 : { + if (!(Math_fround(btFabs_28float_29(Math_fround(Math_fround(gjkepa2_impl__GJK__det_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($3 + 40 | 0 | 0, $3 + 24 | 0 | 0, $3 + 8 | 0 | 0))))) > Math_fround(0 | 0) & 1 | 0)) { + break label$19 + } + HEAP8[($3 + 255 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + } + HEAP8[($3 + 255 | 0) >> 0] = 0 & 1 | 0; + } + $296 = (HEAPU8[($3 + 255 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $3 + 256 | 0; + return $296 | 0; + } + + function gjkepa2_impl__EPA__remove_28gjkepa2_impl__EPA__sList__2c_20gjkepa2_impl__EPA__sFace__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $40 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + if (!((HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[((HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0) + 44 | 0) >> 2] = HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0; + } + label$2 : { + if (!((HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[((HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) + 48 | 0) >> 2] = HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0; + } + label$3 : { + if (!((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) == (HEAP32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] = HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0; + } + $40 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($40 + 4 | 0) >> 2] = (HEAP32[($40 + 4 | 0) >> 2] | 0) + -1 | 0; + return; + } + + function gjkepa2_impl__EPA__append_28gjkepa2_impl__EPA__sList__2c_20gjkepa2_impl__EPA__sFace__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $23 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 44 | 0) >> 2] = 0; + HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 48 | 0) >> 2] = HEAP32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[((HEAP32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] | 0) + 44 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + HEAP32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + $23 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($23 + 4 | 0) >> 2] = (HEAP32[($23 + 4 | 0) >> 2] | 0) + 1 | 0; + return; + } + + function gjkepa2_impl__GJK__det_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $28 = Math_fround(0), $41 = Math_fround(0), $54 = Math_fround(0), $66 = Math_fround(0), $79 = Math_fround(0); + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $28 = Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2])) * Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2])) * Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) >> 2]))); + $41 = Math_fround(Math_fround(Math_fround(-Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2]))) * Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $28); + $54 = Math_fround(Math_fround(Math_fround(-Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2]))) * Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $41); + $66 = Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2])) * Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $54); + $79 = Math_fround(Math_fround(Math_fround(-Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2]))) * Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $66); + __stack_pointer = $5 + 16 | 0; + return Math_fround($79); + } + + function void_20btSwap_gjkepa2_impl__GJK__sSV___28gjkepa2_impl__GJK__sSV___2c_20gjkepa2_impl__GJK__sSV___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] = HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + return; + } + + function gjkepa2_impl__EPA__newface_28gjkepa2_impl__GJK__sSV__2c_20gjkepa2_impl__GJK__sSV__2c_20gjkepa2_impl__GJK__sSV__2c_20bool_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $9 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $59 = 0, $61 = 0, $273 = 0, $286 = 0, $108 = Math_fround(0), $146 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $7 = __stack_pointer - 96 | 0; + __stack_pointer = $7; + HEAP32[($7 + 88 | 0) >> 2] = $0; + HEAP32[($7 + 84 | 0) >> 2] = $1; + HEAP32[($7 + 80 | 0) >> 2] = $2; + HEAP32[($7 + 76 | 0) >> 2] = $3; + HEAP8[($7 + 75 | 0) >> 0] = $4; + $9 = HEAP32[($7 + 88 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($9 + 18504 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($7 + 68 | 0) >> 2] = HEAP32[($9 + 18504 | 0) >> 2] | 0; + gjkepa2_impl__EPA__remove_28gjkepa2_impl__EPA__sList__2c_20gjkepa2_impl__EPA__sFace__29($9 + 18504 | 0 | 0, HEAP32[($7 + 68 | 0) >> 2] | 0 | 0); + gjkepa2_impl__EPA__append_28gjkepa2_impl__EPA__sList__2c_20gjkepa2_impl__EPA__sFace__29($9 + 18496 | 0 | 0, HEAP32[($7 + 68 | 0) >> 2] | 0 | 0); + HEAP8[((HEAP32[($7 + 68 | 0) >> 2] | 0) + 55 | 0) >> 0] = 0; + HEAP32[((HEAP32[($7 + 68 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[($7 + 84 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7 + 68 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[($7 + 80 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7 + 68 | 0) >> 2] | 0) + 28 | 0) >> 2] = HEAP32[($7 + 76 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($7 + 36 | 0 | 0, (HEAP32[($7 + 80 | 0) >> 2] | 0) + 16 | 0 | 0, (HEAP32[($7 + 84 | 0) >> 2] | 0) + 16 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($7 + 20 | 0 | 0, (HEAP32[($7 + 76 | 0) >> 2] | 0) + 16 | 0 | 0, (HEAP32[($7 + 84 | 0) >> 2] | 0) + 16 | 0 | 0); + btCross_28btVector3_20const__2c_20btVector3_20const__29($7 + 52 | 0 | 0, $7 + 36 | 0 | 0, $7 + 20 | 0 | 0); + $59 = HEAP32[($7 + 68 | 0) >> 2] | 0; + i64toi32_i32$2 = $7; + i64toi32_i32$0 = HEAP32[($7 + 52 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7 + 56 | 0) >> 2] | 0; + $273 = i64toi32_i32$0; + i64toi32_i32$0 = $59; + HEAP32[i64toi32_i32$0 >> 2] = $273; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $61 = 8; + i64toi32_i32$2 = ($7 + 52 | 0) + $61 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $286 = i64toi32_i32$1; + i64toi32_i32$1 = $59 + $61 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $286; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btVector3__length_28_29_20const(HEAP32[($7 + 68 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + HEAP8[($7 + 15 | 0) >> 0] = Math_fround(HEAPF32[($7 + 16 | 0) >> 2]) > Math_fround(9.999999747378752e-05) & 1 | 0; + label$3 : { + label$4 : { + if (!((HEAPU8[($7 + 15 | 0) >> 0] | 0) & 1 | 0)) { + break label$4 + } + label$5 : { + if ((gjkepa2_impl__EPA__getedgedist_28gjkepa2_impl__EPA__sFace__2c_20gjkepa2_impl__GJK__sSV__2c_20gjkepa2_impl__GJK__sSV__2c_20float__29($9 | 0, HEAP32[($7 + 68 | 0) >> 2] | 0 | 0, HEAP32[($7 + 84 | 0) >> 2] | 0 | 0, HEAP32[($7 + 80 | 0) >> 2] | 0 | 0, (HEAP32[($7 + 68 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) & 1 | 0) { + break label$5 + } + if ((gjkepa2_impl__EPA__getedgedist_28gjkepa2_impl__EPA__sFace__2c_20gjkepa2_impl__GJK__sSV__2c_20gjkepa2_impl__GJK__sSV__2c_20float__29($9 | 0, HEAP32[($7 + 68 | 0) >> 2] | 0 | 0, HEAP32[($7 + 80 | 0) >> 2] | 0 | 0, HEAP32[($7 + 76 | 0) >> 2] | 0 | 0, (HEAP32[($7 + 68 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) & 1 | 0) { + break label$5 + } + if ((gjkepa2_impl__EPA__getedgedist_28gjkepa2_impl__EPA__sFace__2c_20gjkepa2_impl__GJK__sSV__2c_20gjkepa2_impl__GJK__sSV__2c_20float__29($9 | 0, HEAP32[($7 + 68 | 0) >> 2] | 0 | 0, HEAP32[($7 + 76 | 0) >> 2] | 0 | 0, HEAP32[($7 + 84 | 0) >> 2] | 0 | 0, (HEAP32[($7 + 68 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) & 1 | 0) { + break label$5 + } + $108 = Math_fround(btDot_28btVector3_20const__2c_20btVector3_20const__29((HEAP32[($7 + 84 | 0) >> 2] | 0) + 16 | 0 | 0, HEAP32[($7 + 68 | 0) >> 2] | 0 | 0)); + HEAPF32[((HEAP32[($7 + 68 | 0) >> 2] | 0) + 16 | 0) >> 2] = Math_fround($108 / Math_fround(HEAPF32[($7 + 16 | 0) >> 2])); + } + btVector3__operator___28float_20const__29(HEAP32[($7 + 68 | 0) >> 2] | 0 | 0, $7 + 16 | 0 | 0) | 0; + label$6 : { + label$7 : { + if ((HEAPU8[($7 + 75 | 0) >> 0] | 0) & 1 | 0) { + break label$7 + } + if (!(Math_fround(HEAPF32[((HEAP32[($7 + 68 | 0) >> 2] | 0) + 16 | 0) >> 2]) >= Math_fround(-9.999999747378752e-06) & 1 | 0)) { + break label$6 + } + } + HEAP32[($7 + 92 | 0) >> 2] = HEAP32[($7 + 68 | 0) >> 2] | 0; + break label$1; + } + HEAP32[$9 >> 2] = 3; + break label$3; + } + HEAP32[$9 >> 2] = 2; + } + gjkepa2_impl__EPA__remove_28gjkepa2_impl__EPA__sList__2c_20gjkepa2_impl__EPA__sFace__29($9 + 18496 | 0 | 0, HEAP32[($7 + 68 | 0) >> 2] | 0 | 0); + gjkepa2_impl__EPA__append_28gjkepa2_impl__EPA__sList__2c_20gjkepa2_impl__EPA__sFace__29($9 + 18504 | 0 | 0, HEAP32[($7 + 68 | 0) >> 2] | 0 | 0); + HEAP32[($7 + 92 | 0) >> 2] = 0; + break label$1; + } + HEAP32[$9 >> 2] = (HEAP32[($9 + 18504 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0 ? 6 : 5; + HEAP32[($7 + 92 | 0) >> 2] = 0; + } + $146 = HEAP32[($7 + 92 | 0) >> 2] | 0; + __stack_pointer = $7 + 96 | 0; + return $146 | 0; + } + + function gjkepa2_impl__EPA__findbest_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 32 | 0; + HEAP32[($3 + 28 | 0) >> 2] = $0; + HEAP32[($3 + 24 | 0) >> 2] = HEAP32[((HEAP32[($3 + 28 | 0) >> 2] | 0) + 18496 | 0) >> 2] | 0; + HEAPF32[($3 + 20 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($3 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2])); + HEAP32[($3 + 16 | 0) >> 2] = HEAP32[((HEAP32[($3 + 24 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + HEAPF32[($3 + 12 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 16 | 0) >> 2] | 0) + 16 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($3 + 16 | 0) >> 2] | 0) + 16 | 0) >> 2])); + label$3 : { + if (!(Math_fround(HEAPF32[($3 + 12 | 0) >> 2]) < Math_fround(HEAPF32[($3 + 20 | 0) >> 2]) & 1 | 0)) { + break label$3 + } + HEAP32[($3 + 24 | 0) >> 2] = HEAP32[($3 + 16 | 0) >> 2] | 0; + HEAPF32[($3 + 20 | 0) >> 2] = Math_fround(HEAPF32[($3 + 12 | 0) >> 2]); + } + HEAP32[($3 + 16 | 0) >> 2] = HEAP32[((HEAP32[($3 + 16 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0; + continue label$2; + }; + } + return HEAP32[($3 + 24 | 0) >> 2] | 0 | 0; + } + + function gjkepa2_impl__EPA__bind_28gjkepa2_impl__EPA__sFace__2c_20unsigned_20int_2c_20gjkepa2_impl__EPA__sFace__2c_20unsigned_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0; + $6 = __stack_pointer - 16 | 0; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + HEAP8[(((HEAP32[($6 + 12 | 0) >> 2] | 0) + 52 | 0) + (HEAP32[($6 + 8 | 0) >> 2] | 0) | 0) >> 0] = HEAP32[$6 >> 2] | 0; + HEAP32[(((HEAP32[($6 + 12 | 0) >> 2] | 0) + 32 | 0) + ((HEAP32[($6 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[($6 + 4 | 0) >> 2] | 0; + HEAP8[(((HEAP32[($6 + 4 | 0) >> 2] | 0) + 52 | 0) + (HEAP32[$6 >> 2] | 0) | 0) >> 0] = HEAP32[($6 + 8 | 0) >> 2] | 0; + HEAP32[(((HEAP32[($6 + 4 | 0) >> 2] | 0) + 32 | 0) + ((HEAP32[$6 >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[($6 + 12 | 0) >> 2] | 0; + return; + } + + function gjkepa2_impl__EPA__sHorizon__sHorizon_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return $4 | 0; + } + + function gjkepa2_impl__GJK__getsupport_28btVector3_20const__2c_20gjkepa2_impl__GJK__sSV__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $16 = 0, $18 = 0, $28 = 0, $30 = 0, $6 = 0, $7 = 0, $73 = 0, $86 = 0, $101 = 0, $111 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 44 | 0) >> 2] = $0; + HEAP32[($5 + 40 | 0) >> 2] = $1; + HEAP32[($5 + 36 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 44 | 0) >> 2] | 0; + $7 = HEAP32[($5 + 40 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__length_28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20float_20const__29_1($5 + 20 | 0 | 0, $7 | 0, $5 + 16 | 0 | 0); + $16 = HEAP32[($5 + 36 | 0) >> 2] | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 20 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 24 | 0) >> 2] | 0; + $73 = i64toi32_i32$0; + i64toi32_i32$0 = $16; + HEAP32[i64toi32_i32$0 >> 2] = $73; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $18 = 8; + i64toi32_i32$2 = ($5 + 20 | 0) + $18 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $86 = i64toi32_i32$1; + i64toi32_i32$1 = $16 + $18 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $86; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + gjkepa2_impl__MinkowskiDiff__Support_28btVector3_20const__29_20const($5 | 0, $6 | 0, HEAP32[($5 + 36 | 0) >> 2] | 0 | 0); + $28 = (HEAP32[($5 + 36 | 0) >> 2] | 0) + 16 | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[$5 >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 4 | 0) >> 2] | 0; + $101 = i64toi32_i32$0; + i64toi32_i32$0 = $28; + HEAP32[i64toi32_i32$0 >> 2] = $101; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $30 = 8; + i64toi32_i32$2 = $5 + $30 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $111 = i64toi32_i32$1; + i64toi32_i32$1 = $28 + $30 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $111; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $5 + 48 | 0; + return; + } + + function gjkepa2_impl__EPA__expand_28unsigned_20int_2c_20gjkepa2_impl__GJK__sSV__2c_20gjkepa2_impl__EPA__sFace__2c_20unsigned_20int_2c_20gjkepa2_impl__EPA__sHorizon__29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, $9 = 0, $87 = 0, $160 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $8 = __stack_pointer - 48 | 0; + __stack_pointer = $8; + HEAP32[($8 + 40 | 0) >> 2] = $0; + HEAP32[($8 + 36 | 0) >> 2] = $1; + HEAP32[($8 + 32 | 0) >> 2] = $2; + HEAP32[($8 + 28 | 0) >> 2] = $3; + HEAP32[($8 + 24 | 0) >> 2] = $4; + HEAP32[($8 + 20 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 40 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(((HEAPU8[((HEAP32[($8 + 28 | 0) >> 2] | 0) + 55 | 0) >> 0] | 0) & 255 | 0 | 0) != (HEAP32[($8 + 36 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($8 + 16 | 0) >> 2] = HEAP32[(101376 + ((HEAP32[($8 + 24 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + label$3 : { + label$4 : { + if (!(Math_fround(Math_fround(btDot_28btVector3_20const__2c_20btVector3_20const__29(HEAP32[($8 + 28 | 0) >> 2] | 0 | 0, (HEAP32[($8 + 32 | 0) >> 2] | 0) + 16 | 0 | 0)) - Math_fround(HEAPF32[((HEAP32[($8 + 28 | 0) >> 2] | 0) + 16 | 0) >> 2])) < Math_fround(-9.999999747378752e-06) & 1 | 0)) { + break label$4 + } + (wasm2js_i32$0 = $8, wasm2js_i32$1 = gjkepa2_impl__EPA__newface_28gjkepa2_impl__GJK__sSV__2c_20gjkepa2_impl__GJK__sSV__2c_20gjkepa2_impl__GJK__sSV__2c_20bool_29($9 | 0, HEAP32[(((HEAP32[($8 + 28 | 0) >> 2] | 0) + 20 | 0) + ((HEAP32[($8 + 16 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($8 + 28 | 0) >> 2] | 0) + 20 | 0) + ((HEAP32[($8 + 24 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0, HEAP32[($8 + 32 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + label$5 : { + if (!((HEAP32[($8 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + gjkepa2_impl__EPA__bind_28gjkepa2_impl__EPA__sFace__2c_20unsigned_20int_2c_20gjkepa2_impl__EPA__sFace__2c_20unsigned_20int_29(HEAP32[($8 + 12 | 0) >> 2] | 0 | 0, 0 | 0, HEAP32[($8 + 28 | 0) >> 2] | 0 | 0, HEAP32[($8 + 24 | 0) >> 2] | 0 | 0); + label$6 : { + label$7 : { + if (!((HEAP32[(HEAP32[($8 + 20 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + gjkepa2_impl__EPA__bind_28gjkepa2_impl__EPA__sFace__2c_20unsigned_20int_2c_20gjkepa2_impl__EPA__sFace__2c_20unsigned_20int_29(HEAP32[(HEAP32[($8 + 20 | 0) >> 2] | 0) >> 2] | 0 | 0, 1 | 0, HEAP32[($8 + 12 | 0) >> 2] | 0 | 0, 2 | 0); + break label$6; + } + HEAP32[((HEAP32[($8 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($8 + 12 | 0) >> 2] | 0; + } + HEAP32[(HEAP32[($8 + 20 | 0) >> 2] | 0) >> 2] = HEAP32[($8 + 12 | 0) >> 2] | 0; + $87 = HEAP32[($8 + 20 | 0) >> 2] | 0; + HEAP32[($87 + 8 | 0) >> 2] = (HEAP32[($87 + 8 | 0) >> 2] | 0) + 1 | 0; + HEAP8[($8 + 47 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + break label$3; + } + HEAP32[($8 + 8 | 0) >> 2] = HEAP32[(101388 + ((HEAP32[($8 + 24 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP8[((HEAP32[($8 + 28 | 0) >> 2] | 0) + 55 | 0) >> 0] = HEAP32[($8 + 36 | 0) >> 2] | 0; + label$8 : { + if (!((gjkepa2_impl__EPA__expand_28unsigned_20int_2c_20gjkepa2_impl__GJK__sSV__2c_20gjkepa2_impl__EPA__sFace__2c_20unsigned_20int_2c_20gjkepa2_impl__EPA__sHorizon__29($9 | 0, HEAP32[($8 + 36 | 0) >> 2] | 0 | 0, HEAP32[($8 + 32 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($8 + 28 | 0) >> 2] | 0) + 32 | 0) + ((HEAP32[($8 + 16 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0, (HEAPU8[(((HEAP32[($8 + 28 | 0) >> 2] | 0) + 52 | 0) + (HEAP32[($8 + 16 | 0) >> 2] | 0) | 0) >> 0] | 0) & 255 | 0 | 0, HEAP32[($8 + 20 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$8 + } + if (!((gjkepa2_impl__EPA__expand_28unsigned_20int_2c_20gjkepa2_impl__GJK__sSV__2c_20gjkepa2_impl__EPA__sFace__2c_20unsigned_20int_2c_20gjkepa2_impl__EPA__sHorizon__29($9 | 0, HEAP32[($8 + 36 | 0) >> 2] | 0 | 0, HEAP32[($8 + 32 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($8 + 28 | 0) >> 2] | 0) + 32 | 0) + ((HEAP32[($8 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0, (HEAPU8[(((HEAP32[($8 + 28 | 0) >> 2] | 0) + 52 | 0) + (HEAP32[($8 + 8 | 0) >> 2] | 0) | 0) >> 0] | 0) & 255 | 0 | 0, HEAP32[($8 + 20 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$8 + } + gjkepa2_impl__EPA__remove_28gjkepa2_impl__EPA__sList__2c_20gjkepa2_impl__EPA__sFace__29($9 + 18496 | 0 | 0, HEAP32[($8 + 28 | 0) >> 2] | 0 | 0); + gjkepa2_impl__EPA__append_28gjkepa2_impl__EPA__sList__2c_20gjkepa2_impl__EPA__sFace__29($9 + 18504 | 0 | 0, HEAP32[($8 + 28 | 0) >> 2] | 0 | 0); + HEAP8[($8 + 47 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + } + } + HEAP8[($8 + 47 | 0) >> 0] = 0 & 1 | 0; + } + $160 = (HEAPU8[($8 + 47 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $8 + 48 | 0; + return $160 | 0; + } + + function btTransform__btTransform_28btQuaternion_20const__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0, $9 = 0, $12 = 0, $44 = 0, $54 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btMatrix3x3__btMatrix3x3_28btQuaternion_20const__29($6 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0; + $9 = $6 + 48 | 0; + i64toi32_i32$2 = HEAP32[($5 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $44 = i64toi32_i32$0; + i64toi32_i32$0 = $9; + HEAP32[i64toi32_i32$0 >> 2] = $44; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $12 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $12 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $54 = i64toi32_i32$1; + i64toi32_i32$1 = $9 + $12 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $54; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $5 + 16 | 0; + return $6 | 0; + } + + function gjkepa2_impl__MinkowskiDiff__Support_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 64 | 0; + __stack_pointer = $5; + HEAP32[($5 + 60 | 0) >> 2] = $1; + HEAP32[($5 + 56 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 60 | 0) >> 2] | 0; + gjkepa2_impl__MinkowskiDiff__Support0_28btVector3_20const__29_20const($5 + 40 | 0 | 0, $6 | 0, HEAP32[($5 + 56 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__29($5 + 8 | 0 | 0, HEAP32[($5 + 56 | 0) >> 2] | 0 | 0); + gjkepa2_impl__MinkowskiDiff__Support1_28btVector3_20const__29_20const($5 + 24 | 0 | 0, $6 | 0, $5 + 8 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($0 | 0, $5 + 40 | 0 | 0, $5 + 24 | 0 | 0); + __stack_pointer = $5 + 64 | 0; + return; + } + + function gjkepa2_impl__EPA__getedgedist_28gjkepa2_impl__EPA__sFace__2c_20gjkepa2_impl__GJK__sSV__2c_20gjkepa2_impl__GJK__sSV__2c_20float__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $64 = Math_fround(0), $75 = Math_fround(0), $110 = Math_fround(0), $120 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $7 = __stack_pointer - 96 | 0; + __stack_pointer = $7; + HEAP32[($7 + 88 | 0) >> 2] = $0; + HEAP32[($7 + 84 | 0) >> 2] = $1; + HEAP32[($7 + 80 | 0) >> 2] = $2; + HEAP32[($7 + 76 | 0) >> 2] = $3; + HEAP32[($7 + 72 | 0) >> 2] = $4; + operator__28btVector3_20const__2c_20btVector3_20const__29($7 + 56 | 0 | 0, (HEAP32[($7 + 76 | 0) >> 2] | 0) + 16 | 0 | 0, (HEAP32[($7 + 80 | 0) >> 2] | 0) + 16 | 0 | 0); + btCross_28btVector3_20const__2c_20btVector3_20const__29($7 + 40 | 0 | 0, $7 + 56 | 0 | 0, HEAP32[($7 + 84 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btDot_28btVector3_20const__2c_20btVector3_20const__29((HEAP32[($7 + 80 | 0) >> 2] | 0) + 16 | 0 | 0, $7 + 40 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($7 + 36 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($7 + 56 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btDot_28btVector3_20const__2c_20btVector3_20const__29((HEAP32[($7 + 80 | 0) >> 2] | 0) + 16 | 0 | 0, $7 + 56 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btDot_28btVector3_20const__2c_20btVector3_20const__29((HEAP32[($7 + 76 | 0) >> 2] | 0) + 16 | 0 | 0, $7 + 56 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_f32$0; + label$3 : { + label$4 : { + if (!(Math_fround(HEAPF32[($7 + 28 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$4 + } + $64 = Math_fround(btVector3__length_28_29_20const((HEAP32[($7 + 80 | 0) >> 2] | 0) + 16 | 0 | 0)); + HEAPF32[(HEAP32[($7 + 72 | 0) >> 2] | 0) >> 2] = $64; + break label$3; + } + label$5 : { + label$6 : { + if (!(Math_fround(HEAPF32[($7 + 24 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$6 + } + $75 = Math_fround(btVector3__length_28_29_20const((HEAP32[($7 + 76 | 0) >> 2] | 0) + 16 | 0 | 0)); + HEAPF32[(HEAP32[($7 + 72 | 0) >> 2] | 0) >> 2] = $75; + break label$5; + } + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btDot_28btVector3_20const__2c_20btVector3_20const__29((HEAP32[($7 + 80 | 0) >> 2] | 0) + 16 | 0 | 0, (HEAP32[($7 + 76 | 0) >> 2] | 0) + 16 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(Math_fround(btVector3__length2_28_29_20const((HEAP32[($7 + 80 | 0) >> 2] | 0) + 16 | 0 | 0)) * Math_fround(btVector3__length2_28_29_20const((HEAP32[($7 + 76 | 0) >> 2] | 0) + 16 | 0 | 0))) + Math_fround(-Math_fround(Math_fround(HEAPF32[($7 + 20 | 0) >> 2]) * Math_fround(HEAPF32[($7 + 20 | 0) >> 2])))) / Math_fround(HEAPF32[($7 + 32 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($7 + 12 | 0) >> 2] = Math_fround(0 | 0); + $110 = Math_fround(btSqrt_28float_29(Math_fround(Math_fround(HEAPF32[(float_20const__20btMax_float__28float_20const__2c_20float_20const__29($7 + 16 | 0 | 0, $7 + 12 | 0 | 0) | 0) >> 2])))); + HEAPF32[(HEAP32[($7 + 72 | 0) >> 2] | 0) >> 2] = $110; + } + } + HEAP8[($7 + 95 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + HEAP8[($7 + 95 | 0) >> 0] = 0 & 1 | 0; + } + $120 = (HEAPU8[($7 + 95 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $7 + 96 | 0; + return $120 | 0; + } + + function _GLOBAL__sub_I_btGjkEpa2_cpp() { + __cxx_global_var_init_59(); + return; + } + + function __cxx_global_var_init_60() { + btInfMaskConverter__btInfMaskConverter_28int_29(114328 | 0, 2139095040 | 0) | 0; + return; + } + + function btGjkEpaPenetrationDepthSolver__calcPenDepth_28btVoronoiSimplexSolver__2c_20btConvexShape_20const__2c_20btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3__2c_20btVector3__2c_20btVector3__2c_20btIDebugDraw__29($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + $8 = $8 | 0; + $9 = $9 | 0; + var $12 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $44 = 0, $46 = 0, $57 = 0, $59 = 0, $68 = 0, $70 = 0, $95 = 0, $97 = 0, $108 = 0, $110 = 0, $119 = 0, $121 = 0, $226 = 0, $236 = 0, $252 = 0, $262 = 0, $275 = 0, $285 = 0, $331 = 0, $341 = 0, $357 = 0, $367 = 0, $380 = 0, $390 = 0, $133 = 0; + $12 = __stack_pointer - 128 | 0; + __stack_pointer = $12; + HEAP32[($12 + 120 | 0) >> 2] = $0; + HEAP32[($12 + 116 | 0) >> 2] = $1; + HEAP32[($12 + 112 | 0) >> 2] = $2; + HEAP32[($12 + 108 | 0) >> 2] = $3; + HEAP32[($12 + 104 | 0) >> 2] = $4; + HEAP32[($12 + 100 | 0) >> 2] = $5; + HEAP32[($12 + 96 | 0) >> 2] = $6; + HEAP32[($12 + 92 | 0) >> 2] = $7; + HEAP32[($12 + 88 | 0) >> 2] = $8; + HEAP32[($12 + 84 | 0) >> 2] = $9; + operator__28btVector3_20const__2c_20btVector3_20const__29($12 + 68 | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($12 + 100 | 0) >> 2] | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($12 + 104 | 0) >> 2] | 0 | 0) | 0 | 0); + btGjkEpaSolver2__sResults__sResults_28_29($12 + 12 | 0 | 0) | 0; + label$1 : { + label$2 : { + if (!((btGjkEpaSolver2__Penetration_28btConvexShape_20const__2c_20btTransform_20const__2c_20btConvexShape_20const__2c_20btTransform_20const__2c_20btVector3_20const__2c_20btGjkEpaSolver2__sResults__2c_20bool_29(HEAP32[($12 + 112 | 0) >> 2] | 0 | 0, HEAP32[($12 + 104 | 0) >> 2] | 0 | 0, HEAP32[($12 + 108 | 0) >> 2] | 0 | 0, HEAP32[($12 + 100 | 0) >> 2] | 0 | 0, $12 + 68 | 0 | 0, $12 + 12 | 0 | 0, 1 & 1 | 0 | 0) | 0) & 1 | 0)) { + break label$2 + } + $44 = HEAP32[($12 + 92 | 0) >> 2] | 0; + i64toi32_i32$2 = ($12 + 12 | 0) + 4 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $226 = i64toi32_i32$0; + i64toi32_i32$0 = $44; + HEAP32[i64toi32_i32$0 >> 2] = $226; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $46 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $46 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $236 = i64toi32_i32$1; + i64toi32_i32$1 = $44 + $46 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $236; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $57 = HEAP32[($12 + 88 | 0) >> 2] | 0; + i64toi32_i32$2 = (($12 + 12 | 0) + 4 | 0) + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $252 = i64toi32_i32$0; + i64toi32_i32$0 = $57; + HEAP32[i64toi32_i32$0 >> 2] = $252; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $59 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $59 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $262 = i64toi32_i32$1; + i64toi32_i32$1 = $57 + $59 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $262; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $68 = HEAP32[($12 + 96 | 0) >> 2] | 0; + i64toi32_i32$2 = ($12 + 12 | 0) + 36 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $275 = i64toi32_i32$0; + i64toi32_i32$0 = $68; + HEAP32[i64toi32_i32$0 >> 2] = $275; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $70 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $70 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $285 = i64toi32_i32$1; + i64toi32_i32$1 = $68 + $70 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $285; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP8[($12 + 127 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + label$3 : { + if (!((btGjkEpaSolver2__Distance_28btConvexShape_20const__2c_20btTransform_20const__2c_20btConvexShape_20const__2c_20btTransform_20const__2c_20btVector3_20const__2c_20btGjkEpaSolver2__sResults__29(HEAP32[($12 + 112 | 0) >> 2] | 0 | 0, HEAP32[($12 + 104 | 0) >> 2] | 0 | 0, HEAP32[($12 + 108 | 0) >> 2] | 0 | 0, HEAP32[($12 + 100 | 0) >> 2] | 0 | 0, $12 + 68 | 0 | 0, $12 + 12 | 0 | 0) | 0) & 1 | 0)) { + break label$3 + } + $95 = HEAP32[($12 + 92 | 0) >> 2] | 0; + i64toi32_i32$2 = ($12 + 12 | 0) + 4 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $331 = i64toi32_i32$0; + i64toi32_i32$0 = $95; + HEAP32[i64toi32_i32$0 >> 2] = $331; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $97 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $97 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $341 = i64toi32_i32$1; + i64toi32_i32$1 = $95 + $97 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $341; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $108 = HEAP32[($12 + 88 | 0) >> 2] | 0; + i64toi32_i32$2 = (($12 + 12 | 0) + 4 | 0) + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $357 = i64toi32_i32$0; + i64toi32_i32$0 = $108; + HEAP32[i64toi32_i32$0 >> 2] = $357; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $110 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $110 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $367 = i64toi32_i32$1; + i64toi32_i32$1 = $108 + $110 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $367; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $119 = HEAP32[($12 + 96 | 0) >> 2] | 0; + i64toi32_i32$2 = ($12 + 12 | 0) + 36 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $380 = i64toi32_i32$0; + i64toi32_i32$0 = $119; + HEAP32[i64toi32_i32$0 >> 2] = $380; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $121 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $121 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $390 = i64toi32_i32$1; + i64toi32_i32$1 = $119 + $121 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $390; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP8[($12 + 127 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + HEAP8[($12 + 127 | 0) >> 0] = 0 & 1 | 0; + } + $133 = (HEAPU8[($12 + 127 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $12 + 128 | 0; + return $133 | 0; + } + + function btGjkEpaSolver2__sResults__sResults_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $6 = 0, $9 = 0, $10 = 0, $12 = 0, $8 = 0, $20 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $4; + $6 = $4 + 4 | 0; + $8 = $6 + 32 | 0; + $9 = $6; + label$1 : while (1) { + $10 = $9; + btVector3__btVector3_28_29($10 | 0) | 0; + $12 = $10 + 16 | 0; + $9 = $12; + if (!(($12 | 0) == ($8 | 0) & 1 | 0)) { + continue label$1 + } + break label$1; + }; + btVector3__btVector3_28_29($4 + 36 | 0 | 0) | 0; + $20 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $20 | 0; + } + + function btGjkEpaPenetrationDepthSolver___btGjkEpaPenetrationDepthSolver_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btGjkEpaPenetrationDepthSolver___btGjkEpaPenetrationDepthSolver_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function _GLOBAL__sub_I_btGjkEpaPenetrationDepthSolver_cpp() { + __cxx_global_var_init_60(); + return; + } + + function __cxx_global_var_init_61() { + btInfMaskConverter__btInfMaskConverter_28int_29(114332 | 0, 2139095040 | 0) | 0; + return; + } + + function btGjkPairDetector__btGjkPairDetector_28btConvexShape_20const__2c_20btConvexShape_20const__2c_20btVoronoiSimplexSolver__2c_20btConvexPenetrationDepthSolver__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0, $34 = 0, $38 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + btDiscreteCollisionDetectorInterface__btDiscreteCollisionDetectorInterface_28_29($8 | 0) | 0; + HEAP32[$8 >> 2] = 101468 + 8 | 0; + HEAPF32[($7 + 8 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($7 + 4 | 0) >> 2] = Math_fround(1.0); + HEAPF32[$7 >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 4 | 0 | 0, $7 + 8 | 0 | 0, $7 + 4 | 0 | 0, $7 | 0) | 0; + HEAP32[($8 + 20 | 0) >> 2] = HEAP32[($7 + 12 | 0) >> 2] | 0; + HEAP32[($8 + 24 | 0) >> 2] = HEAP32[($7 + 16 | 0) >> 2] | 0; + HEAP32[($8 + 28 | 0) >> 2] = HEAP32[($7 + 24 | 0) >> 2] | 0; + HEAP32[($8 + 32 | 0) >> 2] = HEAP32[($7 + 20 | 0) >> 2] | 0; + (wasm2js_i32$0 = $8, wasm2js_i32$1 = btCollisionShape__getShapeType_28_29_20const(HEAP32[($7 + 24 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $8, wasm2js_i32$1 = btCollisionShape__getShapeType_28_29_20const(HEAP32[($7 + 20 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_i32$1; + $34 = HEAP32[($7 + 24 | 0) >> 2] | 0; + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$34 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($34))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + $38 = HEAP32[($7 + 20 | 0) >> 2] | 0; + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$38 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($38))), HEAPF32[(wasm2js_i32$0 + 48 | 0) >> 2] = wasm2js_f32$0; + HEAP8[($8 + 52 | 0) >> 0] = 0; + HEAP32[($8 + 60 | 0) >> 2] = -1; + HEAP32[($8 + 72 | 0) >> 2] = 1; + HEAP32[($8 + 76 | 0) >> 2] = 1; + __stack_pointer = $7 + 32 | 0; + return $8 | 0; + } + + function btGjkPairDetector__btGjkPairDetector_28btConvexShape_20const__2c_20btConvexShape_20const__2c_20int_2c_20int_2c_20float_2c_20float_2c_20btVoronoiSimplexSolver__2c_20btConvexPenetrationDepthSolver__29($0, $1, $2, $3, $4, $5, $6, $7, $8) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = Math_fround($5); + $6 = Math_fround($6); + $7 = $7 | 0; + $8 = $8 | 0; + var $11 = 0, $12 = 0; + $11 = __stack_pointer - 48 | 0; + __stack_pointer = $11; + HEAP32[($11 + 44 | 0) >> 2] = $0; + HEAP32[($11 + 40 | 0) >> 2] = $1; + HEAP32[($11 + 36 | 0) >> 2] = $2; + HEAP32[($11 + 32 | 0) >> 2] = $3; + HEAP32[($11 + 28 | 0) >> 2] = $4; + HEAPF32[($11 + 24 | 0) >> 2] = $5; + HEAPF32[($11 + 20 | 0) >> 2] = $6; + HEAP32[($11 + 16 | 0) >> 2] = $7; + HEAP32[($11 + 12 | 0) >> 2] = $8; + $12 = HEAP32[($11 + 44 | 0) >> 2] | 0; + btDiscreteCollisionDetectorInterface__btDiscreteCollisionDetectorInterface_28_29($12 | 0) | 0; + HEAP32[$12 >> 2] = 101468 + 8 | 0; + HEAPF32[($11 + 8 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 4 | 0) >> 2] = Math_fround(1.0); + HEAPF32[$11 >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($12 + 4 | 0 | 0, $11 + 8 | 0 | 0, $11 + 4 | 0 | 0, $11 | 0) | 0; + HEAP32[($12 + 20 | 0) >> 2] = HEAP32[($11 + 12 | 0) >> 2] | 0; + HEAP32[($12 + 24 | 0) >> 2] = HEAP32[($11 + 16 | 0) >> 2] | 0; + HEAP32[($12 + 28 | 0) >> 2] = HEAP32[($11 + 40 | 0) >> 2] | 0; + HEAP32[($12 + 32 | 0) >> 2] = HEAP32[($11 + 36 | 0) >> 2] | 0; + HEAP32[($12 + 36 | 0) >> 2] = HEAP32[($11 + 32 | 0) >> 2] | 0; + HEAP32[($12 + 40 | 0) >> 2] = HEAP32[($11 + 28 | 0) >> 2] | 0; + HEAPF32[($12 + 44 | 0) >> 2] = Math_fround(HEAPF32[($11 + 24 | 0) >> 2]); + HEAPF32[($12 + 48 | 0) >> 2] = Math_fround(HEAPF32[($11 + 20 | 0) >> 2]); + HEAP8[($12 + 52 | 0) >> 0] = 0; + HEAP32[($12 + 60 | 0) >> 2] = -1; + HEAP32[($12 + 72 | 0) >> 2] = 1; + HEAP32[($12 + 76 | 0) >> 2] = 1; + __stack_pointer = $11 + 48 | 0; + return $12 | 0; + } + + function btGjkPairDetector__getClosestPoints_28btDiscreteCollisionDetectorInterface__ClosestPointInput_20const__2c_20btDiscreteCollisionDetectorInterface__Result__2c_20btIDebugDraw__2c_20bool_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP8[($7 + 15 | 0) >> 0] = $4; + btGjkPairDetector__getClosestPointsNonVirtual_28btDiscreteCollisionDetectorInterface__ClosestPointInput_20const__2c_20btDiscreteCollisionDetectorInterface__Result__2c_20btIDebugDraw__29(HEAP32[($7 + 28 | 0) >> 2] | 0 | 0, HEAP32[($7 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7 + 16 | 0) >> 2] | 0 | 0); + __stack_pointer = $7 + 32 | 0; + return; + } + + function btGjkPairDetector__getClosestPointsNonVirtual_28btDiscreteCollisionDetectorInterface__ClosestPointInput_20const__2c_20btDiscreteCollisionDetectorInterface__Result__2c_20btIDebugDraw__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, $7 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $481 = 0, $345 = 0, $86 = 0, $298 = 0, $300 = 0, $325 = 0, $327 = 0, $333 = 0, $393 = 0, $394 = 0, $530 = 0, $576 = 0, $577 = 0, $624 = 0, $633 = 0, $642 = 0, $686 = 0, $695 = 0, $733 = 0, $734 = 0, $765 = 0, $767 = 0, $941 = 0, $1541 = 0, $1554 = 0, $1601 = 0, $1614 = 0, $348 = 0.0, $351 = 0.0, $354 = 0.0, $356 = 0.0, $358 = 0, $1759 = 0, $1763 = 0, $2123 = 0, $2127 = 0, $2227 = 0, $2231 = 0, $2247 = 0, $2251 = 0, $2267 = 0, $2271 = 0, $2359 = 0, $2363 = 0, $2379 = 0, $2383 = 0, $2449 = 0, $2453 = 0, $2509 = 0, $2522 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$1 = 0; + $6 = __stack_pointer - 1008 | 0; + __stack_pointer = $6; + HEAP32[($6 + 1004 | 0) >> 2] = $0; + HEAP32[($6 + 1e3 | 0) >> 2] = $1; + HEAP32[($6 + 996 | 0) >> 2] = $2; + HEAP32[($6 + 992 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 1004 | 0) >> 2] | 0; + HEAPF32[($7 + 56 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 988 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 964 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 960 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 956 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 968 | 0 | 0, $6 + 964 | 0 | 0, $6 + 960 | 0 | 0, $6 + 956 | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 936 | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 920 | 0 | 0) | 0; + btTransform__btTransform_28btTransform_20const__29($6 + 856 | 0 | 0, HEAP32[($6 + 1e3 | 0) >> 2] | 0 | 0) | 0; + btTransform__btTransform_28btTransform_20const__29($6 + 792 | 0 | 0, (HEAP32[($6 + 1e3 | 0) >> 2] | 0) + 64 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 760 | 0 | 0, btTransform__getOrigin_28_29($6 + 856 | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29($6 + 792 | 0 | 0) | 0 | 0); + HEAPF32[($6 + 756 | 0) >> 2] = Math_fround(.5); + operator__28btVector3_20const__2c_20float_20const__29($6 + 776 | 0 | 0, $6 + 760 | 0 | 0, $6 + 756 | 0 | 0); + btVector3__operator___28btVector3_20const__29(btTransform__getOrigin_28_29($6 + 856 | 0 | 0) | 0 | 0, $6 + 776 | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29(btTransform__getOrigin_28_29($6 + 792 | 0 | 0) | 0 | 0, $6 + 776 | 0 | 0) | 0; + $86 = 0; + label$1 : { + if (!((btCollisionShape__isConvex2d_28_29_20const(HEAP32[($7 + 28 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$1 + } + $86 = btCollisionShape__isConvex2d_28_29_20const(HEAP32[($7 + 32 | 0) >> 2] | 0 | 0) | 0; + } + HEAP8[($6 + 755 | 0) >> 0] = $86 & 1 | 0; + HEAPF32[($6 + 748 | 0) >> 2] = Math_fround(HEAPF32[($7 + 44 | 0) >> 2]); + HEAPF32[($6 + 744 | 0) >> 2] = Math_fround(HEAPF32[($7 + 48 | 0) >> 2]); + HEAP32[(0 + 114340 | 0) >> 2] = (HEAP32[(0 + 114340 | 0) >> 2] | 0) + 1 | 0; + label$2 : { + if (!((HEAPU8[($7 + 52 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + HEAPF32[($6 + 748 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 744 | 0) >> 2] = Math_fround(0 | 0); + } + HEAP32[($7 + 64 | 0) >> 2] = 0; + HEAP32[($6 + 740 | 0) >> 2] = 1e3; + HEAPF32[($6 + 736 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 732 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($6 + 728 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 4 | 0 | 0, $6 + 736 | 0 | 0, $6 + 732 | 0 | 0, $6 + 728 | 0 | 0); + HEAP8[($6 + 727 | 0) >> 0] = 0; + HEAP8[($6 + 726 | 0) >> 0] = 0; + HEAP8[($6 + 725 | 0) >> 0] = 1; + HEAP32[($7 + 68 | 0) >> 2] = 0; + HEAP32[($7 + 60 | 0) >> 2] = -1; + HEAPF32[($6 + 720 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAPF32[($6 + 716 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 712 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($6 + 748 | 0) >> 2]) + Math_fround(HEAPF32[($6 + 744 | 0) >> 2])); + btVoronoiSimplexSolver__reset_28_29(HEAP32[($7 + 24 | 0) >> 2] | 0 | 0); + label$3 : while (1) { + operator__28btVector3_20const__29($6 + 680 | 0 | 0, $7 + 4 | 0 | 0); + operator__28btVector3_20const__2c_20btMatrix3x3_20const__29($6 + 696 | 0 | 0, $6 + 680 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($6 + 1e3 | 0) >> 2] | 0 | 0) | 0 | 0); + operator__28btVector3_20const__2c_20btMatrix3x3_20const__29($6 + 664 | 0 | 0, $7 + 4 | 0 | 0, btTransform__getBasis_28_29_20const((HEAP32[($6 + 1e3 | 0) >> 2] | 0) + 64 | 0 | 0) | 0 | 0); + btConvexShape__localGetSupportVertexWithoutMarginNonVirtual_28btVector3_20const__29_20const($6 + 648 | 0 | 0, HEAP32[($7 + 28 | 0) >> 2] | 0 | 0, $6 + 696 | 0 | 0); + btConvexShape__localGetSupportVertexWithoutMarginNonVirtual_28btVector3_20const__29_20const($6 + 632 | 0 | 0, HEAP32[($7 + 32 | 0) >> 2] | 0 | 0, $6 + 664 | 0 | 0); + btTransform__operator_28_29_28btVector3_20const__29_20const($6 + 616 | 0 | 0, $6 + 856 | 0 | 0, $6 + 648 | 0 | 0); + btTransform__operator_28_29_28btVector3_20const__29_20const($6 + 600 | 0 | 0, $6 + 792 | 0 | 0, $6 + 632 | 0 | 0); + label$4 : { + if (!((HEAPU8[($6 + 755 | 0) >> 0] | 0) & 1 | 0)) { + break label$4 + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($6 + 616 | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29($6 + 600 | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + } + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 584 | 0 | 0, $6 + 616 | 0 | 0, $6 + 600 | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($7 + 4 | 0 | 0, $6 + 584 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 716 | 0) >> 2] = wasm2js_f32$0; + label$5 : { + label$6 : { + if (!(Math_fround(HEAPF32[($6 + 716 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$6 + } + if (!(Math_fround(Math_fround(HEAPF32[($6 + 716 | 0) >> 2]) * Math_fround(HEAPF32[($6 + 716 | 0) >> 2])) > Math_fround(Math_fround(HEAPF32[($6 + 720 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($6 + 1e3 | 0) >> 2] | 0) + 128 | 0) >> 2])) & 1 | 0)) { + break label$6 + } + HEAP32[($7 + 68 | 0) >> 2] = 10; + HEAP8[($6 + 726 | 0) >> 0] = 1; + break label$5; + } + label$7 : { + if (!((btVoronoiSimplexSolver__inSimplex_28btVector3_20const__29(HEAP32[($7 + 24 | 0) >> 2] | 0 | 0, $6 + 584 | 0 | 0) | 0) & 1 | 0)) { + break label$7 + } + HEAP32[($7 + 68 | 0) >> 2] = 1; + HEAP8[($6 + 726 | 0) >> 0] = 1; + break label$5; + } + HEAPF32[($6 + 580 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($6 + 720 | 0) >> 2]) - Math_fround(HEAPF32[($6 + 716 | 0) >> 2])); + HEAPF32[($6 + 576 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($6 + 720 | 0) >> 2]) * Math_fround(9.999999974752427e-07)); + label$8 : { + if (!(Math_fround(HEAPF32[($6 + 580 | 0) >> 2]) <= Math_fround(HEAPF32[($6 + 576 | 0) >> 2]) & 1 | 0)) { + break label$8 + } + label$9 : { + label$10 : { + if (!(Math_fround(HEAPF32[($6 + 580 | 0) >> 2]) <= Math_fround(0 | 0) & 1 | 0)) { + break label$10 + } + HEAP32[($7 + 68 | 0) >> 2] = 2; + break label$9; + } + HEAP32[($7 + 68 | 0) >> 2] = 11; + } + HEAP8[($6 + 726 | 0) >> 0] = 1; + break label$5; + } + btVoronoiSimplexSolver__addVertex_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29(HEAP32[($7 + 24 | 0) >> 2] | 0 | 0, $6 + 584 | 0 | 0, $6 + 616 | 0 | 0, $6 + 600 | 0 | 0); + btVector3__btVector3_28_29($6 + 560 | 0 | 0) | 0; + label$11 : { + if ((btVoronoiSimplexSolver__closest_28btVector3__29(HEAP32[($7 + 24 | 0) >> 2] | 0 | 0, $6 + 560 | 0 | 0) | 0) & 1 | 0) { + break label$11 + } + HEAP32[($7 + 68 | 0) >> 2] = 3; + HEAP8[($6 + 726 | 0) >> 0] = 1; + break label$5; + } + label$12 : { + if (!(Math_fround(btVector3__length2_28_29_20const($6 + 560 | 0 | 0)) < Math_fround(9.999999974752427e-07) & 1 | 0)) { + break label$12 + } + $298 = $7 + 4 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 560 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 564 | 0) >> 2] | 0; + $1541 = i64toi32_i32$0; + i64toi32_i32$0 = $298; + HEAP32[i64toi32_i32$0 >> 2] = $1541; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $300 = 8; + i64toi32_i32$2 = ($6 + 560 | 0) + $300 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1554 = i64toi32_i32$1; + i64toi32_i32$1 = $298 + $300 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1554; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($7 + 68 | 0) >> 2] = 6; + HEAP8[($6 + 726 | 0) >> 0] = 1; + break label$5; + } + HEAPF32[($6 + 556 | 0) >> 2] = Math_fround(HEAPF32[($6 + 720 | 0) >> 2]); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($6 + 560 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 720 | 0) >> 2] = wasm2js_f32$0; + label$13 : { + if (!(Math_fround(Math_fround(HEAPF32[($6 + 556 | 0) >> 2]) - Math_fround(HEAPF32[($6 + 720 | 0) >> 2])) <= Math_fround(Math_fround(1.1920928955078125e-07) * Math_fround(HEAPF32[($6 + 556 | 0) >> 2])) & 1 | 0)) { + break label$13 + } + HEAP8[($6 + 726 | 0) >> 0] = 1; + HEAP32[($7 + 68 | 0) >> 2] = 12; + break label$5; + } + $325 = $7 + 4 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 560 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 564 | 0) >> 2] | 0; + $1601 = i64toi32_i32$0; + i64toi32_i32$0 = $325; + HEAP32[i64toi32_i32$0 >> 2] = $1601; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $327 = 8; + i64toi32_i32$2 = ($6 + 560 | 0) + $327 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1614 = i64toi32_i32$1; + i64toi32_i32$1 = $325 + $327 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1614; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $333 = HEAP32[($7 + 64 | 0) >> 2] | 0; + HEAP32[($7 + 64 | 0) >> 2] = $333 + 1 | 0; + label$14 : { + if (!(($333 | 0) > (HEAP32[($6 + 740 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$14 + } + HEAP32[$6 >> 2] = HEAP32[($7 + 64 | 0) >> 2] | 0; + printf(88468 | 0, $6 | 0) | 0; + $345 = $7 + 4 | 0; + $348 = +Math_fround(HEAPF32[(btVector3__getX_28_29_20const($345 | 0) | 0) >> 2]); + $351 = +Math_fround(HEAPF32[(btVector3__getY_28_29_20const($345 | 0) | 0) >> 2]); + $354 = +Math_fround(HEAPF32[(btVector3__getZ_28_29_20const($345 | 0) | 0) >> 2]); + $356 = +Math_fround(HEAPF32[($6 + 720 | 0) >> 2]); + $358 = btCollisionShape__getShapeType_28_29_20const(HEAP32[($7 + 28 | 0) >> 2] | 0 | 0) | 0; + (wasm2js_i32$0 = $6 + 52 | 0, wasm2js_i32$1 = btCollisionShape__getShapeType_28_29_20const(HEAP32[($7 + 32 | 0) >> 2] | 0 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[($6 + 48 | 0) >> 2] = $358; + HEAPF64[($6 + 40 | 0) >> 3] = $356; + HEAPF64[($6 + 32 | 0) >> 3] = $354; + HEAPF64[($6 + 24 | 0) >> 3] = $351; + HEAPF64[($6 + 16 | 0) >> 3] = $348; + printf(88397 | 0, $6 + 16 | 0 | 0) | 0; + break label$5; + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = ((btVoronoiSimplexSolver__fullSimplex_28_29_20const(HEAP32[($7 + 24 | 0) >> 2] | 0 | 0) | 0) ^ -1 | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 555 | 0) >> 0] = wasm2js_i32$1; + label$15 : { + if ((HEAPU8[($6 + 555 | 0) >> 0] | 0) & 1 | 0) { + break label$15 + } + HEAP32[($7 + 68 | 0) >> 2] = 13; + break label$5; + } + continue label$3; + } + break label$3; + }; + label$16 : { + if (!((HEAPU8[($6 + 726 | 0) >> 0] | 0) & 1 | 0)) { + break label$16 + } + btVoronoiSimplexSolver__compute_points_28btVector3__2c_20btVector3__29(HEAP32[($7 + 24 | 0) >> 2] | 0 | 0, $6 + 936 | 0 | 0, $6 + 920 | 0 | 0); + $393 = $7 + 4 | 0; + $394 = 8; + i64toi32_i32$2 = $393 + $394 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1759 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 968 | 0) + $394 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1759; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $393; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1763 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 968 | 0) >> 2] = $1763; + HEAP32[($6 + 972 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($7 + 4 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 548 | 0) >> 2] = wasm2js_f32$0; + label$17 : { + if (!(Math_fround(HEAPF32[($6 + 548 | 0) >> 2]) < Math_fround(9.999999974752427e-07) & 1 | 0)) { + break label$17 + } + HEAP32[($7 + 68 | 0) >> 2] = 5; + } + label$18 : { + label$19 : { + if (!(Math_fround(HEAPF32[($6 + 548 | 0) >> 2]) > Math_fround(1.4210854715202004e-14) & 1 | 0)) { + break label$19 + } + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(1.0) / Math_fround(btSqrt_28float_29(Math_fround(Math_fround(HEAPF32[($6 + 548 | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 544 | 0) >> 2] = wasm2js_f32$0; + btVector3__operator___28float_20const__29_1($6 + 968 | 0 | 0, $6 + 544 | 0 | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btSqrt_28float_29(Math_fround(Math_fround(HEAPF32[($6 + 720 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 540 | 0) >> 2] = wasm2js_f32$0; + label$20 : { + if (Math_fround(HEAPF32[($6 + 540 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0) { + break label$20 + } + __assert_fail(86625 | 0, 72330 | 0, 295 | 0, 77310 | 0); + wasm2js_trap(); + } + HEAPF32[($6 + 520 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($6 + 748 | 0) >> 2]) / Math_fround(HEAPF32[($6 + 540 | 0) >> 2])); + operator__28btVector3_20const__2c_20float_20const__29($6 + 524 | 0 | 0, $7 + 4 | 0 | 0, $6 + 520 | 0 | 0); + btVector3__operator___28btVector3_20const__29($6 + 936 | 0 | 0, $6 + 524 | 0 | 0) | 0; + HEAPF32[($6 + 500 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($6 + 744 | 0) >> 2]) / Math_fround(HEAPF32[($6 + 540 | 0) >> 2])); + operator__28btVector3_20const__2c_20float_20const__29($6 + 504 | 0 | 0, $7 + 4 | 0 | 0, $6 + 500 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($6 + 920 | 0 | 0, $6 + 504 | 0 | 0) | 0; + HEAPF32[($6 + 988 | 0) >> 2] = Math_fround(Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[($6 + 544 | 0) >> 2])) - Math_fround(HEAPF32[($6 + 712 | 0) >> 2])); + HEAP8[($6 + 727 | 0) >> 0] = 1; + HEAP32[($7 + 60 | 0) >> 2] = 1; + break label$18; + } + HEAP32[($7 + 60 | 0) >> 2] = 2; + } + } + $481 = 0; + label$21 : { + if (!(HEAP32[($7 + 72 | 0) >> 2] | 0)) { + break label$21 + } + $481 = 0; + if (!((HEAP32[($7 + 20 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$21 + } + $481 = 0; + if (!(HEAP32[($7 + 68 | 0) >> 2] | 0)) { + break label$21 + } + $481 = Math_fround(Math_fround(HEAPF32[($6 + 988 | 0) >> 2]) + Math_fround(HEAPF32[($6 + 712 | 0) >> 2])) < Math_fround(HEAPF32[(0 + 112836 | 0) >> 2]); + } + HEAP8[($6 + 499 | 0) >> 0] = $481 & 1 | 0; + label$22 : { + if (!((HEAPU8[($6 + 725 | 0) >> 0] | 0) & 1 | 0)) { + break label$22 + } + label$23 : { + if (!((HEAPU8[($6 + 727 | 0) >> 0] | 0) & 1 | 0)) { + break label$23 + } + if (!((HEAPU8[($6 + 499 | 0) >> 0] | 0) & 1 | 0)) { + break label$22 + } + } + label$24 : { + if (!((HEAP32[($7 + 20 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$24 + } + btVector3__btVector3_28_29($6 + 480 | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 464 | 0 | 0) | 0; + HEAP32[(0 + 114336 | 0) >> 2] = (HEAP32[(0 + 114336 | 0) >> 2] | 0) + 1 | 0; + btVector3__setZero_28_29($7 + 4 | 0 | 0); + $530 = HEAP32[($7 + 20 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = (FUNCTION_TABLE[HEAP32[((HEAP32[$530 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($530, HEAP32[($7 + 24 | 0) >> 2] | 0, HEAP32[($7 + 28 | 0) >> 2] | 0, HEAP32[($7 + 32 | 0) >> 2] | 0, $6 + 856 | 0, $6 + 792 | 0, $7 + 4 | 0, $6 + 480 | 0, $6 + 464 | 0, HEAP32[($6 + 992 | 0) >> 2] | 0) | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 463 | 0) >> 0] = wasm2js_i32$1; + label$25 : { + label$26 : { + if (!((HEAPU8[($6 + 463 | 0) >> 0] | 0) & 1 | 0)) { + break label$26 + } + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 440 | 0 | 0, $6 + 464 | 0 | 0, $6 + 480 | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($6 + 440 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 436 | 0) >> 2] = wasm2js_f32$0; + label$27 : { + if (!(Math_fround(HEAPF32[($6 + 436 | 0) >> 2]) <= Math_fround(1.4210854715202004e-14) & 1 | 0)) { + break label$27 + } + $576 = $7 + 4 | 0; + $577 = 8; + i64toi32_i32$2 = $576 + $577 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2123 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 440 | 0) + $577 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2123; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $576; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2127 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 440 | 0) >> 2] = $2127; + HEAP32[($6 + 444 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($7 + 4 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 436 | 0) >> 2] = wasm2js_f32$0; + } + label$28 : { + label$29 : { + if (!(Math_fround(HEAPF32[($6 + 436 | 0) >> 2]) > Math_fround(1.4210854715202004e-14) & 1 | 0)) { + break label$29 + } + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btSqrt_28float_29(Math_fround(Math_fround(HEAPF32[($6 + 436 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 432 | 0) >> 2] = wasm2js_f32$0; + btVector3__operator___28float_20const__29($6 + 440 | 0 | 0, $6 + 432 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 412 | 0 | 0, $6 + 480 | 0 | 0, $6 + 464 | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(-Math_fround(btVector3__length_28_29_20const($6 + 412 | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 428 | 0) >> 2] = wasm2js_f32$0; + HEAP32[($7 + 60 | 0) >> 2] = 3; + label$30 : { + label$31 : { + label$32 : { + if (!((HEAPU8[($6 + 727 | 0) >> 0] | 0) & 1 | 0)) { + break label$32 + } + if (!(Math_fround(HEAPF32[($6 + 428 | 0) >> 2]) < Math_fround(HEAPF32[($6 + 988 | 0) >> 2]) & 1 | 0)) { + break label$31 + } + } + HEAPF32[($6 + 988 | 0) >> 2] = Math_fround(HEAPF32[($6 + 428 | 0) >> 2]); + $624 = 8; + i64toi32_i32$2 = ($6 + 480 | 0) + $624 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2227 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 936 | 0) + $624 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2227; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 480 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 484 | 0) >> 2] | 0; + $2231 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 936 | 0) >> 2] = $2231; + HEAP32[($6 + 940 | 0) >> 2] = i64toi32_i32$0; + $633 = 8; + i64toi32_i32$2 = ($6 + 464 | 0) + $633 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2247 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 920 | 0) + $633 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2247; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 464 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 468 | 0) >> 2] | 0; + $2251 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 920 | 0) >> 2] = $2251; + HEAP32[($6 + 924 | 0) >> 2] = i64toi32_i32$0; + $642 = 8; + i64toi32_i32$2 = ($6 + 440 | 0) + $642 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2267 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 968 | 0) + $642 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2267; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 440 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 444 | 0) >> 2] | 0; + $2271 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 968 | 0) >> 2] = $2271; + HEAP32[($6 + 972 | 0) >> 2] = i64toi32_i32$0; + HEAP8[($6 + 727 | 0) >> 0] = 1; + break label$30; + } + HEAP32[($7 + 60 | 0) >> 2] = 8; + } + break label$28; + } + HEAP32[($7 + 60 | 0) >> 2] = 9; + } + break label$25; + } + label$33 : { + if (!(Math_fround(btVector3__length2_28_29_20const($7 + 4 | 0 | 0)) > Math_fround(0 | 0) & 1 | 0)) { + break label$33 + } + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 392 | 0 | 0, $6 + 480 | 0 | 0, $6 + 464 | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(btVector3__length_28_29_20const($6 + 392 | 0 | 0)) - Math_fround(HEAPF32[($6 + 712 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 408 | 0) >> 2] = wasm2js_f32$0; + label$34 : { + label$35 : { + label$36 : { + if (!((HEAPU8[($6 + 727 | 0) >> 0] | 0) & 1 | 0)) { + break label$36 + } + if (!(Math_fround(HEAPF32[($6 + 408 | 0) >> 2]) < Math_fround(HEAPF32[($6 + 988 | 0) >> 2]) & 1 | 0)) { + break label$35 + } + } + HEAPF32[($6 + 988 | 0) >> 2] = Math_fround(HEAPF32[($6 + 408 | 0) >> 2]); + $686 = 8; + i64toi32_i32$2 = ($6 + 480 | 0) + $686 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2359 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 936 | 0) + $686 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2359; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 480 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 484 | 0) >> 2] | 0; + $2363 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 936 | 0) >> 2] = $2363; + HEAP32[($6 + 940 | 0) >> 2] = i64toi32_i32$0; + $695 = 8; + i64toi32_i32$2 = ($6 + 464 | 0) + $695 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2379 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 920 | 0) + $695 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2379; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 464 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 468 | 0) >> 2] | 0; + $2383 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 920 | 0) >> 2] = $2383; + HEAP32[($6 + 924 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20float_20const__29($6 + 376 | 0 | 0, $7 + 4 | 0 | 0, $6 + 748 | 0 | 0); + btVector3__operator___28btVector3_20const__29($6 + 936 | 0 | 0, $6 + 376 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20float_20const__29($6 + 360 | 0 | 0, $7 + 4 | 0 | 0, $6 + 744 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($6 + 920 | 0 | 0, $6 + 360 | 0 | 0) | 0; + $733 = $7 + 4 | 0; + $734 = 8; + i64toi32_i32$2 = $733 + $734 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2449 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 968 | 0) + $734 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2449; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $733; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2453 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 968 | 0) >> 2] = $2453; + HEAP32[($6 + 972 | 0) >> 2] = i64toi32_i32$0; + btVector3__normalize_28_29($6 + 968 | 0 | 0) | 0; + HEAP8[($6 + 727 | 0) >> 0] = 1; + HEAP32[($7 + 60 | 0) >> 2] = 6; + break label$34; + } + HEAP32[($7 + 60 | 0) >> 2] = 5; + } + } + } + } + } + label$37 : { + if (!((HEAPU8[($6 + 727 | 0) >> 0] | 0) & 1 | 0)) { + break label$37 + } + label$38 : { + if (Math_fround(HEAPF32[($6 + 988 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0) { + break label$38 + } + if (!(Math_fround(Math_fround(HEAPF32[($6 + 988 | 0) >> 2]) * Math_fround(HEAPF32[($6 + 988 | 0) >> 2])) < Math_fround(HEAPF32[((HEAP32[($6 + 1e3 | 0) >> 2] | 0) + 128 | 0) >> 2]) & 1 | 0)) { + break label$37 + } + } + $765 = $7 + 4 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 968 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 972 | 0) >> 2] | 0; + $2509 = i64toi32_i32$0; + i64toi32_i32$0 = $765; + HEAP32[i64toi32_i32$0 >> 2] = $2509; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $767 = 8; + i64toi32_i32$2 = ($6 + 968 | 0) + $767 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2522 = i64toi32_i32$1; + i64toi32_i32$1 = $765 + $767 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $2522; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($7 + 56 | 0) >> 2] = Math_fround(HEAPF32[($6 + 988 | 0) >> 2]); + HEAPF32[($6 + 356 | 0) >> 2] = Math_fround(0 | 0); + operator__28btVector3_20const__2c_20btMatrix3x3_20const__29($6 + 340 | 0 | 0, $6 + 968 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($6 + 1e3 | 0) >> 2] | 0 | 0) | 0 | 0); + operator__28btVector3_20const__29($6 + 308 | 0 | 0, $6 + 968 | 0 | 0); + operator__28btVector3_20const__2c_20btMatrix3x3_20const__29($6 + 324 | 0 | 0, $6 + 308 | 0 | 0, btTransform__getBasis_28_29_20const((HEAP32[($6 + 1e3 | 0) >> 2] | 0) + 64 | 0 | 0) | 0 | 0); + btConvexShape__localGetSupportVertexWithoutMarginNonVirtual_28btVector3_20const__29_20const($6 + 292 | 0 | 0, HEAP32[($7 + 28 | 0) >> 2] | 0 | 0, $6 + 340 | 0 | 0); + btConvexShape__localGetSupportVertexWithoutMarginNonVirtual_28btVector3_20const__29_20const($6 + 276 | 0 | 0, HEAP32[($7 + 32 | 0) >> 2] | 0 | 0, $6 + 324 | 0 | 0); + btTransform__operator_28_29_28btVector3_20const__29_20const($6 + 260 | 0 | 0, $6 + 856 | 0 | 0, $6 + 292 | 0 | 0); + btTransform__operator_28_29_28btVector3_20const__29_20const($6 + 244 | 0 | 0, $6 + 792 | 0 | 0, $6 + 276 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 228 | 0 | 0, $6 + 260 | 0 | 0, $6 + 244 | 0 | 0); + operator__28btVector3_20const__29($6 + 212 | 0 | 0, $6 + 968 | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($6 + 212 | 0 | 0, $6 + 228 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 356 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($6 + 208 | 0) >> 2] = Math_fround(0 | 0); + operator__28btVector3_20const__29($6 + 176 | 0 | 0, $6 + 968 | 0 | 0); + operator__28btVector3_20const__2c_20btMatrix3x3_20const__29($6 + 192 | 0 | 0, $6 + 176 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($6 + 1e3 | 0) >> 2] | 0 | 0) | 0 | 0); + operator__28btVector3_20const__2c_20btMatrix3x3_20const__29($6 + 160 | 0 | 0, $6 + 968 | 0 | 0, btTransform__getBasis_28_29_20const((HEAP32[($6 + 1e3 | 0) >> 2] | 0) + 64 | 0 | 0) | 0 | 0); + btConvexShape__localGetSupportVertexWithoutMarginNonVirtual_28btVector3_20const__29_20const($6 + 144 | 0 | 0, HEAP32[($7 + 28 | 0) >> 2] | 0 | 0, $6 + 192 | 0 | 0); + btConvexShape__localGetSupportVertexWithoutMarginNonVirtual_28btVector3_20const__29_20const($6 + 128 | 0 | 0, HEAP32[($7 + 32 | 0) >> 2] | 0 | 0, $6 + 160 | 0 | 0); + btTransform__operator_28_29_28btVector3_20const__29_20const($6 + 112 | 0 | 0, $6 + 856 | 0 | 0, $6 + 144 | 0 | 0); + btTransform__operator_28_29_28btVector3_20const__29_20const($6 + 96 | 0 | 0, $6 + 792 | 0 | 0, $6 + 128 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 80 | 0 | 0, $6 + 112 | 0 | 0, $6 + 96 | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($6 + 968 | 0 | 0, $6 + 80 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 208 | 0) >> 2] = wasm2js_f32$0; + label$39 : { + if (!(Math_fround(HEAPF32[($6 + 356 | 0) >> 2]) > Math_fround(HEAPF32[($6 + 208 | 0) >> 2]) & 1 | 0)) { + break label$39 + } + HEAP32[($7 + 60 | 0) >> 2] = 10; + HEAPF32[($6 + 76 | 0) >> 2] = Math_fround(-1.0); + btVector3__operator___28float_20const__29_1($6 + 968 | 0 | 0, $6 + 76 | 0 | 0) | 0; + } + $941 = HEAP32[($6 + 996 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 60 | 0 | 0, $6 + 920 | 0 | 0, $6 + 776 | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$941 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($941, $6 + 968 | 0, $6 + 60 | 0, Math_fround(HEAPF32[($6 + 988 | 0) >> 2])); + } + __stack_pointer = $6 + 1008 | 0; + return; + } + + function btCollisionShape__isConvex2d_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $8 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $8 = (btBroadphaseProxy__isConvex2d_28int_29(btCollisionShape__getShapeType_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) & 1 | 0; + __stack_pointer = $3 + 16 | 0; + return $8 | 0; + } + + function btVoronoiSimplexSolver__fullSimplex_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[(HEAP32[($3 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0 | 0; + } + + function btBroadphaseProxy__isConvex2d_28int_29($0) { + $0 = $0 | 0; + var $3 = 0, $12 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $12 = 1; + label$1 : { + if ((HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) == (17 | 0) & 1 | 0) { + break label$1 + } + $12 = (HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) == (18 | 0); + } + return $12 & 1 | 0 | 0; + } + + function btGjkPairDetector___btGjkPairDetector_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btGjkPairDetector___btGjkPairDetector_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function _GLOBAL__sub_I_btGjkPairDetector_cpp() { + __cxx_global_var_init_61(); + return; + } + + function __cxx_global_var_init_62() { + btInfMaskConverter__btInfMaskConverter_28int_29(114344 | 0, 2139095040 | 0) | 0; + return; + } + + function btMinkowskiPenetrationDepthSolver__calcPenDepth_28btVoronoiSimplexSolver__2c_20btConvexShape_20const__2c_20btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3__2c_20btVector3__2c_20btVector3__2c_20btIDebugDraw__29($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + $8 = $8 | 0; + $9 = $9 | 0; + var $12 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $18 = 0, $72 = 0, $75 = 0, $76 = 0, $78 = 0, $86 = 0, $89 = 0, $90 = 0, $92 = 0, $100 = 0, $103 = 0, $104 = 0, $106 = 0, $114 = 0, $117 = 0, $118 = 0, $120 = 0, $139 = 0, $140 = 0, $167 = 0, $169 = 0, $189 = 0, $191 = 0, $200 = 0, $216 = 0, $231 = 0, $244 = 0, $246 = 0, $272 = 0, $274 = 0, $294 = 0, $296 = 0, $308 = 0, $324 = 0, $339 = 0, $352 = 0, $354 = 0, $380 = 0, $382 = 0, $402 = 0, $404 = 0, $416 = 0, $426 = 0, $448 = 0, $449 = 0, $479 = 0, $480 = 0, $493 = 0, $494 = 0, $507 = 0, $508 = 0, $521 = 0, $522 = 0, $536 = 0, $552 = 0, $585 = 0, $607 = 0, $616 = 0, $625 = 0, $802 = 0, $804 = 0, $815 = 0, $817 = 0, $821 = 0, $823 = 0, $74 = 0, $88 = 0, $102 = 0, $116 = 0, $1117 = 0, $1121 = 0, $1162 = 0, $1175 = 0, $1206 = 0, $1219 = 0, $1310 = 0, $1314 = 0, $1327 = 0, $1340 = 0, $1381 = 0, $1394 = 0, $1425 = 0, $1438 = 0, $1536 = 0, $1540 = 0, $1553 = 0, $1566 = 0, $1607 = 0, $1620 = 0, $1651 = 0, $1664 = 0, $1758 = 0, $1762 = 0, $1819 = 0, $1823 = 0, $1848 = 0, $1852 = 0, $1877 = 0, $1881 = 0, $1906 = 0, $1910 = 0, $1939 = 0, $1943 = 0, $1972 = 0, $1976 = 0, $2034 = 0, $2038 = 0, $2083 = 0, $2087 = 0, $2103 = 0, $2107 = 0, $2123 = 0, $2127 = 0, $687 = Math_fround(0), $2456 = 0, $2469 = 0, $2482 = 0, $2492 = 0, $2498 = 0, $2511 = 0, $840 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $12 = __stack_pointer - 4992 | 0; + __stack_pointer = $12; + HEAP32[($12 + 4984 | 0) >> 2] = $0; + HEAP32[($12 + 4980 | 0) >> 2] = $1; + HEAP32[($12 + 4976 | 0) >> 2] = $2; + HEAP32[($12 + 4972 | 0) >> 2] = $3; + HEAP32[($12 + 4968 | 0) >> 2] = $4; + HEAP32[($12 + 4964 | 0) >> 2] = $5; + HEAP32[($12 + 4960 | 0) >> 2] = $6; + HEAP32[($12 + 4956 | 0) >> 2] = $7; + HEAP32[($12 + 4952 | 0) >> 2] = $8; + HEAP32[($12 + 4948 | 0) >> 2] = $9; + $18 = 0; + label$1 : { + if (!((btCollisionShape__isConvex2d_28_29_20const(HEAP32[($12 + 4976 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$1 + } + $18 = btCollisionShape__isConvex2d_28_29_20const(HEAP32[($12 + 4972 | 0) >> 2] | 0 | 0) | 0; + } + HEAP8[($12 + 4947 | 0) >> 0] = $18 & 1 | 0; + HEAPF32[($12 + 4940 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAPF32[($12 + 4916 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($12 + 4912 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($12 + 4908 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($12 + 4920 | 0 | 0, $12 + 4916 | 0 | 0, $12 + 4912 | 0 | 0, $12 + 4908 | 0 | 0) | 0; + btVector3__btVector3_28_29($12 + 4888 | 0 | 0) | 0; + btVector3__btVector3_28_29($12 + 4872 | 0 | 0) | 0; + btVector3__btVector3_28_29($12 + 4856 | 0 | 0) | 0; + btVector3__btVector3_28_29($12 + 4840 | 0 | 0) | 0; + btVector3__btVector3_28_29($12 + 4824 | 0 | 0) | 0; + btVector3__btVector3_28_29($12 + 4808 | 0 | 0) | 0; + btVector3__btVector3_28_29($12 + 4792 | 0 | 0) | 0; + btVector3__btVector3_28_29($12 + 4776 | 0 | 0) | 0; + btVector3__btVector3_28_29($12 + 4760 | 0 | 0) | 0; + $72 = $12 + 3760 | 0; + $74 = $72 + 992 | 0; + $75 = $72; + label$2 : while (1) { + $76 = $75; + btVector3__btVector3_28_29($76 | 0) | 0; + $78 = $76 + 16 | 0; + $75 = $78; + if (!(($78 | 0) == ($74 | 0) & 1 | 0)) { + continue label$2 + } + break label$2; + }; + $86 = $12 + 2768 | 0; + $88 = $86 + 992 | 0; + $89 = $86; + label$3 : while (1) { + $90 = $89; + btVector3__btVector3_28_29($90 | 0) | 0; + $92 = $90 + 16 | 0; + $89 = $92; + if (!(($92 | 0) == ($88 | 0) & 1 | 0)) { + continue label$3 + } + break label$3; + }; + $100 = $12 + 1776 | 0; + $102 = $100 + 992 | 0; + $103 = $100; + label$4 : while (1) { + $104 = $103; + btVector3__btVector3_28_29($104 | 0) | 0; + $106 = $104 + 16 | 0; + $103 = $106; + if (!(($106 | 0) == ($102 | 0) & 1 | 0)) { + continue label$4 + } + break label$4; + }; + $114 = $12 + 784 | 0; + $116 = $114 + 992 | 0; + $117 = $114; + label$5 : while (1) { + $118 = $117; + btVector3__btVector3_28_29($118 | 0) | 0; + $120 = $118 + 16 | 0; + $117 = $120; + if (!(($120 | 0) == ($116 | 0) & 1 | 0)) { + continue label$5 + } + break label$5; + }; + HEAP32[($12 + 776 | 0) >> 2] = 42; + HEAP32[($12 + 780 | 0) >> 2] = 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($12 + 780 | 0) >> 2] | 0 | 0) < (HEAP32[($12 + 776 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + $139 = (btMinkowskiPenetrationDepthSolver__getPenetrationDirections_28_29() | 0) + ((HEAP32[($12 + 780 | 0) >> 2] | 0) << 4 | 0) | 0; + $140 = 8; + i64toi32_i32$2 = $139 + $140 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1117 = i64toi32_i32$0; + i64toi32_i32$0 = ($12 + 760 | 0) + $140 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1117; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $139; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1121 = i64toi32_i32$1; + i64toi32_i32$1 = $12; + HEAP32[($12 + 760 | 0) >> 2] = $1121; + HEAP32[($12 + 764 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__29($12 + 728 | 0 | 0, $12 + 760 | 0 | 0); + operator__28btVector3_20const__2c_20btMatrix3x3_20const__29($12 + 744 | 0 | 0, $12 + 728 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($12 + 4968 | 0) >> 2] | 0 | 0) | 0 | 0); + $167 = ($12 + 1776 | 0) + ((HEAP32[($12 + 780 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = $12; + i64toi32_i32$0 = HEAP32[($12 + 744 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($12 + 748 | 0) >> 2] | 0; + $1162 = i64toi32_i32$0; + i64toi32_i32$0 = $167; + HEAP32[i64toi32_i32$0 >> 2] = $1162; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $169 = 8; + i64toi32_i32$2 = ($12 + 744 | 0) + $169 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1175 = i64toi32_i32$1; + i64toi32_i32$1 = $167 + $169 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1175; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btMatrix3x3_20const__29($12 + 712 | 0 | 0, $12 + 760 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($12 + 4964 | 0) >> 2] | 0 | 0) | 0 | 0); + $189 = ($12 + 784 | 0) + ((HEAP32[($12 + 780 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = $12; + i64toi32_i32$0 = HEAP32[($12 + 712 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($12 + 716 | 0) >> 2] | 0; + $1206 = i64toi32_i32$0; + i64toi32_i32$0 = $189; + HEAP32[i64toi32_i32$0 >> 2] = $1206; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $191 = 8; + i64toi32_i32$2 = ($12 + 712 | 0) + $191 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1219 = i64toi32_i32$1; + i64toi32_i32$1 = $189 + $191 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1219; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($12 + 780 | 0) >> 2] = (HEAP32[($12 + 780 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + $200 = HEAP32[($12 + 4976 | 0) >> 2] | 0; + (wasm2js_i32$0 = $12, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$200 >> 2] | 0) + 84 | 0) >> 2] | 0 | 0]($200) | 0), HEAP32[(wasm2js_i32$0 + 708 | 0) >> 2] = wasm2js_i32$1; + label$8 : { + if (!(HEAP32[($12 + 708 | 0) >> 2] | 0)) { + break label$8 + } + HEAP32[($12 + 704 | 0) >> 2] = 0; + label$9 : { + label$10 : while (1) { + if (!((HEAP32[($12 + 704 | 0) >> 2] | 0 | 0) < (HEAP32[($12 + 708 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$9 + } + btVector3__btVector3_28_29($12 + 688 | 0 | 0) | 0; + $216 = HEAP32[($12 + 4976 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$216 >> 2] | 0) + 88 | 0) >> 2] | 0 | 0]($216, HEAP32[($12 + 704 | 0) >> 2] | 0, $12 + 688 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($12 + 672 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($12 + 4968 | 0) >> 2] | 0 | 0) | 0 | 0, $12 + 688 | 0 | 0); + $231 = 8; + i64toi32_i32$2 = ($12 + 672 | 0) + $231 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1310 = i64toi32_i32$0; + i64toi32_i32$0 = ($12 + 688 | 0) + $231 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1310; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $12; + i64toi32_i32$1 = HEAP32[($12 + 672 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($12 + 676 | 0) >> 2] | 0; + $1314 = i64toi32_i32$1; + i64toi32_i32$1 = $12; + HEAP32[($12 + 688 | 0) >> 2] = $1314; + HEAP32[($12 + 692 | 0) >> 2] = i64toi32_i32$0; + $244 = (btMinkowskiPenetrationDepthSolver__getPenetrationDirections_28_29() | 0) + ((HEAP32[($12 + 776 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = $12; + i64toi32_i32$0 = HEAP32[($12 + 688 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($12 + 692 | 0) >> 2] | 0; + $1327 = i64toi32_i32$0; + i64toi32_i32$0 = $244; + HEAP32[i64toi32_i32$0 >> 2] = $1327; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $246 = 8; + i64toi32_i32$2 = ($12 + 688 | 0) + $246 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1340 = i64toi32_i32$1; + i64toi32_i32$1 = $244 + $246 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1340; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__29($12 + 640 | 0 | 0, $12 + 688 | 0 | 0); + operator__28btVector3_20const__2c_20btMatrix3x3_20const__29($12 + 656 | 0 | 0, $12 + 640 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($12 + 4968 | 0) >> 2] | 0 | 0) | 0 | 0); + $272 = ($12 + 1776 | 0) + ((HEAP32[($12 + 776 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = $12; + i64toi32_i32$0 = HEAP32[($12 + 656 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($12 + 660 | 0) >> 2] | 0; + $1381 = i64toi32_i32$0; + i64toi32_i32$0 = $272; + HEAP32[i64toi32_i32$0 >> 2] = $1381; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $274 = 8; + i64toi32_i32$2 = ($12 + 656 | 0) + $274 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1394 = i64toi32_i32$1; + i64toi32_i32$1 = $272 + $274 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1394; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btMatrix3x3_20const__29($12 + 624 | 0 | 0, $12 + 688 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($12 + 4964 | 0) >> 2] | 0 | 0) | 0 | 0); + $294 = ($12 + 784 | 0) + ((HEAP32[($12 + 776 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = $12; + i64toi32_i32$0 = HEAP32[($12 + 624 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($12 + 628 | 0) >> 2] | 0; + $1425 = i64toi32_i32$0; + i64toi32_i32$0 = $294; + HEAP32[i64toi32_i32$0 >> 2] = $1425; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $296 = 8; + i64toi32_i32$2 = ($12 + 624 | 0) + $296 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1438 = i64toi32_i32$1; + i64toi32_i32$1 = $294 + $296 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1438; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($12 + 776 | 0) >> 2] = (HEAP32[($12 + 776 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($12 + 704 | 0) >> 2] = (HEAP32[($12 + 704 | 0) >> 2] | 0) + 1 | 0; + continue label$10; + }; + } + } + $308 = HEAP32[($12 + 4972 | 0) >> 2] | 0; + (wasm2js_i32$0 = $12, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$308 >> 2] | 0) + 84 | 0) >> 2] | 0 | 0]($308) | 0), HEAP32[(wasm2js_i32$0 + 620 | 0) >> 2] = wasm2js_i32$1; + label$11 : { + if (!(HEAP32[($12 + 620 | 0) >> 2] | 0)) { + break label$11 + } + HEAP32[($12 + 616 | 0) >> 2] = 0; + label$12 : { + label$13 : while (1) { + if (!((HEAP32[($12 + 616 | 0) >> 2] | 0 | 0) < (HEAP32[($12 + 620 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$12 + } + btVector3__btVector3_28_29($12 + 600 | 0 | 0) | 0; + $324 = HEAP32[($12 + 4972 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$324 >> 2] | 0) + 88 | 0) >> 2] | 0 | 0]($324, HEAP32[($12 + 616 | 0) >> 2] | 0, $12 + 600 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($12 + 584 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($12 + 4964 | 0) >> 2] | 0 | 0) | 0 | 0, $12 + 600 | 0 | 0); + $339 = 8; + i64toi32_i32$2 = ($12 + 584 | 0) + $339 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1536 = i64toi32_i32$0; + i64toi32_i32$0 = ($12 + 600 | 0) + $339 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1536; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $12; + i64toi32_i32$1 = HEAP32[($12 + 584 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($12 + 588 | 0) >> 2] | 0; + $1540 = i64toi32_i32$1; + i64toi32_i32$1 = $12; + HEAP32[($12 + 600 | 0) >> 2] = $1540; + HEAP32[($12 + 604 | 0) >> 2] = i64toi32_i32$0; + $352 = (btMinkowskiPenetrationDepthSolver__getPenetrationDirections_28_29() | 0) + ((HEAP32[($12 + 776 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = $12; + i64toi32_i32$0 = HEAP32[($12 + 600 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($12 + 604 | 0) >> 2] | 0; + $1553 = i64toi32_i32$0; + i64toi32_i32$0 = $352; + HEAP32[i64toi32_i32$0 >> 2] = $1553; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $354 = 8; + i64toi32_i32$2 = ($12 + 600 | 0) + $354 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1566 = i64toi32_i32$1; + i64toi32_i32$1 = $352 + $354 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1566; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__29($12 + 552 | 0 | 0, $12 + 600 | 0 | 0); + operator__28btVector3_20const__2c_20btMatrix3x3_20const__29($12 + 568 | 0 | 0, $12 + 552 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($12 + 4968 | 0) >> 2] | 0 | 0) | 0 | 0); + $380 = ($12 + 1776 | 0) + ((HEAP32[($12 + 776 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = $12; + i64toi32_i32$0 = HEAP32[($12 + 568 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($12 + 572 | 0) >> 2] | 0; + $1607 = i64toi32_i32$0; + i64toi32_i32$0 = $380; + HEAP32[i64toi32_i32$0 >> 2] = $1607; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $382 = 8; + i64toi32_i32$2 = ($12 + 568 | 0) + $382 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1620 = i64toi32_i32$1; + i64toi32_i32$1 = $380 + $382 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1620; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btMatrix3x3_20const__29($12 + 536 | 0 | 0, $12 + 600 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($12 + 4964 | 0) >> 2] | 0 | 0) | 0 | 0); + $402 = ($12 + 784 | 0) + ((HEAP32[($12 + 776 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = $12; + i64toi32_i32$0 = HEAP32[($12 + 536 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($12 + 540 | 0) >> 2] | 0; + $1651 = i64toi32_i32$0; + i64toi32_i32$0 = $402; + HEAP32[i64toi32_i32$0 >> 2] = $1651; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $404 = 8; + i64toi32_i32$2 = ($12 + 536 | 0) + $404 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1664 = i64toi32_i32$1; + i64toi32_i32$1 = $402 + $404 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1664; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($12 + 776 | 0) >> 2] = (HEAP32[($12 + 776 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($12 + 616 | 0) >> 2] = (HEAP32[($12 + 616 | 0) >> 2] | 0) + 1 | 0; + continue label$13; + }; + } + } + $416 = HEAP32[($12 + 4976 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$416 >> 2] | 0) + 76 | 0) >> 2] | 0 | 0]($416, $12 + 1776 | 0, $12 + 3760 | 0, HEAP32[($12 + 776 | 0) >> 2] | 0); + $426 = HEAP32[($12 + 4972 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$426 >> 2] | 0) + 76 | 0) >> 2] | 0 | 0]($426, $12 + 784 | 0, $12 + 2768 | 0, HEAP32[($12 + 776 | 0) >> 2] | 0); + HEAP32[($12 + 780 | 0) >> 2] = 0; + label$14 : { + label$15 : while (1) { + if (!((HEAP32[($12 + 780 | 0) >> 2] | 0 | 0) < (HEAP32[($12 + 776 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$14 + } + $448 = (btMinkowskiPenetrationDepthSolver__getPenetrationDirections_28_29() | 0) + ((HEAP32[($12 + 780 | 0) >> 2] | 0) << 4 | 0) | 0; + $449 = 8; + i64toi32_i32$2 = $448 + $449 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1758 = i64toi32_i32$0; + i64toi32_i32$0 = ($12 + 520 | 0) + $449 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1758; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $448; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1762 = i64toi32_i32$1; + i64toi32_i32$1 = $12; + HEAP32[($12 + 520 | 0) >> 2] = $1762; + HEAP32[($12 + 524 | 0) >> 2] = i64toi32_i32$0; + label$16 : { + if (!((HEAPU8[($12 + 4947 | 0) >> 0] | 0) & 1 | 0)) { + break label$16 + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($12 + 520 | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + } + label$17 : { + if (!(+Math_fround(btVector3__length2_28_29_20const($12 + 520 | 0 | 0)) > .01 & 1 | 0)) { + break label$17 + } + $479 = ($12 + 1776 | 0) + ((HEAP32[($12 + 780 | 0) >> 2] | 0) << 4 | 0) | 0; + $480 = 8; + i64toi32_i32$2 = $479 + $480 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1819 = i64toi32_i32$0; + i64toi32_i32$0 = ($12 + 4856 | 0) + $480 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1819; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $479; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1823 = i64toi32_i32$1; + i64toi32_i32$1 = $12; + HEAP32[($12 + 4856 | 0) >> 2] = $1823; + HEAP32[($12 + 4860 | 0) >> 2] = i64toi32_i32$0; + $493 = ($12 + 784 | 0) + ((HEAP32[($12 + 780 | 0) >> 2] | 0) << 4 | 0) | 0; + $494 = 8; + i64toi32_i32$2 = $493 + $494 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1848 = i64toi32_i32$0; + i64toi32_i32$0 = ($12 + 4840 | 0) + $494 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1848; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $493; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1852 = i64toi32_i32$1; + i64toi32_i32$1 = $12; + HEAP32[($12 + 4840 | 0) >> 2] = $1852; + HEAP32[($12 + 4844 | 0) >> 2] = i64toi32_i32$0; + $507 = ($12 + 3760 | 0) + ((HEAP32[($12 + 780 | 0) >> 2] | 0) << 4 | 0) | 0; + $508 = 8; + i64toi32_i32$2 = $507 + $508 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1877 = i64toi32_i32$0; + i64toi32_i32$0 = ($12 + 4824 | 0) + $508 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1877; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $507; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1881 = i64toi32_i32$1; + i64toi32_i32$1 = $12; + HEAP32[($12 + 4824 | 0) >> 2] = $1881; + HEAP32[($12 + 4828 | 0) >> 2] = i64toi32_i32$0; + $521 = ($12 + 2768 | 0) + ((HEAP32[($12 + 780 | 0) >> 2] | 0) << 4 | 0) | 0; + $522 = 8; + i64toi32_i32$2 = $521 + $522 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1906 = i64toi32_i32$0; + i64toi32_i32$0 = ($12 + 4808 | 0) + $522 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1906; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $521; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1910 = i64toi32_i32$1; + i64toi32_i32$1 = $12; + HEAP32[($12 + 4808 | 0) >> 2] = $1910; + HEAP32[($12 + 4812 | 0) >> 2] = i64toi32_i32$0; + btTransform__operator_28_29_28btVector3_20const__29_20const($12 + 504 | 0 | 0, HEAP32[($12 + 4968 | 0) >> 2] | 0 | 0, $12 + 4824 | 0 | 0); + $536 = 8; + i64toi32_i32$2 = ($12 + 504 | 0) + $536 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1939 = i64toi32_i32$0; + i64toi32_i32$0 = ($12 + 4792 | 0) + $536 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1939; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $12; + i64toi32_i32$1 = HEAP32[($12 + 504 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($12 + 508 | 0) >> 2] | 0; + $1943 = i64toi32_i32$1; + i64toi32_i32$1 = $12; + HEAP32[($12 + 4792 | 0) >> 2] = $1943; + HEAP32[($12 + 4796 | 0) >> 2] = i64toi32_i32$0; + btTransform__operator_28_29_28btVector3_20const__29_20const($12 + 488 | 0 | 0, HEAP32[($12 + 4964 | 0) >> 2] | 0 | 0, $12 + 4808 | 0 | 0); + $552 = 8; + i64toi32_i32$2 = ($12 + 488 | 0) + $552 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1972 = i64toi32_i32$0; + i64toi32_i32$0 = ($12 + 4776 | 0) + $552 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1972; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $12; + i64toi32_i32$1 = HEAP32[($12 + 488 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($12 + 492 | 0) >> 2] | 0; + $1976 = i64toi32_i32$1; + i64toi32_i32$1 = $12; + HEAP32[($12 + 4776 | 0) >> 2] = $1976; + HEAP32[($12 + 4780 | 0) >> 2] = i64toi32_i32$0; + label$18 : { + if (!((HEAPU8[($12 + 4947 | 0) >> 0] | 0) & 1 | 0)) { + break label$18 + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29($12 + 4792 | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29($12 + 4776 | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + } + operator__28btVector3_20const__2c_20btVector3_20const__29($12 + 472 | 0 | 0, $12 + 4776 | 0 | 0, $12 + 4792 | 0 | 0); + $585 = 8; + i64toi32_i32$2 = ($12 + 472 | 0) + $585 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2034 = i64toi32_i32$0; + i64toi32_i32$0 = ($12 + 4760 | 0) + $585 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2034; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $12; + i64toi32_i32$1 = HEAP32[($12 + 472 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($12 + 476 | 0) >> 2] | 0; + $2038 = i64toi32_i32$1; + i64toi32_i32$1 = $12; + HEAP32[($12 + 4760 | 0) >> 2] = $2038; + HEAP32[($12 + 4764 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $12, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($12 + 520 | 0 | 0, $12 + 4760 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 468 | 0) >> 2] = wasm2js_f32$0; + label$19 : { + if (!(Math_fround(HEAPF32[($12 + 468 | 0) >> 2]) < Math_fround(HEAPF32[($12 + 4940 | 0) >> 2]) & 1 | 0)) { + break label$19 + } + HEAPF32[($12 + 4940 | 0) >> 2] = Math_fround(HEAPF32[($12 + 468 | 0) >> 2]); + $607 = 8; + i64toi32_i32$2 = ($12 + 520 | 0) + $607 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2083 = i64toi32_i32$0; + i64toi32_i32$0 = ($12 + 4920 | 0) + $607 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2083; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $12; + i64toi32_i32$1 = HEAP32[($12 + 520 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($12 + 524 | 0) >> 2] | 0; + $2087 = i64toi32_i32$1; + i64toi32_i32$1 = $12; + HEAP32[($12 + 4920 | 0) >> 2] = $2087; + HEAP32[($12 + 4924 | 0) >> 2] = i64toi32_i32$0; + $616 = 8; + i64toi32_i32$2 = ($12 + 4792 | 0) + $616 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2103 = i64toi32_i32$0; + i64toi32_i32$0 = ($12 + 4888 | 0) + $616 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2103; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $12; + i64toi32_i32$1 = HEAP32[($12 + 4792 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($12 + 4796 | 0) >> 2] | 0; + $2107 = i64toi32_i32$1; + i64toi32_i32$1 = $12; + HEAP32[($12 + 4888 | 0) >> 2] = $2107; + HEAP32[($12 + 4892 | 0) >> 2] = i64toi32_i32$0; + $625 = 8; + i64toi32_i32$2 = ($12 + 4776 | 0) + $625 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2123 = i64toi32_i32$0; + i64toi32_i32$0 = ($12 + 4872 | 0) + $625 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2123; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $12; + i64toi32_i32$1 = HEAP32[($12 + 4776 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($12 + 4780 | 0) >> 2] | 0; + $2127 = i64toi32_i32$1; + i64toi32_i32$1 = $12; + HEAP32[($12 + 4872 | 0) >> 2] = $2127; + HEAP32[($12 + 4876 | 0) >> 2] = i64toi32_i32$0; + } + } + HEAP32[($12 + 780 | 0) >> 2] = (HEAP32[($12 + 780 | 0) >> 2] | 0) + 1 | 0; + continue label$15; + }; + } + (wasm2js_i32$0 = $12, wasm2js_f32$0 = Math_fround(btConvexShape__getMarginNonVirtual_28_29_20const(HEAP32[($12 + 4976 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 448 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20float_20const__29($12 + 452 | 0 | 0, $12 + 4920 | 0 | 0, $12 + 448 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($12 + 4888 | 0 | 0, $12 + 452 | 0 | 0) | 0; + (wasm2js_i32$0 = $12, wasm2js_f32$0 = Math_fround(btConvexShape__getMarginNonVirtual_28_29_20const(HEAP32[($12 + 4972 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 428 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20float_20const__29($12 + 432 | 0 | 0, $12 + 4920 | 0 | 0, $12 + 428 | 0 | 0); + btVector3__operator___28btVector3_20const__29($12 + 4872 | 0 | 0, $12 + 432 | 0 | 0) | 0; + label$20 : { + label$21 : { + if (!(Math_fround(HEAPF32[($12 + 4940 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$21 + } + HEAP8[($12 + 4991 | 0) >> 0] = 0 & 1 | 0; + break label$20; + } + HEAPF32[($12 + 424 | 0) >> 2] = Math_fround(.5); + $687 = Math_fround(Math_fround(HEAPF32[($12 + 424 | 0) >> 2]) + Math_fround(Math_fround(btConvexShape__getMarginNonVirtual_28_29_20const(HEAP32[($12 + 4976 | 0) >> 2] | 0 | 0)) + Math_fround(btConvexShape__getMarginNonVirtual_28_29_20const(HEAP32[($12 + 4972 | 0) >> 2] | 0 | 0)))); + HEAPF32[($12 + 4940 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($12 + 4940 | 0) >> 2]) + $687); + btGjkPairDetector__btGjkPairDetector_28btConvexShape_20const__2c_20btConvexShape_20const__2c_20btVoronoiSimplexSolver__2c_20btConvexPenetrationDepthSolver__29($12 + 344 | 0 | 0, HEAP32[($12 + 4976 | 0) >> 2] | 0 | 0, HEAP32[($12 + 4972 | 0) >> 2] | 0 | 0, HEAP32[($12 + 4980 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + HEAPF32[($12 + 340 | 0) >> 2] = Math_fround(HEAPF32[($12 + 4940 | 0) >> 2]); + operator__28btVector3_20const__2c_20float_20const__29($12 + 324 | 0 | 0, $12 + 4920 | 0 | 0, $12 + 340 | 0 | 0); + btDiscreteCollisionDetectorInterface__ClosestPointInput__ClosestPointInput_28_29($12 + 192 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($12 + 176 | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($12 + 4968 | 0) >> 2] | 0 | 0) | 0 | 0, $12 + 324 | 0 | 0); + btTransform__btTransform_28btTransform_20const__29($12 + 112 | 0 | 0, HEAP32[($12 + 4968 | 0) >> 2] | 0 | 0) | 0; + btTransform__setOrigin_28btVector3_20const__29($12 + 112 | 0 | 0, $12 + 176 | 0 | 0); + btTransform__operator__28btTransform_20const__29($12 + 192 | 0 | 0, $12 + 112 | 0 | 0) | 0; + btTransform__operator__28btTransform_20const__29(($12 + 192 | 0) + 64 | 0 | 0, HEAP32[($12 + 4964 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($12 + 320 | 0) >> 2] = Math_fround(999999984306749440.0); + btMinkowskiPenetrationDepthSolver__calcPenDepth_28btVoronoiSimplexSolver__2c_20btConvexShape_20const__2c_20btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3__2c_20btVector3__2c_20btVector3__2c_20btIDebugDraw__29__btIntermediateResult__btIntermediateResult_28_29($12 + 68 | 0 | 0) | 0; + operator__28btVector3_20const__29($12 + 52 | 0 | 0, $12 + 4920 | 0 | 0); + btGjkPairDetector__setCachedSeperatingAxis_28btVector3_20const__29($12 + 344 | 0 | 0, $12 + 52 | 0 | 0); + btGjkPairDetector__getClosestPoints_28btDiscreteCollisionDetectorInterface__ClosestPointInput_20const__2c_20btDiscreteCollisionDetectorInterface__Result__2c_20btIDebugDraw__2c_20bool_29($12 + 344 | 0 | 0, $12 + 192 | 0 | 0, $12 + 68 | 0 | 0, HEAP32[($12 + 4948 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + HEAPF32[($12 + 48 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($12 + 4940 | 0) >> 2]) - Math_fround(HEAPF32[($12 + 104 | 0) >> 2])); + HEAPF32[($12 + 44 | 0) >> 2] = Math_fround(1.0); + btVector3__operator___28float_20const__29_1($12 + 4920 | 0 | 0, $12 + 44 | 0 | 0) | 0; + label$22 : { + if (!((HEAPU8[($12 + 108 | 0) >> 0] | 0) & 1 | 0)) { + break label$22 + } + operator__28btVector3_20const__2c_20float_20const__29($12 + 12 | 0 | 0, $12 + 4920 | 0 | 0, $12 + 48 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($12 + 28 | 0 | 0, ($12 + 68 | 0) + 20 | 0 | 0, $12 + 12 | 0 | 0); + $802 = HEAP32[($12 + 4956 | 0) >> 2] | 0; + i64toi32_i32$2 = $12; + i64toi32_i32$0 = HEAP32[($12 + 28 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($12 + 32 | 0) >> 2] | 0; + $2456 = i64toi32_i32$0; + i64toi32_i32$0 = $802; + HEAP32[i64toi32_i32$0 >> 2] = $2456; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $804 = 8; + i64toi32_i32$2 = ($12 + 28 | 0) + $804 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2469 = i64toi32_i32$1; + i64toi32_i32$1 = $802 + $804 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $2469; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $815 = HEAP32[($12 + 4952 | 0) >> 2] | 0; + i64toi32_i32$2 = ($12 + 68 | 0) + 20 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2482 = i64toi32_i32$0; + i64toi32_i32$0 = $815; + HEAP32[i64toi32_i32$0 >> 2] = $2482; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $817 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $817 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2492 = i64toi32_i32$1; + i64toi32_i32$1 = $815 + $817 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $2492; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $821 = HEAP32[($12 + 4960 | 0) >> 2] | 0; + i64toi32_i32$2 = $12; + i64toi32_i32$0 = HEAP32[($12 + 4920 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($12 + 4924 | 0) >> 2] | 0; + $2498 = i64toi32_i32$0; + i64toi32_i32$0 = $821; + HEAP32[i64toi32_i32$0 >> 2] = $2498; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $823 = 8; + i64toi32_i32$2 = ($12 + 4920 | 0) + $823 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2511 = i64toi32_i32$1; + i64toi32_i32$1 = $821 + $823 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $2511; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + HEAP8[($12 + 4991 | 0) >> 0] = (HEAPU8[($12 + 108 | 0) >> 0] | 0) & 1 | 0; + btMinkowskiPenetrationDepthSolver__calcPenDepth_28btVoronoiSimplexSolver__2c_20btConvexShape_20const__2c_20btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3__2c_20btVector3__2c_20btVector3__2c_20btIDebugDraw__29__btIntermediateResult___btIntermediateResult_28_29($12 + 68 | 0 | 0) | 0; + btGjkPairDetector___btGjkPairDetector_28_29($12 + 344 | 0 | 0) | 0; + } + $840 = (HEAPU8[($12 + 4991 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $12 + 4992 | 0; + return $840 | 0; + } + + function btMinkowskiPenetrationDepthSolver__getPenetrationDirections_28_29() { + var $2 = 0, $655 = 0, $656 = 0, $658 = 0; + $2 = __stack_pointer - 512 | 0; + __stack_pointer = $2; + label$1 : { + if (!(((HEAPU8[(0 + 115344 | 0) >> 0] | 0) & 255 | 0 | 0) == (0 & 255 | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAPF32[($2 + 508 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($2 + 504 | 0) >> 2] = Math_fround(-0.0); + HEAPF32[($2 + 500 | 0) >> 2] = Math_fround(-1.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 | 0, $2 + 508 | 0 | 0, $2 + 504 | 0 | 0, $2 + 500 | 0 | 0) | 0; + HEAPF32[($2 + 496 | 0) >> 2] = Math_fround(.7236080169677734); + HEAPF32[($2 + 492 | 0) >> 2] = Math_fround(-.5257250070571899); + HEAPF32[($2 + 488 | 0) >> 2] = Math_fround(-.44721901416778564); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 16 | 0 | 0, $2 + 496 | 0 | 0, $2 + 492 | 0 | 0, $2 + 488 | 0 | 0) | 0; + HEAPF32[($2 + 484 | 0) >> 2] = Math_fround(-.2763879895210266); + HEAPF32[($2 + 480 | 0) >> 2] = Math_fround(-.8506489992141724); + HEAPF32[($2 + 476 | 0) >> 2] = Math_fround(-.44721901416778564); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 32 | 0 | 0, $2 + 484 | 0 | 0, $2 + 480 | 0 | 0, $2 + 476 | 0 | 0) | 0; + HEAPF32[($2 + 472 | 0) >> 2] = Math_fround(-.8944259881973267); + HEAPF32[($2 + 468 | 0) >> 2] = Math_fround(-0.0); + HEAPF32[($2 + 464 | 0) >> 2] = Math_fround(-.4472160041332245); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 48 | 0 | 0, $2 + 472 | 0 | 0, $2 + 468 | 0 | 0, $2 + 464 | 0 | 0) | 0; + HEAPF32[($2 + 460 | 0) >> 2] = Math_fround(-.2763879895210266); + HEAPF32[($2 + 456 | 0) >> 2] = Math_fround(.8506489992141724); + HEAPF32[($2 + 452 | 0) >> 2] = Math_fround(-.44721999764442444); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 64 | 0 | 0, $2 + 460 | 0 | 0, $2 + 456 | 0 | 0, $2 + 452 | 0 | 0) | 0; + HEAPF32[($2 + 448 | 0) >> 2] = Math_fround(.7236080169677734); + HEAPF32[($2 + 444 | 0) >> 2] = Math_fround(.5257250070571899); + HEAPF32[($2 + 440 | 0) >> 2] = Math_fround(-.44721901416778564); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 80 | 0 | 0, $2 + 448 | 0 | 0, $2 + 444 | 0 | 0, $2 + 440 | 0 | 0) | 0; + HEAPF32[($2 + 436 | 0) >> 2] = Math_fround(.2763879895210266); + HEAPF32[($2 + 432 | 0) >> 2] = Math_fround(-.8506489992141724); + HEAPF32[($2 + 428 | 0) >> 2] = Math_fround(.44721999764442444); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 96 | 0 | 0, $2 + 436 | 0 | 0, $2 + 432 | 0 | 0, $2 + 428 | 0 | 0) | 0; + HEAPF32[($2 + 424 | 0) >> 2] = Math_fround(-.7236080169677734); + HEAPF32[($2 + 420 | 0) >> 2] = Math_fround(-.5257250070571899); + HEAPF32[($2 + 416 | 0) >> 2] = Math_fround(.44721901416778564); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 112 | 0 | 0, $2 + 424 | 0 | 0, $2 + 420 | 0 | 0, $2 + 416 | 0 | 0) | 0; + HEAPF32[($2 + 412 | 0) >> 2] = Math_fround(-.7236080169677734); + HEAPF32[($2 + 408 | 0) >> 2] = Math_fround(.5257250070571899); + HEAPF32[($2 + 404 | 0) >> 2] = Math_fround(.44721901416778564); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 128 | 0 | 0, $2 + 412 | 0 | 0, $2 + 408 | 0 | 0, $2 + 404 | 0 | 0) | 0; + HEAPF32[($2 + 400 | 0) >> 2] = Math_fround(.2763879895210266); + HEAPF32[($2 + 396 | 0) >> 2] = Math_fround(.8506489992141724); + HEAPF32[($2 + 392 | 0) >> 2] = Math_fround(.44721901416778564); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 144 | 0 | 0, $2 + 400 | 0 | 0, $2 + 396 | 0 | 0, $2 + 392 | 0 | 0) | 0; + HEAPF32[($2 + 388 | 0) >> 2] = Math_fround(.8944259881973267); + HEAPF32[($2 + 384 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($2 + 380 | 0) >> 2] = Math_fround(.4472160041332245); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 160 | 0 | 0, $2 + 388 | 0 | 0, $2 + 384 | 0 | 0, $2 + 380 | 0 | 0) | 0; + HEAPF32[($2 + 376 | 0) >> 2] = Math_fround(-0.0); + HEAPF32[($2 + 372 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($2 + 368 | 0) >> 2] = Math_fround(1.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 176 | 0 | 0, $2 + 376 | 0 | 0, $2 + 372 | 0 | 0, $2 + 368 | 0 | 0) | 0; + HEAPF32[($2 + 364 | 0) >> 2] = Math_fround(.4253230094909668); + HEAPF32[($2 + 360 | 0) >> 2] = Math_fround(-.3090110123157501); + HEAPF32[($2 + 356 | 0) >> 2] = Math_fround(-.8506540060043335); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 192 | 0 | 0, $2 + 364 | 0 | 0, $2 + 360 | 0 | 0, $2 + 356 | 0 | 0) | 0; + HEAPF32[($2 + 352 | 0) >> 2] = Math_fround(-.16245600581169128); + HEAPF32[($2 + 348 | 0) >> 2] = Math_fround(-.49999499320983887); + HEAPF32[($2 + 344 | 0) >> 2] = Math_fround(-.8506540060043335); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 208 | 0 | 0, $2 + 352 | 0 | 0, $2 + 348 | 0 | 0, $2 + 344 | 0 | 0) | 0; + HEAPF32[($2 + 340 | 0) >> 2] = Math_fround(.2628690004348755); + HEAPF32[($2 + 336 | 0) >> 2] = Math_fround(-.8090119957923889); + HEAPF32[($2 + 332 | 0) >> 2] = Math_fround(-.525738000869751); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 224 | 0 | 0, $2 + 340 | 0 | 0, $2 + 336 | 0 | 0, $2 + 332 | 0 | 0) | 0; + HEAPF32[($2 + 328 | 0) >> 2] = Math_fround(.4253230094909668); + HEAPF32[($2 + 324 | 0) >> 2] = Math_fround(.3090110123157501); + HEAPF32[($2 + 320 | 0) >> 2] = Math_fround(-.8506540060043335); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 240 | 0 | 0, $2 + 328 | 0 | 0, $2 + 324 | 0 | 0, $2 + 320 | 0 | 0) | 0; + HEAPF32[($2 + 316 | 0) >> 2] = Math_fround(.8506479859352112); + HEAPF32[($2 + 312 | 0) >> 2] = Math_fround(-0.0); + HEAPF32[($2 + 308 | 0) >> 2] = Math_fround(-.5257359743118286); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 256 | 0 | 0, $2 + 316 | 0 | 0, $2 + 312 | 0 | 0, $2 + 308 | 0 | 0) | 0; + HEAPF32[($2 + 304 | 0) >> 2] = Math_fround(-.5257300138473511); + HEAPF32[($2 + 300 | 0) >> 2] = Math_fround(-0.0); + HEAPF32[($2 + 296 | 0) >> 2] = Math_fround(-.8506519794464111); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 272 | 0 | 0, $2 + 304 | 0 | 0, $2 + 300 | 0 | 0, $2 + 296 | 0 | 0) | 0; + HEAPF32[($2 + 292 | 0) >> 2] = Math_fround(-.6881899833679199); + HEAPF32[($2 + 288 | 0) >> 2] = Math_fround(-.49999698996543884); + HEAPF32[($2 + 284 | 0) >> 2] = Math_fround(-.5257359743118286); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 288 | 0 | 0, $2 + 292 | 0 | 0, $2 + 288 | 0 | 0, $2 + 284 | 0 | 0) | 0; + HEAPF32[($2 + 280 | 0) >> 2] = Math_fround(-.16245600581169128); + HEAPF32[($2 + 276 | 0) >> 2] = Math_fround(.49999499320983887); + HEAPF32[($2 + 272 | 0) >> 2] = Math_fround(-.8506540060043335); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 304 | 0 | 0, $2 + 280 | 0 | 0, $2 + 276 | 0 | 0, $2 + 272 | 0 | 0) | 0; + HEAPF32[($2 + 268 | 0) >> 2] = Math_fround(-.6881899833679199); + HEAPF32[($2 + 264 | 0) >> 2] = Math_fround(.49999698996543884); + HEAPF32[($2 + 260 | 0) >> 2] = Math_fround(-.5257359743118286); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 320 | 0 | 0, $2 + 268 | 0 | 0, $2 + 264 | 0 | 0, $2 + 260 | 0 | 0) | 0; + HEAPF32[($2 + 256 | 0) >> 2] = Math_fround(.2628690004348755); + HEAPF32[($2 + 252 | 0) >> 2] = Math_fround(.8090119957923889); + HEAPF32[($2 + 248 | 0) >> 2] = Math_fround(-.525738000869751); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 336 | 0 | 0, $2 + 256 | 0 | 0, $2 + 252 | 0 | 0, $2 + 248 | 0 | 0) | 0; + HEAPF32[($2 + 244 | 0) >> 2] = Math_fround(.9510579705238342); + HEAPF32[($2 + 240 | 0) >> 2] = Math_fround(.3090130090713501); + HEAPF32[($2 + 236 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 352 | 0 | 0, $2 + 244 | 0 | 0, $2 + 240 | 0 | 0, $2 + 236 | 0 | 0) | 0; + HEAPF32[($2 + 232 | 0) >> 2] = Math_fround(.9510579705238342); + HEAPF32[($2 + 228 | 0) >> 2] = Math_fround(-.3090130090713501); + HEAPF32[($2 + 224 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 368 | 0 | 0, $2 + 232 | 0 | 0, $2 + 228 | 0 | 0, $2 + 224 | 0 | 0) | 0; + HEAPF32[($2 + 220 | 0) >> 2] = Math_fround(.5877860188484192); + HEAPF32[($2 + 216 | 0) >> 2] = Math_fround(-.80901700258255); + HEAPF32[($2 + 212 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 384 | 0 | 0, $2 + 220 | 0 | 0, $2 + 216 | 0 | 0, $2 + 212 | 0 | 0) | 0; + HEAPF32[($2 + 208 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($2 + 204 | 0) >> 2] = Math_fround(-1.0); + HEAPF32[($2 + 200 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 400 | 0 | 0, $2 + 208 | 0 | 0, $2 + 204 | 0 | 0, $2 + 200 | 0 | 0) | 0; + HEAPF32[($2 + 196 | 0) >> 2] = Math_fround(-.5877860188484192); + HEAPF32[($2 + 192 | 0) >> 2] = Math_fround(-.80901700258255); + HEAPF32[($2 + 188 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 416 | 0 | 0, $2 + 196 | 0 | 0, $2 + 192 | 0 | 0, $2 + 188 | 0 | 0) | 0; + HEAPF32[($2 + 184 | 0) >> 2] = Math_fround(-.9510579705238342); + HEAPF32[($2 + 180 | 0) >> 2] = Math_fround(-.3090130090713501); + HEAPF32[($2 + 176 | 0) >> 2] = Math_fround(-0.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 432 | 0 | 0, $2 + 184 | 0 | 0, $2 + 180 | 0 | 0, $2 + 176 | 0 | 0) | 0; + HEAPF32[($2 + 172 | 0) >> 2] = Math_fround(-.9510579705238342); + HEAPF32[($2 + 168 | 0) >> 2] = Math_fround(.3090130090713501); + HEAPF32[($2 + 164 | 0) >> 2] = Math_fround(-0.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 448 | 0 | 0, $2 + 172 | 0 | 0, $2 + 168 | 0 | 0, $2 + 164 | 0 | 0) | 0; + HEAPF32[($2 + 160 | 0) >> 2] = Math_fround(-.5877860188484192); + HEAPF32[($2 + 156 | 0) >> 2] = Math_fround(.80901700258255); + HEAPF32[($2 + 152 | 0) >> 2] = Math_fround(-0.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 464 | 0 | 0, $2 + 160 | 0 | 0, $2 + 156 | 0 | 0, $2 + 152 | 0 | 0) | 0; + HEAPF32[($2 + 148 | 0) >> 2] = Math_fround(-0.0); + HEAPF32[($2 + 144 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($2 + 140 | 0) >> 2] = Math_fround(-0.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 480 | 0 | 0, $2 + 148 | 0 | 0, $2 + 144 | 0 | 0, $2 + 140 | 0 | 0) | 0; + HEAPF32[($2 + 136 | 0) >> 2] = Math_fround(.5877860188484192); + HEAPF32[($2 + 132 | 0) >> 2] = Math_fround(.80901700258255); + HEAPF32[($2 + 128 | 0) >> 2] = Math_fround(-0.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 496 | 0 | 0, $2 + 136 | 0 | 0, $2 + 132 | 0 | 0, $2 + 128 | 0 | 0) | 0; + HEAPF32[($2 + 124 | 0) >> 2] = Math_fround(.6881899833679199); + HEAPF32[($2 + 120 | 0) >> 2] = Math_fround(-.49999698996543884); + HEAPF32[($2 + 116 | 0) >> 2] = Math_fround(.5257359743118286); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 512 | 0 | 0, $2 + 124 | 0 | 0, $2 + 120 | 0 | 0, $2 + 116 | 0 | 0) | 0; + HEAPF32[($2 + 112 | 0) >> 2] = Math_fround(-.2628690004348755); + HEAPF32[($2 + 108 | 0) >> 2] = Math_fround(-.8090119957923889); + HEAPF32[($2 + 104 | 0) >> 2] = Math_fround(.525738000869751); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 528 | 0 | 0, $2 + 112 | 0 | 0, $2 + 108 | 0 | 0, $2 + 104 | 0 | 0) | 0; + HEAPF32[($2 + 100 | 0) >> 2] = Math_fround(-.8506479859352112); + HEAPF32[($2 + 96 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($2 + 92 | 0) >> 2] = Math_fround(.5257359743118286); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 544 | 0 | 0, $2 + 100 | 0 | 0, $2 + 96 | 0 | 0, $2 + 92 | 0 | 0) | 0; + HEAPF32[($2 + 88 | 0) >> 2] = Math_fround(-.2628690004348755); + HEAPF32[($2 + 84 | 0) >> 2] = Math_fround(.8090119957923889); + HEAPF32[($2 + 80 | 0) >> 2] = Math_fround(.525738000869751); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 560 | 0 | 0, $2 + 88 | 0 | 0, $2 + 84 | 0 | 0, $2 + 80 | 0 | 0) | 0; + HEAPF32[($2 + 76 | 0) >> 2] = Math_fround(.6881899833679199); + HEAPF32[($2 + 72 | 0) >> 2] = Math_fround(.49999698996543884); + HEAPF32[($2 + 68 | 0) >> 2] = Math_fround(.5257359743118286); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 576 | 0 | 0, $2 + 76 | 0 | 0, $2 + 72 | 0 | 0, $2 + 68 | 0 | 0) | 0; + HEAPF32[($2 + 64 | 0) >> 2] = Math_fround(.5257300138473511); + HEAPF32[($2 + 60 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($2 + 56 | 0) >> 2] = Math_fround(.8506519794464111); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 592 | 0 | 0, $2 + 64 | 0 | 0, $2 + 60 | 0 | 0, $2 + 56 | 0 | 0) | 0; + HEAPF32[($2 + 52 | 0) >> 2] = Math_fround(.16245600581169128); + HEAPF32[($2 + 48 | 0) >> 2] = Math_fround(-.49999499320983887); + HEAPF32[($2 + 44 | 0) >> 2] = Math_fround(.8506540060043335); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 608 | 0 | 0, $2 + 52 | 0 | 0, $2 + 48 | 0 | 0, $2 + 44 | 0 | 0) | 0; + HEAPF32[($2 + 40 | 0) >> 2] = Math_fround(-.4253230094909668); + HEAPF32[($2 + 36 | 0) >> 2] = Math_fround(-.3090110123157501); + HEAPF32[($2 + 32 | 0) >> 2] = Math_fround(.8506540060043335); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 624 | 0 | 0, $2 + 40 | 0 | 0, $2 + 36 | 0 | 0, $2 + 32 | 0 | 0) | 0; + HEAPF32[($2 + 28 | 0) >> 2] = Math_fround(-.4253230094909668); + HEAPF32[($2 + 24 | 0) >> 2] = Math_fround(.3090110123157501); + HEAPF32[($2 + 20 | 0) >> 2] = Math_fround(.8506540060043335); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 640 | 0 | 0, $2 + 28 | 0 | 0, $2 + 24 | 0 | 0, $2 + 20 | 0 | 0) | 0; + HEAPF32[($2 + 16 | 0) >> 2] = Math_fround(.16245600581169128); + HEAPF32[($2 + 12 | 0) >> 2] = Math_fround(.49999499320983887); + HEAPF32[($2 + 8 | 0) >> 2] = Math_fround(.8506540060043335); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(114352 + 656 | 0 | 0, $2 + 16 | 0 | 0, $2 + 12 | 0 | 0, $2 + 8 | 0 | 0) | 0; + $655 = 114352 + 672 | 0; + label$2 : while (1) { + $656 = $655; + btVector3__btVector3_28_29($656 | 0) | 0; + $658 = $656 + 16 | 0; + $655 = $658; + if (!(($658 | 0) == (114352 + 992 | 0 | 0) & 1 | 0)) { + continue label$2 + } + break label$2; + }; + HEAP8[(0 + 115344 | 0) >> 0] = 1; + } + __stack_pointer = $2 + 512 | 0; + return 114352 | 0; + } + + function btMinkowskiPenetrationDepthSolver__calcPenDepth_28btVoronoiSimplexSolver__2c_20btConvexShape_20const__2c_20btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3__2c_20btVector3__2c_20btVector3__2c_20btIDebugDraw__29__btIntermediateResult__btIntermediateResult_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btDiscreteCollisionDetectorInterface__Result__Result_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 101588 + 8 | 0; + btVector3__btVector3_28_29($4 + 4 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 20 | 0 | 0) | 0; + HEAP8[($4 + 40 | 0) >> 0] = 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btGjkPairDetector__setCachedSeperatingAxis_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, $8 = 0, $10 = 0, $32 = 0, $42 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $8 = (HEAP32[($4 + 12 | 0) >> 2] | 0) + 4 | 0; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $32 = i64toi32_i32$0; + i64toi32_i32$0 = $8; + HEAP32[i64toi32_i32$0 >> 2] = $32; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $10 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $10 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $42 = i64toi32_i32$1; + i64toi32_i32$1 = $8 + $10 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $42; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function btMinkowskiPenetrationDepthSolver__calcPenDepth_28btVoronoiSimplexSolver__2c_20btConvexShape_20const__2c_20btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3__2c_20btVector3__2c_20btVector3__2c_20btIDebugDraw__29__btIntermediateResult___btIntermediateResult_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btDiscreteCollisionDetectorInterface__Result___Result_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btMinkowskiPenetrationDepthSolver___btMinkowskiPenetrationDepthSolver_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConvexPenetrationDepthSolver___btConvexPenetrationDepthSolver_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btMinkowskiPenetrationDepthSolver___btMinkowskiPenetrationDepthSolver_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btMinkowskiPenetrationDepthSolver___btMinkowskiPenetrationDepthSolver_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btMinkowskiPenetrationDepthSolver__calcPenDepth_28btVoronoiSimplexSolver__2c_20btConvexShape_20const__2c_20btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3__2c_20btVector3__2c_20btVector3__2c_20btIDebugDraw__29__btIntermediateResult___btIntermediateResult_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btMinkowskiPenetrationDepthSolver__calcPenDepth_28btVoronoiSimplexSolver__2c_20btConvexShape_20const__2c_20btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3__2c_20btVector3__2c_20btVector3__2c_20btIDebugDraw__29__btIntermediateResult___btIntermediateResult_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btMinkowskiPenetrationDepthSolver__calcPenDepth_28btVoronoiSimplexSolver__2c_20btConvexShape_20const__2c_20btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3__2c_20btVector3__2c_20btVector3__2c_20btIDebugDraw__29__btIntermediateResult__setShapeIdentifiersA_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + return; + } + + function btMinkowskiPenetrationDepthSolver__calcPenDepth_28btVoronoiSimplexSolver__2c_20btConvexShape_20const__2c_20btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3__2c_20btVector3__2c_20btVector3__2c_20btIDebugDraw__29__btIntermediateResult__setShapeIdentifiersB_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + return; + } + + function btMinkowskiPenetrationDepthSolver__calcPenDepth_28btVoronoiSimplexSolver__2c_20btConvexShape_20const__2c_20btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3__2c_20btVector3__2c_20btVector3__2c_20btIDebugDraw__29__btIntermediateResult__addContactPoint_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0, $7 = 0, $10 = 0, $12 = 0, $18 = 0, $20 = 0, $48 = 0, $58 = 0, $67 = 0, $77 = 0; + $6 = __stack_pointer - 16 | 0; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAPF32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + $10 = $7 + 4 | 0; + i64toi32_i32$2 = HEAP32[($6 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $48 = i64toi32_i32$0; + i64toi32_i32$0 = $10; + HEAP32[i64toi32_i32$0 >> 2] = $48; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $12 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $12 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $58 = i64toi32_i32$1; + i64toi32_i32$1 = $10 + $12 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $58; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $18 = $7 + 20 | 0; + i64toi32_i32$2 = HEAP32[($6 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $67 = i64toi32_i32$0; + i64toi32_i32$0 = $18; + HEAP32[i64toi32_i32$0 >> 2] = $67; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $20 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $20 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $77 = i64toi32_i32$1; + i64toi32_i32$1 = $18 + $20 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $77; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($7 + 36 | 0) >> 2] = Math_fround(HEAPF32[$6 >> 2]); + HEAP8[($7 + 40 | 0) >> 0] = 1; + return; + } + + function _GLOBAL__sub_I_btMinkowskiPenetrationDepthSolver_cpp() { + __cxx_global_var_init_62(); + return; + } + + function __cxx_global_var_init_63() { + btInfMaskConverter__btInfMaskConverter_28int_29(115348 | 0, 2139095040 | 0) | 0; + return; + } + + function btPersistentManifold__btPersistentManifold_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0, $7 = 0, $10 = 0, $11 = 0, $13 = 0, $9 = 0, $23 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $4; + btTypedObject__btTypedObject_28int_29($4 | 0, 1025 | 0) | 0; + $7 = $4 + 4 | 0; + $9 = $7 + 832 | 0; + $10 = $7; + label$1 : while (1) { + $11 = $10; + btManifoldPoint__btManifoldPoint_28_29($11 | 0) | 0; + $13 = $11 + 208 | 0; + $10 = $13; + if (!(($13 | 0) == ($9 | 0) & 1 | 0)) { + continue label$1 + } + break label$1; + }; + HEAP32[($4 + 836 | 0) >> 2] = 0; + HEAP32[($4 + 840 | 0) >> 2] = 0; + HEAP32[($4 + 844 | 0) >> 2] = 0; + HEAP32[($4 + 864 | 0) >> 2] = 0; + $23 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $23 | 0; + } + + function btPersistentManifold__clearUserCache_28btManifoldPoint__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 116 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 116 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + if (!((HEAP32[(0 + 115352 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + FUNCTION_TABLE[HEAP32[(0 + 115352 | 0) >> 2] | 0 | 0](HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 116 | 0) >> 2] | 0) | 0; + HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 116 | 0) >> 2] = 0; + } + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btPersistentManifold__sortCachedPoints_28btManifoldPoint_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $286 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$1 = 0; + $4 = __stack_pointer - 256 | 0; + __stack_pointer = $4; + HEAP32[($4 + 252 | 0) >> 2] = $0; + HEAP32[($4 + 248 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 252 | 0) >> 2] | 0; + HEAP32[($4 + 244 | 0) >> 2] = -1; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btManifoldPoint__getDistance_28_29_20const(HEAP32[($4 + 248 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 240 | 0) >> 2] = wasm2js_f32$0; + HEAP32[($4 + 236 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 236 | 0) >> 2] | 0 | 0) < (4 | 0) & 1 | 0)) { + break label$1 + } + label$3 : { + if (!(Math_fround(btManifoldPoint__getDistance_28_29_20const(($5 + 4 | 0) + Math_imul(HEAP32[($4 + 236 | 0) >> 2] | 0, 208) | 0 | 0)) < Math_fround(HEAPF32[($4 + 240 | 0) >> 2]) & 1 | 0)) { + break label$3 + } + HEAP32[($4 + 244 | 0) >> 2] = HEAP32[($4 + 236 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btManifoldPoint__getDistance_28_29_20const(($5 + 4 | 0) + Math_imul(HEAP32[($4 + 236 | 0) >> 2] | 0, 208) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 240 | 0) >> 2] = wasm2js_f32$0; + } + HEAP32[($4 + 236 | 0) >> 2] = (HEAP32[($4 + 236 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + HEAPF32[($4 + 232 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 228 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 224 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 220 | 0) >> 2] = Math_fround(0 | 0); + label$4 : { + label$5 : { + if (!((HEAPU8[(0 + 112844 | 0) >> 0] | 0) & 1 | 0)) { + break label$5 + } + label$6 : { + if (!(HEAP32[($4 + 244 | 0) >> 2] | 0)) { + break label$6 + } + operator__28btVector3_20const__2c_20btVector3_20const__29($4 + 204 | 0 | 0, HEAP32[($4 + 248 | 0) >> 2] | 0 | 0, ($5 + 4 | 0) + 208 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($4 + 188 | 0 | 0, ($5 + 4 | 0) + 624 | 0 | 0, ($5 + 4 | 0) + 416 | 0 | 0); + btVector3__cross_28btVector3_20const__29_20const($4 + 172 | 0 | 0, $4 + 204 | 0 | 0, $4 + 188 | 0 | 0); + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($4 + 172 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 232 | 0) >> 2] = wasm2js_f32$0; + } + label$7 : { + if (!((HEAP32[($4 + 244 | 0) >> 2] | 0 | 0) != (1 | 0) & 1 | 0)) { + break label$7 + } + operator__28btVector3_20const__2c_20btVector3_20const__29($4 + 156 | 0 | 0, HEAP32[($4 + 248 | 0) >> 2] | 0 | 0, $5 + 4 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($4 + 140 | 0 | 0, ($5 + 4 | 0) + 624 | 0 | 0, ($5 + 4 | 0) + 416 | 0 | 0); + btVector3__cross_28btVector3_20const__29_20const($4 + 124 | 0 | 0, $4 + 156 | 0 | 0, $4 + 140 | 0 | 0); + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($4 + 124 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 228 | 0) >> 2] = wasm2js_f32$0; + } + label$8 : { + if (!((HEAP32[($4 + 244 | 0) >> 2] | 0 | 0) != (2 | 0) & 1 | 0)) { + break label$8 + } + operator__28btVector3_20const__2c_20btVector3_20const__29($4 + 108 | 0 | 0, HEAP32[($4 + 248 | 0) >> 2] | 0 | 0, $5 + 4 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($4 + 92 | 0 | 0, ($5 + 4 | 0) + 624 | 0 | 0, ($5 + 4 | 0) + 208 | 0 | 0); + btVector3__cross_28btVector3_20const__29_20const($4 + 76 | 0 | 0, $4 + 108 | 0 | 0, $4 + 92 | 0 | 0); + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($4 + 76 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 224 | 0) >> 2] = wasm2js_f32$0; + } + label$9 : { + if (!((HEAP32[($4 + 244 | 0) >> 2] | 0 | 0) != (3 | 0) & 1 | 0)) { + break label$9 + } + operator__28btVector3_20const__2c_20btVector3_20const__29($4 + 60 | 0 | 0, HEAP32[($4 + 248 | 0) >> 2] | 0 | 0, $5 + 4 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($4 + 44 | 0 | 0, ($5 + 4 | 0) + 416 | 0 | 0, ($5 + 4 | 0) + 208 | 0 | 0); + btVector3__cross_28btVector3_20const__29_20const($4 + 28 | 0 | 0, $4 + 60 | 0 | 0, $4 + 44 | 0 | 0); + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($4 + 28 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 220 | 0) >> 2] = wasm2js_f32$0; + } + break label$4; + } + label$10 : { + if (!(HEAP32[($4 + 244 | 0) >> 2] | 0)) { + break label$10 + } + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(calcArea4Points_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29(HEAP32[($4 + 248 | 0) >> 2] | 0 | 0, ($5 + 4 | 0) + 208 | 0 | 0, ($5 + 4 | 0) + 416 | 0 | 0, ($5 + 4 | 0) + 624 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 232 | 0) >> 2] = wasm2js_f32$0; + } + label$11 : { + if (!((HEAP32[($4 + 244 | 0) >> 2] | 0 | 0) != (1 | 0) & 1 | 0)) { + break label$11 + } + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(calcArea4Points_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29(HEAP32[($4 + 248 | 0) >> 2] | 0 | 0, $5 + 4 | 0 | 0, ($5 + 4 | 0) + 416 | 0 | 0, ($5 + 4 | 0) + 624 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 228 | 0) >> 2] = wasm2js_f32$0; + } + label$12 : { + if (!((HEAP32[($4 + 244 | 0) >> 2] | 0 | 0) != (2 | 0) & 1 | 0)) { + break label$12 + } + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(calcArea4Points_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29(HEAP32[($4 + 248 | 0) >> 2] | 0 | 0, $5 + 4 | 0 | 0, ($5 + 4 | 0) + 208 | 0 | 0, ($5 + 4 | 0) + 624 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 224 | 0) >> 2] = wasm2js_f32$0; + } + label$13 : { + if (!((HEAP32[($4 + 244 | 0) >> 2] | 0 | 0) != (3 | 0) & 1 | 0)) { + break label$13 + } + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(calcArea4Points_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29(HEAP32[($4 + 248 | 0) >> 2] | 0 | 0, $5 + 4 | 0 | 0, ($5 + 4 | 0) + 208 | 0 | 0, ($5 + 4 | 0) + 416 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 220 | 0) >> 2] = wasm2js_f32$0; + } + } + btVector4__btVector4_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($4 + 12 | 0 | 0, $4 + 232 | 0 | 0, $4 + 228 | 0 | 0, $4 + 224 | 0 | 0, $4 + 220 | 0 | 0) | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btVector4__closestAxis4_28_29_20const($4 + 12 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + $286 = HEAP32[($4 + 8 | 0) >> 2] | 0; + __stack_pointer = $4 + 256 | 0; + return $286 | 0; + } + + function calcArea4Points_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $9 = 0, $12 = 0, $13 = 0, $15 = 0, $23 = 0, $26 = 0, $27 = 0, $29 = 0, $42 = 0, $44 = 0, $59 = 0, $61 = 0, $76 = 0, $78 = 0, $91 = 0, $93 = 0, $108 = 0, $110 = 0, $125 = 0, $127 = 0, $11 = 0, $25 = 0, $275 = 0, $288 = 0, $310 = 0, $323 = 0, $345 = 0, $358 = 0, $377 = 0, $390 = 0, $412 = 0, $425 = 0, $447 = 0, $460 = 0, $182 = 0, $191 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 272 | 0; + __stack_pointer = $6; + HEAP32[($6 + 268 | 0) >> 2] = $0; + HEAP32[($6 + 264 | 0) >> 2] = $1; + HEAP32[($6 + 260 | 0) >> 2] = $2; + HEAP32[($6 + 256 | 0) >> 2] = $3; + $9 = $6 + 208 | 0; + $11 = $9 + 48 | 0; + $12 = $9; + label$1 : while (1) { + $13 = $12; + btVector3__btVector3_28_29($13 | 0) | 0; + $15 = $13 + 16 | 0; + $12 = $15; + if (!(($15 | 0) == ($11 | 0) & 1 | 0)) { + continue label$1 + } + break label$1; + }; + $23 = $6 + 160 | 0; + $25 = $23 + 48 | 0; + $26 = $23; + label$2 : while (1) { + $27 = $26; + btVector3__btVector3_28_29($27 | 0) | 0; + $29 = $27 + 16 | 0; + $26 = $29; + if (!(($29 | 0) == ($25 | 0) & 1 | 0)) { + continue label$2 + } + break label$2; + }; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 144 | 0 | 0, HEAP32[($6 + 268 | 0) >> 2] | 0 | 0, HEAP32[($6 + 264 | 0) >> 2] | 0 | 0); + $42 = $6 + 208 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 144 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 148 | 0) >> 2] | 0; + $275 = i64toi32_i32$0; + i64toi32_i32$0 = $42; + HEAP32[i64toi32_i32$0 >> 2] = $275; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $44 = 8; + i64toi32_i32$2 = ($6 + 144 | 0) + $44 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $288 = i64toi32_i32$1; + i64toi32_i32$1 = $42 + $44 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $288; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 128 | 0 | 0, HEAP32[($6 + 268 | 0) >> 2] | 0 | 0, HEAP32[($6 + 260 | 0) >> 2] | 0 | 0); + $59 = ($6 + 208 | 0) + 16 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 128 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 132 | 0) >> 2] | 0; + $310 = i64toi32_i32$0; + i64toi32_i32$0 = $59; + HEAP32[i64toi32_i32$0 >> 2] = $310; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $61 = 8; + i64toi32_i32$2 = ($6 + 128 | 0) + $61 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $323 = i64toi32_i32$1; + i64toi32_i32$1 = $59 + $61 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $323; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 112 | 0 | 0, HEAP32[($6 + 268 | 0) >> 2] | 0 | 0, HEAP32[($6 + 256 | 0) >> 2] | 0 | 0); + $76 = ($6 + 208 | 0) + 32 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 112 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 116 | 0) >> 2] | 0; + $345 = i64toi32_i32$0; + i64toi32_i32$0 = $76; + HEAP32[i64toi32_i32$0 >> 2] = $345; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $78 = 8; + i64toi32_i32$2 = ($6 + 112 | 0) + $78 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $358 = i64toi32_i32$1; + i64toi32_i32$1 = $76 + $78 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $358; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 96 | 0 | 0, HEAP32[($6 + 260 | 0) >> 2] | 0 | 0, HEAP32[($6 + 256 | 0) >> 2] | 0 | 0); + $91 = $6 + 160 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 96 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 100 | 0) >> 2] | 0; + $377 = i64toi32_i32$0; + i64toi32_i32$0 = $91; + HEAP32[i64toi32_i32$0 >> 2] = $377; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $93 = 8; + i64toi32_i32$2 = ($6 + 96 | 0) + $93 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $390 = i64toi32_i32$1; + i64toi32_i32$1 = $91 + $93 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $390; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 80 | 0 | 0, HEAP32[($6 + 264 | 0) >> 2] | 0 | 0, HEAP32[($6 + 256 | 0) >> 2] | 0 | 0); + $108 = ($6 + 160 | 0) + 16 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 80 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 84 | 0) >> 2] | 0; + $412 = i64toi32_i32$0; + i64toi32_i32$0 = $108; + HEAP32[i64toi32_i32$0 >> 2] = $412; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $110 = 8; + i64toi32_i32$2 = ($6 + 80 | 0) + $110 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $425 = i64toi32_i32$1; + i64toi32_i32$1 = $108 + $110 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $425; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 64 | 0 | 0, HEAP32[($6 + 264 | 0) >> 2] | 0 | 0, HEAP32[($6 + 260 | 0) >> 2] | 0 | 0); + $125 = ($6 + 160 | 0) + 32 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 64 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 68 | 0) >> 2] | 0; + $447 = i64toi32_i32$0; + i64toi32_i32$0 = $125; + HEAP32[i64toi32_i32$0 >> 2] = $447; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $127 = 8; + i64toi32_i32$2 = ($6 + 64 | 0) + $127 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $460 = i64toi32_i32$1; + i64toi32_i32$1 = $125 + $127 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $460; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__cross_28btVector3_20const__29_20const($6 + 48 | 0 | 0, $6 + 208 | 0 | 0, $6 + 160 | 0 | 0); + btVector3__cross_28btVector3_20const__29_20const($6 + 32 | 0 | 0, ($6 + 208 | 0) + 16 | 0 | 0, ($6 + 160 | 0) + 16 | 0 | 0); + btVector3__cross_28btVector3_20const__29_20const($6 + 16 | 0 | 0, ($6 + 208 | 0) + 32 | 0 | 0, ($6 + 160 | 0) + 32 | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($6 + 48 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($6 + 32 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + $182 = float_20const__20btMax_float__28float_20const__2c_20float_20const__29($6 + 12 | 0 | 0, $6 + 8 | 0 | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($6 + 16 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $191 = Math_fround(HEAPF32[(float_20const__20btMax_float__28float_20const__2c_20float_20const__29($182 | 0, $6 + 4 | 0 | 0) | 0) >> 2]); + __stack_pointer = $6 + 272 | 0; + return Math_fround($191); + } + + function btVector4__btVector4_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 | 0, HEAP32[($7 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7 + 16 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($8 + 12 | 0) >> 2] = Math_fround(HEAPF32[(HEAP32[($7 + 12 | 0) >> 2] | 0) >> 2]); + __stack_pointer = $7 + 32 | 0; + return $8 | 0; + } + + function btVector4__closestAxis4_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $11 = 0; + $3 = __stack_pointer - 32 | 0; + __stack_pointer = $3; + HEAP32[($3 + 28 | 0) >> 2] = $0; + btVector4__absolute4_28_29_20const($3 + 12 | 0 | 0, HEAP32[($3 + 28 | 0) >> 2] | 0 | 0); + $11 = btVector4__maxAxis4_28_29_20const($3 + 12 | 0 | 0) | 0; + __stack_pointer = $3 + 32 | 0; + return $11 | 0; + } + + function btVector4__absolute4_28_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[$5 >> 2]))))), HEAPF32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[($5 + 8 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[($5 + 12 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + btVector4__btVector4_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $4 + 24 | 0 | 0, $4 + 20 | 0 | 0, $4 + 16 | 0 | 0, $4 + 12 | 0 | 0) | 0; + __stack_pointer = $4 + 32 | 0; + return; + } + + function btVector4__maxAxis4_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[($3 + 8 | 0) >> 2] = -1; + HEAPF32[($3 + 4 | 0) >> 2] = Math_fround(-999999984306749440.0); + label$1 : { + if (!(Math_fround(HEAPF32[$4 >> 2]) > Math_fround(HEAPF32[($3 + 4 | 0) >> 2]) & 1 | 0)) { + break label$1 + } + HEAP32[($3 + 8 | 0) >> 2] = 0; + HEAPF32[($3 + 4 | 0) >> 2] = Math_fround(HEAPF32[$4 >> 2]); + } + label$2 : { + if (!(Math_fround(HEAPF32[($4 + 4 | 0) >> 2]) > Math_fround(HEAPF32[($3 + 4 | 0) >> 2]) & 1 | 0)) { + break label$2 + } + HEAP32[($3 + 8 | 0) >> 2] = 1; + HEAPF32[($3 + 4 | 0) >> 2] = Math_fround(HEAPF32[($4 + 4 | 0) >> 2]); + } + label$3 : { + if (!(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]) > Math_fround(HEAPF32[($3 + 4 | 0) >> 2]) & 1 | 0)) { + break label$3 + } + HEAP32[($3 + 8 | 0) >> 2] = 2; + HEAPF32[($3 + 4 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + } + label$4 : { + if (!(Math_fround(HEAPF32[($4 + 12 | 0) >> 2]) > Math_fround(HEAPF32[($3 + 4 | 0) >> 2]) & 1 | 0)) { + break label$4 + } + HEAP32[($3 + 8 | 0) >> 2] = 3; + } + return HEAP32[($3 + 8 | 0) >> 2] | 0 | 0; + } + + function btPersistentManifold__getCacheEntry_28btManifoldPoint_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0, $44 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$1 = 0; + $4 = __stack_pointer - 48 | 0; + __stack_pointer = $4; + HEAP32[($4 + 44 | 0) >> 2] = $0; + HEAP32[($4 + 40 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 44 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(btPersistentManifold__getContactBreakingThreshold_28_29_20const($5 | 0)) * Math_fround(btPersistentManifold__getContactBreakingThreshold_28_29_20const($5 | 0)))), HEAPF32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btPersistentManifold__getNumContacts_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($4 + 28 | 0) >> 2] = -1; + HEAP32[($4 + 24 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 32 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[($4 + 20 | 0) >> 2] = ($5 + 4 | 0) + Math_imul(HEAP32[($4 + 24 | 0) >> 2] | 0, 208) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($4 + 4 | 0 | 0, HEAP32[($4 + 20 | 0) >> 2] | 0 | 0, HEAP32[($4 + 40 | 0) >> 2] | 0 | 0); + $32 = $4 + 4 | 0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($32 | 0, $32 | 0))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + label$3 : { + if (!(Math_fround(HEAPF32[$4 >> 2]) < Math_fround(HEAPF32[($4 + 36 | 0) >> 2]) & 1 | 0)) { + break label$3 + } + HEAPF32[($4 + 36 | 0) >> 2] = Math_fround(HEAPF32[$4 >> 2]); + HEAP32[($4 + 28 | 0) >> 2] = HEAP32[($4 + 24 | 0) >> 2] | 0; + } + HEAP32[($4 + 24 | 0) >> 2] = (HEAP32[($4 + 24 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + $44 = HEAP32[($4 + 28 | 0) >> 2] | 0; + __stack_pointer = $4 + 48 | 0; + return $44 | 0; + } + + function btPersistentManifold__getContactBreakingThreshold_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 848 | 0) >> 2])); + } + + function btPersistentManifold__addManifoldPoint_28btManifoldPoint_20const__2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $7 = 0, $71 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP8[($5 + 7 | 0) >> 0] = $2; + $7 = HEAP32[($5 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAPU8[($5 + 7 | 0) >> 0] | 0) & 1 | 0) { + break label$1 + } + label$2 : { + if ((btPersistentManifold__validContactDistance_28btManifoldPoint_20const__29_20const($7 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$2 + } + __assert_fail(86236 | 0, 75898 | 0, 214 | 0, 67705 | 0); + wasm2js_trap(); + } + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btPersistentManifold__getNumContacts_28_29_20const($7 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + label$3 : { + label$4 : { + if (!((HEAP32[$5 >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$4 + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btPersistentManifold__sortCachedPoints_28btManifoldPoint_20const__29($7 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + btPersistentManifold__clearUserCache_28btManifoldPoint__29($7 | 0, ($7 + 4 | 0) + Math_imul(HEAP32[$5 >> 2] | 0, 208) | 0 | 0); + break label$3; + } + HEAP32[($7 + 844 | 0) >> 2] = (HEAP32[($7 + 844 | 0) >> 2] | 0) + 1 | 0; + } + label$5 : { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (0 | 0) & 1 | 0)) { + break label$5 + } + HEAP32[$5 >> 2] = 0; + } + label$6 : { + if ((HEAP32[((($7 + 4 | 0) + Math_imul(HEAP32[$5 >> 2] | 0, 208) | 0) + 116 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0) { + break label$6 + } + __assert_fail(85893 | 0, 75898 | 0, 237 | 0, 67705 | 0); + wasm2js_trap(); + } + __memcpy(($7 + 4 | 0) + Math_imul(HEAP32[$5 >> 2] | 0, 208) | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, 208 | 0) | 0; + $71 = HEAP32[$5 >> 2] | 0; + __stack_pointer = $5 + 16 | 0; + return $71 | 0; + } + + function btPersistentManifold__refreshContactPoints_28btTransform_20const__2c_20btTransform_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $6 = 0, $30 = 0, $32 = 0, $47 = 0, $49 = 0, $72 = 0, $124 = 0, $142 = 0, $153 = 0, $245 = 0, $258 = 0, $281 = 0, $294 = 0, $70 = Math_fround(0), $108 = 0, $449 = 0, $453 = 0, $485 = 0, $489 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 160 | 0; + __stack_pointer = $5; + HEAP32[($5 + 156 | 0) >> 2] = $0; + HEAP32[($5 + 152 | 0) >> 2] = $1; + HEAP32[($5 + 148 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 156 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = (btPersistentManifold__getNumContacts_28_29_20const($6 | 0) | 0) - 1 | 0), HEAP32[(wasm2js_i32$0 + 144 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($5 + 144 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[($5 + 140 | 0) >> 2] = ($6 + 4 | 0) + Math_imul(HEAP32[($5 + 144 | 0) >> 2] | 0, 208) | 0; + btTransform__operator_28_29_28btVector3_20const__29_20const($5 + 124 | 0 | 0, HEAP32[($5 + 152 | 0) >> 2] | 0 | 0, HEAP32[($5 + 140 | 0) >> 2] | 0 | 0); + $30 = (HEAP32[($5 + 140 | 0) >> 2] | 0) + 48 | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 124 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 128 | 0) >> 2] | 0; + $245 = i64toi32_i32$0; + i64toi32_i32$0 = $30; + HEAP32[i64toi32_i32$0 >> 2] = $245; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $32 = 8; + i64toi32_i32$2 = ($5 + 124 | 0) + $32 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $258 = i64toi32_i32$1; + i64toi32_i32$1 = $30 + $32 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $258; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btTransform__operator_28_29_28btVector3_20const__29_20const($5 + 108 | 0 | 0, HEAP32[($5 + 148 | 0) >> 2] | 0 | 0, (HEAP32[($5 + 140 | 0) >> 2] | 0) + 16 | 0 | 0); + $47 = (HEAP32[($5 + 140 | 0) >> 2] | 0) + 32 | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 108 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 112 | 0) >> 2] | 0; + $281 = i64toi32_i32$0; + i64toi32_i32$0 = $47; + HEAP32[i64toi32_i32$0 >> 2] = $281; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $49 = 8; + i64toi32_i32$2 = ($5 + 108 | 0) + $49 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $294 = i64toi32_i32$1; + i64toi32_i32$1 = $47 + $49 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $294; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 92 | 0 | 0, (HEAP32[($5 + 140 | 0) >> 2] | 0) + 48 | 0 | 0, (HEAP32[($5 + 140 | 0) >> 2] | 0) + 32 | 0 | 0); + $70 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($5 + 92 | 0 | 0, (HEAP32[($5 + 140 | 0) >> 2] | 0) + 64 | 0 | 0)); + HEAPF32[((HEAP32[($5 + 140 | 0) >> 2] | 0) + 80 | 0) >> 2] = $70; + $72 = HEAP32[($5 + 140 | 0) >> 2] | 0; + HEAP32[($72 + 164 | 0) >> 2] = (HEAP32[($72 + 164 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($5 + 144 | 0) >> 2] = (HEAP32[($5 + 144 | 0) >> 2] | 0) + -1 | 0; + continue label$2; + }; + } + btVector3__btVector3_28_29($5 + 72 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 56 | 0 | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = (btPersistentManifold__getNumContacts_28_29_20const($6 | 0) | 0) - 1 | 0), HEAP32[(wasm2js_i32$0 + 144 | 0) >> 2] = wasm2js_i32$1; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 144 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 52 | 0) >> 2] = ($6 + 4 | 0) + Math_imul(HEAP32[($5 + 144 | 0) >> 2] | 0, 208) | 0; + label$5 : { + label$6 : { + if ((btPersistentManifold__validContactDistance_28btManifoldPoint_20const__29_20const($6 | 0, HEAP32[($5 + 52 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$6 + } + btPersistentManifold__removeContactPoint_28int_29($6 | 0, HEAP32[($5 + 144 | 0) >> 2] | 0 | 0); + break label$5; + } + $108 = (HEAP32[($5 + 52 | 0) >> 2] | 0) + 48 | 0; + operator__28btVector3_20const__2c_20float_20const__29($5 + 20 | 0 | 0, (HEAP32[($5 + 52 | 0) >> 2] | 0) + 64 | 0 | 0, (HEAP32[($5 + 52 | 0) >> 2] | 0) + 80 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 36 | 0 | 0, $108 | 0, $5 + 20 | 0 | 0); + $124 = 8; + i64toi32_i32$2 = ($5 + 36 | 0) + $124 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $449 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 56 | 0) + $124 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $449; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $5; + i64toi32_i32$1 = HEAP32[($5 + 36 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 40 | 0) >> 2] | 0; + $453 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 56 | 0) >> 2] = $453; + HEAP32[($5 + 60 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 4 | 0 | 0, (HEAP32[($5 + 52 | 0) >> 2] | 0) + 32 | 0 | 0, $5 + 56 | 0 | 0); + $142 = 8; + i64toi32_i32$2 = ($5 + 4 | 0) + $142 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $485 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 72 | 0) + $142 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $485; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $5; + i64toi32_i32$1 = HEAP32[($5 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 8 | 0) >> 2] | 0; + $489 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 72 | 0) >> 2] = $489; + HEAP32[($5 + 76 | 0) >> 2] = i64toi32_i32$0; + $153 = $5 + 72 | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($153 | 0, $153 | 0))), HEAPF32[(wasm2js_i32$0 + 88 | 0) >> 2] = wasm2js_f32$0; + label$7 : { + label$8 : { + if (!(Math_fround(HEAPF32[($5 + 88 | 0) >> 2]) > Math_fround(Math_fround(btPersistentManifold__getContactBreakingThreshold_28_29_20const($6 | 0)) * Math_fround(btPersistentManifold__getContactBreakingThreshold_28_29_20const($6 | 0))) & 1 | 0)) { + break label$8 + } + btPersistentManifold__removeContactPoint_28int_29($6 | 0, HEAP32[($5 + 144 | 0) >> 2] | 0 | 0); + break label$7; + } + label$9 : { + if (!((HEAP32[(0 + 115356 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$9 + } + FUNCTION_TABLE[HEAP32[(0 + 115356 | 0) >> 2] | 0 | 0](HEAP32[($5 + 52 | 0) >> 2] | 0, HEAP32[($6 + 836 | 0) >> 2] | 0, HEAP32[($6 + 840 | 0) >> 2] | 0) | 0; + } + } + } + HEAP32[($5 + 144 | 0) >> 2] = (HEAP32[($5 + 144 | 0) >> 2] | 0) + -1 | 0; + continue label$4; + }; + } + __stack_pointer = $5 + 160 | 0; + return; + } + + function btPersistentManifold__removeContactPoint_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $110 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btPersistentManifold__clearUserCache_28btManifoldPoint__29($5 | 0, ($5 + 4 | 0) + Math_imul(HEAP32[($4 + 8 | 0) >> 2] | 0, 208) | 0 | 0); + (wasm2js_i32$0 = $4, wasm2js_i32$1 = (btPersistentManifold__getNumContacts_28_29_20const($5 | 0) | 0) - 1 | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) != (HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + __memcpy(($5 + 4 | 0) + Math_imul(HEAP32[($4 + 8 | 0) >> 2] | 0, 208) | 0 | 0, ($5 + 4 | 0) + Math_imul(HEAP32[($4 + 4 | 0) >> 2] | 0, 208) | 0 | 0, 208 | 0) | 0; + HEAP32[((($5 + 4 | 0) + Math_imul(HEAP32[($4 + 4 | 0) >> 2] | 0, 208) | 0) + 116 | 0) >> 2] = 0; + HEAPF32[((($5 + 4 | 0) + Math_imul(HEAP32[($4 + 4 | 0) >> 2] | 0, 208) | 0) + 132 | 0) >> 2] = Math_fround(0 | 0); + HEAP32[((($5 + 4 | 0) + Math_imul(HEAP32[($4 + 4 | 0) >> 2] | 0, 208) | 0) + 128 | 0) >> 2] = 0; + HEAPF32[((($5 + 4 | 0) + Math_imul(HEAP32[($4 + 4 | 0) >> 2] | 0, 208) | 0) + 136 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[((($5 + 4 | 0) + Math_imul(HEAP32[($4 + 4 | 0) >> 2] | 0, 208) | 0) + 140 | 0) >> 2] = Math_fround(0 | 0); + HEAP32[((($5 + 4 | 0) + Math_imul(HEAP32[($4 + 4 | 0) >> 2] | 0, 208) | 0) + 164 | 0) >> 2] = 0; + } + label$2 : { + if ((HEAP32[((($5 + 4 | 0) + Math_imul(HEAP32[($4 + 4 | 0) >> 2] | 0, 208) | 0) + 116 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(85943 | 0, 80072 | 0, 180 | 0, 67601 | 0); + wasm2js_trap(); + } + HEAP32[($5 + 844 | 0) >> 2] = (HEAP32[($5 + 844 | 0) >> 2] | 0) + -1 | 0; + label$3 : { + if (!((HEAP32[(0 + 115364 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + if (HEAP32[($5 + 844 | 0) >> 2] | 0) { + break label$3 + } + $110 = HEAP32[(0 + 115364 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = $5; + FUNCTION_TABLE[$110 | 0]($4); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function _GLOBAL__sub_I_btPersistentManifold_cpp() { + __cxx_global_var_init_63(); + return; + } + + function __cxx_global_var_init_64() { + btInfMaskConverter__btInfMaskConverter_28int_29(115368 | 0, 2139095040 | 0) | 0; + return; + } + + function btTriangleRaycastCallback__btTriangleRaycastCallback_28btVector3_20const__2c_20btVector3_20const__2c_20unsigned_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0, $7 = 0, $12 = 0, $15 = 0, $20 = 0, $23 = 0, $61 = 0, $71 = 0, $80 = 0, $90 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btTriangleCallback__btTriangleCallback_28_29($7 | 0) | 0; + HEAP32[$7 >> 2] = 101800 + 8 | 0; + $12 = $7 + 4 | 0; + i64toi32_i32$2 = HEAP32[($6 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $61 = i64toi32_i32$0; + i64toi32_i32$0 = $12; + HEAP32[i64toi32_i32$0 >> 2] = $61; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $15 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $15 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $71 = i64toi32_i32$1; + i64toi32_i32$1 = $12 + $15 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $71; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $20 = $7 + 20 | 0; + i64toi32_i32$2 = HEAP32[($6 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $80 = i64toi32_i32$0; + i64toi32_i32$0 = $20; + HEAP32[i64toi32_i32$0 >> 2] = $80; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $23 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $23 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $90 = i64toi32_i32$1; + i64toi32_i32$1 = $20 + $23 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $90; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($7 + 36 | 0) >> 2] = HEAP32[$6 >> 2] | 0; + HEAPF32[($7 + 40 | 0) >> 2] = Math_fround(1.0); + __stack_pointer = $6 + 16 | 0; + return $7 | 0; + } + + function btTriangleRaycastCallback__processTriangle_28btVector3__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $7 = 0, $23 = 0, $40 = 0, $61 = 0, $149 = 0, $168 = 0, $189 = 0, $219 = 0, $240 = 0, $272 = 0, $395 = 0, $399 = 0, $432 = 0, $436 = 0, $473 = 0, $477 = 0, $668 = 0, $672 = 0, $707 = 0, $711 = 0, $748 = 0, $752 = 0, $808 = 0, $812 = 0, $849 = 0, $853 = 0, $911 = 0, $915 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 384 | 0; + __stack_pointer = $6; + HEAP32[($6 + 380 | 0) >> 2] = $0; + HEAP32[($6 + 376 | 0) >> 2] = $1; + HEAP32[($6 + 372 | 0) >> 2] = $2; + HEAP32[($6 + 368 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 380 | 0) >> 2] | 0; + HEAP32[($6 + 364 | 0) >> 2] = HEAP32[($6 + 376 | 0) >> 2] | 0; + HEAP32[($6 + 360 | 0) >> 2] = (HEAP32[($6 + 376 | 0) >> 2] | 0) + 16 | 0; + HEAP32[($6 + 356 | 0) >> 2] = (HEAP32[($6 + 376 | 0) >> 2] | 0) + 32 | 0; + btVector3__btVector3_28_29($6 + 336 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 320 | 0 | 0, HEAP32[($6 + 360 | 0) >> 2] | 0 | 0, HEAP32[($6 + 364 | 0) >> 2] | 0 | 0); + $23 = 8; + i64toi32_i32$2 = ($6 + 320 | 0) + $23 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $395 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 336 | 0) + $23 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $395; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 320 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 324 | 0) >> 2] | 0; + $399 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 336 | 0) >> 2] = $399; + HEAP32[($6 + 340 | 0) >> 2] = i64toi32_i32$0; + btVector3__btVector3_28_29($6 + 304 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 288 | 0 | 0, HEAP32[($6 + 356 | 0) >> 2] | 0 | 0, HEAP32[($6 + 364 | 0) >> 2] | 0 | 0); + $40 = 8; + i64toi32_i32$2 = ($6 + 288 | 0) + $40 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $432 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 304 | 0) + $40 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $432; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 288 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 292 | 0) >> 2] | 0; + $436 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 304 | 0) >> 2] = $436; + HEAP32[($6 + 308 | 0) >> 2] = i64toi32_i32$0; + btVector3__btVector3_28_29($6 + 272 | 0 | 0) | 0; + btVector3__cross_28btVector3_20const__29_20const($6 + 256 | 0 | 0, $6 + 336 | 0 | 0, $6 + 304 | 0 | 0); + $61 = 8; + i64toi32_i32$2 = ($6 + 256 | 0) + $61 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $473 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 272 | 0) + $61 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $473; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 256 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 260 | 0) >> 2] | 0; + $477 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 272 | 0) >> 2] = $477; + HEAP32[($6 + 276 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($6 + 364 | 0) >> 2] | 0 | 0, $6 + 272 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 252 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($6 + 272 | 0 | 0, $7 + 4 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 248 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($6 + 248 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($6 + 248 | 0) >> 2]) - Math_fround(HEAPF32[($6 + 252 | 0) >> 2])); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($6 + 272 | 0 | 0, $7 + 20 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 244 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($6 + 244 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($6 + 244 | 0) >> 2]) - Math_fround(HEAPF32[($6 + 252 | 0) >> 2])); + label$1 : { + label$2 : { + if (!(Math_fround(Math_fround(HEAPF32[($6 + 248 | 0) >> 2]) * Math_fround(HEAPF32[($6 + 244 | 0) >> 2])) >= Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + break label$1; + } + label$3 : { + if (!((HEAP32[($7 + 36 | 0) >> 2] | 0) & 1 | 0)) { + break label$3 + } + if (!(Math_fround(HEAPF32[($6 + 248 | 0) >> 2]) <= Math_fround(0 | 0) & 1 | 0)) { + break label$3 + } + break label$1; + } + HEAPF32[($6 + 240 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($6 + 248 | 0) >> 2]) - Math_fround(HEAPF32[($6 + 244 | 0) >> 2])); + HEAPF32[($6 + 236 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($6 + 248 | 0) >> 2]) / Math_fround(HEAPF32[($6 + 240 | 0) >> 2])); + if (!(Math_fround(HEAPF32[($6 + 236 | 0) >> 2]) < Math_fround(HEAPF32[($7 + 40 | 0) >> 2]) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($6 + 272 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 232 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($6 + 232 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($6 + 232 | 0) >> 2]) * Math_fround(-9.999999747378752e-05)); + btVector3__btVector3_28_29($6 + 216 | 0 | 0) | 0; + btVector3__setInterpolate3_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($6 + 216 | 0 | 0, $7 + 4 | 0 | 0, $7 + 20 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 236 | 0) >> 2]))); + btVector3__btVector3_28_29($6 + 200 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 184 | 0 | 0, HEAP32[($6 + 364 | 0) >> 2] | 0 | 0, $6 + 216 | 0 | 0); + $149 = 8; + i64toi32_i32$2 = ($6 + 184 | 0) + $149 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $668 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 200 | 0) + $149 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $668; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 184 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 188 | 0) >> 2] | 0; + $672 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 200 | 0) >> 2] = $672; + HEAP32[($6 + 204 | 0) >> 2] = i64toi32_i32$0; + btVector3__btVector3_28_29($6 + 168 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 152 | 0 | 0, HEAP32[($6 + 360 | 0) >> 2] | 0 | 0, $6 + 216 | 0 | 0); + $168 = 8; + i64toi32_i32$2 = ($6 + 152 | 0) + $168 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $707 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 168 | 0) + $168 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $707; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 152 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 156 | 0) >> 2] | 0; + $711 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 168 | 0) >> 2] = $711; + HEAP32[($6 + 172 | 0) >> 2] = i64toi32_i32$0; + btVector3__btVector3_28_29($6 + 136 | 0 | 0) | 0; + btVector3__cross_28btVector3_20const__29_20const($6 + 120 | 0 | 0, $6 + 200 | 0 | 0, $6 + 168 | 0 | 0); + $189 = 8; + i64toi32_i32$2 = ($6 + 120 | 0) + $189 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $748 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 136 | 0) + $189 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $748; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 120 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 124 | 0) >> 2] | 0; + $752 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 136 | 0) >> 2] = $752; + HEAP32[($6 + 140 | 0) >> 2] = i64toi32_i32$0; + label$4 : { + if (!(Math_fround(btVector3__dot_28btVector3_20const__29_20const($6 + 136 | 0 | 0, $6 + 272 | 0 | 0)) >= Math_fround(HEAPF32[($6 + 232 | 0) >> 2]) & 1 | 0)) { + break label$4 + } + btVector3__btVector3_28_29($6 + 104 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 88 | 0 | 0, HEAP32[($6 + 356 | 0) >> 2] | 0 | 0, $6 + 216 | 0 | 0); + $219 = 8; + i64toi32_i32$2 = ($6 + 88 | 0) + $219 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $808 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 104 | 0) + $219 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $808; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 88 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 92 | 0) >> 2] | 0; + $812 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 104 | 0) >> 2] = $812; + HEAP32[($6 + 108 | 0) >> 2] = i64toi32_i32$0; + btVector3__btVector3_28_29($6 + 72 | 0 | 0) | 0; + btVector3__cross_28btVector3_20const__29_20const($6 + 56 | 0 | 0, $6 + 168 | 0 | 0, $6 + 104 | 0 | 0); + $240 = 8; + i64toi32_i32$2 = ($6 + 56 | 0) + $240 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $849 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 72 | 0) + $240 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $849; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 56 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 60 | 0) >> 2] | 0; + $853 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 72 | 0) >> 2] = $853; + HEAP32[($6 + 76 | 0) >> 2] = i64toi32_i32$0; + label$5 : { + if (!(Math_fround(btVector3__dot_28btVector3_20const__29_20const($6 + 72 | 0 | 0, $6 + 272 | 0 | 0)) >= Math_fround(HEAPF32[($6 + 232 | 0) >> 2]) & 1 | 0)) { + break label$5 + } + btVector3__btVector3_28_29($6 + 40 | 0 | 0) | 0; + btVector3__cross_28btVector3_20const__29_20const($6 + 24 | 0 | 0, $6 + 104 | 0 | 0, $6 + 200 | 0 | 0); + $272 = 8; + i64toi32_i32$2 = ($6 + 24 | 0) + $272 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $911 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 40 | 0) + $272 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $911; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 24 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 28 | 0) >> 2] | 0; + $915 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 40 | 0) >> 2] = $915; + HEAP32[($6 + 44 | 0) >> 2] = i64toi32_i32$0; + label$6 : { + if (!(Math_fround(btVector3__dot_28btVector3_20const__29_20const($6 + 40 | 0 | 0, $6 + 272 | 0 | 0)) >= Math_fround(HEAPF32[($6 + 232 | 0) >> 2]) & 1 | 0)) { + break label$6 + } + btVector3__normalize_28_29($6 + 272 | 0 | 0) | 0; + label$7 : { + label$8 : { + if ((HEAP32[($7 + 36 | 0) >> 2] | 0) & 2 | 0) { + break label$8 + } + if (!(Math_fround(HEAPF32[($6 + 248 | 0) >> 2]) <= Math_fround(0 | 0) & 1 | 0)) { + break label$8 + } + operator__28btVector3_20const__29($6 + 8 | 0 | 0, $6 + 272 | 0 | 0); + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($7, $6 + 8 | 0, Math_fround(HEAPF32[($6 + 236 | 0) >> 2]), HEAP32[($6 + 372 | 0) >> 2] | 0, HEAP32[($6 + 368 | 0) >> 2] | 0))), HEAPF32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_f32$0; + break label$7; + } + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($7, $6 + 272 | 0, Math_fround(HEAPF32[($6 + 236 | 0) >> 2]), HEAP32[($6 + 372 | 0) >> 2] | 0, HEAP32[($6 + 368 | 0) >> 2] | 0))), HEAPF32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_f32$0; + } + } + } + } + } + __stack_pointer = $6 + 384 | 0; + return; + } + + function btTriangleConvexcastCallback__btTriangleConvexcastCallback_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20float_29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = Math_fround($5); + var $8 = 0, $9 = 0; + $8 = __stack_pointer - 32 | 0; + __stack_pointer = $8; + HEAP32[($8 + 28 | 0) >> 2] = $0; + HEAP32[($8 + 24 | 0) >> 2] = $1; + HEAP32[($8 + 20 | 0) >> 2] = $2; + HEAP32[($8 + 16 | 0) >> 2] = $3; + HEAP32[($8 + 12 | 0) >> 2] = $4; + HEAPF32[($8 + 8 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 28 | 0) >> 2] | 0; + btTriangleCallback__btTriangleCallback_28_29($9 | 0) | 0; + HEAP32[$9 >> 2] = 101824 + 8 | 0; + btTransform__btTransform_28_29($9 + 8 | 0 | 0) | 0; + btTransform__btTransform_28_29($9 + 72 | 0 | 0) | 0; + btTransform__btTransform_28_29($9 + 136 | 0 | 0) | 0; + HEAP32[($9 + 4 | 0) >> 2] = HEAP32[($8 + 24 | 0) >> 2] | 0; + btTransform__operator__28btTransform_20const__29($9 + 8 | 0 | 0, HEAP32[($8 + 20 | 0) >> 2] | 0 | 0) | 0; + btTransform__operator__28btTransform_20const__29($9 + 72 | 0 | 0, HEAP32[($8 + 16 | 0) >> 2] | 0 | 0) | 0; + btTransform__operator__28btTransform_20const__29($9 + 136 | 0 | 0, HEAP32[($8 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($9 + 200 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($9 + 204 | 0) >> 2] = Math_fround(HEAPF32[($8 + 8 | 0) >> 2]); + HEAPF32[($9 + 208 | 0) >> 2] = Math_fround(0 | 0); + __stack_pointer = $8 + 32 | 0; + return $9 | 0; + } + + function btTriangleConvexcastCallback__processTriangle_28btVector3__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 704 | 0; + __stack_pointer = $6; + HEAP32[($6 + 700 | 0) >> 2] = $0; + HEAP32[($6 + 696 | 0) >> 2] = $1; + HEAP32[($6 + 692 | 0) >> 2] = $2; + HEAP32[($6 + 688 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 700 | 0) >> 2] | 0; + btTriangleShape__btTriangleShape_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($6 + 576 | 0 | 0, HEAP32[($6 + 696 | 0) >> 2] | 0 | 0, (HEAP32[($6 + 696 | 0) >> 2] | 0) + 16 | 0 | 0, (HEAP32[($6 + 696 | 0) >> 2] | 0) + 32 | 0 | 0) | 0; + btConvexInternalShape__setMargin_28float_29($6 + 576 | 0 | 0, Math_fround(Math_fround(HEAPF32[($7 + 204 | 0) >> 2]))); + btVoronoiSimplexSolver__btVoronoiSimplexSolver_28_29($6 + 216 | 0 | 0) | 0; + btGjkEpaPenetrationDepthSolver__btGjkEpaPenetrationDepthSolver_28_29($6 + 212 | 0 | 0) | 0; + btContinuousConvexCollision__btContinuousConvexCollision_28btConvexShape_20const__2c_20btConvexShape_20const__2c_20btVoronoiSimplexSolver__2c_20btConvexPenetrationDepthSolver__29($6 + 188 | 0 | 0, HEAP32[($7 + 4 | 0) >> 2] | 0 | 0, $6 + 576 | 0 | 0, $6 + 216 | 0 | 0, $6 + 212 | 0 | 0) | 0; + btConvexCast__CastResult__CastResult_28_29($6 + 12 | 0 | 0) | 0; + HEAPF32[($6 + 176 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($6 + 184 | 0) >> 2] = Math_fround(HEAPF32[($7 + 208 | 0) >> 2]); + label$1 : { + if (!((btContinuousConvexCollision__calcTimeOfImpact_28btTransform_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btConvexCast__CastResult__29($6 + 188 | 0 | 0, $7 + 8 | 0 | 0, $7 + 72 | 0 | 0, $7 + 136 | 0 | 0, $7 + 136 | 0 | 0, $6 + 12 | 0 | 0) | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!(Math_fround(btVector3__length2_28_29_20const(($6 + 12 | 0) + 132 | 0 | 0)) > Math_fround(9.999999747378752e-05) & 1 | 0)) { + break label$2 + } + label$3 : { + if (!(Math_fround(HEAPF32[($6 + 176 | 0) >> 2]) < Math_fround(HEAPF32[($7 + 200 | 0) >> 2]) & 1 | 0)) { + break label$3 + } + btVector3__normalize_28_29(($6 + 12 | 0) + 132 | 0 | 0) | 0; + Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($7, ($6 + 12 | 0) + 132 | 0, ($6 + 12 | 0) + 148 | 0, Math_fround(HEAPF32[($6 + 176 | 0) >> 2]), HEAP32[($6 + 692 | 0) >> 2] | 0, HEAP32[($6 + 688 | 0) >> 2] | 0)); + } + } + } + btConvexCast__CastResult___CastResult_28_29($6 + 12 | 0 | 0) | 0; + btContinuousConvexCollision___btContinuousConvexCollision_28_29($6 + 188 | 0 | 0) | 0; + btGjkEpaPenetrationDepthSolver___btGjkEpaPenetrationDepthSolver_28_29($6 + 212 | 0 | 0) | 0; + btTriangleShape___btTriangleShape_28_29($6 + 576 | 0 | 0) | 0; + __stack_pointer = $6 + 704 | 0; + return; + } + + function btTriangleRaycastCallback___btTriangleRaycastCallback_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btTriangleConvexcastCallback___btTriangleConvexcastCallback_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function _GLOBAL__sub_I_btRaycastCallback_cpp() { + __cxx_global_var_init_64(); + return; + } + + function __cxx_global_var_init_65() { + btInfMaskConverter__btInfMaskConverter_28int_29(115372 | 0, 2139095040 | 0) | 0; + return; + } + + function btSubsimplexConvexCast__btSubsimplexConvexCast_28btConvexShape_20const__2c_20btConvexShape_20const__2c_20btVoronoiSimplexSolver__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btConvexCast__btConvexCast_28_29($7 | 0) | 0; + HEAP32[$7 >> 2] = 101932 + 8 | 0; + HEAP32[($7 + 4 | 0) >> 2] = HEAP32[$6 >> 2] | 0; + HEAP32[($7 + 8 | 0) >> 2] = HEAP32[($6 + 8 | 0) >> 2] | 0; + HEAP32[($7 + 12 | 0) >> 2] = HEAP32[($6 + 4 | 0) >> 2] | 0; + __stack_pointer = $6 + 16 | 0; + return $7 | 0; + } + + function btSubsimplexConvexCast__calcTimeOfImpact_28btTransform_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btConvexCast__CastResult__29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $9 = 0, $24 = 0, $40 = 0, $72 = 0, $102 = 0, $134 = 0, $185 = 0, $186 = 0, $196 = 0, $230 = 0, $239 = 0, $267 = 0, $285 = 0, $362 = 0, $371 = 0, $428 = 0, $430 = 0, $456 = 0, $458 = 0, $495 = 0, $497 = 0, $575 = 0, $579 = 0, $610 = 0, $614 = 0, $71 = 0, $101 = 0, $790 = 0, $794 = 0, $970 = 0, $974 = 0, $1040 = 0, $1044 = 0, $1075 = 0, $1079 = 0, $1232 = 0, $1236 = 0, $1252 = 0, $1256 = 0, $1352 = 0, $1365 = 0, $1407 = 0, $1420 = 0, $1485 = 0, $1498 = 0, $508 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $8 = __stack_pointer - 720 | 0; + __stack_pointer = $8; + HEAP32[($8 + 712 | 0) >> 2] = $0; + HEAP32[($8 + 708 | 0) >> 2] = $1; + HEAP32[($8 + 704 | 0) >> 2] = $2; + HEAP32[($8 + 700 | 0) >> 2] = $3; + HEAP32[($8 + 696 | 0) >> 2] = $4; + HEAP32[($8 + 692 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 712 | 0) >> 2] | 0; + btVoronoiSimplexSolver__reset_28_29(HEAP32[($9 + 4 | 0) >> 2] | 0 | 0); + btVector3__btVector3_28_29($8 + 672 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 656 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 640 | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($8 + 704 | 0) >> 2] | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($8 + 708 | 0) >> 2] | 0 | 0) | 0 | 0); + $24 = 8; + i64toi32_i32$2 = ($8 + 640 | 0) + $24 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $575 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 672 | 0) + $24 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $575; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 640 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 644 | 0) >> 2] | 0; + $579 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 672 | 0) >> 2] = $579; + HEAP32[($8 + 676 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 624 | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($8 + 696 | 0) >> 2] | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($8 + 700 | 0) >> 2] | 0 | 0) | 0 | 0); + $40 = 8; + i64toi32_i32$2 = ($8 + 624 | 0) + $40 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $610 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 656 | 0) + $40 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $610; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 624 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 628 | 0) >> 2] | 0; + $614 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 656 | 0) >> 2] = $614; + HEAP32[($8 + 660 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($8 + 620 | 0) >> 2] = Math_fround(0 | 0); + btTransform__btTransform_28btTransform_20const__29($8 + 556 | 0 | 0, HEAP32[($8 + 708 | 0) >> 2] | 0 | 0) | 0; + btTransform__btTransform_28btTransform_20const__29($8 + 492 | 0 | 0, HEAP32[($8 + 700 | 0) >> 2] | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 476 | 0 | 0, $8 + 672 | 0 | 0, $8 + 656 | 0 | 0); + btVector3__btVector3_28_29($8 + 456 | 0 | 0) | 0; + $71 = HEAP32[($8 + 708 | 0) >> 2] | 0; + $72 = HEAP32[($9 + 8 | 0) >> 2] | 0; + operator__28btVector3_20const__29($8 + 392 | 0 | 0, $8 + 476 | 0 | 0); + operator__28btVector3_20const__2c_20btMatrix3x3_20const__29($8 + 408 | 0 | 0, $8 + 392 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 708 | 0) >> 2] | 0 | 0) | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$72 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($8 + 424 | 0, $72, $8 + 408 | 0); + btTransform__operator_28_29_28btVector3_20const__29_20const($8 + 440 | 0 | 0, $71 | 0, $8 + 424 | 0 | 0); + $101 = HEAP32[($8 + 700 | 0) >> 2] | 0; + $102 = HEAP32[($9 + 12 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btMatrix3x3_20const__29($8 + 344 | 0 | 0, $8 + 476 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 700 | 0) >> 2] | 0 | 0) | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$102 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($8 + 360 | 0, $102, $8 + 344 | 0); + btTransform__operator_28_29_28btVector3_20const__29_20const($8 + 376 | 0 | 0, $101 | 0, $8 + 360 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 328 | 0 | 0, $8 + 440 | 0 | 0, $8 + 376 | 0 | 0); + $134 = 8; + i64toi32_i32$2 = ($8 + 328 | 0) + $134 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $790 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 456 | 0) + $134 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $790; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 328 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 332 | 0) >> 2] | 0; + $794 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 456 | 0) >> 2] = $794; + HEAP32[($8 + 460 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($8 + 324 | 0) >> 2] = 32; + btVector3__btVector3_28_29($8 + 304 | 0 | 0) | 0; + HEAPF32[($8 + 300 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 296 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 292 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 304 | 0 | 0, $8 + 300 | 0 | 0, $8 + 296 | 0 | 0, $8 + 292 | 0 | 0); + btVector3__btVector3_28_29($8 + 276 | 0 | 0) | 0; + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($8 + 456 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 272 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($8 + 268 | 0) >> 2] = Math_fround(9.999999747378752e-05); + btVector3__btVector3_28_29($8 + 248 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 232 | 0 | 0) | 0; + label$1 : { + label$2 : while (1) { + $185 = 0; + label$3 : { + if (!(Math_fround(HEAPF32[($8 + 272 | 0) >> 2]) > Math_fround(HEAPF32[($8 + 268 | 0) >> 2]) & 1 | 0)) { + break label$3 + } + $186 = HEAP32[($8 + 324 | 0) >> 2] | 0; + HEAP32[($8 + 324 | 0) >> 2] = $186 + -1 | 0; + $185 = ($186 | 0) != (0 | 0); + } + label$4 : { + if (!($185 & 1 | 0)) { + break label$4 + } + $196 = HEAP32[($9 + 8 | 0) >> 2] | 0; + operator__28btVector3_20const__29($8 + 164 | 0 | 0, $8 + 456 | 0 | 0); + operator__28btVector3_20const__2c_20btMatrix3x3_20const__29($8 + 180 | 0 | 0, $8 + 164 | 0 | 0, btTransform__getBasis_28_29($8 + 556 | 0 | 0) | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$196 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($8 + 196 | 0, $196, $8 + 180 | 0); + btTransform__operator_28_29_28btVector3_20const__29_20const($8 + 212 | 0 | 0, $8 + 556 | 0 | 0, $8 + 196 | 0 | 0); + $230 = 8; + i64toi32_i32$2 = ($8 + 212 | 0) + $230 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $970 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 440 | 0) + $230 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $970; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 212 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 216 | 0) >> 2] | 0; + $974 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 440 | 0) >> 2] = $974; + HEAP32[($8 + 444 | 0) >> 2] = i64toi32_i32$0; + $239 = HEAP32[($9 + 12 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btMatrix3x3_20const__29($8 + 116 | 0 | 0, $8 + 456 | 0 | 0, btTransform__getBasis_28_29($8 + 492 | 0 | 0) | 0 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$239 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($8 + 132 | 0, $239, $8 + 116 | 0); + btTransform__operator_28_29_28btVector3_20const__29_20const($8 + 148 | 0 | 0, $8 + 492 | 0 | 0, $8 + 132 | 0 | 0); + $267 = 8; + i64toi32_i32$2 = ($8 + 148 | 0) + $267 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1040 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 376 | 0) + $267 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1040; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 148 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 152 | 0) >> 2] | 0; + $1044 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 376 | 0) >> 2] = $1044; + HEAP32[($8 + 380 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 100 | 0 | 0, $8 + 440 | 0 | 0, $8 + 376 | 0 | 0); + $285 = 8; + i64toi32_i32$2 = ($8 + 100 | 0) + $285 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1075 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 248 | 0) + $285 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1075; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 100 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 104 | 0) >> 2] | 0; + $1079 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 248 | 0) >> 2] = $1079; + HEAP32[($8 + 252 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 456 | 0 | 0, $8 + 248 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 96 | 0) >> 2] = wasm2js_f32$0; + label$5 : { + if (!(Math_fround(HEAPF32[($8 + 620 | 0) >> 2]) > Math_fround(1.0) & 1 | 0)) { + break label$5 + } + HEAP8[($8 + 719 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + label$6 : { + if (!(Math_fround(HEAPF32[($8 + 96 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$6 + } + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 456 | 0 | 0, $8 + 476 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 228 | 0) >> 2] = wasm2js_f32$0; + label$7 : { + if (!(Math_fround(HEAPF32[($8 + 228 | 0) >> 2]) >= Math_fround(-1.4210854715202004e-14) & 1 | 0)) { + break label$7 + } + HEAP8[($8 + 719 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + HEAPF32[($8 + 620 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($8 + 620 | 0) >> 2]) - Math_fround(Math_fround(HEAPF32[($8 + 96 | 0) >> 2]) / Math_fround(HEAPF32[($8 + 228 | 0) >> 2]))); + btVector3__setInterpolate3_28btVector3_20const__2c_20btVector3_20const__2c_20float_29(btTransform__getOrigin_28_29($8 + 556 | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($8 + 708 | 0) >> 2] | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($8 + 704 | 0) >> 2] | 0 | 0) | 0 | 0, Math_fround(Math_fround(HEAPF32[($8 + 620 | 0) >> 2]))); + btVector3__setInterpolate3_28btVector3_20const__2c_20btVector3_20const__2c_20float_29(btTransform__getOrigin_28_29($8 + 492 | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($8 + 700 | 0) >> 2] | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($8 + 696 | 0) >> 2] | 0 | 0) | 0 | 0, Math_fround(Math_fround(HEAPF32[($8 + 620 | 0) >> 2]))); + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 80 | 0 | 0, $8 + 440 | 0 | 0, $8 + 376 | 0 | 0); + $362 = 8; + i64toi32_i32$2 = ($8 + 80 | 0) + $362 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1232 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 248 | 0) + $362 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1232; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 80 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 84 | 0) >> 2] | 0; + $1236 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 248 | 0) >> 2] = $1236; + HEAP32[($8 + 252 | 0) >> 2] = i64toi32_i32$0; + $371 = 8; + i64toi32_i32$2 = ($8 + 456 | 0) + $371 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1252 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 304 | 0) + $371 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1252; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 456 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 460 | 0) >> 2] | 0; + $1256 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 304 | 0) >> 2] = $1256; + HEAP32[($8 + 308 | 0) >> 2] = i64toi32_i32$0; + } + label$8 : { + if ((btVoronoiSimplexSolver__inSimplex_28btVector3_20const__29(HEAP32[($9 + 4 | 0) >> 2] | 0 | 0, $8 + 248 | 0 | 0) | 0) & 1 | 0) { + break label$8 + } + btVoronoiSimplexSolver__addVertex_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29(HEAP32[($9 + 4 | 0) >> 2] | 0 | 0, $8 + 248 | 0 | 0, $8 + 440 | 0 | 0, $8 + 376 | 0 | 0); + } + label$9 : { + label$10 : { + if (!((btVoronoiSimplexSolver__closest_28btVector3__29(HEAP32[($9 + 4 | 0) >> 2] | 0 | 0, $8 + 456 | 0 | 0) | 0) & 1 | 0)) { + break label$10 + } + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($8 + 456 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 272 | 0) >> 2] = wasm2js_f32$0; + break label$9; + } + HEAPF32[($8 + 272 | 0) >> 2] = Math_fround(0 | 0); + } + continue label$2; + } + break label$2; + }; + HEAPF32[((HEAP32[($8 + 692 | 0) >> 2] | 0) + 164 | 0) >> 2] = Math_fround(HEAPF32[($8 + 620 | 0) >> 2]); + label$11 : { + label$12 : { + if (!(Math_fround(btVector3__length2_28_29_20const($8 + 304 | 0 | 0)) >= Math_fround(1.4210854715202004e-14) & 1 | 0)) { + break label$12 + } + btVector3__normalized_28_29_20const($8 + 64 | 0 | 0, $8 + 304 | 0 | 0); + $428 = (HEAP32[($8 + 692 | 0) >> 2] | 0) + 132 | 0; + i64toi32_i32$2 = $8; + i64toi32_i32$0 = HEAP32[($8 + 64 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($8 + 68 | 0) >> 2] | 0; + $1352 = i64toi32_i32$0; + i64toi32_i32$0 = $428; + HEAP32[i64toi32_i32$0 >> 2] = $1352; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $430 = 8; + i64toi32_i32$2 = ($8 + 64 | 0) + $430 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1365 = i64toi32_i32$1; + i64toi32_i32$1 = $428 + $430 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1365; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$11; + } + HEAPF32[($8 + 44 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 40 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 36 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 48 | 0 | 0, $8 + 44 | 0 | 0, $8 + 40 | 0 | 0, $8 + 36 | 0 | 0) | 0; + $456 = (HEAP32[($8 + 692 | 0) >> 2] | 0) + 132 | 0; + i64toi32_i32$2 = $8; + i64toi32_i32$0 = HEAP32[($8 + 48 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($8 + 52 | 0) >> 2] | 0; + $1407 = i64toi32_i32$0; + i64toi32_i32$0 = $456; + HEAP32[i64toi32_i32$0 >> 2] = $1407; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $458 = 8; + i64toi32_i32$2 = ($8 + 48 | 0) + $458 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1420 = i64toi32_i32$1; + i64toi32_i32$1 = $456 + $458 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1420; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + label$13 : { + if (!(Math_fround(btVector3__dot_28btVector3_20const__29_20const((HEAP32[($8 + 692 | 0) >> 2] | 0) + 132 | 0 | 0, $8 + 476 | 0 | 0)) >= Math_fround(-Math_fround(HEAPF32[((HEAP32[($8 + 692 | 0) >> 2] | 0) + 172 | 0) >> 2])) & 1 | 0)) { + break label$13 + } + HEAP8[($8 + 719 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + btVector3__btVector3_28_29($8 + 20 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 4 | 0 | 0) | 0; + btVoronoiSimplexSolver__compute_points_28btVector3__2c_20btVector3__29(HEAP32[($9 + 4 | 0) >> 2] | 0 | 0, $8 + 20 | 0 | 0, $8 + 4 | 0 | 0); + $495 = (HEAP32[($8 + 692 | 0) >> 2] | 0) + 148 | 0; + i64toi32_i32$2 = $8; + i64toi32_i32$0 = HEAP32[($8 + 4 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($8 + 8 | 0) >> 2] | 0; + $1485 = i64toi32_i32$0; + i64toi32_i32$0 = $495; + HEAP32[i64toi32_i32$0 >> 2] = $1485; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $497 = 8; + i64toi32_i32$2 = ($8 + 4 | 0) + $497 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1498 = i64toi32_i32$1; + i64toi32_i32$1 = $495 + $497 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1498; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP8[($8 + 719 | 0) >> 0] = 1 & 1 | 0; + } + $508 = (HEAPU8[($8 + 719 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $8 + 720 | 0; + return $508 | 0; + } + + function btSubsimplexConvexCast___btSubsimplexConvexCast_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btSubsimplexConvexCast___btSubsimplexConvexCast_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function _GLOBAL__sub_I_btSubSimplexConvexCast_cpp() { + __cxx_global_var_init_65(); + return; + } + + function __cxx_global_var_init_66() { + btInfMaskConverter__btInfMaskConverter_28int_29(115376 | 0, 2139095040 | 0) | 0; + return; + } + + function btVoronoiSimplexSolver__removeVertex_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5 = 0, $4 = 0, $31 = 0, $33 = 0, $48 = 0, $50 = 0, $65 = 0, $67 = 0, $131 = 0, $141 = 0, $167 = 0, $177 = 0, $203 = 0, $213 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[$5 >> 2] | 0 | 0) > (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85771 | 0, 72458 | 0, 38 | 0, 66276 | 0); + wasm2js_trap(); + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + -1 | 0; + $31 = ($5 + 4 | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = ($5 + 4 | 0) + ((HEAP32[$5 >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $131 = i64toi32_i32$0; + i64toi32_i32$0 = $31; + HEAP32[i64toi32_i32$0 >> 2] = $131; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $33 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $33 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $141 = i64toi32_i32$1; + i64toi32_i32$1 = $31 + $33 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $141; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $48 = ($5 + 84 | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = ($5 + 84 | 0) + ((HEAP32[$5 >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $167 = i64toi32_i32$0; + i64toi32_i32$0 = $48; + HEAP32[i64toi32_i32$0 >> 2] = $167; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $50 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $50 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $177 = i64toi32_i32$1; + i64toi32_i32$1 = $48 + $50 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $177; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $65 = ($5 + 164 | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = ($5 + 164 | 0) + ((HEAP32[$5 >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $203 = i64toi32_i32$0; + i64toi32_i32$0 = $65; + HEAP32[i64toi32_i32$0 >> 2] = $203; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $67 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $67 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $213 = i64toi32_i32$1; + i64toi32_i32$1 = $65 + $67 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $213; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btVoronoiSimplexSolver__reduceVertices_28btUsageBitfield_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $63 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btVoronoiSimplexSolver__numVertices_28_29_20const($5 | 0) | 0 | 0) >= (4 | 0) & 1 | 0)) { + break label$1 + } + if ((((((HEAPU8[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 0] | 0) >>> 3 | 0) & 1 | 0) & 255 | 0) & 65535 | 0 | 0) != (0 & 65535 | 0 | 0) & 1 | 0) { + break label$1 + } + btVoronoiSimplexSolver__removeVertex_28int_29($5 | 0, 3 | 0); + } + label$2 : { + if (!((btVoronoiSimplexSolver__numVertices_28_29_20const($5 | 0) | 0 | 0) >= (3 | 0) & 1 | 0)) { + break label$2 + } + if ((((((HEAPU8[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 0] | 0) >>> 2 | 0) & 1 | 0) & 255 | 0) & 65535 | 0 | 0) != (0 & 65535 | 0 | 0) & 1 | 0) { + break label$2 + } + btVoronoiSimplexSolver__removeVertex_28int_29($5 | 0, 2 | 0); + } + label$3 : { + if (!((btVoronoiSimplexSolver__numVertices_28_29_20const($5 | 0) | 0 | 0) >= (2 | 0) & 1 | 0)) { + break label$3 + } + $63 = 1; + if ((((((HEAPU8[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 0] | 0) >>> $63 | 0) & $63 | 0) & 255 | 0) & 65535 | 0 | 0) != (0 & 65535 | 0 | 0) & 1 | 0) { + break label$3 + } + btVoronoiSimplexSolver__removeVertex_28int_29($5 | 0, 1 | 0); + } + label$4 : { + if (!((btVoronoiSimplexSolver__numVertices_28_29_20const($5 | 0) | 0 | 0) >= (1 | 0) & 1 | 0)) { + break label$4 + } + if (((((HEAPU8[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 0] | 0) & 1 | 0) & 255 | 0) & 65535 | 0 | 0) != (0 & 65535 | 0 | 0) & 1 | 0) { + break label$4 + } + btVoronoiSimplexSolver__removeVertex_28int_29($5 | 0, 0 | 0); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btVoronoiSimplexSolver__numVertices_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[(HEAP32[($3 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0; + } + + function btVoronoiSimplexSolver__reset_28_29($0) { + $0 = $0 | 0; + var $3 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, i64toi32_i32$2 = 0, $22 = 0, $24 = 0, $79 = 0, $92 = 0; + $3 = __stack_pointer - 32 | 0; + __stack_pointer = $3; + HEAP32[($3 + 28 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 28 | 0) >> 2] | 0; + HEAP8[($4 + 312 | 0) >> 0] = 0; + HEAP32[$4 >> 2] = 0; + HEAP8[($4 + 356 | 0) >> 0] = 1; + HEAPF32[($3 + 8 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAPF32[($3 + 4 | 0) >> 2] = Math_fround(999999984306749440.0); + HEAPF32[$3 >> 2] = Math_fround(999999984306749440.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 12 | 0 | 0, $3 + 8 | 0 | 0, $3 + 4 | 0 | 0, $3 | 0) | 0; + $22 = $4 + 292 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 12 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 16 | 0) >> 2] | 0; + $79 = i64toi32_i32$0; + i64toi32_i32$0 = $22; + HEAP32[i64toi32_i32$0 >> 2] = $79; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $24 = 8; + i64toi32_i32$2 = ($3 + 12 | 0) + $24 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $92 = i64toi32_i32$1; + i64toi32_i32$1 = $22 + $24 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $92; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btSubSimplexClosestResult__reset_28_29($4 + 316 | 0 | 0); + __stack_pointer = $3 + 32 | 0; + return; + } + + function btSubSimplexClosestResult__reset_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $7 = Math_fround(0), $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 36 | 0) >> 0] = 0; + $7 = Math_fround(0 | 0); + btSubSimplexClosestResult__setBarycentricCoordinates_28float_2c_20float_2c_20float_2c_20float_29($4 | 0, Math_fround($7), Math_fround($7), Math_fround($7), Math_fround($7)); + btUsageBitfield__reset_28_29($4 + 16 | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btSubSimplexClosestResult__setBarycentricCoordinates_28float_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = Math_fround($3); + $4 = Math_fround($4); + var $7 = 0, $8 = 0; + $7 = __stack_pointer - 32 | 0; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAPF32[($7 + 24 | 0) >> 2] = $1; + HEAPF32[($7 + 20 | 0) >> 2] = $2; + HEAPF32[($7 + 16 | 0) >> 2] = $3; + HEAPF32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + HEAPF32[($8 + 20 | 0) >> 2] = Math_fround(HEAPF32[($7 + 24 | 0) >> 2]); + HEAPF32[($8 + 24 | 0) >> 2] = Math_fround(HEAPF32[($7 + 20 | 0) >> 2]); + HEAPF32[($8 + 28 | 0) >> 2] = Math_fround(HEAPF32[($7 + 16 | 0) >> 2]); + HEAPF32[($8 + 32 | 0) >> 2] = Math_fround(HEAPF32[($7 + 12 | 0) >> 2]); + return; + } + + function btVoronoiSimplexSolver__addVertex_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $7 = 0, $6 = 0, $10 = 0, $12 = 0, $23 = 0, $25 = 0, $35 = 0, $37 = 0, $47 = 0, $49 = 0, $78 = 0, $88 = 0, $107 = 0, $117 = 0, $134 = 0, $144 = 0, $161 = 0, $171 = 0; + $6 = __stack_pointer - 16 | 0; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + $10 = $7 + 292 | 0; + i64toi32_i32$2 = HEAP32[($6 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $78 = i64toi32_i32$0; + i64toi32_i32$0 = $10; + HEAP32[i64toi32_i32$0 >> 2] = $78; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $12 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $12 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $88 = i64toi32_i32$1; + i64toi32_i32$1 = $10 + $12 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $88; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP8[($7 + 356 | 0) >> 0] = 1; + $23 = ($7 + 4 | 0) + ((HEAP32[$7 >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = HEAP32[($6 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $107 = i64toi32_i32$0; + i64toi32_i32$0 = $23; + HEAP32[i64toi32_i32$0 >> 2] = $107; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $25 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $25 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $117 = i64toi32_i32$1; + i64toi32_i32$1 = $23 + $25 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $117; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $35 = ($7 + 84 | 0) + ((HEAP32[$7 >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = HEAP32[($6 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $134 = i64toi32_i32$0; + i64toi32_i32$0 = $35; + HEAP32[i64toi32_i32$0 >> 2] = $134; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $37 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $37 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $144 = i64toi32_i32$1; + i64toi32_i32$1 = $35 + $37 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $144; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $47 = ($7 + 164 | 0) + ((HEAP32[$7 >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$2 = HEAP32[$6 >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $161 = i64toi32_i32$0; + i64toi32_i32$0 = $47; + HEAP32[i64toi32_i32$0 >> 2] = $161; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $49 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $49 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $171 = i64toi32_i32$1; + i64toi32_i32$1 = $47 + $49 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $171; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[$7 >> 2] = (HEAP32[$7 >> 2] | 0) + 1 | 0; + return; + } + + function btVoronoiSimplexSolver__updateClosestVectorAndPoints_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $54 = Math_fround(0), $135 = 0, $11 = 0, $17 = 0, $19 = 0, $26 = 0, $28 = 0, $40 = 0, $42 = 0, $114 = 0, $165 = Math_fround(0), $182 = 0, $218 = 0, $220 = 0, $253 = 0, $255 = 0, $269 = 0, $271 = 0, $376 = 0, $378 = 0, $438 = 0, $440 = 0, $454 = 0, $456 = 0, $594 = 0, $596 = 0, $678 = 0, $680 = 0, $694 = 0, $696 = 0, $778 = 0, $788 = 0, $798 = 0, $808 = 0, $828 = 0, $841 = 0, $166 = 0, $1128 = 0, $1132 = 0, $1184 = 0, $1197 = 0, $1249 = 0, $1262 = 0, $1282 = 0, $1295 = 0, $1484 = 0, $1497 = 0, $1594 = 0, $1607 = 0, $1627 = 0, $1640 = 0, $1889 = 0, $1902 = 0, $2036 = 0, $2049 = 0, $2069 = 0, $2082 = 0, $736 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $3 = __stack_pointer - 800 | 0; + __stack_pointer = $3; + HEAP32[($3 + 796 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 796 | 0) >> 2] | 0; + label$1 : { + if (!((HEAPU8[($4 + 356 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + btSubSimplexClosestResult__reset_28_29($4 + 316 | 0 | 0); + HEAP8[($4 + 356 | 0) >> 0] = 0; + $11 = btVoronoiSimplexSolver__numVertices_28_29_20const($4 | 0) | 0; + label$2 : { + label$3 : { + switch ($11 | 0) { + case 0: + HEAP8[($4 + 312 | 0) >> 0] = 0; + break label$2; + case 1: + $17 = $4 + 244 | 0; + i64toi32_i32$2 = $4 + 84 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $778 = i64toi32_i32$0; + i64toi32_i32$0 = $17; + HEAP32[i64toi32_i32$0 >> 2] = $778; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $19 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $19 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $788 = i64toi32_i32$1; + i64toi32_i32$1 = $17 + $19 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $788; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $26 = $4 + 260 | 0; + i64toi32_i32$2 = $4 + 164 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $798 = i64toi32_i32$0; + i64toi32_i32$0 = $26; + HEAP32[i64toi32_i32$0 >> 2] = $798; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $28 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $28 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $808 = i64toi32_i32$1; + i64toi32_i32$1 = $26 + $28 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $808; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($3 + 780 | 0 | 0, $4 + 244 | 0 | 0, $4 + 260 | 0 | 0); + $40 = $4 + 276 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 780 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 784 | 0) >> 2] | 0; + $828 = i64toi32_i32$0; + i64toi32_i32$0 = $40; + HEAP32[i64toi32_i32$0 >> 2] = $828; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $42 = 8; + i64toi32_i32$2 = ($3 + 780 | 0) + $42 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $841 = i64toi32_i32$1; + i64toi32_i32$1 = $40 + $42 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $841; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btSubSimplexClosestResult__reset_28_29($4 + 316 | 0 | 0); + $54 = Math_fround(0 | 0); + btSubSimplexClosestResult__setBarycentricCoordinates_28float_2c_20float_2c_20float_2c_20float_29($4 + 316 | 0 | 0, Math_fround(Math_fround(1.0)), Math_fround($54), Math_fround($54), Math_fround($54)); + (wasm2js_i32$0 = $4, wasm2js_i32$1 = (btSubSimplexClosestResult__isValid_28_29($4 + 316 | 0 | 0) | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 312 | 0) >> 0] = wasm2js_i32$1; + break label$2; + case 2: + HEAP32[($3 + 776 | 0) >> 2] = $4 + 4 | 0; + HEAP32[($3 + 772 | 0) >> 2] = ($4 + 4 | 0) + 16 | 0; + btVector3__btVector3_28_29($3 + 752 | 0 | 0) | 0; + HEAPF32[($3 + 732 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 728 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 724 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 736 | 0 | 0, $3 + 732 | 0 | 0, $3 + 728 | 0 | 0, $3 + 724 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($3 + 708 | 0 | 0, $3 + 736 | 0 | 0, HEAP32[($3 + 776 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($3 + 692 | 0 | 0, HEAP32[($3 + 772 | 0) >> 2] | 0 | 0, HEAP32[($3 + 776 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($3 + 692 | 0 | 0, $3 + 708 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 688 | 0) >> 2] = wasm2js_f32$0; + label$9 : { + label$10 : { + if (!(Math_fround(HEAPF32[($3 + 688 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$10 + } + $114 = $3 + 692 | 0; + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($114 | 0, $114 | 0))), HEAPF32[(wasm2js_i32$0 + 684 | 0) >> 2] = wasm2js_f32$0; + label$11 : { + label$12 : { + if (!(Math_fround(HEAPF32[($3 + 688 | 0) >> 2]) < Math_fround(HEAPF32[($3 + 684 | 0) >> 2]) & 1 | 0)) { + break label$12 + } + HEAPF32[($3 + 688 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($3 + 688 | 0) >> 2]) / Math_fround(HEAPF32[($3 + 684 | 0) >> 2])); + operator__28float_20const__2c_20btVector3_20const__29($3 + 668 | 0 | 0, $3 + 688 | 0 | 0, $3 + 692 | 0 | 0); + btVector3__operator___28btVector3_20const__29($3 + 708 | 0 | 0, $3 + 668 | 0 | 0) | 0; + $135 = $4 + 332 | 0; + HEAP8[$135 >> 0] = HEAPU8[$135 >> 0] | 0 | 1 | 0; + HEAP8[($4 + 332 | 0) >> 0] = HEAPU8[$135 >> 0] | 0 | 2 | 0; + break label$11; + } + HEAP32[($3 + 688 | 0) >> 2] = 1065353216; + btVector3__operator___28btVector3_20const__29($3 + 708 | 0 | 0, $3 + 692 | 0 | 0) | 0; + HEAP8[($4 + 332 | 0) >> 0] = HEAPU8[($4 + 332 | 0) >> 0] | 0 | 2 | 0; + } + break label$9; + } + HEAP32[($3 + 688 | 0) >> 2] = 0; + HEAP8[($4 + 332 | 0) >> 0] = HEAPU8[($4 + 332 | 0) >> 0] | 0 | 1 | 0; + } + $165 = Math_fround(0 | 0); + btSubSimplexClosestResult__setBarycentricCoordinates_28float_2c_20float_2c_20float_2c_20float_29($4 + 316 | 0 | 0, Math_fround(Math_fround(Math_fround(1.0) - Math_fround(HEAPF32[($3 + 688 | 0) >> 2]))), Math_fround(Math_fround(HEAPF32[($3 + 688 | 0) >> 2])), Math_fround($165), Math_fround($165)); + $166 = HEAP32[($3 + 776 | 0) >> 2] | 0; + operator__28float_20const__2c_20btVector3_20const__29($3 + 636 | 0 | 0, $3 + 688 | 0 | 0, $3 + 692 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($3 + 652 | 0 | 0, $166 | 0, $3 + 636 | 0 | 0); + $182 = 8; + i64toi32_i32$2 = ($3 + 652 | 0) + $182 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1128 = i64toi32_i32$0; + i64toi32_i32$0 = ($3 + 752 | 0) + $182 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1128; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $3; + i64toi32_i32$1 = HEAP32[($3 + 652 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($3 + 656 | 0) >> 2] | 0; + $1132 = i64toi32_i32$1; + i64toi32_i32$1 = $3; + HEAP32[($3 + 752 | 0) >> 2] = $1132; + HEAP32[($3 + 756 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($3 + 588 | 0 | 0, ($4 + 84 | 0) + 16 | 0 | 0, $4 + 84 | 0 | 0); + operator__28float_20const__2c_20btVector3_20const__29($3 + 604 | 0 | 0, $3 + 688 | 0 | 0, $3 + 588 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($3 + 620 | 0 | 0, $4 + 84 | 0 | 0, $3 + 604 | 0 | 0); + $218 = $4 + 244 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 620 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 624 | 0) >> 2] | 0; + $1184 = i64toi32_i32$0; + i64toi32_i32$0 = $218; + HEAP32[i64toi32_i32$0 >> 2] = $1184; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $220 = 8; + i64toi32_i32$2 = ($3 + 620 | 0) + $220 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1197 = i64toi32_i32$1; + i64toi32_i32$1 = $218 + $220 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1197; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($3 + 540 | 0 | 0, ($4 + 164 | 0) + 16 | 0 | 0, $4 + 164 | 0 | 0); + operator__28float_20const__2c_20btVector3_20const__29($3 + 556 | 0 | 0, $3 + 688 | 0 | 0, $3 + 540 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($3 + 572 | 0 | 0, $4 + 164 | 0 | 0, $3 + 556 | 0 | 0); + $253 = $4 + 260 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 572 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 576 | 0) >> 2] | 0; + $1249 = i64toi32_i32$0; + i64toi32_i32$0 = $253; + HEAP32[i64toi32_i32$0 >> 2] = $1249; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $255 = 8; + i64toi32_i32$2 = ($3 + 572 | 0) + $255 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1262 = i64toi32_i32$1; + i64toi32_i32$1 = $253 + $255 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1262; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($3 + 524 | 0 | 0, $4 + 244 | 0 | 0, $4 + 260 | 0 | 0); + $269 = $4 + 276 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 524 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 528 | 0) >> 2] | 0; + $1282 = i64toi32_i32$0; + i64toi32_i32$0 = $269; + HEAP32[i64toi32_i32$0 >> 2] = $1282; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $271 = 8; + i64toi32_i32$2 = ($3 + 524 | 0) + $271 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1295 = i64toi32_i32$1; + i64toi32_i32$1 = $269 + $271 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1295; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVoronoiSimplexSolver__reduceVertices_28btUsageBitfield_20const__29($4 | 0, ($4 + 316 | 0) + 16 | 0 | 0); + (wasm2js_i32$0 = $4, wasm2js_i32$1 = (btSubSimplexClosestResult__isValid_28_29($4 + 316 | 0 | 0) | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 312 | 0) >> 0] = wasm2js_i32$1; + break label$2; + case 3: + HEAPF32[($3 + 504 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 500 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 496 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 508 | 0 | 0, $3 + 504 | 0 | 0, $3 + 500 | 0 | 0, $3 + 496 | 0 | 0) | 0; + HEAP32[($3 + 492 | 0) >> 2] = $4 + 4 | 0; + HEAP32[($3 + 488 | 0) >> 2] = ($4 + 4 | 0) + 16 | 0; + HEAP32[($3 + 484 | 0) >> 2] = ($4 + 4 | 0) + 32 | 0; + btVoronoiSimplexSolver__closestPtPointTriangle_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btSubSimplexClosestResult__29($4 | 0, $3 + 508 | 0 | 0, HEAP32[($3 + 492 | 0) >> 2] | 0 | 0, HEAP32[($3 + 488 | 0) >> 2] | 0 | 0, HEAP32[($3 + 484 | 0) >> 2] | 0 | 0, $4 + 316 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20float_20const__29($3 + 436 | 0 | 0, $4 + 84 | 0 | 0, ($4 + 316 | 0) + 20 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($3 + 420 | 0 | 0, ($4 + 84 | 0) + 16 | 0 | 0, (($4 + 316 | 0) + 20 | 0) + 4 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($3 + 452 | 0 | 0, $3 + 436 | 0 | 0, $3 + 420 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($3 + 404 | 0 | 0, ($4 + 84 | 0) + 32 | 0 | 0, (($4 + 316 | 0) + 20 | 0) + 8 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($3 + 468 | 0 | 0, $3 + 452 | 0 | 0, $3 + 404 | 0 | 0); + $376 = $4 + 244 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 468 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 472 | 0) >> 2] | 0; + $1484 = i64toi32_i32$0; + i64toi32_i32$0 = $376; + HEAP32[i64toi32_i32$0 >> 2] = $1484; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $378 = 8; + i64toi32_i32$2 = ($3 + 468 | 0) + $378 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1497 = i64toi32_i32$1; + i64toi32_i32$1 = $376 + $378 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1497; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20float_20const__29($3 + 356 | 0 | 0, $4 + 164 | 0 | 0, ($4 + 316 | 0) + 20 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($3 + 340 | 0 | 0, ($4 + 164 | 0) + 16 | 0 | 0, (($4 + 316 | 0) + 20 | 0) + 4 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($3 + 372 | 0 | 0, $3 + 356 | 0 | 0, $3 + 340 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($3 + 324 | 0 | 0, ($4 + 164 | 0) + 32 | 0 | 0, (($4 + 316 | 0) + 20 | 0) + 8 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($3 + 388 | 0 | 0, $3 + 372 | 0 | 0, $3 + 324 | 0 | 0); + $438 = $4 + 260 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 388 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 392 | 0) >> 2] | 0; + $1594 = i64toi32_i32$0; + i64toi32_i32$0 = $438; + HEAP32[i64toi32_i32$0 >> 2] = $1594; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $440 = 8; + i64toi32_i32$2 = ($3 + 388 | 0) + $440 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1607 = i64toi32_i32$1; + i64toi32_i32$1 = $438 + $440 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1607; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($3 + 308 | 0 | 0, $4 + 244 | 0 | 0, $4 + 260 | 0 | 0); + $454 = $4 + 276 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 308 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 312 | 0) >> 2] | 0; + $1627 = i64toi32_i32$0; + i64toi32_i32$0 = $454; + HEAP32[i64toi32_i32$0 >> 2] = $1627; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $456 = 8; + i64toi32_i32$2 = ($3 + 308 | 0) + $456 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1640 = i64toi32_i32$1; + i64toi32_i32$1 = $454 + $456 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1640; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVoronoiSimplexSolver__reduceVertices_28btUsageBitfield_20const__29($4 | 0, ($4 + 316 | 0) + 16 | 0 | 0); + (wasm2js_i32$0 = $4, wasm2js_i32$1 = (btSubSimplexClosestResult__isValid_28_29($4 + 316 | 0 | 0) | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 312 | 0) >> 0] = wasm2js_i32$1; + break label$2; + case 4: + HEAPF32[($3 + 288 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 284 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 280 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 292 | 0 | 0, $3 + 288 | 0 | 0, $3 + 284 | 0 | 0, $3 + 280 | 0 | 0) | 0; + HEAP32[($3 + 276 | 0) >> 2] = $4 + 4 | 0; + HEAP32[($3 + 272 | 0) >> 2] = ($4 + 4 | 0) + 16 | 0; + HEAP32[($3 + 268 | 0) >> 2] = ($4 + 4 | 0) + 32 | 0; + HEAP32[($3 + 264 | 0) >> 2] = ($4 + 4 | 0) + 48 | 0; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = (btVoronoiSimplexSolver__closestPtPointTetrahedron_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btSubSimplexClosestResult__29($4 | 0, $3 + 292 | 0 | 0, HEAP32[($3 + 276 | 0) >> 2] | 0 | 0, HEAP32[($3 + 272 | 0) >> 2] | 0 | 0, HEAP32[($3 + 268 | 0) >> 2] | 0 | 0, HEAP32[($3 + 264 | 0) >> 2] | 0 | 0, $4 + 316 | 0 | 0) | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 263 | 0) >> 0] = wasm2js_i32$1; + label$13 : { + label$14 : { + if (!((HEAPU8[($3 + 263 | 0) >> 0] | 0) & 1 | 0)) { + break label$14 + } + operator__28btVector3_20const__2c_20float_20const__29($3 + 196 | 0 | 0, $4 + 84 | 0 | 0, ($4 + 316 | 0) + 20 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($3 + 180 | 0 | 0, ($4 + 84 | 0) + 16 | 0 | 0, (($4 + 316 | 0) + 20 | 0) + 4 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($3 + 212 | 0 | 0, $3 + 196 | 0 | 0, $3 + 180 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($3 + 164 | 0 | 0, ($4 + 84 | 0) + 32 | 0 | 0, (($4 + 316 | 0) + 20 | 0) + 8 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($3 + 228 | 0 | 0, $3 + 212 | 0 | 0, $3 + 164 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($3 + 148 | 0 | 0, ($4 + 84 | 0) + 48 | 0 | 0, (($4 + 316 | 0) + 20 | 0) + 12 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($3 + 244 | 0 | 0, $3 + 228 | 0 | 0, $3 + 148 | 0 | 0); + $594 = $4 + 244 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 244 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 248 | 0) >> 2] | 0; + $1889 = i64toi32_i32$0; + i64toi32_i32$0 = $594; + HEAP32[i64toi32_i32$0 >> 2] = $1889; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $596 = 8; + i64toi32_i32$2 = ($3 + 244 | 0) + $596 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1902 = i64toi32_i32$1; + i64toi32_i32$1 = $594 + $596 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1902; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20float_20const__29($3 + 84 | 0 | 0, $4 + 164 | 0 | 0, ($4 + 316 | 0) + 20 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($3 + 68 | 0 | 0, ($4 + 164 | 0) + 16 | 0 | 0, (($4 + 316 | 0) + 20 | 0) + 4 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($3 + 100 | 0 | 0, $3 + 84 | 0 | 0, $3 + 68 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($3 + 52 | 0 | 0, ($4 + 164 | 0) + 32 | 0 | 0, (($4 + 316 | 0) + 20 | 0) + 8 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($3 + 116 | 0 | 0, $3 + 100 | 0 | 0, $3 + 52 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($3 + 36 | 0 | 0, ($4 + 164 | 0) + 48 | 0 | 0, (($4 + 316 | 0) + 20 | 0) + 12 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($3 + 132 | 0 | 0, $3 + 116 | 0 | 0, $3 + 36 | 0 | 0); + $678 = $4 + 260 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 132 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 136 | 0) >> 2] | 0; + $2036 = i64toi32_i32$0; + i64toi32_i32$0 = $678; + HEAP32[i64toi32_i32$0 >> 2] = $2036; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $680 = 8; + i64toi32_i32$2 = ($3 + 132 | 0) + $680 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2049 = i64toi32_i32$1; + i64toi32_i32$1 = $678 + $680 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $2049; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($3 + 20 | 0 | 0, $4 + 244 | 0 | 0, $4 + 260 | 0 | 0); + $694 = $4 + 276 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 20 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 24 | 0) >> 2] | 0; + $2069 = i64toi32_i32$0; + i64toi32_i32$0 = $694; + HEAP32[i64toi32_i32$0 >> 2] = $2069; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $696 = 8; + i64toi32_i32$2 = ($3 + 20 | 0) + $696 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2082 = i64toi32_i32$1; + i64toi32_i32$1 = $694 + $696 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $2082; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVoronoiSimplexSolver__reduceVertices_28btUsageBitfield_20const__29($4 | 0, ($4 + 316 | 0) + 16 | 0 | 0); + break label$13; + } + label$15 : { + label$16 : { + if (!((HEAPU8[($4 + 352 | 0) >> 0] | 0) & 1 | 0)) { + break label$16 + } + HEAP8[($4 + 312 | 0) >> 0] = 0; + break label$15; + } + HEAP8[($4 + 312 | 0) >> 0] = 1; + HEAPF32[($3 + 16 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 12 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 8 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 276 | 0 | 0, $3 + 16 | 0 | 0, $3 + 12 | 0 | 0, $3 + 8 | 0 | 0); + } + break label$2; + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = (btSubSimplexClosestResult__isValid_28_29($4 + 316 | 0 | 0) | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 312 | 0) >> 0] = wasm2js_i32$1; + break label$2; + default: + break label$3; + }; + } + HEAP8[($4 + 312 | 0) >> 0] = 0; + } + } + $736 = (HEAPU8[($4 + 312 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $3 + 800 | 0; + return $736 | 0; + } + + function btSubSimplexClosestResult__isValid_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $12 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + $12 = 0; + label$1 : { + if (!(Math_fround(HEAPF32[($4 + 20 | 0) >> 2]) >= Math_fround(0 | 0) & 1 | 0)) { + break label$1 + } + $12 = 0; + if (!(Math_fround(HEAPF32[($4 + 24 | 0) >> 2]) >= Math_fround(0 | 0) & 1 | 0)) { + break label$1 + } + $12 = 0; + if (!(Math_fround(HEAPF32[($4 + 28 | 0) >> 2]) >= Math_fround(0 | 0) & 1 | 0)) { + break label$1 + } + $12 = Math_fround(HEAPF32[($4 + 32 | 0) >> 2]) >= Math_fround(0 | 0); + } + HEAP8[($3 + 11 | 0) >> 0] = $12 & 1 | 0; + return (HEAPU8[($3 + 11 | 0) >> 0] | 0) & 1 | 0 | 0; + } + + function btVoronoiSimplexSolver__closestPtPointTriangle_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btSubSimplexClosestResult__29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $67 = Math_fround(0), $114 = Math_fround(0), $229 = Math_fround(0), $54 = 0, $56 = 0, $60 = 0, $102 = 0, $104 = 0, $108 = 0, $145 = Math_fround(0), $160 = 0, $161 = 0, $168 = 0, $172 = 0, $182 = Math_fround(0), $217 = 0, $219 = 0, $223 = 0, $260 = Math_fround(0), $275 = 0, $276 = 0, $283 = 0, $287 = 0, $297 = Math_fround(0), $333 = Math_fround(0), $339 = 0, $353 = 0, $354 = 0, $361 = 0, $365 = 0, $375 = Math_fround(0), $415 = 0, $416 = 0, $423 = 0, $427 = 0, $431 = 0, $566 = 0, $576 = 0, $668 = 0, $678 = 0, $149 = 0, $808 = 0, $812 = 0, $920 = 0, $930 = 0, $264 = 0, $1060 = 0, $1064 = 0, $1238 = 0, $1242 = 0, $392 = 0, $1378 = 0, $1382 = 0, $450 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $8 = __stack_pointer - 352 | 0; + __stack_pointer = $8; + HEAP32[($8 + 344 | 0) >> 2] = $0; + HEAP32[($8 + 340 | 0) >> 2] = $1; + HEAP32[($8 + 336 | 0) >> 2] = $2; + HEAP32[($8 + 332 | 0) >> 2] = $3; + HEAP32[($8 + 328 | 0) >> 2] = $4; + HEAP32[($8 + 324 | 0) >> 2] = $5; + btUsageBitfield__reset_28_29((HEAP32[($8 + 324 | 0) >> 2] | 0) + 16 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 308 | 0 | 0, HEAP32[($8 + 332 | 0) >> 2] | 0 | 0, HEAP32[($8 + 336 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 292 | 0 | 0, HEAP32[($8 + 328 | 0) >> 2] | 0 | 0, HEAP32[($8 + 336 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 276 | 0 | 0, HEAP32[($8 + 340 | 0) >> 2] | 0 | 0, HEAP32[($8 + 336 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 308 | 0 | 0, $8 + 276 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 272 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 292 | 0 | 0, $8 + 276 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 268 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($8 + 272 | 0) >> 2]) <= Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + if (!(Math_fround(HEAPF32[($8 + 268 | 0) >> 2]) <= Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + $54 = HEAP32[($8 + 324 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($8 + 336 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $566 = i64toi32_i32$0; + i64toi32_i32$0 = $54; + HEAP32[i64toi32_i32$0 >> 2] = $566; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $56 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $56 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $576 = i64toi32_i32$1; + i64toi32_i32$1 = $54 + $56 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $576; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $60 = HEAP32[($8 + 324 | 0) >> 2] | 0; + HEAP8[($60 + 16 | 0) >> 0] = HEAPU8[($60 + 16 | 0) >> 0] | 0 | 1 | 0; + $67 = Math_fround(0 | 0); + btSubSimplexClosestResult__setBarycentricCoordinates_28float_2c_20float_2c_20float_2c_20float_29(HEAP32[($8 + 324 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(1.0)), Math_fround($67), Math_fround($67), Math_fround($67)); + HEAP8[($8 + 351 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 252 | 0 | 0, HEAP32[($8 + 340 | 0) >> 2] | 0 | 0, HEAP32[($8 + 332 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 308 | 0 | 0, $8 + 252 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 248 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 292 | 0 | 0, $8 + 252 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 244 | 0) >> 2] = wasm2js_f32$0; + label$3 : { + if (!(Math_fround(HEAPF32[($8 + 248 | 0) >> 2]) >= Math_fround(0 | 0) & 1 | 0)) { + break label$3 + } + if (!(Math_fround(HEAPF32[($8 + 244 | 0) >> 2]) <= Math_fround(HEAPF32[($8 + 248 | 0) >> 2]) & 1 | 0)) { + break label$3 + } + $102 = HEAP32[($8 + 324 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($8 + 332 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $668 = i64toi32_i32$0; + i64toi32_i32$0 = $102; + HEAP32[i64toi32_i32$0 >> 2] = $668; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $104 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $104 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $678 = i64toi32_i32$1; + i64toi32_i32$1 = $102 + $104 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $678; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $108 = HEAP32[($8 + 324 | 0) >> 2] | 0; + HEAP8[($108 + 16 | 0) >> 0] = HEAPU8[($108 + 16 | 0) >> 0] | 0 | 2 | 0; + $114 = Math_fround(0 | 0); + btSubSimplexClosestResult__setBarycentricCoordinates_28float_2c_20float_2c_20float_2c_20float_29(HEAP32[($8 + 324 | 0) >> 2] | 0 | 0, Math_fround($114), Math_fround(Math_fround(1.0)), Math_fround($114), Math_fround($114)); + HEAP8[($8 + 351 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + HEAPF32[($8 + 240 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($8 + 272 | 0) >> 2]) * Math_fround(HEAPF32[($8 + 244 | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[($8 + 248 | 0) >> 2]) * Math_fround(HEAPF32[($8 + 268 | 0) >> 2])))); + label$4 : { + if (!(Math_fround(HEAPF32[($8 + 240 | 0) >> 2]) <= Math_fround(0 | 0) & 1 | 0)) { + break label$4 + } + if (!(Math_fround(HEAPF32[($8 + 272 | 0) >> 2]) >= Math_fround(0 | 0) & 1 | 0)) { + break label$4 + } + if (!(Math_fround(HEAPF32[($8 + 248 | 0) >> 2]) <= Math_fround(0 | 0) & 1 | 0)) { + break label$4 + } + $145 = Math_fround(HEAPF32[($8 + 272 | 0) >> 2]); + HEAPF32[($8 + 236 | 0) >> 2] = Math_fround($145 / Math_fround($145 - Math_fround(HEAPF32[($8 + 248 | 0) >> 2]))); + $149 = HEAP32[($8 + 336 | 0) >> 2] | 0; + operator__28float_20const__2c_20btVector3_20const__29($8 + 204 | 0 | 0, $8 + 236 | 0 | 0, $8 + 308 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 220 | 0 | 0, $149 | 0, $8 + 204 | 0 | 0); + $160 = HEAP32[($8 + 324 | 0) >> 2] | 0; + $161 = 8; + i64toi32_i32$2 = ($8 + 220 | 0) + $161 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $808 = i64toi32_i32$0; + i64toi32_i32$0 = $160 + $161 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $808; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 220 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 224 | 0) >> 2] | 0; + $812 = i64toi32_i32$1; + i64toi32_i32$1 = $160; + HEAP32[i64toi32_i32$1 >> 2] = $812; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $168 = HEAP32[($8 + 324 | 0) >> 2] | 0; + HEAP8[($168 + 16 | 0) >> 0] = HEAPU8[($168 + 16 | 0) >> 0] | 0 | 1 | 0; + $172 = HEAP32[($8 + 324 | 0) >> 2] | 0; + HEAP8[($172 + 16 | 0) >> 0] = HEAPU8[($172 + 16 | 0) >> 0] | 0 | 2 | 0; + $182 = Math_fround(0 | 0); + btSubSimplexClosestResult__setBarycentricCoordinates_28float_2c_20float_2c_20float_2c_20float_29(HEAP32[($8 + 324 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(Math_fround(1.0) - Math_fround(HEAPF32[($8 + 236 | 0) >> 2]))), Math_fround(Math_fround(HEAPF32[($8 + 236 | 0) >> 2])), Math_fround($182), Math_fround($182)); + HEAP8[($8 + 351 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 188 | 0 | 0, HEAP32[($8 + 340 | 0) >> 2] | 0 | 0, HEAP32[($8 + 328 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 308 | 0 | 0, $8 + 188 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 184 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 292 | 0 | 0, $8 + 188 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 180 | 0) >> 2] = wasm2js_f32$0; + label$5 : { + if (!(Math_fround(HEAPF32[($8 + 180 | 0) >> 2]) >= Math_fround(0 | 0) & 1 | 0)) { + break label$5 + } + if (!(Math_fround(HEAPF32[($8 + 184 | 0) >> 2]) <= Math_fround(HEAPF32[($8 + 180 | 0) >> 2]) & 1 | 0)) { + break label$5 + } + $217 = HEAP32[($8 + 324 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($8 + 328 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $920 = i64toi32_i32$0; + i64toi32_i32$0 = $217; + HEAP32[i64toi32_i32$0 >> 2] = $920; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $219 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $219 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $930 = i64toi32_i32$1; + i64toi32_i32$1 = $217 + $219 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $930; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $223 = HEAP32[($8 + 324 | 0) >> 2] | 0; + HEAP8[($223 + 16 | 0) >> 0] = HEAPU8[($223 + 16 | 0) >> 0] | 0 | 4 | 0; + $229 = Math_fround(0 | 0); + btSubSimplexClosestResult__setBarycentricCoordinates_28float_2c_20float_2c_20float_2c_20float_29(HEAP32[($8 + 324 | 0) >> 2] | 0 | 0, Math_fround($229), Math_fround($229), Math_fround(Math_fround(1.0)), Math_fround($229)); + HEAP8[($8 + 351 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + HEAPF32[($8 + 176 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($8 + 184 | 0) >> 2]) * Math_fround(HEAPF32[($8 + 268 | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[($8 + 272 | 0) >> 2]) * Math_fround(HEAPF32[($8 + 180 | 0) >> 2])))); + label$6 : { + if (!(Math_fround(HEAPF32[($8 + 176 | 0) >> 2]) <= Math_fround(0 | 0) & 1 | 0)) { + break label$6 + } + if (!(Math_fround(HEAPF32[($8 + 268 | 0) >> 2]) >= Math_fround(0 | 0) & 1 | 0)) { + break label$6 + } + if (!(Math_fround(HEAPF32[($8 + 180 | 0) >> 2]) <= Math_fround(0 | 0) & 1 | 0)) { + break label$6 + } + $260 = Math_fround(HEAPF32[($8 + 268 | 0) >> 2]); + HEAPF32[($8 + 172 | 0) >> 2] = Math_fround($260 / Math_fround($260 - Math_fround(HEAPF32[($8 + 180 | 0) >> 2]))); + $264 = HEAP32[($8 + 336 | 0) >> 2] | 0; + operator__28float_20const__2c_20btVector3_20const__29($8 + 140 | 0 | 0, $8 + 172 | 0 | 0, $8 + 292 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 156 | 0 | 0, $264 | 0, $8 + 140 | 0 | 0); + $275 = HEAP32[($8 + 324 | 0) >> 2] | 0; + $276 = 8; + i64toi32_i32$2 = ($8 + 156 | 0) + $276 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1060 = i64toi32_i32$0; + i64toi32_i32$0 = $275 + $276 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1060; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 156 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 160 | 0) >> 2] | 0; + $1064 = i64toi32_i32$1; + i64toi32_i32$1 = $275; + HEAP32[i64toi32_i32$1 >> 2] = $1064; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $283 = HEAP32[($8 + 324 | 0) >> 2] | 0; + HEAP8[($283 + 16 | 0) >> 0] = HEAPU8[($283 + 16 | 0) >> 0] | 0 | 1 | 0; + $287 = HEAP32[($8 + 324 | 0) >> 2] | 0; + HEAP8[($287 + 16 | 0) >> 0] = HEAPU8[($287 + 16 | 0) >> 0] | 0 | 4 | 0; + $297 = Math_fround(0 | 0); + btSubSimplexClosestResult__setBarycentricCoordinates_28float_2c_20float_2c_20float_2c_20float_29(HEAP32[($8 + 324 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(Math_fround(1.0) - Math_fround(HEAPF32[($8 + 172 | 0) >> 2]))), Math_fround($297), Math_fround(Math_fround(HEAPF32[($8 + 172 | 0) >> 2])), Math_fround($297)); + HEAP8[($8 + 351 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + HEAPF32[($8 + 136 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($8 + 248 | 0) >> 2]) * Math_fround(HEAPF32[($8 + 180 | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[($8 + 184 | 0) >> 2]) * Math_fround(HEAPF32[($8 + 244 | 0) >> 2])))); + label$7 : { + if (!(Math_fround(HEAPF32[($8 + 136 | 0) >> 2]) <= Math_fround(0 | 0) & 1 | 0)) { + break label$7 + } + if (!(Math_fround(Math_fround(HEAPF32[($8 + 244 | 0) >> 2]) - Math_fround(HEAPF32[($8 + 248 | 0) >> 2])) >= Math_fround(0 | 0) & 1 | 0)) { + break label$7 + } + if (!(Math_fround(Math_fround(HEAPF32[($8 + 184 | 0) >> 2]) - Math_fround(HEAPF32[($8 + 180 | 0) >> 2])) >= Math_fround(0 | 0) & 1 | 0)) { + break label$7 + } + $333 = Math_fround(Math_fround(HEAPF32[($8 + 244 | 0) >> 2]) - Math_fround(HEAPF32[($8 + 248 | 0) >> 2])); + HEAPF32[($8 + 132 | 0) >> 2] = Math_fround($333 / Math_fround($333 + Math_fround(Math_fround(HEAPF32[($8 + 184 | 0) >> 2]) - Math_fround(HEAPF32[($8 + 180 | 0) >> 2])))); + $339 = HEAP32[($8 + 332 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 84 | 0 | 0, HEAP32[($8 + 328 | 0) >> 2] | 0 | 0, $339 | 0); + operator__28float_20const__2c_20btVector3_20const__29($8 + 100 | 0 | 0, $8 + 132 | 0 | 0, $8 + 84 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 116 | 0 | 0, $339 | 0, $8 + 100 | 0 | 0); + $353 = HEAP32[($8 + 324 | 0) >> 2] | 0; + $354 = 8; + i64toi32_i32$2 = ($8 + 116 | 0) + $354 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1238 = i64toi32_i32$0; + i64toi32_i32$0 = $353 + $354 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1238; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 116 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 120 | 0) >> 2] | 0; + $1242 = i64toi32_i32$1; + i64toi32_i32$1 = $353; + HEAP32[i64toi32_i32$1 >> 2] = $1242; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $361 = HEAP32[($8 + 324 | 0) >> 2] | 0; + HEAP8[($361 + 16 | 0) >> 0] = HEAPU8[($361 + 16 | 0) >> 0] | 0 | 2 | 0; + $365 = HEAP32[($8 + 324 | 0) >> 2] | 0; + HEAP8[($365 + 16 | 0) >> 0] = HEAPU8[($365 + 16 | 0) >> 0] | 0 | 4 | 0; + $375 = Math_fround(0 | 0); + btSubSimplexClosestResult__setBarycentricCoordinates_28float_2c_20float_2c_20float_2c_20float_29(HEAP32[($8 + 324 | 0) >> 2] | 0 | 0, Math_fround($375), Math_fround(Math_fround(Math_fround(1.0) - Math_fround(HEAPF32[($8 + 132 | 0) >> 2]))), Math_fround(Math_fround(HEAPF32[($8 + 132 | 0) >> 2])), Math_fround($375)); + HEAP8[($8 + 351 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + HEAPF32[($8 + 80 | 0) >> 2] = Math_fround(Math_fround(1.0) / Math_fround(Math_fround(Math_fround(HEAPF32[($8 + 136 | 0) >> 2]) + Math_fround(HEAPF32[($8 + 176 | 0) >> 2])) + Math_fround(HEAPF32[($8 + 240 | 0) >> 2]))); + HEAPF32[($8 + 76 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($8 + 176 | 0) >> 2]) * Math_fround(HEAPF32[($8 + 80 | 0) >> 2])); + HEAPF32[($8 + 72 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($8 + 240 | 0) >> 2]) * Math_fround(HEAPF32[($8 + 80 | 0) >> 2])); + $392 = HEAP32[($8 + 336 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20float_20const__29($8 + 24 | 0 | 0, $8 + 308 | 0 | 0, $8 + 76 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 40 | 0 | 0, $392 | 0, $8 + 24 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($8 + 8 | 0 | 0, $8 + 292 | 0 | 0, $8 + 72 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 56 | 0 | 0, $8 + 40 | 0 | 0, $8 + 8 | 0 | 0); + $415 = HEAP32[($8 + 324 | 0) >> 2] | 0; + $416 = 8; + i64toi32_i32$2 = ($8 + 56 | 0) + $416 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1378 = i64toi32_i32$0; + i64toi32_i32$0 = $415 + $416 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1378; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 56 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 60 | 0) >> 2] | 0; + $1382 = i64toi32_i32$1; + i64toi32_i32$1 = $415; + HEAP32[i64toi32_i32$1 >> 2] = $1382; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $423 = HEAP32[($8 + 324 | 0) >> 2] | 0; + HEAP8[($423 + 16 | 0) >> 0] = HEAPU8[($423 + 16 | 0) >> 0] | 0 | 1 | 0; + $427 = HEAP32[($8 + 324 | 0) >> 2] | 0; + HEAP8[($427 + 16 | 0) >> 0] = HEAPU8[($427 + 16 | 0) >> 0] | 0 | 2 | 0; + $431 = HEAP32[($8 + 324 | 0) >> 2] | 0; + HEAP8[($431 + 16 | 0) >> 0] = HEAPU8[($431 + 16 | 0) >> 0] | 0 | 4 | 0; + btSubSimplexClosestResult__setBarycentricCoordinates_28float_2c_20float_2c_20float_2c_20float_29(HEAP32[($8 + 324 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(Math_fround(Math_fround(1.0) - Math_fround(HEAPF32[($8 + 76 | 0) >> 2])) - Math_fround(HEAPF32[($8 + 72 | 0) >> 2]))), Math_fround(Math_fround(HEAPF32[($8 + 76 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($8 + 72 | 0) >> 2])), Math_fround(Math_fround(0 | 0))); + HEAP8[($8 + 351 | 0) >> 0] = 1 & 1 | 0; + } + $450 = (HEAPU8[($8 + 351 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $8 + 352 | 0; + return $450 | 0; + } + + function btVoronoiSimplexSolver__closestPtPointTetrahedron_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btSubSimplexClosestResult__29($0, $1, $2, $3, $4, $5, $6) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + var $9 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $10 = 0, $16 = 0, $235 = 0, $246 = 0, $322 = 0, $409 = 0, $14 = 0, $23 = 0, $27 = 0, $31 = 0, $35 = 0, $113 = 0, $114 = 0, $148 = 0, $149 = 0, $162 = 0, $168 = 0, $176 = 0, $199 = 0, $200 = 0, $234 = 0, $248 = 0, $254 = 0, $263 = 0, $286 = 0, $287 = 0, $321 = 0, $333 = 0, $335 = 0, $341 = 0, $344 = 0, $350 = 0, $373 = 0, $374 = 0, $408 = 0, $420 = 0, $422 = 0, $429 = 0, $437 = 0, $467 = 0, $556 = 0, $566 = 0, $797 = 0, $801 = 0, $871 = 0, $875 = 0, $987 = 0, $991 = 0, $1061 = 0, $1065 = 0, $1183 = 0, $1187 = 0, $1257 = 0, $1261 = 0, $1379 = 0, $1383 = 0, $1453 = 0, $1457 = 0, $520 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $9 = __stack_pointer - 320 | 0; + __stack_pointer = $9; + HEAP32[($9 + 312 | 0) >> 2] = $0; + HEAP32[($9 + 308 | 0) >> 2] = $1; + HEAP32[($9 + 304 | 0) >> 2] = $2; + HEAP32[($9 + 300 | 0) >> 2] = $3; + HEAP32[($9 + 296 | 0) >> 2] = $4; + HEAP32[($9 + 292 | 0) >> 2] = $5; + HEAP32[($9 + 288 | 0) >> 2] = $6; + $10 = HEAP32[($9 + 312 | 0) >> 2] | 0; + btSubSimplexClosestResult__btSubSimplexClosestResult_28_29($9 + 248 | 0 | 0) | 0; + $14 = HEAP32[($9 + 288 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($9 + 308 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $556 = i64toi32_i32$0; + i64toi32_i32$0 = $14; + HEAP32[i64toi32_i32$0 >> 2] = $556; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $16 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $16 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $566 = i64toi32_i32$1; + i64toi32_i32$1 = $14 + $16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $566; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btUsageBitfield__reset_28_29((HEAP32[($9 + 288 | 0) >> 2] | 0) + 16 | 0 | 0); + $23 = HEAP32[($9 + 288 | 0) >> 2] | 0; + HEAP8[($23 + 16 | 0) >> 0] = HEAPU8[($23 + 16 | 0) >> 0] | 0 | 1 | 0; + $27 = HEAP32[($9 + 288 | 0) >> 2] | 0; + HEAP8[($27 + 16 | 0) >> 0] = HEAPU8[($27 + 16 | 0) >> 0] | 0 | 2 | 0; + $31 = HEAP32[($9 + 288 | 0) >> 2] | 0; + HEAP8[($31 + 16 | 0) >> 0] = HEAPU8[($31 + 16 | 0) >> 0] | 0 | 4 | 0; + $35 = HEAP32[($9 + 288 | 0) >> 2] | 0; + HEAP8[($35 + 16 | 0) >> 0] = HEAPU8[($35 + 16 | 0) >> 0] | 0 | $16 | 0; + (wasm2js_i32$0 = $9, wasm2js_i32$1 = btVoronoiSimplexSolver__pointOutsideOfPlane_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($10 | 0, HEAP32[($9 + 308 | 0) >> 2] | 0 | 0, HEAP32[($9 + 304 | 0) >> 2] | 0 | 0, HEAP32[($9 + 300 | 0) >> 2] | 0 | 0, HEAP32[($9 + 296 | 0) >> 2] | 0 | 0, HEAP32[($9 + 292 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 244 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $9, wasm2js_i32$1 = btVoronoiSimplexSolver__pointOutsideOfPlane_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($10 | 0, HEAP32[($9 + 308 | 0) >> 2] | 0 | 0, HEAP32[($9 + 304 | 0) >> 2] | 0 | 0, HEAP32[($9 + 296 | 0) >> 2] | 0 | 0, HEAP32[($9 + 292 | 0) >> 2] | 0 | 0, HEAP32[($9 + 300 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 240 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $9, wasm2js_i32$1 = btVoronoiSimplexSolver__pointOutsideOfPlane_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($10 | 0, HEAP32[($9 + 308 | 0) >> 2] | 0 | 0, HEAP32[($9 + 304 | 0) >> 2] | 0 | 0, HEAP32[($9 + 292 | 0) >> 2] | 0 | 0, HEAP32[($9 + 300 | 0) >> 2] | 0 | 0, HEAP32[($9 + 296 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 236 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $9, wasm2js_i32$1 = btVoronoiSimplexSolver__pointOutsideOfPlane_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($10 | 0, HEAP32[($9 + 308 | 0) >> 2] | 0 | 0, HEAP32[($9 + 300 | 0) >> 2] | 0 | 0, HEAP32[($9 + 292 | 0) >> 2] | 0 | 0, HEAP32[($9 + 296 | 0) >> 2] | 0 | 0, HEAP32[($9 + 304 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 232 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + label$3 : { + if ((HEAP32[($9 + 244 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0) { + break label$3 + } + if ((HEAP32[($9 + 240 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0) { + break label$3 + } + if ((HEAP32[($9 + 236 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0) { + break label$3 + } + if (!((HEAP32[($9 + 232 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0)) { + break label$2 + } + } + HEAP8[((HEAP32[($9 + 288 | 0) >> 2] | 0) + 36 | 0) >> 0] = 1; + HEAP8[($9 + 319 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + label$4 : { + if (HEAP32[($9 + 244 | 0) >> 2] | 0) { + break label$4 + } + if (HEAP32[($9 + 240 | 0) >> 2] | 0) { + break label$4 + } + if (HEAP32[($9 + 236 | 0) >> 2] | 0) { + break label$4 + } + if (HEAP32[($9 + 232 | 0) >> 2] | 0) { + break label$4 + } + HEAP8[($9 + 319 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + HEAPF32[($9 + 228 | 0) >> 2] = Math_fround(3402823466385288598117041.0e14); + label$5 : { + if (!(HEAP32[($9 + 244 | 0) >> 2] | 0)) { + break label$5 + } + btVoronoiSimplexSolver__closestPtPointTriangle_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btSubSimplexClosestResult__29($10 | 0, HEAP32[($9 + 308 | 0) >> 2] | 0 | 0, HEAP32[($9 + 304 | 0) >> 2] | 0 | 0, HEAP32[($9 + 300 | 0) >> 2] | 0 | 0, HEAP32[($9 + 296 | 0) >> 2] | 0 | 0, $9 + 248 | 0 | 0) | 0; + $113 = $9 + 248 | 0; + $114 = 8; + i64toi32_i32$2 = $113 + $114 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $797 = i64toi32_i32$0; + i64toi32_i32$0 = ($9 + 208 | 0) + $114 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $797; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $113; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $801 = i64toi32_i32$1; + i64toi32_i32$1 = $9; + HEAP32[($9 + 208 | 0) >> 2] = $801; + HEAP32[($9 + 212 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($9 + 188 | 0 | 0, $9 + 208 | 0 | 0, HEAP32[($9 + 308 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($9 + 172 | 0 | 0, $9 + 208 | 0 | 0, HEAP32[($9 + 308 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($9 + 188 | 0 | 0, $9 + 172 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 204 | 0) >> 2] = wasm2js_f32$0; + label$6 : { + if (!(Math_fround(HEAPF32[($9 + 204 | 0) >> 2]) < Math_fround(HEAPF32[($9 + 228 | 0) >> 2]) & 1 | 0)) { + break label$6 + } + HEAPF32[($9 + 228 | 0) >> 2] = Math_fround(HEAPF32[($9 + 204 | 0) >> 2]); + $148 = HEAP32[($9 + 288 | 0) >> 2] | 0; + $149 = 8; + i64toi32_i32$2 = ($9 + 208 | 0) + $149 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $871 = i64toi32_i32$0; + i64toi32_i32$0 = $148 + $149 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $871; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $9; + i64toi32_i32$1 = HEAP32[($9 + 208 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($9 + 212 | 0) >> 2] | 0; + $875 = i64toi32_i32$1; + i64toi32_i32$1 = $148; + HEAP32[i64toi32_i32$1 >> 2] = $875; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btUsageBitfield__reset_28_29((HEAP32[($9 + 288 | 0) >> 2] | 0) + 16 | 0 | 0); + $162 = HEAP32[($9 + 288 | 0) >> 2] | 0; + HEAP8[($162 + 16 | 0) >> 0] = (HEAPU8[($162 + 16 | 0) >> 0] | 0) & 254 | 0 | ((HEAPU8[($9 + 264 | 0) >> 0] | 0) & 1 | 0) | 0; + $168 = HEAP32[($9 + 288 | 0) >> 2] | 0; + HEAP8[($168 + 16 | 0) >> 0] = (HEAPU8[($168 + 16 | 0) >> 0] | 0) & 253 | 0 | ((HEAPU8[($9 + 264 | 0) >> 0] | 0) & 2 | 0) | 0; + $176 = HEAP32[($9 + 288 | 0) >> 2] | 0; + HEAP8[($176 + 16 | 0) >> 0] = (HEAPU8[($176 + 16 | 0) >> 0] | 0) & -5 | 0 | ((HEAPU8[($9 + 264 | 0) >> 0] | 0) & 4 | 0) | 0; + btSubSimplexClosestResult__setBarycentricCoordinates_28float_2c_20float_2c_20float_2c_20float_29(HEAP32[($9 + 288 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($9 + 268 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($9 + 272 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($9 + 276 | 0) >> 2])), Math_fround(Math_fround(0 | 0))); + } + } + label$7 : { + if (!(HEAP32[($9 + 240 | 0) >> 2] | 0)) { + break label$7 + } + btVoronoiSimplexSolver__closestPtPointTriangle_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btSubSimplexClosestResult__29($10 | 0, HEAP32[($9 + 308 | 0) >> 2] | 0 | 0, HEAP32[($9 + 304 | 0) >> 2] | 0 | 0, HEAP32[($9 + 296 | 0) >> 2] | 0 | 0, HEAP32[($9 + 292 | 0) >> 2] | 0 | 0, $9 + 248 | 0 | 0) | 0; + $199 = $9 + 248 | 0; + $200 = 8; + i64toi32_i32$2 = $199 + $200 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $987 = i64toi32_i32$0; + i64toi32_i32$0 = ($9 + 152 | 0) + $200 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $987; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $199; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $991 = i64toi32_i32$1; + i64toi32_i32$1 = $9; + HEAP32[($9 + 152 | 0) >> 2] = $991; + HEAP32[($9 + 156 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($9 + 132 | 0 | 0, $9 + 152 | 0 | 0, HEAP32[($9 + 308 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($9 + 116 | 0 | 0, $9 + 152 | 0 | 0, HEAP32[($9 + 308 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($9 + 132 | 0 | 0, $9 + 116 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 148 | 0) >> 2] = wasm2js_f32$0; + label$8 : { + if (!(Math_fround(HEAPF32[($9 + 148 | 0) >> 2]) < Math_fround(HEAPF32[($9 + 228 | 0) >> 2]) & 1 | 0)) { + break label$8 + } + HEAPF32[($9 + 228 | 0) >> 2] = Math_fround(HEAPF32[($9 + 148 | 0) >> 2]); + $234 = HEAP32[($9 + 288 | 0) >> 2] | 0; + $235 = 8; + i64toi32_i32$2 = ($9 + 152 | 0) + $235 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1061 = i64toi32_i32$0; + i64toi32_i32$0 = $234 + $235 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1061; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $9; + i64toi32_i32$1 = HEAP32[($9 + 152 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($9 + 156 | 0) >> 2] | 0; + $1065 = i64toi32_i32$1; + i64toi32_i32$1 = $234; + HEAP32[i64toi32_i32$1 >> 2] = $1065; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btUsageBitfield__reset_28_29((HEAP32[($9 + 288 | 0) >> 2] | 0) + 16 | 0 | 0); + $246 = 1; + $248 = HEAP32[($9 + 288 | 0) >> 2] | 0; + HEAP8[($248 + 16 | 0) >> 0] = (HEAPU8[($248 + 16 | 0) >> 0] | 0) & 254 | 0 | ((HEAPU8[($9 + 264 | 0) >> 0] | 0) & $246 | 0) | 0; + $254 = HEAP32[($9 + 288 | 0) >> 2] | 0; + HEAP8[($254 + 16 | 0) >> 0] = (HEAPU8[($254 + 16 | 0) >> 0] | 0) & 251 | 0 | (((HEAPU8[($9 + 264 | 0) >> 0] | 0) << $246 | 0) & 4 | 0) | 0; + $263 = HEAP32[($9 + 288 | 0) >> 2] | 0; + HEAP8[($263 + 16 | 0) >> 0] = (HEAPU8[($263 + 16 | 0) >> 0] | 0) & -9 | 0 | (((HEAPU8[($9 + 264 | 0) >> 0] | 0) << $246 | 0) & $235 | 0) | 0; + btSubSimplexClosestResult__setBarycentricCoordinates_28float_2c_20float_2c_20float_2c_20float_29(HEAP32[($9 + 288 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($9 + 268 | 0) >> 2])), Math_fround(Math_fround(0 | 0)), Math_fround(Math_fround(HEAPF32[($9 + 272 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($9 + 276 | 0) >> 2]))); + } + } + label$9 : { + if (!(HEAP32[($9 + 236 | 0) >> 2] | 0)) { + break label$9 + } + btVoronoiSimplexSolver__closestPtPointTriangle_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btSubSimplexClosestResult__29($10 | 0, HEAP32[($9 + 308 | 0) >> 2] | 0 | 0, HEAP32[($9 + 304 | 0) >> 2] | 0 | 0, HEAP32[($9 + 292 | 0) >> 2] | 0 | 0, HEAP32[($9 + 300 | 0) >> 2] | 0 | 0, $9 + 248 | 0 | 0) | 0; + $286 = $9 + 248 | 0; + $287 = 8; + i64toi32_i32$2 = $286 + $287 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1183 = i64toi32_i32$0; + i64toi32_i32$0 = ($9 + 96 | 0) + $287 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1183; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $286; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1187 = i64toi32_i32$1; + i64toi32_i32$1 = $9; + HEAP32[($9 + 96 | 0) >> 2] = $1187; + HEAP32[($9 + 100 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($9 + 76 | 0 | 0, $9 + 96 | 0 | 0, HEAP32[($9 + 308 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($9 + 60 | 0 | 0, $9 + 96 | 0 | 0, HEAP32[($9 + 308 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($9 + 76 | 0 | 0, $9 + 60 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 92 | 0) >> 2] = wasm2js_f32$0; + label$10 : { + if (!(Math_fround(HEAPF32[($9 + 92 | 0) >> 2]) < Math_fround(HEAPF32[($9 + 228 | 0) >> 2]) & 1 | 0)) { + break label$10 + } + HEAPF32[($9 + 228 | 0) >> 2] = Math_fround(HEAPF32[($9 + 92 | 0) >> 2]); + $321 = HEAP32[($9 + 288 | 0) >> 2] | 0; + $322 = 8; + i64toi32_i32$2 = ($9 + 96 | 0) + $322 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1257 = i64toi32_i32$0; + i64toi32_i32$0 = $321 + $322 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1257; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $9; + i64toi32_i32$1 = HEAP32[($9 + 96 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($9 + 100 | 0) >> 2] | 0; + $1261 = i64toi32_i32$1; + i64toi32_i32$1 = $321; + HEAP32[i64toi32_i32$1 >> 2] = $1261; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btUsageBitfield__reset_28_29((HEAP32[($9 + 288 | 0) >> 2] | 0) + 16 | 0 | 0); + $333 = 1; + $335 = HEAP32[($9 + 288 | 0) >> 2] | 0; + HEAP8[($335 + 16 | 0) >> 0] = (HEAPU8[($335 + 16 | 0) >> 0] | 0) & 254 | 0 | ((HEAPU8[($9 + 264 | 0) >> 0] | 0) & $333 | 0) | 0; + $341 = HEAP32[($9 + 288 | 0) >> 2] | 0; + $344 = 2; + HEAP8[($341 + 16 | 0) >> 0] = (HEAPU8[($341 + 16 | 0) >> 0] | 0) & 253 | 0 | (((HEAPU8[($9 + 264 | 0) >> 0] | 0) >>> $333 | 0) & $344 | 0) | 0; + $350 = HEAP32[($9 + 288 | 0) >> 2] | 0; + HEAP8[($350 + 16 | 0) >> 0] = (HEAPU8[($350 + 16 | 0) >> 0] | 0) & -9 | 0 | (((HEAPU8[($9 + 264 | 0) >> 0] | 0) << $344 | 0) & $322 | 0) | 0; + btSubSimplexClosestResult__setBarycentricCoordinates_28float_2c_20float_2c_20float_2c_20float_29(HEAP32[($9 + 288 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($9 + 268 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($9 + 276 | 0) >> 2])), Math_fround(Math_fround(0 | 0)), Math_fround(Math_fround(HEAPF32[($9 + 272 | 0) >> 2]))); + } + } + label$11 : { + if (!(HEAP32[($9 + 232 | 0) >> 2] | 0)) { + break label$11 + } + btVoronoiSimplexSolver__closestPtPointTriangle_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btSubSimplexClosestResult__29($10 | 0, HEAP32[($9 + 308 | 0) >> 2] | 0 | 0, HEAP32[($9 + 300 | 0) >> 2] | 0 | 0, HEAP32[($9 + 292 | 0) >> 2] | 0 | 0, HEAP32[($9 + 296 | 0) >> 2] | 0 | 0, $9 + 248 | 0 | 0) | 0; + $373 = $9 + 248 | 0; + $374 = 8; + i64toi32_i32$2 = $373 + $374 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1379 = i64toi32_i32$0; + i64toi32_i32$0 = ($9 + 40 | 0) + $374 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1379; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $373; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1383 = i64toi32_i32$1; + i64toi32_i32$1 = $9; + HEAP32[($9 + 40 | 0) >> 2] = $1383; + HEAP32[($9 + 44 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($9 + 20 | 0 | 0, $9 + 40 | 0 | 0, HEAP32[($9 + 308 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($9 + 4 | 0 | 0, $9 + 40 | 0 | 0, HEAP32[($9 + 308 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($9 + 20 | 0 | 0, $9 + 4 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_f32$0; + label$12 : { + if (!(Math_fround(HEAPF32[($9 + 36 | 0) >> 2]) < Math_fround(HEAPF32[($9 + 228 | 0) >> 2]) & 1 | 0)) { + break label$12 + } + HEAPF32[($9 + 228 | 0) >> 2] = Math_fround(HEAPF32[($9 + 36 | 0) >> 2]); + $408 = HEAP32[($9 + 288 | 0) >> 2] | 0; + $409 = 8; + i64toi32_i32$2 = ($9 + 40 | 0) + $409 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1453 = i64toi32_i32$0; + i64toi32_i32$0 = $408 + $409 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1453; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $9; + i64toi32_i32$1 = HEAP32[($9 + 40 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($9 + 44 | 0) >> 2] | 0; + $1457 = i64toi32_i32$1; + i64toi32_i32$1 = $408; + HEAP32[i64toi32_i32$1 >> 2] = $1457; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btUsageBitfield__reset_28_29((HEAP32[($9 + 288 | 0) >> 2] | 0) + 16 | 0 | 0); + $420 = 1; + $422 = HEAP32[($9 + 288 | 0) >> 2] | 0; + HEAP8[($422 + 16 | 0) >> 0] = (HEAPU8[($422 + 16 | 0) >> 0] | 0) & 253 | 0 | (((HEAPU8[($9 + 264 | 0) >> 0] | 0) & $420 | 0) << $420 | 0) | 0; + $429 = HEAP32[($9 + 288 | 0) >> 2] | 0; + HEAP8[($429 + 16 | 0) >> 0] = (HEAPU8[($429 + 16 | 0) >> 0] | 0) & 251 | 0 | ((HEAPU8[($9 + 264 | 0) >> 0] | 0) & 4 | 0) | 0; + $437 = HEAP32[($9 + 288 | 0) >> 2] | 0; + HEAP8[($437 + 16 | 0) >> 0] = (HEAPU8[($437 + 16 | 0) >> 0] | 0) & -9 | 0 | (((HEAPU8[($9 + 264 | 0) >> 0] | 0) << 2 | 0) & $409 | 0) | 0; + btSubSimplexClosestResult__setBarycentricCoordinates_28float_2c_20float_2c_20float_2c_20float_29(HEAP32[($9 + 288 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(0 | 0)), Math_fround(Math_fround(HEAPF32[($9 + 268 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($9 + 276 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($9 + 272 | 0) >> 2]))); + } + } + label$13 : { + if (!(((((HEAPU8[((HEAP32[($9 + 288 | 0) >> 2] | 0) + 16 | 0) >> 0] | 0) & 1 | 0) & 255 | 0) & 65535 | 0 | 0) != (0 & 65535 | 0 | 0) & 1 | 0)) { + break label$13 + } + $467 = 1; + if (!((((((HEAPU8[((HEAP32[($9 + 288 | 0) >> 2] | 0) + 16 | 0) >> 0] | 0) >>> $467 | 0) & $467 | 0) & 255 | 0) & 65535 | 0 | 0) != (0 & 65535 | 0 | 0) & 1 | 0)) { + break label$13 + } + if (!((((((HEAPU8[((HEAP32[($9 + 288 | 0) >> 2] | 0) + 16 | 0) >> 0] | 0) >>> 2 | 0) & 1 | 0) & 255 | 0) & 65535 | 0 | 0) != (0 & 65535 | 0 | 0) & 1 | 0)) { + break label$13 + } + if (!((((((HEAPU8[((HEAP32[($9 + 288 | 0) >> 2] | 0) + 16 | 0) >> 0] | 0) >>> 3 | 0) & 1 | 0) & 255 | 0) & 65535 | 0 | 0) != (0 & 65535 | 0 | 0) & 1 | 0)) { + break label$13 + } + HEAP8[($9 + 319 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + HEAP8[($9 + 319 | 0) >> 0] = 1 & 1 | 0; + } + $520 = (HEAPU8[($9 + 319 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $9 + 320 | 0; + return $520 | 0; + } + + function btVoronoiSimplexSolver__pointOutsideOfPlane_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, $68 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $8 = __stack_pointer - 128 | 0; + __stack_pointer = $8; + HEAP32[($8 + 120 | 0) >> 2] = $0; + HEAP32[($8 + 116 | 0) >> 2] = $1; + HEAP32[($8 + 112 | 0) >> 2] = $2; + HEAP32[($8 + 108 | 0) >> 2] = $3; + HEAP32[($8 + 104 | 0) >> 2] = $4; + HEAP32[($8 + 100 | 0) >> 2] = $5; + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 68 | 0 | 0, HEAP32[($8 + 108 | 0) >> 2] | 0 | 0, HEAP32[($8 + 112 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 52 | 0 | 0, HEAP32[($8 + 104 | 0) >> 2] | 0 | 0, HEAP32[($8 + 112 | 0) >> 2] | 0 | 0); + btVector3__cross_28btVector3_20const__29_20const($8 + 84 | 0 | 0, $8 + 68 | 0 | 0, $8 + 52 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 32 | 0 | 0, HEAP32[($8 + 116 | 0) >> 2] | 0 | 0, HEAP32[($8 + 112 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 32 | 0 | 0, $8 + 84 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 48 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 12 | 0 | 0, HEAP32[($8 + 100 | 0) >> 2] | 0 | 0, HEAP32[($8 + 112 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 12 | 0 | 0, $8 + 84 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!(Math_fround(Math_fround(HEAPF32[($8 + 28 | 0) >> 2]) * Math_fround(HEAPF32[($8 + 28 | 0) >> 2])) < Math_fround(9.99999905104687e-09) & 1 | 0)) { + break label$2 + } + HEAP32[($8 + 124 | 0) >> 2] = -1; + break label$1; + } + HEAP32[($8 + 124 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($8 + 48 | 0) >> 2]) * Math_fround(HEAPF32[($8 + 28 | 0) >> 2])) < Math_fround(0 | 0) & 1 | 0; + } + $68 = HEAP32[($8 + 124 | 0) >> 2] | 0; + __stack_pointer = $8 + 128 | 0; + return $68 | 0; + } + + function btVoronoiSimplexSolver__closest_28btVector3__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5 = 0, $11 = 0, $13 = 0, $48 = 0, $58 = 0, $19 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = (btVoronoiSimplexSolver__updateClosestVectorAndPoints_28_29($5 | 0) | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 7 | 0) >> 0] = wasm2js_i32$1; + $11 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$2 = $5 + 276 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $48 = i64toi32_i32$0; + i64toi32_i32$0 = $11; + HEAP32[i64toi32_i32$0 >> 2] = $48; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $13 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $13 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $58 = i64toi32_i32$1; + i64toi32_i32$1 = $11 + $13 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $58; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $19 = (HEAPU8[($4 + 7 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $4 + 16 | 0; + return $19 | 0; + } + + function btVoronoiSimplexSolver__inSimplex_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $46 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 24 | 0) >> 2] = $0; + HEAP32[($4 + 20 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 24 | 0) >> 2] | 0; + HEAP8[($4 + 19 | 0) >> 0] = 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btVoronoiSimplexSolver__numVertices_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + label$3 : { + if (!(Math_fround(btVector3__distance2_28btVector3_20const__29_20const(($5 + 4 | 0) + ((HEAP32[($4 + 12 | 0) >> 2] | 0) << 4 | 0) | 0 | 0, HEAP32[($4 + 20 | 0) >> 2] | 0 | 0)) <= Math_fround(HEAPF32[($5 + 308 | 0) >> 2]) & 1 | 0)) { + break label$3 + } + HEAP8[($4 + 19 | 0) >> 0] = 1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = (HEAP32[($4 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + label$4 : { + label$5 : { + if (!((btVector3__operator___28btVector3_20const__29_20const(HEAP32[($4 + 20 | 0) >> 2] | 0 | 0, $5 + 292 | 0 | 0) | 0) & 1 | 0)) { + break label$5 + } + HEAP8[($4 + 31 | 0) >> 0] = 1 & 1 | 0; + break label$4; + } + HEAP8[($4 + 31 | 0) >> 0] = (HEAPU8[($4 + 19 | 0) >> 0] | 0) & 1 | 0; + } + $46 = (HEAPU8[($4 + 31 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $4 + 32 | 0; + return $46 | 0; + } + + function btVector3__distance2_28btVector3_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $13 = Math_fround(0); + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + operator__28btVector3_20const__2c_20btVector3_20const__29($4 + 8 | 0 | 0, HEAP32[($4 + 24 | 0) >> 2] | 0 | 0, HEAP32[($4 + 28 | 0) >> 2] | 0 | 0); + $13 = Math_fround(btVector3__length2_28_29_20const($4 + 8 | 0 | 0)); + __stack_pointer = $4 + 32 | 0; + return Math_fround($13); + } + + function btVector3__operator___28btVector3_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $13 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + $13 = 0; + label$1 : { + if (!(Math_fround(HEAPF32[($5 + 12 | 0) >> 2]) == Math_fround(HEAPF32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2]) & 1 | 0)) { + break label$1 + } + $13 = 0; + if (!(Math_fround(HEAPF32[($5 + 8 | 0) >> 2]) == Math_fround(HEAPF32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2]) & 1 | 0)) { + break label$1 + } + $13 = 0; + if (!(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]) == Math_fround(HEAPF32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2]) & 1 | 0)) { + break label$1 + } + $13 = Math_fround(HEAPF32[$5 >> 2]) == Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2]); + } + return $13 & 1 | 0 | 0; + } + + function btVoronoiSimplexSolver__compute_points_28btVector3__2c_20btVector3__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5 = 0, $6 = 0, $9 = 0, $11 = 0, $17 = 0, $19 = 0, $48 = 0, $58 = 0, $67 = 0, $77 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btVoronoiSimplexSolver__updateClosestVectorAndPoints_28_29($6 | 0) | 0; + $9 = HEAP32[($5 + 8 | 0) >> 2] | 0; + i64toi32_i32$2 = $6 + 244 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $48 = i64toi32_i32$0; + i64toi32_i32$0 = $9; + HEAP32[i64toi32_i32$0 >> 2] = $48; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $11 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $11 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $58 = i64toi32_i32$1; + i64toi32_i32$1 = $9 + $11 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $58; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $17 = HEAP32[($5 + 4 | 0) >> 2] | 0; + i64toi32_i32$2 = $6 + 260 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $67 = i64toi32_i32$0; + i64toi32_i32$0 = $17; + HEAP32[i64toi32_i32$0 >> 2] = $67; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $19 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $19 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $77 = i64toi32_i32$1; + i64toi32_i32$1 = $17 + $19 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $77; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $5 + 16 | 0; + return; + } + + function _GLOBAL__sub_I_btVoronoiSimplexSolver_cpp() { + __cxx_global_var_init_66(); + return; + } + + function __cxx_global_var_init_67() { + btInfMaskConverter__btInfMaskConverter_28int_29(115380 | 0, 2139095040 | 0) | 0; + return; + } + + function btPolyhedralContactClipping__clipFace_28btAlignedObjectArray_btVector3__20const__2c_20btAlignedObjectArray_btVector3___2c_20btVector3_20const__2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $21 = 0, $22 = 0, $31 = 0, $32 = 0, $56 = 0, $57 = 0, $143 = 0, $213 = 0, $217 = 0, $235 = 0, $239 = 0, $291 = 0, $295 = 0, $87 = 0, $116 = 0, $469 = 0, $473 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 112 | 0; + __stack_pointer = $6; + HEAP32[($6 + 108 | 0) >> 2] = $0; + HEAP32[($6 + 104 | 0) >> 2] = $1; + HEAP32[($6 + 100 | 0) >> 2] = $2; + HEAPF32[($6 + 96 | 0) >> 2] = $3; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btAlignedObjectArray_btVector3___size_28_29_20const(HEAP32[($6 + 108 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 80 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($6 + 80 | 0) >> 2] | 0 | 0) < (2 | 0) & 1 | 0)) { + break label$2 + } + break label$1; + } + $21 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29_20const(HEAP32[($6 + 108 | 0) >> 2] | 0 | 0, (btAlignedObjectArray_btVector3___size_28_29_20const(HEAP32[($6 + 108 | 0) >> 2] | 0 | 0) | 0) - 1 | 0 | 0) | 0; + $22 = 8; + i64toi32_i32$2 = $21 + $22 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $213 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 64 | 0) + $22 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $213; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $21; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $217 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 64 | 0) >> 2] = $217; + HEAP32[($6 + 68 | 0) >> 2] = i64toi32_i32$0; + $31 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29_20const(HEAP32[($6 + 108 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + $32 = 8; + i64toi32_i32$2 = $31 + $32 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $235 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 48 | 0) + $32 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $235; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $31; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $239 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 48 | 0) >> 2] = $239; + HEAP32[($6 + 52 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($6 + 100 | 0) >> 2] | 0 | 0, $6 + 64 | 0 | 0)) + Math_fround(HEAPF32[($6 + 96 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 88 | 0) >> 2] = wasm2js_f32$0; + HEAP32[($6 + 92 | 0) >> 2] = 0; + label$3 : while (1) { + if (!((HEAP32[($6 + 92 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 80 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + $56 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29_20const(HEAP32[($6 + 108 | 0) >> 2] | 0 | 0, HEAP32[($6 + 92 | 0) >> 2] | 0 | 0) | 0; + $57 = 8; + i64toi32_i32$2 = $56 + $57 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $291 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 48 | 0) + $57 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $291; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $56; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $295 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 48 | 0) >> 2] = $295; + HEAP32[($6 + 52 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($6 + 100 | 0) >> 2] | 0 | 0, $6 + 48 | 0 | 0)) + Math_fround(HEAPF32[($6 + 96 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 84 | 0) >> 2] = wasm2js_f32$0; + label$4 : { + label$5 : { + if (!(Math_fround(HEAPF32[($6 + 88 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$5 + } + label$6 : { + label$7 : { + if (!(Math_fround(HEAPF32[($6 + 84 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$7 + } + btAlignedObjectArray_btVector3___push_back_28btVector3_20const__29(HEAP32[($6 + 104 | 0) >> 2] | 0 | 0, $6 + 48 | 0 | 0); + break label$6; + } + $87 = HEAP32[($6 + 104 | 0) >> 2] | 0; + HEAPF32[($6 + 28 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($6 + 88 | 0) >> 2]) * Math_fround(1.0)) / Math_fround(Math_fround(HEAPF32[($6 + 88 | 0) >> 2]) - Math_fround(HEAPF32[($6 + 84 | 0) >> 2]))); + btVector3__lerp_28btVector3_20const__2c_20float_20const__29_20const($6 + 32 | 0 | 0, $6 + 64 | 0 | 0, $6 + 48 | 0 | 0, $6 + 28 | 0 | 0); + btAlignedObjectArray_btVector3___push_back_28btVector3_20const__29($87 | 0, $6 + 32 | 0 | 0); + } + break label$4; + } + label$8 : { + if (!(Math_fround(HEAPF32[($6 + 84 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$8 + } + $116 = HEAP32[($6 + 104 | 0) >> 2] | 0; + HEAPF32[($6 + 8 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($6 + 88 | 0) >> 2]) * Math_fround(1.0)) / Math_fround(Math_fround(HEAPF32[($6 + 88 | 0) >> 2]) - Math_fround(HEAPF32[($6 + 84 | 0) >> 2]))); + btVector3__lerp_28btVector3_20const__2c_20float_20const__29_20const($6 + 12 | 0 | 0, $6 + 64 | 0 | 0, $6 + 48 | 0 | 0, $6 + 8 | 0 | 0); + btAlignedObjectArray_btVector3___push_back_28btVector3_20const__29($116 | 0, $6 + 12 | 0 | 0); + btAlignedObjectArray_btVector3___push_back_28btVector3_20const__29(HEAP32[($6 + 104 | 0) >> 2] | 0 | 0, $6 + 48 | 0 | 0); + } + } + $143 = 8; + i64toi32_i32$2 = ($6 + 48 | 0) + $143 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $469 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 64 | 0) + $143 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $469; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 48 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 52 | 0) >> 2] | 0; + $473 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 64 | 0) >> 2] = $473; + HEAP32[($6 + 68 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($6 + 88 | 0) >> 2] = Math_fround(HEAPF32[($6 + 84 | 0) >> 2]); + HEAP32[($6 + 92 | 0) >> 2] = (HEAP32[($6 + 92 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + __stack_pointer = $6 + 112 | 0; + return; + } + + function btVector3__lerp_28btVector3_20const__2c_20float_20const__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $1; + HEAP32[($6 + 24 | 0) >> 2] = $2; + HEAP32[($6 + 20 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAPF32[($6 + 16 | 0) >> 2] = Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[(HEAP32[($6 + 24 | 0) >> 2] | 0) >> 2]) - Math_fround(HEAPF32[$7 >> 2])) * Math_fround(HEAPF32[(HEAP32[($6 + 20 | 0) >> 2] | 0) >> 2])) + Math_fround(HEAPF32[$7 >> 2])); + HEAPF32[($6 + 12 | 0) >> 2] = Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[((HEAP32[($6 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2]) - Math_fround(HEAPF32[($7 + 4 | 0) >> 2])) * Math_fround(HEAPF32[(HEAP32[($6 + 20 | 0) >> 2] | 0) >> 2])) + Math_fround(HEAPF32[($7 + 4 | 0) >> 2])); + HEAPF32[($6 + 8 | 0) >> 2] = Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[((HEAP32[($6 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2]) - Math_fround(HEAPF32[($7 + 8 | 0) >> 2])) * Math_fround(HEAPF32[(HEAP32[($6 + 20 | 0) >> 2] | 0) >> 2])) + Math_fround(HEAPF32[($7 + 8 | 0) >> 2])); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $6 + 16 | 0 | 0, $6 + 12 | 0 | 0, $6 + 8 | 0 | 0) | 0; + __stack_pointer = $6 + 32 | 0; + return; + } + + function InverseTransformPoint3x3_28btVector3__2c_20btVector3_20const__2c_20btTransform_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $31 = Math_fround(0), $54 = Math_fround(0), $77 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 44 | 0) >> 2] = $0; + HEAP32[($5 + 40 | 0) >> 2] = $1; + HEAP32[($5 + 36 | 0) >> 2] = $2; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btTransform__getBasis_28_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 32 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 32 | 0) >> 2] | 0 | 0, 1 | 0) | 0), HEAP32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 32 | 0) >> 2] | 0 | 0, 2 | 0) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + $31 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0) >> 2]))); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $31)), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + $54 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0) >> 2]))); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $54)), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + $77 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0) >> 2]))); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $77)), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29(HEAP32[($5 + 44 | 0) >> 2] | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0, $5 + 8 | 0 | 0); + __stack_pointer = $5 + 48 | 0; + return; + } + + function TestInternalObjects_28btTransform_20const__2c_20btTransform_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btConvexPolyhedron_20const__2c_20btConvexPolyhedron_20const__2c_20float_29($0, $1, $2, $3, $4, $5, $6) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = Math_fround($6); + var $9 = 0, $104 = Math_fround(0), $115 = Math_fround(0), $134 = Math_fround(0), $65 = Math_fround(0), $88 = Math_fround(0), $150 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $9 = __stack_pointer - 128 | 0; + __stack_pointer = $9; + HEAP32[($9 + 120 | 0) >> 2] = $0; + HEAP32[($9 + 116 | 0) >> 2] = $1; + HEAP32[($9 + 112 | 0) >> 2] = $2; + HEAP32[($9 + 108 | 0) >> 2] = $3; + HEAP32[($9 + 104 | 0) >> 2] = $4; + HEAP32[($9 + 100 | 0) >> 2] = $5; + HEAPF32[($9 + 96 | 0) >> 2] = $6; + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($9 + 112 | 0) >> 2] | 0 | 0, HEAP32[($9 + 108 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 92 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28_29($9 + 76 | 0 | 0) | 0; + InverseTransformPoint3x3_28btVector3__2c_20btVector3_20const__2c_20btTransform_20const__29($9 + 76 | 0 | 0, HEAP32[($9 + 108 | 0) >> 2] | 0 | 0, HEAP32[($9 + 120 | 0) >> 2] | 0 | 0); + btVector3__btVector3_28_29($9 + 60 | 0 | 0) | 0; + InverseTransformPoint3x3_28btVector3__2c_20btVector3_20const__2c_20btTransform_20const__29($9 + 60 | 0 | 0, HEAP32[($9 + 108 | 0) >> 2] | 0 | 0, HEAP32[($9 + 116 | 0) >> 2] | 0 | 0); + BoxSupport_28float_20const__2c_20float_20const__2c_20float__29(btVector3__operator_20float_20const__28_29_20const((HEAP32[($9 + 104 | 0) >> 2] | 0) + 80 | 0 | 0) | 0 | 0, btVector3__operator_20float__28_29($9 + 76 | 0 | 0) | 0 | 0, $9 + 48 | 0 | 0); + BoxSupport_28float_20const__2c_20float_20const__2c_20float__29(btVector3__operator_20float_20const__28_29_20const((HEAP32[($9 + 100 | 0) >> 2] | 0) + 80 | 0 | 0) | 0 | 0, btVector3__operator_20float__28_29($9 + 60 | 0 | 0) | 0 | 0, $9 + 36 | 0 | 0); + $65 = Math_fround(Math_fround(Math_fround(HEAPF32[($9 + 48 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__x_28_29_20const($9 + 76 | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($9 + 52 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__y_28_29_20const($9 + 76 | 0 | 0) | 0) >> 2]))); + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[($9 + 56 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__z_28_29_20const($9 + 76 | 0 | 0) | 0) >> 2])) + $65)), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + $88 = Math_fround(Math_fround(Math_fround(HEAPF32[($9 + 36 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__x_28_29_20const($9 + 60 | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($9 + 40 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__y_28_29_20const($9 + 60 | 0 | 0) | 0) >> 2]))); + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(HEAPF32[($9 + 44 | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__z_28_29_20const($9 + 60 | 0 | 0) | 0) >> 2])) + $88)), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($9 + 32 | 0) >> 2]) > Math_fround(HEAPF32[((HEAP32[($9 + 104 | 0) >> 2] | 0) + 96 | 0) >> 2]) & 1 | 0)) { + break label$2 + } + $104 = Math_fround(HEAPF32[($9 + 32 | 0) >> 2]); + break label$1; + } + $104 = Math_fround(HEAPF32[((HEAP32[($9 + 104 | 0) >> 2] | 0) + 96 | 0) >> 2]); + } + HEAPF32[($9 + 24 | 0) >> 2] = $104; + label$3 : { + label$4 : { + if (!(Math_fround(HEAPF32[($9 + 28 | 0) >> 2]) > Math_fround(HEAPF32[((HEAP32[($9 + 100 | 0) >> 2] | 0) + 96 | 0) >> 2]) & 1 | 0)) { + break label$4 + } + $115 = Math_fround(HEAPF32[($9 + 28 | 0) >> 2]); + break label$3; + } + $115 = Math_fround(HEAPF32[((HEAP32[($9 + 100 | 0) >> 2] | 0) + 96 | 0) >> 2]); + } + HEAPF32[($9 + 20 | 0) >> 2] = $115; + HEAPF32[($9 + 16 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($9 + 20 | 0) >> 2]) + Math_fround(HEAPF32[($9 + 24 | 0) >> 2])); + HEAPF32[($9 + 12 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($9 + 16 | 0) >> 2]) + Math_fround(HEAPF32[($9 + 92 | 0) >> 2])); + HEAPF32[($9 + 8 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($9 + 16 | 0) >> 2]) - Math_fround(HEAPF32[($9 + 92 | 0) >> 2])); + label$5 : { + label$6 : { + if (!(Math_fround(HEAPF32[($9 + 12 | 0) >> 2]) < Math_fround(HEAPF32[($9 + 8 | 0) >> 2]) & 1 | 0)) { + break label$6 + } + $134 = Math_fround(HEAPF32[($9 + 12 | 0) >> 2]); + break label$5; + } + $134 = Math_fround(HEAPF32[($9 + 8 | 0) >> 2]); + } + HEAPF32[($9 + 4 | 0) >> 2] = $134; + label$7 : { + label$8 : { + if (!(Math_fround(HEAPF32[($9 + 4 | 0) >> 2]) > Math_fround(HEAPF32[($9 + 96 | 0) >> 2]) & 1 | 0)) { + break label$8 + } + HEAP8[($9 + 127 | 0) >> 0] = 0 & 1 | 0; + break label$7; + } + HEAP8[($9 + 127 | 0) >> 0] = 1 & 1 | 0; + } + $150 = (HEAPU8[($9 + 127 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $9 + 128 | 0; + return $150 | 0; + } + + function BoxSupport_28float_20const__2c_20float_20const__2c_20float__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $16 = Math_fround(0), $31 = Math_fround(0), $46 = Math_fround(0); + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[(HEAP32[($5 + 8 | 0) >> 2] | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + $16 = Math_fround(-Math_fround(HEAPF32[(HEAP32[($5 + 12 | 0) >> 2] | 0) >> 2])); + break label$1; + } + $16 = Math_fround(HEAPF32[(HEAP32[($5 + 12 | 0) >> 2] | 0) >> 2]); + } + HEAPF32[(HEAP32[($5 + 4 | 0) >> 2] | 0) >> 2] = $16; + label$3 : { + label$4 : { + if (!(Math_fround(HEAPF32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$4 + } + $31 = Math_fround(-Math_fround(HEAPF32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2])); + break label$3; + } + $31 = Math_fround(HEAPF32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2]); + } + HEAPF32[((HEAP32[($5 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = $31; + label$5 : { + label$6 : { + if (!(Math_fround(HEAPF32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$6 + } + $46 = Math_fround(-Math_fround(HEAPF32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2])); + break label$5; + } + $46 = Math_fround(HEAPF32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2]); + } + HEAPF32[((HEAP32[($5 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = $46; + return; + } + + function btPolyhedralContactClipping__findSeparatingAxis_28btConvexPolyhedron_20const__2c_20btConvexPolyhedron_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3__2c_20btDiscreteCollisionDetectorInterface__Result__29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $171 = 0, $173 = 0, $314 = 0, $316 = 0, $397 = 0, $398 = 0, $428 = 0, $429 = 0, $465 = 0, $466 = 0, $554 = 0, $556 = 0, $564 = 0, $573 = 0, $582 = 0, $591 = 0, $638 = 0, $647 = 0, $733 = 0, $758 = 0, $760 = 0, $1106 = 0, $1119 = 0, $1388 = 0, $1401 = 0, $1560 = 0, $1564 = 0, $1623 = 0, $1627 = 0, $1693 = 0, $1697 = 0, $1858 = 0, $1871 = 0, $1895 = 0, $1899 = 0, $1915 = 0, $1919 = 0, $1935 = 0, $1939 = 0, $1955 = 0, $1959 = 0, $2046 = 0, $2050 = 0, $2066 = 0, $2070 = 0, $2271 = 0, $2284 = 0, $771 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $8 = __stack_pointer - 720 | 0; + __stack_pointer = $8; + HEAP32[($8 + 712 | 0) >> 2] = $0; + HEAP32[($8 + 708 | 0) >> 2] = $1; + HEAP32[($8 + 704 | 0) >> 2] = $2; + HEAP32[($8 + 700 | 0) >> 2] = $3; + HEAP32[($8 + 696 | 0) >> 2] = $4; + HEAP32[($8 + 692 | 0) >> 2] = $5; + HEAP32[(0 + 115392 | 0) >> 2] = (HEAP32[(0 + 115392 | 0) >> 2] | 0) + 1 | 0; + btTransform__operator__28btVector3_20const__29_20const($8 + 676 | 0 | 0, HEAP32[($8 + 704 | 0) >> 2] | 0 | 0, (HEAP32[($8 + 712 | 0) >> 2] | 0) + 64 | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($8 + 660 | 0 | 0, HEAP32[($8 + 700 | 0) >> 2] | 0 | 0, (HEAP32[($8 + 708 | 0) >> 2] | 0) + 64 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 644 | 0 | 0, $8 + 676 | 0 | 0, $8 + 660 | 0 | 0); + HEAPF32[($8 + 640 | 0) >> 2] = Math_fround(3402823466385288598117041.0e14); + HEAP32[($8 + 636 | 0) >> 2] = 0; + (wasm2js_i32$0 = $8, wasm2js_i32$1 = btAlignedObjectArray_btFace___size_28_29_20const((HEAP32[($8 + 712 | 0) >> 2] | 0) + 24 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 632 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($8 + 628 | 0) >> 2] = 0; + label$1 : { + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($8 + 628 | 0) >> 2] | 0 | 0) < (HEAP32[($8 + 632 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 612 | 0 | 0, (btAlignedObjectArray_btFace___operator_5b_5d_28int_29_20const((HEAP32[($8 + 712 | 0) >> 2] | 0) + 24 | 0 | 0, HEAP32[($8 + 628 | 0) >> 2] | 0 | 0) | 0) + 20 | 0 | 0, ((btAlignedObjectArray_btFace___operator_5b_5d_28int_29_20const((HEAP32[($8 + 712 | 0) >> 2] | 0) + 24 | 0 | 0, HEAP32[($8 + 628 | 0) >> 2] | 0 | 0) | 0) + 20 | 0) + 4 | 0 | 0, ((btAlignedObjectArray_btFace___operator_5b_5d_28int_29_20const((HEAP32[($8 + 712 | 0) >> 2] | 0) + 24 | 0 | 0, HEAP32[($8 + 628 | 0) >> 2] | 0 | 0) | 0) + 20 | 0) + 8 | 0 | 0) | 0; + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 596 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 704 | 0) >> 2] | 0 | 0) | 0 | 0, $8 + 612 | 0 | 0); + label$4 : { + if (!(Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 644 | 0 | 0, $8 + 596 | 0 | 0)) < Math_fround(0 | 0) & 1 | 0)) { + break label$4 + } + HEAPF32[($8 + 592 | 0) >> 2] = Math_fround(-1.0); + btVector3__operator___28float_20const__29_1($8 + 596 | 0 | 0, $8 + 592 | 0 | 0) | 0; + } + HEAP32[($8 + 636 | 0) >> 2] = (HEAP32[($8 + 636 | 0) >> 2] | 0) + 1 | 0; + HEAP32[(0 + 115384 | 0) >> 2] = (HEAP32[(0 + 115384 | 0) >> 2] | 0) + 1 | 0; + label$5 : { + label$6 : { + if (!((HEAPU8[(0 + 112845 | 0) >> 0] | 0) & 1 | 0)) { + break label$6 + } + if ((TestInternalObjects_28btTransform_20const__2c_20btTransform_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btConvexPolyhedron_20const__2c_20btConvexPolyhedron_20const__2c_20float_29(HEAP32[($8 + 704 | 0) >> 2] | 0 | 0, HEAP32[($8 + 700 | 0) >> 2] | 0 | 0, $8 + 644 | 0 | 0, $8 + 596 | 0 | 0, HEAP32[($8 + 712 | 0) >> 2] | 0 | 0, HEAP32[($8 + 708 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($8 + 640 | 0) >> 2]))) | 0) & 1 | 0) { + break label$6 + } + break label$5; + } + HEAP32[(0 + 115388 | 0) >> 2] = (HEAP32[(0 + 115388 | 0) >> 2] | 0) + 1 | 0; + btVector3__btVector3_28_29($8 + 572 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 556 | 0 | 0) | 0; + label$7 : { + if ((TestSepAxis_28btConvexPolyhedron_20const__2c_20btConvexPolyhedron_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3_20const__2c_20float__2c_20btVector3__2c_20btVector3__29(HEAP32[($8 + 712 | 0) >> 2] | 0 | 0, HEAP32[($8 + 708 | 0) >> 2] | 0 | 0, HEAP32[($8 + 704 | 0) >> 2] | 0 | 0, HEAP32[($8 + 700 | 0) >> 2] | 0 | 0, $8 + 596 | 0 | 0, $8 + 588 | 0 | 0, $8 + 572 | 0 | 0, $8 + 556 | 0 | 0) | 0) & 1 | 0) { + break label$7 + } + HEAP8[($8 + 719 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + label$8 : { + if (!(Math_fround(HEAPF32[($8 + 588 | 0) >> 2]) < Math_fround(HEAPF32[($8 + 640 | 0) >> 2]) & 1 | 0)) { + break label$8 + } + HEAPF32[($8 + 640 | 0) >> 2] = Math_fround(HEAPF32[($8 + 588 | 0) >> 2]); + $171 = HEAP32[($8 + 696 | 0) >> 2] | 0; + i64toi32_i32$2 = $8; + i64toi32_i32$0 = HEAP32[($8 + 596 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($8 + 600 | 0) >> 2] | 0; + $1106 = i64toi32_i32$0; + i64toi32_i32$0 = $171; + HEAP32[i64toi32_i32$0 >> 2] = $1106; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $173 = 8; + i64toi32_i32$2 = ($8 + 596 | 0) + $173 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1119 = i64toi32_i32$1; + i64toi32_i32$1 = $171 + $173 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1119; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + } + HEAP32[($8 + 628 | 0) >> 2] = (HEAP32[($8 + 628 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + (wasm2js_i32$0 = $8, wasm2js_i32$1 = btAlignedObjectArray_btFace___size_28_29_20const((HEAP32[($8 + 708 | 0) >> 2] | 0) + 24 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 552 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($8 + 548 | 0) >> 2] = 0; + label$9 : { + label$10 : while (1) { + if (!((HEAP32[($8 + 548 | 0) >> 2] | 0 | 0) < (HEAP32[($8 + 552 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$9 + } + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 532 | 0 | 0, (btAlignedObjectArray_btFace___operator_5b_5d_28int_29_20const((HEAP32[($8 + 708 | 0) >> 2] | 0) + 24 | 0 | 0, HEAP32[($8 + 548 | 0) >> 2] | 0 | 0) | 0) + 20 | 0 | 0, ((btAlignedObjectArray_btFace___operator_5b_5d_28int_29_20const((HEAP32[($8 + 708 | 0) >> 2] | 0) + 24 | 0 | 0, HEAP32[($8 + 548 | 0) >> 2] | 0 | 0) | 0) + 20 | 0) + 4 | 0 | 0, ((btAlignedObjectArray_btFace___operator_5b_5d_28int_29_20const((HEAP32[($8 + 708 | 0) >> 2] | 0) + 24 | 0 | 0, HEAP32[($8 + 548 | 0) >> 2] | 0 | 0) | 0) + 20 | 0) + 8 | 0 | 0) | 0; + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 516 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 700 | 0) >> 2] | 0 | 0) | 0 | 0, $8 + 532 | 0 | 0); + label$11 : { + if (!(Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 644 | 0 | 0, $8 + 516 | 0 | 0)) < Math_fround(0 | 0) & 1 | 0)) { + break label$11 + } + HEAPF32[($8 + 512 | 0) >> 2] = Math_fround(-1.0); + btVector3__operator___28float_20const__29_1($8 + 516 | 0 | 0, $8 + 512 | 0 | 0) | 0; + } + HEAP32[($8 + 636 | 0) >> 2] = (HEAP32[($8 + 636 | 0) >> 2] | 0) + 1 | 0; + HEAP32[(0 + 115384 | 0) >> 2] = (HEAP32[(0 + 115384 | 0) >> 2] | 0) + 1 | 0; + label$12 : { + label$13 : { + if (!((HEAPU8[(0 + 112845 | 0) >> 0] | 0) & 1 | 0)) { + break label$13 + } + if ((TestInternalObjects_28btTransform_20const__2c_20btTransform_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btConvexPolyhedron_20const__2c_20btConvexPolyhedron_20const__2c_20float_29(HEAP32[($8 + 704 | 0) >> 2] | 0 | 0, HEAP32[($8 + 700 | 0) >> 2] | 0 | 0, $8 + 644 | 0 | 0, $8 + 516 | 0 | 0, HEAP32[($8 + 712 | 0) >> 2] | 0 | 0, HEAP32[($8 + 708 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($8 + 640 | 0) >> 2]))) | 0) & 1 | 0) { + break label$13 + } + break label$12; + } + HEAP32[(0 + 115388 | 0) >> 2] = (HEAP32[(0 + 115388 | 0) >> 2] | 0) + 1 | 0; + btVector3__btVector3_28_29($8 + 492 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 476 | 0 | 0) | 0; + label$14 : { + if ((TestSepAxis_28btConvexPolyhedron_20const__2c_20btConvexPolyhedron_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3_20const__2c_20float__2c_20btVector3__2c_20btVector3__29(HEAP32[($8 + 712 | 0) >> 2] | 0 | 0, HEAP32[($8 + 708 | 0) >> 2] | 0 | 0, HEAP32[($8 + 704 | 0) >> 2] | 0 | 0, HEAP32[($8 + 700 | 0) >> 2] | 0 | 0, $8 + 516 | 0 | 0, $8 + 508 | 0 | 0, $8 + 492 | 0 | 0, $8 + 476 | 0 | 0) | 0) & 1 | 0) { + break label$14 + } + HEAP8[($8 + 719 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + label$15 : { + if (!(Math_fround(HEAPF32[($8 + 508 | 0) >> 2]) < Math_fround(HEAPF32[($8 + 640 | 0) >> 2]) & 1 | 0)) { + break label$15 + } + HEAPF32[($8 + 640 | 0) >> 2] = Math_fround(HEAPF32[($8 + 508 | 0) >> 2]); + $314 = HEAP32[($8 + 696 | 0) >> 2] | 0; + i64toi32_i32$2 = $8; + i64toi32_i32$0 = HEAP32[($8 + 516 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($8 + 520 | 0) >> 2] | 0; + $1388 = i64toi32_i32$0; + i64toi32_i32$0 = $314; + HEAP32[i64toi32_i32$0 >> 2] = $1388; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $316 = 8; + i64toi32_i32$2 = ($8 + 516 | 0) + $316 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1401 = i64toi32_i32$1; + i64toi32_i32$1 = $314 + $316 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1401; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + } + HEAP32[($8 + 548 | 0) >> 2] = (HEAP32[($8 + 548 | 0) >> 2] | 0) + 1 | 0; + continue label$10; + }; + } + btVector3__btVector3_28_29($8 + 460 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 444 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 428 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 412 | 0 | 0) | 0; + HEAP32[($8 + 408 | 0) >> 2] = -1; + HEAP32[($8 + 404 | 0) >> 2] = -1; + btVector3__btVector3_28_29($8 + 384 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 368 | 0 | 0) | 0; + HEAPF32[($8 + 348 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 344 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 340 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 352 | 0 | 0, $8 + 348 | 0 | 0, $8 + 344 | 0 | 0, $8 + 340 | 0 | 0) | 0; + HEAPF32[($8 + 316 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 312 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 308 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 320 | 0 | 0, $8 + 316 | 0 | 0, $8 + 312 | 0 | 0, $8 + 308 | 0 | 0) | 0; + HEAP32[($8 + 304 | 0) >> 2] = 0; + HEAP32[($8 + 300 | 0) >> 2] = 0; + label$16 : { + label$17 : while (1) { + if (!((HEAP32[($8 + 300 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btVector3___size_28_29_20const((HEAP32[($8 + 712 | 0) >> 2] | 0) + 44 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$16 + } + $397 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29_20const((HEAP32[($8 + 712 | 0) >> 2] | 0) + 44 | 0 | 0, HEAP32[($8 + 300 | 0) >> 2] | 0 | 0) | 0; + $398 = 8; + i64toi32_i32$2 = $397 + $398 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1560 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 280 | 0) + $398 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1560; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $397; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1564 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 280 | 0) >> 2] = $1564; + HEAP32[($8 + 284 | 0) >> 2] = i64toi32_i32$0; + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 264 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 704 | 0) >> 2] | 0 | 0) | 0 | 0, $8 + 280 | 0 | 0); + HEAP32[($8 + 260 | 0) >> 2] = 0; + label$18 : { + label$19 : while (1) { + if (!((HEAP32[($8 + 260 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btVector3___size_28_29_20const((HEAP32[($8 + 708 | 0) >> 2] | 0) + 44 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$18 + } + $428 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29_20const((HEAP32[($8 + 708 | 0) >> 2] | 0) + 44 | 0 | 0, HEAP32[($8 + 260 | 0) >> 2] | 0 | 0) | 0; + $429 = 8; + i64toi32_i32$2 = $428 + $429 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1623 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 240 | 0) + $429 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1623; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $428; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1627 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 240 | 0) >> 2] = $1627; + HEAP32[($8 + 244 | 0) >> 2] = i64toi32_i32$0; + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 224 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($8 + 700 | 0) >> 2] | 0 | 0) | 0 | 0, $8 + 240 | 0 | 0); + btVector3__cross_28btVector3_20const__29_20const($8 + 208 | 0 | 0, $8 + 264 | 0 | 0, $8 + 224 | 0 | 0); + HEAP32[($8 + 304 | 0) >> 2] = (HEAP32[($8 + 304 | 0) >> 2] | 0) + 1 | 0; + label$20 : { + label$21 : { + if ((IsAlmostZero_28btVector3_20const__29($8 + 208 | 0 | 0) | 0) & 1 | 0) { + break label$21 + } + $465 = btVector3__normalize_28_29($8 + 208 | 0 | 0) | 0; + $466 = 8; + i64toi32_i32$2 = $465 + $466 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1693 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 208 | 0) + $466 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1693; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $465; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1697 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 208 | 0) >> 2] = $1697; + HEAP32[($8 + 212 | 0) >> 2] = i64toi32_i32$0; + label$22 : { + if (!(Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 644 | 0 | 0, $8 + 208 | 0 | 0)) < Math_fround(0 | 0) & 1 | 0)) { + break label$22 + } + HEAPF32[($8 + 204 | 0) >> 2] = Math_fround(-1.0); + btVector3__operator___28float_20const__29_1($8 + 208 | 0 | 0, $8 + 204 | 0 | 0) | 0; + } + HEAP32[(0 + 115384 | 0) >> 2] = (HEAP32[(0 + 115384 | 0) >> 2] | 0) + 1 | 0; + label$23 : { + if (!((HEAPU8[(0 + 112845 | 0) >> 0] | 0) & 1 | 0)) { + break label$23 + } + if ((TestInternalObjects_28btTransform_20const__2c_20btTransform_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btConvexPolyhedron_20const__2c_20btConvexPolyhedron_20const__2c_20float_29(HEAP32[($8 + 704 | 0) >> 2] | 0 | 0, HEAP32[($8 + 700 | 0) >> 2] | 0 | 0, $8 + 644 | 0 | 0, $8 + 208 | 0 | 0, HEAP32[($8 + 712 | 0) >> 2] | 0 | 0, HEAP32[($8 + 708 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($8 + 640 | 0) >> 2]))) | 0) & 1 | 0) { + break label$23 + } + break label$20; + } + HEAP32[(0 + 115388 | 0) >> 2] = (HEAP32[(0 + 115388 | 0) >> 2] | 0) + 1 | 0; + btVector3__btVector3_28_29($8 + 184 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 168 | 0 | 0) | 0; + label$24 : { + if ((TestSepAxis_28btConvexPolyhedron_20const__2c_20btConvexPolyhedron_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3_20const__2c_20float__2c_20btVector3__2c_20btVector3__29(HEAP32[($8 + 712 | 0) >> 2] | 0 | 0, HEAP32[($8 + 708 | 0) >> 2] | 0 | 0, HEAP32[($8 + 704 | 0) >> 2] | 0 | 0, HEAP32[($8 + 700 | 0) >> 2] | 0 | 0, $8 + 208 | 0 | 0, $8 + 200 | 0 | 0, $8 + 184 | 0 | 0, $8 + 168 | 0 | 0) | 0) & 1 | 0) { + break label$24 + } + HEAP8[($8 + 719 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + label$25 : { + if (!(Math_fround(HEAPF32[($8 + 200 | 0) >> 2]) < Math_fround(HEAPF32[($8 + 640 | 0) >> 2]) & 1 | 0)) { + break label$25 + } + HEAPF32[($8 + 640 | 0) >> 2] = Math_fround(HEAPF32[($8 + 200 | 0) >> 2]); + $554 = HEAP32[($8 + 696 | 0) >> 2] | 0; + i64toi32_i32$2 = $8; + i64toi32_i32$0 = HEAP32[($8 + 208 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($8 + 212 | 0) >> 2] | 0; + $1858 = i64toi32_i32$0; + i64toi32_i32$0 = $554; + HEAP32[i64toi32_i32$0 >> 2] = $1858; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $556 = 8; + i64toi32_i32$2 = ($8 + 208 | 0) + $556 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1871 = i64toi32_i32$1; + i64toi32_i32$1 = $554 + $556 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1871; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($8 + 408 | 0) >> 2] = HEAP32[($8 + 300 | 0) >> 2] | 0; + HEAP32[($8 + 404 | 0) >> 2] = HEAP32[($8 + 260 | 0) >> 2] | 0; + $564 = 8; + i64toi32_i32$2 = ($8 + 264 | 0) + $564 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1895 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 384 | 0) + $564 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1895; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 264 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 268 | 0) >> 2] | 0; + $1899 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 384 | 0) >> 2] = $1899; + HEAP32[($8 + 388 | 0) >> 2] = i64toi32_i32$0; + $573 = 8; + i64toi32_i32$2 = ($8 + 224 | 0) + $573 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1915 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 368 | 0) + $573 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1915; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 224 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 228 | 0) >> 2] | 0; + $1919 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 368 | 0) >> 2] = $1919; + HEAP32[($8 + 372 | 0) >> 2] = i64toi32_i32$0; + $582 = 8; + i64toi32_i32$2 = ($8 + 184 | 0) + $582 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1935 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 352 | 0) + $582 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1935; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 184 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 188 | 0) >> 2] | 0; + $1939 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 352 | 0) >> 2] = $1939; + HEAP32[($8 + 356 | 0) >> 2] = i64toi32_i32$0; + $591 = 8; + i64toi32_i32$2 = ($8 + 168 | 0) + $591 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1955 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 320 | 0) + $591 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1955; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 168 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 172 | 0) >> 2] | 0; + $1959 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 320 | 0) >> 2] = $1959; + HEAP32[($8 + 324 | 0) >> 2] = i64toi32_i32$0; + } + } + } + HEAP32[($8 + 260 | 0) >> 2] = (HEAP32[($8 + 260 | 0) >> 2] | 0) + 1 | 0; + continue label$19; + }; + } + HEAP32[($8 + 300 | 0) >> 2] = (HEAP32[($8 + 300 | 0) >> 2] | 0) + 1 | 0; + continue label$17; + }; + } + label$26 : { + if (!((HEAP32[($8 + 408 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$26 + } + if (!((HEAP32[($8 + 404 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$26 + } + btVector3__btVector3_28_29($8 + 152 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 136 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 120 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 96 | 0 | 0, $8 + 320 | 0 | 0, $8 + 352 | 0 | 0); + $638 = 8; + i64toi32_i32$2 = ($8 + 384 | 0) + $638 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2046 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 80 | 0) + $638 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2046; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 384 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 388 | 0) >> 2] | 0; + $2050 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 80 | 0) >> 2] = $2050; + HEAP32[($8 + 84 | 0) >> 2] = i64toi32_i32$0; + $647 = 8; + i64toi32_i32$2 = ($8 + 368 | 0) + $647 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2066 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 64 | 0) + $647 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2066; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 368 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 372 | 0) >> 2] | 0; + $2070 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 64 | 0) >> 2] = $2070; + HEAP32[($8 + 68 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($8 + 60 | 0) >> 2] = Math_fround(1000000015047466219876688.0e6); + HEAPF32[($8 + 56 | 0) >> 2] = Math_fround(1000000015047466219876688.0e6); + btSegmentsClosestPoints_28btVector3__2c_20btVector3__2c_20btVector3__2c_20float__2c_20float__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20btVector3_20const__2c_20float_29($8 + 152 | 0 | 0, $8 + 136 | 0 | 0, $8 + 120 | 0 | 0, $8 + 116 | 0 | 0, $8 + 112 | 0 | 0, $8 + 96 | 0 | 0, $8 + 80 | 0 | 0, Math_fround(Math_fround(HEAPF32[($8 + 56 | 0) >> 2])), $8 + 64 | 0 | 0, Math_fround(Math_fround(HEAPF32[($8 + 60 | 0) >> 2]))); + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($8 + 152 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 52 | 0) >> 2] = wasm2js_f32$0; + label$27 : { + if (!(Math_fround(HEAPF32[($8 + 52 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$27 + } + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btSqrt_28float_29(Math_fround(Math_fround(HEAPF32[($8 + 52 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 48 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($8 + 44 | 0) >> 2] = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[($8 + 48 | 0) >> 2])); + btVector3__operator___28float_20const__29_1($8 + 152 | 0 | 0, $8 + 44 | 0 | 0) | 0; + label$28 : { + if (!(Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 152 | 0 | 0, $8 + 644 | 0 | 0)) < Math_fround(0 | 0) & 1 | 0)) { + break label$28 + } + HEAPF32[($8 + 40 | 0) >> 2] = Math_fround(-1.0); + btVector3__operator___28float_20const__29_1($8 + 152 | 0 | 0, $8 + 40 | 0 | 0) | 0; + } + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 24 | 0 | 0, $8 + 320 | 0 | 0, $8 + 120 | 0 | 0); + HEAPF32[($8 + 20 | 0) >> 2] = Math_fround(HEAPF32[($8 + 48 | 0) >> 2]); + $733 = HEAP32[($8 + 692 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$733 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($733, $8 + 152 | 0, $8 + 24 | 0, Math_fround(-Math_fround(HEAPF32[($8 + 20 | 0) >> 2]))); + } + } + label$29 : { + if (!(Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 644 | 0 | 0, HEAP32[($8 + 696 | 0) >> 2] | 0 | 0)) < Math_fround(0 | 0) & 1 | 0)) { + break label$29 + } + operator__28btVector3_20const__29($8 + 4 | 0 | 0, HEAP32[($8 + 696 | 0) >> 2] | 0 | 0); + $758 = HEAP32[($8 + 696 | 0) >> 2] | 0; + i64toi32_i32$2 = $8; + i64toi32_i32$0 = HEAP32[($8 + 4 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($8 + 8 | 0) >> 2] | 0; + $2271 = i64toi32_i32$0; + i64toi32_i32$0 = $758; + HEAP32[i64toi32_i32$0 >> 2] = $2271; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $760 = 8; + i64toi32_i32$2 = ($8 + 4 | 0) + $760 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2284 = i64toi32_i32$1; + i64toi32_i32$1 = $758 + $760 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $2284; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + HEAP8[($8 + 719 | 0) >> 0] = 1 & 1 | 0; + } + $771 = (HEAPU8[($8 + 719 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $8 + 720 | 0; + return $771 | 0; + } + + function TestSepAxis_28btConvexPolyhedron_20const__2c_20btConvexPolyhedron_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3_20const__2c_20float__2c_20btVector3__2c_20btVector3__29($0, $1, $2, $3, $4, $5, $6, $7) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + var $10 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $99 = 0, $101 = 0, $107 = 0, $109 = 0, $117 = 0, $119 = 0, $125 = 0, $127 = 0, $343 = 0, $356 = 0, $362 = 0, $375 = 0, $387 = 0, $400 = 0, $406 = 0, $419 = 0, $138 = 0; + $10 = __stack_pointer - 128 | 0; + __stack_pointer = $10; + HEAP32[($10 + 120 | 0) >> 2] = $0; + HEAP32[($10 + 116 | 0) >> 2] = $1; + HEAP32[($10 + 112 | 0) >> 2] = $2; + HEAP32[($10 + 108 | 0) >> 2] = $3; + HEAP32[($10 + 104 | 0) >> 2] = $4; + HEAP32[($10 + 100 | 0) >> 2] = $5; + HEAP32[($10 + 96 | 0) >> 2] = $6; + HEAP32[($10 + 92 | 0) >> 2] = $7; + btVector3__btVector3_28_29($10 + 60 | 0 | 0) | 0; + btVector3__btVector3_28_29($10 + 44 | 0 | 0) | 0; + btVector3__btVector3_28_29($10 + 28 | 0 | 0) | 0; + btVector3__btVector3_28_29($10 + 12 | 0 | 0) | 0; + btConvexPolyhedron__project_28btTransform_20const__2c_20btVector3_20const__2c_20float__2c_20float__2c_20btVector3__2c_20btVector3__29_20const(HEAP32[($10 + 120 | 0) >> 2] | 0 | 0, HEAP32[($10 + 112 | 0) >> 2] | 0 | 0, HEAP32[($10 + 104 | 0) >> 2] | 0 | 0, $10 + 88 | 0 | 0, $10 + 84 | 0 | 0, $10 + 60 | 0 | 0, $10 + 44 | 0 | 0); + btConvexPolyhedron__project_28btTransform_20const__2c_20btVector3_20const__2c_20float__2c_20float__2c_20btVector3__2c_20btVector3__29_20const(HEAP32[($10 + 116 | 0) >> 2] | 0 | 0, HEAP32[($10 + 108 | 0) >> 2] | 0 | 0, HEAP32[($10 + 104 | 0) >> 2] | 0 | 0, $10 + 80 | 0 | 0, $10 + 76 | 0 | 0, $10 + 28 | 0 | 0, $10 + 12 | 0 | 0); + label$1 : { + label$2 : { + label$3 : { + if (Math_fround(HEAPF32[($10 + 84 | 0) >> 2]) < Math_fround(HEAPF32[($10 + 80 | 0) >> 2]) & 1 | 0) { + break label$3 + } + if (!(Math_fround(HEAPF32[($10 + 76 | 0) >> 2]) < Math_fround(HEAPF32[($10 + 88 | 0) >> 2]) & 1 | 0)) { + break label$2 + } + } + HEAP8[($10 + 127 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + HEAPF32[($10 + 8 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($10 + 84 | 0) >> 2]) - Math_fround(HEAPF32[($10 + 80 | 0) >> 2])); + label$4 : { + if (Math_fround(HEAPF32[($10 + 8 | 0) >> 2]) >= Math_fround(0 | 0) & 1 | 0) { + break label$4 + } + __assert_fail(80781 | 0, 73878 | 0, 94 | 0, 69820 | 0); + wasm2js_trap(); + } + HEAPF32[($10 + 4 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($10 + 76 | 0) >> 2]) - Math_fround(HEAPF32[($10 + 88 | 0) >> 2])); + label$5 : { + if (Math_fround(HEAPF32[($10 + 4 | 0) >> 2]) >= Math_fround(0 | 0) & 1 | 0) { + break label$5 + } + __assert_fail(80772 | 0, 73878 | 0, 96 | 0, 69820 | 0); + wasm2js_trap(); + } + label$6 : { + label$7 : { + if (!(Math_fround(HEAPF32[($10 + 8 | 0) >> 2]) < Math_fround(HEAPF32[($10 + 4 | 0) >> 2]) & 1 | 0)) { + break label$7 + } + HEAPF32[(HEAP32[($10 + 100 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[($10 + 8 | 0) >> 2]); + $99 = HEAP32[($10 + 96 | 0) >> 2] | 0; + i64toi32_i32$2 = $10; + i64toi32_i32$0 = HEAP32[($10 + 44 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($10 + 48 | 0) >> 2] | 0; + $343 = i64toi32_i32$0; + i64toi32_i32$0 = $99; + HEAP32[i64toi32_i32$0 >> 2] = $343; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $101 = 8; + i64toi32_i32$2 = ($10 + 44 | 0) + $101 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $356 = i64toi32_i32$1; + i64toi32_i32$1 = $99 + $101 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $356; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $107 = HEAP32[($10 + 92 | 0) >> 2] | 0; + i64toi32_i32$2 = $10; + i64toi32_i32$0 = HEAP32[($10 + 28 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($10 + 32 | 0) >> 2] | 0; + $362 = i64toi32_i32$0; + i64toi32_i32$0 = $107; + HEAP32[i64toi32_i32$0 >> 2] = $362; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $109 = 8; + i64toi32_i32$2 = ($10 + 28 | 0) + $109 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $375 = i64toi32_i32$1; + i64toi32_i32$1 = $107 + $109 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $375; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$6; + } + HEAPF32[(HEAP32[($10 + 100 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[($10 + 4 | 0) >> 2]); + $117 = HEAP32[($10 + 96 | 0) >> 2] | 0; + i64toi32_i32$2 = $10; + i64toi32_i32$0 = HEAP32[($10 + 60 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($10 + 64 | 0) >> 2] | 0; + $387 = i64toi32_i32$0; + i64toi32_i32$0 = $117; + HEAP32[i64toi32_i32$0 >> 2] = $387; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $119 = 8; + i64toi32_i32$2 = ($10 + 60 | 0) + $119 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $400 = i64toi32_i32$1; + i64toi32_i32$1 = $117 + $119 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $400; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $125 = HEAP32[($10 + 92 | 0) >> 2] | 0; + i64toi32_i32$2 = $10; + i64toi32_i32$0 = HEAP32[($10 + 12 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($10 + 16 | 0) >> 2] | 0; + $406 = i64toi32_i32$0; + i64toi32_i32$0 = $125; + HEAP32[i64toi32_i32$0 >> 2] = $406; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $127 = 8; + i64toi32_i32$2 = ($10 + 12 | 0) + $127 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $419 = i64toi32_i32$1; + i64toi32_i32$1 = $125 + $127 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $419; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + HEAP8[($10 + 127 | 0) >> 0] = 1 & 1 | 0; + } + $138 = (HEAPU8[($10 + 127 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $10 + 128 | 0; + return $138 | 0; + } + + function btSegmentsClosestPoints_28btVector3__2c_20btVector3__2c_20btVector3__2c_20float__2c_20float__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20btVector3_20const__2c_20float_29($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = Math_fround($7); + $8 = $8 | 0; + $9 = Math_fround($9); + var $12 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $145 = 0, $147 = 0, $158 = 0, $160 = 0, $178 = 0, $180 = 0, $543 = 0, $556 = 0, $573 = 0, $586 = 0, $616 = 0, $629 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $12 = __stack_pointer - 128 | 0; + __stack_pointer = $12; + HEAP32[($12 + 124 | 0) >> 2] = $0; + HEAP32[($12 + 120 | 0) >> 2] = $1; + HEAP32[($12 + 116 | 0) >> 2] = $2; + HEAP32[($12 + 112 | 0) >> 2] = $3; + HEAP32[($12 + 108 | 0) >> 2] = $4; + HEAP32[($12 + 104 | 0) >> 2] = $5; + HEAP32[($12 + 100 | 0) >> 2] = $6; + HEAPF32[($12 + 96 | 0) >> 2] = $7; + HEAP32[($12 + 92 | 0) >> 2] = $8; + HEAPF32[($12 + 88 | 0) >> 2] = $9; + (wasm2js_i32$0 = $12, wasm2js_f32$0 = Math_fround(btDot_28btVector3_20const__2c_20btVector3_20const__29(HEAP32[($12 + 100 | 0) >> 2] | 0 | 0, HEAP32[($12 + 92 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 84 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $12, wasm2js_f32$0 = Math_fround(btDot_28btVector3_20const__2c_20btVector3_20const__29(HEAP32[($12 + 100 | 0) >> 2] | 0 | 0, HEAP32[($12 + 104 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 80 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $12, wasm2js_f32$0 = Math_fround(btDot_28btVector3_20const__2c_20btVector3_20const__29(HEAP32[($12 + 92 | 0) >> 2] | 0 | 0, HEAP32[($12 + 104 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 76 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($12 + 72 | 0) >> 2] = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($12 + 84 | 0) >> 2])) * Math_fround(HEAPF32[($12 + 84 | 0) >> 2])) + Math_fround(1.0)); + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($12 + 72 | 0) >> 2]) == Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2] = Math_fround(0 | 0); + break label$1; + } + HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2] = Math_fround(Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($12 + 76 | 0) >> 2])) * Math_fround(HEAPF32[($12 + 84 | 0) >> 2])) + Math_fround(HEAPF32[($12 + 80 | 0) >> 2])) / Math_fround(HEAPF32[($12 + 72 | 0) >> 2])); + label$3 : { + label$4 : { + if (!(Math_fround(HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2]) < Math_fround(-Math_fround(HEAPF32[($12 + 96 | 0) >> 2])) & 1 | 0)) { + break label$4 + } + HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[($12 + 96 | 0) >> 2])); + break label$3; + } + label$5 : { + if (!(Math_fround(HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2]) > Math_fround(HEAPF32[($12 + 96 | 0) >> 2]) & 1 | 0)) { + break label$5 + } + HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[($12 + 96 | 0) >> 2]); + } + } + } + HEAPF32[(HEAP32[($12 + 108 | 0) >> 2] | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[($12 + 84 | 0) >> 2])) + Math_fround(-Math_fround(HEAPF32[($12 + 76 | 0) >> 2]))); + label$6 : { + label$7 : { + if (!(Math_fround(HEAPF32[(HEAP32[($12 + 108 | 0) >> 2] | 0) >> 2]) < Math_fround(-Math_fround(HEAPF32[($12 + 88 | 0) >> 2])) & 1 | 0)) { + break label$7 + } + HEAPF32[(HEAP32[($12 + 108 | 0) >> 2] | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[($12 + 88 | 0) >> 2])); + HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[(HEAP32[($12 + 108 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[($12 + 84 | 0) >> 2])) + Math_fround(HEAPF32[($12 + 80 | 0) >> 2])); + label$8 : { + label$9 : { + if (!(Math_fround(HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2]) < Math_fround(-Math_fround(HEAPF32[($12 + 96 | 0) >> 2])) & 1 | 0)) { + break label$9 + } + HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[($12 + 96 | 0) >> 2])); + break label$8; + } + label$10 : { + if (!(Math_fround(HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2]) > Math_fround(HEAPF32[($12 + 96 | 0) >> 2]) & 1 | 0)) { + break label$10 + } + HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[($12 + 96 | 0) >> 2]); + } + } + break label$6; + } + label$11 : { + if (!(Math_fround(HEAPF32[(HEAP32[($12 + 108 | 0) >> 2] | 0) >> 2]) > Math_fround(HEAPF32[($12 + 88 | 0) >> 2]) & 1 | 0)) { + break label$11 + } + HEAPF32[(HEAP32[($12 + 108 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[($12 + 88 | 0) >> 2]); + HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[(HEAP32[($12 + 108 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[($12 + 84 | 0) >> 2])) + Math_fround(HEAPF32[($12 + 80 | 0) >> 2])); + label$12 : { + label$13 : { + if (!(Math_fround(HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2]) < Math_fround(-Math_fround(HEAPF32[($12 + 96 | 0) >> 2])) & 1 | 0)) { + break label$13 + } + HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[($12 + 96 | 0) >> 2])); + break label$12; + } + label$14 : { + if (!(Math_fround(HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2]) > Math_fround(HEAPF32[($12 + 96 | 0) >> 2]) & 1 | 0)) { + break label$14 + } + HEAPF32[(HEAP32[($12 + 112 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[($12 + 96 | 0) >> 2]); + } + } + } + } + operator__28btVector3_20const__2c_20float_20const__29($12 + 56 | 0 | 0, HEAP32[($12 + 100 | 0) >> 2] | 0 | 0, HEAP32[($12 + 112 | 0) >> 2] | 0 | 0); + $145 = HEAP32[($12 + 120 | 0) >> 2] | 0; + i64toi32_i32$2 = $12; + i64toi32_i32$0 = HEAP32[($12 + 56 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($12 + 60 | 0) >> 2] | 0; + $543 = i64toi32_i32$0; + i64toi32_i32$0 = $145; + HEAP32[i64toi32_i32$0 >> 2] = $543; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $147 = 8; + i64toi32_i32$2 = ($12 + 56 | 0) + $147 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $556 = i64toi32_i32$1; + i64toi32_i32$1 = $145 + $147 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $556; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20float_20const__29($12 + 40 | 0 | 0, HEAP32[($12 + 92 | 0) >> 2] | 0 | 0, HEAP32[($12 + 108 | 0) >> 2] | 0 | 0); + $158 = HEAP32[($12 + 116 | 0) >> 2] | 0; + i64toi32_i32$2 = $12; + i64toi32_i32$0 = HEAP32[($12 + 40 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($12 + 44 | 0) >> 2] | 0; + $573 = i64toi32_i32$0; + i64toi32_i32$0 = $158; + HEAP32[i64toi32_i32$0 >> 2] = $573; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $160 = 8; + i64toi32_i32$2 = ($12 + 40 | 0) + $160 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $586 = i64toi32_i32$1; + i64toi32_i32$1 = $158 + $160 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $586; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($12 + 8 | 0 | 0, HEAP32[($12 + 104 | 0) >> 2] | 0 | 0, HEAP32[($12 + 120 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($12 + 24 | 0 | 0, $12 + 8 | 0 | 0, HEAP32[($12 + 116 | 0) >> 2] | 0 | 0); + $178 = HEAP32[($12 + 124 | 0) >> 2] | 0; + i64toi32_i32$2 = $12; + i64toi32_i32$0 = HEAP32[($12 + 24 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($12 + 28 | 0) >> 2] | 0; + $616 = i64toi32_i32$0; + i64toi32_i32$0 = $178; + HEAP32[i64toi32_i32$0 >> 2] = $616; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $180 = 8; + i64toi32_i32$2 = ($12 + 24 | 0) + $180 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $629 = i64toi32_i32$1; + i64toi32_i32$1 = $178 + $180 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $629; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $12 + 128 | 0; + return; + } + + function btPolyhedralContactClipping__clipFaceAgainstHull_28btVector3_20const__2c_20btConvexPolyhedron_20const__2c_20btTransform_20const__2c_20btAlignedObjectArray_btVector3___2c_20btAlignedObjectArray_btVector3___2c_20float_2c_20float_2c_20btDiscreteCollisionDetectorInterface__Result__29($0, $1, $2, $3, $4, $5, $6, $7) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = Math_fround($5); + $6 = Math_fround($6); + $7 = $7 | 0; + var $10 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $195 = 0, $276 = 0, $277 = 0, $306 = 0, $307 = 0, $314 = 0, $11 = 0, $144 = 0, $740 = 0, $744 = 0, $217 = 0, $907 = 0, $911 = 0, $977 = 0, $981 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$1 = 0; + $10 = __stack_pointer - 384 | 0; + __stack_pointer = $10; + HEAP32[($10 + 380 | 0) >> 2] = $0; + HEAP32[($10 + 376 | 0) >> 2] = $1; + HEAP32[($10 + 372 | 0) >> 2] = $2; + HEAP32[($10 + 368 | 0) >> 2] = $3; + HEAP32[($10 + 364 | 0) >> 2] = $4; + HEAPF32[($10 + 360 | 0) >> 2] = $5; + HEAPF32[($10 + 356 | 0) >> 2] = $6; + HEAP32[($10 + 352 | 0) >> 2] = $7; + $11 = HEAP32[($10 + 364 | 0) >> 2] | 0; + btVector3__btVector3_28_29($10 + 336 | 0 | 0) | 0; + btAlignedObjectArray_btVector3___resize_28int_2c_20btVector3_20const__29($11 | 0, 0 | 0, $10 + 336 | 0 | 0); + HEAP32[($10 + 332 | 0) >> 2] = HEAP32[($10 + 368 | 0) >> 2] | 0; + HEAP32[($10 + 328 | 0) >> 2] = HEAP32[($10 + 364 | 0) >> 2] | 0; + btAlignedObjectArray_btVector3___reserve_28int_29(HEAP32[($10 + 328 | 0) >> 2] | 0 | 0, btAlignedObjectArray_btVector3___size_28_29_20const(HEAP32[($10 + 332 | 0) >> 2] | 0 | 0) | 0 | 0); + HEAP32[($10 + 324 | 0) >> 2] = -1; + HEAPF32[($10 + 320 | 0) >> 2] = Math_fround(3402823466385288598117041.0e14); + HEAP32[($10 + 316 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($10 + 316 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btFace___size_28_29_20const((HEAP32[($10 + 376 | 0) >> 2] | 0) + 24 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($10 + 300 | 0 | 0, (btAlignedObjectArray_btFace___operator_5b_5d_28int_29_20const((HEAP32[($10 + 376 | 0) >> 2] | 0) + 24 | 0 | 0, HEAP32[($10 + 316 | 0) >> 2] | 0 | 0) | 0) + 20 | 0 | 0, ((btAlignedObjectArray_btFace___operator_5b_5d_28int_29_20const((HEAP32[($10 + 376 | 0) >> 2] | 0) + 24 | 0 | 0, HEAP32[($10 + 316 | 0) >> 2] | 0 | 0) | 0) + 20 | 0) + 4 | 0 | 0, ((btAlignedObjectArray_btFace___operator_5b_5d_28int_29_20const((HEAP32[($10 + 376 | 0) >> 2] | 0) + 24 | 0 | 0, HEAP32[($10 + 316 | 0) >> 2] | 0 | 0) | 0) + 20 | 0) + 8 | 0 | 0) | 0; + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($10 + 284 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($10 + 372 | 0) >> 2] | 0 | 0) | 0 | 0, $10 + 300 | 0 | 0); + (wasm2js_i32$0 = $10, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($10 + 284 | 0 | 0, HEAP32[($10 + 380 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 280 | 0) >> 2] = wasm2js_f32$0; + label$3 : { + if (!(Math_fround(HEAPF32[($10 + 280 | 0) >> 2]) < Math_fround(HEAPF32[($10 + 320 | 0) >> 2]) & 1 | 0)) { + break label$3 + } + HEAPF32[($10 + 320 | 0) >> 2] = Math_fround(HEAPF32[($10 + 280 | 0) >> 2]); + HEAP32[($10 + 324 | 0) >> 2] = HEAP32[($10 + 316 | 0) >> 2] | 0; + } + HEAP32[($10 + 316 | 0) >> 2] = (HEAP32[($10 + 316 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + label$4 : { + label$5 : { + if (!((HEAP32[($10 + 324 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0)) { + break label$5 + } + break label$4; + } + (wasm2js_i32$0 = $10, wasm2js_i32$1 = btAlignedObjectArray_btFace___operator_5b_5d_28int_29_20const((HEAP32[($10 + 376 | 0) >> 2] | 0) + 24 | 0 | 0, HEAP32[($10 + 324 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 276 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $10, wasm2js_i32$1 = btAlignedObjectArray_int___size_28_29_20const(HEAP32[($10 + 276 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 272 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($10 + 268 | 0) >> 2] = 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($10 + 268 | 0) >> 2] | 0 | 0) < (HEAP32[($10 + 272 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + (wasm2js_i32$0 = $10, wasm2js_i32$1 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29_20const((HEAP32[($10 + 376 | 0) >> 2] | 0) + 4 | 0 | 0, HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29_20const(HEAP32[($10 + 276 | 0) >> 2] | 0 | 0, HEAP32[($10 + 268 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 264 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $10, wasm2js_i32$1 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29_20const((HEAP32[($10 + 376 | 0) >> 2] | 0) + 4 | 0 | 0, HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29_20const(HEAP32[($10 + 276 | 0) >> 2] | 0 | 0, ((HEAP32[($10 + 268 | 0) >> 2] | 0) + 1 | 0 | 0) % (HEAP32[($10 + 272 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 260 | 0) >> 2] = wasm2js_i32$1; + operator__28btVector3_20const__2c_20btVector3_20const__29($10 + 244 | 0 | 0, HEAP32[($10 + 264 | 0) >> 2] | 0 | 0, HEAP32[($10 + 260 | 0) >> 2] | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($10 + 228 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($10 + 372 | 0) >> 2] | 0 | 0) | 0 | 0, $10 + 244 | 0 | 0); + $144 = btTransform__getBasis_28_29_20const(HEAP32[($10 + 372 | 0) >> 2] | 0 | 0) | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($10 + 196 | 0 | 0, (HEAP32[($10 + 276 | 0) >> 2] | 0) + 20 | 0 | 0, ((HEAP32[($10 + 276 | 0) >> 2] | 0) + 20 | 0) + 4 | 0 | 0, ((HEAP32[($10 + 276 | 0) >> 2] | 0) + 20 | 0) + 8 | 0 | 0) | 0; + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($10 + 212 | 0 | 0, $144 | 0, $10 + 196 | 0 | 0); + btVector3__cross_28btVector3_20const__29_20const($10 + 164 | 0 | 0, $10 + 228 | 0 | 0, $10 + 212 | 0 | 0); + operator__28btVector3_20const__29($10 + 180 | 0 | 0, $10 + 164 | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($10 + 148 | 0 | 0, HEAP32[($10 + 372 | 0) >> 2] | 0 | 0, HEAP32[($10 + 264 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $10, wasm2js_f32$0 = Math_fround(-Math_fround(btVector3__dot_28btVector3_20const__29_20const($10 + 148 | 0 | 0, $10 + 180 | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 144 | 0) >> 2] = wasm2js_f32$0; + $195 = 8; + i64toi32_i32$2 = ($10 + 180 | 0) + $195 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $740 = i64toi32_i32$0; + i64toi32_i32$0 = ($10 + 128 | 0) + $195 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $740; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $10; + i64toi32_i32$1 = HEAP32[($10 + 180 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($10 + 184 | 0) >> 2] | 0; + $744 = i64toi32_i32$1; + i64toi32_i32$1 = $10; + HEAP32[($10 + 128 | 0) >> 2] = $744; + HEAP32[($10 + 132 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($10 + 124 | 0) >> 2] = Math_fround(HEAPF32[($10 + 144 | 0) >> 2]); + btPolyhedralContactClipping__clipFace_28btAlignedObjectArray_btVector3__20const__2c_20btAlignedObjectArray_btVector3___2c_20btVector3_20const__2c_20float_29(HEAP32[($10 + 332 | 0) >> 2] | 0 | 0, HEAP32[($10 + 328 | 0) >> 2] | 0 | 0, $10 + 128 | 0 | 0, Math_fround(Math_fround(HEAPF32[($10 + 124 | 0) >> 2]))); + void_20btSwap_btAlignedObjectArray_btVector3____28btAlignedObjectArray_btVector3____2c_20btAlignedObjectArray_btVector3____29($10 + 332 | 0 | 0, $10 + 328 | 0 | 0); + $217 = HEAP32[($10 + 328 | 0) >> 2] | 0; + btVector3__btVector3_28_29($10 + 108 | 0 | 0) | 0; + btAlignedObjectArray_btVector3___resize_28int_2c_20btVector3_20const__29($217 | 0, 0 | 0, $10 + 108 | 0 | 0); + HEAP32[($10 + 268 | 0) >> 2] = (HEAP32[($10 + 268 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + btVector3__btVector3_28_29($10 + 92 | 0 | 0) | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($10 + 76 | 0 | 0, (HEAP32[($10 + 276 | 0) >> 2] | 0) + 20 | 0 | 0, ((HEAP32[($10 + 276 | 0) >> 2] | 0) + 20 | 0) + 4 | 0 | 0, ((HEAP32[($10 + 276 | 0) >> 2] | 0) + 20 | 0) + 8 | 0 | 0) | 0; + HEAPF32[($10 + 72 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($10 + 276 | 0) >> 2] | 0) + 32 | 0) >> 2]); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($10 + 56 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($10 + 372 | 0) >> 2] | 0 | 0) | 0 | 0, $10 + 76 | 0 | 0); + (wasm2js_i32$0 = $10, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[($10 + 72 | 0) >> 2]) - Math_fround(btVector3__dot_28btVector3_20const__29_20const($10 + 56 | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($10 + 372 | 0) >> 2] | 0 | 0) | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 52 | 0) >> 2] = wasm2js_f32$0; + HEAP32[($10 + 48 | 0) >> 2] = 0; + label$8 : while (1) { + if (!((HEAP32[($10 + 48 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btVector3___size_28_29_20const(HEAP32[($10 + 332 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$4 + } + $276 = btAlignedObjectArray_btVector3___at_28int_29(HEAP32[($10 + 332 | 0) >> 2] | 0 | 0, HEAP32[($10 + 48 | 0) >> 2] | 0 | 0) | 0; + $277 = 8; + i64toi32_i32$2 = $276 + $277 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $907 = i64toi32_i32$0; + i64toi32_i32$0 = ($10 + 32 | 0) + $277 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $907; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $276; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $911 = i64toi32_i32$1; + i64toi32_i32$1 = $10; + HEAP32[($10 + 32 | 0) >> 2] = $911; + HEAP32[($10 + 36 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $10, wasm2js_f32$0 = Math_fround(Math_fround(btVector3__dot_28btVector3_20const__29_20const($10 + 56 | 0 | 0, $10 + 32 | 0 | 0)) + Math_fround(HEAPF32[($10 + 52 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + label$9 : { + if (!(Math_fround(HEAPF32[($10 + 28 | 0) >> 2]) <= Math_fround(HEAPF32[($10 + 360 | 0) >> 2]) & 1 | 0)) { + break label$9 + } + HEAPF32[($10 + 28 | 0) >> 2] = Math_fround(HEAPF32[($10 + 360 | 0) >> 2]); + } + label$10 : { + if (!(Math_fround(HEAPF32[($10 + 28 | 0) >> 2]) <= Math_fround(HEAPF32[($10 + 356 | 0) >> 2]) & 1 | 0)) { + break label$10 + } + $306 = btAlignedObjectArray_btVector3___at_28int_29(HEAP32[($10 + 332 | 0) >> 2] | 0 | 0, HEAP32[($10 + 48 | 0) >> 2] | 0 | 0) | 0; + $307 = 8; + i64toi32_i32$2 = $306 + $307 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $977 = i64toi32_i32$0; + i64toi32_i32$0 = ($10 + 8 | 0) + $307 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $977; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $306; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $981 = i64toi32_i32$1; + i64toi32_i32$1 = $10; + HEAP32[($10 + 8 | 0) >> 2] = $981; + HEAP32[($10 + 12 | 0) >> 2] = i64toi32_i32$0; + $314 = HEAP32[($10 + 352 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$314 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($314, HEAP32[($10 + 380 | 0) >> 2] | 0, $10 + 8 | 0, Math_fround(HEAPF32[($10 + 28 | 0) >> 2])); + } + HEAP32[($10 + 48 | 0) >> 2] = (HEAP32[($10 + 48 | 0) >> 2] | 0) + 1 | 0; + continue label$8; + }; + } + __stack_pointer = $10 + 384 | 0; + return; + } + + function void_20btSwap_btAlignedObjectArray_btVector3____28btAlignedObjectArray_btVector3____2c_20btAlignedObjectArray_btVector3____29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] = HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + return; + } + + function btPolyhedralContactClipping__clipHullAgainstHull_28btVector3_20const__2c_20btConvexPolyhedron_20const__2c_20btConvexPolyhedron_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20float_2c_20float_2c_20btAlignedObjectArray_btVector3___2c_20btAlignedObjectArray_btVector3___2c_20btDiscreteCollisionDetectorInterface__Result__29($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = Math_fround($5); + $6 = Math_fround($6); + $7 = $7 | 0; + $8 = $8 | 0; + $9 = $9 | 0; + var $12 = 0, $83 = 0, $114 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$1 = 0; + $12 = __stack_pointer - 160 | 0; + __stack_pointer = $12; + HEAP32[($12 + 156 | 0) >> 2] = $0; + HEAP32[($12 + 152 | 0) >> 2] = $1; + HEAP32[($12 + 148 | 0) >> 2] = $2; + HEAP32[($12 + 144 | 0) >> 2] = $3; + HEAP32[($12 + 140 | 0) >> 2] = $4; + HEAPF32[($12 + 136 | 0) >> 2] = $5; + HEAPF32[($12 + 132 | 0) >> 2] = $6; + HEAP32[($12 + 128 | 0) >> 2] = $7; + HEAP32[($12 + 124 | 0) >> 2] = $8; + HEAP32[($12 + 120 | 0) >> 2] = $9; + btVector3__normalized_28_29_20const($12 + 104 | 0 | 0, HEAP32[($12 + 156 | 0) >> 2] | 0 | 0); + HEAP32[($12 + 100 | 0) >> 2] = -1; + HEAPF32[($12 + 96 | 0) >> 2] = Math_fround(-3402823466385288598117041.0e14); + HEAP32[($12 + 92 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($12 + 92 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btFace___size_28_29_20const((HEAP32[($12 + 148 | 0) >> 2] | 0) + 24 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($12 + 76 | 0 | 0, (btAlignedObjectArray_btFace___operator_5b_5d_28int_29_20const((HEAP32[($12 + 148 | 0) >> 2] | 0) + 24 | 0 | 0, HEAP32[($12 + 92 | 0) >> 2] | 0 | 0) | 0) + 20 | 0 | 0, ((btAlignedObjectArray_btFace___operator_5b_5d_28int_29_20const((HEAP32[($12 + 148 | 0) >> 2] | 0) + 24 | 0 | 0, HEAP32[($12 + 92 | 0) >> 2] | 0 | 0) | 0) + 20 | 0) + 4 | 0 | 0, ((btAlignedObjectArray_btFace___operator_5b_5d_28int_29_20const((HEAP32[($12 + 148 | 0) >> 2] | 0) + 24 | 0 | 0, HEAP32[($12 + 92 | 0) >> 2] | 0 | 0) | 0) + 20 | 0) + 8 | 0 | 0) | 0; + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($12 + 60 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($12 + 140 | 0) >> 2] | 0 | 0) | 0 | 0, $12 + 76 | 0 | 0); + (wasm2js_i32$0 = $12, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($12 + 60 | 0 | 0, $12 + 104 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 56 | 0) >> 2] = wasm2js_f32$0; + label$3 : { + if (!(Math_fround(HEAPF32[($12 + 56 | 0) >> 2]) > Math_fround(HEAPF32[($12 + 96 | 0) >> 2]) & 1 | 0)) { + break label$3 + } + HEAPF32[($12 + 96 | 0) >> 2] = Math_fround(HEAPF32[($12 + 56 | 0) >> 2]); + HEAP32[($12 + 100 | 0) >> 2] = HEAP32[($12 + 92 | 0) >> 2] | 0; + } + HEAP32[($12 + 92 | 0) >> 2] = (HEAP32[($12 + 92 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + $83 = HEAP32[($12 + 128 | 0) >> 2] | 0; + btVector3__btVector3_28_29($12 + 40 | 0 | 0) | 0; + btAlignedObjectArray_btVector3___resize_28int_2c_20btVector3_20const__29($83 | 0, 0 | 0, $12 + 40 | 0 | 0); + (wasm2js_i32$0 = $12, wasm2js_i32$1 = btAlignedObjectArray_btFace___operator_5b_5d_28int_29_20const((HEAP32[($12 + 148 | 0) >> 2] | 0) + 24 | 0 | 0, HEAP32[($12 + 100 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $12, wasm2js_i32$1 = btAlignedObjectArray_int___size_28_29_20const(HEAP32[($12 + 36 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($12 + 28 | 0) >> 2] = 0; + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($12 + 28 | 0) >> 2] | 0 | 0) < (HEAP32[($12 + 32 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + (wasm2js_i32$0 = $12, wasm2js_i32$1 = btAlignedObjectArray_btVector3___operator_5b_5d_28int_29_20const((HEAP32[($12 + 148 | 0) >> 2] | 0) + 4 | 0 | 0, HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29_20const(HEAP32[($12 + 36 | 0) >> 2] | 0 | 0, HEAP32[($12 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_i32$1; + $114 = HEAP32[($12 + 128 | 0) >> 2] | 0; + btTransform__operator__28btVector3_20const__29_20const($12 + 8 | 0 | 0, HEAP32[($12 + 140 | 0) >> 2] | 0 | 0, HEAP32[($12 + 24 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btVector3___push_back_28btVector3_20const__29($114 | 0, $12 + 8 | 0 | 0); + HEAP32[($12 + 28 | 0) >> 2] = (HEAP32[($12 + 28 | 0) >> 2] | 0) + 1 | 0; + continue label$5; + }; + } + label$6 : { + if (!((HEAP32[($12 + 100 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$6 + } + btPolyhedralContactClipping__clipFaceAgainstHull_28btVector3_20const__2c_20btConvexPolyhedron_20const__2c_20btTransform_20const__2c_20btAlignedObjectArray_btVector3___2c_20btAlignedObjectArray_btVector3___2c_20float_2c_20float_2c_20btDiscreteCollisionDetectorInterface__Result__29($12 + 104 | 0 | 0, HEAP32[($12 + 152 | 0) >> 2] | 0 | 0, HEAP32[($12 + 144 | 0) >> 2] | 0 | 0, HEAP32[($12 + 128 | 0) >> 2] | 0 | 0, HEAP32[($12 + 124 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($12 + 136 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($12 + 132 | 0) >> 2])), HEAP32[($12 + 120 | 0) >> 2] | 0 | 0); + } + __stack_pointer = $12 + 160 | 0; + return; + } + + function _GLOBAL__sub_I_btPolyhedralContactClipping_cpp() { + __cxx_global_var_init_67(); + return; + } + + function __cxx_global_var_init_68() { + btInfMaskConverter__btInfMaskConverter_28int_29(115396 | 0, 2139095040 | 0) | 0; + return; + } + + function btFixedConstraint__btFixedConstraint_28btRigidBody__2c_20btRigidBody__2c_20btTransform_20const__2c_20btTransform_20const__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0; + $7 = __stack_pointer - 144 | 0; + __stack_pointer = $7; + HEAP32[($7 + 140 | 0) >> 2] = $0; + HEAP32[($7 + 136 | 0) >> 2] = $1; + HEAP32[($7 + 132 | 0) >> 2] = $2; + HEAP32[($7 + 128 | 0) >> 2] = $3; + HEAP32[($7 + 124 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 140 | 0) >> 2] | 0; + btGeneric6DofSpring2Constraint__btGeneric6DofSpring2Constraint_28btRigidBody__2c_20btRigidBody__2c_20btTransform_20const__2c_20btTransform_20const__2c_20RotateOrder_29($8 | 0, HEAP32[($7 + 136 | 0) >> 2] | 0 | 0, HEAP32[($7 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7 + 124 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + HEAP32[$8 >> 2] = 101992 + 8 | 0; + HEAPF32[($7 + 104 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($7 + 100 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($7 + 96 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 108 | 0 | 0, $7 + 104 | 0 | 0, $7 + 100 | 0 | 0, $7 + 96 | 0 | 0) | 0; + btGeneric6DofSpring2Constraint__setAngularLowerLimit_28btVector3_20const__29($8 | 0, $7 + 108 | 0 | 0); + HEAPF32[($7 + 76 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($7 + 72 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($7 + 68 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 80 | 0 | 0, $7 + 76 | 0 | 0, $7 + 72 | 0 | 0, $7 + 68 | 0 | 0) | 0; + btGeneric6DofSpring2Constraint__setAngularUpperLimit_28btVector3_20const__29($8 | 0, $7 + 80 | 0 | 0); + HEAPF32[($7 + 48 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($7 + 44 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($7 + 40 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 52 | 0 | 0, $7 + 48 | 0 | 0, $7 + 44 | 0 | 0, $7 + 40 | 0 | 0) | 0; + btGeneric6DofSpring2Constraint__setLinearLowerLimit_28btVector3_20const__29($8 | 0, $7 + 52 | 0 | 0); + HEAPF32[($7 + 20 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($7 + 16 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($7 + 12 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($7 + 24 | 0 | 0, $7 + 20 | 0 | 0, $7 + 16 | 0 | 0, $7 + 12 | 0 | 0) | 0; + btGeneric6DofSpring2Constraint__setLinearUpperLimit_28btVector3_20const__29($8 | 0, $7 + 24 | 0 | 0); + __stack_pointer = $7 + 144 | 0; + return $8 | 0; + } + + function btGeneric6DofSpring2Constraint__setAngularLowerLimit_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $21 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$1 + } + $21 = Math_fround(btNormalizeAngle_28float_29(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) + ((HEAP32[($4 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])))); + HEAPF32[(($5 + 968 | 0) + Math_imul(HEAP32[($4 + 4 | 0) >> 2] | 0, 88) | 0) >> 2] = $21; + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btGeneric6DofSpring2Constraint__setAngularUpperLimit_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $21 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$1 + } + $21 = Math_fround(btNormalizeAngle_28float_29(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) + ((HEAP32[($4 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])))); + HEAPF32[((($5 + 968 | 0) + Math_imul(HEAP32[($4 + 4 | 0) >> 2] | 0, 88) | 0) + 4 | 0) >> 2] = $21; + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btGeneric6DofSpring2Constraint__setLinearLowerLimit_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, $8 = 0, $10 = 0, $32 = 0, $42 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $8 = (HEAP32[($4 + 12 | 0) >> 2] | 0) + 680 | 0; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $32 = i64toi32_i32$0; + i64toi32_i32$0 = $8; + HEAP32[i64toi32_i32$0 >> 2] = $32; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $10 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $10 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $42 = i64toi32_i32$1; + i64toi32_i32$1 = $8 + $10 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $42; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function btGeneric6DofSpring2Constraint__setLinearUpperLimit_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, $10 = 0, $12 = 0, $37 = 0, $47 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $10 = ((HEAP32[($4 + 12 | 0) >> 2] | 0) + 680 | 0) + 16 | 0; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $37 = i64toi32_i32$0; + i64toi32_i32$0 = $10; + HEAP32[i64toi32_i32$0 >> 2] = $37; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $12 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $12 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $47 = i64toi32_i32$1; + i64toi32_i32$1 = $10 + $12 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $47; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function btFixedConstraint___btFixedConstraint_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btGeneric6DofSpring2Constraint___btGeneric6DofSpring2Constraint_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btGeneric6DofSpring2Constraint___btGeneric6DofSpring2Constraint_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btTypedConstraint___btTypedConstraint_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btTypedConstraint___btTypedConstraint_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 102548 + 8 | 0; + return $4 | 0; + } + + function btFixedConstraint___btFixedConstraint_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[1048 | 0]($4) | 0; + btGeneric6DofSpring2Constraint__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btGeneric6DofSpring2Constraint__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btGeneric6DofSpring2Constraint__buildJacobian_28_29($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return; + } + + function btTypedConstraint__setupSolverConstraint_28btAlignedObjectArray_btSolverConstraint___2c_20int_2c_20int_2c_20float_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = Math_fround($4); + var $7 = 0; + $7 = __stack_pointer - 32 | 0; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAPF32[($7 + 12 | 0) >> 2] = $4; + return; + } + + function btTypedConstraint__solveConstraintObsolete_28btSolverBody__2c_20btSolverBody__2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + var $6 = 0; + $6 = __stack_pointer - 16 | 0; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAPF32[$6 >> 2] = $3; + return; + } + + function btGeneric6DofSpring2Constraint__calculateSerializeBufferSize_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 644 | 0; + } + + function btGeneric6DofSpring2Constraint__serialize_28void__2c_20btSerializer__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $279 = 0, $306 = 0, $333 = 0, $360 = 0, $387 = 0, $514 = 0, $541 = 0, $568 = 0, $595 = 0, $622 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + HEAP32[($5 + 16 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + btTypedConstraint__serialize_28void__2c_20btSerializer__29_20const($6 | 0, HEAP32[($5 + 16 | 0) >> 2] | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0; + btTransform__serialize_28btTransformFloatData__29_20const($6 + 48 | 0 | 0, (HEAP32[($5 + 16 | 0) >> 2] | 0) + 52 | 0 | 0); + btTransform__serialize_28btTransformFloatData__29_20const($6 + 112 | 0 | 0, (HEAP32[($5 + 16 | 0) >> 2] | 0) + 116 | 0 | 0); + HEAP32[($5 + 12 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$1 + } + HEAPF32[(((HEAP32[($5 + 16 | 0) >> 2] | 0) + 428 | 0) + ((HEAP32[($5 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[(($6 + 968 | 0) + Math_imul(HEAP32[($5 + 12 | 0) >> 2] | 0, 88) | 0) >> 2]); + HEAPF32[(((HEAP32[($5 + 16 | 0) >> 2] | 0) + 412 | 0) + ((HEAP32[($5 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[((($6 + 968 | 0) + Math_imul(HEAP32[($5 + 12 | 0) >> 2] | 0, 88) | 0) + 4 | 0) >> 2]); + HEAPF32[(((HEAP32[($5 + 16 | 0) >> 2] | 0) + 444 | 0) + ((HEAP32[($5 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[((($6 + 968 | 0) + Math_imul(HEAP32[($5 + 12 | 0) >> 2] | 0, 88) | 0) + 8 | 0) >> 2]); + HEAPF32[(((HEAP32[($5 + 16 | 0) >> 2] | 0) + 460 | 0) + ((HEAP32[($5 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[((($6 + 968 | 0) + Math_imul(HEAP32[($5 + 12 | 0) >> 2] | 0, 88) | 0) + 12 | 0) >> 2]); + HEAPF32[(((HEAP32[($5 + 16 | 0) >> 2] | 0) + 476 | 0) + ((HEAP32[($5 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[((($6 + 968 | 0) + Math_imul(HEAP32[($5 + 12 | 0) >> 2] | 0, 88) | 0) + 16 | 0) >> 2]); + HEAPF32[(((HEAP32[($5 + 16 | 0) >> 2] | 0) + 492 | 0) + ((HEAP32[($5 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[((($6 + 968 | 0) + Math_imul(HEAP32[($5 + 12 | 0) >> 2] | 0, 88) | 0) + 20 | 0) >> 2]); + HEAPF32[(((HEAP32[($5 + 16 | 0) >> 2] | 0) + 508 | 0) + ((HEAP32[($5 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[((($6 + 968 | 0) + Math_imul(HEAP32[($5 + 12 | 0) >> 2] | 0, 88) | 0) + 24 | 0) >> 2]); + HEAPF32[(((HEAP32[($5 + 16 | 0) >> 2] | 0) + 524 | 0) + ((HEAP32[($5 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[((($6 + 968 | 0) + Math_imul(HEAP32[($5 + 12 | 0) >> 2] | 0, 88) | 0) + 32 | 0) >> 2]); + HEAPF32[(((HEAP32[($5 + 16 | 0) >> 2] | 0) + 540 | 0) + ((HEAP32[($5 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[((($6 + 968 | 0) + Math_imul(HEAP32[($5 + 12 | 0) >> 2] | 0, 88) | 0) + 36 | 0) >> 2]); + HEAPF32[(((HEAP32[($5 + 16 | 0) >> 2] | 0) + 556 | 0) + ((HEAP32[($5 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[((($6 + 968 | 0) + Math_imul(HEAP32[($5 + 12 | 0) >> 2] | 0, 88) | 0) + 44 | 0) >> 2]); + HEAPF32[(((HEAP32[($5 + 16 | 0) >> 2] | 0) + 572 | 0) + ((HEAP32[($5 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[((($6 + 968 | 0) + Math_imul(HEAP32[($5 + 12 | 0) >> 2] | 0, 88) | 0) + 52 | 0) >> 2]); + HEAPF32[(((HEAP32[($5 + 16 | 0) >> 2] | 0) + 588 | 0) + ((HEAP32[($5 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[((($6 + 968 | 0) + Math_imul(HEAP32[($5 + 12 | 0) >> 2] | 0, 88) | 0) + 60 | 0) >> 2]); + HEAPF32[(((HEAP32[($5 + 16 | 0) >> 2] | 0) + 604 | 0) + ((HEAP32[($5 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[((($6 + 968 | 0) + Math_imul(HEAP32[($5 + 12 | 0) >> 2] | 0, 88) | 0) + 68 | 0) >> 2]); + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + HEAPF32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 440 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 424 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 456 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 472 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 488 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 504 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 520 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 536 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 552 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 568 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 584 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 600 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 616 | 0) >> 2] = Math_fround(0 | 0); + HEAP32[($5 + 12 | 0) >> 2] = 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (4 | 0) & 1 | 0)) { + break label$3 + } + label$5 : { + label$6 : { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$6 + } + $279 = (HEAPU8[((($6 + 968 | 0) + Math_imul(HEAP32[($5 + 12 | 0) >> 2] | 0, 88) | 0) + 28 | 0) >> 0] | 0) & 1 | 0 ? 1 : 0; + break label$5; + } + $279 = 0; + } + HEAP8[(((HEAP32[($5 + 16 | 0) >> 2] | 0) + 620 | 0) + (HEAP32[($5 + 12 | 0) >> 2] | 0) | 0) >> 0] = $279; + label$7 : { + label$8 : { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$8 + } + $306 = (HEAPU8[((($6 + 968 | 0) + Math_imul(HEAP32[($5 + 12 | 0) >> 2] | 0, 88) | 0) + 40 | 0) >> 0] | 0) & 1 | 0 ? 1 : 0; + break label$7; + } + $306 = 0; + } + HEAP8[(((HEAP32[($5 + 16 | 0) >> 2] | 0) + 624 | 0) + (HEAP32[($5 + 12 | 0) >> 2] | 0) | 0) >> 0] = $306; + label$9 : { + label$10 : { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$10 + } + $333 = (HEAPU8[((($6 + 968 | 0) + Math_imul(HEAP32[($5 + 12 | 0) >> 2] | 0, 88) | 0) + 48 | 0) >> 0] | 0) & 1 | 0 ? 1 : 0; + break label$9; + } + $333 = 0; + } + HEAP8[(((HEAP32[($5 + 16 | 0) >> 2] | 0) + 628 | 0) + (HEAP32[($5 + 12 | 0) >> 2] | 0) | 0) >> 0] = $333; + label$11 : { + label$12 : { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$12 + } + $360 = (HEAPU8[((($6 + 968 | 0) + Math_imul(HEAP32[($5 + 12 | 0) >> 2] | 0, 88) | 0) + 56 | 0) >> 0] | 0) & 1 | 0 ? 1 : 0; + break label$11; + } + $360 = 0; + } + HEAP8[(((HEAP32[($5 + 16 | 0) >> 2] | 0) + 632 | 0) + (HEAP32[($5 + 12 | 0) >> 2] | 0) | 0) >> 0] = $360; + label$13 : { + label$14 : { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$14 + } + $387 = (HEAPU8[((($6 + 968 | 0) + Math_imul(HEAP32[($5 + 12 | 0) >> 2] | 0, 88) | 0) + 64 | 0) >> 0] | 0) & 1 | 0 ? 1 : 0; + break label$13; + } + $387 = 0; + } + HEAP8[(((HEAP32[($5 + 16 | 0) >> 2] | 0) + 636 | 0) + (HEAP32[($5 + 12 | 0) >> 2] | 0) | 0) >> 0] = $387; + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + btVector3__serialize_28btVector3FloatData__29_20const($6 + 680 | 0 | 0, (HEAP32[($5 + 16 | 0) >> 2] | 0) + 196 | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const(($6 + 680 | 0) + 16 | 0 | 0, (HEAP32[($5 + 16 | 0) >> 2] | 0) + 180 | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const(($6 + 680 | 0) + 32 | 0 | 0, (HEAP32[($5 + 16 | 0) >> 2] | 0) + 212 | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const(($6 + 680 | 0) + 48 | 0 | 0, (HEAP32[($5 + 16 | 0) >> 2] | 0) + 228 | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const(($6 + 680 | 0) + 64 | 0 | 0, (HEAP32[($5 + 16 | 0) >> 2] | 0) + 244 | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const(($6 + 680 | 0) + 80 | 0 | 0, (HEAP32[($5 + 16 | 0) >> 2] | 0) + 260 | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const(($6 + 680 | 0) + 96 | 0 | 0, (HEAP32[($5 + 16 | 0) >> 2] | 0) + 276 | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const(($6 + 680 | 0) + 196 | 0 | 0, (HEAP32[($5 + 16 | 0) >> 2] | 0) + 292 | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const(($6 + 680 | 0) + 212 | 0 | 0, (HEAP32[($5 + 16 | 0) >> 2] | 0) + 308 | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const(($6 + 680 | 0) + 124 | 0 | 0, (HEAP32[($5 + 16 | 0) >> 2] | 0) + 324 | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const(($6 + 680 | 0) + 140 | 0 | 0, (HEAP32[($5 + 16 | 0) >> 2] | 0) + 340 | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const(($6 + 680 | 0) + 160 | 0 | 0, (HEAP32[($5 + 16 | 0) >> 2] | 0) + 356 | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const(($6 + 680 | 0) + 180 | 0 | 0, (HEAP32[($5 + 16 | 0) >> 2] | 0) + 372 | 0 | 0); + HEAP32[($5 + 12 | 0) >> 2] = 0; + label$15 : { + label$16 : while (1) { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (4 | 0) & 1 | 0)) { + break label$15 + } + label$17 : { + label$18 : { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$18 + } + $514 = (HEAPU8[((($6 + 680 | 0) + 112 | 0) + (HEAP32[($5 + 12 | 0) >> 2] | 0) | 0) >> 0] | 0) & 1 | 0 ? 1 : 0; + break label$17; + } + $514 = 0; + } + HEAP8[(((HEAP32[($5 + 16 | 0) >> 2] | 0) + 388 | 0) + (HEAP32[($5 + 12 | 0) >> 2] | 0) | 0) >> 0] = $514; + label$19 : { + label$20 : { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$20 + } + $541 = (HEAPU8[((($6 + 680 | 0) + 115 | 0) + (HEAP32[($5 + 12 | 0) >> 2] | 0) | 0) >> 0] | 0) & 1 | 0 ? 1 : 0; + break label$19; + } + $541 = 0; + } + HEAP8[(((HEAP32[($5 + 16 | 0) >> 2] | 0) + 392 | 0) + (HEAP32[($5 + 12 | 0) >> 2] | 0) | 0) >> 0] = $541; + label$21 : { + label$22 : { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$22 + } + $568 = (HEAPU8[((($6 + 680 | 0) + 118 | 0) + (HEAP32[($5 + 12 | 0) >> 2] | 0) | 0) >> 0] | 0) & 1 | 0 ? 1 : 0; + break label$21; + } + $568 = 0; + } + HEAP8[(((HEAP32[($5 + 16 | 0) >> 2] | 0) + 396 | 0) + (HEAP32[($5 + 12 | 0) >> 2] | 0) | 0) >> 0] = $568; + label$23 : { + label$24 : { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$24 + } + $595 = (HEAPU8[((($6 + 680 | 0) + 156 | 0) + (HEAP32[($5 + 12 | 0) >> 2] | 0) | 0) >> 0] | 0) & 1 | 0 ? 1 : 0; + break label$23; + } + $595 = 0; + } + HEAP8[(((HEAP32[($5 + 16 | 0) >> 2] | 0) + 400 | 0) + (HEAP32[($5 + 12 | 0) >> 2] | 0) | 0) >> 0] = $595; + label$25 : { + label$26 : { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$26 + } + $622 = (HEAPU8[((($6 + 680 | 0) + 176 | 0) + (HEAP32[($5 + 12 | 0) >> 2] | 0) | 0) >> 0] | 0) & 1 | 0 ? 1 : 0; + break label$25; + } + $622 = 0; + } + HEAP8[(((HEAP32[($5 + 16 | 0) >> 2] | 0) + 404 | 0) + (HEAP32[($5 + 12 | 0) >> 2] | 0) | 0) >> 0] = $622; + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$16; + }; + } + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 640 | 0) >> 2] = HEAP32[($6 + 1232 | 0) >> 2] | 0; + HEAP8[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 408 | 0) >> 0] = 0; + HEAP8[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 409 | 0) >> 0] = 0; + HEAP8[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 410 | 0) >> 0] = 0; + HEAP8[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 411 | 0) >> 0] = 0; + __stack_pointer = $5 + 32 | 0; + return 83125 | 0; + } + + function _GLOBAL__sub_I_btFixedConstraint_cpp() { + __cxx_global_var_init_68(); + return; + } + + function __cxx_global_var_init_69() { + btInfMaskConverter__btInfMaskConverter_28int_29(115400 | 0, 2139095040 | 0) | 0; + return; + } + + function btGeneric6DofSpring2Constraint__btGeneric6DofSpring2Constraint_28btRigidBody__2c_20btRigidBody__2c_20btTransform_20const__2c_20btTransform_20const__2c_20RotateOrder_29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $9 = 0, $8 = 0, $23 = 0, $26 = 0, $27 = 0, $29 = 0, $36 = 0, $39 = 0, $40 = 0, $42 = 0, $51 = 0, $54 = 0, $55 = 0, $57 = 0, $71 = 0, $74 = 0, $75 = 0, $77 = 0, $25 = 0, $38 = 0, $53 = 0, $73 = 0, $86 = 0; + $8 = __stack_pointer - 32 | 0; + __stack_pointer = $8; + HEAP32[($8 + 24 | 0) >> 2] = $0; + HEAP32[($8 + 20 | 0) >> 2] = $1; + HEAP32[($8 + 16 | 0) >> 2] = $2; + HEAP32[($8 + 12 | 0) >> 2] = $3; + HEAP32[($8 + 8 | 0) >> 2] = $4; + HEAP32[($8 + 4 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 24 | 0) >> 2] | 0; + HEAP32[($8 + 28 | 0) >> 2] = $9; + btTypedConstraint__btTypedConstraint_28btTypedConstraintType_2c_20btRigidBody__2c_20btRigidBody__29($9 | 0, 12 | 0, HEAP32[($8 + 20 | 0) >> 2] | 0 | 0, HEAP32[($8 + 16 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$9 >> 2] = 102076 + 8 | 0; + btTransform__btTransform_28btTransform_20const__29($9 + 48 | 0 | 0, HEAP32[($8 + 12 | 0) >> 2] | 0 | 0) | 0; + btTransform__btTransform_28btTransform_20const__29($9 + 112 | 0 | 0, HEAP32[($8 + 8 | 0) >> 2] | 0 | 0) | 0; + $23 = $9 + 176 | 0; + $25 = $23 + 252 | 0; + $26 = $23; + label$1 : while (1) { + $27 = $26; + btJacobianEntry__btJacobianEntry_28_29($27 | 0) | 0; + $29 = $27 + 84 | 0; + $26 = $29; + if (!(($29 | 0) == ($25 | 0) & 1 | 0)) { + continue label$1 + } + break label$1; + }; + $36 = $9 + 428 | 0; + $38 = $36 + 252 | 0; + $39 = $36; + label$2 : while (1) { + $40 = $39; + btJacobianEntry__btJacobianEntry_28_29($40 | 0) | 0; + $42 = $40 + 84 | 0; + $39 = $42; + if (!(($42 | 0) == ($38 | 0) & 1 | 0)) { + continue label$2 + } + break label$2; + }; + btTranslationalLimitMotor2__btTranslationalLimitMotor2_28_29($9 + 680 | 0 | 0) | 0; + $51 = $9 + 968 | 0; + $53 = $51 + 264 | 0; + $54 = $51; + label$3 : while (1) { + $55 = $54; + btRotationalLimitMotor2__btRotationalLimitMotor2_28_29($55 | 0) | 0; + $57 = $55 + 88 | 0; + $54 = $57; + if (!(($57 | 0) == ($53 | 0) & 1 | 0)) { + continue label$3 + } + break label$3; + }; + HEAP32[($9 + 1232 | 0) >> 2] = HEAP32[($8 + 4 | 0) >> 2] | 0; + btTransform__btTransform_28_29($9 + 1236 | 0 | 0) | 0; + btTransform__btTransform_28_29($9 + 1300 | 0 | 0) | 0; + btVector3__btVector3_28_29($9 + 1364 | 0 | 0) | 0; + $71 = $9 + 1380 | 0; + $73 = $71 + 48 | 0; + $74 = $71; + label$4 : while (1) { + $75 = $74; + btVector3__btVector3_28_29($75 | 0) | 0; + $77 = $75 + 16 | 0; + $74 = $77; + if (!(($77 | 0) == ($73 | 0) & 1 | 0)) { + continue label$4 + } + break label$4; + }; + btVector3__btVector3_28_29($9 + 1428 | 0 | 0) | 0; + HEAP32[($9 + 1456 | 0) >> 2] = 0; + btGeneric6DofSpring2Constraint__calculateTransforms_28_29($9 | 0); + $86 = HEAP32[($8 + 28 | 0) >> 2] | 0; + __stack_pointer = $8 + 32 | 0; + return $86 | 0; + } + + function btJacobianEntry__btJacobianEntry_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btVector3__btVector3_28_29($4 | 0) | 0; + btVector3__btVector3_28_29($4 + 16 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 32 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 48 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 64 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btTranslationalLimitMotor2__btTranslationalLimitMotor2_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $294 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $3 = __stack_pointer - 144 | 0; + __stack_pointer = $3; + HEAP32[($3 + 136 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 136 | 0) >> 2] | 0; + HEAP32[($3 + 140 | 0) >> 2] = $4; + btVector3__btVector3_28_29($4 | 0) | 0; + btVector3__btVector3_28_29($4 + 16 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 32 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 48 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 64 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 80 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 96 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 124 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 140 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 160 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 180 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 196 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 212 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 228 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 244 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 260 | 0 | 0) | 0; + HEAPF32[($3 + 132 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 128 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 124 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($4 | 0, $3 + 132 | 0 | 0, $3 + 128 | 0 | 0, $3 + 124 | 0 | 0); + HEAPF32[($3 + 120 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 116 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 112 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 16 | 0 | 0, $3 + 120 | 0 | 0, $3 + 116 | 0 | 0, $3 + 112 | 0 | 0); + HEAPF32[($3 + 108 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 104 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 100 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 32 | 0 | 0, $3 + 108 | 0 | 0, $3 + 104 | 0 | 0, $3 + 100 | 0 | 0); + HEAPF32[($3 + 96 | 0) >> 2] = Math_fround(.20000000298023224); + HEAPF32[($3 + 92 | 0) >> 2] = Math_fround(.20000000298023224); + HEAPF32[($3 + 88 | 0) >> 2] = Math_fround(.20000000298023224); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 48 | 0 | 0, $3 + 96 | 0 | 0, $3 + 92 | 0 | 0, $3 + 88 | 0 | 0); + HEAPF32[($3 + 84 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 80 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 76 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 64 | 0 | 0, $3 + 84 | 0 | 0, $3 + 80 | 0 | 0, $3 + 76 | 0 | 0); + HEAPF32[($3 + 72 | 0) >> 2] = Math_fround(.8999999761581421); + HEAPF32[($3 + 68 | 0) >> 2] = Math_fround(.8999999761581421); + HEAPF32[($3 + 64 | 0) >> 2] = Math_fround(.8999999761581421); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 80 | 0 | 0, $3 + 72 | 0 | 0, $3 + 68 | 0 | 0, $3 + 64 | 0 | 0); + HEAPF32[($3 + 60 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 56 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 52 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 96 | 0 | 0, $3 + 60 | 0 | 0, $3 + 56 | 0 | 0, $3 + 52 | 0 | 0); + HEAPF32[($3 + 48 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 44 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 40 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 228 | 0 | 0, $3 + 48 | 0 | 0, $3 + 44 | 0 | 0, $3 + 40 | 0 | 0); + HEAPF32[($3 + 36 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 32 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 28 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 244 | 0 | 0, $3 + 36 | 0 | 0, $3 + 32 | 0 | 0, $3 + 28 | 0 | 0); + HEAPF32[($3 + 24 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 20 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 16 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 260 | 0 | 0, $3 + 24 | 0 | 0, $3 + 20 | 0 | 0, $3 + 16 | 0 | 0); + HEAP32[($3 + 12 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$1 + } + HEAP8[(($4 + 112 | 0) + (HEAP32[($3 + 12 | 0) >> 2] | 0) | 0) >> 0] = 0; + HEAP8[(($4 + 115 | 0) + (HEAP32[($3 + 12 | 0) >> 2] | 0) | 0) >> 0] = 0; + HEAP8[(($4 + 118 | 0) + (HEAP32[($3 + 12 | 0) >> 2] | 0) | 0) >> 0] = 0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($4 + 124 | 0 | 0) | 0) + ((HEAP32[($3 + 12 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($4 + 140 | 0 | 0) | 0) + ((HEAP32[($3 + 12 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP8[(($4 + 156 | 0) + (HEAP32[($3 + 12 | 0) >> 2] | 0) | 0) >> 0] = 0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($4 + 160 | 0 | 0) | 0) + ((HEAP32[($3 + 12 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP8[(($4 + 176 | 0) + (HEAP32[($3 + 12 | 0) >> 2] | 0) | 0) >> 0] = 0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($4 + 180 | 0 | 0) | 0) + ((HEAP32[($3 + 12 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($4 + 196 | 0 | 0) | 0) + ((HEAP32[($3 + 12 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($4 + 212 | 0 | 0) | 0) + ((HEAP32[($3 + 12 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP32[(($4 + 276 | 0) + ((HEAP32[($3 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = 0; + HEAP32[($3 + 12 | 0) >> 2] = (HEAP32[($3 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + $294 = HEAP32[($3 + 140 | 0) >> 2] | 0; + __stack_pointer = $3 + 144 | 0; + return $294 | 0; + } + + function btRotationalLimitMotor2__btRotationalLimitMotor2_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAPF32[$4 >> 2] = Math_fround(1.0); + HEAPF32[($4 + 4 | 0) >> 2] = Math_fround(-1.0); + HEAPF32[($4 + 8 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 12 | 0) >> 2] = Math_fround(.20000000298023224); + HEAPF32[($4 + 16 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 20 | 0) >> 2] = Math_fround(.8999999761581421); + HEAPF32[($4 + 24 | 0) >> 2] = Math_fround(0 | 0); + HEAP8[($4 + 28 | 0) >> 0] = 0; + HEAPF32[($4 + 32 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 36 | 0) >> 2] = Math_fround(.10000000149011612); + HEAP8[($4 + 40 | 0) >> 0] = 0; + HEAPF32[($4 + 44 | 0) >> 2] = Math_fround(0 | 0); + HEAP8[($4 + 48 | 0) >> 0] = 0; + HEAPF32[($4 + 52 | 0) >> 2] = Math_fround(0 | 0); + HEAP8[($4 + 56 | 0) >> 0] = 0; + HEAPF32[($4 + 60 | 0) >> 2] = Math_fround(0 | 0); + HEAP8[($4 + 64 | 0) >> 0] = 0; + HEAPF32[($4 + 68 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 72 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 76 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 80 | 0) >> 2] = Math_fround(0 | 0); + HEAP32[($4 + 84 | 0) >> 2] = 0; + return $4 | 0; + } + + function btGeneric6DofSpring2Constraint__calculateTransforms_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btGeneric6DofSpring2Constraint__calculateTransforms_28btTransform_20const__2c_20btTransform_20const__29($4 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($4 + 28 | 0) >> 2] | 0 | 0) | 0 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($4 + 32 | 0) >> 2] | 0 | 0) | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btRigidBody__getCenterOfMassTransform_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0 | 0; + } + + function btGeneric6DofSpring2Constraint__calculateTransforms_28btTransform_20const__2c_20btTransform_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $39 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 160 | 0; + __stack_pointer = $5; + HEAP32[($5 + 156 | 0) >> 2] = $0; + HEAP32[($5 + 152 | 0) >> 2] = $1; + HEAP32[($5 + 148 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 156 | 0) >> 2] | 0; + btTransform__operator__28btTransform_20const__29_20const($5 + 84 | 0 | 0, HEAP32[($5 + 152 | 0) >> 2] | 0 | 0, $6 + 48 | 0 | 0); + btTransform__operator__28btTransform_20const__29($6 + 1236 | 0 | 0, $5 + 84 | 0 | 0) | 0; + btTransform__operator__28btTransform_20const__29_20const($5 + 20 | 0 | 0, HEAP32[($5 + 148 | 0) >> 2] | 0 | 0, $6 + 112 | 0 | 0); + btTransform__operator__28btTransform_20const__29($6 + 1300 | 0 | 0, $5 + 20 | 0 | 0) | 0; + btGeneric6DofSpring2Constraint__calculateLinearInfo_28_29($6 | 0); + btGeneric6DofSpring2Constraint__calculateAngleInfo_28_29($6 | 0); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btRigidBody__getInvMass_28_29_20const(btTypedConstraint__getRigidBodyA_28_29($6 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btRigidBody__getInvMass_28_29_20const(btTypedConstraint__getRigidBodyB_28_29($6 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + $39 = 1; + label$1 : { + if (Math_fround(HEAPF32[($5 + 16 | 0) >> 2]) < Math_fround(1.1920928955078125e-07) & 1 | 0) { + break label$1 + } + $39 = Math_fround(HEAPF32[($5 + 12 | 0) >> 2]) < Math_fround(1.1920928955078125e-07); + } + HEAP8[($6 + 1452 | 0) >> 0] = $39 & 1 | 0; + HEAPF32[($5 + 8 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 16 | 0) >> 2]) + Math_fround(HEAPF32[($5 + 12 | 0) >> 2])); + label$2 : { + label$3 : { + if (!(Math_fround(HEAPF32[($5 + 8 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$3 + } + HEAPF32[($6 + 1444 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 12 | 0) >> 2]) / Math_fround(HEAPF32[($5 + 8 | 0) >> 2])); + break label$2; + } + HEAPF32[($6 + 1444 | 0) >> 2] = Math_fround(.5); + } + HEAPF32[($6 + 1448 | 0) >> 2] = Math_fround(Math_fround(1.0) - Math_fround(HEAPF32[($6 + 1444 | 0) >> 2])); + __stack_pointer = $5 + 160 | 0; + return; + } + + function btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $19 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) % (3 | 0) | 0; + HEAP32[$4 >> 2] = (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) / (3 | 0) | 0; + $19 = Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) + ((HEAP32[$4 >> 2] | 0) << 2 | 0) | 0) >> 2]); + __stack_pointer = $4 + 16 | 0; + return Math_fround($19); + } + + function btGeneric6DofSpring2Constraint__matrixToEulerXYZ_28btMatrix3x3_20const__2c_20btVector3__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $25 = Math_fround(0), $31 = Math_fround(0), $41 = Math_fround(0), $54 = Math_fround(0), $73 = Math_fround(0), $88 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 2 | 0))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[$4 >> 2]) < Math_fround(1.0) & 1 | 0)) { + break label$2 + } + label$3 : { + if (!(Math_fround(HEAPF32[$4 >> 2]) > Math_fround(-1.0) & 1 | 0)) { + break label$3 + } + $25 = Math_fround(btAtan2_28float_2c_20float_29(Math_fround(Math_fround(-Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 5 | 0)))), Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 8 | 0))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $25), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $31 = Math_fround(btAsin_28float_29(Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 2 | 0))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $31), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $41 = Math_fround(btAtan2_28float_2c_20float_29(Math_fround(Math_fround(-Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 1 | 0)))), Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 0 | 0))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $41), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + HEAP8[($4 + 15 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + $54 = Math_fround(-Math_fround(btAtan2_28float_2c_20float_29(Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 3 | 0))), Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 4 | 0)))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $54), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(-1.5707963705062866)), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + HEAP8[($4 + 15 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + $73 = Math_fround(btAtan2_28float_2c_20float_29(Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 3 | 0))), Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 4 | 0))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $73), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(1.5707963705062866)), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + HEAP8[($4 + 15 | 0) >> 0] = 0 & 1 | 0; + } + $88 = (HEAPU8[($4 + 15 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $4 + 16 | 0; + return $88 | 0; + } + + function btAsin_28float_29($0) { + $0 = Math_fround($0); + var $3 = 0, $17 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAPF32[($3 + 12 | 0) >> 2] = $0; + label$1 : { + if (!(Math_fround(HEAPF32[($3 + 12 | 0) >> 2]) < Math_fround(-1.0) & 1 | 0)) { + break label$1 + } + HEAPF32[($3 + 12 | 0) >> 2] = Math_fround(-1.0); + } + label$2 : { + if (!(Math_fround(HEAPF32[($3 + 12 | 0) >> 2]) > Math_fround(1.0) & 1 | 0)) { + break label$2 + } + HEAPF32[($3 + 12 | 0) >> 2] = Math_fround(1.0); + } + $17 = Math_fround(asinf(Math_fround(Math_fround(HEAPF32[($3 + 12 | 0) >> 2])))); + __stack_pointer = $3 + 16 | 0; + return Math_fround($17); + } + + function btGeneric6DofSpring2Constraint__matrixToEulerXZY_28btMatrix3x3_20const__2c_20btVector3__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $24 = Math_fround(0), $33 = Math_fround(0), $40 = Math_fround(0), $54 = Math_fround(0), $74 = Math_fround(0), $89 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 1 | 0))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[$4 >> 2]) < Math_fround(1.0) & 1 | 0)) { + break label$2 + } + label$3 : { + if (!(Math_fround(HEAPF32[$4 >> 2]) > Math_fround(-1.0) & 1 | 0)) { + break label$3 + } + $24 = Math_fround(btAtan2_28float_2c_20float_29(Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 7 | 0))), Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 4 | 0))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $24), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $33 = Math_fround(btAtan2_28float_2c_20float_29(Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 2 | 0))), Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 0 | 0))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $33), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $40 = Math_fround(btAsin_28float_29(Math_fround(Math_fround(-Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 1 | 0)))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $40), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + HEAP8[($4 + 15 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + $54 = Math_fround(-Math_fround(btAtan2_28float_2c_20float_29(Math_fround(Math_fround(-Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 6 | 0)))), Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 8 | 0)))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $54), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(1.5707963705062866)), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + HEAP8[($4 + 15 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + $74 = Math_fround(btAtan2_28float_2c_20float_29(Math_fround(Math_fround(-Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 6 | 0)))), Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 8 | 0))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $74), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(-1.5707963705062866)), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + HEAP8[($4 + 15 | 0) >> 0] = 0 & 1 | 0; + } + $89 = (HEAPU8[($4 + 15 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $4 + 16 | 0; + return $89 | 0; + } + + function btGeneric6DofSpring2Constraint__matrixToEulerYXZ_28btMatrix3x3_20const__2c_20btVector3__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $22 = Math_fround(0), $31 = Math_fround(0), $40 = Math_fround(0), $57 = Math_fround(0), $77 = Math_fround(0), $89 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 5 | 0))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[$4 >> 2]) < Math_fround(1.0) & 1 | 0)) { + break label$2 + } + label$3 : { + if (!(Math_fround(HEAPF32[$4 >> 2]) > Math_fround(-1.0) & 1 | 0)) { + break label$3 + } + $22 = Math_fround(btAsin_28float_29(Math_fround(Math_fround(-Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 5 | 0)))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $22), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $31 = Math_fround(btAtan2_28float_2c_20float_29(Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 2 | 0))), Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 8 | 0))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $31), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $40 = Math_fround(btAtan2_28float_2c_20float_29(Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 3 | 0))), Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 4 | 0))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $40), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + HEAP8[($4 + 15 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(1.5707963705062866)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $57 = Math_fround(-Math_fround(btAtan2_28float_2c_20float_29(Math_fround(Math_fround(-Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 1 | 0)))), Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 0 | 0)))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $57), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + HEAP8[($4 + 15 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(-1.5707963705062866)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $77 = Math_fround(btAtan2_28float_2c_20float_29(Math_fround(Math_fround(-Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 1 | 0)))), Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 0 | 0))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $77), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + HEAP8[($4 + 15 | 0) >> 0] = 0 & 1 | 0; + } + $89 = (HEAPU8[($4 + 15 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $4 + 16 | 0; + return $89 | 0; + } + + function btGeneric6DofSpring2Constraint__matrixToEulerYZX_28btMatrix3x3_20const__2c_20btVector3__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $25 = Math_fround(0), $35 = Math_fround(0), $41 = Math_fround(0), $58 = Math_fround(0), $77 = Math_fround(0), $88 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 3 | 0))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[$4 >> 2]) < Math_fround(1.0) & 1 | 0)) { + break label$2 + } + label$3 : { + if (!(Math_fround(HEAPF32[$4 >> 2]) > Math_fround(-1.0) & 1 | 0)) { + break label$3 + } + $25 = Math_fround(btAtan2_28float_2c_20float_29(Math_fround(Math_fround(-Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 5 | 0)))), Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 4 | 0))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $25), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $35 = Math_fround(btAtan2_28float_2c_20float_29(Math_fround(Math_fround(-Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 6 | 0)))), Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 0 | 0))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $35), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $41 = Math_fround(btAsin_28float_29(Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 3 | 0))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $41), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + HEAP8[($4 + 15 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $58 = Math_fround(-Math_fround(btAtan2_28float_2c_20float_29(Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 7 | 0))), Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 8 | 0)))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $58), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(-1.5707963705062866)), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + HEAP8[($4 + 15 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $77 = Math_fround(btAtan2_28float_2c_20float_29(Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 7 | 0))), Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 8 | 0))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $77), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(1.5707963705062866)), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + HEAP8[($4 + 15 | 0) >> 0] = 0 & 1 | 0; + } + $88 = (HEAPU8[($4 + 15 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $4 + 16 | 0; + return $88 | 0; + } + + function btGeneric6DofSpring2Constraint__matrixToEulerZXY_28btMatrix3x3_20const__2c_20btVector3__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $21 = Math_fround(0), $31 = Math_fround(0), $41 = Math_fround(0), $61 = Math_fround(0), $80 = Math_fround(0), $88 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 7 | 0))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[$4 >> 2]) < Math_fround(1.0) & 1 | 0)) { + break label$2 + } + label$3 : { + if (!(Math_fround(HEAPF32[$4 >> 2]) > Math_fround(-1.0) & 1 | 0)) { + break label$3 + } + $21 = Math_fround(btAsin_28float_29(Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 7 | 0))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $21), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $31 = Math_fround(btAtan2_28float_2c_20float_29(Math_fround(Math_fround(-Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 6 | 0)))), Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 8 | 0))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $31), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $41 = Math_fround(btAtan2_28float_2c_20float_29(Math_fround(Math_fround(-Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 1 | 0)))), Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 4 | 0))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $41), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + HEAP8[($4 + 15 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(-1.5707963705062866)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $61 = Math_fround(-Math_fround(btAtan2_28float_2c_20float_29(Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 2 | 0))), Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 0 | 0)))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $61), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + HEAP8[($4 + 15 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(1.5707963705062866)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $80 = Math_fround(btAtan2_28float_2c_20float_29(Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 2 | 0))), Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 0 | 0))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $80), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + HEAP8[($4 + 15 | 0) >> 0] = 0 & 1 | 0; + } + $88 = (HEAPU8[($4 + 15 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $4 + 16 | 0; + return $88 | 0; + } + + function btGeneric6DofSpring2Constraint__matrixToEulerZYX_28btMatrix3x3_20const__2c_20btVector3__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $24 = Math_fround(0), $31 = Math_fround(0), $40 = Math_fround(0), $60 = Math_fround(0), $81 = Math_fround(0), $89 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 6 | 0))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[$4 >> 2]) < Math_fround(1.0) & 1 | 0)) { + break label$2 + } + label$3 : { + if (!(Math_fround(HEAPF32[$4 >> 2]) > Math_fround(-1.0) & 1 | 0)) { + break label$3 + } + $24 = Math_fround(btAtan2_28float_2c_20float_29(Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 7 | 0))), Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 8 | 0))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $24), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $31 = Math_fround(btAsin_28float_29(Math_fround(Math_fround(-Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 6 | 0)))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $31), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $40 = Math_fround(btAtan2_28float_2c_20float_29(Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 3 | 0))), Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 0 | 0))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $40), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + HEAP8[($4 + 15 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(1.5707963705062866)), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $60 = Math_fround(-Math_fround(btAtan2_28float_2c_20float_29(Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 1 | 0))), Math_fround(Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 2 | 0)))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $60), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + HEAP8[($4 + 15 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = Math_fround(-1.5707963705062866)), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $81 = Math_fround(btAtan2_28float_2c_20float_29(Math_fround(Math_fround(-Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 1 | 0)))), Math_fround(Math_fround(-Math_fround(btGeneric6DofSpring2Constraint__btGetMatrixElem_28btMatrix3x3_20const__2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 2 | 0)))))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_f32$0 = $81), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + HEAP8[($4 + 15 | 0) >> 0] = 0 & 1 | 0; + } + $89 = (HEAPU8[($4 + 15 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $4 + 16 | 0; + return $89 | 0; + } + + function btGeneric6DofSpring2Constraint__calculateAngleInfo_28_29($0) { + $0 = $0 | 0; + var $3 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $4 = 0, $17 = 0, $53 = 0, $81 = 0, $83 = 0, $100 = 0, $102 = 0, $121 = 0, $123 = 0, $155 = 0, $157 = 0, $174 = 0, $176 = 0, $195 = 0, $197 = 0, $227 = 0, $229 = 0, $246 = 0, $248 = 0, $265 = 0, $267 = 0, $299 = 0, $301 = 0, $318 = 0, $320 = 0, $339 = 0, $341 = 0, $371 = 0, $373 = 0, $390 = 0, $392 = 0, $409 = 0, $411 = 0, $443 = 0, $445 = 0, $462 = 0, $464 = 0, $483 = 0, $485 = 0, $664 = 0, $677 = 0, $701 = 0, $714 = 0, $741 = 0, $754 = 0, $803 = 0, $816 = 0, $840 = 0, $853 = 0, $880 = 0, $893 = 0, $939 = 0, $952 = 0, $976 = 0, $989 = 0, $1013 = 0, $1026 = 0, $1075 = 0, $1088 = 0, $1112 = 0, $1125 = 0, $1152 = 0, $1165 = 0, $1211 = 0, $1224 = 0, $1248 = 0, $1261 = 0, $1285 = 0, $1298 = 0, $1347 = 0, $1360 = 0, $1384 = 0, $1397 = 0, $1424 = 0, $1437 = 0; + $3 = __stack_pointer - 592 | 0; + __stack_pointer = $3; + HEAP32[($3 + 588 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 588 | 0) >> 2] | 0; + btMatrix3x3__inverse_28_29_20const($3 + 492 | 0 | 0, btTransform__getBasis_28_29($4 + 1236 | 0 | 0) | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btMatrix3x3_20const__29($3 + 540 | 0 | 0, $3 + 492 | 0 | 0, btTransform__getBasis_28_29($4 + 1300 | 0 | 0) | 0 | 0); + $17 = HEAP32[($4 + 1232 | 0) >> 2] | 0; + label$1 : { + label$2 : { + switch ($17 | 0) { + case 0: + btGeneric6DofSpring2Constraint__matrixToEulerXYZ_28btMatrix3x3_20const__2c_20btVector3__29($3 + 540 | 0 | 0, $4 + 1364 | 0 | 0) | 0; + break label$1; + case 1: + btGeneric6DofSpring2Constraint__matrixToEulerXZY_28btMatrix3x3_20const__2c_20btVector3__29($3 + 540 | 0 | 0, $4 + 1364 | 0 | 0) | 0; + break label$1; + case 2: + btGeneric6DofSpring2Constraint__matrixToEulerYXZ_28btMatrix3x3_20const__2c_20btVector3__29($3 + 540 | 0 | 0, $4 + 1364 | 0 | 0) | 0; + break label$1; + case 3: + btGeneric6DofSpring2Constraint__matrixToEulerYZX_28btMatrix3x3_20const__2c_20btVector3__29($3 + 540 | 0 | 0, $4 + 1364 | 0 | 0) | 0; + break label$1; + case 4: + btGeneric6DofSpring2Constraint__matrixToEulerZXY_28btMatrix3x3_20const__2c_20btVector3__29($3 + 540 | 0 | 0, $4 + 1364 | 0 | 0) | 0; + break label$1; + case 5: + btGeneric6DofSpring2Constraint__matrixToEulerZYX_28btMatrix3x3_20const__2c_20btVector3__29($3 + 540 | 0 | 0, $4 + 1364 | 0 | 0) | 0; + break label$1; + default: + break label$2; + }; + } + __assert_fail(81487 | 0, 71825 | 0, 292 | 0, 76219 | 0); + wasm2js_trap(); + } + $53 = HEAP32[($4 + 1232 | 0) >> 2] | 0; + label$9 : { + label$10 : { + switch ($53 | 0) { + case 0: + btMatrix3x3__getColumn_28int_29_20const($3 + 476 | 0 | 0, btTransform__getBasis_28_29($4 + 1300 | 0 | 0) | 0 | 0, 0 | 0); + btMatrix3x3__getColumn_28int_29_20const($3 + 460 | 0 | 0, btTransform__getBasis_28_29($4 + 1236 | 0 | 0) | 0 | 0, 2 | 0); + btVector3__cross_28btVector3_20const__29_20const($3 + 444 | 0 | 0, $3 + 460 | 0 | 0, $3 + 476 | 0 | 0); + $81 = ($4 + 1380 | 0) + 16 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 444 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 448 | 0) >> 2] | 0; + $664 = i64toi32_i32$0; + i64toi32_i32$0 = $81; + HEAP32[i64toi32_i32$0 >> 2] = $664; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $83 = 8; + i64toi32_i32$2 = ($3 + 444 | 0) + $83 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $677 = i64toi32_i32$1; + i64toi32_i32$1 = $81 + $83 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $677; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__cross_28btVector3_20const__29_20const($3 + 428 | 0 | 0, ($4 + 1380 | 0) + 16 | 0 | 0, $3 + 460 | 0 | 0); + $100 = $4 + 1380 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 428 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 432 | 0) >> 2] | 0; + $701 = i64toi32_i32$0; + i64toi32_i32$0 = $100; + HEAP32[i64toi32_i32$0 >> 2] = $701; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $102 = 8; + i64toi32_i32$2 = ($3 + 428 | 0) + $102 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $714 = i64toi32_i32$1; + i64toi32_i32$1 = $100 + $102 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $714; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__cross_28btVector3_20const__29_20const($3 + 412 | 0 | 0, $3 + 476 | 0 | 0, ($4 + 1380 | 0) + 16 | 0 | 0); + $121 = ($4 + 1380 | 0) + 32 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 412 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 416 | 0) >> 2] | 0; + $741 = i64toi32_i32$0; + i64toi32_i32$0 = $121; + HEAP32[i64toi32_i32$0 >> 2] = $741; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $123 = 8; + i64toi32_i32$2 = ($3 + 412 | 0) + $123 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $754 = i64toi32_i32$1; + i64toi32_i32$1 = $121 + $123 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $754; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$9; + case 1: + btMatrix3x3__getColumn_28int_29_20const($3 + 396 | 0 | 0, btTransform__getBasis_28_29($4 + 1300 | 0 | 0) | 0 | 0, 0 | 0); + btMatrix3x3__getColumn_28int_29_20const($3 + 380 | 0 | 0, btTransform__getBasis_28_29($4 + 1236 | 0 | 0) | 0 | 0, 1 | 0); + btVector3__cross_28btVector3_20const__29_20const($3 + 364 | 0 | 0, $3 + 396 | 0 | 0, $3 + 380 | 0 | 0); + $155 = ($4 + 1380 | 0) + 32 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 364 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 368 | 0) >> 2] | 0; + $803 = i64toi32_i32$0; + i64toi32_i32$0 = $155; + HEAP32[i64toi32_i32$0 >> 2] = $803; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $157 = 8; + i64toi32_i32$2 = ($3 + 364 | 0) + $157 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $816 = i64toi32_i32$1; + i64toi32_i32$1 = $155 + $157 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $816; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__cross_28btVector3_20const__29_20const($3 + 348 | 0 | 0, $3 + 380 | 0 | 0, ($4 + 1380 | 0) + 32 | 0 | 0); + $174 = $4 + 1380 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 348 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 352 | 0) >> 2] | 0; + $840 = i64toi32_i32$0; + i64toi32_i32$0 = $174; + HEAP32[i64toi32_i32$0 >> 2] = $840; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $176 = 8; + i64toi32_i32$2 = ($3 + 348 | 0) + $176 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $853 = i64toi32_i32$1; + i64toi32_i32$1 = $174 + $176 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $853; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__cross_28btVector3_20const__29_20const($3 + 332 | 0 | 0, ($4 + 1380 | 0) + 32 | 0 | 0, $3 + 396 | 0 | 0); + $195 = ($4 + 1380 | 0) + 16 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 332 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 336 | 0) >> 2] | 0; + $880 = i64toi32_i32$0; + i64toi32_i32$0 = $195; + HEAP32[i64toi32_i32$0 >> 2] = $880; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $197 = 8; + i64toi32_i32$2 = ($3 + 332 | 0) + $197 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $893 = i64toi32_i32$1; + i64toi32_i32$1 = $195 + $197 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $893; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$9; + case 2: + btMatrix3x3__getColumn_28int_29_20const($3 + 316 | 0 | 0, btTransform__getBasis_28_29($4 + 1300 | 0 | 0) | 0 | 0, 1 | 0); + btMatrix3x3__getColumn_28int_29_20const($3 + 300 | 0 | 0, btTransform__getBasis_28_29($4 + 1236 | 0 | 0) | 0 | 0, 2 | 0); + btVector3__cross_28btVector3_20const__29_20const($3 + 284 | 0 | 0, $3 + 316 | 0 | 0, $3 + 300 | 0 | 0); + $227 = $4 + 1380 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 284 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 288 | 0) >> 2] | 0; + $939 = i64toi32_i32$0; + i64toi32_i32$0 = $227; + HEAP32[i64toi32_i32$0 >> 2] = $939; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $229 = 8; + i64toi32_i32$2 = ($3 + 284 | 0) + $229 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $952 = i64toi32_i32$1; + i64toi32_i32$1 = $227 + $229 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $952; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__cross_28btVector3_20const__29_20const($3 + 268 | 0 | 0, $3 + 300 | 0 | 0, $4 + 1380 | 0 | 0); + $246 = ($4 + 1380 | 0) + 16 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 268 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 272 | 0) >> 2] | 0; + $976 = i64toi32_i32$0; + i64toi32_i32$0 = $246; + HEAP32[i64toi32_i32$0 >> 2] = $976; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $248 = 8; + i64toi32_i32$2 = ($3 + 268 | 0) + $248 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $989 = i64toi32_i32$1; + i64toi32_i32$1 = $246 + $248 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $989; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__cross_28btVector3_20const__29_20const($3 + 252 | 0 | 0, $4 + 1380 | 0 | 0, $3 + 316 | 0 | 0); + $265 = ($4 + 1380 | 0) + 32 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 252 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 256 | 0) >> 2] | 0; + $1013 = i64toi32_i32$0; + i64toi32_i32$0 = $265; + HEAP32[i64toi32_i32$0 >> 2] = $1013; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $267 = 8; + i64toi32_i32$2 = ($3 + 252 | 0) + $267 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1026 = i64toi32_i32$1; + i64toi32_i32$1 = $265 + $267 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1026; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$9; + case 3: + btMatrix3x3__getColumn_28int_29_20const($3 + 236 | 0 | 0, btTransform__getBasis_28_29($4 + 1236 | 0 | 0) | 0 | 0, 0 | 0); + btMatrix3x3__getColumn_28int_29_20const($3 + 220 | 0 | 0, btTransform__getBasis_28_29($4 + 1300 | 0 | 0) | 0 | 0, 1 | 0); + btVector3__cross_28btVector3_20const__29_20const($3 + 204 | 0 | 0, $3 + 236 | 0 | 0, $3 + 220 | 0 | 0); + $299 = ($4 + 1380 | 0) + 32 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 204 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 208 | 0) >> 2] | 0; + $1075 = i64toi32_i32$0; + i64toi32_i32$0 = $299; + HEAP32[i64toi32_i32$0 >> 2] = $1075; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $301 = 8; + i64toi32_i32$2 = ($3 + 204 | 0) + $301 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1088 = i64toi32_i32$1; + i64toi32_i32$1 = $299 + $301 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1088; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__cross_28btVector3_20const__29_20const($3 + 188 | 0 | 0, $3 + 220 | 0 | 0, ($4 + 1380 | 0) + 32 | 0 | 0); + $318 = $4 + 1380 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 188 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 192 | 0) >> 2] | 0; + $1112 = i64toi32_i32$0; + i64toi32_i32$0 = $318; + HEAP32[i64toi32_i32$0 >> 2] = $1112; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $320 = 8; + i64toi32_i32$2 = ($3 + 188 | 0) + $320 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1125 = i64toi32_i32$1; + i64toi32_i32$1 = $318 + $320 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1125; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__cross_28btVector3_20const__29_20const($3 + 172 | 0 | 0, ($4 + 1380 | 0) + 32 | 0 | 0, $3 + 236 | 0 | 0); + $339 = ($4 + 1380 | 0) + 16 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 172 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 176 | 0) >> 2] | 0; + $1152 = i64toi32_i32$0; + i64toi32_i32$0 = $339; + HEAP32[i64toi32_i32$0 >> 2] = $1152; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $341 = 8; + i64toi32_i32$2 = ($3 + 172 | 0) + $341 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1165 = i64toi32_i32$1; + i64toi32_i32$1 = $339 + $341 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1165; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$9; + case 4: + btMatrix3x3__getColumn_28int_29_20const($3 + 156 | 0 | 0, btTransform__getBasis_28_29($4 + 1236 | 0 | 0) | 0 | 0, 1 | 0); + btMatrix3x3__getColumn_28int_29_20const($3 + 140 | 0 | 0, btTransform__getBasis_28_29($4 + 1300 | 0 | 0) | 0 | 0, 2 | 0); + btVector3__cross_28btVector3_20const__29_20const($3 + 124 | 0 | 0, $3 + 156 | 0 | 0, $3 + 140 | 0 | 0); + $371 = $4 + 1380 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 124 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 128 | 0) >> 2] | 0; + $1211 = i64toi32_i32$0; + i64toi32_i32$0 = $371; + HEAP32[i64toi32_i32$0 >> 2] = $1211; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $373 = 8; + i64toi32_i32$2 = ($3 + 124 | 0) + $373 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1224 = i64toi32_i32$1; + i64toi32_i32$1 = $371 + $373 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1224; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__cross_28btVector3_20const__29_20const($3 + 108 | 0 | 0, $3 + 140 | 0 | 0, $4 + 1380 | 0 | 0); + $390 = ($4 + 1380 | 0) + 16 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 108 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 112 | 0) >> 2] | 0; + $1248 = i64toi32_i32$0; + i64toi32_i32$0 = $390; + HEAP32[i64toi32_i32$0 >> 2] = $1248; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $392 = 8; + i64toi32_i32$2 = ($3 + 108 | 0) + $392 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1261 = i64toi32_i32$1; + i64toi32_i32$1 = $390 + $392 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1261; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__cross_28btVector3_20const__29_20const($3 + 92 | 0 | 0, $4 + 1380 | 0 | 0, $3 + 156 | 0 | 0); + $409 = ($4 + 1380 | 0) + 32 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 92 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 96 | 0) >> 2] | 0; + $1285 = i64toi32_i32$0; + i64toi32_i32$0 = $409; + HEAP32[i64toi32_i32$0 >> 2] = $1285; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $411 = 8; + i64toi32_i32$2 = ($3 + 92 | 0) + $411 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1298 = i64toi32_i32$1; + i64toi32_i32$1 = $409 + $411 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1298; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$9; + case 5: + btMatrix3x3__getColumn_28int_29_20const($3 + 76 | 0 | 0, btTransform__getBasis_28_29($4 + 1236 | 0 | 0) | 0 | 0, 0 | 0); + btMatrix3x3__getColumn_28int_29_20const($3 + 60 | 0 | 0, btTransform__getBasis_28_29($4 + 1300 | 0 | 0) | 0 | 0, 2 | 0); + btVector3__cross_28btVector3_20const__29_20const($3 + 44 | 0 | 0, $3 + 60 | 0 | 0, $3 + 76 | 0 | 0); + $443 = ($4 + 1380 | 0) + 16 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 44 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 48 | 0) >> 2] | 0; + $1347 = i64toi32_i32$0; + i64toi32_i32$0 = $443; + HEAP32[i64toi32_i32$0 >> 2] = $1347; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $445 = 8; + i64toi32_i32$2 = ($3 + 44 | 0) + $445 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1360 = i64toi32_i32$1; + i64toi32_i32$1 = $443 + $445 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1360; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__cross_28btVector3_20const__29_20const($3 + 28 | 0 | 0, ($4 + 1380 | 0) + 16 | 0 | 0, $3 + 60 | 0 | 0); + $462 = $4 + 1380 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 28 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 32 | 0) >> 2] | 0; + $1384 = i64toi32_i32$0; + i64toi32_i32$0 = $462; + HEAP32[i64toi32_i32$0 >> 2] = $1384; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $464 = 8; + i64toi32_i32$2 = ($3 + 28 | 0) + $464 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1397 = i64toi32_i32$1; + i64toi32_i32$1 = $462 + $464 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1397; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__cross_28btVector3_20const__29_20const($3 + 12 | 0 | 0, $3 + 76 | 0 | 0, ($4 + 1380 | 0) + 16 | 0 | 0); + $483 = ($4 + 1380 | 0) + 32 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 12 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 16 | 0) >> 2] | 0; + $1424 = i64toi32_i32$0; + i64toi32_i32$0 = $483; + HEAP32[i64toi32_i32$0 >> 2] = $1424; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $485 = 8; + i64toi32_i32$2 = ($3 + 12 | 0) + $485 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1437 = i64toi32_i32$1; + i64toi32_i32$1 = $483 + $485 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1437; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$9; + default: + break label$10; + }; + } + __assert_fail(81487 | 0, 71825 | 0, 402 | 0, 76219 | 0); + wasm2js_trap(); + } + btVector3__normalize_28_29($4 + 1380 | 0 | 0) | 0; + btVector3__normalize_28_29(($4 + 1380 | 0) + 16 | 0 | 0) | 0; + btVector3__normalize_28_29(($4 + 1380 | 0) + 32 | 0 | 0) | 0; + __stack_pointer = $3 + 592 | 0; + return; + } + + function btGeneric6DofSpring2Constraint__calculateLinearInfo_28_29($0) { + $0 = $0 | 0; + var $3 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, i64toi32_i32$2 = 0, $15 = 0, $17 = 0, $38 = 0, $40 = 0, $119 = 0, $132 = 0, $164 = 0, $177 = 0, $61 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $3 = __stack_pointer - 96 | 0; + __stack_pointer = $3; + HEAP32[($3 + 92 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 92 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($3 + 76 | 0 | 0, btTransform__getOrigin_28_29($4 + 1300 | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29($4 + 1236 | 0 | 0) | 0 | 0); + $15 = $4 + 1428 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 76 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 80 | 0) >> 2] | 0; + $119 = i64toi32_i32$0; + i64toi32_i32$0 = $15; + HEAP32[i64toi32_i32$0 >> 2] = $119; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $17 = 8; + i64toi32_i32$2 = ($3 + 76 | 0) + $17 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $132 = i64toi32_i32$1; + i64toi32_i32$1 = $15 + $17 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $132; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btMatrix3x3__inverse_28_29_20const($3 + 12 | 0 | 0, btTransform__getBasis_28_29($4 + 1236 | 0 | 0) | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($3 + 60 | 0 | 0, $3 + 12 | 0 | 0, $4 + 1428 | 0 | 0); + $38 = $4 + 1428 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 60 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 64 | 0) >> 2] | 0; + $164 = i64toi32_i32$0; + i64toi32_i32$0 = $38; + HEAP32[i64toi32_i32$0 >> 2] = $164; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $40 = 8; + i64toi32_i32$2 = ($3 + 60 | 0) + $40 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $177 = i64toi32_i32$1; + i64toi32_i32$1 = $38 + $40 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $177; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($3 + 8 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$1 + } + $61 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($4 + 1428 | 0 | 0) | 0) + ((HEAP32[($3 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29(($4 + 680 | 0) + 260 | 0 | 0) | 0) + ((HEAP32[($3 + 8 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $61), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + btTranslationalLimitMotor2__testLimitValue_28int_2c_20float_29($4 + 680 | 0 | 0, HEAP32[($3 + 8 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($4 + 1428 | 0 | 0) | 0) + ((HEAP32[($3 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]))); + HEAP32[($3 + 8 | 0) >> 2] = (HEAP32[($3 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $3 + 96 | 0; + return; + } + + function btTypedConstraint__getRigidBodyA_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0; + } + + function btRigidBody__getInvMass_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 404 | 0) >> 2])); + } + + function btTypedConstraint__getRigidBodyB_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0; + } + + function btTranslationalLimitMotor2__testLimitValue_28int_2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0, $6 = 0, $49 = Math_fround(0), $66 = Math_fround(0), $76 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAPF32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 | 0) | 0) + ((HEAP32[($5 + 24 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 16 | 0 | 0) | 0) + ((HEAP32[($5 + 24 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($5 + 16 | 0) >> 2]) > Math_fround(HEAPF32[($5 + 12 | 0) >> 2]) & 1 | 0)) { + break label$2 + } + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($6 + 228 | 0 | 0) | 0) + ((HEAP32[($5 + 24 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP32[(($6 + 276 | 0) + ((HEAP32[($5 + 24 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = 0; + break label$1; + } + label$3 : { + label$4 : { + if (!(Math_fround(HEAPF32[($5 + 16 | 0) >> 2]) == Math_fround(HEAPF32[($5 + 12 | 0) >> 2]) & 1 | 0)) { + break label$4 + } + $49 = Math_fround(Math_fround(HEAPF32[($5 + 20 | 0) >> 2]) - Math_fround(HEAPF32[($5 + 16 | 0) >> 2])); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($6 + 228 | 0 | 0) | 0) + ((HEAP32[($5 + 24 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $49), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP32[(($6 + 276 | 0) + ((HEAP32[($5 + 24 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = 3; + break label$3; + } + $66 = Math_fround(Math_fround(HEAPF32[($5 + 20 | 0) >> 2]) - Math_fround(HEAPF32[($5 + 16 | 0) >> 2])); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($6 + 228 | 0 | 0) | 0) + ((HEAP32[($5 + 24 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $66), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $76 = Math_fround(Math_fround(HEAPF32[($5 + 20 | 0) >> 2]) - Math_fround(HEAPF32[($5 + 12 | 0) >> 2])); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($6 + 244 | 0 | 0) | 0) + ((HEAP32[($5 + 24 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $76), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP32[(($6 + 276 | 0) + ((HEAP32[($5 + 24 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = 4; + } + } + __stack_pointer = $5 + 32 | 0; + return; + } + + function btGeneric6DofSpring2Constraint__testAngularLimitMotor_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($5 + 1364 | 0 | 0) | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btAdjustAngleToLimits_28float_2c_20float_2c_20float_29(Math_fround(Math_fround(HEAPF32[($4 + 4 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[(($5 + 968 | 0) + Math_imul(HEAP32[($4 + 8 | 0) >> 2] | 0, 88) | 0) >> 2])), Math_fround(Math_fround(HEAPF32[((($5 + 968 | 0) + Math_imul(HEAP32[($4 + 8 | 0) >> 2] | 0, 88) | 0) + 4 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[((($5 + 968 | 0) + Math_imul(HEAP32[($4 + 8 | 0) >> 2] | 0, 88) | 0) + 80 | 0) >> 2] = Math_fround(HEAPF32[($4 + 4 | 0) >> 2]); + btRotationalLimitMotor2__testLimitValue_28float_29(($5 + 968 | 0) + Math_imul(HEAP32[($4 + 8 | 0) >> 2] | 0, 88) | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 4 | 0) >> 2]))); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAdjustAngleToLimits_28float_2c_20float_2c_20float_29($0, $1, $2) { + $0 = Math_fround($0); + $1 = Math_fround($1); + $2 = Math_fround($2); + var $5 = 0, $33 = Math_fround(0), $61 = Math_fround(0), $65 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAPF32[($5 + 24 | 0) >> 2] = $0; + HEAPF32[($5 + 20 | 0) >> 2] = $1; + HEAPF32[($5 + 16 | 0) >> 2] = $2; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($5 + 20 | 0) >> 2]) >= Math_fround(HEAPF32[($5 + 16 | 0) >> 2]) & 1 | 0)) { + break label$2 + } + HEAPF32[($5 + 28 | 0) >> 2] = Math_fround(HEAPF32[($5 + 24 | 0) >> 2]); + break label$1; + } + label$3 : { + if (!(Math_fround(HEAPF32[($5 + 24 | 0) >> 2]) < Math_fround(HEAPF32[($5 + 20 | 0) >> 2]) & 1 | 0)) { + break label$3 + } + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(btNormalizeAngle_28float_29(Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 20 | 0) >> 2]) - Math_fround(HEAPF32[($5 + 24 | 0) >> 2]))))))))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(btNormalizeAngle_28float_29(Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 16 | 0) >> 2]) - Math_fround(HEAPF32[($5 + 24 | 0) >> 2]))))))))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + label$4 : { + label$5 : { + if (!(Math_fround(HEAPF32[($5 + 12 | 0) >> 2]) < Math_fround(HEAPF32[($5 + 8 | 0) >> 2]) & 1 | 0)) { + break label$5 + } + $33 = Math_fround(HEAPF32[($5 + 24 | 0) >> 2]); + break label$4; + } + $33 = Math_fround(Math_fround(HEAPF32[($5 + 24 | 0) >> 2]) + Math_fround(6.2831854820251465)); + } + HEAPF32[($5 + 28 | 0) >> 2] = $33; + break label$1; + } + label$6 : { + if (!(Math_fround(HEAPF32[($5 + 24 | 0) >> 2]) > Math_fround(HEAPF32[($5 + 16 | 0) >> 2]) & 1 | 0)) { + break label$6 + } + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(btNormalizeAngle_28float_29(Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 24 | 0) >> 2]) - Math_fround(HEAPF32[($5 + 16 | 0) >> 2]))))))))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(btNormalizeAngle_28float_29(Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 24 | 0) >> 2]) - Math_fround(HEAPF32[($5 + 20 | 0) >> 2]))))))))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + label$7 : { + label$8 : { + if (!(Math_fround(HEAPF32[$5 >> 2]) < Math_fround(HEAPF32[($5 + 4 | 0) >> 2]) & 1 | 0)) { + break label$8 + } + $61 = Math_fround(Math_fround(HEAPF32[($5 + 24 | 0) >> 2]) - Math_fround(6.2831854820251465)); + break label$7; + } + $61 = Math_fround(HEAPF32[($5 + 24 | 0) >> 2]); + } + HEAPF32[($5 + 28 | 0) >> 2] = $61; + break label$1; + } + HEAPF32[($5 + 28 | 0) >> 2] = Math_fround(HEAPF32[($5 + 24 | 0) >> 2]); + } + $65 = Math_fround(HEAPF32[($5 + 28 | 0) >> 2]); + __stack_pointer = $5 + 32 | 0; + return Math_fround($65); + } + + function btRotationalLimitMotor2__testLimitValue_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $5 = 0, $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[$5 >> 2]) > Math_fround(HEAPF32[($5 + 4 | 0) >> 2]) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 84 | 0) >> 2] = 0; + HEAPF32[($5 + 72 | 0) >> 2] = Math_fround(0 | 0); + break label$1; + } + label$3 : { + label$4 : { + if (!(Math_fround(HEAPF32[$5 >> 2]) == Math_fround(HEAPF32[($5 + 4 | 0) >> 2]) & 1 | 0)) { + break label$4 + } + HEAPF32[($5 + 72 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]) - Math_fround(HEAPF32[$5 >> 2])); + HEAP32[($5 + 84 | 0) >> 2] = 3; + break label$3; + } + HEAPF32[($5 + 72 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]) - Math_fround(HEAPF32[$5 >> 2])); + HEAPF32[($5 + 76 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]) - Math_fround(HEAPF32[($5 + 4 | 0) >> 2])); + HEAP32[($5 + 84 | 0) >> 2] = 4; + } + } + return; + } + + function btGeneric6DofSpring2Constraint__getInfo1_28btTypedConstraint__btConstraintInfo1__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $37 = 0, $50 = 0, $63 = 0, $76 = 0, $105 = 0, $116 = 0, $129 = 0, $142 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btGeneric6DofSpring2Constraint__calculateTransforms_28btTransform_20const__2c_20btTransform_20const__29($5 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0 | 0); + HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] = 0; + HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$1 + } + label$3 : { + label$4 : { + if (!((HEAP32[((($5 + 680 | 0) + 276 | 0) + ((HEAP32[($4 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$4 + } + $37 = HEAP32[($4 + 8 | 0) >> 2] | 0; + HEAP32[$37 >> 2] = (HEAP32[$37 >> 2] | 0) + 2 | 0; + break label$3; + } + label$5 : { + if (!(HEAP32[((($5 + 680 | 0) + 276 | 0) + ((HEAP32[($4 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0)) { + break label$5 + } + $50 = HEAP32[($4 + 8 | 0) >> 2] | 0; + HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + 1 | 0; + } + } + label$6 : { + if (!((HEAPU8[((($5 + 680 | 0) + 112 | 0) + (HEAP32[($4 + 4 | 0) >> 2] | 0) | 0) >> 0] | 0) & 1 | 0)) { + break label$6 + } + $63 = HEAP32[($4 + 8 | 0) >> 2] | 0; + HEAP32[$63 >> 2] = (HEAP32[$63 >> 2] | 0) + 1 | 0; + } + label$7 : { + if (!((HEAPU8[((($5 + 680 | 0) + 118 | 0) + (HEAP32[($4 + 4 | 0) >> 2] | 0) | 0) >> 0] | 0) & 1 | 0)) { + break label$7 + } + $76 = HEAP32[($4 + 8 | 0) >> 2] | 0; + HEAP32[$76 >> 2] = (HEAP32[$76 >> 2] | 0) + 1 | 0; + } + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + HEAP32[($4 + 4 | 0) >> 2] = 0; + label$8 : { + label$9 : while (1) { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$8 + } + btGeneric6DofSpring2Constraint__testAngularLimitMotor_28int_29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + label$10 : { + label$11 : { + if (!((HEAP32[((($5 + 968 | 0) + Math_imul(HEAP32[($4 + 4 | 0) >> 2] | 0, 88) | 0) + 84 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$11 + } + $105 = HEAP32[($4 + 8 | 0) >> 2] | 0; + HEAP32[$105 >> 2] = (HEAP32[$105 >> 2] | 0) + 2 | 0; + break label$10; + } + label$12 : { + if (!(HEAP32[((($5 + 968 | 0) + Math_imul(HEAP32[($4 + 4 | 0) >> 2] | 0, 88) | 0) + 84 | 0) >> 2] | 0)) { + break label$12 + } + $116 = HEAP32[($4 + 8 | 0) >> 2] | 0; + HEAP32[$116 >> 2] = (HEAP32[$116 >> 2] | 0) + 1 | 0; + } + } + label$13 : { + if (!((HEAPU8[((($5 + 968 | 0) + Math_imul(HEAP32[($4 + 4 | 0) >> 2] | 0, 88) | 0) + 28 | 0) >> 0] | 0) & 1 | 0)) { + break label$13 + } + $129 = HEAP32[($4 + 8 | 0) >> 2] | 0; + HEAP32[$129 >> 2] = (HEAP32[$129 >> 2] | 0) + 1 | 0; + } + label$14 : { + if (!((HEAPU8[((($5 + 968 | 0) + Math_imul(HEAP32[($4 + 4 | 0) >> 2] | 0, 88) | 0) + 48 | 0) >> 0] | 0) & 1 | 0)) { + break label$14 + } + $142 = HEAP32[($4 + 8 | 0) >> 2] | 0; + HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + 1 | 0; + } + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$9; + }; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btGeneric6DofSpring2Constraint__getInfo2_28btTypedConstraint__btConstraintInfo2__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 48 | 0; + __stack_pointer = $4; + HEAP32[($4 + 44 | 0) >> 2] = $0; + HEAP32[($4 + 40 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 44 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btRigidBody__getLinearVelocity_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btRigidBody__getLinearVelocity_28_29_20const(HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btRigidBody__getAngularVelocity_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btRigidBody__getAngularVelocity_28_29_20const(HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btGeneric6DofSpring2Constraint__setAngularLimits_28btTypedConstraint__btConstraintInfo2__2c_20int_2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($5 | 0, HEAP32[($4 + 40 | 0) >> 2] | 0 | 0, 0 | 0, HEAP32[($4 + 36 | 0) >> 2] | 0 | 0, HEAP32[($4 + 32 | 0) >> 2] | 0 | 0, HEAP32[($4 + 28 | 0) >> 2] | 0 | 0, HEAP32[($4 + 24 | 0) >> 2] | 0 | 0, HEAP32[($4 + 20 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + btGeneric6DofSpring2Constraint__setLinearLimits_28btTypedConstraint__btConstraintInfo2__2c_20int_2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($5 | 0, HEAP32[($4 + 40 | 0) >> 2] | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4 + 36 | 0) >> 2] | 0 | 0, HEAP32[($4 + 32 | 0) >> 2] | 0 | 0, HEAP32[($4 + 28 | 0) >> 2] | 0 | 0, HEAP32[($4 + 24 | 0) >> 2] | 0 | 0, HEAP32[($4 + 20 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $4 + 48 | 0; + return; + } + + function btGeneric6DofSpring2Constraint__setAngularLimits_28btTypedConstraint__btConstraintInfo2__2c_20int_2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($0, $1, $2, $3, $4, $5, $6, $7, $8) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + $8 = $8 | 0; + var $11 = 0, $12 = 0, $16 = 0, $19 = 0, i64toi32_i32$1 = 0, $160 = 0, $166 = 0; + $11 = __stack_pointer - 96 | 0; + __stack_pointer = $11; + HEAP32[($11 + 92 | 0) >> 2] = $0; + HEAP32[($11 + 88 | 0) >> 2] = $1; + HEAP32[($11 + 84 | 0) >> 2] = $2; + HEAP32[($11 + 80 | 0) >> 2] = $3; + HEAP32[($11 + 76 | 0) >> 2] = $4; + HEAP32[($11 + 72 | 0) >> 2] = $5; + HEAP32[($11 + 68 | 0) >> 2] = $6; + HEAP32[($11 + 64 | 0) >> 2] = $7; + HEAP32[($11 + 60 | 0) >> 2] = $8; + $12 = HEAP32[($11 + 92 | 0) >> 2] | 0; + HEAP32[($11 + 56 | 0) >> 2] = HEAP32[($11 + 84 | 0) >> 2] | 0; + $16 = 0; + HEAP32[($11 + 48 | 0) >> 2] = HEAP32[($16 + 102136 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($16 + 102132 | 0) >> 2] | 0; + HEAP32[($11 + 40 | 0) >> 2] = HEAP32[($16 + 102128 | 0) >> 2] | 0; + HEAP32[($11 + 44 | 0) >> 2] = i64toi32_i32$1; + $19 = HEAP32[($12 + 1232 | 0) >> 2] | 0; + label$1 : { + label$2 : { + switch ($19 | 0) { + case 0: + HEAP32[($11 + 40 | 0) >> 2] = 0; + HEAP32[($11 + 44 | 0) >> 2] = 1; + HEAP32[($11 + 48 | 0) >> 2] = 2; + break label$1; + case 1: + HEAP32[($11 + 40 | 0) >> 2] = 0; + HEAP32[($11 + 44 | 0) >> 2] = 2; + HEAP32[($11 + 48 | 0) >> 2] = 1; + break label$1; + case 2: + HEAP32[($11 + 40 | 0) >> 2] = 1; + HEAP32[($11 + 44 | 0) >> 2] = 0; + HEAP32[($11 + 48 | 0) >> 2] = 2; + break label$1; + case 3: + HEAP32[($11 + 40 | 0) >> 2] = 1; + HEAP32[($11 + 44 | 0) >> 2] = 2; + HEAP32[($11 + 48 | 0) >> 2] = 0; + break label$1; + case 4: + HEAP32[($11 + 40 | 0) >> 2] = 2; + HEAP32[($11 + 44 | 0) >> 2] = 0; + HEAP32[($11 + 48 | 0) >> 2] = 1; + break label$1; + case 5: + HEAP32[($11 + 40 | 0) >> 2] = 2; + HEAP32[($11 + 44 | 0) >> 2] = 1; + HEAP32[($11 + 48 | 0) >> 2] = 0; + break label$1; + default: + break label$2; + }; + } + __assert_fail(81487 | 0, 71825 | 0, 563 | 0, 69239 | 0); + wasm2js_trap(); + } + HEAP32[($11 + 36 | 0) >> 2] = 0; + label$9 : { + label$10 : while (1) { + if (!((HEAP32[($11 + 36 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$9 + } + HEAP32[($11 + 32 | 0) >> 2] = HEAP32[(($11 + 40 | 0) + ((HEAP32[($11 + 36 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + label$11 : { + label$12 : { + if (HEAP32[((($12 + 968 | 0) + Math_imul(HEAP32[($11 + 32 | 0) >> 2] | 0, 88) | 0) + 84 | 0) >> 2] | 0) { + break label$12 + } + if ((HEAPU8[((($12 + 968 | 0) + Math_imul(HEAP32[($11 + 32 | 0) >> 2] | 0, 88) | 0) + 28 | 0) >> 0] | 0) & 1 | 0) { + break label$12 + } + if (!((HEAPU8[((($12 + 968 | 0) + Math_imul(HEAP32[($11 + 32 | 0) >> 2] | 0, 88) | 0) + 48 | 0) >> 0] | 0) & 1 | 0)) { + break label$11 + } + } + btGeneric6DofSpring2Constraint__getAxis_28int_29_20const($11 + 16 | 0 | 0, $12 | 0, HEAP32[($11 + 32 | 0) >> 2] | 0 | 0); + HEAP32[($11 + 12 | 0) >> 2] = (HEAP32[($12 + 1456 | 0) >> 2] | 0) >> (((HEAP32[($11 + 32 | 0) >> 2] | 0) + 3 | 0) << 2 | 0) | 0; + label$13 : { + if ((HEAP32[($11 + 12 | 0) >> 2] | 0) & 1 | 0) { + break label$13 + } + HEAPF32[((($12 + 968 | 0) + Math_imul(HEAP32[($11 + 32 | 0) >> 2] | 0, 88) | 0) + 16 | 0) >> 2] = Math_fround(HEAPF32[(HEAP32[((HEAP32[($11 + 88 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) >> 2]); + } + label$14 : { + if ((HEAP32[($11 + 12 | 0) >> 2] | 0) & 2 | 0) { + break label$14 + } + HEAPF32[((($12 + 968 | 0) + Math_imul(HEAP32[($11 + 32 | 0) >> 2] | 0, 88) | 0) + 12 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($11 + 88 | 0) >> 2] | 0) + 4 | 0) >> 2]); + } + label$15 : { + if ((HEAP32[($11 + 12 | 0) >> 2] | 0) & 4 | 0) { + break label$15 + } + HEAPF32[((($12 + 968 | 0) + Math_imul(HEAP32[($11 + 32 | 0) >> 2] | 0, 88) | 0) + 24 | 0) >> 2] = Math_fround(HEAPF32[(HEAP32[((HEAP32[($11 + 88 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) >> 2]); + } + label$16 : { + if ((HEAP32[($11 + 12 | 0) >> 2] | 0) & 8 | 0) { + break label$16 + } + HEAPF32[((($12 + 968 | 0) + Math_imul(HEAP32[($11 + 32 | 0) >> 2] | 0, 88) | 0) + 20 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($11 + 88 | 0) >> 2] | 0) + 4 | 0) >> 2]); + } + $160 = btGeneric6DofSpring2Constraint__get_limit_motor_info2_28btRotationalLimitMotor2__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btTypedConstraint__btConstraintInfo2__2c_20int_2c_20btVector3__2c_20int_2c_20int_29($12 | 0, ($12 + 968 | 0) + Math_imul(HEAP32[($11 + 32 | 0) >> 2] | 0, 88) | 0 | 0, HEAP32[($11 + 80 | 0) >> 2] | 0 | 0, HEAP32[($11 + 76 | 0) >> 2] | 0 | 0, HEAP32[($11 + 72 | 0) >> 2] | 0 | 0, HEAP32[($11 + 68 | 0) >> 2] | 0 | 0, HEAP32[($11 + 64 | 0) >> 2] | 0 | 0, HEAP32[($11 + 60 | 0) >> 2] | 0 | 0, HEAP32[($11 + 88 | 0) >> 2] | 0 | 0, HEAP32[($11 + 56 | 0) >> 2] | 0 | 0, $11 + 16 | 0 | 0, 1 | 0, 0 | 0) | 0; + HEAP32[($11 + 56 | 0) >> 2] = (HEAP32[($11 + 56 | 0) >> 2] | 0) + $160 | 0; + } + HEAP32[($11 + 36 | 0) >> 2] = (HEAP32[($11 + 36 | 0) >> 2] | 0) + 1 | 0; + continue label$10; + }; + } + $166 = HEAP32[($11 + 56 | 0) >> 2] | 0; + __stack_pointer = $11 + 96 | 0; + return $166 | 0; + } + + function btGeneric6DofSpring2Constraint__setLinearLimits_28btTypedConstraint__btConstraintInfo2__2c_20int_2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($0, $1, $2, $3, $4, $5, $6, $7, $8) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + $8 = $8 | 0; + var $11 = 0, $12 = 0, $330 = 0, $442 = 0, $248 = Math_fround(0), $266 = Math_fround(0), $283 = Math_fround(0), $301 = Math_fround(0), $398 = 0, $412 = 0, $510 = 0, $524 = 0, $563 = 0, $569 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $11 = __stack_pointer - 176 | 0; + __stack_pointer = $11; + HEAP32[($11 + 172 | 0) >> 2] = $0; + HEAP32[($11 + 168 | 0) >> 2] = $1; + HEAP32[($11 + 164 | 0) >> 2] = $2; + HEAP32[($11 + 160 | 0) >> 2] = $3; + HEAP32[($11 + 156 | 0) >> 2] = $4; + HEAP32[($11 + 152 | 0) >> 2] = $5; + HEAP32[($11 + 148 | 0) >> 2] = $6; + HEAP32[($11 + 144 | 0) >> 2] = $7; + HEAP32[($11 + 140 | 0) >> 2] = $8; + $12 = HEAP32[($11 + 172 | 0) >> 2] | 0; + btRotationalLimitMotor2__btRotationalLimitMotor2_28_29($11 + 52 | 0 | 0) | 0; + HEAP32[($11 + 48 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($11 + 48 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$1 + } + label$3 : { + label$4 : { + if (HEAP32[((($12 + 680 | 0) + 276 | 0) + ((HEAP32[($11 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) { + break label$4 + } + if ((HEAPU8[((($12 + 680 | 0) + 112 | 0) + (HEAP32[($11 + 48 | 0) >> 2] | 0) | 0) >> 0] | 0) & 1 | 0) { + break label$4 + } + if (!((HEAPU8[((($12 + 680 | 0) + 118 | 0) + (HEAP32[($11 + 48 | 0) >> 2] | 0) | 0) >> 0] | 0) & 1 | 0)) { + break label$3 + } + } + (wasm2js_i32$0 = $11, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29(($12 + 680 | 0) + 32 | 0 | 0) | 0) + ((HEAP32[($11 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 60 | 0) >> 2] = wasm2js_f32$0; + HEAP32[($11 + 136 | 0) >> 2] = HEAP32[((($12 + 680 | 0) + 276 | 0) + ((HEAP32[($11 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = $11, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29(($12 + 680 | 0) + 260 | 0 | 0) | 0) + ((HEAP32[($11 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 132 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $11, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29(($12 + 680 | 0) + 228 | 0 | 0) | 0) + ((HEAP32[($11 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 124 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $11, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29(($12 + 680 | 0) + 244 | 0 | 0) | 0) + ((HEAP32[($11 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 128 | 0) >> 2] = wasm2js_f32$0; + HEAP8[($11 + 80 | 0) >> 0] = (HEAPU8[((($12 + 680 | 0) + 112 | 0) + (HEAP32[($11 + 48 | 0) >> 2] | 0) | 0) >> 0] | 0) & 1 | 0; + HEAP8[($11 + 92 | 0) >> 0] = (HEAPU8[((($12 + 680 | 0) + 115 | 0) + (HEAP32[($11 + 48 | 0) >> 2] | 0) | 0) >> 0] | 0) & 1 | 0; + (wasm2js_i32$0 = $11, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29(($12 + 680 | 0) + 124 | 0 | 0) | 0) + ((HEAP32[($11 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 96 | 0) >> 2] = wasm2js_f32$0; + HEAP8[($11 + 100 | 0) >> 0] = (HEAPU8[((($12 + 680 | 0) + 118 | 0) + (HEAP32[($11 + 48 | 0) >> 2] | 0) | 0) >> 0] | 0) & 1 | 0; + (wasm2js_i32$0 = $11, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29(($12 + 680 | 0) + 140 | 0 | 0) | 0) + ((HEAP32[($11 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 104 | 0) >> 2] = wasm2js_f32$0; + HEAP8[($11 + 108 | 0) >> 0] = (HEAPU8[((($12 + 680 | 0) + 156 | 0) + (HEAP32[($11 + 48 | 0) >> 2] | 0) | 0) >> 0] | 0) & 1 | 0; + (wasm2js_i32$0 = $11, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29(($12 + 680 | 0) + 160 | 0 | 0) | 0) + ((HEAP32[($11 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 112 | 0) >> 2] = wasm2js_f32$0; + HEAP8[($11 + 116 | 0) >> 0] = (HEAPU8[((($12 + 680 | 0) + 176 | 0) + (HEAP32[($11 + 48 | 0) >> 2] | 0) | 0) >> 0] | 0) & 1 | 0; + (wasm2js_i32$0 = $11, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29(($12 + 680 | 0) + 180 | 0 | 0) | 0) + ((HEAP32[($11 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 120 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $11, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29(($12 + 680 | 0) + 16 | 0 | 0) | 0) + ((HEAP32[($11 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 56 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $11, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($12 + 680 | 0 | 0) | 0) + ((HEAP32[($11 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 52 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $11, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29(($12 + 680 | 0) + 212 | 0 | 0) | 0) + ((HEAP32[($11 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 88 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $11, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29(($12 + 680 | 0) + 196 | 0 | 0) | 0) + ((HEAP32[($11 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 84 | 0) >> 2] = wasm2js_f32$0; + btMatrix3x3__getColumn_28int_29_20const($11 + 32 | 0 | 0, btTransform__getBasis_28_29($12 + 1236 | 0 | 0) | 0 | 0, HEAP32[($11 + 48 | 0) >> 2] | 0 | 0); + HEAP32[($11 + 28 | 0) >> 2] = (HEAP32[($12 + 1456 | 0) >> 2] | 0) >> ((HEAP32[($11 + 48 | 0) >> 2] | 0) << 2 | 0) | 0; + label$5 : { + label$6 : { + if (!((HEAP32[($11 + 28 | 0) >> 2] | 0) & 1 | 0)) { + break label$6 + } + $248 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29(($12 + 680 | 0) + 64 | 0 | 0) | 0) + ((HEAP32[($11 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + break label$5; + } + $248 = Math_fround(HEAPF32[(HEAP32[((HEAP32[($11 + 168 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) >> 2]); + } + HEAPF32[($11 + 68 | 0) >> 2] = $248; + label$7 : { + label$8 : { + if (!((HEAP32[($11 + 28 | 0) >> 2] | 0) & 2 | 0)) { + break label$8 + } + $266 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29(($12 + 680 | 0) + 48 | 0 | 0) | 0) + ((HEAP32[($11 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + break label$7; + } + $266 = Math_fround(HEAPF32[((HEAP32[($11 + 168 | 0) >> 2] | 0) + 4 | 0) >> 2]); + } + HEAPF32[($11 + 64 | 0) >> 2] = $266; + label$9 : { + label$10 : { + if (!((HEAP32[($11 + 28 | 0) >> 2] | 0) & 4 | 0)) { + break label$10 + } + $283 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29(($12 + 680 | 0) + 96 | 0 | 0) | 0) + ((HEAP32[($11 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + break label$9; + } + $283 = Math_fround(HEAPF32[(HEAP32[((HEAP32[($11 + 168 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) >> 2]); + } + HEAPF32[($11 + 76 | 0) >> 2] = $283; + label$11 : { + label$12 : { + if (!((HEAP32[($11 + 28 | 0) >> 2] | 0) & 8 | 0)) { + break label$12 + } + $301 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29(($12 + 680 | 0) + 80 | 0 | 0) | 0) + ((HEAP32[($11 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + break label$11; + } + $301 = Math_fround(HEAPF32[((HEAP32[($11 + 168 | 0) >> 2] | 0) + 4 | 0) >> 2]); + } + HEAPF32[($11 + 72 | 0) >> 2] = $301; + HEAP32[($11 + 24 | 0) >> 2] = ((HEAP32[($11 + 48 | 0) >> 2] | 0) + 1 | 0 | 0) % (3 | 0) | 0; + HEAP32[($11 + 20 | 0) >> 2] = ((HEAP32[($11 + 48 | 0) >> 2] | 0) + 2 | 0 | 0) % (3 | 0) | 0; + HEAP32[($11 + 16 | 0) >> 2] = 1; + $330 = 1; + label$13 : { + if ((HEAP32[((($12 + 968 | 0) + Math_imul(HEAP32[($11 + 24 | 0) >> 2] | 0, 88) | 0) + 84 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0) { + break label$13 + } + $330 = 1; + if ((HEAP32[((($12 + 968 | 0) + Math_imul(HEAP32[($11 + 24 | 0) >> 2] | 0, 88) | 0) + 84 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0) { + break label$13 + } + label$14 : { + if (!((HEAP32[((($12 + 968 | 0) + Math_imul(HEAP32[($11 + 24 | 0) >> 2] | 0, 88) | 0) + 84 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$14 + } + $330 = 1; + if (+Math_fround(HEAPF32[(($12 + Math_imul(HEAP32[($11 + 24 | 0) >> 2] | 0, 88) | 0) + 1040 | 0) >> 2]) < -.001 & 1 | 0) { + break label$13 + } + $330 = 1; + if (+Math_fround(HEAPF32[(($12 + Math_imul(HEAP32[($11 + 24 | 0) >> 2] | 0, 88) | 0) + 1040 | 0) >> 2]) > .001 & 1 | 0) { + break label$13 + } + } + $398 = 0; + label$15 : { + if (!((HEAP32[((($12 + 968 | 0) + Math_imul(HEAP32[($11 + 24 | 0) >> 2] | 0, 88) | 0) + 84 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$15 + } + $412 = 1; + label$16 : { + if (+Math_fround(HEAPF32[(($12 + Math_imul(HEAP32[($11 + 24 | 0) >> 2] | 0, 88) | 0) + 1040 | 0) >> 2]) < -.001 & 1 | 0) { + break label$16 + } + $412 = +Math_fround(HEAPF32[(($12 + Math_imul(HEAP32[($11 + 24 | 0) >> 2] | 0, 88) | 0) + 1044 | 0) >> 2]) > .001; + } + $398 = $412; + } + $330 = $398; + } + HEAP8[($11 + 15 | 0) >> 0] = $330 & 1 | 0; + $442 = 1; + label$17 : { + if ((HEAP32[((($12 + 968 | 0) + Math_imul(HEAP32[($11 + 20 | 0) >> 2] | 0, 88) | 0) + 84 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0) { + break label$17 + } + $442 = 1; + if ((HEAP32[((($12 + 968 | 0) + Math_imul(HEAP32[($11 + 20 | 0) >> 2] | 0, 88) | 0) + 84 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0) { + break label$17 + } + label$18 : { + if (!((HEAP32[((($12 + 968 | 0) + Math_imul(HEAP32[($11 + 20 | 0) >> 2] | 0, 88) | 0) + 84 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$18 + } + $442 = 1; + if (+Math_fround(HEAPF32[(($12 + Math_imul(HEAP32[($11 + 20 | 0) >> 2] | 0, 88) | 0) + 1040 | 0) >> 2]) < -.001 & 1 | 0) { + break label$17 + } + $442 = 1; + if (+Math_fround(HEAPF32[(($12 + Math_imul(HEAP32[($11 + 20 | 0) >> 2] | 0, 88) | 0) + 1040 | 0) >> 2]) > .001 & 1 | 0) { + break label$17 + } + } + $510 = 0; + label$19 : { + if (!((HEAP32[((($12 + 968 | 0) + Math_imul(HEAP32[($11 + 20 | 0) >> 2] | 0, 88) | 0) + 84 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$19 + } + $524 = 1; + label$20 : { + if (+Math_fround(HEAPF32[(($12 + Math_imul(HEAP32[($11 + 20 | 0) >> 2] | 0, 88) | 0) + 1040 | 0) >> 2]) < -.001 & 1 | 0) { + break label$20 + } + $524 = +Math_fround(HEAPF32[(($12 + Math_imul(HEAP32[($11 + 20 | 0) >> 2] | 0, 88) | 0) + 1044 | 0) >> 2]) > .001; + } + $510 = $524; + } + $442 = $510; + } + HEAP8[($11 + 14 | 0) >> 0] = $442 & 1 | 0; + label$21 : { + if (!((HEAPU8[($11 + 15 | 0) >> 0] | 0) & 1 | 0)) { + break label$21 + } + if (!((HEAPU8[($11 + 14 | 0) >> 0] | 0) & 1 | 0)) { + break label$21 + } + HEAP32[($11 + 16 | 0) >> 2] = 0; + } + $563 = btGeneric6DofSpring2Constraint__get_limit_motor_info2_28btRotationalLimitMotor2__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btTypedConstraint__btConstraintInfo2__2c_20int_2c_20btVector3__2c_20int_2c_20int_29($12 | 0, $11 + 52 | 0 | 0, HEAP32[($11 + 160 | 0) >> 2] | 0 | 0, HEAP32[($11 + 156 | 0) >> 2] | 0 | 0, HEAP32[($11 + 152 | 0) >> 2] | 0 | 0, HEAP32[($11 + 148 | 0) >> 2] | 0 | 0, HEAP32[($11 + 144 | 0) >> 2] | 0 | 0, HEAP32[($11 + 140 | 0) >> 2] | 0 | 0, HEAP32[($11 + 168 | 0) >> 2] | 0 | 0, HEAP32[($11 + 164 | 0) >> 2] | 0 | 0, $11 + 32 | 0 | 0, 0 | 0, HEAP32[($11 + 16 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($11 + 164 | 0) >> 2] = (HEAP32[($11 + 164 | 0) >> 2] | 0) + $563 | 0; + } + HEAP32[($11 + 48 | 0) >> 2] = (HEAP32[($11 + 48 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + $569 = HEAP32[($11 + 164 | 0) >> 2] | 0; + __stack_pointer = $11 + 176 | 0; + return $569 | 0; + } + + function btGeneric6DofSpring2Constraint__getAxis_28int_29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5 = 0, $14 = 0, $42 = 0, $52 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $1; + HEAP32[($5 + 8 | 0) >> 2] = $2; + i64toi32_i32$2 = ((HEAP32[($5 + 12 | 0) >> 2] | 0) + 1380 | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 4 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $42 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $42; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $14 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $14 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $52 = i64toi32_i32$1; + i64toi32_i32$1 = $0 + $14 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $52; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function btGeneric6DofSpring2Constraint__get_limit_motor_info2_28btRotationalLimitMotor2__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btTypedConstraint__btConstraintInfo2__2c_20int_2c_20btVector3__2c_20int_2c_20int_29($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + $8 = $8 | 0; + $9 = $9 | 0; + $10 = $10 | 0; + $11 = $11 | 0; + $12 = $12 | 0; + var $15 = 0, $16 = 0, $38 = Math_fround(0), $427 = Math_fround(0), $542 = Math_fround(0), $568 = Math_fround(0), $578 = Math_fround(0), $594 = Math_fround(0), $611 = Math_fround(0), $708 = Math_fround(0), $733 = Math_fround(0), $816 = Math_fround(0), $825 = Math_fround(0), $837 = Math_fround(0), $854 = Math_fround(0), $872 = Math_fround(0), $891 = Math_fround(0), $915 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $15 = __stack_pointer - 176 | 0; + __stack_pointer = $15; + HEAP32[($15 + 172 | 0) >> 2] = $0; + HEAP32[($15 + 168 | 0) >> 2] = $1; + HEAP32[($15 + 164 | 0) >> 2] = $2; + HEAP32[($15 + 160 | 0) >> 2] = $3; + HEAP32[($15 + 156 | 0) >> 2] = $4; + HEAP32[($15 + 152 | 0) >> 2] = $5; + HEAP32[($15 + 148 | 0) >> 2] = $6; + HEAP32[($15 + 144 | 0) >> 2] = $7; + HEAP32[($15 + 140 | 0) >> 2] = $8; + HEAP32[($15 + 136 | 0) >> 2] = $9; + HEAP32[($15 + 132 | 0) >> 2] = $10; + HEAP32[($15 + 128 | 0) >> 2] = $11; + HEAP32[($15 + 124 | 0) >> 2] = $12; + $16 = HEAP32[($15 + 172 | 0) >> 2] | 0; + HEAP32[($15 + 120 | 0) >> 2] = 0; + HEAP32[($15 + 116 | 0) >> 2] = Math_imul(HEAP32[($15 + 136 | 0) >> 2] | 0, HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0); + label$1 : { + label$2 : { + if (!((HEAP32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 84 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$2 + } + label$3 : { + label$4 : { + if (!(HEAP32[($15 + 128 | 0) >> 2] | 0)) { + break label$4 + } + $38 = Math_fround(Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($15 + 148 | 0) >> 2] | 0 | 0, HEAP32[($15 + 132 | 0) >> 2] | 0 | 0)) - Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($15 + 144 | 0) >> 2] | 0 | 0, HEAP32[($15 + 132 | 0) >> 2] | 0 | 0))); + break label$3; + } + $38 = Math_fround(Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($15 + 156 | 0) >> 2] | 0 | 0, HEAP32[($15 + 132 | 0) >> 2] | 0 | 0)) - Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($15 + 152 | 0) >> 2] | 0 | 0, HEAP32[($15 + 132 | 0) >> 2] | 0 | 0))); + } + HEAPF32[($15 + 112 | 0) >> 2] = $38; + btGeneric6DofSpring2Constraint__calculateJacobi_28btRotationalLimitMotor2__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btTypedConstraint__btConstraintInfo2__2c_20int_2c_20btVector3__2c_20int_2c_20int_29($16 | 0, HEAP32[($15 + 168 | 0) >> 2] | 0 | 0, HEAP32[($15 + 164 | 0) >> 2] | 0 | 0, HEAP32[($15 + 160 | 0) >> 2] | 0 | 0, HEAP32[($15 + 140 | 0) >> 2] | 0 | 0, HEAP32[($15 + 116 | 0) >> 2] | 0 | 0, HEAP32[($15 + 132 | 0) >> 2] | 0 | 0, HEAP32[($15 + 128 | 0) >> 2] | 0 | 0, HEAP32[($15 + 124 | 0) >> 2] | 0 | 0); + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[(HEAP32[($15 + 140 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 12 | 0) >> 2])) * Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 72 | 0) >> 2])) * Math_fround((HEAP32[($15 + 128 | 0) >> 2] | 0 ? -1 : 1) | 0)); + label$5 : { + label$6 : { + if (!(HEAP32[($15 + 128 | 0) >> 2] | 0)) { + break label$6 + } + label$7 : { + if (!(Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($15 + 112 | 0) >> 2])) * Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 12 | 0) >> 2])) + Math_fround(HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])) > Math_fround(0 | 0) & 1 | 0)) { + break label$7 + } + HEAPF32[($15 + 108 | 0) >> 2] = Math_fround(Math_fround(-Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 8 | 0) >> 2])) * Math_fround(HEAPF32[($15 + 112 | 0) >> 2])); + label$8 : { + if (!(Math_fround(HEAPF32[($15 + 108 | 0) >> 2]) > Math_fround(HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) & 1 | 0)) { + break label$8 + } + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($15 + 108 | 0) >> 2]); + } + } + break label$5; + } + label$9 : { + if (!(Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($15 + 112 | 0) >> 2])) * Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 12 | 0) >> 2])) + Math_fround(HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])) < Math_fround(0 | 0) & 1 | 0)) { + break label$9 + } + HEAPF32[($15 + 104 | 0) >> 2] = Math_fround(Math_fround(-Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 8 | 0) >> 2])) * Math_fround(HEAPF32[($15 + 112 | 0) >> 2])); + label$10 : { + if (!(Math_fround(HEAPF32[($15 + 104 | 0) >> 2]) < Math_fround(HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) & 1 | 0)) { + break label$10 + } + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($15 + 104 | 0) >> 2]); + } + } + } + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[($15 + 128 | 0) >> 2] | 0 ? Math_fround(0 | 0) : Math_fround(-3402823466385288598117041.0e14); + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[($15 + 128 | 0) >> 2] | 0 ? Math_fround(3402823466385288598117041.0e14) : Math_fround(0 | 0); + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 16 | 0) >> 2]); + HEAP32[($15 + 116 | 0) >> 2] = (HEAP32[($15 + 116 | 0) >> 2] | 0) + (HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) | 0; + HEAP32[($15 + 120 | 0) >> 2] = (HEAP32[($15 + 120 | 0) >> 2] | 0) + 1 | 0; + btGeneric6DofSpring2Constraint__calculateJacobi_28btRotationalLimitMotor2__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btTypedConstraint__btConstraintInfo2__2c_20int_2c_20btVector3__2c_20int_2c_20int_29($16 | 0, HEAP32[($15 + 168 | 0) >> 2] | 0 | 0, HEAP32[($15 + 164 | 0) >> 2] | 0 | 0, HEAP32[($15 + 160 | 0) >> 2] | 0 | 0, HEAP32[($15 + 140 | 0) >> 2] | 0 | 0, HEAP32[($15 + 116 | 0) >> 2] | 0 | 0, HEAP32[($15 + 132 | 0) >> 2] | 0 | 0, HEAP32[($15 + 128 | 0) >> 2] | 0 | 0, HEAP32[($15 + 124 | 0) >> 2] | 0 | 0); + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[(HEAP32[($15 + 140 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 12 | 0) >> 2])) * Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 76 | 0) >> 2])) * Math_fround((HEAP32[($15 + 128 | 0) >> 2] | 0 ? -1 : 1) | 0)); + label$11 : { + label$12 : { + if (!(HEAP32[($15 + 128 | 0) >> 2] | 0)) { + break label$12 + } + label$13 : { + if (!(Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($15 + 112 | 0) >> 2])) * Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 12 | 0) >> 2])) + Math_fround(HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])) < Math_fround(0 | 0) & 1 | 0)) { + break label$13 + } + HEAPF32[($15 + 100 | 0) >> 2] = Math_fround(Math_fround(-Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 8 | 0) >> 2])) * Math_fround(HEAPF32[($15 + 112 | 0) >> 2])); + label$14 : { + if (!(Math_fround(HEAPF32[($15 + 100 | 0) >> 2]) < Math_fround(HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) & 1 | 0)) { + break label$14 + } + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($15 + 100 | 0) >> 2]); + } + } + break label$11; + } + label$15 : { + if (!(Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($15 + 112 | 0) >> 2])) * Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 12 | 0) >> 2])) + Math_fround(HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])) > Math_fround(0 | 0) & 1 | 0)) { + break label$15 + } + HEAPF32[($15 + 96 | 0) >> 2] = Math_fround(Math_fround(-Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 8 | 0) >> 2])) * Math_fround(HEAPF32[($15 + 112 | 0) >> 2])); + label$16 : { + if (!(Math_fround(HEAPF32[($15 + 96 | 0) >> 2]) > Math_fround(HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) & 1 | 0)) { + break label$16 + } + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($15 + 96 | 0) >> 2]); + } + } + } + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[($15 + 128 | 0) >> 2] | 0 ? Math_fround(-3402823466385288598117041.0e14) : Math_fround(0 | 0); + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[($15 + 128 | 0) >> 2] | 0 ? Math_fround(0 | 0) : Math_fround(3402823466385288598117041.0e14); + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 16 | 0) >> 2]); + HEAP32[($15 + 116 | 0) >> 2] = (HEAP32[($15 + 116 | 0) >> 2] | 0) + (HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) | 0; + HEAP32[($15 + 120 | 0) >> 2] = (HEAP32[($15 + 120 | 0) >> 2] | 0) + 1 | 0; + break label$1; + } + label$17 : { + if (!((HEAP32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 84 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$17 + } + btGeneric6DofSpring2Constraint__calculateJacobi_28btRotationalLimitMotor2__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btTypedConstraint__btConstraintInfo2__2c_20int_2c_20btVector3__2c_20int_2c_20int_29($16 | 0, HEAP32[($15 + 168 | 0) >> 2] | 0 | 0, HEAP32[($15 + 164 | 0) >> 2] | 0 | 0, HEAP32[($15 + 160 | 0) >> 2] | 0 | 0, HEAP32[($15 + 140 | 0) >> 2] | 0 | 0, HEAP32[($15 + 116 | 0) >> 2] | 0 | 0, HEAP32[($15 + 132 | 0) >> 2] | 0 | 0, HEAP32[($15 + 128 | 0) >> 2] | 0 | 0, HEAP32[($15 + 124 | 0) >> 2] | 0 | 0); + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[(HEAP32[($15 + 140 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 12 | 0) >> 2])) * Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 72 | 0) >> 2])) * Math_fround((HEAP32[($15 + 128 | 0) >> 2] | 0 ? -1 : 1) | 0)); + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(-3402823466385288598117041.0e14); + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(3402823466385288598117041.0e14); + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 16 | 0) >> 2]); + HEAP32[($15 + 116 | 0) >> 2] = (HEAP32[($15 + 116 | 0) >> 2] | 0) + (HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) | 0; + HEAP32[($15 + 120 | 0) >> 2] = (HEAP32[($15 + 120 | 0) >> 2] | 0) + 1 | 0; + } + } + label$18 : { + if (!((HEAPU8[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 28 | 0) >> 0] | 0) & 1 | 0)) { + break label$18 + } + if ((HEAPU8[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 40 | 0) >> 0] | 0) & 1 | 0) { + break label$18 + } + btGeneric6DofSpring2Constraint__calculateJacobi_28btRotationalLimitMotor2__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btTypedConstraint__btConstraintInfo2__2c_20int_2c_20btVector3__2c_20int_2c_20int_29($16 | 0, HEAP32[($15 + 168 | 0) >> 2] | 0 | 0, HEAP32[($15 + 164 | 0) >> 2] | 0 | 0, HEAP32[($15 + 160 | 0) >> 2] | 0 | 0, HEAP32[($15 + 140 | 0) >> 2] | 0 | 0, HEAP32[($15 + 116 | 0) >> 2] | 0 | 0, HEAP32[($15 + 132 | 0) >> 2] | 0 | 0, HEAP32[($15 + 128 | 0) >> 2] | 0 | 0, HEAP32[($15 + 124 | 0) >> 2] | 0 | 0); + label$19 : { + label$20 : { + if (!(HEAP32[($15 + 128 | 0) >> 2] | 0)) { + break label$20 + } + $427 = Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 32 | 0) >> 2]); + break label$19; + } + $427 = Math_fround(-Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 32 | 0) >> 2])); + } + HEAPF32[($15 + 92 | 0) >> 2] = $427; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(btTypedConstraint__getMotorFactor_28float_2c_20float_2c_20float_2c_20float_2c_20float_29($16 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 80 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[(HEAP32[($15 + 168 | 0) >> 2] | 0) >> 2])), Math_fround(Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 4 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($15 + 92 | 0) >> 2])), Math_fround(Math_fround(Math_fround(HEAPF32[(HEAP32[($15 + 140 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 20 | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 88 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 88 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 32 | 0) >> 2])); + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 36 | 0) >> 2])); + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 36 | 0) >> 2]); + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 24 | 0) >> 2]); + HEAP32[($15 + 116 | 0) >> 2] = (HEAP32[($15 + 116 | 0) >> 2] | 0) + (HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) | 0; + HEAP32[($15 + 120 | 0) >> 2] = (HEAP32[($15 + 120 | 0) >> 2] | 0) + 1 | 0; + } + label$21 : { + if (!((HEAPU8[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 28 | 0) >> 0] | 0) & 1 | 0)) { + break label$21 + } + if (!((HEAPU8[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 40 | 0) >> 0] | 0) & 1 | 0)) { + break label$21 + } + HEAPF32[($15 + 84 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 80 | 0) >> 2]) - Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 44 | 0) >> 2])); + HEAPF32[($15 + 80 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 44 | 0) >> 2]); + label$22 : { + if (!(HEAP32[($15 + 128 | 0) >> 2] | 0)) { + break label$22 + } + label$23 : { + if (!(Math_fround(HEAPF32[($15 + 84 | 0) >> 2]) > Math_fround(3.1415927410125732) & 1 | 0)) { + break label$23 + } + HEAPF32[($15 + 84 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 84 | 0) >> 2]) - Math_fround(6.2831854820251465)); + HEAPF32[($15 + 80 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 80 | 0) >> 2]) + Math_fround(6.2831854820251465)); + } + label$24 : { + if (!(Math_fround(HEAPF32[($15 + 84 | 0) >> 2]) < Math_fround(-3.1415927410125732) & 1 | 0)) { + break label$24 + } + HEAPF32[($15 + 84 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 84 | 0) >> 2]) + Math_fround(6.2831854820251465)); + HEAPF32[($15 + 80 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 80 | 0) >> 2]) - Math_fround(6.2831854820251465)); + } + } + btGeneric6DofSpring2Constraint__calculateJacobi_28btRotationalLimitMotor2__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btTypedConstraint__btConstraintInfo2__2c_20int_2c_20btVector3__2c_20int_2c_20int_29($16 | 0, HEAP32[($15 + 168 | 0) >> 2] | 0 | 0, HEAP32[($15 + 164 | 0) >> 2] | 0 | 0, HEAP32[($15 + 160 | 0) >> 2] | 0 | 0, HEAP32[($15 + 140 | 0) >> 2] | 0 | 0, HEAP32[($15 + 116 | 0) >> 2] | 0 | 0, HEAP32[($15 + 132 | 0) >> 2] | 0 | 0, HEAP32[($15 + 128 | 0) >> 2] | 0 | 0, HEAP32[($15 + 124 | 0) >> 2] | 0 | 0); + label$25 : { + label$26 : { + if (!(Math_fround(HEAPF32[($15 + 84 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$26 + } + $542 = Math_fround(-Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 32 | 0) >> 2])); + break label$25; + } + $542 = Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 32 | 0) >> 2]); + } + HEAPF32[($15 + 76 | 0) >> 2] = $542; + HEAPF32[($15 + 72 | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[($15 + 76 | 0) >> 2])); + label$27 : { + label$28 : { + if (!(Math_fround(HEAPF32[($15 + 84 | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0)) { + break label$28 + } + label$29 : { + label$30 : { + if (!(Math_fround(HEAPF32[(HEAP32[($15 + 168 | 0) >> 2] | 0) >> 2]) > Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 4 | 0) >> 2]) & 1 | 0)) { + break label$30 + } + label$31 : { + label$32 : { + if (!(Math_fround(HEAPF32[($15 + 84 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$32 + } + $568 = Math_fround(HEAPF32[($15 + 80 | 0) >> 2]); + break label$31; + } + $568 = Math_fround(-3402823466385288598117041.0e14); + } + HEAPF32[($15 + 64 | 0) >> 2] = $568; + label$33 : { + label$34 : { + if (!(Math_fround(HEAPF32[($15 + 84 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$34 + } + $578 = Math_fround(HEAPF32[($15 + 80 | 0) >> 2]); + break label$33; + } + $578 = Math_fround(3402823466385288598117041.0e14); + } + HEAPF32[($15 + 60 | 0) >> 2] = $578; + break label$29; + } + label$35 : { + label$36 : { + if (!(Math_fround(HEAPF32[($15 + 84 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$36 + } + if (!(Math_fround(HEAPF32[($15 + 80 | 0) >> 2]) > Math_fround(HEAPF32[(HEAP32[($15 + 168 | 0) >> 2] | 0) >> 2]) & 1 | 0)) { + break label$36 + } + $594 = Math_fround(HEAPF32[($15 + 80 | 0) >> 2]); + break label$35; + } + $594 = Math_fround(HEAPF32[(HEAP32[($15 + 168 | 0) >> 2] | 0) >> 2]); + } + HEAPF32[($15 + 64 | 0) >> 2] = $594; + label$37 : { + label$38 : { + if (!(Math_fround(HEAPF32[($15 + 84 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$38 + } + if (!(Math_fround(HEAPF32[($15 + 80 | 0) >> 2]) < Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 4 | 0) >> 2]) & 1 | 0)) { + break label$38 + } + $611 = Math_fround(HEAPF32[($15 + 80 | 0) >> 2]); + break label$37; + } + $611 = Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 4 | 0) >> 2]); + } + HEAPF32[($15 + 60 | 0) >> 2] = $611; + } + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(btTypedConstraint__getMotorFactor_28float_2c_20float_2c_20float_2c_20float_2c_20float_29($16 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 80 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($15 + 64 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($15 + 60 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($15 + 72 | 0) >> 2])), Math_fround(Math_fround(Math_fround(HEAPF32[(HEAP32[($15 + 140 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 20 | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 68 | 0) >> 2] = wasm2js_f32$0; + break label$27; + } + HEAPF32[($15 + 68 | 0) >> 2] = Math_fround(0 | 0); + } + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 68 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 76 | 0) >> 2])) * Math_fround((HEAP32[($15 + 128 | 0) >> 2] | 0 ? -1 : 1) | 0)); + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 36 | 0) >> 2])); + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 36 | 0) >> 2]); + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 24 | 0) >> 2]); + HEAP32[($15 + 116 | 0) >> 2] = (HEAP32[($15 + 116 | 0) >> 2] | 0) + (HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) | 0; + HEAP32[($15 + 120 | 0) >> 2] = (HEAP32[($15 + 120 | 0) >> 2] | 0) + 1 | 0; + } + label$39 : { + if (!((HEAPU8[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 48 | 0) >> 0] | 0) & 1 | 0)) { + break label$39 + } + HEAPF32[($15 + 56 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 80 | 0) >> 2]) - Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 68 | 0) >> 2])); + btGeneric6DofSpring2Constraint__calculateJacobi_28btRotationalLimitMotor2__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btTypedConstraint__btConstraintInfo2__2c_20int_2c_20btVector3__2c_20int_2c_20int_29($16 | 0, HEAP32[($15 + 168 | 0) >> 2] | 0 | 0, HEAP32[($15 + 164 | 0) >> 2] | 0 | 0, HEAP32[($15 + 160 | 0) >> 2] | 0 | 0, HEAP32[($15 + 140 | 0) >> 2] | 0 | 0, HEAP32[($15 + 116 | 0) >> 2] | 0 | 0, HEAP32[($15 + 132 | 0) >> 2] | 0 | 0, HEAP32[($15 + 128 | 0) >> 2] | 0 | 0, HEAP32[($15 + 124 | 0) >> 2] | 0 | 0); + HEAPF32[($15 + 52 | 0) >> 2] = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[(HEAP32[($15 + 140 | 0) >> 2] | 0) >> 2])); + HEAPF32[($15 + 48 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 60 | 0) >> 2]); + HEAPF32[($15 + 44 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 52 | 0) >> 2]); + label$40 : { + label$41 : { + if (!(HEAP32[($15 + 128 | 0) >> 2] | 0)) { + break label$41 + } + $708 = Math_fround(Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($15 + 148 | 0) >> 2] | 0 | 0, HEAP32[($15 + 132 | 0) >> 2] | 0 | 0)) - Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($15 + 144 | 0) >> 2] | 0 | 0, HEAP32[($15 + 132 | 0) >> 2] | 0 | 0))); + break label$40; + } + $708 = Math_fround(Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($15 + 156 | 0) >> 2] | 0 | 0, HEAP32[($15 + 132 | 0) >> 2] | 0 | 0)) - Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($15 + 152 | 0) >> 2] | 0 | 0, HEAP32[($15 + 132 | 0) >> 2] | 0 | 0))); + } + HEAPF32[($15 + 40 | 0) >> 2] = $708; + HEAPF32[($15 + 36 | 0) >> 2] = Math_fround(0 | 0); + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(Math_fround(1.0) / Math_fround(btRigidBody__getInvMass_28_29_20const(HEAP32[($16 + 28 | 0) >> 2] | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(Math_fround(1.0) / Math_fround(btRigidBody__getInvMass_28_29_20const(HEAP32[($16 + 32 | 0) >> 2] | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + label$42 : { + label$43 : { + if (!(Math_fround(HEAPF32[($15 + 32 | 0) >> 2]) > Math_fround(HEAPF32[($15 + 28 | 0) >> 2]) & 1 | 0)) { + break label$43 + } + $733 = Math_fround(HEAPF32[($15 + 28 | 0) >> 2]); + break label$42; + } + $733 = Math_fround(HEAPF32[($15 + 32 | 0) >> 2]); + } + HEAPF32[($15 + 24 | 0) >> 2] = $733; + (wasm2js_i32$0 = $15, wasm2js_f32$0 = Math_fround(sqrt_5babi_v160004_5d_28float_29(Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 44 | 0) >> 2]) / Math_fround(HEAPF32[($15 + 24 | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + label$44 : { + if (!((HEAPU8[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 56 | 0) >> 0] | 0) & 1 | 0)) { + break label$44 + } + if (!(.25 < +Math_fround(Math_fround(HEAPF32[($15 + 20 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 52 | 0) >> 2])) & 1 | 0)) { + break label$44 + } + HEAPF32[($15 + 44 | 0) >> 2] = Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[($15 + 52 | 0) >> 2])) / Math_fround(HEAPF32[($15 + 52 | 0) >> 2])) / Math_fround(16.0)) * Math_fround(HEAPF32[($15 + 24 | 0) >> 2])); + } + label$45 : { + if (!((HEAPU8[((HEAP32[($15 + 168 | 0) >> 2] | 0) + 64 | 0) >> 0] | 0) & 1 | 0)) { + break label$45 + } + if (!(Math_fround(Math_fround(HEAPF32[($15 + 48 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 52 | 0) >> 2])) > Math_fround(HEAPF32[($15 + 24 | 0) >> 2]) & 1 | 0)) { + break label$45 + } + HEAPF32[($15 + 48 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 24 | 0) >> 2]) / Math_fround(HEAPF32[($15 + 52 | 0) >> 2])); + } + HEAPF32[($15 + 16 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 44 | 0) >> 2]) * Math_fround(HEAPF32[($15 + 56 | 0) >> 2])) * Math_fround(HEAPF32[($15 + 52 | 0) >> 2])); + HEAPF32[($15 + 12 | 0) >> 2] = Math_fround(Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($15 + 48 | 0) >> 2])) * Math_fround(HEAPF32[($15 + 40 | 0) >> 2])) * Math_fround((HEAP32[($15 + 128 | 0) >> 2] | 0 ? -1 : 1) | 0)) * Math_fround(HEAPF32[($15 + 52 | 0) >> 2])); + HEAPF32[($15 + 8 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($15 + 16 | 0) >> 2]) + Math_fround(HEAPF32[($15 + 12 | 0) >> 2])); + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($15 + 8 | 0) >> 2]) * Math_fround((HEAP32[($15 + 128 | 0) >> 2] | 0 ? -1 : 1) | 0)) + Math_fround(HEAPF32[($15 + 40 | 0) >> 2])); + label$46 : { + label$47 : { + if (!(Math_fround(HEAPF32[($15 + 8 | 0) >> 2]) < Math_fround(HEAPF32[($15 + 12 | 0) >> 2]) & 1 | 0)) { + break label$47 + } + $816 = Math_fround(HEAPF32[($15 + 8 | 0) >> 2]); + break label$46; + } + $816 = Math_fround(HEAPF32[($15 + 12 | 0) >> 2]); + } + HEAPF32[($15 + 4 | 0) >> 2] = $816; + label$48 : { + label$49 : { + if (!(Math_fround(HEAPF32[($15 + 8 | 0) >> 2]) < Math_fround(HEAPF32[($15 + 12 | 0) >> 2]) & 1 | 0)) { + break label$49 + } + $825 = Math_fround(HEAPF32[($15 + 12 | 0) >> 2]); + break label$48; + } + $825 = Math_fround(HEAPF32[($15 + 8 | 0) >> 2]); + } + HEAPF32[$15 >> 2] = $825; + label$50 : { + label$51 : { + if (HEAP32[($15 + 128 | 0) >> 2] | 0) { + break label$51 + } + label$52 : { + label$53 : { + if (!(Math_fround(HEAPF32[($15 + 4 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$53 + } + $837 = Math_fround(0 | 0); + break label$52; + } + $837 = Math_fround(HEAPF32[($15 + 4 | 0) >> 2]); + } + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = $837; + label$54 : { + label$55 : { + if (!(Math_fround(HEAPF32[$15 >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$55 + } + $854 = Math_fround(0 | 0); + break label$54; + } + $854 = Math_fround(HEAPF32[$15 >> 2]); + } + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = $854; + break label$50; + } + label$56 : { + label$57 : { + if (!(Math_fround(-Math_fround(HEAPF32[$15 >> 2])) > Math_fround(0 | 0) & 1 | 0)) { + break label$57 + } + $872 = Math_fround(0 | 0); + break label$56; + } + $872 = Math_fround(-Math_fround(HEAPF32[$15 >> 2])); + } + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = $872; + label$58 : { + label$59 : { + if (!(Math_fround(-Math_fround(HEAPF32[($15 + 4 | 0) >> 2])) < Math_fround(0 | 0) & 1 | 0)) { + break label$59 + } + $891 = Math_fround(0 | 0); + break label$58; + } + $891 = Math_fround(-Math_fround(HEAPF32[($15 + 4 | 0) >> 2])); + } + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = $891; + } + HEAPF32[((HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) + ((HEAP32[($15 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($15 + 36 | 0) >> 2]); + HEAP32[($15 + 116 | 0) >> 2] = (HEAP32[($15 + 116 | 0) >> 2] | 0) + (HEAP32[((HEAP32[($15 + 140 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) | 0; + HEAP32[($15 + 120 | 0) >> 2] = (HEAP32[($15 + 120 | 0) >> 2] | 0) + 1 | 0; + } + $915 = HEAP32[($15 + 120 | 0) >> 2] | 0; + __stack_pointer = $15 + 176 | 0; + return $915 | 0; + } + + function btGeneric6DofSpring2Constraint__calculateJacobi_28btRotationalLimitMotor2__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btTypedConstraint__btConstraintInfo2__2c_20int_2c_20btVector3__2c_20int_2c_20int_29($0, $1, $2, $3, $4, $5, $6, $7, $8) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + $8 = $8 | 0; + var $11 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $12 = 0, $16 = 0, $23 = 0, $111 = 0, $128 = 0, $144 = 0, $160 = 0, $29 = Math_fround(0), $39 = Math_fround(0), $49 = Math_fround(0), $60 = Math_fround(0), $71 = Math_fround(0), $82 = Math_fround(0), $491 = 0, $495 = 0, $527 = 0, $531 = 0, $560 = 0, $564 = 0, $593 = 0, $597 = 0, $194 = 0, $222 = 0; + $11 = __stack_pointer - 192 | 0; + __stack_pointer = $11; + HEAP32[($11 + 188 | 0) >> 2] = $0; + HEAP32[($11 + 184 | 0) >> 2] = $1; + HEAP32[($11 + 180 | 0) >> 2] = $2; + HEAP32[($11 + 176 | 0) >> 2] = $3; + HEAP32[($11 + 172 | 0) >> 2] = $4; + HEAP32[($11 + 168 | 0) >> 2] = $5; + HEAP32[($11 + 164 | 0) >> 2] = $6; + HEAP32[($11 + 160 | 0) >> 2] = $7; + HEAP32[($11 + 156 | 0) >> 2] = $8; + $12 = HEAP32[($11 + 188 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($11 + 160 | 0) >> 2] | 0)) { + break label$2 + } + $16 = HEAP32[((HEAP32[($11 + 172 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + break label$1; + } + $16 = HEAP32[((HEAP32[($11 + 172 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + } + HEAP32[($11 + 152 | 0) >> 2] = $16; + label$3 : { + label$4 : { + if (!(HEAP32[($11 + 160 | 0) >> 2] | 0)) { + break label$4 + } + $23 = HEAP32[((HEAP32[($11 + 172 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0; + break label$3; + } + $23 = HEAP32[((HEAP32[($11 + 172 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + } + HEAP32[($11 + 148 | 0) >> 2] = $23; + $29 = Math_fround(HEAPF32[(btVector3__operator_20float__28_29(HEAP32[($11 + 164 | 0) >> 2] | 0 | 0) | 0) >> 2]); + HEAPF32[((HEAP32[($11 + 152 | 0) >> 2] | 0) + (((HEAP32[($11 + 168 | 0) >> 2] | 0) + 0 | 0) << 2 | 0) | 0) >> 2] = $29; + $39 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29(HEAP32[($11 + 164 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2]); + HEAPF32[((HEAP32[($11 + 152 | 0) >> 2] | 0) + (((HEAP32[($11 + 168 | 0) >> 2] | 0) + 1 | 0) << 2 | 0) | 0) >> 2] = $39; + $49 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29(HEAP32[($11 + 164 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2]); + HEAPF32[((HEAP32[($11 + 152 | 0) >> 2] | 0) + (((HEAP32[($11 + 168 | 0) >> 2] | 0) + 2 | 0) << 2 | 0) | 0) >> 2] = $49; + $60 = Math_fround(-Math_fround(HEAPF32[(btVector3__operator_20float__28_29(HEAP32[($11 + 164 | 0) >> 2] | 0 | 0) | 0) >> 2])); + HEAPF32[((HEAP32[($11 + 148 | 0) >> 2] | 0) + (((HEAP32[($11 + 168 | 0) >> 2] | 0) + 0 | 0) << 2 | 0) | 0) >> 2] = $60; + $71 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float__28_29(HEAP32[($11 + 164 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2])); + HEAPF32[((HEAP32[($11 + 148 | 0) >> 2] | 0) + (((HEAP32[($11 + 168 | 0) >> 2] | 0) + 1 | 0) << 2 | 0) | 0) >> 2] = $71; + $82 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float__28_29(HEAP32[($11 + 164 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2])); + HEAPF32[((HEAP32[($11 + 148 | 0) >> 2] | 0) + (((HEAP32[($11 + 168 | 0) >> 2] | 0) + 2 | 0) << 2 | 0) | 0) >> 2] = $82; + label$5 : { + if (HEAP32[($11 + 160 | 0) >> 2] | 0) { + break label$5 + } + btVector3__btVector3_28_29($11 + 128 | 0 | 0) | 0; + btVector3__btVector3_28_29($11 + 112 | 0 | 0) | 0; + btVector3__btVector3_28_29($11 + 96 | 0 | 0) | 0; + btVector3__btVector3_28_29($11 + 80 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($11 + 64 | 0 | 0, btTransform__getOrigin_28_29($12 + 1300 | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($11 + 176 | 0) >> 2] | 0 | 0) | 0 | 0); + $111 = 8; + i64toi32_i32$2 = ($11 + 64 | 0) + $111 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $491 = i64toi32_i32$0; + i64toi32_i32$0 = ($11 + 80 | 0) + $111 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $491; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $11; + i64toi32_i32$1 = HEAP32[($11 + 64 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($11 + 68 | 0) >> 2] | 0; + $495 = i64toi32_i32$1; + i64toi32_i32$1 = $11; + HEAP32[($11 + 80 | 0) >> 2] = $495; + HEAP32[($11 + 84 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($11 + 48 | 0 | 0, btTransform__getOrigin_28_29($12 + 1236 | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($11 + 180 | 0) >> 2] | 0 | 0) | 0 | 0); + $128 = 8; + i64toi32_i32$2 = ($11 + 48 | 0) + $128 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $527 = i64toi32_i32$0; + i64toi32_i32$0 = ($11 + 96 | 0) + $128 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $527; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $11; + i64toi32_i32$1 = HEAP32[($11 + 48 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($11 + 52 | 0) >> 2] | 0; + $531 = i64toi32_i32$1; + i64toi32_i32$1 = $11; + HEAP32[($11 + 96 | 0) >> 2] = $531; + HEAP32[($11 + 100 | 0) >> 2] = i64toi32_i32$0; + btVector3__cross_28btVector3_20const__29_20const($11 + 32 | 0 | 0, $11 + 96 | 0 | 0, HEAP32[($11 + 164 | 0) >> 2] | 0 | 0); + $144 = 8; + i64toi32_i32$2 = ($11 + 32 | 0) + $144 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $560 = i64toi32_i32$0; + i64toi32_i32$0 = ($11 + 128 | 0) + $144 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $560; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $11; + i64toi32_i32$1 = HEAP32[($11 + 32 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($11 + 36 | 0) >> 2] | 0; + $564 = i64toi32_i32$1; + i64toi32_i32$1 = $11; + HEAP32[($11 + 128 | 0) >> 2] = $564; + HEAP32[($11 + 132 | 0) >> 2] = i64toi32_i32$0; + btVector3__cross_28btVector3_20const__29_20const($11 + 16 | 0 | 0, $11 + 80 | 0 | 0, HEAP32[($11 + 164 | 0) >> 2] | 0 | 0); + $160 = 8; + i64toi32_i32$2 = ($11 + 16 | 0) + $160 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $593 = i64toi32_i32$0; + i64toi32_i32$0 = ($11 + 112 | 0) + $160 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $593; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $11; + i64toi32_i32$1 = HEAP32[($11 + 16 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($11 + 20 | 0) >> 2] | 0; + $597 = i64toi32_i32$1; + i64toi32_i32$1 = $11; + HEAP32[($11 + 112 | 0) >> 2] = $597; + HEAP32[($11 + 116 | 0) >> 2] = i64toi32_i32$0; + label$6 : { + if (!((HEAPU8[($12 + 1452 | 0) >> 0] | 0) & 1 | 0)) { + break label$6 + } + if (HEAP32[($11 + 156 | 0) >> 2] | 0) { + break label$6 + } + btVector3__operator___28float_20const__29_1($11 + 128 | 0 | 0, $12 + 1444 | 0 | 0) | 0; + btVector3__operator___28float_20const__29_1($11 + 112 | 0 | 0, $12 + 1448 | 0 | 0) | 0; + } + HEAP32[($11 + 12 | 0) >> 2] = 0; + label$7 : { + label$8 : while (1) { + if (!((HEAP32[($11 + 12 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$7 + } + $194 = btVector3__operator_20float__28_29($11 + 128 | 0 | 0) | 0; + HEAPF32[((HEAP32[((HEAP32[($11 + 172 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + (((HEAP32[($11 + 168 | 0) >> 2] | 0) + (HEAP32[($11 + 12 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($194 + ((HEAP32[($11 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + HEAP32[($11 + 12 | 0) >> 2] = (HEAP32[($11 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$8; + }; + } + HEAP32[($11 + 12 | 0) >> 2] = 0; + label$9 : { + label$10 : while (1) { + if (!((HEAP32[($11 + 12 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$9 + } + $222 = btVector3__operator_20float__28_29($11 + 112 | 0 | 0) | 0; + HEAPF32[((HEAP32[((HEAP32[($11 + 172 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + (((HEAP32[($11 + 168 | 0) >> 2] | 0) + (HEAP32[($11 + 12 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[($222 + ((HEAP32[($11 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])); + HEAP32[($11 + 12 | 0) >> 2] = (HEAP32[($11 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$10; + }; + } + } + __stack_pointer = $11 + 192 | 0; + return; + } + + function sqrt_5babi_v160004_5d_28float_29($0) { + $0 = Math_fround($0); + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAPF32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(Math_sqrt(Math_fround(HEAPF32[($3 + 12 | 0) >> 2])))); + } + + function btGeneric6DofSpring2Constraint__setFrames_28btTransform_20const__2c_20btTransform_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btTransform__operator__28btTransform_20const__29($6 + 48 | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0; + btTransform__operator__28btTransform_20const__29($6 + 112 | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($6); + btGeneric6DofSpring2Constraint__calculateTransforms_28_29($6 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function btGeneric6DofSpring2Constraint__setParam_28int_2c_20float_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = $3 | 0; + var $6 = 0, $7 = 0, $24 = 0, $114 = 0, $26 = Math_fround(0), $43 = Math_fround(0), $60 = Math_fround(0), $77 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAPF32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[$6 >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$2 + } + if (!((HEAP32[$6 >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$2 + } + $24 = (HEAP32[($6 + 8 | 0) >> 2] | 0) + -1 | 0; + label$3 : { + label$4 : { + switch ($24 | 0) { + case 1: + $26 = Math_fround(HEAPF32[($6 + 4 | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29(($7 + 680 | 0) + 48 | 0 | 0) | 0) + ((HEAP32[$6 >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $26), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP32[($7 + 1456 | 0) >> 2] = HEAP32[($7 + 1456 | 0) >> 2] | 0 | (2 << ((HEAP32[$6 >> 2] | 0) << 2 | 0) | 0) | 0; + break label$3; + case 3: + $43 = Math_fround(HEAPF32[($6 + 4 | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29(($7 + 680 | 0) + 64 | 0 | 0) | 0) + ((HEAP32[$6 >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $43), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP32[($7 + 1456 | 0) >> 2] = HEAP32[($7 + 1456 | 0) >> 2] | 0 | (1 << ((HEAP32[$6 >> 2] | 0) << 2 | 0) | 0) | 0; + break label$3; + case 0: + $60 = Math_fround(HEAPF32[($6 + 4 | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29(($7 + 680 | 0) + 80 | 0 | 0) | 0) + ((HEAP32[$6 >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $60), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP32[($7 + 1456 | 0) >> 2] = HEAP32[($7 + 1456 | 0) >> 2] | 0 | (8 << ((HEAP32[$6 >> 2] | 0) << 2 | 0) | 0) | 0; + break label$3; + case 2: + $77 = Math_fround(HEAPF32[($6 + 4 | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29(($7 + 680 | 0) + 96 | 0 | 0) | 0) + ((HEAP32[$6 >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $77), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP32[($7 + 1456 | 0) >> 2] = HEAP32[($7 + 1456 | 0) >> 2] | 0 | (4 << ((HEAP32[$6 >> 2] | 0) << 2 | 0) | 0) | 0; + break label$3; + default: + break label$4; + }; + } + __assert_fail(86177 | 0, 71825 | 0, 867 | 0, 77248 | 0); + wasm2js_trap(); + } + break label$1; + } + label$9 : { + label$10 : { + if (!((HEAP32[$6 >> 2] | 0 | 0) >= (3 | 0) & 1 | 0)) { + break label$10 + } + if (!((HEAP32[$6 >> 2] | 0 | 0) < (6 | 0) & 1 | 0)) { + break label$10 + } + $114 = (HEAP32[($6 + 8 | 0) >> 2] | 0) + -1 | 0; + label$11 : { + label$12 : { + switch ($114 | 0) { + case 1: + HEAPF32[((($7 + 968 | 0) + Math_imul((HEAP32[$6 >> 2] | 0) - 3 | 0, 88) | 0) + 12 | 0) >> 2] = Math_fround(HEAPF32[($6 + 4 | 0) >> 2]); + HEAP32[($7 + 1456 | 0) >> 2] = HEAP32[($7 + 1456 | 0) >> 2] | 0 | (2 << ((HEAP32[$6 >> 2] | 0) << 2 | 0) | 0) | 0; + break label$11; + case 3: + HEAPF32[((($7 + 968 | 0) + Math_imul((HEAP32[$6 >> 2] | 0) - 3 | 0, 88) | 0) + 16 | 0) >> 2] = Math_fround(HEAPF32[($6 + 4 | 0) >> 2]); + HEAP32[($7 + 1456 | 0) >> 2] = HEAP32[($7 + 1456 | 0) >> 2] | 0 | (1 << ((HEAP32[$6 >> 2] | 0) << 2 | 0) | 0) | 0; + break label$11; + case 0: + HEAPF32[((($7 + 968 | 0) + Math_imul((HEAP32[$6 >> 2] | 0) - 3 | 0, 88) | 0) + 20 | 0) >> 2] = Math_fround(HEAPF32[($6 + 4 | 0) >> 2]); + HEAP32[($7 + 1456 | 0) >> 2] = HEAP32[($7 + 1456 | 0) >> 2] | 0 | (8 << ((HEAP32[$6 >> 2] | 0) << 2 | 0) | 0) | 0; + break label$11; + case 2: + HEAPF32[((($7 + 968 | 0) + Math_imul((HEAP32[$6 >> 2] | 0) - 3 | 0, 88) | 0) + 24 | 0) >> 2] = Math_fround(HEAPF32[($6 + 4 | 0) >> 2]); + HEAP32[($7 + 1456 | 0) >> 2] = HEAP32[($7 + 1456 | 0) >> 2] | 0 | (4 << ((HEAP32[$6 >> 2] | 0) << 2 | 0) | 0) | 0; + break label$11; + default: + break label$12; + }; + } + __assert_fail(86177 | 0, 71825 | 0, 891 | 0, 77248 | 0); + wasm2js_trap(); + } + break label$9; + } + __assert_fail(86177 | 0, 71825 | 0, 896 | 0, 77248 | 0); + wasm2js_trap(); + } + } + __stack_pointer = $6 + 16 | 0; + return; + } + + function btGeneric6DofSpring2Constraint__getParam_28int_2c_20int_29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $25 = 0, $131 = 0, $221 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAPF32[$5 >> 2] = Math_fround(0 | 0); + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$2 + } + if (!((HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$2 + } + $25 = (HEAP32[($5 + 8 | 0) >> 2] | 0) + -1 | 0; + label$3 : { + label$4 : { + switch ($25 | 0) { + case 1: + label$9 : { + if ((HEAP32[($6 + 1456 | 0) >> 2] | 0) & (2 << ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) | 0) { + break label$9 + } + __assert_fail(86890 | 0, 71825 | 0, 909 | 0, 77257 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(($6 + 680 | 0) + 48 | 0 | 0) | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + break label$3; + case 3: + label$10 : { + if ((HEAP32[($6 + 1456 | 0) >> 2] | 0) & (1 << ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) | 0) { + break label$10 + } + __assert_fail(86940 | 0, 71825 | 0, 913 | 0, 77257 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(($6 + 680 | 0) + 64 | 0 | 0) | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + break label$3; + case 0: + label$11 : { + if ((HEAP32[($6 + 1456 | 0) >> 2] | 0) & (8 << ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) | 0) { + break label$11 + } + __assert_fail(86990 | 0, 71825 | 0, 917 | 0, 77257 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(($6 + 680 | 0) + 80 | 0 | 0) | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + break label$3; + case 2: + label$12 : { + if ((HEAP32[($6 + 1456 | 0) >> 2] | 0) & (4 << ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) | 0) { + break label$12 + } + __assert_fail(87040 | 0, 71825 | 0, 921 | 0, 77257 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(($6 + 680 | 0) + 96 | 0 | 0) | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + break label$3; + default: + break label$4; + }; + } + __assert_fail(86177 | 0, 71825 | 0, 925 | 0, 77257 | 0); + wasm2js_trap(); + } + break label$1; + } + label$13 : { + label$14 : { + if (!((HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) >= (3 | 0) & 1 | 0)) { + break label$14 + } + if (!((HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) < (6 | 0) & 1 | 0)) { + break label$14 + } + $131 = (HEAP32[($5 + 8 | 0) >> 2] | 0) + -1 | 0; + label$15 : { + label$16 : { + switch ($131 | 0) { + case 1: + label$21 : { + if ((HEAP32[($6 + 1456 | 0) >> 2] | 0) & (2 << ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) | 0) { + break label$21 + } + __assert_fail(86890 | 0, 71825 | 0, 933 | 0, 77257 | 0); + wasm2js_trap(); + } + HEAPF32[$5 >> 2] = Math_fround(HEAPF32[((($6 + 968 | 0) + Math_imul((HEAP32[($5 + 4 | 0) >> 2] | 0) - 3 | 0, 88) | 0) + 12 | 0) >> 2]); + break label$15; + case 3: + label$22 : { + if ((HEAP32[($6 + 1456 | 0) >> 2] | 0) & (1 << ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) | 0) { + break label$22 + } + __assert_fail(86940 | 0, 71825 | 0, 937 | 0, 77257 | 0); + wasm2js_trap(); + } + HEAPF32[$5 >> 2] = Math_fround(HEAPF32[((($6 + 968 | 0) + Math_imul((HEAP32[($5 + 4 | 0) >> 2] | 0) - 3 | 0, 88) | 0) + 16 | 0) >> 2]); + break label$15; + case 0: + label$23 : { + if ((HEAP32[($6 + 1456 | 0) >> 2] | 0) & (8 << ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) | 0) { + break label$23 + } + __assert_fail(86990 | 0, 71825 | 0, 941 | 0, 77257 | 0); + wasm2js_trap(); + } + HEAPF32[$5 >> 2] = Math_fround(HEAPF32[((($6 + 968 | 0) + Math_imul((HEAP32[($5 + 4 | 0) >> 2] | 0) - 3 | 0, 88) | 0) + 20 | 0) >> 2]); + break label$15; + case 2: + label$24 : { + if ((HEAP32[($6 + 1456 | 0) >> 2] | 0) & (4 << ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) | 0) { + break label$24 + } + __assert_fail(87040 | 0, 71825 | 0, 945 | 0, 77257 | 0); + wasm2js_trap(); + } + HEAPF32[$5 >> 2] = Math_fround(HEAPF32[((($6 + 968 | 0) + Math_imul((HEAP32[($5 + 4 | 0) >> 2] | 0) - 3 | 0, 88) | 0) + 24 | 0) >> 2]); + break label$15; + default: + break label$16; + }; + } + __assert_fail(86177 | 0, 71825 | 0, 949 | 0, 77257 | 0); + wasm2js_trap(); + } + break label$13; + } + __assert_fail(86177 | 0, 71825 | 0, 954 | 0, 77257 | 0); + wasm2js_trap(); + } + } + $221 = Math_fround(HEAPF32[$5 >> 2]); + __stack_pointer = $5 + 16 | 0; + return Math_fround($221); + } + + function btGeneric6DofSpring2Constraint__setBounce_28int_2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0, $6 = 0, $32 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$2 + } + if ((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (6 | 0) & 1 | 0) { + break label$1 + } + } + __assert_fail(86524 | 0, 71825 | 0, 982 | 0, 82167 | 0); + wasm2js_trap(); + } + label$3 : { + label$4 : { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$4 + } + $32 = Math_fround(HEAPF32[($5 + 4 | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29(($6 + 680 | 0) + 32 | 0 | 0) | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $32), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + break label$3; + } + HEAPF32[((($6 + 968 | 0) + Math_imul((HEAP32[($5 + 8 | 0) >> 2] | 0) - 3 | 0, 88) | 0) + 8 | 0) >> 2] = Math_fround(HEAPF32[($5 + 4 | 0) >> 2]); + } + __stack_pointer = $5 + 16 | 0; + return; + } + + function btGeneric6DofSpring2Constraint__enableMotor_28int_2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $7 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP8[($5 + 7 | 0) >> 0] = $2; + $7 = HEAP32[($5 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$2 + } + if ((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (6 | 0) & 1 | 0) { + break label$1 + } + } + __assert_fail(86524 | 0, 71825 | 0, 991 | 0, 70654 | 0); + wasm2js_trap(); + } + label$3 : { + label$4 : { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$4 + } + HEAP8[((($7 + 680 | 0) + 112 | 0) + (HEAP32[($5 + 8 | 0) >> 2] | 0) | 0) >> 0] = (HEAPU8[($5 + 7 | 0) >> 0] | 0) & 1 | 0; + break label$3; + } + HEAP8[((($7 + 968 | 0) + Math_imul((HEAP32[($5 + 8 | 0) >> 2] | 0) - 3 | 0, 88) | 0) + 28 | 0) >> 0] = (HEAPU8[($5 + 7 | 0) >> 0] | 0) & 1 | 0; + } + __stack_pointer = $5 + 16 | 0; + return; + } + + function btGeneric6DofSpring2Constraint__setServo_28int_2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $7 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP8[($5 + 7 | 0) >> 0] = $2; + $7 = HEAP32[($5 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$2 + } + if ((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (6 | 0) & 1 | 0) { + break label$1 + } + } + __assert_fail(86524 | 0, 71825 | 0, 1e3 | 0, 76180 | 0); + wasm2js_trap(); + } + label$3 : { + label$4 : { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$4 + } + HEAP8[((($7 + 680 | 0) + 115 | 0) + (HEAP32[($5 + 8 | 0) >> 2] | 0) | 0) >> 0] = (HEAPU8[($5 + 7 | 0) >> 0] | 0) & 1 | 0; + break label$3; + } + HEAP8[((($7 + 968 | 0) + Math_imul((HEAP32[($5 + 8 | 0) >> 2] | 0) - 3 | 0, 88) | 0) + 40 | 0) >> 0] = (HEAPU8[($5 + 7 | 0) >> 0] | 0) & 1 | 0; + } + __stack_pointer = $5 + 16 | 0; + return; + } + + function btGeneric6DofSpring2Constraint__setTargetVelocity_28int_2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0, $6 = 0, $32 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$2 + } + if ((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (6 | 0) & 1 | 0) { + break label$1 + } + } + __assert_fail(86524 | 0, 71825 | 0, 1009 | 0, 65757 | 0); + wasm2js_trap(); + } + label$3 : { + label$4 : { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$4 + } + $32 = Math_fround(HEAPF32[($5 + 4 | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29(($6 + 680 | 0) + 196 | 0 | 0) | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $32), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + break label$3; + } + HEAPF32[((($6 + 968 | 0) + Math_imul((HEAP32[($5 + 8 | 0) >> 2] | 0) - 3 | 0, 88) | 0) + 32 | 0) >> 2] = Math_fround(HEAPF32[($5 + 4 | 0) >> 2]); + } + __stack_pointer = $5 + 16 | 0; + return; + } + + function btGeneric6DofSpring2Constraint__setServoTarget_28int_2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0, $6 = 0, $32 = Math_fround(0), $45 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAPF32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$2 + } + if ((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) < (6 | 0) & 1 | 0) { + break label$1 + } + } + __assert_fail(86524 | 0, 71825 | 0, 1020 | 0, 68608 | 0); + wasm2js_trap(); + } + label$3 : { + label$4 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$4 + } + $32 = Math_fround(HEAPF32[($5 + 20 | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29(($6 + 680 | 0) + 124 | 0 | 0) | 0) + ((HEAP32[($5 + 24 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $32), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + break label$3; + } + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 20 | 0) >> 2]) + Math_fround(3.1415927410125732)); + $45 = Math_fround(HEAPF32[($5 + 16 | 0) >> 2]); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(floor_5babi_v160004_5d_28float_29(Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 16 | 0) >> 2]) / Math_fround(6.2831854820251465))))) * Math_fround(-6.2831854820251465)) + $45)), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + label$5 : { + label$6 : { + if (!(Math_fround(HEAPF32[($5 + 12 | 0) >> 2]) >= Math_fround(6.2831854820251465) & 1 | 0)) { + break label$6 + } + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(0 | 0); + break label$5; + } + label$7 : { + label$8 : { + if (!(Math_fround(HEAPF32[($5 + 12 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$8 + } + label$9 : { + label$10 : { + if (!(Math_fround(Math_fround(6.2831854820251465) + Math_fround(HEAPF32[($5 + 12 | 0) >> 2])) == Math_fround(6.2831854820251465) & 1 | 0)) { + break label$10 + } + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(0 | 0); + break label$9; + } + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(Math_fround(6.2831854820251465) + Math_fround(HEAPF32[($5 + 12 | 0) >> 2])); + } + break label$7; + } + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(HEAPF32[($5 + 12 | 0) >> 2]); + } + } + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 16 | 0) >> 2]) - Math_fround(3.1415927410125732)); + HEAPF32[((($6 + 968 | 0) + Math_imul((HEAP32[($5 + 24 | 0) >> 2] | 0) - 3 | 0, 88) | 0) + 44 | 0) >> 2] = Math_fround(HEAPF32[($5 + 16 | 0) >> 2]); + } + __stack_pointer = $5 + 32 | 0; + return; + } + + function floor_5babi_v160004_5d_28float_29($0) { + $0 = Math_fround($0); + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAPF32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(Math_floor(Math_fround(HEAPF32[($3 + 12 | 0) >> 2])))); + } + + function btGeneric6DofSpring2Constraint__setMaxMotorForce_28int_2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0, $6 = 0, $32 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$2 + } + if ((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (6 | 0) & 1 | 0) { + break label$1 + } + } + __assert_fail(86524 | 0, 71825 | 0, 1063 | 0, 82121 | 0); + wasm2js_trap(); + } + label$3 : { + label$4 : { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$4 + } + $32 = Math_fround(HEAPF32[($5 + 4 | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29(($6 + 680 | 0) + 212 | 0 | 0) | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $32), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + break label$3; + } + HEAPF32[((($6 + 968 | 0) + Math_imul((HEAP32[($5 + 8 | 0) >> 2] | 0) - 3 | 0, 88) | 0) + 36 | 0) >> 2] = Math_fround(HEAPF32[($5 + 4 | 0) >> 2]); + } + __stack_pointer = $5 + 16 | 0; + return; + } + + function btGeneric6DofSpring2Constraint__enableSpring_28int_2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $7 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP8[($5 + 7 | 0) >> 0] = $2; + $7 = HEAP32[($5 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$2 + } + if ((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (6 | 0) & 1 | 0) { + break label$1 + } + } + __assert_fail(86524 | 0, 71825 | 0, 1072 | 0, 80592 | 0); + wasm2js_trap(); + } + label$3 : { + label$4 : { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$4 + } + HEAP8[((($7 + 680 | 0) + 118 | 0) + (HEAP32[($5 + 8 | 0) >> 2] | 0) | 0) >> 0] = (HEAPU8[($5 + 7 | 0) >> 0] | 0) & 1 | 0; + break label$3; + } + HEAP8[((($7 + 968 | 0) + Math_imul((HEAP32[($5 + 8 | 0) >> 2] | 0) - 3 | 0, 88) | 0) + 48 | 0) >> 0] = (HEAPU8[($5 + 7 | 0) >> 0] | 0) & 1 | 0; + } + __stack_pointer = $5 + 16 | 0; + return; + } + + function btGeneric6DofSpring2Constraint__setStiffness_28int_2c_20float_2c_20bool_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = $3 | 0; + var $6 = 0, $8 = 0, $34 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAPF32[($6 + 4 | 0) >> 2] = $2; + HEAP8[($6 + 3 | 0) >> 0] = $3; + $8 = HEAP32[($6 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$2 + } + if ((HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) < (6 | 0) & 1 | 0) { + break label$1 + } + } + __assert_fail(86524 | 0, 71825 | 0, 1081 | 0, 69344 | 0); + wasm2js_trap(); + } + label$3 : { + label$4 : { + if (!((HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$4 + } + $34 = Math_fround(HEAPF32[($6 + 4 | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29(($8 + 680 | 0) + 140 | 0 | 0) | 0) + ((HEAP32[($6 + 8 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $34), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP8[((($8 + 680 | 0) + 156 | 0) + (HEAP32[($6 + 8 | 0) >> 2] | 0) | 0) >> 0] = (HEAPU8[($6 + 3 | 0) >> 0] | 0) & 1 | 0; + break label$3; + } + HEAPF32[((($8 + 968 | 0) + Math_imul((HEAP32[($6 + 8 | 0) >> 2] | 0) - 3 | 0, 88) | 0) + 52 | 0) >> 2] = Math_fround(HEAPF32[($6 + 4 | 0) >> 2]); + HEAP8[((($8 + 968 | 0) + Math_imul((HEAP32[($6 + 8 | 0) >> 2] | 0) - 3 | 0, 88) | 0) + 56 | 0) >> 0] = (HEAPU8[($6 + 3 | 0) >> 0] | 0) & 1 | 0; + } + __stack_pointer = $6 + 16 | 0; + return; + } + + function btGeneric6DofSpring2Constraint__setDamping_28int_2c_20float_2c_20bool_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = $3 | 0; + var $6 = 0, $8 = 0, $34 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAPF32[($6 + 4 | 0) >> 2] = $2; + HEAP8[($6 + 3 | 0) >> 0] = $3; + $8 = HEAP32[($6 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$2 + } + if ((HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) < (6 | 0) & 1 | 0) { + break label$1 + } + } + __assert_fail(86524 | 0, 71825 | 0, 1093 | 0, 80675 | 0); + wasm2js_trap(); + } + label$3 : { + label$4 : { + if (!((HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$4 + } + $34 = Math_fround(HEAPF32[($6 + 4 | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29(($8 + 680 | 0) + 160 | 0 | 0) | 0) + ((HEAP32[($6 + 8 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $34), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP8[((($8 + 680 | 0) + 176 | 0) + (HEAP32[($6 + 8 | 0) >> 2] | 0) | 0) >> 0] = (HEAPU8[($6 + 3 | 0) >> 0] | 0) & 1 | 0; + break label$3; + } + HEAPF32[((($8 + 968 | 0) + Math_imul((HEAP32[($6 + 8 | 0) >> 2] | 0) - 3 | 0, 88) | 0) + 60 | 0) >> 2] = Math_fround(HEAPF32[($6 + 4 | 0) >> 2]); + HEAP8[((($8 + 968 | 0) + Math_imul((HEAP32[($6 + 8 | 0) >> 2] | 0) - 3 | 0, 88) | 0) + 64 | 0) >> 0] = (HEAPU8[($6 + 3 | 0) >> 0] | 0) & 1 | 0; + } + __stack_pointer = $6 + 16 | 0; + return; + } + + function btGeneric6DofSpring2Constraint__setEquilibriumPoint_28int_2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0, $6 = 0, $32 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$2 + } + if ((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (6 | 0) & 1 | 0) { + break label$1 + } + } + __assert_fail(86524 | 0, 71825 | 0, 1125 | 0, 67685 | 0); + wasm2js_trap(); + } + label$3 : { + label$4 : { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$4 + } + $32 = Math_fround(HEAPF32[($5 + 4 | 0) >> 2]); + (wasm2js_i32$0 = (btVector3__operator_20float__28_29(($6 + 680 | 0) + 180 | 0 | 0) | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = $32), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + break label$3; + } + HEAPF32[((($6 + 968 | 0) + Math_imul((HEAP32[($5 + 8 | 0) >> 2] | 0) - 3 | 0, 88) | 0) + 68 | 0) >> 2] = Math_fround(HEAPF32[($5 + 4 | 0) >> 2]); + } + __stack_pointer = $5 + 16 | 0; + return; + } + + function btGeneric6DofSpring2Constraint___btGeneric6DofSpring2Constraint_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btGeneric6DofSpring2Constraint___btGeneric6DofSpring2Constraint_28_29($4 | 0) | 0; + btGeneric6DofSpring2Constraint__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function _GLOBAL__sub_I_btGeneric6DofSpring2Constraint_cpp() { + __cxx_global_var_init_69(); + return; + } + + function __cxx_global_var_init_70() { + btInfMaskConverter__btInfMaskConverter_28int_29(115404 | 0, 2139095040 | 0) | 0; + return; + } + + function btAngularLimit__btAngularLimit_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAPF32[$4 >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 4 | 0) >> 2] = Math_fround(-1.0); + HEAPF32[($4 + 8 | 0) >> 2] = Math_fround(.8999999761581421); + HEAPF32[($4 + 12 | 0) >> 2] = Math_fround(.30000001192092896); + HEAPF32[($4 + 16 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($4 + 20 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 24 | 0) >> 2] = Math_fround(0 | 0); + HEAP8[($4 + 28 | 0) >> 0] = 0; + return $4 | 0; + } + + function quatRotate_28btQuaternion_20const__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 44 | 0) >> 2] = $1; + HEAP32[($5 + 40 | 0) >> 2] = $2; + operator__28btQuaternion_20const__2c_20btVector3_20const__29($5 + 24 | 0 | 0, HEAP32[($5 + 44 | 0) >> 2] | 0 | 0, HEAP32[($5 + 40 | 0) >> 2] | 0 | 0); + btQuaternion__inverse_28_29_20const($5 + 8 | 0 | 0, HEAP32[($5 + 44 | 0) >> 2] | 0 | 0); + btQuaternion__operator___28btQuaternion_20const__29($5 + 24 | 0 | 0, $5 + 8 | 0 | 0) | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, btQuadWord__getX_28_29_20const($5 + 24 | 0 | 0) | 0 | 0, btQuadWord__getY_28_29_20const($5 + 24 | 0 | 0) | 0 | 0, btQuadWord__getZ_28_29_20const($5 + 24 | 0 | 0) | 0 | 0) | 0; + __stack_pointer = $5 + 48 | 0; + return; + } + + function operator__28btQuaternion_20const__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $20 = Math_fround(0), $44 = Math_fround(0), $68 = Math_fround(0), $94 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $1; + HEAP32[($5 + 24 | 0) >> 2] = $2; + $20 = Math_fround(Math_fround(Math_fround(HEAPF32[(btQuadWord__w_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[(btQuadWord__y_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2]))); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[(btQuadWord__z_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2])) * Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $20)), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + $44 = Math_fround(Math_fround(Math_fround(HEAPF32[(btQuadWord__w_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[(btQuadWord__z_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2]))); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[(btQuadWord__x_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2])) * Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $44)), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + $68 = Math_fround(Math_fround(Math_fround(HEAPF32[(btQuadWord__w_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[(btQuadWord__x_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2]))); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[(btQuadWord__y_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2])) * Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $68)), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + $94 = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[(btQuadWord__x_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2])) * Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[(btQuadWord__y_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])))); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[(btQuadWord__z_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0) >> 2])) * Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $94)), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + btQuaternion__btQuaternion_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $5 + 20 | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0, $5 + 8 | 0 | 0) | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btQuaternion__operator___28btQuaternion_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $15 = Math_fround(0), $21 = Math_fround(0), $38 = Math_fround(0), $44 = Math_fround(0), $61 = Math_fround(0), $67 = Math_fround(0), $85 = Math_fround(0), $92 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + $15 = Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 12 | 0) >> 2]) * Math_fround(HEAPF32[(btQuadWord__x_28_29_20const(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[$5 >> 2]) * Math_fround(HEAPF32[((HEAP32[($4 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2]))); + $21 = Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]) * Math_fround(HEAPF32[(btQuadWord__z_28_29_20const(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $15); + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($5 + 8 | 0) >> 2])) * Math_fround(HEAPF32[(btQuadWord__y_28_29_20const(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $21)), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + $38 = Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 12 | 0) >> 2]) * Math_fround(HEAPF32[(btQuadWord__y_28_29_20const(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($4 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2]))); + $44 = Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 8 | 0) >> 2]) * Math_fround(HEAPF32[(btQuadWord__x_28_29_20const(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $38); + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[$5 >> 2])) * Math_fround(HEAPF32[(btQuadWord__z_28_29_20const(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $44)), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + $61 = Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 12 | 0) >> 2]) * Math_fround(HEAPF32[(btQuadWord__z_28_29_20const(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($5 + 8 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($4 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2]))); + $67 = Math_fround(Math_fround(Math_fround(HEAPF32[$5 >> 2]) * Math_fround(HEAPF32[(btQuadWord__y_28_29_20const(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $61); + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($5 + 4 | 0) >> 2])) * Math_fround(HEAPF32[(btQuadWord__x_28_29_20const(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $67)), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + $85 = Math_fround(Math_fround(Math_fround(HEAPF32[($5 + 12 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($4 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2])) + Math_fround(-Math_fround(Math_fround(HEAPF32[$5 >> 2]) * Math_fround(HEAPF32[(btQuadWord__x_28_29_20const(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])))); + $92 = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($5 + 4 | 0) >> 2])) * Math_fround(HEAPF32[(btQuadWord__y_28_29_20const(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $85); + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($5 + 8 | 0) >> 2])) * Math_fround(HEAPF32[(btQuadWord__z_28_29_20const(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2])) + $92)), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + btQuadWord__setValue_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($5 | 0, $4 + 20 | 0 | 0, $4 + 16 | 0 | 0, $4 + 12 | 0 | 0, $4 + 8 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + return $5 | 0; + } + + function btQuadWord__getX_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btQuadWord__getY_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0 | 0; + } + + function btQuadWord__getZ_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0 | 0; + } + + function btHingeConstraint__btHingeConstraint_28btRigidBody__2c_20btRigidBody__2c_20btTransform_20const__2c_20btTransform_20const__2c_20bool_29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $10 = 0, $8 = 0, $18 = 0, $21 = 0, $22 = 0, $24 = 0, $31 = 0, $34 = 0, $35 = 0, $37 = 0, $20 = 0, $33 = 0, $73 = 0; + $8 = __stack_pointer - 32 | 0; + __stack_pointer = $8; + HEAP32[($8 + 24 | 0) >> 2] = $0; + HEAP32[($8 + 20 | 0) >> 2] = $1; + HEAP32[($8 + 16 | 0) >> 2] = $2; + HEAP32[($8 + 12 | 0) >> 2] = $3; + HEAP32[($8 + 8 | 0) >> 2] = $4; + HEAP8[($8 + 7 | 0) >> 0] = $5; + $10 = HEAP32[($8 + 24 | 0) >> 2] | 0; + HEAP32[($8 + 28 | 0) >> 2] = $10; + btTypedConstraint__btTypedConstraint_28btTypedConstraintType_2c_20btRigidBody__2c_20btRigidBody__29($10 | 0, 4 | 0, HEAP32[($8 + 20 | 0) >> 2] | 0 | 0, HEAP32[($8 + 16 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$10 >> 2] = 102188 + 8 | 0; + $18 = $10 + 48 | 0; + $20 = $18 + 252 | 0; + $21 = $18; + label$1 : while (1) { + $22 = $21; + btJacobianEntry__btJacobianEntry_28_29($22 | 0) | 0; + $24 = $22 + 84 | 0; + $21 = $24; + if (!(($24 | 0) == ($20 | 0) & 1 | 0)) { + continue label$1 + } + break label$1; + }; + $31 = $10 + 300 | 0; + $33 = $31 + 252 | 0; + $34 = $31; + label$2 : while (1) { + $35 = $34; + btJacobianEntry__btJacobianEntry_28_29($35 | 0) | 0; + $37 = $35 + 84 | 0; + $34 = $37; + if (!(($37 | 0) == ($33 | 0) & 1 | 0)) { + continue label$2 + } + break label$2; + }; + btTransform__btTransform_28btTransform_20const__29($10 + 552 | 0 | 0, HEAP32[($8 + 12 | 0) >> 2] | 0 | 0) | 0; + btTransform__btTransform_28btTransform_20const__29($10 + 616 | 0 | 0, HEAP32[($8 + 8 | 0) >> 2] | 0 | 0) | 0; + btAngularLimit__btAngularLimit_28_29($10 + 688 | 0 | 0) | 0; + HEAP8[($10 + 736 | 0) >> 0] = 0; + HEAP8[($10 + 737 | 0) >> 0] = 0; + HEAP8[($10 + 738 | 0) >> 0] = 0; + HEAP8[($10 + 739 | 0) >> 0] = 1; + HEAP8[($10 + 740 | 0) >> 0] = (HEAPU8[($8 + 7 | 0) >> 0] | 0) & 1 | 0; + HEAP32[($10 + 748 | 0) >> 2] = 0; + HEAPF32[($10 + 752 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($10 + 756 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($10 + 760 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($10 + 764 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($10 + 732 | 0) >> 2] = (HEAPU8[($10 + 740 | 0) >> 0] | 0) & 1 | 0 ? Math_fround(-1.0) : Math_fround(1.0); + $73 = HEAP32[($8 + 28 | 0) >> 2] | 0; + __stack_pointer = $8 + 32 | 0; + return $73 | 0; + } + + function btHingeConstraint__buildJacobian_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $42 = 0, $45 = 0, $46 = 0, $48 = 0, $70 = 0, $72 = 0, $44 = 0, $487 = 0, $500 = 0, $121 = 0, $222 = 0, $329 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $3 = __stack_pointer - 704 | 0; + __stack_pointer = $3; + HEAP32[($3 + 700 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 700 | 0) >> 2] | 0; + label$1 : { + if (!((HEAPU8[($4 + 738 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + HEAPF32[($4 + 36 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 744 | 0) >> 2] = Math_fround(0 | 0); + label$2 : { + if ((HEAPU8[($4 + 736 | 0) >> 0] | 0) & 1 | 0) { + break label$2 + } + btTransform__operator__28btVector3_20const__29_20const($3 + 684 | 0 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($4 + 28 | 0) >> 2] | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29($4 + 552 | 0 | 0) | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($3 + 668 | 0 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($4 + 32 | 0) >> 2] | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29($4 + 616 | 0 | 0) | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($3 + 652 | 0 | 0, $3 + 668 | 0 | 0, $3 + 684 | 0 | 0); + $42 = $3 + 592 | 0; + $44 = $42 + 48 | 0; + $45 = $42; + label$3 : while (1) { + $46 = $45; + btVector3__btVector3_28_29($46 | 0) | 0; + $48 = $46 + 16 | 0; + $45 = $48; + if (!(($48 | 0) == ($44 | 0) & 1 | 0)) { + continue label$3 + } + break label$3; + }; + label$4 : { + label$5 : { + if (!(Math_fround(btVector3__length2_28_29_20const($3 + 652 | 0 | 0)) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$5 + } + btVector3__normalized_28_29_20const($3 + 576 | 0 | 0, $3 + 652 | 0 | 0); + $70 = $3 + 592 | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[($3 + 576 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3 + 580 | 0) >> 2] | 0; + $487 = i64toi32_i32$0; + i64toi32_i32$0 = $70; + HEAP32[i64toi32_i32$0 >> 2] = $487; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $72 = 8; + i64toi32_i32$2 = ($3 + 576 | 0) + $72 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $500 = i64toi32_i32$1; + i64toi32_i32$1 = $70 + $72 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $500; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$4; + } + HEAPF32[($3 + 572 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($3 + 568 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 564 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 592 | 0 | 0, $3 + 572 | 0 | 0, $3 + 568 | 0 | 0, $3 + 564 | 0 | 0); + } + void_20btPlaneSpace1_btVector3__28btVector3_20const__2c_20btVector3__2c_20btVector3__29($3 + 592 | 0 | 0, ($3 + 592 | 0) + 16 | 0 | 0, ($3 + 592 | 0) + 32 | 0 | 0); + HEAP32[($3 + 560 | 0) >> 2] = 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($3 + 560 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$6 + } + $121 = ($4 + 48 | 0) + Math_imul(HEAP32[($3 + 560 | 0) >> 2] | 0, 84) | 0; + btMatrix3x3__transpose_28_29_20const($3 + 512 | 0 | 0, btTransform__getBasis_28_29_20const(btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($4 + 28 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + btMatrix3x3__transpose_28_29_20const($3 + 464 | 0 | 0, btTransform__getBasis_28_29_20const(btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($4 + 32 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($3 + 448 | 0 | 0, $3 + 684 | 0 | 0, btRigidBody__getCenterOfMassPosition_28_29_20const(HEAP32[($4 + 28 | 0) >> 2] | 0 | 0) | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($3 + 432 | 0 | 0, $3 + 668 | 0 | 0, btRigidBody__getCenterOfMassPosition_28_29_20const(HEAP32[($4 + 32 | 0) >> 2] | 0 | 0) | 0 | 0); + btJacobianEntry__btJacobianEntry_28btMatrix3x3_20const__2c_20btMatrix3x3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20btVector3_20const__2c_20float_29($121 | 0, $3 + 512 | 0 | 0, $3 + 464 | 0 | 0, $3 + 448 | 0 | 0, $3 + 432 | 0 | 0, ($3 + 592 | 0) + ((HEAP32[($3 + 560 | 0) >> 2] | 0) << 4 | 0) | 0 | 0, btRigidBody__getInvInertiaDiagLocal_28_29_20const(HEAP32[($4 + 28 | 0) >> 2] | 0 | 0) | 0 | 0, Math_fround(Math_fround(btRigidBody__getInvMass_28_29_20const(HEAP32[($4 + 28 | 0) >> 2] | 0 | 0))), btRigidBody__getInvInertiaDiagLocal_28_29_20const(HEAP32[($4 + 32 | 0) >> 2] | 0 | 0) | 0 | 0, Math_fround(Math_fround(btRigidBody__getInvMass_28_29_20const(HEAP32[($4 + 32 | 0) >> 2] | 0 | 0)))) | 0; + HEAP32[($3 + 560 | 0) >> 2] = (HEAP32[($3 + 560 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + btVector3__btVector3_28_29($3 + 416 | 0 | 0) | 0; + btVector3__btVector3_28_29($3 + 400 | 0 | 0) | 0; + btMatrix3x3__getColumn_28int_29_20const($3 + 384 | 0 | 0, btTransform__getBasis_28_29($4 + 552 | 0 | 0) | 0 | 0, 2 | 0); + void_20btPlaneSpace1_btVector3__28btVector3_20const__2c_20btVector3__2c_20btVector3__29($3 + 384 | 0 | 0, $3 + 416 | 0 | 0, $3 + 400 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($3 + 368 | 0 | 0, btTransform__getBasis_28_29_20const(btRigidBody__getCenterOfMassTransform_28_29_20const(btHingeConstraint__getRigidBodyA_28_29($4 | 0) | 0 | 0) | 0 | 0) | 0 | 0, $3 + 416 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($3 + 352 | 0 | 0, btTransform__getBasis_28_29_20const(btRigidBody__getCenterOfMassTransform_28_29_20const(btHingeConstraint__getRigidBodyA_28_29($4 | 0) | 0 | 0) | 0 | 0) | 0 | 0, $3 + 400 | 0 | 0); + $222 = btTransform__getBasis_28_29_20const(btRigidBody__getCenterOfMassTransform_28_29_20const(btHingeConstraint__getRigidBodyA_28_29($4 | 0) | 0 | 0) | 0 | 0) | 0; + btMatrix3x3__getColumn_28int_29_20const($3 + 320 | 0 | 0, btTransform__getBasis_28_29($4 + 552 | 0 | 0) | 0 | 0, 2 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($3 + 336 | 0 | 0, $222 | 0, $3 + 320 | 0 | 0); + btMatrix3x3__transpose_28_29_20const($3 + 272 | 0 | 0, btTransform__getBasis_28_29_20const(btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($4 + 28 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + btMatrix3x3__transpose_28_29_20const($3 + 224 | 0 | 0, btTransform__getBasis_28_29_20const(btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($4 + 32 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + btJacobianEntry__btJacobianEntry_28btVector3_20const__2c_20btMatrix3x3_20const__2c_20btMatrix3x3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($4 + 300 | 0 | 0, $3 + 368 | 0 | 0, $3 + 272 | 0 | 0, $3 + 224 | 0 | 0, btRigidBody__getInvInertiaDiagLocal_28_29_20const(HEAP32[($4 + 28 | 0) >> 2] | 0 | 0) | 0 | 0, btRigidBody__getInvInertiaDiagLocal_28_29_20const(HEAP32[($4 + 32 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + btMatrix3x3__transpose_28_29_20const($3 + 176 | 0 | 0, btTransform__getBasis_28_29_20const(btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($4 + 28 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + btMatrix3x3__transpose_28_29_20const($3 + 128 | 0 | 0, btTransform__getBasis_28_29_20const(btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($4 + 32 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + btJacobianEntry__btJacobianEntry_28btVector3_20const__2c_20btMatrix3x3_20const__2c_20btMatrix3x3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29(($4 + 300 | 0) + 84 | 0 | 0, $3 + 352 | 0 | 0, $3 + 176 | 0 | 0, $3 + 128 | 0 | 0, btRigidBody__getInvInertiaDiagLocal_28_29_20const(HEAP32[($4 + 28 | 0) >> 2] | 0 | 0) | 0 | 0, btRigidBody__getInvInertiaDiagLocal_28_29_20const(HEAP32[($4 + 32 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + btMatrix3x3__transpose_28_29_20const($3 + 80 | 0 | 0, btTransform__getBasis_28_29_20const(btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($4 + 28 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + btMatrix3x3__transpose_28_29_20const($3 + 32 | 0 | 0, btTransform__getBasis_28_29_20const(btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($4 + 32 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + btJacobianEntry__btJacobianEntry_28btVector3_20const__2c_20btMatrix3x3_20const__2c_20btMatrix3x3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29(($4 + 300 | 0) + 168 | 0 | 0, $3 + 336 | 0 | 0, $3 + 80 | 0 | 0, $3 + 32 | 0 | 0, btRigidBody__getInvInertiaDiagLocal_28_29_20const(HEAP32[($4 + 28 | 0) >> 2] | 0 | 0) | 0 | 0, btRigidBody__getInvInertiaDiagLocal_28_29_20const(HEAP32[($4 + 32 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + HEAPF32[($4 + 724 | 0) >> 2] = Math_fround(0 | 0); + btHingeConstraint__testLimit_28btTransform_20const__2c_20btTransform_20const__29($4 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($4 + 28 | 0) >> 2] | 0 | 0) | 0 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($4 + 32 | 0) >> 2] | 0 | 0) | 0 | 0); + $329 = btTransform__getBasis_28_29_20const(btRigidBody__getCenterOfMassTransform_28_29_20const(btHingeConstraint__getRigidBodyA_28_29($4 | 0) | 0 | 0) | 0 | 0) | 0; + btMatrix3x3__getColumn_28int_29_20const($3 | 0, btTransform__getBasis_28_29($4 + 552 | 0 | 0) | 0 | 0, 2 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($3 + 16 | 0 | 0, $329 | 0, $3 | 0); + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(Math_fround(1.0) / Math_fround(Math_fround(btRigidBody__computeAngularImpulseDenominator_28btVector3_20const__29_20const(btHingeConstraint__getRigidBodyA_28_29($4 | 0) | 0 | 0, $3 + 16 | 0 | 0)) + Math_fround(btRigidBody__computeAngularImpulseDenominator_28btVector3_20const__29_20const(btHingeConstraint__getRigidBodyB_28_29($4 | 0) | 0 | 0, $3 + 16 | 0 | 0))))), HEAPF32[(wasm2js_i32$0 + 720 | 0) >> 2] = wasm2js_f32$0; + } + __stack_pointer = $3 + 704 | 0; + return; + } + + function btRigidBody__getCenterOfMassPosition_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $7 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $7 = btTransform__getOrigin_28_29_20const((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $7 | 0; + } + + function btRigidBody__getInvInertiaDiagLocal_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 456 | 0 | 0; + } + + function btJacobianEntry__btJacobianEntry_28btMatrix3x3_20const__2c_20btMatrix3x3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20btVector3_20const__2c_20float_29($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = Math_fround($7); + $8 = $8 | 0; + $9 = Math_fround($9); + var $12 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $13 = 0, i64toi32_i32$2 = 0, $16 = 0, $40 = 0, $42 = 0, $66 = 0, $68 = 0, $81 = 0, $83 = 0, $96 = 0, $98 = 0, $166 = 0, $176 = 0, $28 = 0, $225 = 0, $238 = 0, $48 = 0, $49 = 0, $277 = 0, $290 = 0, $309 = 0, $322 = 0, $341 = 0, $354 = 0, $129 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $12 = __stack_pointer - 160 | 0; + __stack_pointer = $12; + HEAP32[($12 + 152 | 0) >> 2] = $0; + HEAP32[($12 + 148 | 0) >> 2] = $1; + HEAP32[($12 + 144 | 0) >> 2] = $2; + HEAP32[($12 + 140 | 0) >> 2] = $3; + HEAP32[($12 + 136 | 0) >> 2] = $4; + HEAP32[($12 + 132 | 0) >> 2] = $5; + HEAP32[($12 + 128 | 0) >> 2] = $6; + HEAPF32[($12 + 124 | 0) >> 2] = $7; + HEAP32[($12 + 120 | 0) >> 2] = $8; + HEAPF32[($12 + 116 | 0) >> 2] = $9; + $13 = HEAP32[($12 + 152 | 0) >> 2] | 0; + HEAP32[($12 + 156 | 0) >> 2] = $13; + i64toi32_i32$2 = HEAP32[($12 + 132 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $166 = i64toi32_i32$0; + i64toi32_i32$0 = $13; + HEAP32[$13 >> 2] = $166; + HEAP32[($13 + 4 | 0) >> 2] = i64toi32_i32$1; + $16 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $16 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $176 = i64toi32_i32$1; + i64toi32_i32$1 = $13 + $16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $176; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__btVector3_28_29($13 + 16 | 0 | 0) | 0; + btVector3__btVector3_28_29($13 + 32 | 0 | 0) | 0; + btVector3__btVector3_28_29($13 + 48 | 0 | 0) | 0; + btVector3__btVector3_28_29($13 + 64 | 0 | 0) | 0; + $28 = HEAP32[($12 + 148 | 0) >> 2] | 0; + btVector3__cross_28btVector3_20const__29_20const($12 + 84 | 0 | 0, HEAP32[($12 + 140 | 0) >> 2] | 0 | 0, $13 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($12 + 100 | 0 | 0, $28 | 0, $12 + 84 | 0 | 0); + $40 = $13 + 16 | 0; + i64toi32_i32$2 = $12; + i64toi32_i32$0 = HEAP32[($12 + 100 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($12 + 104 | 0) >> 2] | 0; + $225 = i64toi32_i32$0; + i64toi32_i32$0 = $40; + HEAP32[i64toi32_i32$0 >> 2] = $225; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $42 = 8; + i64toi32_i32$2 = ($12 + 100 | 0) + $42 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $238 = i64toi32_i32$1; + i64toi32_i32$1 = $40 + $42 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $238; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $48 = HEAP32[($12 + 144 | 0) >> 2] | 0; + $49 = HEAP32[($12 + 136 | 0) >> 2] | 0; + operator__28btVector3_20const__29($12 + 36 | 0 | 0, $13 | 0); + btVector3__cross_28btVector3_20const__29_20const($12 + 52 | 0 | 0, $49 | 0, $12 + 36 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($12 + 68 | 0 | 0, $48 | 0, $12 + 52 | 0 | 0); + $66 = $13 + 32 | 0; + i64toi32_i32$2 = $12; + i64toi32_i32$0 = HEAP32[($12 + 68 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($12 + 72 | 0) >> 2] | 0; + $277 = i64toi32_i32$0; + i64toi32_i32$0 = $66; + HEAP32[i64toi32_i32$0 >> 2] = $277; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $68 = 8; + i64toi32_i32$2 = ($12 + 68 | 0) + $68 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $290 = i64toi32_i32$1; + i64toi32_i32$1 = $66 + $68 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $290; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($12 + 20 | 0 | 0, HEAP32[($12 + 128 | 0) >> 2] | 0 | 0, $13 + 16 | 0 | 0); + $81 = $13 + 48 | 0; + i64toi32_i32$2 = $12; + i64toi32_i32$0 = HEAP32[($12 + 20 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($12 + 24 | 0) >> 2] | 0; + $309 = i64toi32_i32$0; + i64toi32_i32$0 = $81; + HEAP32[i64toi32_i32$0 >> 2] = $309; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $83 = 8; + i64toi32_i32$2 = ($12 + 20 | 0) + $83 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $322 = i64toi32_i32$1; + i64toi32_i32$1 = $81 + $83 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $322; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($12 + 4 | 0 | 0, HEAP32[($12 + 120 | 0) >> 2] | 0 | 0, $13 + 32 | 0 | 0); + $96 = $13 + 64 | 0; + i64toi32_i32$2 = $12; + i64toi32_i32$0 = HEAP32[($12 + 4 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($12 + 8 | 0) >> 2] | 0; + $341 = i64toi32_i32$0; + i64toi32_i32$0 = $96; + HEAP32[i64toi32_i32$0 >> 2] = $341; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $98 = 8; + i64toi32_i32$2 = ($12 + 4 | 0) + $98 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $354 = i64toi32_i32$1; + i64toi32_i32$1 = $96 + $98 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $354; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $13, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[($12 + 124 | 0) >> 2]) + Math_fround(btVector3__dot_28btVector3_20const__29_20const($13 + 48 | 0 | 0, $13 + 16 | 0 | 0))) + Math_fround(HEAPF32[($12 + 116 | 0) >> 2])) + Math_fround(btVector3__dot_28btVector3_20const__29_20const($13 + 64 | 0 | 0, $13 + 32 | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 80 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + if (Math_fround(HEAPF32[($13 + 80 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(86643 | 0, 77966 | 0, 52 | 0, 65922 | 0); + wasm2js_trap(); + } + $129 = HEAP32[($12 + 156 | 0) >> 2] | 0; + __stack_pointer = $12 + 160 | 0; + return $129 | 0; + } + + function btHingeConstraint__getRigidBodyA_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0; + } + + function btJacobianEntry__btJacobianEntry_28btVector3_20const__2c_20btMatrix3x3_20const__2c_20btMatrix3x3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $9 = 0, i64toi32_i32$2 = 0, $39 = 0, $41 = 0, $59 = 0, $61 = 0, $74 = 0, $76 = 0, $89 = 0, $91 = 0, $208 = 0, $221 = 0, $47 = 0, $249 = 0, $262 = 0, $281 = 0, $294 = 0, $313 = 0, $326 = 0, $118 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $8 = __stack_pointer - 128 | 0; + __stack_pointer = $8; + HEAP32[($8 + 120 | 0) >> 2] = $0; + HEAP32[($8 + 116 | 0) >> 2] = $1; + HEAP32[($8 + 112 | 0) >> 2] = $2; + HEAP32[($8 + 108 | 0) >> 2] = $3; + HEAP32[($8 + 104 | 0) >> 2] = $4; + HEAP32[($8 + 100 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 120 | 0) >> 2] | 0; + HEAP32[($8 + 124 | 0) >> 2] = $9; + HEAPF32[($8 + 96 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 92 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 88 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($9 | 0, $8 + 96 | 0 | 0, $8 + 92 | 0 | 0, $8 + 88 | 0 | 0) | 0; + btVector3__btVector3_28_29($9 + 16 | 0 | 0) | 0; + btVector3__btVector3_28_29($9 + 32 | 0 | 0) | 0; + btVector3__btVector3_28_29($9 + 48 | 0 | 0) | 0; + btVector3__btVector3_28_29($9 + 64 | 0 | 0) | 0; + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 72 | 0 | 0, HEAP32[($8 + 112 | 0) >> 2] | 0 | 0, HEAP32[($8 + 116 | 0) >> 2] | 0 | 0); + $39 = $9 + 16 | 0; + i64toi32_i32$2 = $8; + i64toi32_i32$0 = HEAP32[($8 + 72 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($8 + 76 | 0) >> 2] | 0; + $208 = i64toi32_i32$0; + i64toi32_i32$0 = $39; + HEAP32[i64toi32_i32$0 >> 2] = $208; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $41 = 8; + i64toi32_i32$2 = ($8 + 72 | 0) + $41 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $221 = i64toi32_i32$1; + i64toi32_i32$1 = $39 + $41 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $221; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $47 = HEAP32[($8 + 108 | 0) >> 2] | 0; + operator__28btVector3_20const__29($8 + 40 | 0 | 0, HEAP32[($8 + 116 | 0) >> 2] | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 56 | 0 | 0, $47 | 0, $8 + 40 | 0 | 0); + $59 = $9 + 32 | 0; + i64toi32_i32$2 = $8; + i64toi32_i32$0 = HEAP32[($8 + 56 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($8 + 60 | 0) >> 2] | 0; + $249 = i64toi32_i32$0; + i64toi32_i32$0 = $59; + HEAP32[i64toi32_i32$0 >> 2] = $249; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $61 = 8; + i64toi32_i32$2 = ($8 + 56 | 0) + $61 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $262 = i64toi32_i32$1; + i64toi32_i32$1 = $59 + $61 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $262; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($8 + 24 | 0 | 0, HEAP32[($8 + 104 | 0) >> 2] | 0 | 0, $9 + 16 | 0 | 0); + $74 = $9 + 48 | 0; + i64toi32_i32$2 = $8; + i64toi32_i32$0 = HEAP32[($8 + 24 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($8 + 28 | 0) >> 2] | 0; + $281 = i64toi32_i32$0; + i64toi32_i32$0 = $74; + HEAP32[i64toi32_i32$0 >> 2] = $281; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $76 = 8; + i64toi32_i32$2 = ($8 + 24 | 0) + $76 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $294 = i64toi32_i32$1; + i64toi32_i32$1 = $74 + $76 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $294; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($8 + 8 | 0 | 0, HEAP32[($8 + 100 | 0) >> 2] | 0 | 0, $9 + 32 | 0 | 0); + $89 = $9 + 64 | 0; + i64toi32_i32$2 = $8; + i64toi32_i32$0 = HEAP32[($8 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($8 + 12 | 0) >> 2] | 0; + $313 = i64toi32_i32$0; + i64toi32_i32$0 = $89; + HEAP32[i64toi32_i32$0 >> 2] = $313; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $91 = 8; + i64toi32_i32$2 = ($8 + 8 | 0) + $91 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $326 = i64toi32_i32$1; + i64toi32_i32$1 = $89 + $91 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $326; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(Math_fround(btVector3__dot_28btVector3_20const__29_20const($9 + 48 | 0 | 0, $9 + 16 | 0 | 0)) + Math_fround(btVector3__dot_28btVector3_20const__29_20const($9 + 64 | 0 | 0, $9 + 32 | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 80 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + if (Math_fround(HEAPF32[($9 + 80 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(86643 | 0, 77966 | 0, 69 | 0, 65922 | 0); + wasm2js_trap(); + } + $118 = HEAP32[($8 + 124 | 0) >> 2] | 0; + __stack_pointer = $8 + 128 | 0; + return $118 | 0; + } + + function btHingeConstraint__testLimit_28btTransform_20const__2c_20btTransform_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btHingeConstraint__getHingeAngle_28btTransform_20const__2c_20btTransform_20const__29($6 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 728 | 0) >> 2] = wasm2js_f32$0; + btAngularLimit__test_28float_29($6 + 688 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 728 | 0) >> 2]))); + __stack_pointer = $5 + 16 | 0; + return; + } + + function btRigidBody__computeAngularImpulseDenominator_28btVector3_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $15 = Math_fround(0); + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + operator__28btVector3_20const__2c_20btMatrix3x3_20const__29($4 + 8 | 0 | 0, HEAP32[($4 + 24 | 0) >> 2] | 0 | 0, btRigidBody__getInvInertiaTensorWorld_28_29_20const(HEAP32[($4 + 28 | 0) >> 2] | 0 | 0) | 0 | 0); + $15 = Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0, $4 + 8 | 0 | 0)); + __stack_pointer = $4 + 32 | 0; + return Math_fround($15); + } + + function btHingeConstraint__getRigidBodyB_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0; + } + + function btHingeConstraint__getHingeAngle_28btTransform_20const__2c_20btTransform_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $8 = 0, $23 = 0, $38 = 0, $69 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 112 | 0; + __stack_pointer = $5; + HEAP32[($5 + 108 | 0) >> 2] = $0; + HEAP32[($5 + 104 | 0) >> 2] = $1; + HEAP32[($5 + 100 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 108 | 0) >> 2] | 0; + $8 = btTransform__getBasis_28_29_20const(HEAP32[($5 + 104 | 0) >> 2] | 0 | 0) | 0; + btMatrix3x3__getColumn_28int_29_20const($5 + 68 | 0 | 0, btTransform__getBasis_28_29($6 + 552 | 0 | 0) | 0 | 0, 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($5 + 84 | 0 | 0, $8 | 0, $5 + 68 | 0 | 0); + $23 = btTransform__getBasis_28_29_20const(HEAP32[($5 + 104 | 0) >> 2] | 0 | 0) | 0; + btMatrix3x3__getColumn_28int_29_20const($5 + 36 | 0 | 0, btTransform__getBasis_28_29($6 + 552 | 0 | 0) | 0 | 0, 1 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($5 + 52 | 0 | 0, $23 | 0, $5 + 36 | 0 | 0); + $38 = btTransform__getBasis_28_29_20const(HEAP32[($5 + 100 | 0) >> 2] | 0 | 0) | 0; + btMatrix3x3__getColumn_28int_29_20const($5 + 4 | 0 | 0, btTransform__getBasis_28_29($6 + 616 | 0 | 0) | 0 | 0, 1 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($5 + 20 | 0 | 0, $38 | 0, $5 + 4 | 0 | 0); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btAtan2_28float_2c_20float_29(Math_fround(Math_fround(btVector3__dot_28btVector3_20const__29_20const($5 + 20 | 0 | 0, $5 + 84 | 0 | 0))), Math_fround(Math_fround(btVector3__dot_28btVector3_20const__29_20const($5 + 20 | 0 | 0, $5 + 52 | 0 | 0)))))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $69 = Math_fround(Math_fround(HEAPF32[($6 + 732 | 0) >> 2]) * Math_fround(HEAPF32[$5 >> 2])); + __stack_pointer = $5 + 112 | 0; + return Math_fround($69); + } + + function btRigidBody__getInvInertiaTensorWorld_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 324 | 0 | 0; + } + + function btHingeConstraint__getInfo1_28btTypedConstraint__btConstraintInfo1__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $25 = 0, $29 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($5 + 738 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] = 0; + HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 0; + break label$1; + } + HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] = 5; + HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 1; + btHingeConstraint__testLimit_28btTransform_20const__2c_20btTransform_20const__29($5 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0 | 0); + label$3 : { + label$4 : { + if (btHingeConstraint__getSolveLimit_28_29($5 | 0) | 0) { + break label$4 + } + if (!((btHingeConstraint__getEnableAngularMotor_28_29($5 | 0) | 0) & 1 | 0)) { + break label$3 + } + } + $25 = HEAP32[($4 + 8 | 0) >> 2] | 0; + HEAP32[$25 >> 2] = (HEAP32[$25 >> 2] | 0) + 1 | 0; + $29 = HEAP32[($4 + 8 | 0) >> 2] | 0; + HEAP32[($29 + 4 | 0) >> 2] = (HEAP32[($29 + 4 | 0) >> 2] | 0) + -1 | 0; + } + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btHingeConstraint__getSolveLimit_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $9 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $9 = (btAngularLimit__isLimit_28_29_20const((HEAP32[($3 + 12 | 0) >> 2] | 0) + 688 | 0 | 0) | 0) & 1 | 0; + __stack_pointer = $3 + 16 | 0; + return $9 | 0; + } + + function btHingeConstraint__getEnableAngularMotor_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAPU8[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 737 | 0) >> 0] | 0) & 1 | 0 | 0; + } + + function btAngularLimit__isLimit_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAPU8[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 28 | 0) >> 0] | 0) & 1 | 0 | 0; + } + + function btHingeConstraint__getInfo2_28btTypedConstraint__btConstraintInfo2__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($5 + 739 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btHingeConstraint__getInfo2InternalUsingFrameOffset_28btTypedConstraint__btConstraintInfo2__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0 | 0, btRigidBody__getAngularVelocity_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0 | 0, btRigidBody__getAngularVelocity_28_29_20const(HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0 | 0); + break label$1; + } + btHingeConstraint__getInfo2Internal_28btTypedConstraint__btConstraintInfo2__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0 | 0, btRigidBody__getAngularVelocity_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0 | 0, btRigidBody__getAngularVelocity_28_29_20const(HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0 | 0); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btHingeConstraint__getInfo2InternalUsingFrameOffset_28btTypedConstraint__btConstraintInfo2__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $9 = 0, $52 = 0, $164 = 0, $209 = 0, $270 = 0, $297 = 0, $333 = 0, $367 = 0, $385 = 0, $403 = 0, $421 = 0, $496 = 0, $514 = 0, $605 = 0, $623 = 0, $708 = Math_fround(0), $1284 = Math_fround(0), $1318 = 0, $1349 = 0, $1511 = 0, $1848 = 0, $1852 = 0, $1930 = 0, $1934 = 0, $2038 = 0, $2042 = 0, $2088 = 0, $2092 = 0, $2153 = 0, $2157 = 0, $2221 = 0, $2225 = 0, $2256 = 0, $2260 = 0, $2291 = 0, $2295 = 0, $2326 = 0, $2330 = 0, $441 = 0, $469 = 0, $2475 = 0, $2479 = 0, $2510 = 0, $2514 = 0, $550 = 0, $578 = 0, $2692 = 0, $2696 = 0, $2727 = 0, $2731 = 0, $658 = 0, $686 = 0, $730 = 0, $758 = 0, $786 = 0, $814 = 0, $843 = 0, $872 = 0, $948 = Math_fround(0), $961 = Math_fround(0), $974 = Math_fround(0), $987 = Math_fround(0), $1000 = Math_fround(0), $1013 = Math_fround(0), $1027 = Math_fround(0), $1041 = Math_fround(0), $1055 = Math_fround(0), $1069 = Math_fround(0), $1083 = Math_fround(0), $1097 = Math_fround(0), $1127 = Math_fround(0), $1142 = Math_fround(0), $1186 = Math_fround(0), $1199 = Math_fround(0), $1212 = Math_fround(0), $1226 = Math_fround(0), $1240 = Math_fround(0), $1254 = Math_fround(0), $1437 = Math_fround(0), $1505 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$1 = 0; + $8 = __stack_pointer - 976 | 0; + __stack_pointer = $8; + HEAP32[($8 + 972 | 0) >> 2] = $0; + HEAP32[($8 + 968 | 0) >> 2] = $1; + HEAP32[($8 + 964 | 0) >> 2] = $2; + HEAP32[($8 + 960 | 0) >> 2] = $3; + HEAP32[($8 + 956 | 0) >> 2] = $4; + HEAP32[($8 + 952 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 972 | 0) >> 2] | 0; + label$1 : { + if (!((HEAPU8[($9 + 738 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + __assert_fail(81148 | 0, 71702 | 0, 775 | 0, 68265 | 0); + wasm2js_trap(); + } + HEAP32[($8 + 944 | 0) >> 2] = HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + btTransform__operator__28btTransform_20const__29_20const($8 + 880 | 0 | 0, HEAP32[($8 + 964 | 0) >> 2] | 0 | 0, $9 + 552 | 0 | 0); + btTransform__operator__28btTransform_20const__29_20const($8 + 816 | 0 | 0, HEAP32[($8 + 960 | 0) >> 2] | 0 | 0, $9 + 616 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 800 | 0 | 0, btTransform__getOrigin_28_29($8 + 816 | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29($8 + 880 | 0 | 0) | 0 | 0); + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btRigidBody__getInvMass_28_29_20const(btHingeConstraint__getRigidBodyA_28_29($9 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 796 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btRigidBody__getInvMass_28_29_20const(btHingeConstraint__getRigidBodyB_28_29($9 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 792 | 0) >> 2] = wasm2js_f32$0; + $52 = 1; + label$2 : { + if (Math_fround(HEAPF32[($8 + 796 | 0) >> 2]) < Math_fround(1.1920928955078125e-07) & 1 | 0) { + break label$2 + } + $52 = Math_fround(HEAPF32[($8 + 792 | 0) >> 2]) < Math_fround(1.1920928955078125e-07); + } + HEAP8[($8 + 791 | 0) >> 0] = $52 & 1 | 0; + HEAPF32[($8 + 784 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($8 + 796 | 0) >> 2]) + Math_fround(HEAPF32[($8 + 792 | 0) >> 2])); + label$3 : { + label$4 : { + if (!(Math_fround(HEAPF32[($8 + 784 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$4 + } + HEAPF32[($8 + 780 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($8 + 792 | 0) >> 2]) / Math_fround(HEAPF32[($8 + 784 | 0) >> 2])); + break label$3; + } + HEAPF32[($8 + 780 | 0) >> 2] = Math_fround(.5); + } + HEAPF32[($8 + 776 | 0) >> 2] = Math_fround(Math_fround(1.0) - Math_fround(HEAPF32[($8 + 780 | 0) >> 2])); + btMatrix3x3__getColumn_28int_29_20const($8 + 760 | 0 | 0, btTransform__getBasis_28_29($8 + 880 | 0 | 0) | 0 | 0, 2 | 0); + btMatrix3x3__getColumn_28int_29_20const($8 + 744 | 0 | 0, btTransform__getBasis_28_29($8 + 816 | 0 | 0) | 0 | 0, 2 | 0); + operator__28btVector3_20const__2c_20float_20const__29($8 + 712 | 0 | 0, $8 + 760 | 0 | 0, $8 + 780 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($8 + 696 | 0 | 0, $8 + 744 | 0 | 0, $8 + 776 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 728 | 0 | 0, $8 + 712 | 0 | 0, $8 + 696 | 0 | 0); + btVector3__normalize_28_29($8 + 728 | 0 | 0) | 0; + btTransform__btTransform_28btTransform_20const__29($8 + 632 | 0 | 0, HEAP32[($8 + 964 | 0) >> 2] | 0 | 0) | 0; + btTransform__btTransform_28btTransform_20const__29($8 + 568 | 0 | 0, HEAP32[($8 + 960 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($8 + 564 | 0) >> 2] = 0; + HEAP32[($8 + 560 | 0) >> 2] = HEAP32[($8 + 944 | 0) >> 2] | 0; + HEAP32[($8 + 556 | 0) >> 2] = (HEAP32[($8 + 944 | 0) >> 2] | 0) << 1 | 0; + HEAP32[($8 + 552 | 0) >> 2] = 2; + btVector3__btVector3_28_29($8 + 536 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 520 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 504 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 488 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 472 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 456 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 440 | 0 | 0, btTransform__getOrigin_28_29($8 + 816 | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29($8 + 568 | 0 | 0) | 0 | 0); + $164 = 8; + i64toi32_i32$2 = ($8 + 440 | 0) + $164 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1848 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 488 | 0) + $164 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1848; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 440 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 444 | 0) >> 2] | 0; + $1852 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 488 | 0) >> 2] = $1852; + HEAP32[($8 + 492 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 488 | 0 | 0, $8 + 728 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 420 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20float_20const__29($8 + 424 | 0 | 0, $8 + 728 | 0 | 0, $8 + 420 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 404 | 0 | 0, $8 + 488 | 0 | 0, $8 + 424 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 388 | 0 | 0, btTransform__getOrigin_28_29($8 + 880 | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29($8 + 632 | 0 | 0) | 0 | 0); + $209 = 8; + i64toi32_i32$2 = ($8 + 388 | 0) + $209 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1930 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 504 | 0) + $209 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1930; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 388 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 392 | 0) >> 2] | 0; + $1934 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 504 | 0) >> 2] = $1934; + HEAP32[($8 + 508 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 504 | 0 | 0, $8 + 728 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 368 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20float_20const__29($8 + 372 | 0 | 0, $8 + 728 | 0 | 0, $8 + 368 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 352 | 0 | 0, $8 + 504 | 0 | 0, $8 + 372 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 336 | 0 | 0, $8 + 372 | 0 | 0, $8 + 424 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($8 + 304 | 0 | 0, $8 + 336 | 0 | 0, $8 + 780 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 320 | 0 | 0, $8 + 352 | 0 | 0, $8 + 304 | 0 | 0); + $270 = 8; + i64toi32_i32$2 = ($8 + 320 | 0) + $270 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2038 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 504 | 0) + $270 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2038; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 320 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 324 | 0) >> 2] | 0; + $2042 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 504 | 0) >> 2] = $2042; + HEAP32[($8 + 508 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20float_20const__29($8 + 272 | 0 | 0, $8 + 336 | 0 | 0, $8 + 776 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 288 | 0 | 0, $8 + 404 | 0 | 0, $8 + 272 | 0 | 0); + $297 = 8; + i64toi32_i32$2 = ($8 + 288 | 0) + $297 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2088 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 488 | 0) + $297 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2088; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 288 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 292 | 0) >> 2] | 0; + $2092 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 488 | 0) >> 2] = $2092; + HEAP32[($8 + 492 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20float_20const__29($8 + 240 | 0 | 0, $8 + 404 | 0 | 0, $8 + 780 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($8 + 224 | 0 | 0, $8 + 352 | 0 | 0, $8 + 776 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 256 | 0 | 0, $8 + 240 | 0 | 0, $8 + 224 | 0 | 0); + $333 = 8; + i64toi32_i32$2 = ($8 + 256 | 0) + $333 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2153 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 472 | 0) + $333 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2153; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 256 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 260 | 0) >> 2] | 0; + $2157 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 472 | 0) >> 2] = $2157; + HEAP32[($8 + 476 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($8 + 472 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 220 | 0) >> 2] = wasm2js_f32$0; + label$5 : { + label$6 : { + if (!(Math_fround(HEAPF32[($8 + 220 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$6 + } + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btSqrt_28float_29(Math_fround(Math_fround(HEAPF32[($8 + 220 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 216 | 0) >> 2] = wasm2js_f32$0; + btVector3__operator___28float_20const__29($8 + 472 | 0 | 0, $8 + 216 | 0 | 0) | 0; + break label$5; + } + btMatrix3x3__getColumn_28int_29_20const($8 + 200 | 0 | 0, btTransform__getBasis_28_29($8 + 880 | 0 | 0) | 0 | 0, 1 | 0); + $367 = 8; + i64toi32_i32$2 = ($8 + 200 | 0) + $367 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2221 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 472 | 0) + $367 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2221; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 200 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 204 | 0) >> 2] | 0; + $2225 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 472 | 0) >> 2] = $2225; + HEAP32[($8 + 476 | 0) >> 2] = i64toi32_i32$0; + } + btVector3__cross_28btVector3_20const__29_20const($8 + 184 | 0 | 0, $8 + 728 | 0 | 0, $8 + 472 | 0 | 0); + $385 = 8; + i64toi32_i32$2 = ($8 + 184 | 0) + $385 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2256 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 456 | 0) + $385 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2256; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 184 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 188 | 0) >> 2] | 0; + $2260 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 456 | 0) >> 2] = $2260; + HEAP32[($8 + 460 | 0) >> 2] = i64toi32_i32$0; + btVector3__cross_28btVector3_20const__29_20const($8 + 168 | 0 | 0, $8 + 504 | 0 | 0, $8 + 472 | 0 | 0); + $403 = 8; + i64toi32_i32$2 = ($8 + 168 | 0) + $403 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2291 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 536 | 0) + $403 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2291; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 168 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 172 | 0) >> 2] | 0; + $2295 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 536 | 0) >> 2] = $2295; + HEAP32[($8 + 540 | 0) >> 2] = i64toi32_i32$0; + btVector3__cross_28btVector3_20const__29_20const($8 + 152 | 0 | 0, $8 + 488 | 0 | 0, $8 + 472 | 0 | 0); + $421 = 8; + i64toi32_i32$2 = ($8 + 152 | 0) + $421 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2326 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 520 | 0) + $421 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2326; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 152 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 156 | 0) >> 2] | 0; + $2330 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 520 | 0) >> 2] = $2330; + HEAP32[($8 + 524 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($8 + 948 | 0) >> 2] = 0; + label$7 : { + label$8 : while (1) { + if (!((HEAP32[($8 + 948 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$7 + } + $441 = btVector3__operator_20float__28_29($8 + 536 | 0 | 0) | 0; + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + (((HEAP32[($8 + 564 | 0) >> 2] | 0) + (HEAP32[($8 + 948 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($441 + ((HEAP32[($8 + 948 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + HEAP32[($8 + 948 | 0) >> 2] = (HEAP32[($8 + 948 | 0) >> 2] | 0) + 1 | 0; + continue label$8; + }; + } + HEAP32[($8 + 948 | 0) >> 2] = 0; + label$9 : { + label$10 : while (1) { + if (!((HEAP32[($8 + 948 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$9 + } + $469 = btVector3__operator_20float__28_29($8 + 520 | 0 | 0) | 0; + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + (((HEAP32[($8 + 564 | 0) >> 2] | 0) + (HEAP32[($8 + 948 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[($469 + ((HEAP32[($8 + 948 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])); + HEAP32[($8 + 948 | 0) >> 2] = (HEAP32[($8 + 948 | 0) >> 2] | 0) + 1 | 0; + continue label$10; + }; + } + btVector3__cross_28btVector3_20const__29_20const($8 + 136 | 0 | 0, $8 + 504 | 0 | 0, $8 + 456 | 0 | 0); + $496 = 8; + i64toi32_i32$2 = ($8 + 136 | 0) + $496 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2475 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 536 | 0) + $496 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2475; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 136 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 140 | 0) >> 2] | 0; + $2479 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 536 | 0) >> 2] = $2479; + HEAP32[($8 + 540 | 0) >> 2] = i64toi32_i32$0; + btVector3__cross_28btVector3_20const__29_20const($8 + 120 | 0 | 0, $8 + 488 | 0 | 0, $8 + 456 | 0 | 0); + $514 = 8; + i64toi32_i32$2 = ($8 + 120 | 0) + $514 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2510 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 520 | 0) + $514 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2510; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 120 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 124 | 0) >> 2] | 0; + $2514 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 520 | 0) >> 2] = $2514; + HEAP32[($8 + 524 | 0) >> 2] = i64toi32_i32$0; + label$11 : { + if (!((HEAPU8[($8 + 791 | 0) >> 0] | 0) & 1 | 0)) { + break label$11 + } + if (!(btHingeConstraint__getSolveLimit_28_29($9 | 0) | 0)) { + break label$11 + } + btVector3__operator___28float_20const__29_1($8 + 520 | 0 | 0, $8 + 776 | 0 | 0) | 0; + btVector3__operator___28float_20const__29_1($8 + 536 | 0 | 0, $8 + 780 | 0 | 0) | 0; + } + HEAP32[($8 + 948 | 0) >> 2] = 0; + label$12 : { + label$13 : while (1) { + if (!((HEAP32[($8 + 948 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$12 + } + $550 = btVector3__operator_20float__28_29($8 + 536 | 0 | 0) | 0; + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + (((HEAP32[($8 + 560 | 0) >> 2] | 0) + (HEAP32[($8 + 948 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($550 + ((HEAP32[($8 + 948 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + HEAP32[($8 + 948 | 0) >> 2] = (HEAP32[($8 + 948 | 0) >> 2] | 0) + 1 | 0; + continue label$13; + }; + } + HEAP32[($8 + 948 | 0) >> 2] = 0; + label$14 : { + label$15 : while (1) { + if (!((HEAP32[($8 + 948 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$14 + } + $578 = btVector3__operator_20float__28_29($8 + 520 | 0 | 0) | 0; + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + (((HEAP32[($8 + 560 | 0) >> 2] | 0) + (HEAP32[($8 + 948 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[($578 + ((HEAP32[($8 + 948 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])); + HEAP32[($8 + 948 | 0) >> 2] = (HEAP32[($8 + 948 | 0) >> 2] | 0) + 1 | 0; + continue label$15; + }; + } + btVector3__cross_28btVector3_20const__29_20const($8 + 104 | 0 | 0, $8 + 504 | 0 | 0, $8 + 728 | 0 | 0); + $605 = 8; + i64toi32_i32$2 = ($8 + 104 | 0) + $605 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2692 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 536 | 0) + $605 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2692; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 104 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 108 | 0) >> 2] | 0; + $2696 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 536 | 0) >> 2] = $2696; + HEAP32[($8 + 540 | 0) >> 2] = i64toi32_i32$0; + btVector3__cross_28btVector3_20const__29_20const($8 + 88 | 0 | 0, $8 + 488 | 0 | 0, $8 + 728 | 0 | 0); + $623 = 8; + i64toi32_i32$2 = ($8 + 88 | 0) + $623 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2727 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 520 | 0) + $623 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2727; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8; + i64toi32_i32$1 = HEAP32[($8 + 88 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($8 + 92 | 0) >> 2] | 0; + $2731 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 520 | 0) >> 2] = $2731; + HEAP32[($8 + 524 | 0) >> 2] = i64toi32_i32$0; + label$16 : { + if (!((HEAPU8[($8 + 791 | 0) >> 0] | 0) & 1 | 0)) { + break label$16 + } + btVector3__operator___28float_20const__29_1($8 + 520 | 0 | 0, $8 + 776 | 0 | 0) | 0; + btVector3__operator___28float_20const__29_1($8 + 536 | 0 | 0, $8 + 780 | 0 | 0) | 0; + } + HEAP32[($8 + 948 | 0) >> 2] = 0; + label$17 : { + label$18 : while (1) { + if (!((HEAP32[($8 + 948 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$17 + } + $658 = btVector3__operator_20float__28_29($8 + 536 | 0 | 0) | 0; + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + (((HEAP32[($8 + 556 | 0) >> 2] | 0) + (HEAP32[($8 + 948 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($658 + ((HEAP32[($8 + 948 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + HEAP32[($8 + 948 | 0) >> 2] = (HEAP32[($8 + 948 | 0) >> 2] | 0) + 1 | 0; + continue label$18; + }; + } + HEAP32[($8 + 948 | 0) >> 2] = 0; + label$19 : { + label$20 : while (1) { + if (!((HEAP32[($8 + 948 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$19 + } + $686 = btVector3__operator_20float__28_29($8 + 520 | 0 | 0) | 0; + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + (((HEAP32[($8 + 556 | 0) >> 2] | 0) + (HEAP32[($8 + 948 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[($686 + ((HEAP32[($8 + 948 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])); + HEAP32[($8 + 948 | 0) >> 2] = (HEAP32[($8 + 948 | 0) >> 2] | 0) + 1 | 0; + continue label$20; + }; + } + label$21 : { + label$22 : { + if (!((HEAP32[($9 + 748 | 0) >> 2] | 0) & 8 | 0)) { + break label$22 + } + $708 = Math_fround(HEAPF32[($9 + 756 | 0) >> 2]); + break label$21; + } + $708 = Math_fround(HEAPF32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 4 | 0) >> 2]); + } + HEAPF32[($8 + 84 | 0) >> 2] = $708; + HEAPF32[($8 + 80 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[(HEAP32[($8 + 968 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[($8 + 84 | 0) >> 2])); + label$23 : { + if ((HEAPU8[($9 + 736 | 0) >> 0] | 0) & 1 | 0) { + break label$23 + } + HEAP32[($8 + 948 | 0) >> 2] = 0; + label$24 : { + label$25 : while (1) { + if (!((HEAP32[($8 + 948 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$24 + } + $730 = btVector3__operator_20float__28_29($8 + 472 | 0 | 0) | 0; + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + (((HEAP32[($8 + 564 | 0) >> 2] | 0) + (HEAP32[($8 + 948 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($730 + ((HEAP32[($8 + 948 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + HEAP32[($8 + 948 | 0) >> 2] = (HEAP32[($8 + 948 | 0) >> 2] | 0) + 1 | 0; + continue label$25; + }; + } + HEAP32[($8 + 948 | 0) >> 2] = 0; + label$26 : { + label$27 : while (1) { + if (!((HEAP32[($8 + 948 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$26 + } + $758 = btVector3__operator_20float__28_29($8 + 456 | 0 | 0) | 0; + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + (((HEAP32[($8 + 560 | 0) >> 2] | 0) + (HEAP32[($8 + 948 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($758 + ((HEAP32[($8 + 948 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + HEAP32[($8 + 948 | 0) >> 2] = (HEAP32[($8 + 948 | 0) >> 2] | 0) + 1 | 0; + continue label$27; + }; + } + HEAP32[($8 + 948 | 0) >> 2] = 0; + label$28 : { + label$29 : while (1) { + if (!((HEAP32[($8 + 948 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$28 + } + $786 = btVector3__operator_20float__28_29($8 + 728 | 0 | 0) | 0; + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + (((HEAP32[($8 + 556 | 0) >> 2] | 0) + (HEAP32[($8 + 948 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($786 + ((HEAP32[($8 + 948 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + HEAP32[($8 + 948 | 0) >> 2] = (HEAP32[($8 + 948 | 0) >> 2] | 0) + 1 | 0; + continue label$29; + }; + } + HEAP32[($8 + 948 | 0) >> 2] = 0; + label$30 : { + label$31 : while (1) { + if (!((HEAP32[($8 + 948 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$30 + } + $814 = btVector3__operator_20float__28_29($8 + 472 | 0 | 0) | 0; + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + (((HEAP32[($8 + 564 | 0) >> 2] | 0) + (HEAP32[($8 + 948 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[($814 + ((HEAP32[($8 + 948 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])); + HEAP32[($8 + 948 | 0) >> 2] = (HEAP32[($8 + 948 | 0) >> 2] | 0) + 1 | 0; + continue label$31; + }; + } + HEAP32[($8 + 948 | 0) >> 2] = 0; + label$32 : { + label$33 : while (1) { + if (!((HEAP32[($8 + 948 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$32 + } + $843 = btVector3__operator_20float__28_29($8 + 456 | 0 | 0) | 0; + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + (((HEAP32[($8 + 560 | 0) >> 2] | 0) + (HEAP32[($8 + 948 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[($843 + ((HEAP32[($8 + 948 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])); + HEAP32[($8 + 948 | 0) >> 2] = (HEAP32[($8 + 948 | 0) >> 2] | 0) + 1 | 0; + continue label$33; + }; + } + HEAP32[($8 + 948 | 0) >> 2] = 0; + label$34 : { + label$35 : while (1) { + if (!((HEAP32[($8 + 948 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$34 + } + $872 = btVector3__operator_20float__28_29($8 + 728 | 0 | 0) | 0; + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + (((HEAP32[($8 + 556 | 0) >> 2] | 0) + (HEAP32[($8 + 948 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[($872 + ((HEAP32[($8 + 948 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])); + HEAP32[($8 + 948 | 0) >> 2] = (HEAP32[($8 + 948 | 0) >> 2] | 0) + 1 | 0; + continue label$35; + }; + } + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[($8 + 80 | 0) >> 2]) * Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 472 | 0 | 0, $8 + 800 | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 76 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($8 + 564 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($8 + 76 | 0) >> 2]); + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[($8 + 80 | 0) >> 2]) * Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 456 | 0 | 0, $8 + 800 | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 76 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($8 + 560 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($8 + 76 | 0) >> 2]); + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[($8 + 80 | 0) >> 2]) * Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 728 | 0 | 0, $8 + 800 | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 76 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($8 + 556 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($8 + 76 | 0) >> 2]); + } + HEAP32[($8 + 72 | 0) >> 2] = Math_imul(HEAP32[($8 + 944 | 0) >> 2] | 0, 3); + HEAP32[($8 + 68 | 0) >> 2] = (HEAP32[($8 + 944 | 0) >> 2] | 0) << 2 | 0; + $948 = Math_fround(HEAPF32[(btVector3__operator_20float__28_29($8 + 472 | 0 | 0) | 0) >> 2]); + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + (((HEAP32[($8 + 72 | 0) >> 2] | 0) + 0 | 0) << 2 | 0) | 0) >> 2] = $948; + $961 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($8 + 472 | 0 | 0) | 0) + 4 | 0) >> 2]); + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + (((HEAP32[($8 + 72 | 0) >> 2] | 0) + 1 | 0) << 2 | 0) | 0) >> 2] = $961; + $974 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($8 + 472 | 0 | 0) | 0) + 8 | 0) >> 2]); + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + (((HEAP32[($8 + 72 | 0) >> 2] | 0) + 2 | 0) << 2 | 0) | 0) >> 2] = $974; + $987 = Math_fround(HEAPF32[(btVector3__operator_20float__28_29($8 + 456 | 0 | 0) | 0) >> 2]); + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + (((HEAP32[($8 + 68 | 0) >> 2] | 0) + 0 | 0) << 2 | 0) | 0) >> 2] = $987; + $1000 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($8 + 456 | 0 | 0) | 0) + 4 | 0) >> 2]); + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + (((HEAP32[($8 + 68 | 0) >> 2] | 0) + 1 | 0) << 2 | 0) | 0) >> 2] = $1000; + $1013 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($8 + 456 | 0 | 0) | 0) + 8 | 0) >> 2]); + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + (((HEAP32[($8 + 68 | 0) >> 2] | 0) + 2 | 0) << 2 | 0) | 0) >> 2] = $1013; + $1027 = Math_fround(-Math_fround(HEAPF32[(btVector3__operator_20float__28_29($8 + 472 | 0 | 0) | 0) >> 2])); + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + (((HEAP32[($8 + 72 | 0) >> 2] | 0) + 0 | 0) << 2 | 0) | 0) >> 2] = $1027; + $1041 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float__28_29($8 + 472 | 0 | 0) | 0) + 4 | 0) >> 2])); + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + (((HEAP32[($8 + 72 | 0) >> 2] | 0) + 1 | 0) << 2 | 0) | 0) >> 2] = $1041; + $1055 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float__28_29($8 + 472 | 0 | 0) | 0) + 8 | 0) >> 2])); + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + (((HEAP32[($8 + 72 | 0) >> 2] | 0) + 2 | 0) << 2 | 0) | 0) >> 2] = $1055; + $1069 = Math_fround(-Math_fround(HEAPF32[(btVector3__operator_20float__28_29($8 + 456 | 0 | 0) | 0) >> 2])); + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + (((HEAP32[($8 + 68 | 0) >> 2] | 0) + 0 | 0) << 2 | 0) | 0) >> 2] = $1069; + $1083 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float__28_29($8 + 456 | 0 | 0) | 0) + 4 | 0) >> 2])); + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + (((HEAP32[($8 + 68 | 0) >> 2] | 0) + 1 | 0) << 2 | 0) | 0) >> 2] = $1083; + $1097 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float__28_29($8 + 456 | 0 | 0) | 0) + 8 | 0) >> 2])); + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + (((HEAP32[($8 + 68 | 0) >> 2] | 0) + 2 | 0) << 2 | 0) | 0) >> 2] = $1097; + HEAPF32[($8 + 80 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[(HEAP32[($8 + 968 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[($8 + 84 | 0) >> 2])); + btVector3__cross_28btVector3_20const__29_20const($8 + 52 | 0 | 0, $8 + 760 | 0 | 0, $8 + 744 | 0 | 0); + $1127 = Math_fround(Math_fround(HEAPF32[($8 + 80 | 0) >> 2]) * Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 52 | 0 | 0, $8 + 472 | 0 | 0))); + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($8 + 72 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = $1127; + $1142 = Math_fround(Math_fround(HEAPF32[($8 + 80 | 0) >> 2]) * Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 52 | 0 | 0, $8 + 456 | 0 | 0))); + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($8 + 68 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = $1142; + HEAP32[($8 + 552 | 0) >> 2] = 4; + HEAPF32[($8 + 44 | 0) >> 2] = Math_fround(0 | 0); + HEAP32[($8 + 40 | 0) >> 2] = 0; + label$36 : { + if (!(btHingeConstraint__getSolveLimit_28_29($9 | 0) | 0)) { + break label$36 + } + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(Math_fround(btAngularLimit__getCorrection_28_29_20const($9 + 688 | 0 | 0)) * Math_fround(HEAPF32[($9 + 732 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + HEAP32[($8 + 40 | 0) >> 2] = Math_fround(HEAPF32[($8 + 44 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0 ? 1 : 2; + } + (wasm2js_i32$0 = $8, wasm2js_i32$1 = (btHingeConstraint__getEnableAngularMotor_28_29($9 | 0) | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 39 | 0) >> 0] = wasm2js_i32$1; + label$37 : { + label$38 : { + if (HEAP32[($8 + 40 | 0) >> 2] | 0) { + break label$38 + } + if (!((HEAPU8[($8 + 39 | 0) >> 0] | 0) & 1 | 0)) { + break label$37 + } + } + HEAP32[($8 + 552 | 0) >> 2] = (HEAP32[($8 + 552 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($8 + 48 | 0) >> 2] = Math_imul(HEAP32[($8 + 552 | 0) >> 2] | 0, HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0); + $1186 = Math_fround(HEAPF32[(btVector3__operator_20float__28_29($8 + 728 | 0 | 0) | 0) >> 2]); + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + (((HEAP32[($8 + 48 | 0) >> 2] | 0) + 0 | 0) << 2 | 0) | 0) >> 2] = $1186; + $1199 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($8 + 728 | 0 | 0) | 0) + 4 | 0) >> 2]); + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + (((HEAP32[($8 + 48 | 0) >> 2] | 0) + 1 | 0) << 2 | 0) | 0) >> 2] = $1199; + $1212 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($8 + 728 | 0 | 0) | 0) + 8 | 0) >> 2]); + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + (((HEAP32[($8 + 48 | 0) >> 2] | 0) + 2 | 0) << 2 | 0) | 0) >> 2] = $1212; + $1226 = Math_fround(-Math_fround(HEAPF32[(btVector3__operator_20float__28_29($8 + 728 | 0 | 0) | 0) >> 2])); + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + (((HEAP32[($8 + 48 | 0) >> 2] | 0) + 0 | 0) << 2 | 0) | 0) >> 2] = $1226; + $1240 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float__28_29($8 + 728 | 0 | 0) | 0) + 4 | 0) >> 2])); + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + (((HEAP32[($8 + 48 | 0) >> 2] | 0) + 1 | 0) << 2 | 0) | 0) >> 2] = $1240; + $1254 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float__28_29($8 + 728 | 0 | 0) | 0) + 8 | 0) >> 2])); + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + (((HEAP32[($8 + 48 | 0) >> 2] | 0) + 2 | 0) << 2 | 0) | 0) >> 2] = $1254; + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btHingeConstraint__getLowerLimit_28_29_20const($9 | 0))), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btHingeConstraint__getUpperLimit_28_29_20const($9 | 0))), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + label$39 : { + if (!(HEAP32[($8 + 40 | 0) >> 2] | 0)) { + break label$39 + } + if (!(Math_fround(HEAPF32[($8 + 32 | 0) >> 2]) == Math_fround(HEAPF32[($8 + 28 | 0) >> 2]) & 1 | 0)) { + break label$39 + } + HEAP8[($8 + 39 | 0) >> 0] = 0; + } + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(0 | 0); + label$40 : { + label$41 : { + if (!((HEAP32[($9 + 748 | 0) >> 2] | 0) & 2 | 0)) { + break label$41 + } + $1284 = Math_fround(HEAPF32[($9 + 764 | 0) >> 2]); + break label$40; + } + $1284 = Math_fround(HEAPF32[($8 + 84 | 0) >> 2]); + } + HEAPF32[($8 + 24 | 0) >> 2] = $1284; + label$42 : { + if (!((HEAPU8[($8 + 39 | 0) >> 0] | 0) & 1 | 0)) { + break label$42 + } + label$43 : { + if (!((HEAP32[($9 + 748 | 0) >> 2] | 0) & 4 | 0)) { + break label$43 + } + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($9 + 752 | 0) >> 2]); + } + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btTypedConstraint__getMotorFactor_28float_2c_20float_2c_20float_2c_20float_2c_20float_29($9 | 0, Math_fround(Math_fround(HEAPF32[($9 + 728 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($8 + 32 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($8 + 28 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($9 + 680 | 0) >> 2])), Math_fround(Math_fround(Math_fround(HEAPF32[(HEAP32[($8 + 968 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[($8 + 24 | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + $1318 = (HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0; + HEAPF32[$1318 >> 2] = Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[($8 + 20 | 0) >> 2]) * Math_fround(HEAPF32[($9 + 680 | 0) >> 2])) * Math_fround(HEAPF32[($9 + 732 | 0) >> 2])) + Math_fround(HEAPF32[$1318 >> 2])); + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[($9 + 684 | 0) >> 2])); + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($9 + 684 | 0) >> 2]); + } + label$44 : { + if (!(HEAP32[($8 + 40 | 0) >> 2] | 0)) { + break label$44 + } + HEAPF32[($8 + 80 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[(HEAP32[($8 + 968 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[($8 + 24 | 0) >> 2])); + $1349 = (HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0; + HEAPF32[$1349 >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($8 + 80 | 0) >> 2]) * Math_fround(HEAPF32[($8 + 44 | 0) >> 2])) + Math_fround(HEAPF32[$1349 >> 2])); + label$45 : { + if (!((HEAP32[($9 + 748 | 0) >> 2] | 0) & 1 | 0)) { + break label$45 + } + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($9 + 760 | 0) >> 2]); + } + label$46 : { + label$47 : { + if (!(Math_fround(HEAPF32[($8 + 32 | 0) >> 2]) == Math_fround(HEAPF32[($8 + 28 | 0) >> 2]) & 1 | 0)) { + break label$47 + } + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(-3402823466385288598117041.0e14); + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(3402823466385288598117041.0e14); + break label$46; + } + label$48 : { + label$49 : { + if (!((HEAP32[($8 + 40 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$49 + } + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(3402823466385288598117041.0e14); + break label$48; + } + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(-3402823466385288598117041.0e14); + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(0 | 0); + } + } + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btAngularLimit__getRelaxationFactor_28_29_20const($9 + 688 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + label$50 : { + if (!(Math_fround(HEAPF32[($8 + 16 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$50 + } + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($8 + 956 | 0) >> 2] | 0 | 0, $8 + 728 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + $1437 = Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($8 + 952 | 0) >> 2] | 0 | 0, $8 + 728 | 0 | 0)); + HEAPF32[($8 + 12 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($8 + 12 | 0) >> 2]) - $1437); + label$51 : { + label$52 : { + if (!((HEAP32[($8 + 40 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$52 + } + label$53 : { + if (!(Math_fround(HEAPF32[($8 + 12 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$53 + } + HEAPF32[($8 + 8 | 0) >> 2] = Math_fround(Math_fround(-Math_fround(HEAPF32[($8 + 16 | 0) >> 2])) * Math_fround(HEAPF32[($8 + 12 | 0) >> 2])); + label$54 : { + if (!(Math_fround(HEAPF32[($8 + 8 | 0) >> 2]) > Math_fround(HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) & 1 | 0)) { + break label$54 + } + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($8 + 8 | 0) >> 2]); + } + } + break label$51; + } + label$55 : { + if (!(Math_fround(HEAPF32[($8 + 12 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$55 + } + HEAPF32[($8 + 4 | 0) >> 2] = Math_fround(Math_fround(-Math_fround(HEAPF32[($8 + 16 | 0) >> 2])) * Math_fround(HEAPF32[($8 + 12 | 0) >> 2])); + label$56 : { + if (!(Math_fround(HEAPF32[($8 + 4 | 0) >> 2]) < Math_fround(HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) & 1 | 0)) { + break label$56 + } + HEAPF32[((HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($8 + 4 | 0) >> 2]); + } + } + } + } + $1505 = Math_fround(btAngularLimit__getBiasFactor_28_29_20const($9 + 688 | 0 | 0)); + $1511 = (HEAP32[((HEAP32[($8 + 968 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0; + HEAPF32[$1511 >> 2] = Math_fround(Math_fround(HEAPF32[$1511 >> 2]) * $1505); + } + } + __stack_pointer = $8 + 976 | 0; + return; + } + + function btHingeConstraint__getInfo2Internal_28btTypedConstraint__btConstraintInfo2__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3_20const__2c_20btVector3_20const__29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, $9 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $34 = 0, $35 = 0, $45 = 0, $46 = 0, $172 = Math_fround(0), $599 = Math_fround(0), $633 = 0, $664 = 0, $826 = 0, $909 = 0, $913 = 0, $932 = 0, $936 = 0, $191 = Math_fround(0), $200 = Math_fround(0), $204 = 0, $259 = Math_fround(0), $272 = Math_fround(0), $285 = Math_fround(0), $298 = Math_fround(0), $311 = Math_fround(0), $324 = Math_fround(0), $338 = Math_fround(0), $352 = Math_fround(0), $366 = Math_fround(0), $380 = Math_fround(0), $394 = Math_fround(0), $408 = Math_fround(0), $442 = Math_fround(0), $457 = Math_fround(0), $501 = Math_fround(0), $514 = Math_fround(0), $527 = Math_fround(0), $541 = Math_fround(0), $555 = Math_fround(0), $569 = Math_fround(0), $752 = Math_fround(0), $820 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$1 = 0; + $8 = __stack_pointer - 416 | 0; + __stack_pointer = $8; + HEAP32[($8 + 412 | 0) >> 2] = $0; + HEAP32[($8 + 408 | 0) >> 2] = $1; + HEAP32[($8 + 404 | 0) >> 2] = $2; + HEAP32[($8 + 400 | 0) >> 2] = $3; + HEAP32[($8 + 396 | 0) >> 2] = $4; + HEAP32[($8 + 392 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 412 | 0) >> 2] | 0; + label$1 : { + if (!((HEAPU8[($9 + 738 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + __assert_fail(81148 | 0, 71702 | 0, 419 | 0, 77516 | 0); + wasm2js_trap(); + } + HEAP32[($8 + 384 | 0) >> 2] = HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + btTransform__operator__28btTransform_20const__29_20const($8 + 320 | 0 | 0, HEAP32[($8 + 404 | 0) >> 2] | 0 | 0, $9 + 552 | 0 | 0); + btTransform__operator__28btTransform_20const__29_20const($8 + 256 | 0 | 0, HEAP32[($8 + 400 | 0) >> 2] | 0 | 0, $9 + 616 | 0 | 0); + $34 = btTransform__getOrigin_28_29($8 + 320 | 0 | 0) | 0; + $35 = 8; + i64toi32_i32$2 = $34 + $35 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $909 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 240 | 0) + $35 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $909; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $34; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $913 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 240 | 0) >> 2] = $913; + HEAP32[($8 + 244 | 0) >> 2] = i64toi32_i32$0; + $45 = btTransform__getOrigin_28_29($8 + 256 | 0 | 0) | 0; + $46 = 8; + i64toi32_i32$2 = $45 + $46 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $932 = i64toi32_i32$0; + i64toi32_i32$0 = ($8 + 224 | 0) + $46 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $932; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $45; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $936 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 224 | 0) >> 2] = $936; + HEAP32[($8 + 228 | 0) >> 2] = i64toi32_i32$0; + label$2 : { + if ((HEAPU8[($9 + 736 | 0) >> 0] | 0) & 1 | 0) { + break label$2 + } + HEAPF32[(HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] = Math_fround(1.0); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + (((HEAP32[($8 + 384 | 0) >> 2] | 0) + 1 | 0) << 2 | 0) | 0) >> 2] = Math_fround(1.0); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + ((((HEAP32[($8 + 384 | 0) >> 2] | 0) << 1 | 0) + 2 | 0) << 2 | 0) | 0) >> 2] = Math_fround(1.0); + HEAPF32[(HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] = Math_fround(-1.0); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + (((HEAP32[($8 + 384 | 0) >> 2] | 0) + 1 | 0) << 2 | 0) | 0) >> 2] = Math_fround(-1.0); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + ((((HEAP32[($8 + 384 | 0) >> 2] | 0) << 1 | 0) + 2 | 0) << 2 | 0) | 0) >> 2] = Math_fround(-1.0); + } + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 208 | 0 | 0, $8 + 240 | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($8 + 404 | 0) >> 2] | 0 | 0) | 0 | 0); + HEAP32[($8 + 204 | 0) >> 2] = HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + HEAP32[($8 + 200 | 0) >> 2] = (HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + ((HEAP32[($8 + 384 | 0) >> 2] | 0) << 2 | 0) | 0; + HEAP32[($8 + 196 | 0) >> 2] = (HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + (((HEAP32[($8 + 384 | 0) >> 2] | 0) << 1 | 0) << 2 | 0) | 0; + operator__28btVector3_20const__29($8 + 180 | 0 | 0, $8 + 208 | 0 | 0); + btVector3__getSkewSymmetricMatrix_28btVector3__2c_20btVector3__2c_20btVector3__29_20const($8 + 180 | 0 | 0, HEAP32[($8 + 204 | 0) >> 2] | 0 | 0, HEAP32[($8 + 200 | 0) >> 2] | 0 | 0, HEAP32[($8 + 196 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($8 + 164 | 0 | 0, $8 + 224 | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($8 + 400 | 0) >> 2] | 0 | 0) | 0 | 0); + HEAP32[($8 + 160 | 0) >> 2] = HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0; + HEAP32[($8 + 156 | 0) >> 2] = (HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + ((HEAP32[($8 + 384 | 0) >> 2] | 0) << 2 | 0) | 0; + HEAP32[($8 + 152 | 0) >> 2] = (HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + (((HEAP32[($8 + 384 | 0) >> 2] | 0) << 1 | 0) << 2 | 0) | 0; + btVector3__getSkewSymmetricMatrix_28btVector3__2c_20btVector3__2c_20btVector3__29_20const($8 + 164 | 0 | 0, HEAP32[($8 + 160 | 0) >> 2] | 0 | 0, HEAP32[($8 + 156 | 0) >> 2] | 0 | 0, HEAP32[($8 + 152 | 0) >> 2] | 0 | 0); + label$3 : { + label$4 : { + if (!((HEAP32[($9 + 748 | 0) >> 2] | 0) & 8 | 0)) { + break label$4 + } + $172 = Math_fround(HEAPF32[($9 + 756 | 0) >> 2]); + break label$3; + } + $172 = Math_fround(HEAPF32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 4 | 0) >> 2]); + } + HEAPF32[($8 + 148 | 0) >> 2] = $172; + HEAPF32[($8 + 144 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[(HEAP32[($8 + 408 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[($8 + 148 | 0) >> 2])); + label$5 : { + if ((HEAPU8[($9 + 736 | 0) >> 0] | 0) & 1 | 0) { + break label$5 + } + HEAP32[($8 + 388 | 0) >> 2] = 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($8 + 388 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$6 + } + $191 = Math_fround(HEAPF32[($8 + 144 | 0) >> 2]); + $200 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($8 + 224 | 0 | 0) | 0) + ((HEAP32[($8 + 388 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + $204 = btVector3__operator_20float__28_29($8 + 240 | 0 | 0) | 0; + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + (Math_imul(HEAP32[($8 + 388 | 0) >> 2] | 0, HEAP32[($8 + 384 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround($191 * Math_fround($200 - Math_fround(HEAPF32[($204 + ((HEAP32[($8 + 388 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]))); + HEAP32[($8 + 388 | 0) >> 2] = (HEAP32[($8 + 388 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + btMatrix3x3__getColumn_28int_29_20const($8 + 128 | 0 | 0, btTransform__getBasis_28_29($8 + 320 | 0 | 0) | 0 | 0, 2 | 0); + btMatrix3x3__getColumn_28int_29_20const($8 + 112 | 0 | 0, btTransform__getBasis_28_29($8 + 320 | 0 | 0) | 0 | 0, 0 | 0); + btMatrix3x3__getColumn_28int_29_20const($8 + 96 | 0 | 0, btTransform__getBasis_28_29($8 + 320 | 0 | 0) | 0 | 0, 1 | 0); + HEAP32[($8 + 92 | 0) >> 2] = Math_imul(HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0, 3); + HEAP32[($8 + 88 | 0) >> 2] = (HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) << 2 | 0; + $259 = Math_fround(HEAPF32[(btVector3__operator_20float__28_29($8 + 112 | 0 | 0) | 0) >> 2]); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + (((HEAP32[($8 + 92 | 0) >> 2] | 0) + 0 | 0) << 2 | 0) | 0) >> 2] = $259; + $272 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($8 + 112 | 0 | 0) | 0) + 4 | 0) >> 2]); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + (((HEAP32[($8 + 92 | 0) >> 2] | 0) + 1 | 0) << 2 | 0) | 0) >> 2] = $272; + $285 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($8 + 112 | 0 | 0) | 0) + 8 | 0) >> 2]); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + (((HEAP32[($8 + 92 | 0) >> 2] | 0) + 2 | 0) << 2 | 0) | 0) >> 2] = $285; + $298 = Math_fround(HEAPF32[(btVector3__operator_20float__28_29($8 + 96 | 0 | 0) | 0) >> 2]); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + (((HEAP32[($8 + 88 | 0) >> 2] | 0) + 0 | 0) << 2 | 0) | 0) >> 2] = $298; + $311 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($8 + 96 | 0 | 0) | 0) + 4 | 0) >> 2]); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + (((HEAP32[($8 + 88 | 0) >> 2] | 0) + 1 | 0) << 2 | 0) | 0) >> 2] = $311; + $324 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($8 + 96 | 0 | 0) | 0) + 8 | 0) >> 2]); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + (((HEAP32[($8 + 88 | 0) >> 2] | 0) + 2 | 0) << 2 | 0) | 0) >> 2] = $324; + $338 = Math_fround(-Math_fround(HEAPF32[(btVector3__operator_20float__28_29($8 + 112 | 0 | 0) | 0) >> 2])); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + (((HEAP32[($8 + 92 | 0) >> 2] | 0) + 0 | 0) << 2 | 0) | 0) >> 2] = $338; + $352 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float__28_29($8 + 112 | 0 | 0) | 0) + 4 | 0) >> 2])); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + (((HEAP32[($8 + 92 | 0) >> 2] | 0) + 1 | 0) << 2 | 0) | 0) >> 2] = $352; + $366 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float__28_29($8 + 112 | 0 | 0) | 0) + 8 | 0) >> 2])); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + (((HEAP32[($8 + 92 | 0) >> 2] | 0) + 2 | 0) << 2 | 0) | 0) >> 2] = $366; + $380 = Math_fround(-Math_fround(HEAPF32[(btVector3__operator_20float__28_29($8 + 96 | 0 | 0) | 0) >> 2])); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + (((HEAP32[($8 + 88 | 0) >> 2] | 0) + 0 | 0) << 2 | 0) | 0) >> 2] = $380; + $394 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float__28_29($8 + 96 | 0 | 0) | 0) + 4 | 0) >> 2])); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + (((HEAP32[($8 + 88 | 0) >> 2] | 0) + 1 | 0) << 2 | 0) | 0) >> 2] = $394; + $408 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float__28_29($8 + 96 | 0 | 0) | 0) + 8 | 0) >> 2])); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + (((HEAP32[($8 + 88 | 0) >> 2] | 0) + 2 | 0) << 2 | 0) | 0) >> 2] = $408; + btMatrix3x3__getColumn_28int_29_20const($8 + 72 | 0 | 0, btTransform__getBasis_28_29($8 + 256 | 0 | 0) | 0 | 0, 2 | 0); + btVector3__cross_28btVector3_20const__29_20const($8 + 56 | 0 | 0, $8 + 128 | 0 | 0, $8 + 72 | 0 | 0); + $442 = Math_fround(Math_fround(HEAPF32[($8 + 144 | 0) >> 2]) * Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 56 | 0 | 0, $8 + 112 | 0 | 0))); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($8 + 92 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = $442; + $457 = Math_fround(Math_fround(HEAPF32[($8 + 144 | 0) >> 2]) * Math_fround(btVector3__dot_28btVector3_20const__29_20const($8 + 56 | 0 | 0, $8 + 96 | 0 | 0))); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($8 + 88 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = $457; + HEAP32[($8 + 52 | 0) >> 2] = 4; + HEAPF32[($8 + 44 | 0) >> 2] = Math_fround(0 | 0); + HEAP32[($8 + 40 | 0) >> 2] = 0; + label$8 : { + if (!(btHingeConstraint__getSolveLimit_28_29($9 | 0) | 0)) { + break label$8 + } + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(Math_fround(btAngularLimit__getCorrection_28_29_20const($9 + 688 | 0 | 0)) * Math_fround(HEAPF32[($9 + 732 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + HEAP32[($8 + 40 | 0) >> 2] = Math_fround(HEAPF32[($8 + 44 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0 ? 1 : 2; + } + (wasm2js_i32$0 = $8, wasm2js_i32$1 = (btHingeConstraint__getEnableAngularMotor_28_29($9 | 0) | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 39 | 0) >> 0] = wasm2js_i32$1; + label$9 : { + label$10 : { + if (HEAP32[($8 + 40 | 0) >> 2] | 0) { + break label$10 + } + if (!((HEAPU8[($8 + 39 | 0) >> 0] | 0) & 1 | 0)) { + break label$9 + } + } + HEAP32[($8 + 52 | 0) >> 2] = (HEAP32[($8 + 52 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($8 + 48 | 0) >> 2] = Math_imul(HEAP32[($8 + 52 | 0) >> 2] | 0, HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0); + $501 = Math_fround(HEAPF32[(btVector3__operator_20float__28_29($8 + 128 | 0 | 0) | 0) >> 2]); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + (((HEAP32[($8 + 48 | 0) >> 2] | 0) + 0 | 0) << 2 | 0) | 0) >> 2] = $501; + $514 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($8 + 128 | 0 | 0) | 0) + 4 | 0) >> 2]); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + (((HEAP32[($8 + 48 | 0) >> 2] | 0) + 1 | 0) << 2 | 0) | 0) >> 2] = $514; + $527 = Math_fround(HEAPF32[((btVector3__operator_20float__28_29($8 + 128 | 0 | 0) | 0) + 8 | 0) >> 2]); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + (((HEAP32[($8 + 48 | 0) >> 2] | 0) + 2 | 0) << 2 | 0) | 0) >> 2] = $527; + $541 = Math_fround(-Math_fround(HEAPF32[(btVector3__operator_20float__28_29($8 + 128 | 0 | 0) | 0) >> 2])); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + (((HEAP32[($8 + 48 | 0) >> 2] | 0) + 0 | 0) << 2 | 0) | 0) >> 2] = $541; + $555 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float__28_29($8 + 128 | 0 | 0) | 0) + 4 | 0) >> 2])); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + (((HEAP32[($8 + 48 | 0) >> 2] | 0) + 1 | 0) << 2 | 0) | 0) >> 2] = $555; + $569 = Math_fround(-Math_fround(HEAPF32[((btVector3__operator_20float__28_29($8 + 128 | 0 | 0) | 0) + 8 | 0) >> 2])); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + (((HEAP32[($8 + 48 | 0) >> 2] | 0) + 2 | 0) << 2 | 0) | 0) >> 2] = $569; + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btHingeConstraint__getLowerLimit_28_29_20const($9 | 0))), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btHingeConstraint__getUpperLimit_28_29_20const($9 | 0))), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + label$11 : { + if (!(HEAP32[($8 + 40 | 0) >> 2] | 0)) { + break label$11 + } + if (!(Math_fround(HEAPF32[($8 + 32 | 0) >> 2]) == Math_fround(HEAPF32[($8 + 28 | 0) >> 2]) & 1 | 0)) { + break label$11 + } + HEAP8[($8 + 39 | 0) >> 0] = 0; + } + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(0 | 0); + label$12 : { + label$13 : { + if (!((HEAP32[($9 + 748 | 0) >> 2] | 0) & 2 | 0)) { + break label$13 + } + $599 = Math_fround(HEAPF32[($9 + 764 | 0) >> 2]); + break label$12; + } + $599 = Math_fround(HEAPF32[($8 + 148 | 0) >> 2]); + } + HEAPF32[($8 + 24 | 0) >> 2] = $599; + label$14 : { + if (!((HEAPU8[($8 + 39 | 0) >> 0] | 0) & 1 | 0)) { + break label$14 + } + label$15 : { + if (!((HEAP32[($9 + 748 | 0) >> 2] | 0) & 4 | 0)) { + break label$15 + } + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($9 + 752 | 0) >> 2]); + } + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btTypedConstraint__getMotorFactor_28float_2c_20float_2c_20float_2c_20float_2c_20float_29($9 | 0, Math_fround(Math_fround(HEAPF32[($9 + 728 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($8 + 32 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($8 + 28 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($9 + 680 | 0) >> 2])), Math_fround(Math_fround(Math_fround(HEAPF32[(HEAP32[($8 + 408 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[($8 + 24 | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + $633 = (HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0; + HEAPF32[$633 >> 2] = Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[($8 + 20 | 0) >> 2]) * Math_fround(HEAPF32[($9 + 680 | 0) >> 2])) * Math_fround(HEAPF32[($9 + 732 | 0) >> 2])) + Math_fround(HEAPF32[$633 >> 2])); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[($9 + 684 | 0) >> 2])); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($9 + 684 | 0) >> 2]); + } + label$16 : { + if (!(HEAP32[($8 + 40 | 0) >> 2] | 0)) { + break label$16 + } + HEAPF32[($8 + 144 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[(HEAP32[($8 + 408 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[($8 + 24 | 0) >> 2])); + $664 = (HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0; + HEAPF32[$664 >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($8 + 144 | 0) >> 2]) * Math_fround(HEAPF32[($8 + 44 | 0) >> 2])) + Math_fround(HEAPF32[$664 >> 2])); + label$17 : { + if (!((HEAP32[($9 + 748 | 0) >> 2] | 0) & 1 | 0)) { + break label$17 + } + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($9 + 760 | 0) >> 2]); + } + label$18 : { + label$19 : { + if (!(Math_fround(HEAPF32[($8 + 32 | 0) >> 2]) == Math_fround(HEAPF32[($8 + 28 | 0) >> 2]) & 1 | 0)) { + break label$19 + } + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(-3402823466385288598117041.0e14); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(3402823466385288598117041.0e14); + break label$18; + } + label$20 : { + label$21 : { + if (!((HEAP32[($8 + 40 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$21 + } + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(3402823466385288598117041.0e14); + break label$20; + } + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(-3402823466385288598117041.0e14); + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(0 | 0); + } + } + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btAngularLimit__getRelaxationFactor_28_29_20const($9 + 688 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + label$22 : { + if (!(Math_fround(HEAPF32[($8 + 16 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$22 + } + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($8 + 396 | 0) >> 2] | 0 | 0, $8 + 128 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + $752 = Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($8 + 392 | 0) >> 2] | 0 | 0, $8 + 128 | 0 | 0)); + HEAPF32[($8 + 12 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($8 + 12 | 0) >> 2]) - $752); + label$23 : { + label$24 : { + if (!((HEAP32[($8 + 40 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$24 + } + label$25 : { + if (!(Math_fround(HEAPF32[($8 + 12 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$25 + } + HEAPF32[($8 + 8 | 0) >> 2] = Math_fround(Math_fround(-Math_fround(HEAPF32[($8 + 16 | 0) >> 2])) * Math_fround(HEAPF32[($8 + 12 | 0) >> 2])); + label$26 : { + if (!(Math_fround(HEAPF32[($8 + 8 | 0) >> 2]) > Math_fround(HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) & 1 | 0)) { + break label$26 + } + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($8 + 8 | 0) >> 2]); + } + } + break label$23; + } + label$27 : { + if (!(Math_fround(HEAPF32[($8 + 12 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$27 + } + HEAPF32[($8 + 4 | 0) >> 2] = Math_fround(Math_fround(-Math_fround(HEAPF32[($8 + 16 | 0) >> 2])) * Math_fround(HEAPF32[($8 + 12 | 0) >> 2])); + label$28 : { + if (!(Math_fround(HEAPF32[($8 + 4 | 0) >> 2]) < Math_fround(HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) & 1 | 0)) { + break label$28 + } + HEAPF32[((HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($8 + 4 | 0) >> 2]); + } + } + } + } + $820 = Math_fround(btAngularLimit__getBiasFactor_28_29_20const($9 + 688 | 0 | 0)); + $826 = (HEAP32[((HEAP32[($8 + 408 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + ((HEAP32[($8 + 48 | 0) >> 2] | 0) << 2 | 0) | 0; + HEAPF32[$826 >> 2] = Math_fround(Math_fround(HEAPF32[$826 >> 2]) * $820); + } + } + __stack_pointer = $8 + 416 | 0; + return; + } + + function btAngularLimit__getCorrection_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 20 | 0) >> 2])); + } + + function btHingeConstraint__getLowerLimit_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $7 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $7 = Math_fround(btAngularLimit__getLow_28_29_20const((HEAP32[($3 + 12 | 0) >> 2] | 0) + 688 | 0 | 0)); + __stack_pointer = $3 + 16 | 0; + return Math_fround($7); + } + + function btHingeConstraint__getUpperLimit_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $7 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $7 = Math_fround(btAngularLimit__getHigh_28_29_20const((HEAP32[($3 + 12 | 0) >> 2] | 0) + 688 | 0 | 0)); + __stack_pointer = $3 + 16 | 0; + return Math_fround($7); + } + + function btAngularLimit__getRelaxationFactor_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2])); + } + + function btAngularLimit__getBiasFactor_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2])); + } + + function btVector3__getSkewSymmetricMatrix_28btVector3__2c_20btVector3__2c_20btVector3__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $8 = 0, $21 = 0, $22 = 0, $34 = 0, $38 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 48 | 0; + __stack_pointer = $6; + HEAP32[($6 + 44 | 0) >> 2] = $0; + HEAP32[($6 + 40 | 0) >> 2] = $1; + HEAP32[($6 + 36 | 0) >> 2] = $2; + HEAP32[($6 + 32 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 44 | 0) >> 2] | 0; + $8 = HEAP32[($6 + 40 | 0) >> 2] | 0; + HEAPF32[($6 + 28 | 0) >> 2] = Math_fround(0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(-Math_fround(HEAPF32[(btVector3__z_28_29_20const($7 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_f32$0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($8 | 0, $6 + 28 | 0 | 0, $6 + 24 | 0 | 0, btVector3__y_28_29_20const($7 | 0) | 0 | 0); + $21 = HEAP32[($6 + 36 | 0) >> 2] | 0; + $22 = btVector3__z_28_29_20const($7 | 0) | 0; + HEAPF32[($6 + 20 | 0) >> 2] = Math_fround(0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(-Math_fround(HEAPF32[(btVector3__x_28_29_20const($7 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($21 | 0, $22 | 0, $6 + 20 | 0 | 0, $6 + 16 | 0 | 0); + $34 = HEAP32[($6 + 32 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(-Math_fround(HEAPF32[(btVector3__y_28_29_20const($7 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + $38 = btVector3__x_28_29_20const($7 | 0) | 0; + HEAPF32[($6 + 8 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($34 | 0, $6 + 12 | 0 | 0, $38 | 0, $6 + 8 | 0 | 0); + __stack_pointer = $6 + 48 | 0; + return; + } + + function btHingeConstraint__setFrames_28btTransform_20const__2c_20btTransform_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btTransform__operator__28btTransform_20const__29($6 + 552 | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0; + btTransform__operator__28btTransform_20const__29($6 + 616 | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($6); + __stack_pointer = $5 + 16 | 0; + return; + } + + function __cxx_global_var_init_2_1() { + var $2 = 0; + $2 = __stack_pointer - 16 | 0; + __stack_pointer = $2; + HEAPF32[($2 + 12 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($2 + 8 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($2 + 4 | 0) >> 2] = Math_fround(1.0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(115408 | 0, $2 + 12 | 0 | 0, $2 + 8 | 0 | 0, $2 + 4 | 0 | 0) | 0; + __stack_pointer = $2 + 16 | 0; + return; + } + + function btHingeConstraint__setMotorTarget_28float_2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + var $5 = 0, $6 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAPF32[($5 + 24 | 0) >> 2] = $1; + HEAPF32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + btAngularLimit__fit_28float__29_20const($6 + 688 | 0 | 0, $5 + 24 | 0 | 0); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btHingeConstraint__getHingeAngle_28btTransform_20const__2c_20btTransform_20const__29($6 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($6 + 32 | 0) >> 2] | 0 | 0) | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 24 | 0) >> 2]) - Math_fround(HEAPF32[($5 + 16 | 0) >> 2])); + HEAPF32[($6 + 680 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 12 | 0) >> 2]) / Math_fround(HEAPF32[($5 + 20 | 0) >> 2])); + __stack_pointer = $5 + 32 | 0; + return; + } + + function btHingeConstraint__setParam_28int_2c_20float_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = $3 | 0; + var $6 = 0, $7 = 0, $24 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAPF32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + label$3 : { + if ((HEAP32[$6 >> 2] | 0 | 0) == (-1 | 0) & 1 | 0) { + break label$3 + } + if (!((HEAP32[$6 >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$2 + } + } + $24 = (HEAP32[($6 + 8 | 0) >> 2] | 0) + -1 | 0; + label$4 : { + label$5 : { + switch ($24 | 0) { + case 1: + HEAPF32[($7 + 764 | 0) >> 2] = Math_fround(HEAPF32[($6 + 4 | 0) >> 2]); + HEAP32[($7 + 748 | 0) >> 2] = HEAP32[($7 + 748 | 0) >> 2] | 0 | 2 | 0; + break label$4; + case 3: + HEAPF32[($7 + 760 | 0) >> 2] = Math_fround(HEAPF32[($6 + 4 | 0) >> 2]); + HEAP32[($7 + 748 | 0) >> 2] = HEAP32[($7 + 748 | 0) >> 2] | 0 | 1 | 0; + break label$4; + case 2: + HEAPF32[($7 + 752 | 0) >> 2] = Math_fround(HEAPF32[($6 + 4 | 0) >> 2]); + HEAP32[($7 + 748 | 0) >> 2] = HEAP32[($7 + 748 | 0) >> 2] | 0 | 4 | 0; + break label$4; + case 0: + HEAPF32[($7 + 756 | 0) >> 2] = Math_fround(HEAPF32[($6 + 4 | 0) >> 2]); + HEAP32[($7 + 748 | 0) >> 2] = HEAP32[($7 + 748 | 0) >> 2] | 0 | 8 | 0; + break label$4; + default: + break label$5; + }; + } + __assert_fail(86177 | 0, 71702 | 0, 1076 | 0, 77248 | 0); + wasm2js_trap(); + } + break label$1; + } + __assert_fail(86177 | 0, 71702 | 0, 1081 | 0, 77248 | 0); + wasm2js_trap(); + } + __stack_pointer = $6 + 16 | 0; + return; + } + + function btHingeConstraint__getParam_28int_2c_20int_29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $25 = 0, $67 = Math_fround(0); + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAPF32[$5 >> 2] = Math_fround(0 | 0); + label$1 : { + label$2 : { + label$3 : { + if ((HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) == (-1 | 0) & 1 | 0) { + break label$3 + } + if (!((HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$2 + } + } + $25 = (HEAP32[($5 + 8 | 0) >> 2] | 0) + -1 | 0; + label$4 : { + label$5 : { + switch ($25 | 0) { + case 1: + label$10 : { + if ((HEAP32[($6 + 748 | 0) >> 2] | 0) & 2 | 0) { + break label$10 + } + __assert_fail(84189 | 0, 71702 | 0, 1094 | 0, 77257 | 0); + wasm2js_trap(); + } + HEAPF32[$5 >> 2] = Math_fround(HEAPF32[($6 + 764 | 0) >> 2]); + break label$4; + case 3: + label$11 : { + if ((HEAP32[($6 + 748 | 0) >> 2] | 0) & 1 | 0) { + break label$11 + } + __assert_fail(84223 | 0, 71702 | 0, 1098 | 0, 77257 | 0); + wasm2js_trap(); + } + HEAPF32[$5 >> 2] = Math_fround(HEAPF32[($6 + 760 | 0) >> 2]); + break label$4; + case 2: + label$12 : { + if ((HEAP32[($6 + 748 | 0) >> 2] | 0) & 4 | 0) { + break label$12 + } + __assert_fail(84320 | 0, 71702 | 0, 1102 | 0, 77257 | 0); + wasm2js_trap(); + } + HEAPF32[$5 >> 2] = Math_fround(HEAPF32[($6 + 752 | 0) >> 2]); + break label$4; + case 0: + label$13 : { + if ((HEAP32[($6 + 748 | 0) >> 2] | 0) & 8 | 0) { + break label$13 + } + __assert_fail(84286 | 0, 71702 | 0, 1106 | 0, 77257 | 0); + wasm2js_trap(); + } + HEAPF32[$5 >> 2] = Math_fround(HEAPF32[($6 + 756 | 0) >> 2]); + break label$4; + default: + break label$5; + }; + } + __assert_fail(86177 | 0, 71702 | 0, 1110 | 0, 77257 | 0); + wasm2js_trap(); + } + break label$1; + } + __assert_fail(86177 | 0, 71702 | 0, 1115 | 0, 77257 | 0); + wasm2js_trap(); + } + $67 = Math_fround(HEAPF32[$5 >> 2]); + __stack_pointer = $5 + 16 | 0; + return Math_fround($67); + } + + function btHingeConstraint___btHingeConstraint_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btTypedConstraint___btTypedConstraint_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btHingeConstraint___btHingeConstraint_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btHingeConstraint___btHingeConstraint_28_29($4 | 0) | 0; + btHingeConstraint__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btHingeConstraint__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btHingeConstraint__calculateSerializeBufferSize_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 220 | 0; + } + + function btHingeConstraint__serialize_28void__2c_20btSerializer__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $38 = Math_fround(0), $42 = Math_fround(0), $46 = Math_fround(0), $50 = Math_fround(0), $54 = Math_fround(0); + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + btTypedConstraint__serialize_28void__2c_20btSerializer__29_20const($6 | 0, HEAP32[$5 >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0; + btTransform__serialize_28btTransformFloatData__29_20const($6 + 552 | 0 | 0, (HEAP32[$5 >> 2] | 0) + 52 | 0 | 0); + btTransform__serialize_28btTransformFloatData__29_20const($6 + 616 | 0 | 0, (HEAP32[$5 >> 2] | 0) + 116 | 0 | 0); + HEAP32[((HEAP32[$5 >> 2] | 0) + 184 | 0) >> 2] = (HEAPU8[($6 + 736 | 0) >> 0] | 0) & 1 | 0; + HEAP32[((HEAP32[$5 >> 2] | 0) + 188 | 0) >> 2] = (HEAPU8[($6 + 737 | 0) >> 0] | 0) & 1 | 0; + HEAPF32[((HEAP32[$5 >> 2] | 0) + 196 | 0) >> 2] = Math_fround(HEAPF32[($6 + 684 | 0) >> 2]); + HEAPF32[((HEAP32[$5 >> 2] | 0) + 192 | 0) >> 2] = Math_fround(HEAPF32[($6 + 680 | 0) >> 2]); + HEAP32[((HEAP32[$5 >> 2] | 0) + 180 | 0) >> 2] = (HEAPU8[($6 + 740 | 0) >> 0] | 0) & 1 | 0; + $38 = Math_fround(btAngularLimit__getLow_28_29_20const($6 + 688 | 0 | 0)); + HEAPF32[((HEAP32[$5 >> 2] | 0) + 200 | 0) >> 2] = $38; + $42 = Math_fround(btAngularLimit__getHigh_28_29_20const($6 + 688 | 0 | 0)); + HEAPF32[((HEAP32[$5 >> 2] | 0) + 204 | 0) >> 2] = $42; + $46 = Math_fround(btAngularLimit__getSoftness_28_29_20const($6 + 688 | 0 | 0)); + HEAPF32[((HEAP32[$5 >> 2] | 0) + 208 | 0) >> 2] = $46; + $50 = Math_fround(btAngularLimit__getBiasFactor_28_29_20const($6 + 688 | 0 | 0)); + HEAPF32[((HEAP32[$5 >> 2] | 0) + 212 | 0) >> 2] = $50; + $54 = Math_fround(btAngularLimit__getRelaxationFactor_28_29_20const($6 + 688 | 0 | 0)); + HEAPF32[((HEAP32[$5 >> 2] | 0) + 216 | 0) >> 2] = $54; + __stack_pointer = $5 + 16 | 0; + return 83264 | 0; + } + + function btAngularLimit__getSoftness_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2])); + } + + function btHingeConstraint__getFlags_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 748 | 0) >> 2] | 0 | 0; + } + + function _GLOBAL__sub_I_btHingeConstraint_cpp() { + __cxx_global_var_init_70(); + __cxx_global_var_init_2_1(); + return; + } + + function __cxx_global_var_init_71() { + btInfMaskConverter__btInfMaskConverter_28int_29(115424 | 0, 2139095040 | 0) | 0; + return; + } + + function btPoint2PointConstraint__btPoint2PointConstraint_28btRigidBody__2c_20btRigidBody__2c_20btVector3_20const__2c_20btVector3_20const__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $8 = 0, $16 = 0, $19 = 0, $20 = 0, $22 = 0, $29 = 0, $32 = 0, $37 = 0, $40 = 0, $18 = 0, $116 = 0, $126 = 0, $135 = 0, $145 = 0, $48 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 24 | 0) >> 2] = $0; + HEAP32[($7 + 20 | 0) >> 2] = $1; + HEAP32[($7 + 16 | 0) >> 2] = $2; + HEAP32[($7 + 12 | 0) >> 2] = $3; + HEAP32[($7 + 8 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 24 | 0) >> 2] | 0; + HEAP32[($7 + 28 | 0) >> 2] = $8; + btTypedConstraint__btTypedConstraint_28btTypedConstraintType_2c_20btRigidBody__2c_20btRigidBody__29($8 | 0, 3 | 0, HEAP32[($7 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7 + 16 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$8 >> 2] = 102276 + 8 | 0; + $16 = $8 + 48 | 0; + $18 = $16 + 252 | 0; + $19 = $16; + label$1 : while (1) { + $20 = $19; + btJacobianEntry__btJacobianEntry_28_29($20 | 0) | 0; + $22 = $20 + 84 | 0; + $19 = $22; + if (!(($22 | 0) == ($18 | 0) & 1 | 0)) { + continue label$1 + } + break label$1; + }; + $29 = $8 + 300 | 0; + i64toi32_i32$2 = HEAP32[($7 + 12 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $116 = i64toi32_i32$0; + i64toi32_i32$0 = $29; + HEAP32[i64toi32_i32$0 >> 2] = $116; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $32 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $32 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $126 = i64toi32_i32$1; + i64toi32_i32$1 = $29 + $32 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $126; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $37 = $8 + 316 | 0; + i64toi32_i32$2 = HEAP32[($7 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $135 = i64toi32_i32$0; + i64toi32_i32$0 = $37; + HEAP32[i64toi32_i32$0 >> 2] = $135; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $40 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $40 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $145 = i64toi32_i32$1; + i64toi32_i32$1 = $37 + $40 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $145; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($8 + 332 | 0) >> 2] = 0; + HEAP8[($8 + 344 | 0) >> 0] = 0; + btConstraintSetting__btConstraintSetting_28_29($8 + 348 | 0 | 0) | 0; + $48 = HEAP32[($7 + 28 | 0) >> 2] | 0; + __stack_pointer = $7 + 32 | 0; + return $48 | 0; + } + + function btConstraintSetting__btConstraintSetting_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAPF32[$4 >> 2] = Math_fround(.30000001192092896); + HEAPF32[($4 + 4 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($4 + 8 | 0) >> 2] = Math_fround(0 | 0); + return $4 | 0; + } + + function btPoint2PointConstraint__buildJacobian_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $47 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $3 = __stack_pointer - 208 | 0; + __stack_pointer = $3; + HEAP32[($3 + 204 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 204 | 0) >> 2] | 0; + HEAPF32[($4 + 36 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 184 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 180 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($3 + 176 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 188 | 0 | 0, $3 + 184 | 0 | 0, $3 + 180 | 0 | 0, $3 + 176 | 0 | 0) | 0; + HEAP32[($3 + 172 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3 + 172 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($3 + 188 | 0 | 0) | 0) + ((HEAP32[($3 + 172 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = Math_fround(1.0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $47 = ($4 + 48 | 0) + Math_imul(HEAP32[($3 + 172 | 0) >> 2] | 0, 84) | 0; + btMatrix3x3__transpose_28_29_20const($3 + 124 | 0 | 0, btTransform__getBasis_28_29_20const(btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($4 + 28 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + btMatrix3x3__transpose_28_29_20const($3 + 76 | 0 | 0, btTransform__getBasis_28_29_20const(btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($4 + 32 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($3 + 44 | 0 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($4 + 28 | 0) >> 2] | 0 | 0) | 0 | 0, $4 + 300 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($3 + 60 | 0 | 0, $3 + 44 | 0 | 0, btRigidBody__getCenterOfMassPosition_28_29_20const(HEAP32[($4 + 28 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($3 + 12 | 0 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($4 + 32 | 0) >> 2] | 0 | 0) | 0 | 0, $4 + 316 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($3 + 28 | 0 | 0, $3 + 12 | 0 | 0, btRigidBody__getCenterOfMassPosition_28_29_20const(HEAP32[($4 + 32 | 0) >> 2] | 0 | 0) | 0 | 0); + btJacobianEntry__btJacobianEntry_28btMatrix3x3_20const__2c_20btMatrix3x3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20btVector3_20const__2c_20float_29($47 | 0, $3 + 124 | 0 | 0, $3 + 76 | 0 | 0, $3 + 60 | 0 | 0, $3 + 28 | 0 | 0, $3 + 188 | 0 | 0, btRigidBody__getInvInertiaDiagLocal_28_29_20const(HEAP32[($4 + 28 | 0) >> 2] | 0 | 0) | 0 | 0, Math_fround(Math_fround(btRigidBody__getInvMass_28_29_20const(HEAP32[($4 + 28 | 0) >> 2] | 0 | 0))), btRigidBody__getInvInertiaDiagLocal_28_29_20const(HEAP32[($4 + 32 | 0) >> 2] | 0 | 0) | 0 | 0, Math_fround(Math_fround(btRigidBody__getInvMass_28_29_20const(HEAP32[($4 + 32 | 0) >> 2] | 0 | 0)))) | 0; + (wasm2js_i32$0 = (btVector3__operator_20float__28_29($3 + 188 | 0 | 0) | 0) + ((HEAP32[($3 + 172 | 0) >> 2] | 0) << 2 | 0) | 0, wasm2js_f32$0 = Math_fround(0 | 0)), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAP32[($3 + 172 | 0) >> 2] = (HEAP32[($3 + 172 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $3 + 208 | 0; + return; + } + + function btPoint2PointConstraint__getInfo1_28btTypedConstraint__btConstraintInfo1__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btPoint2PointConstraint__getInfo1NonVirtual_28btTypedConstraint__btConstraintInfo1__29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btPoint2PointConstraint__getInfo1NonVirtual_28btTypedConstraint__btConstraintInfo1__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!((HEAPU8[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 344 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] = 0; + HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 0; + break label$1; + } + HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] = 3; + HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + } + return; + } + + function btPoint2PointConstraint__getInfo2_28btTypedConstraint__btConstraintInfo2__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btPoint2PointConstraint__getInfo2NonVirtual_28btTypedConstraint__btConstraintInfo2__2c_20btTransform_20const__2c_20btTransform_20const__29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) | 0 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btPoint2PointConstraint__getInfo2NonVirtual_28btTypedConstraint__btConstraintInfo2__2c_20btTransform_20const__2c_20btTransform_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $135 = Math_fround(0), $151 = Math_fround(0), $179 = Math_fround(0), $182 = 0; + $6 = __stack_pointer - 112 | 0; + __stack_pointer = $6; + HEAP32[($6 + 108 | 0) >> 2] = $0; + HEAP32[($6 + 104 | 0) >> 2] = $1; + HEAP32[($6 + 100 | 0) >> 2] = $2; + HEAP32[($6 + 96 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 108 | 0) >> 2] | 0; + label$1 : { + if (!((HEAPU8[($7 + 344 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + __assert_fail(81148 | 0, 71573 | 0, 99 | 0, 77382 | 0); + wasm2js_trap(); + } + HEAPF32[(HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] = Math_fround(1.0); + HEAPF32[((HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + (((HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + 1 | 0) << 2 | 0) | 0) >> 2] = Math_fround(1.0); + HEAPF32[((HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + ((((HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) << 1 | 0) + 2 | 0) << 2 | 0) | 0) >> 2] = Math_fround(1.0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($6 + 80 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($6 + 100 | 0) >> 2] | 0 | 0) | 0 | 0, btPoint2PointConstraint__getPivotInA_28_29_20const($7 | 0) | 0 | 0); + HEAP32[($6 + 76 | 0) >> 2] = HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + HEAP32[($6 + 72 | 0) >> 2] = (HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + ((HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) << 2 | 0) | 0; + HEAP32[($6 + 68 | 0) >> 2] = (HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + (((HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) << 1 | 0) << 2 | 0) | 0; + operator__28btVector3_20const__29($6 + 52 | 0 | 0, $6 + 80 | 0 | 0); + btVector3__getSkewSymmetricMatrix_28btVector3__2c_20btVector3__2c_20btVector3__29_20const($6 + 52 | 0 | 0, HEAP32[($6 + 76 | 0) >> 2] | 0 | 0, HEAP32[($6 + 72 | 0) >> 2] | 0 | 0, HEAP32[($6 + 68 | 0) >> 2] | 0 | 0); + HEAPF32[(HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] = Math_fround(-1.0); + HEAPF32[((HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + (((HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + 1 | 0) << 2 | 0) | 0) >> 2] = Math_fround(-1.0); + HEAPF32[((HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + ((((HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) << 1 | 0) + 2 | 0) << 2 | 0) | 0) >> 2] = Math_fround(-1.0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($6 + 36 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($6 + 96 | 0) >> 2] | 0 | 0) | 0 | 0, btPoint2PointConstraint__getPivotInB_28_29_20const($7 | 0) | 0 | 0); + HEAP32[($6 + 32 | 0) >> 2] = HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0; + HEAP32[($6 + 28 | 0) >> 2] = (HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + ((HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) << 2 | 0) | 0; + HEAP32[($6 + 24 | 0) >> 2] = (HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + (((HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) << 1 | 0) << 2 | 0) | 0; + btVector3__getSkewSymmetricMatrix_28btVector3__2c_20btVector3__2c_20btVector3__29_20const($6 + 36 | 0 | 0, HEAP32[($6 + 32 | 0) >> 2] | 0 | 0, HEAP32[($6 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0); + label$2 : { + label$3 : { + if (!((HEAP32[($7 + 332 | 0) >> 2] | 0) & 1 | 0)) { + break label$3 + } + $135 = Math_fround(HEAPF32[($7 + 336 | 0) >> 2]); + break label$2; + } + $135 = Math_fround(HEAPF32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 4 | 0) >> 2]); + } + HEAPF32[($6 + 20 | 0) >> 2] = $135; + HEAPF32[($6 + 16 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[(HEAP32[($6 + 104 | 0) >> 2] | 0) >> 2]) * Math_fround(HEAPF32[($6 + 20 | 0) >> 2])); + HEAP32[($6 + 12 | 0) >> 2] = 0; + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$4 + } + $151 = Math_fround(HEAPF32[($6 + 16 | 0) >> 2]); + $179 = Math_fround(Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 36 | 0 | 0) | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]) + Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(btTransform__getOrigin_28_29_20const(HEAP32[($6 + 96 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])) - Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 80 | 0 | 0) | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2])); + $182 = btVector3__operator_20float_20const__28_29_20const(btTransform__getOrigin_28_29_20const(HEAP32[($6 + 100 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + HEAPF32[((HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + (Math_imul(HEAP32[($6 + 12 | 0) >> 2] | 0, HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround($151 * Math_fround($179 - Math_fround(HEAPF32[($182 + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]))); + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$5; + }; + } + label$6 : { + if (!((HEAP32[($7 + 332 | 0) >> 2] | 0) & 2 | 0)) { + break label$6 + } + HEAP32[($6 + 12 | 0) >> 2] = 0; + label$7 : { + label$8 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$7 + } + HEAPF32[((HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) + (Math_imul(HEAP32[($6 + 12 | 0) >> 2] | 0, HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($7 + 340 | 0) >> 2]); + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$8; + }; + } + } + HEAPF32[($6 + 8 | 0) >> 2] = Math_fround(HEAPF32[($7 + 356 | 0) >> 2]); + HEAP32[($6 + 12 | 0) >> 2] = 0; + label$9 : { + label$10 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (3 | 0) & 1 | 0)) { + break label$9 + } + label$11 : { + if (!(Math_fround(HEAPF32[($7 + 356 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$11 + } + HEAPF32[((HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + (Math_imul(HEAP32[($6 + 12 | 0) >> 2] | 0, HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[($6 + 8 | 0) >> 2])); + HEAPF32[((HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + (Math_imul(HEAP32[($6 + 12 | 0) >> 2] | 0, HEAP32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = Math_fround(HEAPF32[($6 + 8 | 0) >> 2]); + } + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$10; + }; + } + HEAPF32[((HEAP32[($6 + 104 | 0) >> 2] | 0) + 48 | 0) >> 2] = Math_fround(HEAPF32[($7 + 352 | 0) >> 2]); + __stack_pointer = $6 + 112 | 0; + return; + } + + function btPoint2PointConstraint__getPivotInA_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 300 | 0 | 0; + } + + function btPoint2PointConstraint__getPivotInB_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 316 | 0 | 0; + } + + function btPoint2PointConstraint__setParam_28int_2c_20float_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = $3 | 0; + var $6 = 0, $7 = 0, $21 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAPF32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[$6 >> 2] | 0 | 0) != (-1 | 0) & 1 | 0)) { + break label$1 + } + __assert_fail(86177 | 0, 71573 | 0, 179 | 0, 77248 | 0); + wasm2js_trap(); + } + $21 = (HEAP32[($6 + 8 | 0) >> 2] | 0) + -1 | 0; + label$2 : { + label$3 : { + switch ($21 | 0) { + case 0: + case 1: + HEAPF32[($7 + 336 | 0) >> 2] = Math_fround(HEAPF32[($6 + 4 | 0) >> 2]); + HEAP32[($7 + 332 | 0) >> 2] = HEAP32[($7 + 332 | 0) >> 2] | 0 | 1 | 0; + break label$2; + case 2: + case 3: + HEAPF32[($7 + 340 | 0) >> 2] = Math_fround(HEAPF32[($6 + 4 | 0) >> 2]); + HEAP32[($7 + 332 | 0) >> 2] = HEAP32[($7 + 332 | 0) >> 2] | 0 | 2 | 0; + break label$2; + default: + break label$3; + }; + } + __assert_fail(86177 | 0, 71573 | 0, 196 | 0, 77248 | 0); + wasm2js_trap(); + } + __stack_pointer = $6 + 16 | 0; + return; + } + + function btPoint2PointConstraint__getParam_28int_2c_20int_29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $21 = 0, $43 = Math_fround(0); + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAPF32[$5 >> 2] = Math_fround(3402823466385288598117041.0e14); + label$1 : { + if (!((HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) != (-1 | 0) & 1 | 0)) { + break label$1 + } + __assert_fail(86177 | 0, 71573 | 0, 207 | 0, 77257 | 0); + wasm2js_trap(); + } + $21 = (HEAP32[($5 + 8 | 0) >> 2] | 0) + -1 | 0; + label$2 : { + label$3 : { + switch ($21 | 0) { + case 0: + case 1: + label$6 : { + if ((HEAP32[($6 + 332 | 0) >> 2] | 0) & 1 | 0) { + break label$6 + } + __assert_fail(84162 | 0, 71573 | 0, 215 | 0, 77257 | 0); + wasm2js_trap(); + } + HEAPF32[$5 >> 2] = Math_fround(HEAPF32[($6 + 336 | 0) >> 2]); + break label$2; + case 2: + case 3: + label$7 : { + if ((HEAP32[($6 + 332 | 0) >> 2] | 0) & 2 | 0) { + break label$7 + } + __assert_fail(84354 | 0, 71573 | 0, 220 | 0, 77257 | 0); + wasm2js_trap(); + } + HEAPF32[$5 >> 2] = Math_fround(HEAPF32[($6 + 340 | 0) >> 2]); + break label$2; + default: + break label$3; + }; + } + __assert_fail(86177 | 0, 71573 | 0, 224 | 0, 77257 | 0); + wasm2js_trap(); + } + $43 = Math_fround(HEAPF32[$5 >> 2]); + __stack_pointer = $5 + 16 | 0; + return Math_fround($43); + } + + function btPoint2PointConstraint___btPoint2PointConstraint_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btTypedConstraint___btTypedConstraint_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btPoint2PointConstraint___btPoint2PointConstraint_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btPoint2PointConstraint___btPoint2PointConstraint_28_29($4 | 0) | 0; + btPoint2PointConstraint__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btPoint2PointConstraint__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btPoint2PointConstraint__calculateSerializeBufferSize_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 84 | 0; + } + + function btPoint2PointConstraint__serialize_28void__2c_20btSerializer__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + btTypedConstraint__serialize_28void__2c_20btSerializer__29_20const($6 | 0, HEAP32[$5 >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0; + btVector3__serialize_28btVector3FloatData__29_20const($6 + 300 | 0 | 0, (HEAP32[$5 >> 2] | 0) + 52 | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const($6 + 316 | 0 | 0, (HEAP32[$5 >> 2] | 0) + 68 | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return 83231 | 0; + } + + function btPoint2PointConstraint__getFlags_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 332 | 0) >> 2] | 0 | 0; + } + + function _GLOBAL__sub_I_btPoint2PointConstraint_cpp() { + __cxx_global_var_init_71(); + return; + } + + function __cxx_global_var_init_72() { + btInfMaskConverter__btInfMaskConverter_28int_29(115428 | 0, 2139095040 | 0) | 0; + return; + } + + function btSequentialImpulseConstraintSolver__resolveSingleConstraintRowGeneric_28btSolverBody__2c_20btSolverBody__2c_20btSolverConstraint_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $12 = Math_fround(0); + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $12 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + 212 | 0) >> 2] | 0 | 0](HEAP32[($6 + 8 | 0) >> 2] | 0, HEAP32[($6 + 4 | 0) >> 2] | 0, HEAP32[$6 >> 2] | 0)); + __stack_pointer = $6 + 16 | 0; + return Math_fround($12); + } + + function btSequentialImpulseConstraintSolver__resolveSingleConstraintRowLowerLimit_28btSolverBody__2c_20btSolverBody__2c_20btSolverConstraint_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $12 = Math_fround(0); + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $12 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + 216 | 0) >> 2] | 0 | 0](HEAP32[($6 + 8 | 0) >> 2] | 0, HEAP32[($6 + 4 | 0) >> 2] | 0, HEAP32[$6 >> 2] | 0)); + __stack_pointer = $6 + 16 | 0; + return Math_fround($12); + } + + function btSequentialImpulseConstraintSolver__btSequentialImpulseConstraintSolver_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btConstraintSolver__btConstraintSolver_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 102372 + 8 | 0; + btAlignedObjectArray_btSolverBody___btAlignedObjectArray_28_29($4 + 4 | 0 | 0) | 0; + btAlignedObjectArray_btSolverConstraint___btAlignedObjectArray_28_29($4 + 24 | 0 | 0) | 0; + btAlignedObjectArray_btSolverConstraint___btAlignedObjectArray_28_29($4 + 44 | 0 | 0) | 0; + btAlignedObjectArray_btSolverConstraint___btAlignedObjectArray_28_29($4 + 64 | 0 | 0) | 0; + btAlignedObjectArray_btSolverConstraint___btAlignedObjectArray_28_29($4 + 84 | 0 | 0) | 0; + btAlignedObjectArray_int___btAlignedObjectArray_28_29($4 + 104 | 0 | 0) | 0; + btAlignedObjectArray_int___btAlignedObjectArray_28_29($4 + 124 | 0 | 0) | 0; + btAlignedObjectArray_int___btAlignedObjectArray_28_29($4 + 144 | 0 | 0) | 0; + btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___btAlignedObjectArray_28_29($4 + 164 | 0 | 0) | 0; + btAlignedObjectArray_int___btAlignedObjectArray_28_29($4 + 192 | 0 | 0) | 0; + HEAP32[($4 + 232 | 0) >> 2] = 0; + HEAP32[($4 + 224 | 0) >> 2] = 0; + btSequentialImpulseConstraintSolver__setupSolverFunctions_28bool_29($4 | 0, 0 & 1 | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConstraintSolver__btConstraintSolver_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 102512 + 8 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btSolverBody___btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btSolverBody_2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btSolverBody___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btSolverConstraint___btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btSolverConstraint_2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btSolverConstraint___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btTypedConstraint__btConstraintInfo1_2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btSequentialImpulseConstraintSolver__setupSolverFunctions_28bool_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $6 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP8[($4 + 11 | 0) >> 0] = $1; + $6 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($6 + 212 | 0) >> 2] = 1081; + HEAP32[($6 + 216 | 0) >> 2] = 1082; + HEAP32[($6 + 220 | 0) >> 2] = 1083; + label$1 : { + if (!((HEAPU8[($4 + 11 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + } + return; + } + + function btAlignedAllocator_btSolverBody_2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btSolverBody___init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btAlignedAllocator_btSolverConstraint_2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btSolverConstraint___init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btAlignedAllocator_btTypedConstraint__btConstraintInfo1_2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function gResolveSingleConstraintRowGeneric_scalar_reference_28btSolverBody__2c_20btSolverBody__2c_20btSolverConstraint_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $87 = 0, $103 = 0, $119 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 64 | 0; + __stack_pointer = $5; + HEAP32[($5 + 60 | 0) >> 2] = $0; + HEAP32[($5 + 56 | 0) >> 2] = $1; + HEAP32[($5 + 52 | 0) >> 2] = $2; + HEAPF32[($5 + 48 | 0) >> 2] = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 100 | 0) >> 2])) * Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 116 | 0) >> 2])) + Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 112 | 0) >> 2])); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(btVector3__dot_28btVector3_20const__29_20const((HEAP32[($5 + 52 | 0) >> 2] | 0) + 16 | 0 | 0, btSolverBody__internalGetDeltaLinearVelocity_28_29(HEAP32[($5 + 60 | 0) >> 2] | 0 | 0) | 0 | 0)) + Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($5 + 52 | 0) >> 2] | 0 | 0, btSolverBody__internalGetDeltaAngularVelocity_28_29(HEAP32[($5 + 60 | 0) >> 2] | 0 | 0) | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(btVector3__dot_28btVector3_20const__29_20const((HEAP32[($5 + 52 | 0) >> 2] | 0) + 48 | 0 | 0, btSolverBody__internalGetDeltaLinearVelocity_28_29(HEAP32[($5 + 56 | 0) >> 2] | 0 | 0) | 0 | 0)) + Math_fround(btVector3__dot_28btVector3_20const__29_20const((HEAP32[($5 + 52 | 0) >> 2] | 0) + 32 | 0 | 0, btSolverBody__internalGetDeltaAngularVelocity_28_29(HEAP32[($5 + 56 | 0) >> 2] | 0 | 0) | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($5 + 48 | 0) >> 2] = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($5 + 44 | 0) >> 2])) * Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 108 | 0) >> 2])) + Math_fround(HEAPF32[($5 + 48 | 0) >> 2])); + HEAPF32[($5 + 48 | 0) >> 2] = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($5 + 40 | 0) >> 2])) * Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 108 | 0) >> 2])) + Math_fround(HEAPF32[($5 + 48 | 0) >> 2])); + HEAPF32[($5 + 36 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 100 | 0) >> 2]) + Math_fround(HEAPF32[($5 + 48 | 0) >> 2])); + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($5 + 36 | 0) >> 2]) < Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 120 | 0) >> 2]) & 1 | 0)) { + break label$2 + } + HEAPF32[($5 + 48 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 120 | 0) >> 2]) - Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 100 | 0) >> 2])); + HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 100 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 120 | 0) >> 2]); + break label$1; + } + label$3 : { + label$4 : { + if (!(Math_fround(HEAPF32[($5 + 36 | 0) >> 2]) > Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 124 | 0) >> 2]) & 1 | 0)) { + break label$4 + } + HEAPF32[($5 + 48 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 124 | 0) >> 2]) - Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 100 | 0) >> 2])); + HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 100 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 124 | 0) >> 2]); + break label$3; + } + HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 100 | 0) >> 2] = Math_fround(HEAPF32[($5 + 36 | 0) >> 2]); + } + } + $87 = HEAP32[($5 + 60 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($5 + 20 | 0 | 0, (HEAP32[($5 + 52 | 0) >> 2] | 0) + 16 | 0 | 0, btSolverBody__internalGetInvMass_28_29_20const(HEAP32[($5 + 60 | 0) >> 2] | 0 | 0) | 0 | 0); + btSolverBody__internalApplyImpulse_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($87 | 0, $5 + 20 | 0 | 0, (HEAP32[($5 + 52 | 0) >> 2] | 0) + 64 | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 48 | 0) >> 2]))); + $103 = HEAP32[($5 + 56 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($5 + 4 | 0 | 0, (HEAP32[($5 + 52 | 0) >> 2] | 0) + 48 | 0 | 0, btSolverBody__internalGetInvMass_28_29_20const(HEAP32[($5 + 56 | 0) >> 2] | 0 | 0) | 0 | 0); + btSolverBody__internalApplyImpulse_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($103 | 0, $5 + 4 | 0 | 0, (HEAP32[($5 + 52 | 0) >> 2] | 0) + 80 | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 48 | 0) >> 2]))); + $119 = Math_fround(HEAPF32[($5 + 48 | 0) >> 2]); + __stack_pointer = $5 + 64 | 0; + return Math_fround($119); + } + + function gResolveSingleConstraintRowLowerLimit_scalar_reference_28btSolverBody__2c_20btSolverBody__2c_20btSolverConstraint_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $73 = 0, $89 = 0, $105 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 64 | 0; + __stack_pointer = $5; + HEAP32[($5 + 60 | 0) >> 2] = $0; + HEAP32[($5 + 56 | 0) >> 2] = $1; + HEAP32[($5 + 52 | 0) >> 2] = $2; + HEAPF32[($5 + 48 | 0) >> 2] = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 100 | 0) >> 2])) * Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 116 | 0) >> 2])) + Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 112 | 0) >> 2])); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(btVector3__dot_28btVector3_20const__29_20const((HEAP32[($5 + 52 | 0) >> 2] | 0) + 16 | 0 | 0, btSolverBody__internalGetDeltaLinearVelocity_28_29(HEAP32[($5 + 60 | 0) >> 2] | 0 | 0) | 0 | 0)) + Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($5 + 52 | 0) >> 2] | 0 | 0, btSolverBody__internalGetDeltaAngularVelocity_28_29(HEAP32[($5 + 60 | 0) >> 2] | 0 | 0) | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(btVector3__dot_28btVector3_20const__29_20const((HEAP32[($5 + 52 | 0) >> 2] | 0) + 48 | 0 | 0, btSolverBody__internalGetDeltaLinearVelocity_28_29(HEAP32[($5 + 56 | 0) >> 2] | 0 | 0) | 0 | 0)) + Math_fround(btVector3__dot_28btVector3_20const__29_20const((HEAP32[($5 + 52 | 0) >> 2] | 0) + 32 | 0 | 0, btSolverBody__internalGetDeltaAngularVelocity_28_29(HEAP32[($5 + 56 | 0) >> 2] | 0 | 0) | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($5 + 48 | 0) >> 2] = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($5 + 44 | 0) >> 2])) * Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 108 | 0) >> 2])) + Math_fround(HEAPF32[($5 + 48 | 0) >> 2])); + HEAPF32[($5 + 48 | 0) >> 2] = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($5 + 40 | 0) >> 2])) * Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 108 | 0) >> 2])) + Math_fround(HEAPF32[($5 + 48 | 0) >> 2])); + HEAPF32[($5 + 36 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 100 | 0) >> 2]) + Math_fround(HEAPF32[($5 + 48 | 0) >> 2])); + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($5 + 36 | 0) >> 2]) < Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 120 | 0) >> 2]) & 1 | 0)) { + break label$2 + } + HEAPF32[($5 + 48 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 120 | 0) >> 2]) - Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 100 | 0) >> 2])); + HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 100 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 120 | 0) >> 2]); + break label$1; + } + HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 100 | 0) >> 2] = Math_fround(HEAPF32[($5 + 36 | 0) >> 2]); + } + $73 = HEAP32[($5 + 60 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($5 + 20 | 0 | 0, (HEAP32[($5 + 52 | 0) >> 2] | 0) + 16 | 0 | 0, btSolverBody__internalGetInvMass_28_29_20const(HEAP32[($5 + 60 | 0) >> 2] | 0 | 0) | 0 | 0); + btSolverBody__internalApplyImpulse_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($73 | 0, $5 + 20 | 0 | 0, (HEAP32[($5 + 52 | 0) >> 2] | 0) + 64 | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 48 | 0) >> 2]))); + $89 = HEAP32[($5 + 56 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($5 + 4 | 0 | 0, (HEAP32[($5 + 52 | 0) >> 2] | 0) + 48 | 0 | 0, btSolverBody__internalGetInvMass_28_29_20const(HEAP32[($5 + 56 | 0) >> 2] | 0 | 0) | 0 | 0); + btSolverBody__internalApplyImpulse_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($89 | 0, $5 + 4 | 0 | 0, (HEAP32[($5 + 52 | 0) >> 2] | 0) + 80 | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 48 | 0) >> 2]))); + $105 = Math_fround(HEAPF32[($5 + 48 | 0) >> 2]); + __stack_pointer = $5 + 64 | 0; + return Math_fround($105); + } + + function gResolveSplitPenetrationImpulse_scalar_reference_28btSolverBody__2c_20btSolverBody__2c_20btSolverConstraint_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $87 = 0, $103 = 0, $119 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 64 | 0; + __stack_pointer = $5; + HEAP32[($5 + 60 | 0) >> 2] = $0; + HEAP32[($5 + 56 | 0) >> 2] = $1; + HEAP32[($5 + 52 | 0) >> 2] = $2; + HEAPF32[($5 + 48 | 0) >> 2] = Math_fround(0 | 0); + label$1 : { + if (!(Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 128 | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[(0 + 115432 | 0) >> 2] = (HEAP32[(0 + 115432 | 0) >> 2] | 0) + 1 | 0; + HEAPF32[($5 + 48 | 0) >> 2] = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 96 | 0) >> 2])) * Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 116 | 0) >> 2])) + Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 128 | 0) >> 2])); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(btVector3__dot_28btVector3_20const__29_20const((HEAP32[($5 + 52 | 0) >> 2] | 0) + 16 | 0 | 0, btSolverBody__internalGetPushVelocity_28_29(HEAP32[($5 + 60 | 0) >> 2] | 0 | 0) | 0 | 0)) + Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($5 + 52 | 0) >> 2] | 0 | 0, btSolverBody__internalGetTurnVelocity_28_29(HEAP32[($5 + 60 | 0) >> 2] | 0 | 0) | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(btVector3__dot_28btVector3_20const__29_20const((HEAP32[($5 + 52 | 0) >> 2] | 0) + 48 | 0 | 0, btSolverBody__internalGetPushVelocity_28_29(HEAP32[($5 + 56 | 0) >> 2] | 0 | 0) | 0 | 0)) + Math_fround(btVector3__dot_28btVector3_20const__29_20const((HEAP32[($5 + 52 | 0) >> 2] | 0) + 32 | 0 | 0, btSolverBody__internalGetTurnVelocity_28_29(HEAP32[($5 + 56 | 0) >> 2] | 0 | 0) | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($5 + 48 | 0) >> 2] = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($5 + 44 | 0) >> 2])) * Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 108 | 0) >> 2])) + Math_fround(HEAPF32[($5 + 48 | 0) >> 2])); + HEAPF32[($5 + 48 | 0) >> 2] = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($5 + 40 | 0) >> 2])) * Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 108 | 0) >> 2])) + Math_fround(HEAPF32[($5 + 48 | 0) >> 2])); + HEAPF32[($5 + 36 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 96 | 0) >> 2]) + Math_fround(HEAPF32[($5 + 48 | 0) >> 2])); + label$2 : { + label$3 : { + if (!(Math_fround(HEAPF32[($5 + 36 | 0) >> 2]) < Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 120 | 0) >> 2]) & 1 | 0)) { + break label$3 + } + HEAPF32[($5 + 48 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 120 | 0) >> 2]) - Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 96 | 0) >> 2])); + HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 96 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 120 | 0) >> 2]); + break label$2; + } + HEAPF32[((HEAP32[($5 + 52 | 0) >> 2] | 0) + 96 | 0) >> 2] = Math_fround(HEAPF32[($5 + 36 | 0) >> 2]); + } + $87 = HEAP32[($5 + 60 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($5 + 20 | 0 | 0, (HEAP32[($5 + 52 | 0) >> 2] | 0) + 16 | 0 | 0, btSolverBody__internalGetInvMass_28_29_20const(HEAP32[($5 + 60 | 0) >> 2] | 0 | 0) | 0 | 0); + btSolverBody__internalApplyPushImpulse_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($87 | 0, $5 + 20 | 0 | 0, (HEAP32[($5 + 52 | 0) >> 2] | 0) + 64 | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 48 | 0) >> 2]))); + $103 = HEAP32[($5 + 56 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($5 + 4 | 0 | 0, (HEAP32[($5 + 52 | 0) >> 2] | 0) + 48 | 0 | 0, btSolverBody__internalGetInvMass_28_29_20const(HEAP32[($5 + 56 | 0) >> 2] | 0 | 0) | 0 | 0); + btSolverBody__internalApplyPushImpulse_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($103 | 0, $5 + 4 | 0 | 0, (HEAP32[($5 + 52 | 0) >> 2] | 0) + 80 | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 48 | 0) >> 2]))); + } + $119 = Math_fround(HEAPF32[($5 + 48 | 0) >> 2]); + __stack_pointer = $5 + 64 | 0; + return Math_fround($119); + } + + function btSolverBody__internalGetDeltaLinearVelocity_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 64 | 0 | 0; + } + + function btSolverBody__internalGetDeltaAngularVelocity_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 80 | 0 | 0; + } + + function btSolverBody__internalGetInvMass_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 128 | 0 | 0; + } + + function btSolverBody__internalApplyImpulse_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + var $6 = 0, $7 = 0, $35 = 0; + $6 = __stack_pointer - 80 | 0; + __stack_pointer = $6; + HEAP32[($6 + 76 | 0) >> 2] = $0; + HEAP32[($6 + 72 | 0) >> 2] = $1; + HEAP32[($6 + 68 | 0) >> 2] = $2; + HEAPF32[($6 + 64 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 76 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($7 + 240 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + operator__28btVector3_20const__2c_20float_20const__29($6 + 32 | 0 | 0, HEAP32[($6 + 72 | 0) >> 2] | 0 | 0, $6 + 64 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($6 + 48 | 0 | 0, $6 + 32 | 0 | 0, $7 + 112 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($7 + 64 | 0 | 0, $6 + 48 | 0 | 0) | 0; + $35 = HEAP32[($6 + 68 | 0) >> 2] | 0; + operator__28float_20const__2c_20btVector3_20const__29($6 | 0, $6 + 64 | 0 | 0, $7 + 96 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($6 + 16 | 0 | 0, $35 | 0, $6 | 0); + btVector3__operator___28btVector3_20const__29_1($7 + 80 | 0 | 0, $6 + 16 | 0 | 0) | 0; + } + __stack_pointer = $6 + 80 | 0; + return; + } + + function btSolverBody__internalGetPushVelocity_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 144 | 0 | 0; + } + + function btSolverBody__internalGetTurnVelocity_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 160 | 0 | 0; + } + + function btSolverBody__internalApplyPushImpulse_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + var $6 = 0, $7 = 0, $35 = 0; + $6 = __stack_pointer - 80 | 0; + __stack_pointer = $6; + HEAP32[($6 + 76 | 0) >> 2] = $0; + HEAP32[($6 + 72 | 0) >> 2] = $1; + HEAP32[($6 + 68 | 0) >> 2] = $2; + HEAPF32[($6 + 64 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 76 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($7 + 240 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + operator__28btVector3_20const__2c_20float_20const__29($6 + 32 | 0 | 0, HEAP32[($6 + 72 | 0) >> 2] | 0 | 0, $6 + 64 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($6 + 48 | 0 | 0, $6 + 32 | 0 | 0, $7 + 112 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($7 + 144 | 0 | 0, $6 + 48 | 0 | 0) | 0; + $35 = HEAP32[($6 + 68 | 0) >> 2] | 0; + operator__28float_20const__2c_20btVector3_20const__29($6 | 0, $6 + 64 | 0 | 0, $7 + 96 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($6 + 16 | 0 | 0, $35 | 0, $6 | 0); + btVector3__operator___28btVector3_20const__29_1($7 + 160 | 0 | 0, $6 + 16 | 0 | 0) | 0; + } + __stack_pointer = $6 + 80 | 0; + return; + } + + function btSequentialImpulseConstraintSolver___btSequentialImpulseConstraintSolver_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 102372 + 8 | 0; + btAlignedObjectArray_int____btAlignedObjectArray_28_29($4 + 192 | 0 | 0) | 0; + btAlignedObjectArray_btTypedConstraint__btConstraintInfo1____btAlignedObjectArray_28_29($4 + 164 | 0 | 0) | 0; + btAlignedObjectArray_int____btAlignedObjectArray_28_29($4 + 144 | 0 | 0) | 0; + btAlignedObjectArray_int____btAlignedObjectArray_28_29($4 + 124 | 0 | 0) | 0; + btAlignedObjectArray_int____btAlignedObjectArray_28_29($4 + 104 | 0 | 0) | 0; + btAlignedObjectArray_btSolverConstraint____btAlignedObjectArray_28_29($4 + 84 | 0 | 0) | 0; + btAlignedObjectArray_btSolverConstraint____btAlignedObjectArray_28_29($4 + 64 | 0 | 0) | 0; + btAlignedObjectArray_btSolverConstraint____btAlignedObjectArray_28_29($4 + 44 | 0 | 0) | 0; + btAlignedObjectArray_btSolverConstraint____btAlignedObjectArray_28_29($4 + 24 | 0 | 0) | 0; + btAlignedObjectArray_btSolverBody____btAlignedObjectArray_28_29($4 + 4 | 0 | 0) | 0; + btConstraintSolver___btConstraintSolver_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btTypedConstraint__btConstraintInfo1____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btSolverConstraint____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btSolverConstraint___clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btSolverBody____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btSolverBody___clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btConstraintSolver___btConstraintSolver_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___deallocate_28_29($4 | 0); + btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btSolverConstraint___clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btSolverConstraint___destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btSolverConstraint___size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btSolverConstraint___deallocate_28_29($4 | 0); + btAlignedObjectArray_btSolverConstraint___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btSolverBody___clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btSolverBody___destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btSolverBody___size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btSolverBody___deallocate_28_29($4 | 0); + btAlignedObjectArray_btSolverBody___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btSequentialImpulseConstraintSolver___btSequentialImpulseConstraintSolver_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[1084 | 0]($4) | 0; + btSequentialImpulseConstraintSolver__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btSequentialImpulseConstraintSolver__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btSequentialImpulseConstraintSolver__btRand2_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[($4 + 232 | 0) >> 2] = (Math_imul(HEAP32[($4 + 232 | 0) >> 2] | 0, 1664525) + 1013904223 | 0) & -1 | 0; + return HEAP32[($4 + 232 | 0) >> 2] | 0 | 0; + } + + function btSequentialImpulseConstraintSolver__btRandInt2_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $70 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btSequentialImpulseConstraintSolver__btRand2_28_29($5 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0) >>> 0 <= 65536 >>> 0 & 1 | 0)) { + break label$1 + } + HEAP32[$4 >> 2] = (HEAP32[$4 >> 2] | 0) ^ ((HEAP32[$4 >> 2] | 0) >>> 16 | 0) | 0; + label$2 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0) >>> 0 <= 256 >>> 0 & 1 | 0)) { + break label$2 + } + HEAP32[$4 >> 2] = (HEAP32[$4 >> 2] | 0) ^ ((HEAP32[$4 >> 2] | 0) >>> 8 | 0) | 0; + label$3 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0) >>> 0 <= 16 >>> 0 & 1 | 0)) { + break label$3 + } + HEAP32[$4 >> 2] = (HEAP32[$4 >> 2] | 0) ^ ((HEAP32[$4 >> 2] | 0) >>> 4 | 0) | 0; + label$4 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0) >>> 0 <= 4 >>> 0 & 1 | 0)) { + break label$4 + } + HEAP32[$4 >> 2] = (HEAP32[$4 >> 2] | 0) ^ ((HEAP32[$4 >> 2] | 0) >>> 2 | 0) | 0; + label$5 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0) >>> 0 <= 2 >>> 0 & 1 | 0)) { + break label$5 + } + HEAP32[$4 >> 2] = (HEAP32[$4 >> 2] | 0) ^ ((HEAP32[$4 >> 2] | 0) >>> 1 | 0) | 0; + } + } + } + } + } + $70 = ((HEAP32[$4 >> 2] | 0) >>> 0) % ((HEAP32[($4 + 4 | 0) >> 2] | 0) >>> 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $70 | 0; + } + + function btSequentialImpulseConstraintSolver__initSolverBody_28btSolverBody__2c_20btCollisionObject__2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $16 = 0, $133 = 0, $135 = 0, $143 = 0, $145 = 0, $153 = 0, $155 = 0, $163 = 0, $165 = 0, $190 = 0, $192 = 0, $216 = 0, $218 = 0, $20 = 0, $37 = 0, $54 = 0, $71 = 0, $95 = 0, $97 = 0, $130 = 0, $616 = 0, $626 = 0, $140 = 0, $639 = 0, $649 = 0, $150 = 0, $662 = 0, $672 = 0, $160 = 0, $685 = 0, $695 = 0, $170 = 0, $740 = 0, $753 = 0, $792 = 0, $805 = 0, $225 = 0, $251 = 0, $266 = 0, $281 = 0, $299 = 0, $317 = 0, $335 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 288 | 0; + __stack_pointer = $6; + HEAP32[($6 + 284 | 0) >> 2] = $0; + HEAP32[($6 + 280 | 0) >> 2] = $1; + HEAP32[($6 + 276 | 0) >> 2] = $2; + HEAPF32[($6 + 272 | 0) >> 2] = $3; + label$1 : { + label$2 : { + if (!((HEAP32[($6 + 276 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + $16 = btRigidBody__upcast_28btCollisionObject__29(HEAP32[($6 + 276 | 0) >> 2] | 0 | 0) | 0; + break label$1; + } + $16 = 0; + } + HEAP32[($6 + 268 | 0) >> 2] = $16; + $20 = btSolverBody__internalGetDeltaLinearVelocity_28_29(HEAP32[($6 + 280 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($6 + 264 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 260 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 256 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($20 | 0, $6 + 264 | 0 | 0, $6 + 260 | 0 | 0, $6 + 256 | 0 | 0); + $37 = btSolverBody__internalGetDeltaAngularVelocity_28_29(HEAP32[($6 + 280 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($6 + 252 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 248 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 244 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($37 | 0, $6 + 252 | 0 | 0, $6 + 248 | 0 | 0, $6 + 244 | 0 | 0); + $54 = btSolverBody__internalGetPushVelocity_28_29(HEAP32[($6 + 280 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($6 + 240 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 236 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 232 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($54 | 0, $6 + 240 | 0 | 0, $6 + 236 | 0 | 0, $6 + 232 | 0 | 0); + $71 = btSolverBody__internalGetTurnVelocity_28_29(HEAP32[($6 + 280 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($6 + 228 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 224 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 220 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($71 | 0, $6 + 228 | 0 | 0, $6 + 224 | 0 | 0, $6 + 220 | 0 | 0); + label$3 : { + label$4 : { + if (!((HEAP32[($6 + 268 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $95 = btCollisionObject__getWorldTransform_28_29(HEAP32[($6 + 268 | 0) >> 2] | 0 | 0) | 0; + btTransform__operator__28btTransform_20const__29(HEAP32[($6 + 280 | 0) >> 2] | 0 | 0, $95 | 0) | 0; + $97 = HEAP32[($6 + 280 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btRigidBody__getInvMass_28_29_20const(HEAP32[($6 + 268 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 184 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btRigidBody__getInvMass_28_29_20const(HEAP32[($6 + 268 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 180 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btRigidBody__getInvMass_28_29_20const(HEAP32[($6 + 268 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 176 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 188 | 0 | 0, $6 + 184 | 0 | 0, $6 + 180 | 0 | 0, $6 + 176 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($6 + 204 | 0 | 0, $6 + 188 | 0 | 0, btRigidBody__getLinearFactor_28_29_20const(HEAP32[($6 + 268 | 0) >> 2] | 0 | 0) | 0 | 0); + btSolverBody__internalSetInvMass_28btVector3_20const__29($97 | 0, $6 + 204 | 0 | 0); + HEAP32[((HEAP32[($6 + 280 | 0) >> 2] | 0) + 240 | 0) >> 2] = HEAP32[($6 + 268 | 0) >> 2] | 0; + $130 = btRigidBody__getAngularFactor_28_29_20const(HEAP32[($6 + 268 | 0) >> 2] | 0 | 0) | 0; + $133 = (HEAP32[($6 + 280 | 0) >> 2] | 0) + 96 | 0; + i64toi32_i32$2 = $130; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $616 = i64toi32_i32$0; + i64toi32_i32$0 = $133; + HEAP32[i64toi32_i32$0 >> 2] = $616; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $135 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $135 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $626 = i64toi32_i32$1; + i64toi32_i32$1 = $133 + $135 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $626; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $140 = btRigidBody__getLinearFactor_28_29_20const(HEAP32[($6 + 268 | 0) >> 2] | 0 | 0) | 0; + $143 = (HEAP32[($6 + 280 | 0) >> 2] | 0) + 112 | 0; + i64toi32_i32$2 = $140; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $639 = i64toi32_i32$0; + i64toi32_i32$0 = $143; + HEAP32[i64toi32_i32$0 >> 2] = $639; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $145 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $145 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $649 = i64toi32_i32$1; + i64toi32_i32$1 = $143 + $145 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $649; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $150 = btRigidBody__getLinearVelocity_28_29_20const(HEAP32[($6 + 268 | 0) >> 2] | 0 | 0) | 0; + $153 = (HEAP32[($6 + 280 | 0) >> 2] | 0) + 176 | 0; + i64toi32_i32$2 = $150; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $662 = i64toi32_i32$0; + i64toi32_i32$0 = $153; + HEAP32[i64toi32_i32$0 >> 2] = $662; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $155 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $155 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $672 = i64toi32_i32$1; + i64toi32_i32$1 = $153 + $155 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $672; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $160 = btRigidBody__getAngularVelocity_28_29_20const(HEAP32[($6 + 268 | 0) >> 2] | 0 | 0) | 0; + $163 = (HEAP32[($6 + 280 | 0) >> 2] | 0) + 192 | 0; + i64toi32_i32$2 = $160; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $685 = i64toi32_i32$0; + i64toi32_i32$0 = $163; + HEAP32[i64toi32_i32$0 >> 2] = $685; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $165 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $165 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $695 = i64toi32_i32$1; + i64toi32_i32$1 = $163 + $165 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $695; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $170 = btRigidBody__getTotalForce_28_29_20const(HEAP32[($6 + 268 | 0) >> 2] | 0 | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btRigidBody__getInvMass_28_29_20const(HEAP32[($6 + 268 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 140 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20float_20const__29($6 + 144 | 0 | 0, $170 | 0, $6 + 140 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($6 + 160 | 0 | 0, $6 + 144 | 0 | 0, $6 + 272 | 0 | 0); + $190 = (HEAP32[($6 + 280 | 0) >> 2] | 0) + 208 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 160 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 164 | 0) >> 2] | 0; + $740 = i64toi32_i32$0; + i64toi32_i32$0 = $190; + HEAP32[i64toi32_i32$0 >> 2] = $740; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $192 = 8; + i64toi32_i32$2 = ($6 + 160 | 0) + $192 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $753 = i64toi32_i32$1; + i64toi32_i32$1 = $190 + $192 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $753; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btMatrix3x3_20const__29($6 + 108 | 0 | 0, btRigidBody__getTotalTorque_28_29_20const(HEAP32[($6 + 268 | 0) >> 2] | 0 | 0) | 0 | 0, btRigidBody__getInvInertiaTensorWorld_28_29_20const(HEAP32[($6 + 268 | 0) >> 2] | 0 | 0) | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($6 + 124 | 0 | 0, $6 + 108 | 0 | 0, $6 + 272 | 0 | 0); + $216 = (HEAP32[($6 + 280 | 0) >> 2] | 0) + 224 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 124 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 128 | 0) >> 2] | 0; + $792 = i64toi32_i32$0; + i64toi32_i32$0 = $216; + HEAP32[i64toi32_i32$0 >> 2] = $792; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $218 = 8; + i64toi32_i32$2 = ($6 + 124 | 0) + $218 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $805 = i64toi32_i32$1; + i64toi32_i32$1 = $216 + $218 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $805; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$3; + } + btTransform__setIdentity_28_29(HEAP32[($6 + 280 | 0) >> 2] | 0 | 0); + $225 = HEAP32[($6 + 280 | 0) >> 2] | 0; + HEAPF32[($6 + 88 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 84 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 80 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 92 | 0 | 0, $6 + 88 | 0 | 0, $6 + 84 | 0 | 0, $6 + 80 | 0 | 0) | 0; + btSolverBody__internalSetInvMass_28btVector3_20const__29($225 | 0, $6 + 92 | 0 | 0); + HEAP32[((HEAP32[($6 + 280 | 0) >> 2] | 0) + 240 | 0) >> 2] = 0; + $251 = (HEAP32[($6 + 280 | 0) >> 2] | 0) + 96 | 0; + HEAPF32[($6 + 76 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($6 + 72 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($6 + 68 | 0) >> 2] = Math_fround(1.0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($251 | 0, $6 + 76 | 0 | 0, $6 + 72 | 0 | 0, $6 + 68 | 0 | 0); + $266 = (HEAP32[($6 + 280 | 0) >> 2] | 0) + 112 | 0; + HEAPF32[($6 + 64 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($6 + 60 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($6 + 56 | 0) >> 2] = Math_fround(1.0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($266 | 0, $6 + 64 | 0 | 0, $6 + 60 | 0 | 0, $6 + 56 | 0 | 0); + $281 = (HEAP32[($6 + 280 | 0) >> 2] | 0) + 176 | 0; + HEAPF32[($6 + 52 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 48 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 44 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($281 | 0, $6 + 52 | 0 | 0, $6 + 48 | 0 | 0, $6 + 44 | 0 | 0); + $299 = (HEAP32[($6 + 280 | 0) >> 2] | 0) + 192 | 0; + HEAPF32[($6 + 40 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 36 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 32 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($299 | 0, $6 + 40 | 0 | 0, $6 + 36 | 0 | 0, $6 + 32 | 0 | 0); + $317 = (HEAP32[($6 + 280 | 0) >> 2] | 0) + 208 | 0; + HEAPF32[($6 + 28 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 24 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 20 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($317 | 0, $6 + 28 | 0 | 0, $6 + 24 | 0 | 0, $6 + 20 | 0 | 0); + $335 = (HEAP32[($6 + 280 | 0) >> 2] | 0) + 224 | 0; + HEAPF32[($6 + 16 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 12 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 8 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($335 | 0, $6 + 16 | 0 | 0, $6 + 12 | 0 | 0, $6 + 8 | 0 | 0); + } + __stack_pointer = $6 + 288 | 0; + return; + } + + function btRigidBody__upcast_28btCollisionObject__29($0) { + $0 = $0 | 0; + var $3 = 0, $10 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + label$1 : { + label$2 : { + if (!((btCollisionObject__getInternalType_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0) & 2 | 0)) { + break label$2 + } + HEAP32[($3 + 12 | 0) >> 2] = HEAP32[($3 + 8 | 0) >> 2] | 0; + break label$1; + } + HEAP32[($3 + 12 | 0) >> 2] = 0; + } + $10 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $10 | 0; + } + + function btRigidBody__getLinearFactor_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 408 | 0 | 0; + } + + function btSolverBody__internalSetInvMass_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, $8 = 0, $10 = 0, $32 = 0, $42 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $8 = (HEAP32[($4 + 12 | 0) >> 2] | 0) + 128 | 0; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $32 = i64toi32_i32$0; + i64toi32_i32$0 = $8; + HEAP32[i64toi32_i32$0 >> 2] = $32; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $10 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $10 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $42 = i64toi32_i32$1; + i64toi32_i32$1 = $8 + $10 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $42; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function btRigidBody__getAngularFactor_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 604 | 0 | 0; + } + + function btSequentialImpulseConstraintSolver__restitutionCurve_28float_2c_20float_2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = Math_fround($3); + var $6 = 0, $20 = Math_fround(0); + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 24 | 0) >> 2] = $0; + HEAPF32[($6 + 20 | 0) >> 2] = $1; + HEAPF32[($6 + 16 | 0) >> 2] = $2; + HEAPF32[($6 + 12 | 0) >> 2] = $3; + label$1 : { + label$2 : { + if (!(Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[($6 + 20 | 0) >> 2])))) < Math_fround(HEAPF32[($6 + 12 | 0) >> 2]) & 1 | 0)) { + break label$2 + } + HEAPF32[($6 + 28 | 0) >> 2] = Math_fround(0 | 0); + break label$1; + } + HEAPF32[($6 + 8 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($6 + 16 | 0) >> 2]) * Math_fround(-Math_fround(HEAPF32[($6 + 20 | 0) >> 2]))); + HEAPF32[($6 + 28 | 0) >> 2] = Math_fround(HEAPF32[($6 + 8 | 0) >> 2]); + } + $20 = Math_fround(HEAPF32[($6 + 28 | 0) >> 2]); + __stack_pointer = $6 + 32 | 0; + return Math_fround($20); + } + + function btSequentialImpulseConstraintSolver__applyAnisotropicFriction_28btCollisionObject__2c_20btVector3__2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $38 = 0, $40 = 0, $130 = 0, $140 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 44 | 0) >> 2] = $0; + HEAP32[($5 + 40 | 0) >> 2] = $1; + HEAP32[($5 + 36 | 0) >> 2] = $2; + label$1 : { + if (!((HEAP32[($5 + 44 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + if (!((btCollisionObject__hasAnisotropicFriction_28int_29_20const(HEAP32[($5 + 44 | 0) >> 2] | 0 | 0, HEAP32[($5 + 36 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$1 + } + operator__28btVector3_20const__2c_20btMatrix3x3_20const__29($5 + 20 | 0 | 0, HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, btTransform__getBasis_28_29(btCollisionObject__getWorldTransform_28_29(HEAP32[($5 + 44 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btCollisionObject__getAnisotropicFriction_28_29_20const(HEAP32[($5 + 44 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + btVector3__operator___28btVector3_20const__29_2($5 + 20 | 0 | 0, HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) | 0; + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($5 | 0, btTransform__getBasis_28_29(btCollisionObject__getWorldTransform_28_29(HEAP32[($5 + 44 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, $5 + 20 | 0 | 0); + $38 = HEAP32[($5 + 40 | 0) >> 2] | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[$5 >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 4 | 0) >> 2] | 0; + $130 = i64toi32_i32$0; + i64toi32_i32$0 = $38; + HEAP32[i64toi32_i32$0 >> 2] = $130; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $40 = 8; + i64toi32_i32$2 = $5 + $40 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $140 = i64toi32_i32$1; + i64toi32_i32$1 = $38 + $40 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $140; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + __stack_pointer = $5 + 48 | 0; + return; + } + + function btCollisionObject__hasAnisotropicFriction_28int_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return ((HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 180 | 0) >> 2] | 0) & (HEAP32[($4 + 8 | 0) >> 2] | 0) | 0 | 0) != (0 | 0) & 1 | 0 | 0; + } + + function btCollisionObject__getAnisotropicFriction_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 164 | 0 | 0; + } + + function btSequentialImpulseConstraintSolver__setupFrictionConstraint_28btSolverConstraint__2c_20btVector3_20const__2c_20int_2c_20int_2c_20btManifoldPoint__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btCollisionObject__2c_20btCollisionObject__2c_20float_2c_20btContactSolverInfo_20const__2c_20float_2c_20float_29($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + $8 = $8 | 0; + $9 = $9 | 0; + $10 = Math_fround($10); + $11 = $11 | 0; + $12 = Math_fround($12); + $13 = Math_fround($13); + var $16 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $17 = 0, $61 = 0, $63 = 0, $74 = 0, $76 = 0, $100 = 0, $102 = 0, $128 = 0, $130 = 0, $145 = 0, $147 = 0, $171 = 0, $173 = 0, $209 = 0, $246 = 0, $321 = 0, $322 = 0, $405 = 0, $406 = 0, $631 = 0, $641 = 0, $661 = 0, $674 = 0, $713 = 0, $726 = 0, $770 = 0, $783 = 0, $806 = 0, $819 = 0, $858 = 0, $871 = 0, $945 = 0, $949 = 0, $1019 = 0, $1023 = 0, $272 = 0, $310 = Math_fround(0), $311 = 0, $1167 = 0, $1171 = 0, $354 = 0, $392 = Math_fround(0), $395 = 0, $1325 = 0, $1329 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $16 = __stack_pointer - 432 | 0; + __stack_pointer = $16; + HEAP32[($16 + 428 | 0) >> 2] = $0; + HEAP32[($16 + 424 | 0) >> 2] = $1; + HEAP32[($16 + 420 | 0) >> 2] = $2; + HEAP32[($16 + 416 | 0) >> 2] = $3; + HEAP32[($16 + 412 | 0) >> 2] = $4; + HEAP32[($16 + 408 | 0) >> 2] = $5; + HEAP32[($16 + 404 | 0) >> 2] = $6; + HEAP32[($16 + 400 | 0) >> 2] = $7; + HEAP32[($16 + 396 | 0) >> 2] = $8; + HEAP32[($16 + 392 | 0) >> 2] = $9; + HEAPF32[($16 + 388 | 0) >> 2] = $10; + HEAP32[($16 + 384 | 0) >> 2] = $11; + HEAPF32[($16 + 380 | 0) >> 2] = $12; + HEAPF32[($16 + 376 | 0) >> 2] = $13; + $17 = HEAP32[($16 + 428 | 0) >> 2] | 0; + (wasm2js_i32$0 = $16, wasm2js_i32$1 = btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($17 + 4 | 0 | 0, HEAP32[($16 + 416 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 372 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $16, wasm2js_i32$1 = btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($17 + 4 | 0 | 0, HEAP32[($16 + 412 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 368 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $16, wasm2js_i32$1 = HEAP32[((btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($17 + 4 | 0 | 0, HEAP32[($16 + 416 | 0) >> 2] | 0 | 0) | 0) + 240 | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 364 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $16, wasm2js_i32$1 = HEAP32[((btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($17 + 4 | 0 | 0, HEAP32[($16 + 412 | 0) >> 2] | 0 | 0) | 0) + 240 | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 360 | 0) >> 2] = wasm2js_i32$1; + HEAP32[((HEAP32[($16 + 424 | 0) >> 2] | 0) + 144 | 0) >> 2] = HEAP32[($16 + 416 | 0) >> 2] | 0; + HEAP32[((HEAP32[($16 + 424 | 0) >> 2] | 0) + 148 | 0) >> 2] = HEAP32[($16 + 412 | 0) >> 2] | 0; + HEAPF32[((HEAP32[($16 + 424 | 0) >> 2] | 0) + 104 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($16 + 408 | 0) >> 2] | 0) + 84 | 0) >> 2]); + HEAP32[((HEAP32[($16 + 424 | 0) >> 2] | 0) + 132 | 0) >> 2] = 0; + HEAPF32[((HEAP32[($16 + 424 | 0) >> 2] | 0) + 100 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[((HEAP32[($16 + 424 | 0) >> 2] | 0) + 96 | 0) >> 2] = Math_fround(0 | 0); + label$1 : { + label$2 : { + if (!((HEAP32[($16 + 364 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + $61 = (HEAP32[($16 + 424 | 0) >> 2] | 0) + 16 | 0; + i64toi32_i32$2 = HEAP32[($16 + 420 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $631 = i64toi32_i32$0; + i64toi32_i32$0 = $61; + HEAP32[i64toi32_i32$0 >> 2] = $631; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $63 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $63 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $641 = i64toi32_i32$1; + i64toi32_i32$1 = $61 + $63 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $641; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__cross_28btVector3_20const__29_20const($16 + 344 | 0 | 0, HEAP32[($16 + 404 | 0) >> 2] | 0 | 0, (HEAP32[($16 + 424 | 0) >> 2] | 0) + 16 | 0 | 0); + $74 = HEAP32[($16 + 424 | 0) >> 2] | 0; + i64toi32_i32$2 = $16; + i64toi32_i32$0 = HEAP32[($16 + 344 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($16 + 348 | 0) >> 2] | 0; + $661 = i64toi32_i32$0; + i64toi32_i32$0 = $74; + HEAP32[i64toi32_i32$0 >> 2] = $661; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $76 = 8; + i64toi32_i32$2 = ($16 + 344 | 0) + $76 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $674 = i64toi32_i32$1; + i64toi32_i32$1 = $74 + $76 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $674; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($16 + 312 | 0 | 0, btRigidBody__getInvInertiaTensorWorld_28_29_20const(HEAP32[($16 + 364 | 0) >> 2] | 0 | 0) | 0 | 0, $16 + 344 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($16 + 328 | 0 | 0, $16 + 312 | 0 | 0, btRigidBody__getAngularFactor_28_29_20const(HEAP32[($16 + 364 | 0) >> 2] | 0 | 0) | 0 | 0); + $100 = (HEAP32[($16 + 424 | 0) >> 2] | 0) + 64 | 0; + i64toi32_i32$2 = $16; + i64toi32_i32$0 = HEAP32[($16 + 328 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($16 + 332 | 0) >> 2] | 0; + $713 = i64toi32_i32$0; + i64toi32_i32$0 = $100; + HEAP32[i64toi32_i32$0 >> 2] = $713; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $102 = 8; + i64toi32_i32$2 = ($16 + 328 | 0) + $102 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $726 = i64toi32_i32$1; + i64toi32_i32$1 = $100 + $102 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $726; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$1; + } + btVector3__setZero_28_29((HEAP32[($16 + 424 | 0) >> 2] | 0) + 16 | 0 | 0); + btVector3__setZero_28_29(HEAP32[($16 + 424 | 0) >> 2] | 0 | 0); + btVector3__setZero_28_29((HEAP32[($16 + 424 | 0) >> 2] | 0) + 64 | 0 | 0); + } + label$3 : { + label$4 : { + if (!((HEAP32[($16 + 360 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + operator__28btVector3_20const__29($16 + 296 | 0 | 0, HEAP32[($16 + 420 | 0) >> 2] | 0 | 0); + $128 = (HEAP32[($16 + 424 | 0) >> 2] | 0) + 48 | 0; + i64toi32_i32$2 = $16; + i64toi32_i32$0 = HEAP32[($16 + 296 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($16 + 300 | 0) >> 2] | 0; + $770 = i64toi32_i32$0; + i64toi32_i32$0 = $128; + HEAP32[i64toi32_i32$0 >> 2] = $770; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $130 = 8; + i64toi32_i32$2 = ($16 + 296 | 0) + $130 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $783 = i64toi32_i32$1; + i64toi32_i32$1 = $128 + $130 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $783; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__cross_28btVector3_20const__29_20const($16 + 280 | 0 | 0, HEAP32[($16 + 400 | 0) >> 2] | 0 | 0, (HEAP32[($16 + 424 | 0) >> 2] | 0) + 48 | 0 | 0); + $145 = (HEAP32[($16 + 424 | 0) >> 2] | 0) + 32 | 0; + i64toi32_i32$2 = $16; + i64toi32_i32$0 = HEAP32[($16 + 280 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($16 + 284 | 0) >> 2] | 0; + $806 = i64toi32_i32$0; + i64toi32_i32$0 = $145; + HEAP32[i64toi32_i32$0 >> 2] = $806; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $147 = 8; + i64toi32_i32$2 = ($16 + 280 | 0) + $147 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $819 = i64toi32_i32$1; + i64toi32_i32$1 = $145 + $147 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $819; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($16 + 248 | 0 | 0, btRigidBody__getInvInertiaTensorWorld_28_29_20const(HEAP32[($16 + 360 | 0) >> 2] | 0 | 0) | 0 | 0, $16 + 280 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($16 + 264 | 0 | 0, $16 + 248 | 0 | 0, btRigidBody__getAngularFactor_28_29_20const(HEAP32[($16 + 360 | 0) >> 2] | 0 | 0) | 0 | 0); + $171 = (HEAP32[($16 + 424 | 0) >> 2] | 0) + 80 | 0; + i64toi32_i32$2 = $16; + i64toi32_i32$0 = HEAP32[($16 + 264 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($16 + 268 | 0) >> 2] | 0; + $858 = i64toi32_i32$0; + i64toi32_i32$0 = $171; + HEAP32[i64toi32_i32$0 >> 2] = $858; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $173 = 8; + i64toi32_i32$2 = ($16 + 264 | 0) + $173 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $871 = i64toi32_i32$1; + i64toi32_i32$1 = $171 + $173 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $871; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$3; + } + btVector3__setZero_28_29((HEAP32[($16 + 424 | 0) >> 2] | 0) + 48 | 0 | 0); + btVector3__setZero_28_29((HEAP32[($16 + 424 | 0) >> 2] | 0) + 32 | 0 | 0); + btVector3__setZero_28_29((HEAP32[($16 + 424 | 0) >> 2] | 0) + 80 | 0 | 0); + } + btVector3__btVector3_28_29($16 + 232 | 0 | 0) | 0; + HEAPF32[($16 + 228 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($16 + 224 | 0) >> 2] = Math_fround(0 | 0); + label$5 : { + if (!((HEAP32[($16 + 364 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + btVector3__cross_28btVector3_20const__29_20const($16 + 208 | 0 | 0, (HEAP32[($16 + 424 | 0) >> 2] | 0) + 64 | 0 | 0, HEAP32[($16 + 404 | 0) >> 2] | 0 | 0); + $209 = 8; + i64toi32_i32$2 = ($16 + 208 | 0) + $209 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $945 = i64toi32_i32$0; + i64toi32_i32$0 = ($16 + 232 | 0) + $209 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $945; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $16; + i64toi32_i32$1 = HEAP32[($16 + 208 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($16 + 212 | 0) >> 2] | 0; + $949 = i64toi32_i32$1; + i64toi32_i32$1 = $16; + HEAP32[($16 + 232 | 0) >> 2] = $949; + HEAP32[($16 + 236 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $16, wasm2js_f32$0 = Math_fround(Math_fround(btRigidBody__getInvMass_28_29_20const(HEAP32[($16 + 364 | 0) >> 2] | 0 | 0)) + Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($16 + 420 | 0) >> 2] | 0 | 0, $16 + 232 | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 228 | 0) >> 2] = wasm2js_f32$0; + } + label$6 : { + if (!((HEAP32[($16 + 360 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + operator__28btVector3_20const__29($16 + 176 | 0 | 0, (HEAP32[($16 + 424 | 0) >> 2] | 0) + 80 | 0 | 0); + btVector3__cross_28btVector3_20const__29_20const($16 + 192 | 0 | 0, $16 + 176 | 0 | 0, HEAP32[($16 + 400 | 0) >> 2] | 0 | 0); + $246 = 8; + i64toi32_i32$2 = ($16 + 192 | 0) + $246 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1019 = i64toi32_i32$0; + i64toi32_i32$0 = ($16 + 232 | 0) + $246 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1019; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $16; + i64toi32_i32$1 = HEAP32[($16 + 192 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($16 + 196 | 0) >> 2] | 0; + $1023 = i64toi32_i32$1; + i64toi32_i32$1 = $16; + HEAP32[($16 + 232 | 0) >> 2] = $1023; + HEAP32[($16 + 236 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $16, wasm2js_f32$0 = Math_fround(Math_fround(btRigidBody__getInvMass_28_29_20const(HEAP32[($16 + 360 | 0) >> 2] | 0 | 0)) + Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($16 + 420 | 0) >> 2] | 0 | 0, $16 + 232 | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 224 | 0) >> 2] = wasm2js_f32$0; + } + HEAPF32[($16 + 172 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($16 + 388 | 0) >> 2]) / Math_fround(Math_fround(HEAPF32[($16 + 228 | 0) >> 2]) + Math_fround(HEAPF32[($16 + 224 | 0) >> 2]))); + HEAPF32[((HEAP32[($16 + 424 | 0) >> 2] | 0) + 108 | 0) >> 2] = Math_fround(HEAPF32[($16 + 172 | 0) >> 2]); + $272 = (HEAP32[($16 + 424 | 0) >> 2] | 0) + 16 | 0; + label$7 : { + label$8 : { + if (!((HEAP32[($16 + 364 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$8 + } + operator__28btVector3_20const__2c_20btVector3_20const__29_2($16 + 148 | 0 | 0, (HEAP32[($16 + 372 | 0) >> 2] | 0) + 176 | 0 | 0, (HEAP32[($16 + 372 | 0) >> 2] | 0) + 208 | 0 | 0); + break label$7; + } + HEAPF32[($16 + 144 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($16 + 140 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($16 + 136 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($16 + 148 | 0 | 0, $16 + 144 | 0 | 0, $16 + 140 | 0 | 0, $16 + 136 | 0 | 0) | 0; + } + $310 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($272 | 0, $16 + 148 | 0 | 0)); + $311 = HEAP32[($16 + 424 | 0) >> 2] | 0; + label$9 : { + label$10 : { + if (!((HEAP32[($16 + 364 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$10 + } + $321 = (HEAP32[($16 + 372 | 0) >> 2] | 0) + 192 | 0; + $322 = 8; + i64toi32_i32$2 = $321 + $322 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1167 = i64toi32_i32$0; + i64toi32_i32$0 = ($16 + 120 | 0) + $322 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1167; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $321; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1171 = i64toi32_i32$1; + i64toi32_i32$1 = $16; + HEAP32[($16 + 120 | 0) >> 2] = $1171; + HEAP32[($16 + 124 | 0) >> 2] = i64toi32_i32$0; + break label$9; + } + HEAPF32[($16 + 116 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($16 + 112 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($16 + 108 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($16 + 120 | 0 | 0, $16 + 116 | 0 | 0, $16 + 112 | 0 | 0, $16 + 108 | 0 | 0) | 0; + } + (wasm2js_i32$0 = $16, wasm2js_f32$0 = Math_fround($310 + Math_fround(btVector3__dot_28btVector3_20const__29_20const($311 | 0, $16 + 120 | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 164 | 0) >> 2] = wasm2js_f32$0; + $354 = (HEAP32[($16 + 424 | 0) >> 2] | 0) + 48 | 0; + label$11 : { + label$12 : { + if (!((HEAP32[($16 + 360 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$12 + } + operator__28btVector3_20const__2c_20btVector3_20const__29_2($16 + 88 | 0 | 0, (HEAP32[($16 + 368 | 0) >> 2] | 0) + 176 | 0 | 0, (HEAP32[($16 + 368 | 0) >> 2] | 0) + 208 | 0 | 0); + break label$11; + } + HEAPF32[($16 + 84 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($16 + 80 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($16 + 76 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($16 + 88 | 0 | 0, $16 + 84 | 0 | 0, $16 + 80 | 0 | 0, $16 + 76 | 0 | 0) | 0; + } + $392 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($354 | 0, $16 + 88 | 0 | 0)); + $395 = (HEAP32[($16 + 424 | 0) >> 2] | 0) + 32 | 0; + label$13 : { + label$14 : { + if (!((HEAP32[($16 + 360 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$14 + } + $405 = (HEAP32[($16 + 368 | 0) >> 2] | 0) + 192 | 0; + $406 = 8; + i64toi32_i32$2 = $405 + $406 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1325 = i64toi32_i32$0; + i64toi32_i32$0 = ($16 + 56 | 0) + $406 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1325; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $405; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1329 = i64toi32_i32$1; + i64toi32_i32$1 = $16; + HEAP32[($16 + 56 | 0) >> 2] = $1329; + HEAP32[($16 + 60 | 0) >> 2] = i64toi32_i32$0; + break label$13; + } + HEAPF32[($16 + 52 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($16 + 48 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($16 + 44 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($16 + 56 | 0 | 0, $16 + 52 | 0 | 0, $16 + 48 | 0 | 0, $16 + 44 | 0 | 0) | 0; + } + (wasm2js_i32$0 = $16, wasm2js_f32$0 = Math_fround($392 + Math_fround(btVector3__dot_28btVector3_20const__29_20const($395 | 0, $16 + 56 | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 104 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($16 + 168 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($16 + 164 | 0) >> 2]) + Math_fround(HEAPF32[($16 + 104 | 0) >> 2])); + HEAPF32[($16 + 40 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($16 + 380 | 0) >> 2]) - Math_fround(HEAPF32[($16 + 168 | 0) >> 2])); + HEAPF32[($16 + 36 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($16 + 40 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($16 + 424 | 0) >> 2] | 0) + 108 | 0) >> 2])); + HEAPF32[($16 + 32 | 0) >> 2] = Math_fround(0 | 0); + label$15 : { + if (!((HEAP32[((HEAP32[($16 + 408 | 0) >> 2] | 0) + 128 | 0) >> 2] | 0) & 16 | 0)) { + break label$15 + } + operator__28btVector3_20const__2c_20btVector3_20const__29($16 + 12 | 0 | 0, btManifoldPoint__getPositionWorldOnA_28_29_20const(HEAP32[($16 + 408 | 0) >> 2] | 0 | 0) | 0 | 0, btManifoldPoint__getPositionWorldOnB_28_29_20const(HEAP32[($16 + 408 | 0) >> 2] | 0 | 0) | 0 | 0); + (wasm2js_i32$0 = $16, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($16 + 12 | 0 | 0, HEAP32[($16 + 420 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($16 + 8 | 0) >> 2] = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($16 + 28 | 0) >> 2])) * Math_fround(HEAPF32[((HEAP32[($16 + 384 | 0) >> 2] | 0) + 44 | 0) >> 2])) / Math_fround(HEAPF32[((HEAP32[($16 + 384 | 0) >> 2] | 0) + 12 | 0) >> 2])); + HEAPF32[($16 + 32 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($16 + 8 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($16 + 424 | 0) >> 2] | 0) + 108 | 0) >> 2])); + } + HEAPF32[((HEAP32[($16 + 424 | 0) >> 2] | 0) + 112 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($16 + 32 | 0) >> 2]) + Math_fround(HEAPF32[($16 + 36 | 0) >> 2])); + HEAPF32[((HEAP32[($16 + 424 | 0) >> 2] | 0) + 128 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[((HEAP32[($16 + 424 | 0) >> 2] | 0) + 116 | 0) >> 2] = Math_fround(HEAPF32[($16 + 376 | 0) >> 2]); + HEAPF32[((HEAP32[($16 + 424 | 0) >> 2] | 0) + 120 | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[((HEAP32[($16 + 424 | 0) >> 2] | 0) + 104 | 0) >> 2])); + HEAPF32[((HEAP32[($16 + 424 | 0) >> 2] | 0) + 124 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($16 + 424 | 0) >> 2] | 0) + 104 | 0) >> 2]); + __stack_pointer = $16 + 432 | 0; + return; + } + + function btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btSolverBody___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($4 + 8 | 0) >> 2] | 0, 244) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btManifoldPoint__getPositionWorldOnA_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 48 | 0 | 0; + } + + function btManifoldPoint__getPositionWorldOnB_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 32 | 0 | 0; + } + + function btAlignedObjectArray_btSolverBody___size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btSequentialImpulseConstraintSolver__addFrictionConstraint_28btVector3_20const__2c_20int_2c_20int_2c_20int_2c_20btManifoldPoint__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btCollisionObject__2c_20btCollisionObject__2c_20float_2c_20btContactSolverInfo_20const__2c_20float_2c_20float_29($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + $8 = $8 | 0; + $9 = $9 | 0; + $10 = Math_fround($10); + $11 = $11 | 0; + $12 = Math_fround($12); + $13 = Math_fround($13); + var $16 = 0, $17 = 0, $36 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $16 = __stack_pointer - 64 | 0; + __stack_pointer = $16; + HEAP32[($16 + 60 | 0) >> 2] = $0; + HEAP32[($16 + 56 | 0) >> 2] = $1; + HEAP32[($16 + 52 | 0) >> 2] = $2; + HEAP32[($16 + 48 | 0) >> 2] = $3; + HEAP32[($16 + 44 | 0) >> 2] = $4; + HEAP32[($16 + 40 | 0) >> 2] = $5; + HEAP32[($16 + 36 | 0) >> 2] = $6; + HEAP32[($16 + 32 | 0) >> 2] = $7; + HEAP32[($16 + 28 | 0) >> 2] = $8; + HEAP32[($16 + 24 | 0) >> 2] = $9; + HEAPF32[($16 + 20 | 0) >> 2] = $10; + HEAP32[($16 + 16 | 0) >> 2] = $11; + HEAPF32[($16 + 12 | 0) >> 2] = $12; + HEAPF32[($16 + 8 | 0) >> 2] = $13; + $17 = HEAP32[($16 + 60 | 0) >> 2] | 0; + (wasm2js_i32$0 = $16, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___expandNonInitializing_28_29($17 + 64 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + HEAP32[((HEAP32[($16 + 4 | 0) >> 2] | 0) + 140 | 0) >> 2] = HEAP32[($16 + 44 | 0) >> 2] | 0; + btSequentialImpulseConstraintSolver__setupFrictionConstraint_28btSolverConstraint__2c_20btVector3_20const__2c_20int_2c_20int_2c_20btManifoldPoint__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btCollisionObject__2c_20btCollisionObject__2c_20float_2c_20btContactSolverInfo_20const__2c_20float_2c_20float_29($17 | 0, HEAP32[($16 + 4 | 0) >> 2] | 0 | 0, HEAP32[($16 + 56 | 0) >> 2] | 0 | 0, HEAP32[($16 + 52 | 0) >> 2] | 0 | 0, HEAP32[($16 + 48 | 0) >> 2] | 0 | 0, HEAP32[($16 + 40 | 0) >> 2] | 0 | 0, HEAP32[($16 + 36 | 0) >> 2] | 0 | 0, HEAP32[($16 + 32 | 0) >> 2] | 0 | 0, HEAP32[($16 + 28 | 0) >> 2] | 0 | 0, HEAP32[($16 + 24 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($16 + 20 | 0) >> 2])), HEAP32[($16 + 16 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($16 + 12 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($16 + 8 | 0) >> 2]))); + $36 = HEAP32[($16 + 4 | 0) >> 2] | 0; + __stack_pointer = $16 + 64 | 0; + return $36 | 0; + } + + function btAlignedObjectArray_btSolverConstraint___expandNonInitializing_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0, $22 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___size_28_29_20const($4 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btSolverConstraint___capacity_28_29_20const($4 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btSolverConstraint___reserve_28int_29($4 | 0, btAlignedObjectArray_btSolverConstraint___allocSize_28int_29($4 | 0, btAlignedObjectArray_btSolverConstraint___size_28_29_20const($4 | 0) | 0 | 0) | 0 | 0); + } + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 1 | 0; + $22 = (HEAP32[($4 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($3 + 8 | 0) >> 2] | 0, 152) | 0; + __stack_pointer = $3 + 16 | 0; + return $22 | 0; + } + + function btAlignedObjectArray_btSolverConstraint___size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btSolverConstraint___capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btSolverConstraint___allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btAlignedObjectArray_btSolverConstraint___reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btSolverConstraint___capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btSolverConstraint___copy_28int_2c_20int_2c_20btSolverConstraint__29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btSolverConstraint___size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btSolverConstraint___destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btSolverConstraint___size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btSolverConstraint___deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btSequentialImpulseConstraintSolver__setupTorsionalFrictionConstraint_28btSolverConstraint__2c_20btVector3_20const__2c_20int_2c_20int_2c_20btManifoldPoint__2c_20float_2c_20btVector3_20const__2c_20btVector3_20const__2c_20btCollisionObject__2c_20btCollisionObject__2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = Math_fround($6); + $7 = $7 | 0; + $8 = $8 | 0; + $9 = $9 | 0; + $10 = $10 | 0; + $11 = Math_fround($11); + $12 = Math_fround($12); + $13 = Math_fround($13); + var $16 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $17 = 0, $38 = 0, $40 = 0, $54 = 0, $56 = 0, $98 = 0, $100 = 0, $149 = 0, $151 = 0, $157 = 0, $158 = 0, $167 = 0, $169 = 0, $218 = 0, $220 = 0, $363 = 0, $364 = 0, $447 = 0, $448 = 0, $577 = 0, $590 = 0, $609 = 0, $622 = 0, $714 = 0, $727 = 0, $811 = 0, $824 = 0, $839 = 0, $843 = 0, $852 = 0, $865 = 0, $949 = 0, $962 = 0, $296 = Math_fround(0), $305 = Math_fround(0), $314 = 0, $352 = Math_fround(0), $353 = 0, $1235 = 0, $1239 = 0, $396 = 0, $434 = Math_fround(0), $437 = 0, $1393 = 0, $1397 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $16 = __stack_pointer - 448 | 0; + __stack_pointer = $16; + HEAP32[($16 + 444 | 0) >> 2] = $0; + HEAP32[($16 + 440 | 0) >> 2] = $1; + HEAP32[($16 + 436 | 0) >> 2] = $2; + HEAP32[($16 + 432 | 0) >> 2] = $3; + HEAP32[($16 + 428 | 0) >> 2] = $4; + HEAP32[($16 + 424 | 0) >> 2] = $5; + HEAPF32[($16 + 420 | 0) >> 2] = $6; + HEAP32[($16 + 416 | 0) >> 2] = $7; + HEAP32[($16 + 412 | 0) >> 2] = $8; + HEAP32[($16 + 408 | 0) >> 2] = $9; + HEAP32[($16 + 404 | 0) >> 2] = $10; + HEAPF32[($16 + 400 | 0) >> 2] = $11; + HEAPF32[($16 + 396 | 0) >> 2] = $12; + HEAPF32[($16 + 392 | 0) >> 2] = $13; + $17 = HEAP32[($16 + 444 | 0) >> 2] | 0; + HEAPF32[($16 + 372 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($16 + 368 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($16 + 364 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($16 + 376 | 0 | 0, $16 + 372 | 0 | 0, $16 + 368 | 0 | 0, $16 + 364 | 0 | 0) | 0; + $38 = (HEAP32[($16 + 440 | 0) >> 2] | 0) + 16 | 0; + i64toi32_i32$2 = $16; + i64toi32_i32$0 = HEAP32[($16 + 376 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($16 + 380 | 0) >> 2] | 0; + $577 = i64toi32_i32$0; + i64toi32_i32$0 = $38; + HEAP32[i64toi32_i32$0 >> 2] = $577; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $40 = 8; + i64toi32_i32$2 = ($16 + 376 | 0) + $40 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $590 = i64toi32_i32$1; + i64toi32_i32$1 = $38 + $40 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $590; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__29($16 + 348 | 0 | 0, $16 + 376 | 0 | 0); + $54 = (HEAP32[($16 + 440 | 0) >> 2] | 0) + 48 | 0; + i64toi32_i32$2 = $16; + i64toi32_i32$0 = HEAP32[($16 + 348 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($16 + 352 | 0) >> 2] | 0; + $609 = i64toi32_i32$0; + i64toi32_i32$0 = $54; + HEAP32[i64toi32_i32$0 >> 2] = $609; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $56 = 8; + i64toi32_i32$2 = ($16 + 348 | 0) + $56 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $622 = i64toi32_i32$1; + i64toi32_i32$1 = $54 + $56 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $622; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $16, wasm2js_i32$1 = btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($17 + 4 | 0 | 0, HEAP32[($16 + 432 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 344 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $16, wasm2js_i32$1 = btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($17 + 4 | 0 | 0, HEAP32[($16 + 428 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 340 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $16, wasm2js_i32$1 = HEAP32[((btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($17 + 4 | 0 | 0, HEAP32[($16 + 432 | 0) >> 2] | 0 | 0) | 0) + 240 | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 336 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $16, wasm2js_i32$1 = HEAP32[((btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($17 + 4 | 0 | 0, HEAP32[($16 + 428 | 0) >> 2] | 0 | 0) | 0) + 240 | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 332 | 0) >> 2] = wasm2js_i32$1; + HEAP32[((HEAP32[($16 + 440 | 0) >> 2] | 0) + 144 | 0) >> 2] = HEAP32[($16 + 432 | 0) >> 2] | 0; + HEAP32[((HEAP32[($16 + 440 | 0) >> 2] | 0) + 148 | 0) >> 2] = HEAP32[($16 + 428 | 0) >> 2] | 0; + HEAPF32[((HEAP32[($16 + 440 | 0) >> 2] | 0) + 104 | 0) >> 2] = Math_fround(HEAPF32[($16 + 420 | 0) >> 2]); + HEAP32[((HEAP32[($16 + 440 | 0) >> 2] | 0) + 132 | 0) >> 2] = 0; + HEAPF32[((HEAP32[($16 + 440 | 0) >> 2] | 0) + 100 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[((HEAP32[($16 + 440 | 0) >> 2] | 0) + 96 | 0) >> 2] = Math_fround(0 | 0); + operator__28btVector3_20const__29($16 + 316 | 0 | 0, HEAP32[($16 + 436 | 0) >> 2] | 0 | 0); + $98 = HEAP32[($16 + 440 | 0) >> 2] | 0; + i64toi32_i32$2 = $16; + i64toi32_i32$0 = HEAP32[($16 + 316 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($16 + 320 | 0) >> 2] | 0; + $714 = i64toi32_i32$0; + i64toi32_i32$0 = $98; + HEAP32[i64toi32_i32$0 >> 2] = $714; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $100 = 8; + i64toi32_i32$2 = ($16 + 316 | 0) + $100 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $727 = i64toi32_i32$1; + i64toi32_i32$1 = $98 + $100 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $727; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + label$1 : { + label$2 : { + if (!((HEAP32[($16 + 336 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($16 + 284 | 0 | 0, btRigidBody__getInvInertiaTensorWorld_28_29_20const(HEAP32[($16 + 336 | 0) >> 2] | 0 | 0) | 0 | 0, $16 + 316 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($16 + 300 | 0 | 0, $16 + 284 | 0 | 0, btRigidBody__getAngularFactor_28_29_20const(HEAP32[($16 + 336 | 0) >> 2] | 0 | 0) | 0 | 0); + break label$1; + } + HEAPF32[($16 + 280 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($16 + 276 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($16 + 272 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($16 + 300 | 0 | 0, $16 + 280 | 0 | 0, $16 + 276 | 0 | 0, $16 + 272 | 0 | 0) | 0; + } + $149 = (HEAP32[($16 + 440 | 0) >> 2] | 0) + 64 | 0; + i64toi32_i32$2 = $16; + i64toi32_i32$0 = HEAP32[($16 + 300 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($16 + 304 | 0) >> 2] | 0; + $811 = i64toi32_i32$0; + i64toi32_i32$0 = $149; + HEAP32[i64toi32_i32$0 >> 2] = $811; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $151 = 8; + i64toi32_i32$2 = ($16 + 300 | 0) + $151 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $824 = i64toi32_i32$1; + i64toi32_i32$1 = $149 + $151 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $824; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $157 = HEAP32[($16 + 436 | 0) >> 2] | 0; + $158 = 8; + i64toi32_i32$2 = $157 + $158 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $839 = i64toi32_i32$0; + i64toi32_i32$0 = ($16 + 256 | 0) + $158 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $839; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $157; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $843 = i64toi32_i32$1; + i64toi32_i32$1 = $16; + HEAP32[($16 + 256 | 0) >> 2] = $843; + HEAP32[($16 + 260 | 0) >> 2] = i64toi32_i32$0; + $167 = (HEAP32[($16 + 440 | 0) >> 2] | 0) + 32 | 0; + i64toi32_i32$2 = $16; + i64toi32_i32$0 = HEAP32[($16 + 256 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($16 + 260 | 0) >> 2] | 0; + $852 = i64toi32_i32$0; + i64toi32_i32$0 = $167; + HEAP32[i64toi32_i32$0 >> 2] = $852; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $169 = 8; + i64toi32_i32$2 = ($16 + 256 | 0) + $169 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $865 = i64toi32_i32$1; + i64toi32_i32$1 = $167 + $169 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $865; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + label$3 : { + label$4 : { + if (!((HEAP32[($16 + 332 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($16 + 224 | 0 | 0, btRigidBody__getInvInertiaTensorWorld_28_29_20const(HEAP32[($16 + 332 | 0) >> 2] | 0 | 0) | 0 | 0, $16 + 256 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($16 + 240 | 0 | 0, $16 + 224 | 0 | 0, btRigidBody__getAngularFactor_28_29_20const(HEAP32[($16 + 332 | 0) >> 2] | 0 | 0) | 0 | 0); + break label$3; + } + HEAPF32[($16 + 220 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($16 + 216 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($16 + 212 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($16 + 240 | 0 | 0, $16 + 220 | 0 | 0, $16 + 216 | 0 | 0, $16 + 212 | 0 | 0) | 0; + } + $218 = (HEAP32[($16 + 440 | 0) >> 2] | 0) + 80 | 0; + i64toi32_i32$2 = $16; + i64toi32_i32$0 = HEAP32[($16 + 240 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($16 + 244 | 0) >> 2] | 0; + $949 = i64toi32_i32$0; + i64toi32_i32$0 = $218; + HEAP32[i64toi32_i32$0 >> 2] = $949; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $220 = 8; + i64toi32_i32$2 = ($16 + 240 | 0) + $220 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $962 = i64toi32_i32$1; + i64toi32_i32$1 = $218 + $220 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $962; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + label$5 : { + label$6 : { + if (!((HEAP32[($16 + 336 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($16 + 196 | 0 | 0, btRigidBody__getInvInertiaTensorWorld_28_29_20const(HEAP32[($16 + 336 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($16 + 440 | 0) >> 2] | 0 | 0); + break label$5; + } + HEAPF32[($16 + 192 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($16 + 188 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($16 + 184 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($16 + 196 | 0 | 0, $16 + 192 | 0 | 0, $16 + 188 | 0 | 0, $16 + 184 | 0 | 0) | 0; + } + label$7 : { + label$8 : { + if (!((HEAP32[($16 + 332 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$8 + } + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($16 + 168 | 0 | 0, btRigidBody__getInvInertiaTensorWorld_28_29_20const(HEAP32[($16 + 332 | 0) >> 2] | 0 | 0) | 0 | 0, (HEAP32[($16 + 440 | 0) >> 2] | 0) + 32 | 0 | 0); + break label$7; + } + HEAPF32[($16 + 164 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($16 + 160 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($16 + 156 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($16 + 168 | 0 | 0, $16 + 164 | 0 | 0, $16 + 160 | 0 | 0, $16 + 156 | 0 | 0) | 0; + } + HEAPF32[($16 + 152 | 0) >> 2] = Math_fround(0 | 0); + $296 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($16 + 196 | 0 | 0, HEAP32[($16 + 440 | 0) >> 2] | 0 | 0)); + HEAPF32[($16 + 152 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($16 + 152 | 0) >> 2]) + $296); + $305 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($16 + 168 | 0 | 0, (HEAP32[($16 + 440 | 0) >> 2] | 0) + 32 | 0 | 0)); + HEAPF32[($16 + 152 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($16 + 152 | 0) >> 2]) + $305); + HEAPF32[((HEAP32[($16 + 440 | 0) >> 2] | 0) + 108 | 0) >> 2] = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[($16 + 152 | 0) >> 2])); + $314 = (HEAP32[($16 + 440 | 0) >> 2] | 0) + 16 | 0; + label$9 : { + label$10 : { + if (!((HEAP32[($16 + 336 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$10 + } + operator__28btVector3_20const__2c_20btVector3_20const__29_2($16 + 128 | 0 | 0, (HEAP32[($16 + 344 | 0) >> 2] | 0) + 176 | 0 | 0, (HEAP32[($16 + 344 | 0) >> 2] | 0) + 208 | 0 | 0); + break label$9; + } + HEAPF32[($16 + 124 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($16 + 120 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($16 + 116 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($16 + 128 | 0 | 0, $16 + 124 | 0 | 0, $16 + 120 | 0 | 0, $16 + 116 | 0 | 0) | 0; + } + $352 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($314 | 0, $16 + 128 | 0 | 0)); + $353 = HEAP32[($16 + 440 | 0) >> 2] | 0; + label$11 : { + label$12 : { + if (!((HEAP32[($16 + 336 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$12 + } + $363 = (HEAP32[($16 + 344 | 0) >> 2] | 0) + 192 | 0; + $364 = 8; + i64toi32_i32$2 = $363 + $364 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1235 = i64toi32_i32$0; + i64toi32_i32$0 = ($16 + 96 | 0) + $364 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1235; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $363; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1239 = i64toi32_i32$1; + i64toi32_i32$1 = $16; + HEAP32[($16 + 96 | 0) >> 2] = $1239; + HEAP32[($16 + 100 | 0) >> 2] = i64toi32_i32$0; + break label$11; + } + HEAPF32[($16 + 92 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($16 + 88 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($16 + 84 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($16 + 96 | 0 | 0, $16 + 92 | 0 | 0, $16 + 88 | 0 | 0, $16 + 84 | 0 | 0) | 0; + } + (wasm2js_i32$0 = $16, wasm2js_f32$0 = Math_fround($352 + Math_fround(btVector3__dot_28btVector3_20const__29_20const($353 | 0, $16 + 96 | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 144 | 0) >> 2] = wasm2js_f32$0; + $396 = (HEAP32[($16 + 440 | 0) >> 2] | 0) + 48 | 0; + label$13 : { + label$14 : { + if (!((HEAP32[($16 + 332 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$14 + } + operator__28btVector3_20const__2c_20btVector3_20const__29_2($16 + 64 | 0 | 0, (HEAP32[($16 + 340 | 0) >> 2] | 0) + 176 | 0 | 0, (HEAP32[($16 + 340 | 0) >> 2] | 0) + 208 | 0 | 0); + break label$13; + } + HEAPF32[($16 + 60 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($16 + 56 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($16 + 52 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($16 + 64 | 0 | 0, $16 + 60 | 0 | 0, $16 + 56 | 0 | 0, $16 + 52 | 0 | 0) | 0; + } + $434 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($396 | 0, $16 + 64 | 0 | 0)); + $437 = (HEAP32[($16 + 440 | 0) >> 2] | 0) + 32 | 0; + label$15 : { + label$16 : { + if (!((HEAP32[($16 + 332 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$16 + } + $447 = (HEAP32[($16 + 340 | 0) >> 2] | 0) + 192 | 0; + $448 = 8; + i64toi32_i32$2 = $447 + $448 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1393 = i64toi32_i32$0; + i64toi32_i32$0 = ($16 + 32 | 0) + $448 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1393; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $447; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1397 = i64toi32_i32$1; + i64toi32_i32$1 = $16; + HEAP32[($16 + 32 | 0) >> 2] = $1397; + HEAP32[($16 + 36 | 0) >> 2] = i64toi32_i32$0; + break label$15; + } + HEAPF32[($16 + 28 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($16 + 24 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($16 + 20 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($16 + 32 | 0 | 0, $16 + 28 | 0 | 0, $16 + 24 | 0 | 0, $16 + 20 | 0 | 0) | 0; + } + (wasm2js_i32$0 = $16, wasm2js_f32$0 = Math_fround($434 + Math_fround(btVector3__dot_28btVector3_20const__29_20const($437 | 0, $16 + 32 | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 80 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($16 + 148 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($16 + 144 | 0) >> 2]) + Math_fround(HEAPF32[($16 + 80 | 0) >> 2])); + HEAPF32[($16 + 16 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($16 + 396 | 0) >> 2]) - Math_fround(HEAPF32[($16 + 148 | 0) >> 2])); + HEAPF32[($16 + 12 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($16 + 16 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($16 + 440 | 0) >> 2] | 0) + 108 | 0) >> 2])); + HEAPF32[((HEAP32[($16 + 440 | 0) >> 2] | 0) + 112 | 0) >> 2] = Math_fround(HEAPF32[($16 + 12 | 0) >> 2]); + HEAPF32[((HEAP32[($16 + 440 | 0) >> 2] | 0) + 116 | 0) >> 2] = Math_fround(HEAPF32[($16 + 392 | 0) >> 2]); + HEAPF32[((HEAP32[($16 + 440 | 0) >> 2] | 0) + 120 | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[((HEAP32[($16 + 440 | 0) >> 2] | 0) + 104 | 0) >> 2])); + HEAPF32[((HEAP32[($16 + 440 | 0) >> 2] | 0) + 124 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($16 + 440 | 0) >> 2] | 0) + 104 | 0) >> 2]); + __stack_pointer = $16 + 448 | 0; + return; + } + + function btSequentialImpulseConstraintSolver__addTorsionalFrictionConstraint_28btVector3_20const__2c_20int_2c_20int_2c_20int_2c_20btManifoldPoint__2c_20float_2c_20btVector3_20const__2c_20btVector3_20const__2c_20btCollisionObject__2c_20btCollisionObject__2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = Math_fround($6); + $7 = $7 | 0; + $8 = $8 | 0; + $9 = $9 | 0; + $10 = $10 | 0; + $11 = Math_fround($11); + $12 = Math_fround($12); + $13 = Math_fround($13); + var $16 = 0, $17 = 0, $36 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $16 = __stack_pointer - 64 | 0; + __stack_pointer = $16; + HEAP32[($16 + 60 | 0) >> 2] = $0; + HEAP32[($16 + 56 | 0) >> 2] = $1; + HEAP32[($16 + 52 | 0) >> 2] = $2; + HEAP32[($16 + 48 | 0) >> 2] = $3; + HEAP32[($16 + 44 | 0) >> 2] = $4; + HEAP32[($16 + 40 | 0) >> 2] = $5; + HEAPF32[($16 + 36 | 0) >> 2] = $6; + HEAP32[($16 + 32 | 0) >> 2] = $7; + HEAP32[($16 + 28 | 0) >> 2] = $8; + HEAP32[($16 + 24 | 0) >> 2] = $9; + HEAP32[($16 + 20 | 0) >> 2] = $10; + HEAPF32[($16 + 16 | 0) >> 2] = $11; + HEAPF32[($16 + 12 | 0) >> 2] = $12; + HEAPF32[($16 + 8 | 0) >> 2] = $13; + $17 = HEAP32[($16 + 60 | 0) >> 2] | 0; + (wasm2js_i32$0 = $16, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___expandNonInitializing_28_29($17 + 84 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + HEAP32[((HEAP32[($16 + 4 | 0) >> 2] | 0) + 140 | 0) >> 2] = HEAP32[($16 + 44 | 0) >> 2] | 0; + btSequentialImpulseConstraintSolver__setupTorsionalFrictionConstraint_28btSolverConstraint__2c_20btVector3_20const__2c_20int_2c_20int_2c_20btManifoldPoint__2c_20float_2c_20btVector3_20const__2c_20btVector3_20const__2c_20btCollisionObject__2c_20btCollisionObject__2c_20float_2c_20float_2c_20float_29($17 | 0, HEAP32[($16 + 4 | 0) >> 2] | 0 | 0, HEAP32[($16 + 56 | 0) >> 2] | 0 | 0, HEAP32[($16 + 52 | 0) >> 2] | 0 | 0, HEAP32[($16 + 48 | 0) >> 2] | 0 | 0, HEAP32[($16 + 40 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($16 + 36 | 0) >> 2])), HEAP32[($16 + 32 | 0) >> 2] | 0 | 0, HEAP32[($16 + 28 | 0) >> 2] | 0 | 0, HEAP32[($16 + 24 | 0) >> 2] | 0 | 0, HEAP32[($16 + 20 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($16 + 16 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($16 + 12 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($16 + 8 | 0) >> 2]))); + $36 = HEAP32[($16 + 4 | 0) >> 2] | 0; + __stack_pointer = $16 + 64 | 0; + return $36 | 0; + } + + function btSequentialImpulseConstraintSolver__getOrInitSolverBody_28btCollisionObject__2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0, $6 = 0, $100 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 528 | 0; + __stack_pointer = $5; + HEAP32[($5 + 520 | 0) >> 2] = $0; + HEAP32[($5 + 516 | 0) >> 2] = $1; + HEAPF32[($5 + 512 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 520 | 0) >> 2] | 0; + HEAP32[($5 + 508 | 0) >> 2] = -1; + label$1 : { + label$2 : { + label$3 : { + if (!((btCollisionObject__getCompanionId_28_29_20const(HEAP32[($5 + 516 | 0) >> 2] | 0 | 0) | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$3 + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btCollisionObject__getCompanionId_28_29_20const(HEAP32[($5 + 516 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 508 | 0) >> 2] = wasm2js_i32$1; + label$4 : { + if ((HEAP32[($5 + 508 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btSolverBody___size_28_29_20const($6 + 4 | 0 | 0) | 0 | 0) & 1 | 0) { + break label$4 + } + __assert_fail(87662 | 0, 72591 | 0, 807 | 0, 66064 | 0); + wasm2js_trap(); + } + break label$2; + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btRigidBody__upcast_28btCollisionObject__29(HEAP32[($5 + 516 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 504 | 0) >> 2] = wasm2js_i32$1; + label$5 : { + label$6 : { + if (!((HEAP32[($5 + 504 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + label$7 : { + if (Math_fround(btRigidBody__getInvMass_28_29_20const(HEAP32[($5 + 504 | 0) >> 2] | 0 | 0)) != Math_fround(0 | 0) & 1 | 0) { + break label$7 + } + if (!((btCollisionObject__isKinematicObject_28_29_20const(HEAP32[($5 + 504 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$6 + } + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btSolverBody___size_28_29_20const($6 + 4 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 508 | 0) >> 2] = wasm2js_i32$1; + __memset($5 + 256 | 0 | 0, 0 | 0, 244 | 0) | 0; + btSolverBody__btSolverBody_28_29($5 + 256 | 0 | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btSolverBody___expand_28btSolverBody_20const__29($6 + 4 | 0 | 0, $5 + 256 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 500 | 0) >> 2] = wasm2js_i32$1; + btSequentialImpulseConstraintSolver__initSolverBody_28btSolverBody__2c_20btCollisionObject__2c_20float_29($6 | 0, HEAP32[($5 + 500 | 0) >> 2] | 0 | 0, HEAP32[($5 + 516 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 512 | 0) >> 2]))); + btCollisionObject__setCompanionId_28int_29(HEAP32[($5 + 516 | 0) >> 2] | 0 | 0, HEAP32[($5 + 508 | 0) >> 2] | 0 | 0); + break label$5; + } + label$8 : { + if (!((HEAP32[($6 + 188 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0)) { + break label$8 + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btAlignedObjectArray_btSolverBody___size_28_29_20const($6 + 4 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 188 | 0) >> 2] = wasm2js_i32$1; + __memset($5 + 8 | 0 | 0, 0 | 0, 244 | 0) | 0; + btSolverBody__btSolverBody_28_29($5 + 8 | 0 | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btSolverBody___expand_28btSolverBody_20const__29($6 + 4 | 0 | 0, $5 + 8 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 252 | 0) >> 2] = wasm2js_i32$1; + btSequentialImpulseConstraintSolver__initSolverBody_28btSolverBody__2c_20btCollisionObject__2c_20float_29($6 | 0, HEAP32[($5 + 252 | 0) >> 2] | 0 | 0, 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 512 | 0) >> 2]))); + } + HEAP32[($5 + 524 | 0) >> 2] = HEAP32[($6 + 188 | 0) >> 2] | 0; + break label$1; + } + } + HEAP32[($5 + 524 | 0) >> 2] = HEAP32[($5 + 508 | 0) >> 2] | 0; + } + $100 = HEAP32[($5 + 524 | 0) >> 2] | 0; + __stack_pointer = $5 + 528 | 0; + return $100 | 0; + } + + function btCollisionObject__getCompanionId_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 212 | 0) >> 2] | 0 | 0; + } + + function btSolverBody__btSolverBody_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btTransform__btTransform_28_29($4 | 0) | 0; + btVector3__btVector3_28_29($4 + 64 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 80 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 96 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 112 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 128 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 144 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 160 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 176 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 192 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 208 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 224 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btSolverBody___expand_28btSolverBody_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $31 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btSolverBody___size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btSolverBody___capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btSolverBody___reserve_28int_29($5 | 0, btAlignedObjectArray_btSolverBody___allocSize_28int_29($5 | 0, btAlignedObjectArray_btSolverBody___size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + btSolverBody__btSolverBody_28btSolverBody_20const__29(btSolverBody__operator_20new_28unsigned_20long_2c_20void__29(244 | 0, (HEAP32[($5 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($4 + 4 | 0) >> 2] | 0, 244) | 0 | 0) | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + $31 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($4 + 4 | 0) >> 2] | 0, 244) | 0; + __stack_pointer = $4 + 16 | 0; + return $31 | 0; + } + + function btCollisionObject__setCompanionId_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 212 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return; + } + + function btAlignedObjectArray_btSolverBody___capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btSolverBody___allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btAlignedObjectArray_btSolverBody___reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btSolverBody___capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btSolverBody___allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btSolverBody___copy_28int_2c_20int_2c_20btSolverBody__29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btSolverBody___size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btSolverBody___destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btSolverBody___size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btSolverBody___deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btSolverBody__operator_20new_28unsigned_20long_2c_20void__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return HEAP32[($4 + 8 | 0) >> 2] | 0 | 0; + } + + function btSolverBody__btSolverBody_28btSolverBody_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btTransform__btTransform_28btTransform_20const__29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + __memcpy($5 + 64 | 0 | 0, (HEAP32[($4 + 8 | 0) >> 2] | 0) + 64 | 0 | 0, 180 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function btSequentialImpulseConstraintSolver__setupContactConstraint_28btSolverConstraint__2c_20int_2c_20int_2c_20btManifoldPoint__2c_20btContactSolverInfo_20const__2c_20float__2c_20btVector3_20const__2c_20btVector3_20const__29($0, $1, $2, $3, $4, $5, $6, $7, $8) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + $8 = $8 | 0; + var $11 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $12 = 0, $137 = 0, $139 = 0, $201 = 0, $203 = 0, $230 = 0, $269 = 0, $310 = 0, $312 = 0, $316 = 0, $318 = 0, $343 = 0, $345 = 0, $359 = 0, $361 = 0, $416 = 0, $455 = 0, $600 = 0, $601 = 0, $636 = 0, $637 = 0, $672 = 0, $673 = 0, $708 = 0, $709 = 0, $1170 = 0, $1183 = 0, $160 = 0, $1291 = 0, $1304 = 0, $1360 = 0, $1364 = 0, $1437 = 0, $1441 = 0, $1515 = 0, $1525 = 0, $1531 = 0, $1544 = 0, $1585 = 0, $1598 = 0, $1617 = 0, $1630 = 0, $1743 = 0, $1747 = 0, $1819 = 0, $1823 = 0, $514 = 0, $546 = 0, $2107 = 0, $2111 = 0, $2176 = 0, $2180 = 0, $2245 = 0, $2249 = 0, $2314 = 0, $2318 = 0, $736 = 0, $749 = Math_fround(0), $750 = 0, $767 = 0, $780 = Math_fround(0), $783 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $11 = __stack_pointer - 752 | 0; + __stack_pointer = $11; + HEAP32[($11 + 748 | 0) >> 2] = $0; + HEAP32[($11 + 744 | 0) >> 2] = $1; + HEAP32[($11 + 740 | 0) >> 2] = $2; + HEAP32[($11 + 736 | 0) >> 2] = $3; + HEAP32[($11 + 732 | 0) >> 2] = $4; + HEAP32[($11 + 728 | 0) >> 2] = $5; + HEAP32[($11 + 724 | 0) >> 2] = $6; + HEAP32[($11 + 720 | 0) >> 2] = $7; + HEAP32[($11 + 716 | 0) >> 2] = $8; + $12 = HEAP32[($11 + 748 | 0) >> 2] | 0; + (wasm2js_i32$0 = $11, wasm2js_i32$1 = btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($12 + 4 | 0 | 0, HEAP32[($11 + 740 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 712 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $11, wasm2js_i32$1 = btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($12 + 4 | 0 | 0, HEAP32[($11 + 736 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 708 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($11 + 704 | 0) >> 2] = HEAP32[((HEAP32[($11 + 712 | 0) >> 2] | 0) + 240 | 0) >> 2] | 0; + HEAP32[($11 + 700 | 0) >> 2] = HEAP32[((HEAP32[($11 + 708 | 0) >> 2] | 0) + 240 | 0) >> 2] | 0; + HEAPF32[(HEAP32[($11 + 724 | 0) >> 2] | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($11 + 728 | 0) >> 2] | 0) + 28 | 0) >> 2]); + HEAPF32[($11 + 696 | 0) >> 2] = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[((HEAP32[($11 + 728 | 0) >> 2] | 0) + 12 | 0) >> 2])); + HEAPF32[($11 + 692 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($11 + 728 | 0) >> 2] | 0) + 40 | 0) >> 2]); + HEAPF32[($11 + 688 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($11 + 728 | 0) >> 2] | 0) + 36 | 0) >> 2]); + label$1 : { + label$2 : { + label$3 : { + if ((HEAP32[((HEAP32[($11 + 732 | 0) >> 2] | 0) + 128 | 0) >> 2] | 0) & 2 | 0) { + break label$3 + } + if (!((HEAP32[((HEAP32[($11 + 732 | 0) >> 2] | 0) + 128 | 0) >> 2] | 0) & 4 | 0)) { + break label$2 + } + } + label$4 : { + if (!((HEAP32[((HEAP32[($11 + 732 | 0) >> 2] | 0) + 128 | 0) >> 2] | 0) & 2 | 0)) { + break label$4 + } + HEAPF32[($11 + 692 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($11 + 732 | 0) >> 2] | 0) + 152 | 0) >> 2]); + } + label$5 : { + if (!((HEAP32[((HEAP32[($11 + 732 | 0) >> 2] | 0) + 128 | 0) >> 2] | 0) & 4 | 0)) { + break label$5 + } + HEAPF32[($11 + 688 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($11 + 732 | 0) >> 2] | 0) + 156 | 0) >> 2]); + } + break label$1; + } + label$6 : { + if (!((HEAP32[((HEAP32[($11 + 732 | 0) >> 2] | 0) + 128 | 0) >> 2] | 0) & 8 | 0)) { + break label$6 + } + HEAPF32[($11 + 684 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[((HEAP32[($11 + 728 | 0) >> 2] | 0) + 12 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($11 + 732 | 0) >> 2] | 0) + 152 | 0) >> 2])) + Math_fround(HEAPF32[((HEAP32[($11 + 732 | 0) >> 2] | 0) + 156 | 0) >> 2])); + label$7 : { + if (!(Math_fround(HEAPF32[($11 + 684 | 0) >> 2]) < Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$7 + } + HEAPF32[($11 + 684 | 0) >> 2] = Math_fround(1.1920928955078125e-07); + } + HEAPF32[($11 + 692 | 0) >> 2] = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[($11 + 684 | 0) >> 2])); + HEAPF32[($11 + 688 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[((HEAP32[($11 + 728 | 0) >> 2] | 0) + 12 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($11 + 732 | 0) >> 2] | 0) + 152 | 0) >> 2])) / Math_fround(HEAPF32[($11 + 684 | 0) >> 2])); + } + } + HEAPF32[($11 + 692 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($11 + 692 | 0) >> 2]) * Math_fround(HEAPF32[($11 + 696 | 0) >> 2])); + btVector3__cross_28btVector3_20const__29_20const($11 + 668 | 0 | 0, HEAP32[($11 + 720 | 0) >> 2] | 0 | 0, (HEAP32[($11 + 732 | 0) >> 2] | 0) + 64 | 0 | 0); + label$8 : { + label$9 : { + if (!((HEAP32[($11 + 704 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$9 + } + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($11 + 636 | 0 | 0, btRigidBody__getInvInertiaTensorWorld_28_29_20const(HEAP32[($11 + 704 | 0) >> 2] | 0 | 0) | 0 | 0, $11 + 668 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($11 + 652 | 0 | 0, $11 + 636 | 0 | 0, btRigidBody__getAngularFactor_28_29_20const(HEAP32[($11 + 704 | 0) >> 2] | 0 | 0) | 0 | 0); + break label$8; + } + HEAPF32[($11 + 632 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 628 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 624 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($11 + 652 | 0 | 0, $11 + 632 | 0 | 0, $11 + 628 | 0 | 0, $11 + 624 | 0 | 0) | 0; + } + $137 = (HEAP32[($11 + 744 | 0) >> 2] | 0) + 64 | 0; + i64toi32_i32$2 = $11; + i64toi32_i32$0 = HEAP32[($11 + 652 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($11 + 656 | 0) >> 2] | 0; + $1170 = i64toi32_i32$0; + i64toi32_i32$0 = $137; + HEAP32[i64toi32_i32$0 >> 2] = $1170; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $139 = 8; + i64toi32_i32$2 = ($11 + 652 | 0) + $139 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1183 = i64toi32_i32$1; + i64toi32_i32$1 = $137 + $139 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1183; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__cross_28btVector3_20const__29_20const($11 + 608 | 0 | 0, HEAP32[($11 + 716 | 0) >> 2] | 0 | 0, (HEAP32[($11 + 732 | 0) >> 2] | 0) + 64 | 0 | 0); + label$10 : { + label$11 : { + if (!((HEAP32[($11 + 700 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$11 + } + $160 = btRigidBody__getInvInertiaTensorWorld_28_29_20const(HEAP32[($11 + 700 | 0) >> 2] | 0 | 0) | 0; + operator__28btVector3_20const__29($11 + 560 | 0 | 0, $11 + 608 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($11 + 576 | 0 | 0, $160 | 0, $11 + 560 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($11 + 592 | 0 | 0, $11 + 576 | 0 | 0, btRigidBody__getAngularFactor_28_29_20const(HEAP32[($11 + 700 | 0) >> 2] | 0 | 0) | 0 | 0); + break label$10; + } + HEAPF32[($11 + 556 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 552 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 548 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($11 + 592 | 0 | 0, $11 + 556 | 0 | 0, $11 + 552 | 0 | 0, $11 + 548 | 0 | 0) | 0; + } + $201 = (HEAP32[($11 + 744 | 0) >> 2] | 0) + 80 | 0; + i64toi32_i32$2 = $11; + i64toi32_i32$0 = HEAP32[($11 + 592 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($11 + 596 | 0) >> 2] | 0; + $1291 = i64toi32_i32$0; + i64toi32_i32$0 = $201; + HEAP32[i64toi32_i32$0 >> 2] = $1291; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $203 = 8; + i64toi32_i32$2 = ($11 + 592 | 0) + $203 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1304 = i64toi32_i32$1; + i64toi32_i32$1 = $201 + $203 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1304; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__btVector3_28_29($11 + 528 | 0 | 0) | 0; + HEAPF32[($11 + 524 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 520 | 0) >> 2] = Math_fround(0 | 0); + label$12 : { + if (!((HEAP32[($11 + 704 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$12 + } + btVector3__cross_28btVector3_20const__29_20const($11 + 504 | 0 | 0, (HEAP32[($11 + 744 | 0) >> 2] | 0) + 64 | 0 | 0, HEAP32[($11 + 720 | 0) >> 2] | 0 | 0); + $230 = 8; + i64toi32_i32$2 = ($11 + 504 | 0) + $230 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1360 = i64toi32_i32$0; + i64toi32_i32$0 = ($11 + 528 | 0) + $230 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1360; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $11; + i64toi32_i32$1 = HEAP32[($11 + 504 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($11 + 508 | 0) >> 2] | 0; + $1364 = i64toi32_i32$1; + i64toi32_i32$1 = $11; + HEAP32[($11 + 528 | 0) >> 2] = $1364; + HEAP32[($11 + 532 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $11, wasm2js_f32$0 = Math_fround(Math_fround(btRigidBody__getInvMass_28_29_20const(HEAP32[($11 + 704 | 0) >> 2] | 0 | 0)) + Math_fround(btVector3__dot_28btVector3_20const__29_20const((HEAP32[($11 + 732 | 0) >> 2] | 0) + 64 | 0 | 0, $11 + 528 | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 524 | 0) >> 2] = wasm2js_f32$0; + } + label$13 : { + if (!((HEAP32[($11 + 700 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$13 + } + operator__28btVector3_20const__29($11 + 472 | 0 | 0, (HEAP32[($11 + 744 | 0) >> 2] | 0) + 80 | 0 | 0); + btVector3__cross_28btVector3_20const__29_20const($11 + 488 | 0 | 0, $11 + 472 | 0 | 0, HEAP32[($11 + 716 | 0) >> 2] | 0 | 0); + $269 = 8; + i64toi32_i32$2 = ($11 + 488 | 0) + $269 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1437 = i64toi32_i32$0; + i64toi32_i32$0 = ($11 + 528 | 0) + $269 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1437; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $11; + i64toi32_i32$1 = HEAP32[($11 + 488 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($11 + 492 | 0) >> 2] | 0; + $1441 = i64toi32_i32$1; + i64toi32_i32$1 = $11; + HEAP32[($11 + 528 | 0) >> 2] = $1441; + HEAP32[($11 + 532 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $11, wasm2js_f32$0 = Math_fround(Math_fround(btRigidBody__getInvMass_28_29_20const(HEAP32[($11 + 700 | 0) >> 2] | 0 | 0)) + Math_fround(btVector3__dot_28btVector3_20const__29_20const((HEAP32[($11 + 732 | 0) >> 2] | 0) + 64 | 0 | 0, $11 + 528 | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 520 | 0) >> 2] = wasm2js_f32$0; + } + HEAPF32[($11 + 468 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[(HEAP32[($11 + 724 | 0) >> 2] | 0) >> 2]) / Math_fround(Math_fround(Math_fround(HEAPF32[($11 + 524 | 0) >> 2]) + Math_fround(HEAPF32[($11 + 520 | 0) >> 2])) + Math_fround(HEAPF32[($11 + 692 | 0) >> 2]))); + HEAPF32[((HEAP32[($11 + 744 | 0) >> 2] | 0) + 108 | 0) >> 2] = Math_fround(HEAPF32[($11 + 468 | 0) >> 2]); + label$14 : { + label$15 : { + if (!((HEAP32[($11 + 704 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$15 + } + $310 = (HEAP32[($11 + 744 | 0) >> 2] | 0) + 16 | 0; + i64toi32_i32$2 = (HEAP32[($11 + 732 | 0) >> 2] | 0) + 64 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1515 = i64toi32_i32$0; + i64toi32_i32$0 = $310; + HEAP32[i64toi32_i32$0 >> 2] = $1515; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $312 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $312 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1525 = i64toi32_i32$1; + i64toi32_i32$1 = $310 + $312 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1525; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $316 = HEAP32[($11 + 744 | 0) >> 2] | 0; + i64toi32_i32$2 = $11; + i64toi32_i32$0 = HEAP32[($11 + 668 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($11 + 672 | 0) >> 2] | 0; + $1531 = i64toi32_i32$0; + i64toi32_i32$0 = $316; + HEAP32[i64toi32_i32$0 >> 2] = $1531; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $318 = 8; + i64toi32_i32$2 = ($11 + 668 | 0) + $318 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1544 = i64toi32_i32$1; + i64toi32_i32$1 = $316 + $318 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1544; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$14; + } + btVector3__setZero_28_29((HEAP32[($11 + 744 | 0) >> 2] | 0) + 16 | 0 | 0); + btVector3__setZero_28_29(HEAP32[($11 + 744 | 0) >> 2] | 0 | 0); + } + label$16 : { + label$17 : { + if (!((HEAP32[($11 + 700 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$17 + } + operator__28btVector3_20const__29($11 + 452 | 0 | 0, (HEAP32[($11 + 732 | 0) >> 2] | 0) + 64 | 0 | 0); + $343 = (HEAP32[($11 + 744 | 0) >> 2] | 0) + 48 | 0; + i64toi32_i32$2 = $11; + i64toi32_i32$0 = HEAP32[($11 + 452 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($11 + 456 | 0) >> 2] | 0; + $1585 = i64toi32_i32$0; + i64toi32_i32$0 = $343; + HEAP32[i64toi32_i32$0 >> 2] = $1585; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $345 = 8; + i64toi32_i32$2 = ($11 + 452 | 0) + $345 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1598 = i64toi32_i32$1; + i64toi32_i32$1 = $343 + $345 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1598; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__29($11 + 436 | 0 | 0, $11 + 608 | 0 | 0); + $359 = (HEAP32[($11 + 744 | 0) >> 2] | 0) + 32 | 0; + i64toi32_i32$2 = $11; + i64toi32_i32$0 = HEAP32[($11 + 436 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($11 + 440 | 0) >> 2] | 0; + $1617 = i64toi32_i32$0; + i64toi32_i32$0 = $359; + HEAP32[i64toi32_i32$0 >> 2] = $1617; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $361 = 8; + i64toi32_i32$2 = ($11 + 436 | 0) + $361 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1630 = i64toi32_i32$1; + i64toi32_i32$1 = $359 + $361 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1630; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$16; + } + btVector3__setZero_28_29((HEAP32[($11 + 744 | 0) >> 2] | 0) + 48 | 0 | 0); + btVector3__setZero_28_29((HEAP32[($11 + 744 | 0) >> 2] | 0) + 32 | 0 | 0); + } + HEAPF32[($11 + 432 | 0) >> 2] = Math_fround(0 | 0); + (wasm2js_i32$0 = $11, wasm2js_f32$0 = Math_fround(Math_fround(btManifoldPoint__getDistance_28_29_20const(HEAP32[($11 + 732 | 0) >> 2] | 0 | 0)) + Math_fround(HEAPF32[((HEAP32[($11 + 728 | 0) >> 2] | 0) + 64 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 428 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28_29($11 + 408 | 0 | 0) | 0; + btVector3__btVector3_28_29($11 + 392 | 0 | 0) | 0; + label$18 : { + label$19 : { + if (!((HEAP32[($11 + 704 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$19 + } + btRigidBody__getVelocityInLocalPoint_28btVector3_20const__29_20const($11 + 376 | 0 | 0, HEAP32[($11 + 704 | 0) >> 2] | 0 | 0, HEAP32[($11 + 720 | 0) >> 2] | 0 | 0); + break label$18; + } + HEAPF32[($11 + 372 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 368 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 364 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($11 + 376 | 0 | 0, $11 + 372 | 0 | 0, $11 + 368 | 0 | 0, $11 + 364 | 0 | 0) | 0; + } + $416 = 8; + i64toi32_i32$2 = ($11 + 376 | 0) + $416 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1743 = i64toi32_i32$0; + i64toi32_i32$0 = ($11 + 408 | 0) + $416 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1743; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $11; + i64toi32_i32$1 = HEAP32[($11 + 376 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($11 + 380 | 0) >> 2] | 0; + $1747 = i64toi32_i32$1; + i64toi32_i32$1 = $11; + HEAP32[($11 + 408 | 0) >> 2] = $1747; + HEAP32[($11 + 412 | 0) >> 2] = i64toi32_i32$0; + label$20 : { + label$21 : { + if (!((HEAP32[($11 + 700 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$21 + } + btRigidBody__getVelocityInLocalPoint_28btVector3_20const__29_20const($11 + 348 | 0 | 0, HEAP32[($11 + 700 | 0) >> 2] | 0 | 0, HEAP32[($11 + 716 | 0) >> 2] | 0 | 0); + break label$20; + } + HEAPF32[($11 + 344 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 340 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 336 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($11 + 348 | 0 | 0, $11 + 344 | 0 | 0, $11 + 340 | 0 | 0, $11 + 336 | 0 | 0) | 0; + } + $455 = 8; + i64toi32_i32$2 = ($11 + 348 | 0) + $455 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1819 = i64toi32_i32$0; + i64toi32_i32$0 = ($11 + 392 | 0) + $455 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1819; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $11; + i64toi32_i32$1 = HEAP32[($11 + 348 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($11 + 352 | 0) >> 2] | 0; + $1823 = i64toi32_i32$1; + i64toi32_i32$1 = $11; + HEAP32[($11 + 392 | 0) >> 2] = $1823; + HEAP32[($11 + 396 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($11 + 320 | 0 | 0, $11 + 408 | 0 | 0, $11 + 392 | 0 | 0); + (wasm2js_i32$0 = $11, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const((HEAP32[($11 + 732 | 0) >> 2] | 0) + 64 | 0 | 0, $11 + 320 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 316 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[((HEAP32[($11 + 744 | 0) >> 2] | 0) + 104 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($11 + 732 | 0) >> 2] | 0) + 84 | 0) >> 2]); + (wasm2js_i32$0 = $11, wasm2js_f32$0 = Math_fround(btSequentialImpulseConstraintSolver__restitutionCurve_28float_2c_20float_2c_20float_29($12 | 0, Math_fround(Math_fround(HEAPF32[($11 + 316 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[((HEAP32[($11 + 732 | 0) >> 2] | 0) + 96 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[((HEAP32[($11 + 728 | 0) >> 2] | 0) + 96 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 432 | 0) >> 2] = wasm2js_f32$0; + label$22 : { + if (!(Math_fround(HEAPF32[($11 + 432 | 0) >> 2]) <= Math_fround(0 | 0) & 1 | 0)) { + break label$22 + } + HEAPF32[($11 + 432 | 0) >> 2] = Math_fround(0 | 0); + } + label$23 : { + label$24 : { + if (!((HEAP32[((HEAP32[($11 + 728 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0) & 4 | 0)) { + break label$24 + } + HEAPF32[((HEAP32[($11 + 744 | 0) >> 2] | 0) + 100 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($11 + 732 | 0) >> 2] | 0) + 132 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($11 + 728 | 0) >> 2] | 0) + 68 | 0) >> 2])); + label$25 : { + if (!((HEAP32[($11 + 704 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$25 + } + $514 = HEAP32[($11 + 712 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($11 + 284 | 0 | 0, (HEAP32[($11 + 744 | 0) >> 2] | 0) + 16 | 0 | 0, btSolverBody__internalGetInvMass_28_29_20const(HEAP32[($11 + 712 | 0) >> 2] | 0 | 0) | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($11 + 300 | 0 | 0, $11 + 284 | 0 | 0, btRigidBody__getLinearFactor_28_29_20const(HEAP32[($11 + 704 | 0) >> 2] | 0 | 0) | 0 | 0); + btSolverBody__internalApplyImpulse_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($514 | 0, $11 + 300 | 0 | 0, (HEAP32[($11 + 744 | 0) >> 2] | 0) + 64 | 0 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($11 + 744 | 0) >> 2] | 0) + 100 | 0) >> 2]))); + } + label$26 : { + if (!((HEAP32[($11 + 700 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$26 + } + $546 = HEAP32[($11 + 708 | 0) >> 2] | 0; + operator__28btVector3_20const__29($11 + 236 | 0 | 0, (HEAP32[($11 + 744 | 0) >> 2] | 0) + 48 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($11 + 252 | 0 | 0, $11 + 236 | 0 | 0, btSolverBody__internalGetInvMass_28_29_20const(HEAP32[($11 + 708 | 0) >> 2] | 0 | 0) | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($11 + 268 | 0 | 0, $11 + 252 | 0 | 0, btRigidBody__getLinearFactor_28_29_20const(HEAP32[($11 + 700 | 0) >> 2] | 0 | 0) | 0 | 0); + operator__28btVector3_20const__29($11 + 220 | 0 | 0, (HEAP32[($11 + 744 | 0) >> 2] | 0) + 80 | 0 | 0); + btSolverBody__internalApplyImpulse_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($546 | 0, $11 + 268 | 0 | 0, $11 + 220 | 0 | 0, Math_fround(Math_fround(-Math_fround(HEAPF32[((HEAP32[($11 + 744 | 0) >> 2] | 0) + 100 | 0) >> 2])))); + } + break label$23; + } + HEAPF32[((HEAP32[($11 + 744 | 0) >> 2] | 0) + 100 | 0) >> 2] = Math_fround(0 | 0); + } + HEAPF32[((HEAP32[($11 + 744 | 0) >> 2] | 0) + 96 | 0) >> 2] = Math_fround(0 | 0); + label$27 : { + label$28 : { + if (!((HEAP32[((HEAP32[($11 + 712 | 0) >> 2] | 0) + 240 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$28 + } + $600 = (HEAP32[($11 + 712 | 0) >> 2] | 0) + 208 | 0; + $601 = 8; + i64toi32_i32$2 = $600 + $601 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2107 = i64toi32_i32$0; + i64toi32_i32$0 = ($11 + 200 | 0) + $601 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2107; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $600; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2111 = i64toi32_i32$1; + i64toi32_i32$1 = $11; + HEAP32[($11 + 200 | 0) >> 2] = $2111; + HEAP32[($11 + 204 | 0) >> 2] = i64toi32_i32$0; + break label$27; + } + HEAPF32[($11 + 196 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 192 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 188 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($11 + 200 | 0 | 0, $11 + 196 | 0 | 0, $11 + 192 | 0 | 0, $11 + 188 | 0 | 0) | 0; + } + label$29 : { + label$30 : { + if (!((HEAP32[((HEAP32[($11 + 712 | 0) >> 2] | 0) + 240 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$30 + } + $636 = (HEAP32[($11 + 712 | 0) >> 2] | 0) + 224 | 0; + $637 = 8; + i64toi32_i32$2 = $636 + $637 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2176 = i64toi32_i32$0; + i64toi32_i32$0 = ($11 + 168 | 0) + $637 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2176; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $636; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2180 = i64toi32_i32$1; + i64toi32_i32$1 = $11; + HEAP32[($11 + 168 | 0) >> 2] = $2180; + HEAP32[($11 + 172 | 0) >> 2] = i64toi32_i32$0; + break label$29; + } + HEAPF32[($11 + 164 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 160 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 156 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($11 + 168 | 0 | 0, $11 + 164 | 0 | 0, $11 + 160 | 0 | 0, $11 + 156 | 0 | 0) | 0; + } + label$31 : { + label$32 : { + if (!((HEAP32[((HEAP32[($11 + 708 | 0) >> 2] | 0) + 240 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$32 + } + $672 = (HEAP32[($11 + 708 | 0) >> 2] | 0) + 208 | 0; + $673 = 8; + i64toi32_i32$2 = $672 + $673 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2245 = i64toi32_i32$0; + i64toi32_i32$0 = ($11 + 136 | 0) + $673 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2245; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $672; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2249 = i64toi32_i32$1; + i64toi32_i32$1 = $11; + HEAP32[($11 + 136 | 0) >> 2] = $2249; + HEAP32[($11 + 140 | 0) >> 2] = i64toi32_i32$0; + break label$31; + } + HEAPF32[($11 + 132 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 128 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 124 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($11 + 136 | 0 | 0, $11 + 132 | 0 | 0, $11 + 128 | 0 | 0, $11 + 124 | 0 | 0) | 0; + } + label$33 : { + label$34 : { + if (!((HEAP32[((HEAP32[($11 + 708 | 0) >> 2] | 0) + 240 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$34 + } + $708 = (HEAP32[($11 + 708 | 0) >> 2] | 0) + 224 | 0; + $709 = 8; + i64toi32_i32$2 = $708 + $709 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2314 = i64toi32_i32$0; + i64toi32_i32$0 = ($11 + 104 | 0) + $709 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2314; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $708; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2318 = i64toi32_i32$1; + i64toi32_i32$1 = $11; + HEAP32[($11 + 104 | 0) >> 2] = $2318; + HEAP32[($11 + 108 | 0) >> 2] = i64toi32_i32$0; + break label$33; + } + HEAPF32[($11 + 100 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 96 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 92 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($11 + 104 | 0 | 0, $11 + 100 | 0 | 0, $11 + 96 | 0 | 0, $11 + 92 | 0 | 0) | 0; + } + $736 = (HEAP32[($11 + 744 | 0) >> 2] | 0) + 16 | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($11 + 72 | 0 | 0, (HEAP32[($11 + 712 | 0) >> 2] | 0) + 176 | 0 | 0, $11 + 200 | 0 | 0); + $749 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($736 | 0, $11 + 72 | 0 | 0)); + $750 = HEAP32[($11 + 744 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($11 + 56 | 0 | 0, (HEAP32[($11 + 712 | 0) >> 2] | 0) + 192 | 0 | 0, $11 + 168 | 0 | 0); + (wasm2js_i32$0 = $11, wasm2js_f32$0 = Math_fround($749 + Math_fround(btVector3__dot_28btVector3_20const__29_20const($750 | 0, $11 + 56 | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 88 | 0) >> 2] = wasm2js_f32$0; + $767 = (HEAP32[($11 + 744 | 0) >> 2] | 0) + 48 | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($11 + 36 | 0 | 0, (HEAP32[($11 + 708 | 0) >> 2] | 0) + 176 | 0 | 0, $11 + 136 | 0 | 0); + $780 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($767 | 0, $11 + 36 | 0 | 0)); + $783 = (HEAP32[($11 + 744 | 0) >> 2] | 0) + 32 | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($11 + 20 | 0 | 0, (HEAP32[($11 + 708 | 0) >> 2] | 0) + 192 | 0 | 0, $11 + 104 | 0 | 0); + (wasm2js_i32$0 = $11, wasm2js_f32$0 = Math_fround($780 + Math_fround(btVector3__dot_28btVector3_20const__29_20const($783 | 0, $11 + 20 | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 52 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($11 + 16 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($11 + 88 | 0) >> 2]) + Math_fround(HEAPF32[($11 + 52 | 0) >> 2])); + HEAPF32[($11 + 12 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 8 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($11 + 432 | 0) >> 2]) - Math_fround(HEAPF32[($11 + 16 | 0) >> 2])); + label$35 : { + label$36 : { + if (!(Math_fround(HEAPF32[($11 + 428 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$36 + } + HEAPF32[($11 + 12 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 8 | 0) >> 2] = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($11 + 428 | 0) >> 2])) * Math_fround(HEAPF32[($11 + 696 | 0) >> 2])) + Math_fround(HEAPF32[($11 + 8 | 0) >> 2])); + break label$35; + } + HEAPF32[($11 + 12 | 0) >> 2] = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($11 + 428 | 0) >> 2])) * Math_fround(HEAPF32[($11 + 688 | 0) >> 2])) * Math_fround(HEAPF32[($11 + 696 | 0) >> 2])); + } + HEAPF32[($11 + 4 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($11 + 12 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($11 + 744 | 0) >> 2] | 0) + 108 | 0) >> 2])); + HEAPF32[$11 >> 2] = Math_fround(Math_fround(HEAPF32[($11 + 8 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($11 + 744 | 0) >> 2] | 0) + 108 | 0) >> 2])); + label$37 : { + label$38 : { + label$39 : { + if (!(HEAP32[((HEAP32[($11 + 728 | 0) >> 2] | 0) + 52 | 0) >> 2] | 0)) { + break label$39 + } + if (!(Math_fround(HEAPF32[($11 + 428 | 0) >> 2]) > Math_fround(HEAPF32[((HEAP32[($11 + 728 | 0) >> 2] | 0) + 56 | 0) >> 2]) & 1 | 0)) { + break label$38 + } + } + HEAPF32[((HEAP32[($11 + 744 | 0) >> 2] | 0) + 112 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($11 + 4 | 0) >> 2]) + Math_fround(HEAPF32[$11 >> 2])); + HEAPF32[((HEAP32[($11 + 744 | 0) >> 2] | 0) + 128 | 0) >> 2] = Math_fround(0 | 0); + break label$37; + } + HEAPF32[((HEAP32[($11 + 744 | 0) >> 2] | 0) + 112 | 0) >> 2] = Math_fround(HEAPF32[$11 >> 2]); + HEAPF32[((HEAP32[($11 + 744 | 0) >> 2] | 0) + 128 | 0) >> 2] = Math_fround(HEAPF32[($11 + 4 | 0) >> 2]); + } + HEAPF32[((HEAP32[($11 + 744 | 0) >> 2] | 0) + 116 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($11 + 692 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($11 + 744 | 0) >> 2] | 0) + 108 | 0) >> 2])); + HEAPF32[((HEAP32[($11 + 744 | 0) >> 2] | 0) + 120 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[((HEAP32[($11 + 744 | 0) >> 2] | 0) + 124 | 0) >> 2] = Math_fround(1.0e10); + __stack_pointer = $11 + 752 | 0; + return; + } + + function btRigidBody__getVelocityInLocalPoint_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $1; + HEAP32[($5 + 24 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + btVector3__cross_28btVector3_20const__29_20const($5 + 8 | 0 | 0, $6 + 388 | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($0 | 0, $6 + 372 | 0 | 0, $5 + 8 | 0 | 0); + __stack_pointer = $5 + 32 | 0; + return; + } + + function btSequentialImpulseConstraintSolver__setFrictionConstraintImpulse_28btSolverConstraint__2c_20int_2c_20int_2c_20btManifoldPoint__2c_20btContactSolverInfo_20const__29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, $9 = 0, $44 = 0, $47 = 0, $79 = 0, $151 = 0, $154 = 0, $178 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $8 = __stack_pointer - 224 | 0; + __stack_pointer = $8; + HEAP32[($8 + 220 | 0) >> 2] = $0; + HEAP32[($8 + 216 | 0) >> 2] = $1; + HEAP32[($8 + 212 | 0) >> 2] = $2; + HEAP32[($8 + 208 | 0) >> 2] = $3; + HEAP32[($8 + 204 | 0) >> 2] = $4; + HEAP32[($8 + 200 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 220 | 0) >> 2] | 0; + (wasm2js_i32$0 = $8, wasm2js_i32$1 = btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($9 + 4 | 0 | 0, HEAP32[($8 + 212 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 196 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $8, wasm2js_i32$1 = btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($9 + 4 | 0 | 0, HEAP32[($8 + 208 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 192 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($8 + 188 | 0) >> 2] = HEAP32[((HEAP32[($8 + 196 | 0) >> 2] | 0) + 240 | 0) >> 2] | 0; + HEAP32[($8 + 184 | 0) >> 2] = HEAP32[((HEAP32[($8 + 192 | 0) >> 2] | 0) + 240 | 0) >> 2] | 0; + (wasm2js_i32$0 = $8, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___operator_5b_5d_28int_29($9 + 64 | 0 | 0, HEAP32[((HEAP32[($8 + 216 | 0) >> 2] | 0) + 140 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 180 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[((HEAP32[($8 + 200 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0) & 4 | 0)) { + break label$2 + } + HEAPF32[((HEAP32[($8 + 180 | 0) >> 2] | 0) + 100 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($8 + 204 | 0) >> 2] | 0) + 136 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($8 + 200 | 0) >> 2] | 0) + 68 | 0) >> 2])); + label$3 : { + if (!((HEAP32[($8 + 188 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $44 = HEAP32[($8 + 196 | 0) >> 2] | 0; + $47 = (HEAP32[($8 + 180 | 0) >> 2] | 0) + 16 | 0; + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btRigidBody__getInvMass_28_29_20const(HEAP32[($8 + 188 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 144 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20float_20const__29($8 + 148 | 0 | 0, $47 | 0, $8 + 144 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($8 + 164 | 0 | 0, $8 + 148 | 0 | 0, btRigidBody__getLinearFactor_28_29_20const(HEAP32[($8 + 188 | 0) >> 2] | 0 | 0) | 0 | 0); + btSolverBody__internalApplyImpulse_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($44 | 0, $8 + 164 | 0 | 0, (HEAP32[($8 + 180 | 0) >> 2] | 0) + 64 | 0 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($8 + 180 | 0) >> 2] | 0) + 100 | 0) >> 2]))); + } + label$4 : { + if (!((HEAP32[($8 + 184 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $79 = HEAP32[($8 + 192 | 0) >> 2] | 0; + operator__28btVector3_20const__29($8 + 96 | 0 | 0, (HEAP32[($8 + 180 | 0) >> 2] | 0) + 48 | 0 | 0); + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btRigidBody__getInvMass_28_29_20const(HEAP32[($8 + 184 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 92 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20float_20const__29($8 + 112 | 0 | 0, $8 + 96 | 0 | 0, $8 + 92 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($8 + 128 | 0 | 0, $8 + 112 | 0 | 0, btRigidBody__getLinearFactor_28_29_20const(HEAP32[($8 + 184 | 0) >> 2] | 0 | 0) | 0 | 0); + operator__28btVector3_20const__29($8 + 76 | 0 | 0, (HEAP32[($8 + 180 | 0) >> 2] | 0) + 80 | 0 | 0); + btSolverBody__internalApplyImpulse_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($79 | 0, $8 + 128 | 0 | 0, $8 + 76 | 0 | 0, Math_fround(Math_fround(-Math_fround(HEAPF32[((HEAP32[($8 + 180 | 0) >> 2] | 0) + 100 | 0) >> 2])))); + } + break label$1; + } + HEAPF32[((HEAP32[($8 + 180 | 0) >> 2] | 0) + 100 | 0) >> 2] = Math_fround(0 | 0); + } + label$5 : { + if (!((HEAP32[((HEAP32[($8 + 200 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0) & 16 | 0)) { + break label$5 + } + (wasm2js_i32$0 = $8, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___operator_5b_5d_28int_29($9 + 64 | 0 | 0, (HEAP32[((HEAP32[($8 + 216 | 0) >> 2] | 0) + 140 | 0) >> 2] | 0) + 1 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 72 | 0) >> 2] = wasm2js_i32$1; + label$6 : { + label$7 : { + if (!((HEAP32[((HEAP32[($8 + 200 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0) & 4 | 0)) { + break label$7 + } + HEAPF32[((HEAP32[($8 + 72 | 0) >> 2] | 0) + 100 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($8 + 204 | 0) >> 2] | 0) + 140 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($8 + 200 | 0) >> 2] | 0) + 68 | 0) >> 2])); + label$8 : { + if (!((HEAP32[($8 + 188 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$8 + } + $151 = HEAP32[($8 + 196 | 0) >> 2] | 0; + $154 = (HEAP32[($8 + 72 | 0) >> 2] | 0) + 16 | 0; + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btRigidBody__getInvMass_28_29_20const(HEAP32[($8 + 188 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 52 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20float_20const__29($8 + 56 | 0 | 0, $154 | 0, $8 + 52 | 0 | 0); + btSolverBody__internalApplyImpulse_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($151 | 0, $8 + 56 | 0 | 0, (HEAP32[($8 + 72 | 0) >> 2] | 0) + 64 | 0 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($8 + 72 | 0) >> 2] | 0) + 100 | 0) >> 2]))); + } + label$9 : { + if (!((HEAP32[($8 + 184 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$9 + } + $178 = HEAP32[($8 + 192 | 0) >> 2] | 0; + operator__28btVector3_20const__29($8 + 20 | 0 | 0, (HEAP32[($8 + 72 | 0) >> 2] | 0) + 48 | 0 | 0); + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btRigidBody__getInvMass_28_29_20const(HEAP32[($8 + 184 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20float_20const__29($8 + 36 | 0 | 0, $8 + 20 | 0 | 0, $8 + 16 | 0 | 0); + operator__28btVector3_20const__29($8 | 0, (HEAP32[($8 + 72 | 0) >> 2] | 0) + 80 | 0 | 0); + btSolverBody__internalApplyImpulse_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($178 | 0, $8 + 36 | 0 | 0, $8 | 0, Math_fround(Math_fround(-Math_fround(HEAPF32[((HEAP32[($8 + 72 | 0) >> 2] | 0) + 100 | 0) >> 2])))); + } + break label$6; + } + HEAPF32[((HEAP32[($8 + 72 | 0) >> 2] | 0) + 100 | 0) >> 2] = Math_fround(0 | 0); + } + } + __stack_pointer = $8 + 224 | 0; + return; + } + + function btAlignedObjectArray_btSolverConstraint___operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btSolverConstraint___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($4 + 8 | 0) >> 2] | 0, 152) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btSequentialImpulseConstraintSolver__convertContact_28btPersistentManifold__2c_20btContactSolverInfo_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0, i64toi32_i32$2 = 0, $227 = 0, $197 = 0, $104 = 0, $120 = 0, $198 = 0, $207 = Math_fround(0), $266 = Math_fround(0), $294 = Math_fround(0), $323 = 0, $325 = 0, $382 = Math_fround(0), $396 = 0, $398 = 0, $433 = Math_fround(0), $471 = Math_fround(0), $504 = Math_fround(0), $513 = 0, $825 = 0, $829 = 0, $860 = 0, $864 = 0, $181 = 0, $1284 = 0, $1297 = 0, $1443 = 0, $1453 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 272 | 0; + __stack_pointer = $5; + HEAP32[($5 + 268 | 0) >> 2] = $0; + HEAP32[($5 + 264 | 0) >> 2] = $1; + HEAP32[($5 + 260 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 268 | 0) >> 2] | 0; + HEAP32[($5 + 256 | 0) >> 2] = 0; + HEAP32[($5 + 252 | 0) >> 2] = 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btPersistentManifold__getBody0_28_29_20const(HEAP32[($5 + 264 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 256 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btPersistentManifold__getBody1_28_29_20const(HEAP32[($5 + 264 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 252 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btSequentialImpulseConstraintSolver__getOrInitSolverBody_28btCollisionObject__2c_20float_29($6 | 0, HEAP32[($5 + 256 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 260 | 0) >> 2] | 0) + 12 | 0) >> 2]))) | 0), HEAP32[(wasm2js_i32$0 + 248 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btSequentialImpulseConstraintSolver__getOrInitSolverBody_28btCollisionObject__2c_20float_29($6 | 0, HEAP32[($5 + 252 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 260 | 0) >> 2] | 0) + 12 | 0) >> 2]))) | 0), HEAP32[(wasm2js_i32$0 + 244 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($6 + 4 | 0 | 0, HEAP32[($5 + 248 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 240 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($6 + 4 | 0 | 0, HEAP32[($5 + 244 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 236 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + label$3 : { + if (!((HEAP32[($5 + 240 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + if (!((btVector3__fuzzyZero_28_29_20const((HEAP32[($5 + 240 | 0) >> 2] | 0) + 128 | 0 | 0) | 0) & 1 | 0)) { + break label$2 + } + if (!((HEAP32[($5 + 236 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + if (!((btVector3__fuzzyZero_28_29_20const((HEAP32[($5 + 236 | 0) >> 2] | 0) + 128 | 0 | 0) | 0) & 1 | 0)) { + break label$2 + } + } + break label$1; + } + HEAP32[($5 + 232 | 0) >> 2] = 1; + HEAP32[($5 + 228 | 0) >> 2] = 0; + label$4 : while (1) { + if (!((HEAP32[($5 + 228 | 0) >> 2] | 0 | 0) < (btPersistentManifold__getNumContacts_28_29_20const(HEAP32[($5 + 264 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btPersistentManifold__getContactPoint_28int_29(HEAP32[($5 + 264 | 0) >> 2] | 0 | 0, HEAP32[($5 + 228 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 224 | 0) >> 2] = wasm2js_i32$1; + label$5 : { + if (!(Math_fround(btManifoldPoint__getDistance_28_29_20const(HEAP32[($5 + 224 | 0) >> 2] | 0 | 0)) <= Math_fround(btPersistentManifold__getContactProcessingThreshold_28_29_20const(HEAP32[($5 + 264 | 0) >> 2] | 0 | 0)) & 1 | 0)) { + break label$5 + } + btVector3__btVector3_28_29($5 + 208 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 192 | 0 | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___size_28_29_20const($6 + 24 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 184 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___expandNonInitializing_28_29($6 + 24 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 180 | 0) >> 2] = wasm2js_i32$1; + HEAP32[((HEAP32[($5 + 180 | 0) >> 2] | 0) + 144 | 0) >> 2] = HEAP32[($5 + 248 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 180 | 0) >> 2] | 0) + 148 | 0) >> 2] = HEAP32[($5 + 244 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 180 | 0) >> 2] | 0) + 132 | 0) >> 2] = HEAP32[($5 + 224 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btManifoldPoint__getPositionWorldOnA_28_29_20const(HEAP32[($5 + 224 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 176 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btManifoldPoint__getPositionWorldOnB_28_29_20const(HEAP32[($5 + 224 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 172 | 0) >> 2] = wasm2js_i32$1; + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 156 | 0 | 0, HEAP32[($5 + 176 | 0) >> 2] | 0 | 0, btTransform__getOrigin_28_29(btCollisionObject__getWorldTransform_28_29(HEAP32[($5 + 256 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + $104 = 8; + i64toi32_i32$2 = ($5 + 156 | 0) + $104 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $825 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 208 | 0) + $104 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $825; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $5; + i64toi32_i32$1 = HEAP32[($5 + 156 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 160 | 0) >> 2] | 0; + $829 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 208 | 0) >> 2] = $829; + HEAP32[($5 + 212 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 140 | 0 | 0, HEAP32[($5 + 172 | 0) >> 2] | 0 | 0, btTransform__getOrigin_28_29(btCollisionObject__getWorldTransform_28_29(HEAP32[($5 + 252 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + $120 = 8; + i64toi32_i32$2 = ($5 + 140 | 0) + $120 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $860 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 192 | 0) + $120 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $860; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $5; + i64toi32_i32$1 = HEAP32[($5 + 140 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 144 | 0) >> 2] | 0; + $864 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 192 | 0) >> 2] = $864; + HEAP32[($5 + 196 | 0) >> 2] = i64toi32_i32$0; + btVector3__btVector3_28_29($5 + 124 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 108 | 0 | 0) | 0; + btSolverBody__getVelocityInLocalPointNoDelta_28btVector3_20const__2c_20btVector3__29_20const(HEAP32[($5 + 240 | 0) >> 2] | 0 | 0, $5 + 208 | 0 | 0, $5 + 124 | 0 | 0); + btSolverBody__getVelocityInLocalPointNoDelta_28btVector3_20const__2c_20btVector3__29_20const(HEAP32[($5 + 236 | 0) >> 2] | 0 | 0, $5 + 192 | 0 | 0, $5 + 108 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 92 | 0 | 0, $5 + 124 | 0 | 0, $5 + 108 | 0 | 0); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const((HEAP32[($5 + 224 | 0) >> 2] | 0) + 64 | 0 | 0, $5 + 92 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 88 | 0) >> 2] = wasm2js_f32$0; + btSequentialImpulseConstraintSolver__setupContactConstraint_28btSolverConstraint__2c_20int_2c_20int_2c_20btManifoldPoint__2c_20btContactSolverInfo_20const__2c_20float__2c_20btVector3_20const__2c_20btVector3_20const__29($6 | 0, HEAP32[($5 + 180 | 0) >> 2] | 0 | 0, HEAP32[($5 + 248 | 0) >> 2] | 0 | 0, HEAP32[($5 + 244 | 0) >> 2] | 0 | 0, HEAP32[($5 + 224 | 0) >> 2] | 0 | 0, HEAP32[($5 + 260 | 0) >> 2] | 0 | 0, $5 + 188 | 0 | 0, $5 + 208 | 0 | 0, $5 + 192 | 0 | 0); + $181 = btAlignedObjectArray_btSolverConstraint___size_28_29_20const($6 + 64 | 0 | 0) | 0; + HEAP32[((HEAP32[($5 + 180 | 0) >> 2] | 0) + 140 | 0) >> 2] = $181; + label$6 : { + if (!(Math_fround(HEAPF32[((HEAP32[($5 + 224 | 0) >> 2] | 0) + 88 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$6 + } + if (!((HEAP32[($5 + 232 | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0)) { + break label$6 + } + $197 = HEAP32[($5 + 224 | 0) >> 2] | 0; + $198 = 64; + $207 = Math_fround(0.0); + btSequentialImpulseConstraintSolver__addTorsionalFrictionConstraint_28btVector3_20const__2c_20int_2c_20int_2c_20int_2c_20btManifoldPoint__2c_20float_2c_20btVector3_20const__2c_20btVector3_20const__2c_20btCollisionObject__2c_20btCollisionObject__2c_20float_2c_20float_2c_20float_29($6 | 0, $197 + $198 | 0 | 0, HEAP32[($5 + 248 | 0) >> 2] | 0 | 0, HEAP32[($5 + 244 | 0) >> 2] | 0 | 0, HEAP32[($5 + 184 | 0) >> 2] | 0 | 0, $197 | 0, Math_fround(Math_fround(HEAPF32[($197 + 92 | 0) >> 2])), $5 + 208 | 0 | 0, $5 + 192 | 0 | 0, HEAP32[($5 + 256 | 0) >> 2] | 0 | 0, HEAP32[($5 + 252 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 188 | 0) >> 2])), Math_fround($207), Math_fround($207)) | 0; + btVector3__btVector3_28_29($5 + 72 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 56 | 0 | 0) | 0; + void_20btPlaneSpace1_btVector3__28btVector3_20const__2c_20btVector3__2c_20btVector3__29((HEAP32[($5 + 224 | 0) >> 2] | 0) + $198 | 0 | 0, $5 + 72 | 0 | 0, $5 + 56 | 0 | 0); + btVector3__normalize_28_29($5 + 72 | 0 | 0) | 0; + btVector3__normalize_28_29($5 + 56 | 0 | 0) | 0; + $227 = 2; + btSequentialImpulseConstraintSolver__applyAnisotropicFriction_28btCollisionObject__2c_20btVector3__2c_20int_29(HEAP32[($5 + 256 | 0) >> 2] | 0 | 0, $5 + 72 | 0 | 0, $227 | 0); + btSequentialImpulseConstraintSolver__applyAnisotropicFriction_28btCollisionObject__2c_20btVector3__2c_20int_29(HEAP32[($5 + 252 | 0) >> 2] | 0 | 0, $5 + 72 | 0 | 0, $227 | 0); + btSequentialImpulseConstraintSolver__applyAnisotropicFriction_28btCollisionObject__2c_20btVector3__2c_20int_29(HEAP32[($5 + 256 | 0) >> 2] | 0 | 0, $5 + 56 | 0 | 0, $227 | 0); + btSequentialImpulseConstraintSolver__applyAnisotropicFriction_28btCollisionObject__2c_20btVector3__2c_20int_29(HEAP32[($5 + 252 | 0) >> 2] | 0 | 0, $5 + 56 | 0 | 0, $227 | 0); + label$7 : { + if (!(+Math_fround(btVector3__length_28_29_20const($5 + 72 | 0 | 0)) > .001 & 1 | 0)) { + break label$7 + } + $266 = Math_fround(0 | 0); + btSequentialImpulseConstraintSolver__addTorsionalFrictionConstraint_28btVector3_20const__2c_20int_2c_20int_2c_20int_2c_20btManifoldPoint__2c_20float_2c_20btVector3_20const__2c_20btVector3_20const__2c_20btCollisionObject__2c_20btCollisionObject__2c_20float_2c_20float_2c_20float_29($6 | 0, $5 + 72 | 0 | 0, HEAP32[($5 + 248 | 0) >> 2] | 0 | 0, HEAP32[($5 + 244 | 0) >> 2] | 0 | 0, HEAP32[($5 + 184 | 0) >> 2] | 0 | 0, HEAP32[($5 + 224 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 224 | 0) >> 2] | 0) + 88 | 0) >> 2])), $5 + 208 | 0 | 0, $5 + 192 | 0 | 0, HEAP32[($5 + 256 | 0) >> 2] | 0 | 0, HEAP32[($5 + 252 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 188 | 0) >> 2])), Math_fround($266), Math_fround($266)) | 0; + } + label$8 : { + if (!(+Math_fround(btVector3__length_28_29_20const($5 + 56 | 0 | 0)) > .001 & 1 | 0)) { + break label$8 + } + $294 = Math_fround(0 | 0); + btSequentialImpulseConstraintSolver__addTorsionalFrictionConstraint_28btVector3_20const__2c_20int_2c_20int_2c_20int_2c_20btManifoldPoint__2c_20float_2c_20btVector3_20const__2c_20btVector3_20const__2c_20btCollisionObject__2c_20btCollisionObject__2c_20float_2c_20float_2c_20float_29($6 | 0, $5 + 56 | 0 | 0, HEAP32[($5 + 248 | 0) >> 2] | 0 | 0, HEAP32[($5 + 244 | 0) >> 2] | 0 | 0, HEAP32[($5 + 184 | 0) >> 2] | 0 | 0, HEAP32[($5 + 224 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 224 | 0) >> 2] | 0) + 88 | 0) >> 2])), $5 + 208 | 0 | 0, $5 + 192 | 0 | 0, HEAP32[($5 + 256 | 0) >> 2] | 0 | 0, HEAP32[($5 + 252 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 188 | 0) >> 2])), Math_fround($294), Math_fround($294)) | 0; + } + } + label$9 : { + label$10 : { + label$11 : { + if (!((HEAP32[((HEAP32[($5 + 260 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0) & 32 | 0)) { + break label$11 + } + if ((HEAP32[((HEAP32[($5 + 224 | 0) >> 2] | 0) + 128 | 0) >> 2] | 0) & 1 | 0) { + break label$10 + } + } + operator__28btVector3_20const__2c_20float_20const__29($5 + 24 | 0 | 0, (HEAP32[($5 + 224 | 0) >> 2] | 0) + 64 | 0 | 0, $5 + 88 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 40 | 0 | 0, $5 + 92 | 0 | 0, $5 + 24 | 0 | 0); + $323 = (HEAP32[($5 + 224 | 0) >> 2] | 0) + 168 | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 40 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 44 | 0) >> 2] | 0; + $1284 = i64toi32_i32$0; + i64toi32_i32$0 = $323; + HEAP32[i64toi32_i32$0 >> 2] = $1284; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $325 = 8; + i64toi32_i32$2 = ($5 + 40 | 0) + $325 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1297 = i64toi32_i32$1; + i64toi32_i32$1 = $323 + $325 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1297; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const((HEAP32[($5 + 224 | 0) >> 2] | 0) + 168 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + label$12 : { + label$13 : { + if ((HEAP32[((HEAP32[($5 + 260 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0) & 64 | 0) { + break label$13 + } + if (!(Math_fround(HEAPF32[($5 + 20 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$13 + } + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(1.0) / Math_fround(btSqrt_28float_29(Math_fround(Math_fround(HEAPF32[($5 + 20 | 0) >> 2])))))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + btVector3__operator___28float_20const__29_1((HEAP32[($5 + 224 | 0) >> 2] | 0) + 168 | 0 | 0, $5 + 16 | 0 | 0) | 0; + btSequentialImpulseConstraintSolver__applyAnisotropicFriction_28btCollisionObject__2c_20btVector3__2c_20int_29(HEAP32[($5 + 256 | 0) >> 2] | 0 | 0, (HEAP32[($5 + 224 | 0) >> 2] | 0) + 168 | 0 | 0, 1 | 0); + btSequentialImpulseConstraintSolver__applyAnisotropicFriction_28btCollisionObject__2c_20btVector3__2c_20int_29(HEAP32[($5 + 252 | 0) >> 2] | 0 | 0, (HEAP32[($5 + 224 | 0) >> 2] | 0) + 168 | 0 | 0, 1 | 0); + $382 = Math_fround(0 | 0); + btSequentialImpulseConstraintSolver__addFrictionConstraint_28btVector3_20const__2c_20int_2c_20int_2c_20int_2c_20btManifoldPoint__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btCollisionObject__2c_20btCollisionObject__2c_20float_2c_20btContactSolverInfo_20const__2c_20float_2c_20float_29($6 | 0, (HEAP32[($5 + 224 | 0) >> 2] | 0) + 168 | 0 | 0, HEAP32[($5 + 248 | 0) >> 2] | 0 | 0, HEAP32[($5 + 244 | 0) >> 2] | 0 | 0, HEAP32[($5 + 184 | 0) >> 2] | 0 | 0, HEAP32[($5 + 224 | 0) >> 2] | 0 | 0, $5 + 208 | 0 | 0, $5 + 192 | 0 | 0, HEAP32[($5 + 256 | 0) >> 2] | 0 | 0, HEAP32[($5 + 252 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 188 | 0) >> 2])), HEAP32[($5 + 260 | 0) >> 2] | 0 | 0, Math_fround($382), Math_fround($382)) | 0; + label$14 : { + if (!((HEAP32[((HEAP32[($5 + 260 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0) & 16 | 0)) { + break label$14 + } + btVector3__cross_28btVector3_20const__29_20const($5 | 0, (HEAP32[($5 + 224 | 0) >> 2] | 0) + 168 | 0 | 0, (HEAP32[($5 + 224 | 0) >> 2] | 0) + 64 | 0 | 0); + $396 = (HEAP32[($5 + 224 | 0) >> 2] | 0) + 184 | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[$5 >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 4 | 0) >> 2] | 0; + $1443 = i64toi32_i32$0; + i64toi32_i32$0 = $396; + HEAP32[i64toi32_i32$0 >> 2] = $1443; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $398 = 8; + i64toi32_i32$2 = $5 + $398 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1453 = i64toi32_i32$1; + i64toi32_i32$1 = $396 + $398 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1453; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__normalize_28_29((HEAP32[($5 + 224 | 0) >> 2] | 0) + 184 | 0 | 0) | 0; + btSequentialImpulseConstraintSolver__applyAnisotropicFriction_28btCollisionObject__2c_20btVector3__2c_20int_29(HEAP32[($5 + 256 | 0) >> 2] | 0 | 0, (HEAP32[($5 + 224 | 0) >> 2] | 0) + 184 | 0 | 0, 1 | 0); + btSequentialImpulseConstraintSolver__applyAnisotropicFriction_28btCollisionObject__2c_20btVector3__2c_20int_29(HEAP32[($5 + 252 | 0) >> 2] | 0 | 0, (HEAP32[($5 + 224 | 0) >> 2] | 0) + 184 | 0 | 0, 1 | 0); + $433 = Math_fround(0 | 0); + btSequentialImpulseConstraintSolver__addFrictionConstraint_28btVector3_20const__2c_20int_2c_20int_2c_20int_2c_20btManifoldPoint__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btCollisionObject__2c_20btCollisionObject__2c_20float_2c_20btContactSolverInfo_20const__2c_20float_2c_20float_29($6 | 0, (HEAP32[($5 + 224 | 0) >> 2] | 0) + 184 | 0 | 0, HEAP32[($5 + 248 | 0) >> 2] | 0 | 0, HEAP32[($5 + 244 | 0) >> 2] | 0 | 0, HEAP32[($5 + 184 | 0) >> 2] | 0 | 0, HEAP32[($5 + 224 | 0) >> 2] | 0 | 0, $5 + 208 | 0 | 0, $5 + 192 | 0 | 0, HEAP32[($5 + 256 | 0) >> 2] | 0 | 0, HEAP32[($5 + 252 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 188 | 0) >> 2])), HEAP32[($5 + 260 | 0) >> 2] | 0 | 0, Math_fround($433), Math_fround($433)) | 0; + } + break label$12; + } + void_20btPlaneSpace1_btVector3__28btVector3_20const__2c_20btVector3__2c_20btVector3__29((HEAP32[($5 + 224 | 0) >> 2] | 0) + 64 | 0 | 0, (HEAP32[($5 + 224 | 0) >> 2] | 0) + 168 | 0 | 0, (HEAP32[($5 + 224 | 0) >> 2] | 0) + 184 | 0 | 0); + btSequentialImpulseConstraintSolver__applyAnisotropicFriction_28btCollisionObject__2c_20btVector3__2c_20int_29(HEAP32[($5 + 256 | 0) >> 2] | 0 | 0, (HEAP32[($5 + 224 | 0) >> 2] | 0) + 168 | 0 | 0, 1 | 0); + btSequentialImpulseConstraintSolver__applyAnisotropicFriction_28btCollisionObject__2c_20btVector3__2c_20int_29(HEAP32[($5 + 252 | 0) >> 2] | 0 | 0, (HEAP32[($5 + 224 | 0) >> 2] | 0) + 168 | 0 | 0, 1 | 0); + $471 = Math_fround(0 | 0); + btSequentialImpulseConstraintSolver__addFrictionConstraint_28btVector3_20const__2c_20int_2c_20int_2c_20int_2c_20btManifoldPoint__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btCollisionObject__2c_20btCollisionObject__2c_20float_2c_20btContactSolverInfo_20const__2c_20float_2c_20float_29($6 | 0, (HEAP32[($5 + 224 | 0) >> 2] | 0) + 168 | 0 | 0, HEAP32[($5 + 248 | 0) >> 2] | 0 | 0, HEAP32[($5 + 244 | 0) >> 2] | 0 | 0, HEAP32[($5 + 184 | 0) >> 2] | 0 | 0, HEAP32[($5 + 224 | 0) >> 2] | 0 | 0, $5 + 208 | 0 | 0, $5 + 192 | 0 | 0, HEAP32[($5 + 256 | 0) >> 2] | 0 | 0, HEAP32[($5 + 252 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 188 | 0) >> 2])), HEAP32[($5 + 260 | 0) >> 2] | 0 | 0, Math_fround($471), Math_fround($471)) | 0; + label$15 : { + if (!((HEAP32[((HEAP32[($5 + 260 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0) & 16 | 0)) { + break label$15 + } + btSequentialImpulseConstraintSolver__applyAnisotropicFriction_28btCollisionObject__2c_20btVector3__2c_20int_29(HEAP32[($5 + 256 | 0) >> 2] | 0 | 0, (HEAP32[($5 + 224 | 0) >> 2] | 0) + 184 | 0 | 0, 1 | 0); + btSequentialImpulseConstraintSolver__applyAnisotropicFriction_28btCollisionObject__2c_20btVector3__2c_20int_29(HEAP32[($5 + 252 | 0) >> 2] | 0 | 0, (HEAP32[($5 + 224 | 0) >> 2] | 0) + 184 | 0 | 0, 1 | 0); + $504 = Math_fround(0 | 0); + btSequentialImpulseConstraintSolver__addFrictionConstraint_28btVector3_20const__2c_20int_2c_20int_2c_20int_2c_20btManifoldPoint__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btCollisionObject__2c_20btCollisionObject__2c_20float_2c_20btContactSolverInfo_20const__2c_20float_2c_20float_29($6 | 0, (HEAP32[($5 + 224 | 0) >> 2] | 0) + 184 | 0 | 0, HEAP32[($5 + 248 | 0) >> 2] | 0 | 0, HEAP32[($5 + 244 | 0) >> 2] | 0 | 0, HEAP32[($5 + 184 | 0) >> 2] | 0 | 0, HEAP32[($5 + 224 | 0) >> 2] | 0 | 0, $5 + 208 | 0 | 0, $5 + 192 | 0 | 0, HEAP32[($5 + 256 | 0) >> 2] | 0 | 0, HEAP32[($5 + 252 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 188 | 0) >> 2])), HEAP32[($5 + 260 | 0) >> 2] | 0 | 0, Math_fround($504), Math_fround($504)) | 0; + } + label$16 : { + if (!((HEAP32[((HEAP32[($5 + 260 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0) & 16 | 0)) { + break label$16 + } + if (!((HEAP32[((HEAP32[($5 + 260 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0) & 64 | 0)) { + break label$16 + } + $513 = HEAP32[($5 + 224 | 0) >> 2] | 0; + HEAP32[($513 + 128 | 0) >> 2] = HEAP32[($513 + 128 | 0) >> 2] | 0 | 1 | 0; + } + } + break label$9; + } + btSequentialImpulseConstraintSolver__addFrictionConstraint_28btVector3_20const__2c_20int_2c_20int_2c_20int_2c_20btManifoldPoint__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btCollisionObject__2c_20btCollisionObject__2c_20float_2c_20btContactSolverInfo_20const__2c_20float_2c_20float_29($6 | 0, (HEAP32[($5 + 224 | 0) >> 2] | 0) + 168 | 0 | 0, HEAP32[($5 + 248 | 0) >> 2] | 0 | 0, HEAP32[($5 + 244 | 0) >> 2] | 0 | 0, HEAP32[($5 + 184 | 0) >> 2] | 0 | 0, HEAP32[($5 + 224 | 0) >> 2] | 0 | 0, $5 + 208 | 0 | 0, $5 + 192 | 0 | 0, HEAP32[($5 + 256 | 0) >> 2] | 0 | 0, HEAP32[($5 + 252 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 188 | 0) >> 2])), HEAP32[($5 + 260 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 224 | 0) >> 2] | 0) + 144 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 224 | 0) >> 2] | 0) + 160 | 0) >> 2]))) | 0; + label$17 : { + if (!((HEAP32[((HEAP32[($5 + 260 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0) & 16 | 0)) { + break label$17 + } + btSequentialImpulseConstraintSolver__addFrictionConstraint_28btVector3_20const__2c_20int_2c_20int_2c_20int_2c_20btManifoldPoint__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btCollisionObject__2c_20btCollisionObject__2c_20float_2c_20btContactSolverInfo_20const__2c_20float_2c_20float_29($6 | 0, (HEAP32[($5 + 224 | 0) >> 2] | 0) + 184 | 0 | 0, HEAP32[($5 + 248 | 0) >> 2] | 0 | 0, HEAP32[($5 + 244 | 0) >> 2] | 0 | 0, HEAP32[($5 + 184 | 0) >> 2] | 0 | 0, HEAP32[($5 + 224 | 0) >> 2] | 0 | 0, $5 + 208 | 0 | 0, $5 + 192 | 0 | 0, HEAP32[($5 + 256 | 0) >> 2] | 0 | 0, HEAP32[($5 + 252 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 188 | 0) >> 2])), HEAP32[($5 + 260 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 224 | 0) >> 2] | 0) + 148 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[((HEAP32[($5 + 224 | 0) >> 2] | 0) + 160 | 0) >> 2]))) | 0; + } + } + btSequentialImpulseConstraintSolver__setFrictionConstraintImpulse_28btSolverConstraint__2c_20int_2c_20int_2c_20btManifoldPoint__2c_20btContactSolverInfo_20const__29($6 | 0, HEAP32[($5 + 180 | 0) >> 2] | 0 | 0, HEAP32[($5 + 248 | 0) >> 2] | 0 | 0, HEAP32[($5 + 244 | 0) >> 2] | 0 | 0, HEAP32[($5 + 224 | 0) >> 2] | 0 | 0, HEAP32[($5 + 260 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 228 | 0) >> 2] = (HEAP32[($5 + 228 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + __stack_pointer = $5 + 272 | 0; + return; + } + + function btPersistentManifold__getContactProcessingThreshold_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 852 | 0) >> 2])); + } + + function btSolverBody__getVelocityInLocalPointNoDelta_28btVector3_20const__2c_20btVector3__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0, i64toi32_i32$2 = 0, $44 = 0, $46 = 0, $154 = 0, $167 = 0, $52 = 0; + $5 = __stack_pointer - 96 | 0; + __stack_pointer = $5; + HEAP32[($5 + 92 | 0) >> 2] = $0; + HEAP32[($5 + 88 | 0) >> 2] = $1; + HEAP32[($5 + 84 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 92 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($6 + 240 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + operator__28btVector3_20const__2c_20btVector3_20const__29_2($5 + 52 | 0 | 0, $6 + 176 | 0 | 0, $6 + 208 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($5 + 20 | 0 | 0, $6 + 192 | 0 | 0, $6 + 224 | 0 | 0); + btVector3__cross_28btVector3_20const__29_20const($5 + 36 | 0 | 0, $5 + 20 | 0 | 0, HEAP32[($5 + 88 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($5 + 68 | 0 | 0, $5 + 52 | 0 | 0, $5 + 36 | 0 | 0); + $44 = HEAP32[($5 + 84 | 0) >> 2] | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 68 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 72 | 0) >> 2] | 0; + $154 = i64toi32_i32$0; + i64toi32_i32$0 = $44; + HEAP32[i64toi32_i32$0 >> 2] = $154; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $46 = 8; + i64toi32_i32$2 = ($5 + 68 | 0) + $46 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $167 = i64toi32_i32$1; + i64toi32_i32$1 = $44 + $46 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $167; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$1; + } + $52 = HEAP32[($5 + 84 | 0) >> 2] | 0; + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 8 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($52 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0, $5 + 8 | 0 | 0); + } + __stack_pointer = $5 + 96 | 0; + return; + } + + function btSequentialImpulseConstraintSolver__convertContacts_28btPersistentManifold___2c_20int_2c_20btContactSolverInfo_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 8 | 0) >> 2] = 0; + HEAP32[($6 + 12 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[($6 + 8 | 0) >> 2] = HEAP32[((HEAP32[($6 + 24 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + btSequentialImpulseConstraintSolver__convertContact_28btPersistentManifold__2c_20btContactSolverInfo_20const__29($7 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0); + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $6 + 32 | 0; + return; + } + + function btSequentialImpulseConstraintSolver__solveGroupCacheFriendlySetup_28btCollisionObject___2c_20int_2c_20btPersistentManifold___2c_20int_2c_20btTypedConstraint___2c_20int_2c_20btContactSolverInfo_20const__2c_20btIDebugDraw__29($0, $1, $2, $3, $4, $5, $6, $7, $8) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + $8 = $8 | 0; + var $11 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $12 = 0, $152 = 0, $194 = 0, $219 = 0, $251 = 0, $323 = 0, $407 = 0, $676 = 0, $759 = 0, $761 = 0, $788 = 0, $790 = 0, $884 = Math_fround(0), $899 = 0, $900 = 0, $935 = 0, $936 = 0, $971 = 0, $972 = 0, $1007 = 0, $1008 = 0, $1539 = 0, $1543 = 0, $1624 = 0, $1628 = 0, $1678 = 0, $1682 = 0, $483 = 0, $500 = 0, $517 = 0, $534 = 0, $551 = 0, $568 = 0, $585 = 0, $602 = 0, $714 = Math_fround(0), $736 = Math_fround(0), $2805 = 0, $2818 = 0, $2866 = 0, $2879 = 0, $798 = 0, $815 = 0, $843 = Math_fround(0), $852 = Math_fround(0), $861 = Math_fround(0), $3099 = 0, $3103 = 0, $3168 = 0, $3172 = 0, $3237 = 0, $3241 = 0, $3306 = 0, $3310 = 0, $1035 = 0, $1047 = Math_fround(0), $1048 = 0, $1064 = 0, $1076 = Math_fround(0), $1079 = 0, $1128 = 0, $1174 = 0, $1190 = 0, $1206 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $11 = __stack_pointer - 1040 | 0; + __stack_pointer = $11; + HEAP32[($11 + 1036 | 0) >> 2] = $0; + HEAP32[($11 + 1032 | 0) >> 2] = $1; + HEAP32[($11 + 1028 | 0) >> 2] = $2; + HEAP32[($11 + 1024 | 0) >> 2] = $3; + HEAP32[($11 + 1020 | 0) >> 2] = $4; + HEAP32[($11 + 1016 | 0) >> 2] = $5; + HEAP32[($11 + 1012 | 0) >> 2] = $6; + HEAP32[($11 + 1008 | 0) >> 2] = $7; + HEAP32[($11 + 1004 | 0) >> 2] = $8; + $12 = HEAP32[($11 + 1036 | 0) >> 2] | 0; + HEAP32[($12 + 188 | 0) >> 2] = -1; + CProfileSample__CProfileSample_28char_20const__29($11 + 1003 | 0 | 0, 71285 | 0) | 0; + label$1 : { + if (!((HEAP32[((HEAP32[($11 + 1008 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0 | 0) != (HEAP32[($12 + 224 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP8[($11 + 1002 | 0) >> 0] = ((((HEAP32[((HEAP32[($11 + 1008 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0) & 256 | 0 | 0) != (0 | 0) ^ -1 | 0) ^ -1 | 0) & 1 | 0; + btSequentialImpulseConstraintSolver__setupSolverFunctions_28bool_29($12 | 0, (HEAPU8[($11 + 1002 | 0) >> 0] | 0) & 1 | 0 | 0); + HEAP32[($12 + 224 | 0) >> 2] = HEAP32[((HEAP32[($11 + 1008 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0; + } + HEAP32[($12 + 184 | 0) >> 2] = 0; + HEAP32[($11 + 996 | 0) >> 2] = 0; + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($11 + 996 | 0) >> 2] | 0 | 0) < (HEAP32[($11 + 1028 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + btCollisionObject__setCompanionId_28int_29(HEAP32[((HEAP32[($11 + 1032 | 0) >> 2] | 0) + ((HEAP32[($11 + 996 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0, -1 | 0); + HEAP32[($11 + 996 | 0) >> 2] = (HEAP32[($11 + 996 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + btAlignedObjectArray_btSolverBody___reserve_28int_29($12 + 4 | 0 | 0, (HEAP32[($11 + 1028 | 0) >> 2] | 0) + 1 | 0 | 0); + __memset($11 + 752 | 0 | 0, 0 | 0, 244 | 0) | 0; + btSolverBody__btSolverBody_28_29($11 + 752 | 0 | 0) | 0; + btAlignedObjectArray_btSolverBody___resize_28int_2c_20btSolverBody_20const__29($12 + 4 | 0 | 0, 0 | 0, $11 + 752 | 0 | 0); + HEAP32[($11 + 748 | 0) >> 2] = 0; + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($11 + 748 | 0) >> 2] | 0 | 0) < (HEAP32[($11 + 1028 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + (wasm2js_i32$0 = $11, wasm2js_i32$1 = btSequentialImpulseConstraintSolver__getOrInitSolverBody_28btCollisionObject__2c_20float_29($12 | 0, HEAP32[((HEAP32[($11 + 1032 | 0) >> 2] | 0) + ((HEAP32[($11 + 748 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($11 + 1008 | 0) >> 2] | 0) + 12 | 0) >> 2]))) | 0), HEAP32[(wasm2js_i32$0 + 744 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $11, wasm2js_i32$1 = btRigidBody__upcast_28btCollisionObject__29(HEAP32[((HEAP32[($11 + 1032 | 0) >> 2] | 0) + ((HEAP32[($11 + 748 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 740 | 0) >> 2] = wasm2js_i32$1; + label$6 : { + if (!((HEAP32[($11 + 740 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + if (!(Math_fround(btRigidBody__getInvMass_28_29_20const(HEAP32[($11 + 740 | 0) >> 2] | 0 | 0)) != Math_fround(0 | 0) & 1 | 0)) { + break label$6 + } + (wasm2js_i32$0 = $11, wasm2js_i32$1 = btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($12 + 4 | 0 | 0, HEAP32[($11 + 744 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 736 | 0) >> 2] = wasm2js_i32$1; + HEAPF32[($11 + 716 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 712 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 708 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($11 + 720 | 0 | 0, $11 + 716 | 0 | 0, $11 + 712 | 0 | 0, $11 + 708 | 0 | 0) | 0; + label$7 : { + if (!((btRigidBody__getFlags_28_29_20const(HEAP32[($11 + 740 | 0) >> 2] | 0 | 0) | 0) & 2 | 0)) { + break label$7 + } + btRigidBody__computeGyroscopicForceExplicit_28float_29_20const($11 + 692 | 0 | 0, HEAP32[($11 + 740 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($11 + 1008 | 0) >> 2] | 0) + 84 | 0) >> 2]))); + $152 = 8; + i64toi32_i32$2 = ($11 + 692 | 0) + $152 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1539 = i64toi32_i32$0; + i64toi32_i32$0 = ($11 + 720 | 0) + $152 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1539; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $11; + i64toi32_i32$1 = HEAP32[($11 + 692 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($11 + 696 | 0) >> 2] | 0; + $1543 = i64toi32_i32$1; + i64toi32_i32$1 = $11; + HEAP32[($11 + 720 | 0) >> 2] = $1543; + HEAP32[($11 + 724 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btMatrix3x3_20const__29($11 + 660 | 0 | 0, $11 + 720 | 0 | 0, btRigidBody__getInvInertiaTensorWorld_28_29_20const(HEAP32[($11 + 740 | 0) >> 2] | 0 | 0) | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($11 + 676 | 0 | 0, $11 + 660 | 0 | 0, (HEAP32[($11 + 1008 | 0) >> 2] | 0) + 12 | 0 | 0); + btVector3__operator___28btVector3_20const__29((HEAP32[($11 + 736 | 0) >> 2] | 0) + 224 | 0 | 0, $11 + 676 | 0 | 0) | 0; + } + label$8 : { + if (!((btRigidBody__getFlags_28_29_20const(HEAP32[($11 + 740 | 0) >> 2] | 0 | 0) | 0) & 4 | 0)) { + break label$8 + } + btRigidBody__computeGyroscopicImpulseImplicit_World_28float_29_20const($11 + 644 | 0 | 0, HEAP32[($11 + 740 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($11 + 1008 | 0) >> 2] | 0) + 12 | 0) >> 2]))); + $194 = 8; + i64toi32_i32$2 = ($11 + 644 | 0) + $194 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1624 = i64toi32_i32$0; + i64toi32_i32$0 = ($11 + 720 | 0) + $194 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1624; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $11; + i64toi32_i32$1 = HEAP32[($11 + 644 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($11 + 648 | 0) >> 2] | 0; + $1628 = i64toi32_i32$1; + i64toi32_i32$1 = $11; + HEAP32[($11 + 720 | 0) >> 2] = $1628; + HEAP32[($11 + 724 | 0) >> 2] = i64toi32_i32$0; + btVector3__operator___28btVector3_20const__29_1((HEAP32[($11 + 736 | 0) >> 2] | 0) + 224 | 0 | 0, $11 + 720 | 0 | 0) | 0; + } + label$9 : { + if (!((btRigidBody__getFlags_28_29_20const(HEAP32[($11 + 740 | 0) >> 2] | 0 | 0) | 0) & 8 | 0)) { + break label$9 + } + btRigidBody__computeGyroscopicImpulseImplicit_Body_28float_29_20const($11 + 628 | 0 | 0, HEAP32[($11 + 740 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($11 + 1008 | 0) >> 2] | 0) + 12 | 0) >> 2]))); + $219 = 8; + i64toi32_i32$2 = ($11 + 628 | 0) + $219 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1678 = i64toi32_i32$0; + i64toi32_i32$0 = ($11 + 720 | 0) + $219 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1678; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $11; + i64toi32_i32$1 = HEAP32[($11 + 628 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($11 + 632 | 0) >> 2] | 0; + $1682 = i64toi32_i32$1; + i64toi32_i32$1 = $11; + HEAP32[($11 + 720 | 0) >> 2] = $1682; + HEAP32[($11 + 724 | 0) >> 2] = i64toi32_i32$0; + btVector3__operator___28btVector3_20const__29_1((HEAP32[($11 + 736 | 0) >> 2] | 0) + 224 | 0 | 0, $11 + 720 | 0 | 0) | 0; + } + } + HEAP32[($11 + 748 | 0) >> 2] = (HEAP32[($11 + 748 | 0) >> 2] | 0) + 1 | 0; + continue label$5; + }; + } + HEAP32[($11 + 624 | 0) >> 2] = 0; + label$10 : { + label$11 : while (1) { + if (!((HEAP32[($11 + 624 | 0) >> 2] | 0 | 0) < (HEAP32[($11 + 1012 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$10 + } + HEAP32[($11 + 620 | 0) >> 2] = HEAP32[((HEAP32[($11 + 1016 | 0) >> 2] | 0) + ((HEAP32[($11 + 624 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + $251 = HEAP32[($11 + 620 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$251 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($251); + btTypedConstraint__internalSetAppliedImpulse_28float_29(HEAP32[($11 + 620 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(0 | 0))); + HEAP32[($11 + 624 | 0) >> 2] = (HEAP32[($11 + 624 | 0) >> 2] | 0) + 1 | 0; + continue label$11; + }; + } + HEAP32[($11 + 616 | 0) >> 2] = 0; + btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___resizeNoInitialize_28int_29($12 + 164 | 0 | 0, HEAP32[($11 + 1012 | 0) >> 2] | 0 | 0); + HEAP32[($11 + 612 | 0) >> 2] = 0; + label$12 : { + label$13 : while (1) { + if (!((HEAP32[($11 + 612 | 0) >> 2] | 0 | 0) < (HEAP32[($11 + 1012 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$12 + } + (wasm2js_i32$0 = $11, wasm2js_i32$1 = btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___operator_5b_5d_28int_29($12 + 164 | 0 | 0, HEAP32[($11 + 612 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 608 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $11, wasm2js_i32$1 = btTypedConstraint__getJointFeedback_28_29(HEAP32[((HEAP32[($11 + 1016 | 0) >> 2] | 0) + ((HEAP32[($11 + 612 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 604 | 0) >> 2] = wasm2js_i32$1; + label$14 : { + if (!((HEAP32[($11 + 604 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$14 + } + btVector3__setZero_28_29(HEAP32[($11 + 604 | 0) >> 2] | 0 | 0); + btVector3__setZero_28_29((HEAP32[($11 + 604 | 0) >> 2] | 0) + 16 | 0 | 0); + btVector3__setZero_28_29((HEAP32[($11 + 604 | 0) >> 2] | 0) + 32 | 0 | 0); + btVector3__setZero_28_29((HEAP32[($11 + 604 | 0) >> 2] | 0) + 48 | 0 | 0); + } + label$15 : { + if (!((btTypedConstraint__isEnabled_28_29_20const(HEAP32[((HEAP32[($11 + 1016 | 0) >> 2] | 0) + ((HEAP32[($11 + 612 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$15 + } + } + label$16 : { + label$17 : { + if (!((btTypedConstraint__isEnabled_28_29_20const(HEAP32[((HEAP32[($11 + 1016 | 0) >> 2] | 0) + ((HEAP32[($11 + 612 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$17 + } + $323 = HEAP32[((HEAP32[($11 + 1016 | 0) >> 2] | 0) + ((HEAP32[($11 + 612 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$323 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($323, HEAP32[($11 + 608 | 0) >> 2] | 0); + break label$16; + } + HEAP32[(HEAP32[($11 + 608 | 0) >> 2] | 0) >> 2] = 0; + HEAP32[((HEAP32[($11 + 608 | 0) >> 2] | 0) + 4 | 0) >> 2] = 0; + } + HEAP32[($11 + 616 | 0) >> 2] = (HEAP32[($11 + 616 | 0) >> 2] | 0) + (HEAP32[(HEAP32[($11 + 608 | 0) >> 2] | 0) >> 2] | 0) | 0; + HEAP32[($11 + 612 | 0) >> 2] = (HEAP32[($11 + 612 | 0) >> 2] | 0) + 1 | 0; + continue label$13; + }; + } + btAlignedObjectArray_btSolverConstraint___resizeNoInitialize_28int_29($12 + 44 | 0 | 0, HEAP32[($11 + 616 | 0) >> 2] | 0 | 0); + HEAP32[($11 + 600 | 0) >> 2] = 0; + HEAP32[($11 + 612 | 0) >> 2] = 0; + label$18 : { + label$19 : while (1) { + if (!((HEAP32[($11 + 612 | 0) >> 2] | 0 | 0) < (HEAP32[($11 + 1012 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$18 + } + (wasm2js_i32$0 = $11, wasm2js_i32$1 = btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___operator_5b_5d_28int_29($12 + 164 | 0 | 0, HEAP32[($11 + 612 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 596 | 0) >> 2] = wasm2js_i32$1; + label$20 : { + if (!(HEAP32[(HEAP32[($11 + 596 | 0) >> 2] | 0) >> 2] | 0)) { + break label$20 + } + label$21 : { + if ((HEAP32[($11 + 600 | 0) >> 2] | 0 | 0) < (HEAP32[($11 + 616 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$21 + } + __assert_fail(68995 | 0, 72591 | 0, 1455 | 0, 71285 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $11, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___operator_5b_5d_28int_29($12 + 44 | 0 | 0, HEAP32[($11 + 600 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 592 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($11 + 588 | 0) >> 2] = HEAP32[((HEAP32[($11 + 1016 | 0) >> 2] | 0) + ((HEAP32[($11 + 612 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = $11, wasm2js_i32$1 = btTypedConstraint__getRigidBodyA_28_29(HEAP32[($11 + 588 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 584 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $11, wasm2js_i32$1 = btTypedConstraint__getRigidBodyB_28_29(HEAP32[($11 + 588 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 580 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $11, wasm2js_i32$1 = btSequentialImpulseConstraintSolver__getOrInitSolverBody_28btCollisionObject__2c_20float_29($12 | 0, HEAP32[($11 + 584 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($11 + 1008 | 0) >> 2] | 0) + 12 | 0) >> 2]))) | 0), HEAP32[(wasm2js_i32$0 + 576 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $11, wasm2js_i32$1 = btSequentialImpulseConstraintSolver__getOrInitSolverBody_28btCollisionObject__2c_20float_29($12 | 0, HEAP32[($11 + 580 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($11 + 1008 | 0) >> 2] | 0) + 12 | 0) >> 2]))) | 0), HEAP32[(wasm2js_i32$0 + 572 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $11, wasm2js_i32$1 = btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($12 + 4 | 0 | 0, HEAP32[($11 + 576 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 568 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $11, wasm2js_i32$1 = btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($12 + 4 | 0 | 0, HEAP32[($11 + 572 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 564 | 0) >> 2] = wasm2js_i32$1; + label$22 : { + label$23 : { + if (!((btTypedConstraint__getOverrideNumSolverIterations_28_29_20const(HEAP32[($11 + 588 | 0) >> 2] | 0 | 0) | 0 | 0) > (0 | 0) & 1 | 0)) { + break label$23 + } + $407 = btTypedConstraint__getOverrideNumSolverIterations_28_29_20const(HEAP32[($11 + 588 | 0) >> 2] | 0 | 0) | 0; + break label$22; + } + $407 = HEAP32[((HEAP32[($11 + 1008 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0; + } + HEAP32[($11 + 560 | 0) >> 2] = $407; + label$24 : { + if (!((HEAP32[($11 + 560 | 0) >> 2] | 0 | 0) > (HEAP32[($12 + 184 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$24 + } + HEAP32[($12 + 184 | 0) >> 2] = HEAP32[($11 + 560 | 0) >> 2] | 0; + } + HEAP32[($11 + 556 | 0) >> 2] = 0; + label$25 : { + label$26 : while (1) { + if (!((HEAP32[($11 + 556 | 0) >> 2] | 0 | 0) < (HEAP32[(HEAP32[($11 + 596 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$25 + } + __memset((HEAP32[($11 + 592 | 0) >> 2] | 0) + Math_imul(HEAP32[($11 + 556 | 0) >> 2] | 0, 152) | 0 | 0, 0 | 0, 152 | 0) | 0; + HEAPF32[(((HEAP32[($11 + 592 | 0) >> 2] | 0) + Math_imul(HEAP32[($11 + 556 | 0) >> 2] | 0, 152) | 0) + 120 | 0) >> 2] = Math_fround(-3402823466385288598117041.0e14); + HEAPF32[(((HEAP32[($11 + 592 | 0) >> 2] | 0) + Math_imul(HEAP32[($11 + 556 | 0) >> 2] | 0, 152) | 0) + 124 | 0) >> 2] = Math_fround(3402823466385288598117041.0e14); + HEAPF32[(((HEAP32[($11 + 592 | 0) >> 2] | 0) + Math_imul(HEAP32[($11 + 556 | 0) >> 2] | 0, 152) | 0) + 100 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[(((HEAP32[($11 + 592 | 0) >> 2] | 0) + Math_imul(HEAP32[($11 + 556 | 0) >> 2] | 0, 152) | 0) + 96 | 0) >> 2] = Math_fround(0 | 0); + HEAP32[(((HEAP32[($11 + 592 | 0) >> 2] | 0) + Math_imul(HEAP32[($11 + 556 | 0) >> 2] | 0, 152) | 0) + 144 | 0) >> 2] = HEAP32[($11 + 576 | 0) >> 2] | 0; + HEAP32[(((HEAP32[($11 + 592 | 0) >> 2] | 0) + Math_imul(HEAP32[($11 + 556 | 0) >> 2] | 0, 152) | 0) + 148 | 0) >> 2] = HEAP32[($11 + 572 | 0) >> 2] | 0; + HEAP32[(((HEAP32[($11 + 592 | 0) >> 2] | 0) + Math_imul(HEAP32[($11 + 556 | 0) >> 2] | 0, 152) | 0) + 136 | 0) >> 2] = HEAP32[($11 + 560 | 0) >> 2] | 0; + HEAP32[($11 + 556 | 0) >> 2] = (HEAP32[($11 + 556 | 0) >> 2] | 0) + 1 | 0; + continue label$26; + }; + } + $483 = btSolverBody__internalGetDeltaLinearVelocity_28_29(HEAP32[($11 + 568 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($11 + 552 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 548 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 544 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($483 | 0, $11 + 552 | 0 | 0, $11 + 548 | 0 | 0, $11 + 544 | 0 | 0); + $500 = btSolverBody__internalGetDeltaAngularVelocity_28_29(HEAP32[($11 + 568 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($11 + 540 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 536 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 532 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($500 | 0, $11 + 540 | 0 | 0, $11 + 536 | 0 | 0, $11 + 532 | 0 | 0); + $517 = btSolverBody__internalGetPushVelocity_28_29(HEAP32[($11 + 568 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($11 + 528 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 524 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 520 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($517 | 0, $11 + 528 | 0 | 0, $11 + 524 | 0 | 0, $11 + 520 | 0 | 0); + $534 = btSolverBody__internalGetTurnVelocity_28_29(HEAP32[($11 + 568 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($11 + 516 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 512 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 508 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($534 | 0, $11 + 516 | 0 | 0, $11 + 512 | 0 | 0, $11 + 508 | 0 | 0); + $551 = btSolverBody__internalGetDeltaLinearVelocity_28_29(HEAP32[($11 + 564 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($11 + 504 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 500 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 496 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($551 | 0, $11 + 504 | 0 | 0, $11 + 500 | 0 | 0, $11 + 496 | 0 | 0); + $568 = btSolverBody__internalGetDeltaAngularVelocity_28_29(HEAP32[($11 + 564 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($11 + 492 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 488 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 484 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($568 | 0, $11 + 492 | 0 | 0, $11 + 488 | 0 | 0, $11 + 484 | 0 | 0); + $585 = btSolverBody__internalGetPushVelocity_28_29(HEAP32[($11 + 564 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($11 + 480 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 476 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 472 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($585 | 0, $11 + 480 | 0 | 0, $11 + 476 | 0 | 0, $11 + 472 | 0 | 0); + $602 = btSolverBody__internalGetTurnVelocity_28_29(HEAP32[($11 + 564 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($11 + 468 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 464 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 460 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($602 | 0, $11 + 468 | 0 | 0, $11 + 464 | 0 | 0, $11 + 460 | 0 | 0); + HEAPF32[($11 + 408 | 0) >> 2] = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[((HEAP32[($11 + 1008 | 0) >> 2] | 0) + 12 | 0) >> 2])); + HEAPF32[($11 + 412 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($11 + 1008 | 0) >> 2] | 0) + 32 | 0) >> 2]); + (wasm2js_i32$0 = $11, wasm2js_i32$1 = btVector3__operator_20float__28_29((HEAP32[($11 + 592 | 0) >> 2] | 0) + 16 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 416 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $11, wasm2js_i32$1 = btVector3__operator_20float__28_29(HEAP32[($11 + 592 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 420 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $11, wasm2js_i32$1 = btVector3__operator_20float__28_29((HEAP32[($11 + 592 | 0) >> 2] | 0) + 48 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 424 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $11, wasm2js_i32$1 = btVector3__operator_20float__28_29((HEAP32[($11 + 592 | 0) >> 2] | 0) + 32 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 428 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($11 + 432 | 0) >> 2] = 38; + label$27 : { + if (((HEAP32[($11 + 432 | 0) >> 2] | 0) << 2 | 0 | 0) == (152 | 0) & 1 | 0) { + break label$27 + } + __assert_fail(86267 | 0, 72591 | 0, 1508 | 0, 71285 | 0); + wasm2js_trap(); + } + HEAP32[($11 + 436 | 0) >> 2] = (HEAP32[($11 + 592 | 0) >> 2] | 0) + 112 | 0; + HEAPF32[((HEAP32[($11 + 592 | 0) >> 2] | 0) + 116 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($11 + 1008 | 0) >> 2] | 0) + 40 | 0) >> 2]); + HEAPF32[($11 + 456 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($11 + 1008 | 0) >> 2] | 0) + 4 | 0) >> 2]); + HEAP32[($11 + 440 | 0) >> 2] = (HEAP32[($11 + 592 | 0) >> 2] | 0) + 116 | 0; + HEAP32[($11 + 444 | 0) >> 2] = (HEAP32[($11 + 592 | 0) >> 2] | 0) + 120 | 0; + HEAP32[($11 + 448 | 0) >> 2] = (HEAP32[($11 + 592 | 0) >> 2] | 0) + 124 | 0; + HEAP32[($11 + 452 | 0) >> 2] = HEAP32[((HEAP32[($11 + 1008 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0; + $676 = HEAP32[((HEAP32[($11 + 1016 | 0) >> 2] | 0) + ((HEAP32[($11 + 612 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$676 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($676, $11 + 408 | 0); + HEAP32[($11 + 556 | 0) >> 2] = 0; + label$28 : { + label$29 : while (1) { + if (!((HEAP32[($11 + 556 | 0) >> 2] | 0 | 0) < (HEAP32[(HEAP32[($11 + 596 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$28 + } + HEAP32[($11 + 404 | 0) >> 2] = (HEAP32[($11 + 592 | 0) >> 2] | 0) + Math_imul(HEAP32[($11 + 556 | 0) >> 2] | 0, 152) | 0; + label$30 : { + if (!(Math_fround(HEAPF32[((HEAP32[($11 + 404 | 0) >> 2] | 0) + 124 | 0) >> 2]) >= Math_fround(btTypedConstraint__getBreakingImpulseThreshold_28_29_20const(HEAP32[((HEAP32[($11 + 1016 | 0) >> 2] | 0) + ((HEAP32[($11 + 612 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0)) & 1 | 0)) { + break label$30 + } + $714 = Math_fround(btTypedConstraint__getBreakingImpulseThreshold_28_29_20const(HEAP32[((HEAP32[($11 + 1016 | 0) >> 2] | 0) + ((HEAP32[($11 + 612 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0)); + HEAPF32[((HEAP32[($11 + 404 | 0) >> 2] | 0) + 124 | 0) >> 2] = $714; + } + label$31 : { + if (!(Math_fround(HEAPF32[((HEAP32[($11 + 404 | 0) >> 2] | 0) + 120 | 0) >> 2]) <= Math_fround(-Math_fround(btTypedConstraint__getBreakingImpulseThreshold_28_29_20const(HEAP32[((HEAP32[($11 + 1016 | 0) >> 2] | 0) + ((HEAP32[($11 + 612 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0))) & 1 | 0)) { + break label$31 + } + $736 = Math_fround(-Math_fround(btTypedConstraint__getBreakingImpulseThreshold_28_29_20const(HEAP32[((HEAP32[($11 + 1016 | 0) >> 2] | 0) + ((HEAP32[($11 + 612 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0))); + HEAPF32[((HEAP32[($11 + 404 | 0) >> 2] | 0) + 120 | 0) >> 2] = $736; + } + HEAP32[((HEAP32[($11 + 404 | 0) >> 2] | 0) + 132 | 0) >> 2] = HEAP32[($11 + 588 | 0) >> 2] | 0; + HEAP32[($11 + 400 | 0) >> 2] = HEAP32[($11 + 404 | 0) >> 2] | 0; + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($11 + 368 | 0 | 0, btRigidBody__getInvInertiaTensorWorld_28_29_20const(btTypedConstraint__getRigidBodyA_28_29(HEAP32[($11 + 588 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, HEAP32[($11 + 400 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($11 + 384 | 0 | 0, $11 + 368 | 0 | 0, btRigidBody__getAngularFactor_28_29_20const(btTypedConstraint__getRigidBodyA_28_29(HEAP32[($11 + 588 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + $759 = (HEAP32[($11 + 404 | 0) >> 2] | 0) + 64 | 0; + i64toi32_i32$2 = $11; + i64toi32_i32$0 = HEAP32[($11 + 384 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($11 + 388 | 0) >> 2] | 0; + $2805 = i64toi32_i32$0; + i64toi32_i32$0 = $759; + HEAP32[i64toi32_i32$0 >> 2] = $2805; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $761 = 8; + i64toi32_i32$2 = ($11 + 384 | 0) + $761 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2818 = i64toi32_i32$1; + i64toi32_i32$1 = $759 + $761 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $2818; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($11 + 364 | 0) >> 2] = (HEAP32[($11 + 404 | 0) >> 2] | 0) + 32 | 0; + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($11 + 332 | 0 | 0, btRigidBody__getInvInertiaTensorWorld_28_29_20const(btTypedConstraint__getRigidBodyB_28_29(HEAP32[($11 + 588 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, HEAP32[($11 + 364 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($11 + 348 | 0 | 0, $11 + 332 | 0 | 0, btRigidBody__getAngularFactor_28_29_20const(btTypedConstraint__getRigidBodyB_28_29(HEAP32[($11 + 588 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + $788 = (HEAP32[($11 + 404 | 0) >> 2] | 0) + 80 | 0; + i64toi32_i32$2 = $11; + i64toi32_i32$0 = HEAP32[($11 + 348 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($11 + 352 | 0) >> 2] | 0; + $2866 = i64toi32_i32$0; + i64toi32_i32$0 = $788; + HEAP32[i64toi32_i32$0 >> 2] = $2866; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $790 = 8; + i64toi32_i32$2 = ($11 + 348 | 0) + $790 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2879 = i64toi32_i32$1; + i64toi32_i32$1 = $788 + $790 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $2879; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $798 = (HEAP32[($11 + 404 | 0) >> 2] | 0) + 16 | 0; + (wasm2js_i32$0 = $11, wasm2js_f32$0 = Math_fround(btRigidBody__getInvMass_28_29_20const(HEAP32[($11 + 584 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 312 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20float_20const__29($11 + 316 | 0 | 0, $798 | 0, $11 + 312 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($11 + 296 | 0 | 0, btRigidBody__getInvInertiaTensorWorld_28_29_20const(HEAP32[($11 + 584 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($11 + 404 | 0) >> 2] | 0 | 0); + $815 = (HEAP32[($11 + 404 | 0) >> 2] | 0) + 48 | 0; + (wasm2js_i32$0 = $11, wasm2js_f32$0 = Math_fround(btRigidBody__getInvMass_28_29_20const(HEAP32[($11 + 580 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 276 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20float_20const__29($11 + 280 | 0 | 0, $815 | 0, $11 + 276 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($11 + 260 | 0 | 0, btRigidBody__getInvInertiaTensorWorld_28_29_20const(HEAP32[($11 + 580 | 0) >> 2] | 0 | 0) | 0 | 0, (HEAP32[($11 + 404 | 0) >> 2] | 0) + 32 | 0 | 0); + (wasm2js_i32$0 = $11, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($11 + 316 | 0 | 0, (HEAP32[($11 + 404 | 0) >> 2] | 0) + 16 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 256 | 0) >> 2] = wasm2js_f32$0; + $843 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($11 + 296 | 0 | 0, HEAP32[($11 + 404 | 0) >> 2] | 0 | 0)); + HEAPF32[($11 + 256 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($11 + 256 | 0) >> 2]) + $843); + $852 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($11 + 280 | 0 | 0, (HEAP32[($11 + 404 | 0) >> 2] | 0) + 48 | 0 | 0)); + HEAPF32[($11 + 256 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($11 + 256 | 0) >> 2]) + $852); + $861 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($11 + 260 | 0 | 0, (HEAP32[($11 + 404 | 0) >> 2] | 0) + 32 | 0 | 0)); + HEAPF32[($11 + 256 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($11 + 256 | 0) >> 2]) + $861); + (wasm2js_i32$0 = $11, wasm2js_f32$0 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[($11 + 256 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 252 | 0) >> 2] = wasm2js_f32$0; + label$32 : { + if (Math_fround(HEAPF32[($11 + 252 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0) { + break label$32 + } + __assert_fail(84262 | 0, 72591 | 0, 1555 | 0, 71285 | 0); + wasm2js_trap(); + } + HEAPF32[($11 + 248 | 0) >> 2] = Math_fround(1.0); + label$33 : { + label$34 : { + if (!(Math_fround(HEAPF32[($11 + 252 | 0) >> 2]) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$34 + } + $884 = Math_fround(Math_fround(HEAPF32[($11 + 248 | 0) >> 2]) / Math_fround(HEAPF32[($11 + 256 | 0) >> 2])); + break label$33; + } + $884 = Math_fround(0 | 0); + } + HEAPF32[((HEAP32[($11 + 404 | 0) >> 2] | 0) + 108 | 0) >> 2] = $884; + label$35 : { + label$36 : { + if (!((HEAP32[((HEAP32[($11 + 568 | 0) >> 2] | 0) + 240 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$36 + } + $899 = (HEAP32[($11 + 568 | 0) >> 2] | 0) + 208 | 0; + $900 = 8; + i64toi32_i32$2 = $899 + $900 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $3099 = i64toi32_i32$0; + i64toi32_i32$0 = ($11 + 224 | 0) + $900 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $3099; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $899; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $3103 = i64toi32_i32$1; + i64toi32_i32$1 = $11; + HEAP32[($11 + 224 | 0) >> 2] = $3103; + HEAP32[($11 + 228 | 0) >> 2] = i64toi32_i32$0; + break label$35; + } + HEAPF32[($11 + 220 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 216 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 212 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($11 + 224 | 0 | 0, $11 + 220 | 0 | 0, $11 + 216 | 0 | 0, $11 + 212 | 0 | 0) | 0; + } + label$37 : { + label$38 : { + if (!((HEAP32[((HEAP32[($11 + 568 | 0) >> 2] | 0) + 240 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$38 + } + $935 = (HEAP32[($11 + 568 | 0) >> 2] | 0) + 224 | 0; + $936 = 8; + i64toi32_i32$2 = $935 + $936 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $3168 = i64toi32_i32$0; + i64toi32_i32$0 = ($11 + 192 | 0) + $936 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $3168; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $935; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $3172 = i64toi32_i32$1; + i64toi32_i32$1 = $11; + HEAP32[($11 + 192 | 0) >> 2] = $3172; + HEAP32[($11 + 196 | 0) >> 2] = i64toi32_i32$0; + break label$37; + } + HEAPF32[($11 + 188 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 184 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 180 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($11 + 192 | 0 | 0, $11 + 188 | 0 | 0, $11 + 184 | 0 | 0, $11 + 180 | 0 | 0) | 0; + } + label$39 : { + label$40 : { + if (!((HEAP32[((HEAP32[($11 + 564 | 0) >> 2] | 0) + 240 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$40 + } + $971 = (HEAP32[($11 + 564 | 0) >> 2] | 0) + 208 | 0; + $972 = 8; + i64toi32_i32$2 = $971 + $972 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $3237 = i64toi32_i32$0; + i64toi32_i32$0 = ($11 + 160 | 0) + $972 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $3237; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $971; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $3241 = i64toi32_i32$1; + i64toi32_i32$1 = $11; + HEAP32[($11 + 160 | 0) >> 2] = $3241; + HEAP32[($11 + 164 | 0) >> 2] = i64toi32_i32$0; + break label$39; + } + HEAPF32[($11 + 156 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 152 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 148 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($11 + 160 | 0 | 0, $11 + 156 | 0 | 0, $11 + 152 | 0 | 0, $11 + 148 | 0 | 0) | 0; + } + label$41 : { + label$42 : { + if (!((HEAP32[((HEAP32[($11 + 564 | 0) >> 2] | 0) + 240 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$42 + } + $1007 = (HEAP32[($11 + 564 | 0) >> 2] | 0) + 224 | 0; + $1008 = 8; + i64toi32_i32$2 = $1007 + $1008 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $3306 = i64toi32_i32$0; + i64toi32_i32$0 = ($11 + 128 | 0) + $1008 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $3306; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $1007; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $3310 = i64toi32_i32$1; + i64toi32_i32$1 = $11; + HEAP32[($11 + 128 | 0) >> 2] = $3310; + HEAP32[($11 + 132 | 0) >> 2] = i64toi32_i32$0; + break label$41; + } + HEAPF32[($11 + 124 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 120 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 116 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($11 + 128 | 0 | 0, $11 + 124 | 0 | 0, $11 + 120 | 0 | 0, $11 + 116 | 0 | 0) | 0; + } + $1035 = (HEAP32[($11 + 404 | 0) >> 2] | 0) + 16 | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($11 + 96 | 0 | 0, btRigidBody__getLinearVelocity_28_29_20const(HEAP32[($11 + 584 | 0) >> 2] | 0 | 0) | 0 | 0, $11 + 224 | 0 | 0); + $1047 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($1035 | 0, $11 + 96 | 0 | 0)); + $1048 = HEAP32[($11 + 404 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($11 + 80 | 0 | 0, btRigidBody__getAngularVelocity_28_29_20const(HEAP32[($11 + 584 | 0) >> 2] | 0 | 0) | 0 | 0, $11 + 192 | 0 | 0); + (wasm2js_i32$0 = $11, wasm2js_f32$0 = Math_fround($1047 + Math_fround(btVector3__dot_28btVector3_20const__29_20const($1048 | 0, $11 + 80 | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 112 | 0) >> 2] = wasm2js_f32$0; + $1064 = (HEAP32[($11 + 404 | 0) >> 2] | 0) + 48 | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($11 + 60 | 0 | 0, btRigidBody__getLinearVelocity_28_29_20const(HEAP32[($11 + 580 | 0) >> 2] | 0 | 0) | 0 | 0, $11 + 160 | 0 | 0); + $1076 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($1064 | 0, $11 + 60 | 0 | 0)); + $1079 = (HEAP32[($11 + 404 | 0) >> 2] | 0) + 32 | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($11 + 44 | 0 | 0, btRigidBody__getAngularVelocity_28_29_20const(HEAP32[($11 + 580 | 0) >> 2] | 0 | 0) | 0 | 0, $11 + 128 | 0 | 0); + (wasm2js_i32$0 = $11, wasm2js_f32$0 = Math_fround($1076 + Math_fround(btVector3__dot_28btVector3_20const__29_20const($1079 | 0, $11 + 44 | 0 | 0)))), HEAPF32[(wasm2js_i32$0 + 76 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($11 + 244 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($11 + 112 | 0) >> 2]) + Math_fround(HEAPF32[($11 + 76 | 0) >> 2])); + HEAPF32[($11 + 40 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($11 + 36 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($11 + 404 | 0) >> 2] | 0) + 112 | 0) >> 2]); + HEAPF32[($11 + 32 | 0) >> 2] = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($11 + 244 | 0) >> 2])) * Math_fround(HEAPF32[($11 + 456 | 0) >> 2])) + Math_fround(HEAPF32[($11 + 40 | 0) >> 2])); + HEAPF32[($11 + 28 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($11 + 36 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($11 + 404 | 0) >> 2] | 0) + 108 | 0) >> 2])); + HEAPF32[($11 + 24 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($11 + 32 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($11 + 404 | 0) >> 2] | 0) + 108 | 0) >> 2])); + HEAPF32[((HEAP32[($11 + 404 | 0) >> 2] | 0) + 112 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($11 + 28 | 0) >> 2]) + Math_fround(HEAPF32[($11 + 24 | 0) >> 2])); + HEAPF32[((HEAP32[($11 + 404 | 0) >> 2] | 0) + 100 | 0) >> 2] = Math_fround(0 | 0); + HEAP32[($11 + 556 | 0) >> 2] = (HEAP32[($11 + 556 | 0) >> 2] | 0) + 1 | 0; + continue label$29; + }; + } + } + $1128 = HEAP32[(btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___operator_5b_5d_28int_29($12 + 164 | 0 | 0, HEAP32[($11 + 612 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + HEAP32[($11 + 600 | 0) >> 2] = (HEAP32[($11 + 600 | 0) >> 2] | 0) + $1128 | 0; + HEAP32[($11 + 612 | 0) >> 2] = (HEAP32[($11 + 612 | 0) >> 2] | 0) + 1 | 0; + continue label$19; + }; + } + FUNCTION_TABLE[HEAP32[((HEAP32[$12 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($12, HEAP32[($11 + 1024 | 0) >> 2] | 0, HEAP32[($11 + 1020 | 0) >> 2] | 0, HEAP32[($11 + 1008 | 0) >> 2] | 0); + (wasm2js_i32$0 = $11, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___size_28_29_20const($12 + 44 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $11, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___size_28_29_20const($12 + 24 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $11, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___size_28_29_20const($12 + 64 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_int___resizeNoInitialize_28int_29($12 + 124 | 0 | 0, HEAP32[($11 + 20 | 0) >> 2] | 0 | 0); + label$43 : { + label$44 : { + if (!((HEAP32[((HEAP32[($11 + 1008 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0) & 16 | 0)) { + break label$44 + } + btAlignedObjectArray_int___resizeNoInitialize_28int_29($12 + 104 | 0 | 0, (HEAP32[($11 + 16 | 0) >> 2] | 0) << 1 | 0 | 0); + break label$43; + } + btAlignedObjectArray_int___resizeNoInitialize_28int_29($12 + 104 | 0 | 0, HEAP32[($11 + 16 | 0) >> 2] | 0 | 0); + } + btAlignedObjectArray_int___resizeNoInitialize_28int_29($12 + 144 | 0 | 0, HEAP32[($11 + 12 | 0) >> 2] | 0 | 0); + HEAP32[($11 + 8 | 0) >> 2] = 0; + label$45 : { + label$46 : while (1) { + if (!((HEAP32[($11 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($11 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$45 + } + $1174 = HEAP32[($11 + 8 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($12 + 124 | 0 | 0, HEAP32[($11 + 8 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $1174), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[($11 + 8 | 0) >> 2] = (HEAP32[($11 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$46; + }; + } + HEAP32[($11 + 8 | 0) >> 2] = 0; + label$47 : { + label$48 : while (1) { + if (!((HEAP32[($11 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($11 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$47 + } + $1190 = HEAP32[($11 + 8 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($12 + 104 | 0 | 0, HEAP32[($11 + 8 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $1190), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[($11 + 8 | 0) >> 2] = (HEAP32[($11 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$48; + }; + } + HEAP32[($11 + 8 | 0) >> 2] = 0; + label$49 : { + label$50 : while (1) { + if (!((HEAP32[($11 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($11 + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$49 + } + $1206 = HEAP32[($11 + 8 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($12 + 144 | 0 | 0, HEAP32[($11 + 8 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $1206), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[($11 + 8 | 0) >> 2] = (HEAP32[($11 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$50; + }; + } + CProfileSample___CProfileSample_28_29($11 + 1003 | 0 | 0) | 0; + __stack_pointer = $11 + 1040 | 0; + return Math_fround(Math_fround(0 | 0)); + } + + function btAlignedObjectArray_btSolverBody___resize_28int_2c_20btSolverBody_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btSolverBody___size_28_29_20const($6 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + break label$1; + } + label$5 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) > (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + btAlignedObjectArray_btSolverBody___reserve_28int_29($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + btSolverBody__btSolverBody_28btSolverBody_20const__29(btSolverBody__operator_20new_28unsigned_20long_2c_20void__29(244 | 0, (HEAP32[($6 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($5 + 8 | 0) >> 2] | 0, 244) | 0 | 0) | 0 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btTypedConstraint__internalSetAppliedImpulse_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + return; + } + + function btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___resizeNoInitialize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) > (btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___reserve_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 4 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 3 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btTypedConstraint__getJointFeedback_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0; + } + + function btTypedConstraint__isEnabled_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAPU8[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 20 | 0) >> 0] | 0) & 1 | 0 | 0; + } + + function btAlignedObjectArray_btSolverConstraint___resizeNoInitialize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) > (btAlignedObjectArray_btSolverConstraint___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btSolverConstraint___reserve_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 4 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btTypedConstraint__getOverrideNumSolverIterations_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0; + } + + function btTypedConstraint__getBreakingImpulseThreshold_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2])); + } + + function btAlignedObjectArray_int___resizeNoInitialize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) > (btAlignedObjectArray_int___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_int___reserve_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 4 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btSolverBody___allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btSolverBody_2c_2016u___allocate_28int_2c_20btSolverBody_20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btSolverBody___copy_28int_2c_20int_2c_20btSolverBody__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + btSolverBody__btSolverBody_28btSolverBody_20const__29(btSolverBody__operator_20new_28unsigned_20long_2c_20void__29(244 | 0, (HEAP32[($6 + 16 | 0) >> 2] | 0) + Math_imul(HEAP32[($6 + 12 | 0) >> 2] | 0, 244) | 0 | 0) | 0 | 0, (HEAP32[($7 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($6 + 12 | 0) >> 2] | 0, 244) | 0 | 0) | 0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $6 + 32 | 0; + return; + } + + function btAlignedObjectArray_btSolverBody___destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btSolverBody___deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btSolverBody_2c_2016u___deallocate_28btSolverBody__29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___copy_28int_2c_20int_2c_20btTypedConstraint__btConstraintInfo1__29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btSequentialImpulseConstraintSolver__solveSingleIteration_28int_2c_20btCollisionObject___2c_20int_2c_20btPersistentManifold___2c_20int_2c_20btTypedConstraint___2c_20int_2c_20btContactSolverInfo_20const__2c_20btIDebugDraw__29($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + $8 = $8 | 0; + $9 = $9 | 0; + var $12 = 0, $13 = 0, $243 = 0, $50 = 0, $55 = 0, $92 = 0, $97 = 0, $126 = 0, $131 = 0, $570 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $12 = __stack_pointer - 224 | 0; + __stack_pointer = $12; + HEAP32[($12 + 220 | 0) >> 2] = $0; + HEAP32[($12 + 216 | 0) >> 2] = $1; + HEAP32[($12 + 212 | 0) >> 2] = $2; + HEAP32[($12 + 208 | 0) >> 2] = $3; + HEAP32[($12 + 204 | 0) >> 2] = $4; + HEAP32[($12 + 200 | 0) >> 2] = $5; + HEAP32[($12 + 196 | 0) >> 2] = $6; + HEAP32[($12 + 192 | 0) >> 2] = $7; + HEAP32[($12 + 188 | 0) >> 2] = $8; + HEAP32[($12 + 184 | 0) >> 2] = $9; + $13 = HEAP32[($12 + 220 | 0) >> 2] | 0; + HEAPF32[($12 + 180 | 0) >> 2] = Math_fround(0 | 0); + (wasm2js_i32$0 = $12, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___size_28_29_20const($13 + 44 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 176 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $12, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___size_28_29_20const($13 + 24 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 172 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $12, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___size_28_29_20const($13 + 64 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 168 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[((HEAP32[($12 + 188 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0) & 1 | 0)) { + break label$1 + } + HEAP32[($12 + 164 | 0) >> 2] = 0; + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($12 + 164 | 0) >> 2] | 0 | 0) < (HEAP32[($12 + 176 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + (wasm2js_i32$0 = $12, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($13 + 124 | 0 | 0, HEAP32[($12 + 164 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 160 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $12, wasm2js_i32$1 = btSequentialImpulseConstraintSolver__btRandInt2_28int_29($13 | 0, (HEAP32[($12 + 164 | 0) >> 2] | 0) + 1 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 156 | 0) >> 2] = wasm2js_i32$1; + $50 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($13 + 124 | 0 | 0, HEAP32[($12 + 156 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($13 + 124 | 0 | 0, HEAP32[($12 + 164 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $50), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $55 = HEAP32[($12 + 160 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($13 + 124 | 0 | 0, HEAP32[($12 + 156 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $55), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[($12 + 164 | 0) >> 2] = (HEAP32[($12 + 164 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + label$4 : { + if (!((HEAP32[($12 + 216 | 0) >> 2] | 0 | 0) < (HEAP32[((HEAP32[($12 + 188 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($12 + 152 | 0) >> 2] = 0; + label$5 : { + label$6 : while (1) { + if (!((HEAP32[($12 + 152 | 0) >> 2] | 0 | 0) < (HEAP32[($12 + 172 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + (wasm2js_i32$0 = $12, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($13 + 104 | 0 | 0, HEAP32[($12 + 152 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 148 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $12, wasm2js_i32$1 = btSequentialImpulseConstraintSolver__btRandInt2_28int_29($13 | 0, (HEAP32[($12 + 152 | 0) >> 2] | 0) + 1 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 144 | 0) >> 2] = wasm2js_i32$1; + $92 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($13 + 104 | 0 | 0, HEAP32[($12 + 144 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($13 + 104 | 0 | 0, HEAP32[($12 + 152 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $92), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $97 = HEAP32[($12 + 148 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($13 + 104 | 0 | 0, HEAP32[($12 + 144 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $97), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[($12 + 152 | 0) >> 2] = (HEAP32[($12 + 152 | 0) >> 2] | 0) + 1 | 0; + continue label$6; + }; + } + HEAP32[($12 + 140 | 0) >> 2] = 0; + label$7 : { + label$8 : while (1) { + if (!((HEAP32[($12 + 140 | 0) >> 2] | 0 | 0) < (HEAP32[($12 + 168 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$7 + } + (wasm2js_i32$0 = $12, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($13 + 144 | 0 | 0, HEAP32[($12 + 140 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 136 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $12, wasm2js_i32$1 = btSequentialImpulseConstraintSolver__btRandInt2_28int_29($13 | 0, (HEAP32[($12 + 140 | 0) >> 2] | 0) + 1 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 132 | 0) >> 2] = wasm2js_i32$1; + $126 = HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($13 + 144 | 0 | 0, HEAP32[($12 + 132 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($13 + 144 | 0 | 0, HEAP32[($12 + 140 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $126), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $131 = HEAP32[($12 + 136 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_int___operator_5b_5d_28int_29($13 + 144 | 0 | 0, HEAP32[($12 + 132 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $131), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[($12 + 140 | 0) >> 2] = (HEAP32[($12 + 140 | 0) >> 2] | 0) + 1 | 0; + continue label$8; + }; + } + } + } + HEAP32[($12 + 128 | 0) >> 2] = 0; + label$9 : { + label$10 : while (1) { + if (!((HEAP32[($12 + 128 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btSolverConstraint___size_28_29_20const($13 + 44 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$9 + } + (wasm2js_i32$0 = $12, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___operator_5b_5d_28int_29($13 + 44 | 0 | 0, HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($13 + 124 | 0 | 0, HEAP32[($12 + 128 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 124 | 0) >> 2] = wasm2js_i32$1; + label$11 : { + if (!((HEAP32[($12 + 216 | 0) >> 2] | 0 | 0) < (HEAP32[((HEAP32[($12 + 124 | 0) >> 2] | 0) + 136 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$11 + } + (wasm2js_i32$0 = $12, wasm2js_f32$0 = Math_fround(btSequentialImpulseConstraintSolver__resolveSingleConstraintRowGeneric_28btSolverBody__2c_20btSolverBody__2c_20btSolverConstraint_20const__29($13 | 0, btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($13 + 4 | 0 | 0, HEAP32[((HEAP32[($12 + 124 | 0) >> 2] | 0) + 144 | 0) >> 2] | 0 | 0) | 0 | 0, btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($13 + 4 | 0 | 0, HEAP32[((HEAP32[($12 + 124 | 0) >> 2] | 0) + 148 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($12 + 124 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 120 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($12 + 180 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($12 + 120 | 0) >> 2]) * Math_fround(HEAPF32[($12 + 120 | 0) >> 2])) + Math_fround(HEAPF32[($12 + 180 | 0) >> 2])); + } + HEAP32[($12 + 128 | 0) >> 2] = (HEAP32[($12 + 128 | 0) >> 2] | 0) + 1 | 0; + continue label$10; + }; + } + label$12 : { + if (!((HEAP32[($12 + 216 | 0) >> 2] | 0 | 0) < (HEAP32[((HEAP32[($12 + 188 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$12 + } + HEAP32[($12 + 116 | 0) >> 2] = 0; + label$13 : { + label$14 : while (1) { + if (!((HEAP32[($12 + 116 | 0) >> 2] | 0 | 0) < (HEAP32[($12 + 192 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$13 + } + label$15 : { + if (!((btTypedConstraint__isEnabled_28_29_20const(HEAP32[((HEAP32[($12 + 196 | 0) >> 2] | 0) + ((HEAP32[($12 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$15 + } + (wasm2js_i32$0 = $12, wasm2js_i32$1 = btSequentialImpulseConstraintSolver__getOrInitSolverBody_28btCollisionObject__2c_20float_29($13 | 0, btTypedConstraint__getRigidBodyA_28_29(HEAP32[((HEAP32[($12 + 196 | 0) >> 2] | 0) + ((HEAP32[($12 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) | 0 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($12 + 188 | 0) >> 2] | 0) + 12 | 0) >> 2]))) | 0), HEAP32[(wasm2js_i32$0 + 112 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $12, wasm2js_i32$1 = btSequentialImpulseConstraintSolver__getOrInitSolverBody_28btCollisionObject__2c_20float_29($13 | 0, btTypedConstraint__getRigidBodyB_28_29(HEAP32[((HEAP32[($12 + 196 | 0) >> 2] | 0) + ((HEAP32[($12 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) | 0 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($12 + 188 | 0) >> 2] | 0) + 12 | 0) >> 2]))) | 0), HEAP32[(wasm2js_i32$0 + 108 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $12, wasm2js_i32$1 = btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($13 + 4 | 0 | 0, HEAP32[($12 + 112 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 104 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $12, wasm2js_i32$1 = btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($13 + 4 | 0 | 0, HEAP32[($12 + 108 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 100 | 0) >> 2] = wasm2js_i32$1; + $243 = HEAP32[((HEAP32[($12 + 196 | 0) >> 2] | 0) + ((HEAP32[($12 + 116 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$243 >> 2] | 0) + 24 | 0) >> 2] | 0 | 0]($243, HEAP32[($12 + 104 | 0) >> 2] | 0, HEAP32[($12 + 100 | 0) >> 2] | 0, Math_fround(HEAPF32[((HEAP32[($12 + 188 | 0) >> 2] | 0) + 12 | 0) >> 2])); + } + HEAP32[($12 + 116 | 0) >> 2] = (HEAP32[($12 + 116 | 0) >> 2] | 0) + 1 | 0; + continue label$14; + }; + } + label$16 : { + label$17 : { + if (!((HEAP32[((HEAP32[($12 + 188 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0) & 512 | 0)) { + break label$17 + } + (wasm2js_i32$0 = $12, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___size_28_29_20const($13 + 24 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 96 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($12 + 92 | 0) >> 2] = (HEAP32[((HEAP32[($12 + 188 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0) & 16 | 0 ? 2 : 1; + HEAP32[($12 + 88 | 0) >> 2] = 0; + label$18 : { + label$19 : while (1) { + if (!((HEAP32[($12 + 88 | 0) >> 2] | 0 | 0) < (HEAP32[($12 + 96 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$18 + } + HEAPF32[($12 + 84 | 0) >> 2] = Math_fround(0 | 0); + (wasm2js_i32$0 = $12, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___operator_5b_5d_28int_29($13 + 24 | 0 | 0, HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($13 + 104 | 0 | 0, HEAP32[($12 + 88 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 80 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $12, wasm2js_f32$0 = Math_fround(btSequentialImpulseConstraintSolver__resolveSingleConstraintRowLowerLimit_28btSolverBody__2c_20btSolverBody__2c_20btSolverConstraint_20const__29($13 | 0, btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($13 + 4 | 0 | 0, HEAP32[((HEAP32[($12 + 80 | 0) >> 2] | 0) + 144 | 0) >> 2] | 0 | 0) | 0 | 0, btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($13 + 4 | 0 | 0, HEAP32[((HEAP32[($12 + 80 | 0) >> 2] | 0) + 148 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($12 + 80 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 76 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($12 + 180 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($12 + 76 | 0) >> 2]) * Math_fround(HEAPF32[($12 + 76 | 0) >> 2])) + Math_fround(HEAPF32[($12 + 180 | 0) >> 2])); + HEAPF32[($12 + 84 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($12 + 80 | 0) >> 2] | 0) + 100 | 0) >> 2]); + HEAP8[($12 + 75 | 0) >> 0] = 1; + label$20 : { + if (!((HEAPU8[($12 + 75 | 0) >> 0] | 0) & 1 | 0)) { + break label$20 + } + (wasm2js_i32$0 = $12, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___operator_5b_5d_28int_29($13 + 64 | 0 | 0, HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($13 + 144 | 0 | 0, Math_imul(HEAP32[($12 + 88 | 0) >> 2] | 0, HEAP32[($12 + 92 | 0) >> 2] | 0) | 0) | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 68 | 0) >> 2] = wasm2js_i32$1; + label$21 : { + if (!(Math_fround(HEAPF32[($12 + 84 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$21 + } + HEAPF32[((HEAP32[($12 + 68 | 0) >> 2] | 0) + 120 | 0) >> 2] = Math_fround(-Math_fround(Math_fround(HEAPF32[((HEAP32[($12 + 68 | 0) >> 2] | 0) + 104 | 0) >> 2]) * Math_fround(HEAPF32[($12 + 84 | 0) >> 2]))); + HEAPF32[((HEAP32[($12 + 68 | 0) >> 2] | 0) + 124 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($12 + 68 | 0) >> 2] | 0) + 104 | 0) >> 2]) * Math_fround(HEAPF32[($12 + 84 | 0) >> 2])); + (wasm2js_i32$0 = $12, wasm2js_f32$0 = Math_fround(btSequentialImpulseConstraintSolver__resolveSingleConstraintRowGeneric_28btSolverBody__2c_20btSolverBody__2c_20btSolverConstraint_20const__29($13 | 0, btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($13 + 4 | 0 | 0, HEAP32[((HEAP32[($12 + 68 | 0) >> 2] | 0) + 144 | 0) >> 2] | 0 | 0) | 0 | 0, btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($13 + 4 | 0 | 0, HEAP32[((HEAP32[($12 + 68 | 0) >> 2] | 0) + 148 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($12 + 68 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 64 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($12 + 180 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($12 + 64 | 0) >> 2]) * Math_fround(HEAPF32[($12 + 64 | 0) >> 2])) + Math_fround(HEAPF32[($12 + 180 | 0) >> 2])); + } + label$22 : { + if (!((HEAP32[((HEAP32[($12 + 188 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0) & 16 | 0)) { + break label$22 + } + (wasm2js_i32$0 = $12, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___operator_5b_5d_28int_29($13 + 64 | 0 | 0, HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($13 + 144 | 0 | 0, Math_imul(HEAP32[($12 + 88 | 0) >> 2] | 0, HEAP32[($12 + 92 | 0) >> 2] | 0) + 1 | 0 | 0) | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 60 | 0) >> 2] = wasm2js_i32$1; + label$23 : { + if (!(Math_fround(HEAPF32[($12 + 84 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$23 + } + HEAPF32[((HEAP32[($12 + 60 | 0) >> 2] | 0) + 120 | 0) >> 2] = Math_fround(-Math_fround(Math_fround(HEAPF32[((HEAP32[($12 + 60 | 0) >> 2] | 0) + 104 | 0) >> 2]) * Math_fround(HEAPF32[($12 + 84 | 0) >> 2]))); + HEAPF32[((HEAP32[($12 + 60 | 0) >> 2] | 0) + 124 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($12 + 60 | 0) >> 2] | 0) + 104 | 0) >> 2]) * Math_fround(HEAPF32[($12 + 84 | 0) >> 2])); + (wasm2js_i32$0 = $12, wasm2js_f32$0 = Math_fround(btSequentialImpulseConstraintSolver__resolveSingleConstraintRowGeneric_28btSolverBody__2c_20btSolverBody__2c_20btSolverConstraint_20const__29($13 | 0, btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($13 + 4 | 0 | 0, HEAP32[((HEAP32[($12 + 60 | 0) >> 2] | 0) + 144 | 0) >> 2] | 0 | 0) | 0 | 0, btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($13 + 4 | 0 | 0, HEAP32[((HEAP32[($12 + 60 | 0) >> 2] | 0) + 148 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($12 + 60 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 56 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($12 + 180 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($12 + 56 | 0) >> 2]) * Math_fround(HEAPF32[($12 + 56 | 0) >> 2])) + Math_fround(HEAPF32[($12 + 180 | 0) >> 2])); + } + } + } + HEAP32[($12 + 88 | 0) >> 2] = (HEAP32[($12 + 88 | 0) >> 2] | 0) + 1 | 0; + continue label$19; + }; + } + break label$16; + } + (wasm2js_i32$0 = $12, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___size_28_29_20const($13 + 24 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 52 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($12 + 48 | 0) >> 2] = 0; + label$24 : { + label$25 : while (1) { + if (!((HEAP32[($12 + 48 | 0) >> 2] | 0 | 0) < (HEAP32[($12 + 52 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$24 + } + (wasm2js_i32$0 = $12, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___operator_5b_5d_28int_29($13 + 24 | 0 | 0, HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($13 + 104 | 0 | 0, HEAP32[($12 + 48 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $12, wasm2js_f32$0 = Math_fround(btSequentialImpulseConstraintSolver__resolveSingleConstraintRowLowerLimit_28btSolverBody__2c_20btSolverBody__2c_20btSolverConstraint_20const__29($13 | 0, btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($13 + 4 | 0 | 0, HEAP32[((HEAP32[($12 + 44 | 0) >> 2] | 0) + 144 | 0) >> 2] | 0 | 0) | 0 | 0, btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($13 + 4 | 0 | 0, HEAP32[((HEAP32[($12 + 44 | 0) >> 2] | 0) + 148 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($12 + 44 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($12 + 180 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($12 + 40 | 0) >> 2]) * Math_fround(HEAPF32[($12 + 40 | 0) >> 2])) + Math_fround(HEAPF32[($12 + 180 | 0) >> 2])); + HEAP32[($12 + 48 | 0) >> 2] = (HEAP32[($12 + 48 | 0) >> 2] | 0) + 1 | 0; + continue label$25; + }; + } + (wasm2js_i32$0 = $12, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___size_28_29_20const($13 + 64 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($12 + 48 | 0) >> 2] = 0; + label$26 : { + label$27 : while (1) { + if (!((HEAP32[($12 + 48 | 0) >> 2] | 0 | 0) < (HEAP32[($12 + 36 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$26 + } + (wasm2js_i32$0 = $12, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___operator_5b_5d_28int_29($13 + 64 | 0 | 0, HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($13 + 144 | 0 | 0, HEAP32[($12 + 48 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $12, wasm2js_f32$0 = Math_fround(HEAPF32[((btAlignedObjectArray_btSolverConstraint___operator_5b_5d_28int_29($13 + 24 | 0 | 0, HEAP32[((HEAP32[($12 + 32 | 0) >> 2] | 0) + 140 | 0) >> 2] | 0 | 0) | 0) + 100 | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + label$28 : { + if (!(Math_fround(HEAPF32[($12 + 28 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$28 + } + HEAPF32[((HEAP32[($12 + 32 | 0) >> 2] | 0) + 120 | 0) >> 2] = Math_fround(-Math_fround(Math_fround(HEAPF32[((HEAP32[($12 + 32 | 0) >> 2] | 0) + 104 | 0) >> 2]) * Math_fround(HEAPF32[($12 + 28 | 0) >> 2]))); + HEAPF32[((HEAP32[($12 + 32 | 0) >> 2] | 0) + 124 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($12 + 32 | 0) >> 2] | 0) + 104 | 0) >> 2]) * Math_fround(HEAPF32[($12 + 28 | 0) >> 2])); + (wasm2js_i32$0 = $12, wasm2js_f32$0 = Math_fround(btSequentialImpulseConstraintSolver__resolveSingleConstraintRowGeneric_28btSolverBody__2c_20btSolverBody__2c_20btSolverConstraint_20const__29($13 | 0, btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($13 + 4 | 0 | 0, HEAP32[((HEAP32[($12 + 32 | 0) >> 2] | 0) + 144 | 0) >> 2] | 0 | 0) | 0 | 0, btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($13 + 4 | 0 | 0, HEAP32[((HEAP32[($12 + 32 | 0) >> 2] | 0) + 148 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($12 + 32 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($12 + 180 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($12 + 24 | 0) >> 2]) * Math_fround(HEAPF32[($12 + 24 | 0) >> 2])) + Math_fround(HEAPF32[($12 + 180 | 0) >> 2])); + } + HEAP32[($12 + 48 | 0) >> 2] = (HEAP32[($12 + 48 | 0) >> 2] | 0) + 1 | 0; + continue label$27; + }; + } + } + (wasm2js_i32$0 = $12, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___size_28_29_20const($13 + 84 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($12 + 16 | 0) >> 2] = 0; + label$29 : { + label$30 : while (1) { + if (!((HEAP32[($12 + 16 | 0) >> 2] | 0 | 0) < (HEAP32[($12 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$29 + } + (wasm2js_i32$0 = $12, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___operator_5b_5d_28int_29($13 + 84 | 0 | 0, HEAP32[($12 + 16 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $12, wasm2js_f32$0 = Math_fround(HEAPF32[((btAlignedObjectArray_btSolverConstraint___operator_5b_5d_28int_29($13 + 24 | 0 | 0, HEAP32[((HEAP32[($12 + 12 | 0) >> 2] | 0) + 140 | 0) >> 2] | 0 | 0) | 0) + 100 | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + label$31 : { + if (!(Math_fround(HEAPF32[($12 + 8 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$31 + } + HEAPF32[($12 + 4 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($12 + 12 | 0) >> 2] | 0) + 104 | 0) >> 2]) * Math_fround(HEAPF32[($12 + 8 | 0) >> 2])); + label$32 : { + if (!(Math_fround(HEAPF32[($12 + 4 | 0) >> 2]) > Math_fround(HEAPF32[((HEAP32[($12 + 12 | 0) >> 2] | 0) + 104 | 0) >> 2]) & 1 | 0)) { + break label$32 + } + HEAPF32[($12 + 4 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($12 + 12 | 0) >> 2] | 0) + 104 | 0) >> 2]); + } + HEAPF32[((HEAP32[($12 + 12 | 0) >> 2] | 0) + 120 | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[($12 + 4 | 0) >> 2])); + HEAPF32[((HEAP32[($12 + 12 | 0) >> 2] | 0) + 124 | 0) >> 2] = Math_fround(HEAPF32[($12 + 4 | 0) >> 2]); + (wasm2js_i32$0 = $12, wasm2js_f32$0 = Math_fround(btSequentialImpulseConstraintSolver__resolveSingleConstraintRowGeneric_28btSolverBody__2c_20btSolverBody__2c_20btSolverConstraint_20const__29($13 | 0, btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($13 + 4 | 0 | 0, HEAP32[((HEAP32[($12 + 12 | 0) >> 2] | 0) + 144 | 0) >> 2] | 0 | 0) | 0 | 0, btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($13 + 4 | 0 | 0, HEAP32[((HEAP32[($12 + 12 | 0) >> 2] | 0) + 148 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($12 + 12 | 0) >> 2] | 0 | 0))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAPF32[($12 + 180 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[$12 >> 2]) * Math_fround(HEAPF32[$12 >> 2])) + Math_fround(HEAPF32[($12 + 180 | 0) >> 2])); + } + HEAP32[($12 + 16 | 0) >> 2] = (HEAP32[($12 + 16 | 0) >> 2] | 0) + 1 | 0; + continue label$30; + }; + } + } + $570 = Math_fround(HEAPF32[($12 + 180 | 0) >> 2]); + __stack_pointer = $12 + 224 | 0; + return Math_fround($570); + } + + function btSequentialImpulseConstraintSolver__solveGroupCacheFriendlySplitImpulseIterations_28btCollisionObject___2c_20int_2c_20btPersistentManifold___2c_20int_2c_20btTypedConstraint___2c_20int_2c_20btContactSolverInfo_20const__2c_20btIDebugDraw__29($0, $1, $2, $3, $4, $5, $6, $7, $8) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + $8 = $8 | 0; + var $11 = 0, $12 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $11 = __stack_pointer - 64 | 0; + __stack_pointer = $11; + HEAP32[($11 + 60 | 0) >> 2] = $0; + HEAP32[($11 + 56 | 0) >> 2] = $1; + HEAP32[($11 + 52 | 0) >> 2] = $2; + HEAP32[($11 + 48 | 0) >> 2] = $3; + HEAP32[($11 + 44 | 0) >> 2] = $4; + HEAP32[($11 + 40 | 0) >> 2] = $5; + HEAP32[($11 + 36 | 0) >> 2] = $6; + HEAP32[($11 + 32 | 0) >> 2] = $7; + HEAP32[($11 + 28 | 0) >> 2] = $8; + $12 = HEAP32[($11 + 60 | 0) >> 2] | 0; + label$1 : { + if (!(HEAP32[((HEAP32[($11 + 32 | 0) >> 2] | 0) + 52 | 0) >> 2] | 0)) { + break label$1 + } + HEAP32[($11 + 24 | 0) >> 2] = 0; + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($11 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[((HEAP32[($11 + 32 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAPF32[($11 + 20 | 0) >> 2] = Math_fround(0 | 0); + (wasm2js_i32$0 = $11, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___size_28_29_20const($12 + 24 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($11 + 12 | 0) >> 2] = 0; + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($11 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($11 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + (wasm2js_i32$0 = $11, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___operator_5b_5d_28int_29($12 + 24 | 0 | 0, HEAP32[(btAlignedObjectArray_int___operator_5b_5d_28int_29($12 + 104 | 0 | 0, HEAP32[($11 + 12 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $11, wasm2js_f32$0 = Math_fround(btSequentialImpulseConstraintSolver__resolveSplitPenetrationImpulse_28btSolverBody__2c_20btSolverBody__2c_20btSolverConstraint_20const__29($12 | 0, btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($12 + 4 | 0 | 0, HEAP32[((HEAP32[($11 + 8 | 0) >> 2] | 0) + 144 | 0) >> 2] | 0 | 0) | 0 | 0, btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($12 + 4 | 0 | 0, HEAP32[((HEAP32[($11 + 8 | 0) >> 2] | 0) + 148 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($11 + 8 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($11 + 20 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($11 + 4 | 0) >> 2]) * Math_fround(HEAPF32[($11 + 4 | 0) >> 2])) + Math_fround(HEAPF32[($11 + 20 | 0) >> 2])); + HEAP32[($11 + 12 | 0) >> 2] = (HEAP32[($11 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$5; + }; + } + label$6 : { + label$7 : { + if (Math_fround(HEAPF32[($11 + 20 | 0) >> 2]) <= Math_fround(HEAPF32[((HEAP32[($11 + 32 | 0) >> 2] | 0) + 92 | 0) >> 2]) & 1 | 0) { + break label$7 + } + if (!((HEAP32[($11 + 24 | 0) >> 2] | 0 | 0) >= ((HEAP32[((HEAP32[($11 + 32 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) - 1 | 0 | 0) & 1 | 0)) { + break label$6 + } + } + break label$2; + } + HEAP32[($11 + 24 | 0) >> 2] = (HEAP32[($11 + 24 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + } + __stack_pointer = $11 + 64 | 0; + return; + } + + function btSequentialImpulseConstraintSolver__resolveSplitPenetrationImpulse_28btSolverBody__2c_20btSolverBody__2c_20btSolverConstraint_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $12 = Math_fround(0); + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $12 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + 220 | 0) >> 2] | 0 | 0](HEAP32[($6 + 8 | 0) >> 2] | 0, HEAP32[($6 + 4 | 0) >> 2] | 0, HEAP32[$6 >> 2] | 0)); + __stack_pointer = $6 + 16 | 0; + return Math_fround($12); + } + + function btSequentialImpulseConstraintSolver__solveGroupCacheFriendlyIterations_28btCollisionObject___2c_20int_2c_20btPersistentManifold___2c_20int_2c_20btTypedConstraint___2c_20int_2c_20btContactSolverInfo_20const__2c_20btIDebugDraw__29($0, $1, $2, $3, $4, $5, $6, $7, $8) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + $8 = $8 | 0; + var $11 = 0, $12 = 0, $36 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $11 = __stack_pointer - 48 | 0; + __stack_pointer = $11; + HEAP32[($11 + 44 | 0) >> 2] = $0; + HEAP32[($11 + 40 | 0) >> 2] = $1; + HEAP32[($11 + 36 | 0) >> 2] = $2; + HEAP32[($11 + 32 | 0) >> 2] = $3; + HEAP32[($11 + 28 | 0) >> 2] = $4; + HEAP32[($11 + 24 | 0) >> 2] = $5; + HEAP32[($11 + 20 | 0) >> 2] = $6; + HEAP32[($11 + 16 | 0) >> 2] = $7; + HEAP32[($11 + 12 | 0) >> 2] = $8; + $12 = HEAP32[($11 + 44 | 0) >> 2] | 0; + CProfileSample__CProfileSample_28char_20const__29($11 + 11 | 0 | 0, 69692 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$12 >> 2] | 0) + 32 | 0) >> 2] | 0 | 0]($12, HEAP32[($11 + 40 | 0) >> 2] | 0, HEAP32[($11 + 36 | 0) >> 2] | 0, HEAP32[($11 + 32 | 0) >> 2] | 0, HEAP32[($11 + 28 | 0) >> 2] | 0, HEAP32[($11 + 24 | 0) >> 2] | 0, HEAP32[($11 + 20 | 0) >> 2] | 0, HEAP32[($11 + 16 | 0) >> 2] | 0, HEAP32[($11 + 12 | 0) >> 2] | 0); + label$1 : { + label$2 : { + if (!((HEAP32[($12 + 184 | 0) >> 2] | 0 | 0) > (HEAP32[((HEAP32[($11 + 16 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + $36 = HEAP32[($12 + 184 | 0) >> 2] | 0; + break label$1; + } + $36 = HEAP32[((HEAP32[($11 + 16 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0; + } + HEAP32[($11 + 4 | 0) >> 2] = $36; + HEAP32[$11 >> 2] = 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[$11 >> 2] | 0 | 0) < (HEAP32[($11 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + (wasm2js_i32$0 = $12, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$12 >> 2] | 0) + 40 | 0) >> 2] | 0 | 0]($12, HEAP32[$11 >> 2] | 0, HEAP32[($11 + 40 | 0) >> 2] | 0, HEAP32[($11 + 36 | 0) >> 2] | 0, HEAP32[($11 + 32 | 0) >> 2] | 0, HEAP32[($11 + 28 | 0) >> 2] | 0, HEAP32[($11 + 24 | 0) >> 2] | 0, HEAP32[($11 + 20 | 0) >> 2] | 0, HEAP32[($11 + 16 | 0) >> 2] | 0, HEAP32[($11 + 12 | 0) >> 2] | 0))), HEAPF32[(wasm2js_i32$0 + 228 | 0) >> 2] = wasm2js_f32$0; + label$5 : { + label$6 : { + if (Math_fround(HEAPF32[($12 + 228 | 0) >> 2]) <= Math_fround(HEAPF32[((HEAP32[($11 + 16 | 0) >> 2] | 0) + 92 | 0) >> 2]) & 1 | 0) { + break label$6 + } + if (!((HEAP32[$11 >> 2] | 0 | 0) >= ((HEAP32[($11 + 4 | 0) >> 2] | 0) - 1 | 0 | 0) & 1 | 0)) { + break label$5 + } + } + break label$3; + } + HEAP32[$11 >> 2] = (HEAP32[$11 >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + CProfileSample___CProfileSample_28_29($11 + 11 | 0 | 0) | 0; + __stack_pointer = $11 + 48 | 0; + return Math_fround(Math_fround(0 | 0)); + } + + function btSequentialImpulseConstraintSolver__solveGroupCacheFriendlyFinish_28btCollisionObject___2c_20int_2c_20btContactSolverInfo_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $48 = Math_fround(0), $61 = Math_fround(0), $278 = 0, $301 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 288 | 0; + __stack_pointer = $6; + HEAP32[($6 + 284 | 0) >> 2] = $0; + HEAP32[($6 + 280 | 0) >> 2] = $1; + HEAP32[($6 + 276 | 0) >> 2] = $2; + HEAP32[($6 + 272 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 284 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___size_28_29_20const($7 + 24 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 268 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[((HEAP32[($6 + 272 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0) & 4 | 0)) { + break label$1 + } + HEAP32[($6 + 260 | 0) >> 2] = 0; + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($6 + 260 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 268 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___operator_5b_5d_28int_29($7 + 24 | 0 | 0, HEAP32[($6 + 260 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 256 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($6 + 252 | 0) >> 2] = HEAP32[((HEAP32[($6 + 256 | 0) >> 2] | 0) + 132 | 0) >> 2] | 0; + label$4 : { + if ((HEAP32[($6 + 252 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$4 + } + __assert_fail(67541 | 0, 72591 | 0, 1882 | 0, 77922 | 0); + wasm2js_trap(); + } + HEAPF32[((HEAP32[($6 + 252 | 0) >> 2] | 0) + 132 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($6 + 256 | 0) >> 2] | 0) + 100 | 0) >> 2]); + $48 = Math_fround(HEAPF32[((btAlignedObjectArray_btSolverConstraint___operator_5b_5d_28int_29($7 + 64 | 0 | 0, HEAP32[((HEAP32[($6 + 256 | 0) >> 2] | 0) + 140 | 0) >> 2] | 0 | 0) | 0) + 100 | 0) >> 2]); + HEAPF32[((HEAP32[($6 + 252 | 0) >> 2] | 0) + 136 | 0) >> 2] = $48; + label$5 : { + if (!((HEAP32[((HEAP32[($6 + 272 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0) & 16 | 0)) { + break label$5 + } + $61 = Math_fround(HEAPF32[((btAlignedObjectArray_btSolverConstraint___operator_5b_5d_28int_29($7 + 64 | 0 | 0, (HEAP32[((HEAP32[($6 + 256 | 0) >> 2] | 0) + 140 | 0) >> 2] | 0) + 1 | 0 | 0) | 0) + 100 | 0) >> 2]); + HEAPF32[((HEAP32[($6 + 252 | 0) >> 2] | 0) + 140 | 0) >> 2] = $61; + } + HEAP32[($6 + 260 | 0) >> 2] = (HEAP32[($6 + 260 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___size_28_29_20const($7 + 44 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 268 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($6 + 260 | 0) >> 2] = 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($6 + 260 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 268 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btAlignedObjectArray_btSolverConstraint___operator_5b_5d_28int_29($7 + 44 | 0 | 0, HEAP32[($6 + 260 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 248 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($6 + 244 | 0) >> 2] = HEAP32[((HEAP32[($6 + 248 | 0) >> 2] | 0) + 132 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btTypedConstraint__getJointFeedback_28_29(HEAP32[($6 + 244 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 240 | 0) >> 2] = wasm2js_i32$1; + label$8 : { + if (!((HEAP32[($6 + 240 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$8 + } + operator__28btVector3_20const__2c_20float_20const__29($6 + 192 | 0 | 0, (HEAP32[($6 + 248 | 0) >> 2] | 0) + 16 | 0 | 0, (HEAP32[($6 + 248 | 0) >> 2] | 0) + 100 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($6 + 208 | 0 | 0, $6 + 192 | 0 | 0, btRigidBody__getLinearFactor_28_29_20const(btTypedConstraint__getRigidBodyA_28_29(HEAP32[($6 + 244 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29_1($6 + 224 | 0 | 0, $6 + 208 | 0 | 0, (HEAP32[($6 + 272 | 0) >> 2] | 0) + 12 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1(HEAP32[($6 + 240 | 0) >> 2] | 0 | 0, $6 + 224 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20float_20const__29($6 + 144 | 0 | 0, (HEAP32[($6 + 248 | 0) >> 2] | 0) + 48 | 0 | 0, (HEAP32[($6 + 248 | 0) >> 2] | 0) + 100 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_1($6 + 160 | 0 | 0, $6 + 144 | 0 | 0, btRigidBody__getLinearFactor_28_29_20const(btTypedConstraint__getRigidBodyB_28_29(HEAP32[($6 + 244 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29_1($6 + 176 | 0 | 0, $6 + 160 | 0 | 0, (HEAP32[($6 + 272 | 0) >> 2] | 0) + 12 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1((HEAP32[($6 + 240 | 0) >> 2] | 0) + 32 | 0 | 0, $6 + 176 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($6 + 96 | 0 | 0, HEAP32[($6 + 248 | 0) >> 2] | 0 | 0, btRigidBody__getAngularFactor_28_29_20const(btTypedConstraint__getRigidBodyA_28_29(HEAP32[($6 + 244 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($6 + 112 | 0 | 0, $6 + 96 | 0 | 0, (HEAP32[($6 + 248 | 0) >> 2] | 0) + 100 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29_1($6 + 128 | 0 | 0, $6 + 112 | 0 | 0, (HEAP32[($6 + 272 | 0) >> 2] | 0) + 12 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1((HEAP32[($6 + 240 | 0) >> 2] | 0) + 16 | 0 | 0, $6 + 128 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_1($6 + 48 | 0 | 0, (HEAP32[($6 + 248 | 0) >> 2] | 0) + 32 | 0 | 0, btRigidBody__getAngularFactor_28_29_20const(btTypedConstraint__getRigidBodyB_28_29(HEAP32[($6 + 244 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($6 + 64 | 0 | 0, $6 + 48 | 0 | 0, (HEAP32[($6 + 248 | 0) >> 2] | 0) + 100 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29_1($6 + 80 | 0 | 0, $6 + 64 | 0 | 0, (HEAP32[($6 + 272 | 0) >> 2] | 0) + 12 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1((HEAP32[($6 + 240 | 0) >> 2] | 0) + 48 | 0 | 0, $6 + 80 | 0 | 0) | 0; + } + btTypedConstraint__internalSetAppliedImpulse_28float_29(HEAP32[($6 + 244 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($6 + 248 | 0) >> 2] | 0) + 100 | 0) >> 2]))); + label$9 : { + if (!(Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[((HEAP32[($6 + 248 | 0) >> 2] | 0) + 100 | 0) >> 2])))) >= Math_fround(btTypedConstraint__getBreakingImpulseThreshold_28_29_20const(HEAP32[($6 + 244 | 0) >> 2] | 0 | 0)) & 1 | 0)) { + break label$9 + } + btTypedConstraint__setEnabled_28bool_29(HEAP32[($6 + 244 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + } + HEAP32[($6 + 260 | 0) >> 2] = (HEAP32[($6 + 260 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + HEAP32[($6 + 264 | 0) >> 2] = 0; + label$10 : { + label$11 : while (1) { + if (!((HEAP32[($6 + 264 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btSolverBody___size_28_29_20const($7 + 4 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$10 + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = HEAP32[((btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($7 + 4 | 0 | 0, HEAP32[($6 + 264 | 0) >> 2] | 0 | 0) | 0) + 240 | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_i32$1; + label$12 : { + if (!((HEAP32[($6 + 44 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$12 + } + label$13 : { + label$14 : { + if (!(HEAP32[((HEAP32[($6 + 272 | 0) >> 2] | 0) + 52 | 0) >> 2] | 0)) { + break label$14 + } + btSolverBody__writebackVelocityAndTransform_28float_2c_20float_29(btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($7 + 4 | 0 | 0, HEAP32[($6 + 264 | 0) >> 2] | 0 | 0) | 0 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($6 + 272 | 0) >> 2] | 0) + 12 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[((HEAP32[($6 + 272 | 0) >> 2] | 0) + 60 | 0) >> 2]))); + break label$13; + } + btSolverBody__writebackVelocity_28_29(btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($7 + 4 | 0 | 0, HEAP32[($6 + 264 | 0) >> 2] | 0 | 0) | 0 | 0); + } + $278 = HEAP32[((btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($7 + 4 | 0 | 0, HEAP32[($6 + 264 | 0) >> 2] | 0 | 0) | 0) + 240 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 28 | 0 | 0, (btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($7 + 4 | 0 | 0, HEAP32[($6 + 264 | 0) >> 2] | 0 | 0) | 0) + 176 | 0 | 0, (btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($7 + 4 | 0 | 0, HEAP32[($6 + 264 | 0) >> 2] | 0 | 0) | 0) + 208 | 0 | 0); + btRigidBody__setLinearVelocity_28btVector3_20const__29($278 | 0, $6 + 28 | 0 | 0); + $301 = HEAP32[((btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($7 + 4 | 0 | 0, HEAP32[($6 + 264 | 0) >> 2] | 0 | 0) | 0) + 240 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 12 | 0 | 0, (btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($7 + 4 | 0 | 0, HEAP32[($6 + 264 | 0) >> 2] | 0 | 0) | 0) + 192 | 0 | 0, (btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($7 + 4 | 0 | 0, HEAP32[($6 + 264 | 0) >> 2] | 0 | 0) | 0) + 224 | 0 | 0); + btRigidBody__setAngularVelocity_28btVector3_20const__29($301 | 0, $6 + 12 | 0 | 0); + label$15 : { + if (!(HEAP32[((HEAP32[($6 + 272 | 0) >> 2] | 0) + 52 | 0) >> 2] | 0)) { + break label$15 + } + btCollisionObject__setWorldTransform_28btTransform_20const__29(HEAP32[((btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($7 + 4 | 0 | 0, HEAP32[($6 + 264 | 0) >> 2] | 0 | 0) | 0) + 240 | 0) >> 2] | 0 | 0, btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($7 + 4 | 0 | 0, HEAP32[($6 + 264 | 0) >> 2] | 0 | 0) | 0 | 0); + } + btCollisionObject__setCompanionId_28int_29(HEAP32[((btAlignedObjectArray_btSolverBody___operator_5b_5d_28int_29($7 + 4 | 0 | 0, HEAP32[($6 + 264 | 0) >> 2] | 0 | 0) | 0) + 240 | 0) >> 2] | 0 | 0, -1 | 0); + } + HEAP32[($6 + 264 | 0) >> 2] = (HEAP32[($6 + 264 | 0) >> 2] | 0) + 1 | 0; + continue label$11; + }; + } + btAlignedObjectArray_btSolverConstraint___resizeNoInitialize_28int_29($7 + 24 | 0 | 0, 0 | 0); + btAlignedObjectArray_btSolverConstraint___resizeNoInitialize_28int_29($7 + 44 | 0 | 0, 0 | 0); + btAlignedObjectArray_btSolverConstraint___resizeNoInitialize_28int_29($7 + 64 | 0 | 0, 0 | 0); + btAlignedObjectArray_btSolverConstraint___resizeNoInitialize_28int_29($7 + 84 | 0 | 0, 0 | 0); + btAlignedObjectArray_btSolverBody___resizeNoInitialize_28int_29($7 + 4 | 0 | 0, 0 | 0); + __stack_pointer = $6 + 288 | 0; + return Math_fround(Math_fround(0 | 0)); + } + + function btTypedConstraint__setEnabled_28bool_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP8[($4 + 11 | 0) >> 0] = $1; + HEAP8[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 20 | 0) >> 0] = (HEAPU8[($4 + 11 | 0) >> 0] | 0) & 1 | 0; + return; + } + + function btSolverBody__writebackVelocityAndTransform_28float_2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + var $6 = 0, $5 = 0; + $5 = __stack_pointer - 96 | 0; + __stack_pointer = $5; + HEAP32[($5 + 92 | 0) >> 2] = $0; + HEAPF32[($5 + 88 | 0) >> 2] = $1; + HEAPF32[($5 + 84 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 92 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($6 + 240 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + btVector3__operator___28btVector3_20const__29_1($6 + 176 | 0 | 0, $6 + 64 | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($6 + 192 | 0 | 0, $6 + 80 | 0 | 0) | 0; + btTransform__btTransform_28_29($5 + 20 | 0 | 0) | 0; + label$2 : { + label$3 : { + if (Math_fround(HEAPF32[(btVector3__operator_20float__28_29($6 + 144 | 0 | 0) | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0) { + break label$3 + } + if (Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 144 | 0 | 0) | 0) + 4 | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0) { + break label$3 + } + if (Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 144 | 0 | 0) | 0) + 8 | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0) { + break label$3 + } + if (Math_fround(HEAPF32[(btVector3__operator_20float__28_29($6 + 160 | 0 | 0) | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0) { + break label$3 + } + if (Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 160 | 0 | 0) | 0) + 4 | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0) { + break label$3 + } + if (!(Math_fround(HEAPF32[((btVector3__operator_20float__28_29($6 + 160 | 0 | 0) | 0) + 8 | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + } + operator__28btVector3_20const__2c_20float_20const__29($5 + 4 | 0 | 0, $6 + 160 | 0 | 0, $5 + 84 | 0 | 0); + btTransformUtil__integrateTransform_28btTransform_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20btTransform__29($6 | 0, $6 + 144 | 0 | 0, $5 + 4 | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 88 | 0) >> 2])), $5 + 20 | 0 | 0); + btTransform__operator__28btTransform_20const__29($6 | 0, $5 + 20 | 0 | 0) | 0; + } + } + __stack_pointer = $5 + 96 | 0; + return; + } + + function btSolverBody__writebackVelocity_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 240 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + btVector3__operator___28btVector3_20const__29_1($4 + 176 | 0 | 0, $4 + 64 | 0 | 0) | 0; + btVector3__operator___28btVector3_20const__29_1($4 + 192 | 0 | 0, $4 + 80 | 0 | 0) | 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCollisionObject__setWorldTransform_28btTransform_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAP32[($5 + 304 | 0) >> 2] = (HEAP32[($5 + 304 | 0) >> 2] | 0) + 1 | 0; + btTransform__operator__28btTransform_20const__29($5 + 4 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btSolverBody___resizeNoInitialize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) > (btAlignedObjectArray_btSolverBody___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btSolverBody___reserve_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 4 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btSequentialImpulseConstraintSolver__solveGroup_28btCollisionObject___2c_20int_2c_20btPersistentManifold___2c_20int_2c_20btTypedConstraint___2c_20int_2c_20btContactSolverInfo_20const__2c_20btIDebugDraw__2c_20btDispatcher__29($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + $7 = $7 | 0; + $8 = $8 | 0; + $9 = $9 | 0; + var $12 = 0, $13 = 0; + $12 = __stack_pointer - 48 | 0; + __stack_pointer = $12; + HEAP32[($12 + 44 | 0) >> 2] = $0; + HEAP32[($12 + 40 | 0) >> 2] = $1; + HEAP32[($12 + 36 | 0) >> 2] = $2; + HEAP32[($12 + 32 | 0) >> 2] = $3; + HEAP32[($12 + 28 | 0) >> 2] = $4; + HEAP32[($12 + 24 | 0) >> 2] = $5; + HEAP32[($12 + 20 | 0) >> 2] = $6; + HEAP32[($12 + 16 | 0) >> 2] = $7; + HEAP32[($12 + 12 | 0) >> 2] = $8; + HEAP32[($12 + 8 | 0) >> 2] = $9; + $13 = HEAP32[($12 + 44 | 0) >> 2] | 0; + CProfileSample__CProfileSample_28char_20const__29($12 + 7 | 0 | 0, 71314 | 0) | 0; + Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$13 >> 2] | 0) + 44 | 0) >> 2] | 0 | 0]($13, HEAP32[($12 + 40 | 0) >> 2] | 0, HEAP32[($12 + 36 | 0) >> 2] | 0, HEAP32[($12 + 32 | 0) >> 2] | 0, HEAP32[($12 + 28 | 0) >> 2] | 0, HEAP32[($12 + 24 | 0) >> 2] | 0, HEAP32[($12 + 20 | 0) >> 2] | 0, HEAP32[($12 + 16 | 0) >> 2] | 0, HEAP32[($12 + 12 | 0) >> 2] | 0)); + Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$13 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($13, HEAP32[($12 + 40 | 0) >> 2] | 0, HEAP32[($12 + 36 | 0) >> 2] | 0, HEAP32[($12 + 32 | 0) >> 2] | 0, HEAP32[($12 + 28 | 0) >> 2] | 0, HEAP32[($12 + 24 | 0) >> 2] | 0, HEAP32[($12 + 20 | 0) >> 2] | 0, HEAP32[($12 + 16 | 0) >> 2] | 0, HEAP32[($12 + 12 | 0) >> 2] | 0)); + Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$13 >> 2] | 0) + 36 | 0) >> 2] | 0 | 0]($13, HEAP32[($12 + 40 | 0) >> 2] | 0, HEAP32[($12 + 36 | 0) >> 2] | 0, HEAP32[($12 + 16 | 0) >> 2] | 0)); + CProfileSample___CProfileSample_28_29($12 + 7 | 0 | 0) | 0; + __stack_pointer = $12 + 48 | 0; + return Math_fround(Math_fround(0 | 0)); + } + + function btSequentialImpulseConstraintSolver__reset_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 232 | 0) >> 2] = 0; + return; + } + + function btConstraintSolver__prepareSolve_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + return; + } + + function btConstraintSolver__allSolved_28btContactSolverInfo_20const__2c_20btIDebugDraw__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + return; + } + + function btSequentialImpulseConstraintSolver__getSolverType_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 1 | 0; + } + + function btConstraintSolver___btConstraintSolver_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btAlignedAllocator_btSolverBody_2c_2016u___deallocate_28btSolverBody__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btSolverConstraint___destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btSolverConstraint___deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btSolverConstraint_2c_2016u___deallocate_28btSolverConstraint__29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocator_btSolverConstraint_2c_2016u___deallocate_28btSolverConstraint__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btTypedConstraint__btConstraintInfo1_2c_2016u___deallocate_28btTypedConstraint__btConstraintInfo1__29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocator_btTypedConstraint__btConstraintInfo1_2c_2016u___deallocate_28btTypedConstraint__btConstraintInfo1__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btSolverConstraint___allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btSolverConstraint_2c_2016u___allocate_28int_2c_20btSolverConstraint_20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btSolverConstraint___copy_28int_2c_20int_2c_20btSolverConstraint__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + __memcpy(btSolverConstraint__operator_20new_28unsigned_20long_2c_20void__29(152 | 0, (HEAP32[($6 + 16 | 0) >> 2] | 0) + Math_imul(HEAP32[($6 + 12 | 0) >> 2] | 0, 152) | 0 | 0) | 0 | 0, (HEAP32[($7 + 12 | 0) >> 2] | 0) + Math_imul(HEAP32[($6 + 12 | 0) >> 2] | 0, 152) | 0 | 0, 152 | 0) | 0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $6 + 32 | 0; + return; + } + + function btAlignedAllocator_btSolverConstraint_2c_2016u___allocate_28int_2c_20btSolverConstraint_20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(Math_imul(HEAP32[($5 + 8 | 0) >> 2] | 0, 152) | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btSolverConstraint__operator_20new_28unsigned_20long_2c_20void__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return HEAP32[($4 + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedAllocator_btSolverBody_2c_2016u___allocate_28int_2c_20btSolverBody_20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(Math_imul(HEAP32[($5 + 8 | 0) >> 2] | 0, 244) | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btTypedConstraint__btConstraintInfo1_2c_2016u___allocate_28int_2c_20btTypedConstraint__btConstraintInfo1_20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btTypedConstraint__btConstraintInfo1___copy_28int_2c_20int_2c_20btTypedConstraint__btConstraintInfo1__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, $7 = 0, i64toi32_i32$1 = 0, $85 = 0; + $6 = __stack_pointer - 32 | 0; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + i64toi32_i32$2 = (HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 3 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $85 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $85; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedAllocator_btTypedConstraint__btConstraintInfo1_2c_2016u___allocate_28int_2c_20btTypedConstraint__btConstraintInfo1_20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 3 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function _GLOBAL__sub_I_btSequentialImpulseConstraintSolver_cpp() { + __cxx_global_var_init_72(); + return; + } + + function __cxx_global_var_init_73() { + btInfMaskConverter__btInfMaskConverter_28int_29(115436 | 0, 2139095040 | 0) | 0; + return; + } + + function btTypedConstraint__getFixedBody_28_29() { + var $2 = 0, $32 = 0; + $2 = __stack_pointer - 64 | 0; + __stack_pointer = $2; + label$1 : { + if (!(((HEAPU8[(0 + 116116 | 0) >> 0] | 0) & 255 | 0 | 0) == (0 & 255 | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAPF32[($2 + 44 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($2 + 40 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($2 + 36 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($2 + 48 | 0 | 0, $2 + 44 | 0 | 0, $2 + 40 | 0 | 0, $2 + 36 | 0 | 0) | 0; + $32 = 0; + btRigidBody__btRigidBody_28float_2c_20btMotionState__2c_20btCollisionShape__2c_20btVector3_20const__29(115440 | 0, Math_fround(Math_fround($32 | 0)), $32 | 0, $32 | 0, $2 + 48 | 0 | 0) | 0; + __cxa_atexit(1099 | 0, 0 | 0, 65536 | 0) | 0; + HEAP8[(0 + 116116 | 0) >> 0] = 1; + } + HEAPF32[($2 + 16 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($2 + 12 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($2 + 8 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($2 + 20 | 0 | 0, $2 + 16 | 0 | 0, $2 + 12 | 0 | 0, $2 + 8 | 0 | 0) | 0; + btRigidBody__setMassProps_28float_2c_20btVector3_20const__29(115440 | 0, Math_fround(Math_fround(0 | 0)), $2 + 20 | 0 | 0); + __stack_pointer = $2 + 64 | 0; + return 115440 | 0; + } + + function __cxx_global_array_dtor_1($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btRigidBody___btRigidBody_28_29(115440 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return; + } + + function btTypedConstraint__btTypedConstraint_28btTypedConstraintType_2c_20btRigidBody__2c_20btRigidBody__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $7 = 0, $6 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btTypedObject__btTypedObject_28int_29($7 + 4 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$7 >> 2] = 102548 + 8 | 0; + HEAP32[($7 + 8 | 0) >> 2] = -1; + HEAP32[($7 + 12 | 0) >> 2] = -1; + HEAPF32[($7 + 16 | 0) >> 2] = Math_fround(3402823466385288598117041.0e14); + HEAP8[($7 + 20 | 0) >> 0] = 1; + HEAP8[($7 + 21 | 0) >> 0] = 0; + HEAP32[($7 + 24 | 0) >> 2] = -1; + HEAP32[($7 + 28 | 0) >> 2] = HEAP32[($6 + 4 | 0) >> 2] | 0; + HEAP32[($7 + 32 | 0) >> 2] = HEAP32[$6 >> 2] | 0; + HEAPF32[($7 + 36 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($7 + 40 | 0) >> 2] = Math_fround(.05000000074505806); + HEAP32[($7 + 44 | 0) >> 2] = 0; + __stack_pointer = $6 + 16 | 0; + return $7 | 0; + } + + function btTypedConstraint__getMotorFactor_28float_2c_20float_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = Math_fround($3); + $4 = Math_fround($4); + $5 = Math_fround($5); + var $8 = 0; + $8 = __stack_pointer - 48 | 0; + HEAP32[($8 + 40 | 0) >> 2] = $0; + HEAPF32[($8 + 36 | 0) >> 2] = $1; + HEAPF32[($8 + 32 | 0) >> 2] = $2; + HEAPF32[($8 + 28 | 0) >> 2] = $3; + HEAPF32[($8 + 24 | 0) >> 2] = $4; + HEAPF32[($8 + 20 | 0) >> 2] = $5; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($8 + 32 | 0) >> 2]) > Math_fround(HEAPF32[($8 + 28 | 0) >> 2]) & 1 | 0)) { + break label$2 + } + HEAPF32[($8 + 44 | 0) >> 2] = Math_fround(1.0); + break label$1; + } + label$3 : { + if (!(Math_fround(HEAPF32[($8 + 32 | 0) >> 2]) == Math_fround(HEAPF32[($8 + 28 | 0) >> 2]) & 1 | 0)) { + break label$3 + } + HEAPF32[($8 + 44 | 0) >> 2] = Math_fround(0 | 0); + break label$1; + } + HEAPF32[($8 + 16 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($8 + 12 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($8 + 24 | 0) >> 2]) / Math_fround(HEAPF32[($8 + 20 | 0) >> 2])); + label$4 : { + label$5 : { + if (!(Math_fround(HEAPF32[($8 + 12 | 0) >> 2]) < Math_fround(0 | 0) & 1 | 0)) { + break label$5 + } + label$6 : { + label$7 : { + if (!(Math_fround(HEAPF32[($8 + 36 | 0) >> 2]) >= Math_fround(HEAPF32[($8 + 32 | 0) >> 2]) & 1 | 0)) { + break label$7 + } + if (!(Math_fround(HEAPF32[($8 + 36 | 0) >> 2]) < Math_fround(Math_fround(HEAPF32[($8 + 32 | 0) >> 2]) - Math_fround(HEAPF32[($8 + 12 | 0) >> 2])) & 1 | 0)) { + break label$7 + } + HEAPF32[($8 + 16 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($8 + 32 | 0) >> 2]) - Math_fround(HEAPF32[($8 + 36 | 0) >> 2])) / Math_fround(HEAPF32[($8 + 12 | 0) >> 2])); + break label$6; + } + label$8 : { + label$9 : { + if (!(Math_fround(HEAPF32[($8 + 36 | 0) >> 2]) < Math_fround(HEAPF32[($8 + 32 | 0) >> 2]) & 1 | 0)) { + break label$9 + } + HEAPF32[($8 + 16 | 0) >> 2] = Math_fround(0 | 0); + break label$8; + } + HEAPF32[($8 + 16 | 0) >> 2] = Math_fround(1.0); + } + } + break label$4; + } + label$10 : { + label$11 : { + if (!(Math_fround(HEAPF32[($8 + 12 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$11 + } + label$12 : { + label$13 : { + if (!(Math_fround(HEAPF32[($8 + 36 | 0) >> 2]) <= Math_fround(HEAPF32[($8 + 28 | 0) >> 2]) & 1 | 0)) { + break label$13 + } + if (!(Math_fround(HEAPF32[($8 + 36 | 0) >> 2]) > Math_fround(Math_fround(HEAPF32[($8 + 28 | 0) >> 2]) - Math_fround(HEAPF32[($8 + 12 | 0) >> 2])) & 1 | 0)) { + break label$13 + } + HEAPF32[($8 + 16 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($8 + 28 | 0) >> 2]) - Math_fround(HEAPF32[($8 + 36 | 0) >> 2])) / Math_fround(HEAPF32[($8 + 12 | 0) >> 2])); + break label$12; + } + label$14 : { + label$15 : { + if (!(Math_fround(HEAPF32[($8 + 36 | 0) >> 2]) > Math_fround(HEAPF32[($8 + 28 | 0) >> 2]) & 1 | 0)) { + break label$15 + } + HEAPF32[($8 + 16 | 0) >> 2] = Math_fround(0 | 0); + break label$14; + } + HEAPF32[($8 + 16 | 0) >> 2] = Math_fround(1.0); + } + } + break label$10; + } + HEAPF32[($8 + 16 | 0) >> 2] = Math_fround(0 | 0); + } + } + HEAPF32[($8 + 44 | 0) >> 2] = Math_fround(HEAPF32[($8 + 16 | 0) >> 2]); + } + return Math_fround(Math_fround(HEAPF32[($8 + 44 | 0) >> 2])); + } + + function btTypedConstraint__serialize_28void__2c_20btSerializer__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $8 = 0, $14 = 0, $20 = 0, $24 = 0, $38 = 0, $12 = 0, $18 = 0, $28 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + HEAP32[($5 + 16 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + $8 = HEAP32[($5 + 20 | 0) >> 2] | 0; + $12 = FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($8, HEAP32[($6 + 28 | 0) >> 2] | 0) | 0; + HEAP32[(HEAP32[($5 + 16 | 0) >> 2] | 0) >> 2] = $12; + $14 = HEAP32[($5 + 20 | 0) >> 2] | 0; + $18 = FUNCTION_TABLE[HEAP32[((HEAP32[$14 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($14, HEAP32[($6 + 32 | 0) >> 2] | 0) | 0; + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] = $18; + $20 = HEAP32[($5 + 20 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$20 >> 2] | 0) + 40 | 0) >> 2] | 0 | 0]($20, $6) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $24 = HEAP32[($5 + 20 | 0) >> 2] | 0; + $28 = FUNCTION_TABLE[HEAP32[((HEAP32[$24 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($24, HEAP32[($5 + 12 | 0) >> 2] | 0) | 0; + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] = $28; + label$1 : { + if (!((HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + $38 = HEAP32[($5 + 20 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$38 >> 2] | 0) + 48 | 0) >> 2] | 0 | 0]($38, HEAP32[($5 + 12 | 0) >> 2] | 0); + } + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($6 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 24 | 0) >> 2] = (HEAPU8[($6 + 21 | 0) >> 0] | 0) & 1 | 0; + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 40 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + HEAPF32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 44 | 0) >> 2] = Math_fround(HEAPF32[($6 + 16 | 0) >> 2]); + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 48 | 0) >> 2] = (HEAPU8[($6 + 20 | 0) >> 0] | 0) & 1 | 0 ? 1 : 0; + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[($6 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[($6 + 8 | 0) >> 2] | 0; + HEAPF32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 28 | 0) >> 2] = Math_fround(HEAPF32[($6 + 36 | 0) >> 2]); + HEAPF32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 32 | 0) >> 2] = Math_fround(HEAPF32[($6 + 40 | 0) >> 2]); + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 36 | 0) >> 2] = 0; + HEAP32[($5 + 8 | 0) >> 2] = 0; + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (btRigidBody__getNumConstraintRefs_28_29_20const(HEAP32[($6 + 28 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$2 + } + label$4 : { + if (!((btRigidBody__getConstraintRef_28int_29(HEAP32[($6 + 28 | 0) >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) == ($6 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 36 | 0) >> 2] = 1; + } + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + HEAP32[($5 + 8 | 0) >> 2] = 0; + label$5 : { + label$6 : while (1) { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (btRigidBody__getNumConstraintRefs_28_29_20const(HEAP32[($6 + 32 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$5 + } + label$7 : { + if (!((btRigidBody__getConstraintRef_28int_29(HEAP32[($6 + 32 | 0) >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) == ($6 | 0) & 1 | 0)) { + break label$7 + } + HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 36 | 0) >> 2] = 1; + } + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$6; + }; + } + __stack_pointer = $5 + 32 | 0; + return 83291 | 0; + } + + function btRigidBody__getNumConstraintRefs_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $7 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $7 = btAlignedObjectArray_btTypedConstraint____size_28_29_20const((HEAP32[($3 + 12 | 0) >> 2] | 0) + 544 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $7 | 0; + } + + function btRigidBody__getConstraintRef_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $10 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $10 = HEAP32[(btAlignedObjectArray_btTypedConstraint____operator_5b_5d_28int_29((HEAP32[($4 + 12 | 0) >> 2] | 0) + 544 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $10 | 0; + } + + function btAlignedObjectArray_btTypedConstraint____size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btTypedConstraint____operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btTypedConstraint____size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 2 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btRigidBody___btRigidBody_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $17 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $4; + HEAP32[$4 >> 2] = 102668 + 8 | 0; + label$1 : { + if (!(btAlignedObjectArray_btTypedConstraint____size_28_29_20const($4 + 544 | 0 | 0) | 0)) { + break label$1 + } + __assert_fail(86019 | 0, 78085 | 0, 189 | 0, 66084 | 0); + wasm2js_trap(); + } + btAlignedObjectArray_btTypedConstraint_____btAlignedObjectArray_28_29($4 + 544 | 0 | 0) | 0; + btCollisionObject___btCollisionObject_28_29($4 | 0) | 0; + $17 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $17 | 0; + } + + function btAlignedObjectArray_btTypedConstraint_____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btTypedConstraint____clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAngularLimit__set_28float_2c_20float_2c_20float_2c_20float_2c_20float_29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + $3 = Math_fround($3); + $4 = Math_fround($4); + $5 = Math_fround($5); + var $8 = 0, $9 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $8 = __stack_pointer - 32 | 0; + __stack_pointer = $8; + HEAP32[($8 + 28 | 0) >> 2] = $0; + HEAPF32[($8 + 24 | 0) >> 2] = $1; + HEAPF32[($8 + 20 | 0) >> 2] = $2; + HEAPF32[($8 + 16 | 0) >> 2] = $3; + HEAPF32[($8 + 12 | 0) >> 2] = $4; + HEAPF32[($8 + 8 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 28 | 0) >> 2] | 0; + HEAPF32[($9 + 4 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($8 + 20 | 0) >> 2]) - Math_fround(HEAPF32[($8 + 24 | 0) >> 2])) / Math_fround(2.0)); + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(btNormalizeAngle_28float_29(Math_fround(Math_fround(Math_fround(HEAPF32[($8 + 24 | 0) >> 2]) + Math_fround(HEAPF32[($9 + 4 | 0) >> 2])))))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + HEAPF32[($9 + 8 | 0) >> 2] = Math_fround(HEAPF32[($8 + 16 | 0) >> 2]); + HEAPF32[($9 + 12 | 0) >> 2] = Math_fround(HEAPF32[($8 + 12 | 0) >> 2]); + HEAPF32[($9 + 16 | 0) >> 2] = Math_fround(HEAPF32[($8 + 8 | 0) >> 2]); + __stack_pointer = $8 + 32 | 0; + return; + } + + function btAngularLimit__test_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $5 = 0, $4 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAPF32[($5 + 20 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 24 | 0) >> 2] = Math_fround(0 | 0); + HEAP8[($5 + 28 | 0) >> 0] = 0; + label$1 : { + if (!(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]) >= Math_fround(0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btNormalizeAngle_28float_29(Math_fround(Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]) - Math_fround(HEAPF32[$5 >> 2])))))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + label$2 : { + label$3 : { + if (!(Math_fround(HEAPF32[($4 + 4 | 0) >> 2]) < Math_fround(-Math_fround(HEAPF32[($5 + 4 | 0) >> 2])) & 1 | 0)) { + break label$3 + } + HEAP8[($5 + 28 | 0) >> 0] = 1; + HEAPF32[($5 + 20 | 0) >> 2] = Math_fround(-Math_fround(Math_fround(HEAPF32[($4 + 4 | 0) >> 2]) + Math_fround(HEAPF32[($5 + 4 | 0) >> 2]))); + HEAPF32[($5 + 24 | 0) >> 2] = Math_fround(1.0); + break label$2; + } + label$4 : { + if (!(Math_fround(HEAPF32[($4 + 4 | 0) >> 2]) > Math_fround(HEAPF32[($5 + 4 | 0) >> 2]) & 1 | 0)) { + break label$4 + } + HEAP8[($5 + 28 | 0) >> 0] = 1; + HEAPF32[($5 + 20 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]) - Math_fround(HEAPF32[($4 + 4 | 0) >> 2])); + HEAPF32[($5 + 24 | 0) >> 2] = Math_fround(-1.0); + } + } + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAngularLimit__fit_28float__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $28 = Math_fround(0), $30 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btNormalizeAngle_28float_29(Math_fround(Math_fround(Math_fround(HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2]) - Math_fround(HEAPF32[$5 >> 2])))))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + label$2 : { + if ((btEqual_28float_2c_20float_29(Math_fround(Math_fround(HEAPF32[($4 + 4 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]))) | 0) & 1 | 0) { + break label$2 + } + label$3 : { + label$4 : { + if (!(Math_fround(HEAPF32[($4 + 4 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$4 + } + $28 = Math_fround(btAngularLimit__getHigh_28_29_20const($5 | 0)); + HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] = $28; + break label$3; + } + $30 = Math_fround(btAngularLimit__getLow_28_29_20const($5 | 0)); + HEAPF32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] = $30; + } + } + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btEqual_28float_2c_20float_29($0, $1) { + $0 = Math_fround($0); + $1 = Math_fround($1); + var $4 = 0, $11 = 0; + $4 = __stack_pointer - 16 | 0; + HEAPF32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + $11 = 0; + label$1 : { + if (!(Math_fround(HEAPF32[($4 + 12 | 0) >> 2]) <= Math_fround(HEAPF32[($4 + 8 | 0) >> 2]) & 1 | 0)) { + break label$1 + } + $11 = Math_fround(HEAPF32[($4 + 12 | 0) >> 2]) < Math_fround(-Math_fround(HEAPF32[($4 + 8 | 0) >> 2])) ^ -1 | 0; + } + return $11 & 1 | 0 | 0; + } + + function btAngularLimit__getHigh_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $8 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + $8 = Math_fround(btNormalizeAngle_28float_29(Math_fround(Math_fround(Math_fround(HEAPF32[$4 >> 2]) + Math_fround(HEAPF32[($4 + 4 | 0) >> 2]))))); + __stack_pointer = $3 + 16 | 0; + return Math_fround($8); + } + + function btAngularLimit__getLow_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $8 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + $8 = Math_fround(btNormalizeAngle_28float_29(Math_fround(Math_fround(Math_fround(HEAPF32[$4 >> 2]) - Math_fround(HEAPF32[($4 + 4 | 0) >> 2]))))); + __stack_pointer = $3 + 16 | 0; + return Math_fround($8); + } + + function btTypedConstraint___btTypedConstraint_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btTypedConstraint__buildJacobian_28_29($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return; + } + + function btTypedConstraint__calculateSerializeBufferSize_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 52 | 0; + } + + function btAlignedObjectArray_btTypedConstraint____clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btTypedConstraint____destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btTypedConstraint____size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btTypedConstraint____deallocate_28_29($4 | 0); + btAlignedObjectArray_btTypedConstraint____init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btTypedConstraint____destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btTypedConstraint____deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btTypedConstraint__2c_2016u___deallocate_28btTypedConstraint___29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btTypedConstraint____init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btAlignedAllocator_btTypedConstraint__2c_2016u___deallocate_28btTypedConstraint___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function _GLOBAL__sub_I_btTypedConstraint_cpp() { + __cxx_global_var_init_73(); + return; + } + + function __cxx_global_var_init_74() { + btInfMaskConverter__btInfMaskConverter_28int_29(116120 | 0, 2139095040 | 0) | 0; + return; + } + + function btRigidBody__btRigidBody_28btRigidBody__btRigidBodyConstructionInfo_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btCollisionObject__btCollisionObject_28_29($5 | 0) | 0; + HEAP32[$5 >> 2] = 102668 + 8 | 0; + btMatrix3x3__btMatrix3x3_28_29($5 + 324 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 372 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 388 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 408 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 424 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 440 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 456 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 472 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 488 | 0 | 0) | 0; + btAlignedObjectArray_btTypedConstraint____btAlignedObjectArray_28_29($5 + 544 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 572 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 588 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 604 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 620 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 636 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 652 | 0 | 0) | 0; + btRigidBody__setupRigidBody_28btRigidBody__btRigidBodyConstructionInfo_20const__29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return $5 | 0; + } + + function btAlignedObjectArray_btTypedConstraint____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btTypedConstraint__2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btTypedConstraint____init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btRigidBody__setupRigidBody_28btRigidBody__btRigidBodyConstructionInfo_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $168 = 0, $229 = 0, $249 = 0, $251 = 0, $765 = 0, $775 = 0; + $4 = __stack_pointer - 144 | 0; + __stack_pointer = $4; + HEAP32[($4 + 140 | 0) >> 2] = $0; + HEAP32[($4 + 136 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 140 | 0) >> 2] | 0; + HEAP32[($5 + 252 | 0) >> 2] = 2; + HEAPF32[($4 + 132 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 128 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 124 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 372 | 0 | 0, $4 + 132 | 0 | 0, $4 + 128 | 0 | 0, $4 + 124 | 0 | 0); + HEAPF32[($4 + 120 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 116 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 112 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 388 | 0 | 0, $4 + 120 | 0 | 0, $4 + 116 | 0 | 0, $4 + 112 | 0 | 0); + HEAPF32[($4 + 108 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($4 + 104 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($4 + 100 | 0) >> 2] = Math_fround(1.0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 604 | 0 | 0, $4 + 108 | 0 | 0, $4 + 104 | 0 | 0, $4 + 100 | 0 | 0); + HEAPF32[($4 + 96 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($4 + 92 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($4 + 88 | 0) >> 2] = Math_fround(1.0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 408 | 0 | 0, $4 + 96 | 0 | 0, $4 + 92 | 0 | 0, $4 + 88 | 0 | 0); + HEAPF32[($4 + 84 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 80 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 76 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 424 | 0 | 0, $4 + 84 | 0 | 0, $4 + 80 | 0 | 0, $4 + 76 | 0 | 0); + HEAPF32[($4 + 72 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 68 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 64 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 440 | 0 | 0, $4 + 72 | 0 | 0, $4 + 68 | 0 | 0, $4 + 64 | 0 | 0); + HEAPF32[($4 + 60 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 56 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 52 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 472 | 0 | 0, $4 + 60 | 0 | 0, $4 + 56 | 0 | 0, $4 + 52 | 0 | 0); + HEAPF32[($4 + 48 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 44 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 40 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 488 | 0 | 0, $4 + 48 | 0 | 0, $4 + 44 | 0 | 0, $4 + 40 | 0 | 0); + btRigidBody__setDamping_28float_2c_20float_29($5 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($4 + 136 | 0) >> 2] | 0) + 92 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[((HEAP32[($4 + 136 | 0) >> 2] | 0) + 96 | 0) >> 2]))); + HEAPF32[($5 + 532 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($4 + 136 | 0) >> 2] | 0) + 116 | 0) >> 2]); + HEAPF32[($5 + 536 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($4 + 136 | 0) >> 2] | 0) + 120 | 0) >> 2]); + HEAP32[($5 + 540 | 0) >> 2] = HEAP32[((HEAP32[($4 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($5 + 668 | 0) >> 2] = 0; + HEAP32[($5 + 672 | 0) >> 2] = 0; + HEAP8[($5 + 512 | 0) >> 0] = (HEAPU8[((HEAP32[($4 + 136 | 0) >> 2] | 0) + 124 | 0) >> 0] | 0) & 1 | 0; + HEAPF32[($5 + 516 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($4 + 136 | 0) >> 2] | 0) + 128 | 0) >> 2]); + HEAPF32[($5 + 520 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($4 + 136 | 0) >> 2] | 0) + 132 | 0) >> 2]); + HEAPF32[($5 + 524 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($4 + 136 | 0) >> 2] | 0) + 136 | 0) >> 2]); + HEAPF32[($5 + 528 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($4 + 136 | 0) >> 2] | 0) + 140 | 0) >> 2]); + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 540 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + $168 = HEAP32[($5 + 540 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$168 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($168, $5 + 4 | 0); + break label$1; + } + btTransform__operator__28btTransform_20const__29($5 + 4 | 0 | 0, (HEAP32[($4 + 136 | 0) >> 2] | 0) + 8 | 0 | 0) | 0; + } + btTransform__operator__28btTransform_20const__29($5 + 68 | 0 | 0, $5 + 4 | 0 | 0) | 0; + HEAPF32[($4 + 36 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 32 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 28 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 132 | 0 | 0, $4 + 36 | 0 | 0, $4 + 32 | 0 | 0, $4 + 28 | 0 | 0); + HEAPF32[($4 + 24 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 20 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 16 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 148 | 0 | 0, $4 + 24 | 0 | 0, $4 + 20 | 0 | 0, $4 + 16 | 0 | 0); + HEAPF32[($5 + 228 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($4 + 136 | 0) >> 2] | 0) + 100 | 0) >> 2]); + HEAPF32[($5 + 236 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($4 + 136 | 0) >> 2] | 0) + 104 | 0) >> 2]); + HEAPF32[($5 + 240 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($4 + 136 | 0) >> 2] | 0) + 108 | 0) >> 2]); + HEAPF32[($5 + 232 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($4 + 136 | 0) >> 2] | 0) + 112 | 0) >> 2]); + FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($5, HEAP32[((HEAP32[($4 + 136 | 0) >> 2] | 0) + 72 | 0) >> 2] | 0); + $229 = HEAP32[(0 + 116128 | 0) >> 2] | 0; + HEAP32[(0 + 116128 | 0) >> 2] = $229 + 1 | 0; + HEAP32[($5 + 568 | 0) >> 2] = $229; + btRigidBody__setMassProps_28float_2c_20btVector3_20const__29($5 | 0, Math_fround(Math_fround(HEAPF32[(HEAP32[($4 + 136 | 0) >> 2] | 0) >> 2])), (HEAP32[($4 + 136 | 0) >> 2] | 0) + 76 | 0 | 0); + btRigidBody__updateInertiaTensor_28_29($5 | 0); + HEAP32[($5 + 564 | 0) >> 2] = 8; + btVector3__setZero_28_29($5 + 572 | 0 | 0); + btVector3__setZero_28_29($5 + 588 | 0 | 0); + operator__28float_20const__2c_20btVector3_20const__29($4 | 0, $5 + 404 | 0 | 0, $5 + 408 | 0 | 0); + $249 = $5 + 620 | 0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[$4 >> 2] | 0; + i64toi32_i32$1 = HEAP32[($4 + 4 | 0) >> 2] | 0; + $765 = i64toi32_i32$0; + i64toi32_i32$0 = $249; + HEAP32[i64toi32_i32$0 >> 2] = $765; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $251 = 8; + i64toi32_i32$2 = $4 + $251 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $775 = i64toi32_i32$1; + i64toi32_i32$1 = $249 + $251 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $775; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__setZero_28_29($5 + 636 | 0 | 0); + btVector3__setZero_28_29($5 + 652 | 0 | 0); + __stack_pointer = $4 + 144 | 0; + return; + } + + function btAlignedAllocator_btTypedConstraint__2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btRigidBody__setDamping_28float_2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = Math_fround($2); + var $5 = 0, $6 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAPF32[($5 + 24 | 0) >> 2] = $1; + HEAPF32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 12 | 0) >> 2] = Math_fround(1.0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(HEAPF32[(float_20const__20btClamped_float__28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 24 | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 504 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($5 + 8 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 4 | 0) >> 2] = Math_fround(1.0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(HEAPF32[(float_20const__20btClamped_float__28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 20 | 0 | 0, $5 + 8 | 0 | 0, $5 + 4 | 0 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 508 | 0) >> 2] = wasm2js_f32$0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btRigidBody__setMassProps_28float_2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6 = 0, i64toi32_i32$2 = 0, $33 = 0, $35 = 0, $56 = Math_fround(0), $73 = Math_fround(0), $90 = Math_fround(0), $111 = 0, $113 = 0, $191 = 0, $204 = 0, $42 = 0, $339 = 0, $352 = 0; + $5 = __stack_pointer - 64 | 0; + __stack_pointer = $5; + HEAP32[($5 + 60 | 0) >> 2] = $0; + HEAPF32[($5 + 56 | 0) >> 2] = $1; + HEAP32[($5 + 52 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 60 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($5 + 56 | 0) >> 2]) == Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($6 + 204 | 0) >> 2] = HEAP32[($6 + 204 | 0) >> 2] | 0 | 1 | 0; + HEAPF32[($6 + 404 | 0) >> 2] = Math_fround(0 | 0); + break label$1; + } + HEAP32[($6 + 204 | 0) >> 2] = (HEAP32[($6 + 204 | 0) >> 2] | 0) & -2 | 0; + HEAPF32[($6 + 404 | 0) >> 2] = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[($5 + 56 | 0) >> 2])); + } + operator__28float_20const__2c_20btVector3_20const__29($5 + 36 | 0 | 0, $5 + 56 | 0 | 0, $6 + 440 | 0 | 0); + $33 = $6 + 424 | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 36 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 40 | 0) >> 2] | 0; + $191 = i64toi32_i32$0; + i64toi32_i32$0 = $33; + HEAP32[i64toi32_i32$0 >> 2] = $191; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $35 = 8; + i64toi32_i32$2 = ($5 + 36 | 0) + $35 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $204 = i64toi32_i32$1; + i64toi32_i32$1 = $33 + $35 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $204; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $42 = $6 + 456 | 0; + label$3 : { + label$4 : { + if (!(Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 52 | 0) >> 2] | 0 | 0) | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0)) { + break label$4 + } + $56 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 52 | 0) >> 2] | 0 | 0) | 0) >> 2])); + break label$3; + } + $56 = Math_fround(0 | 0); + } + HEAPF32[($5 + 32 | 0) >> 2] = $56; + label$5 : { + label$6 : { + if (!(Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 52 | 0) >> 2] | 0 | 0) | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0)) { + break label$6 + } + $73 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 52 | 0) >> 2] | 0 | 0) | 0) >> 2])); + break label$5; + } + $73 = Math_fround(0 | 0); + } + HEAPF32[($5 + 28 | 0) >> 2] = $73; + label$7 : { + label$8 : { + if (!(Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 52 | 0) >> 2] | 0 | 0) | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0)) { + break label$8 + } + $90 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 52 | 0) >> 2] | 0 | 0) | 0) >> 2])); + break label$7; + } + $90 = Math_fround(0 | 0); + } + HEAPF32[($5 + 24 | 0) >> 2] = $90; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($42 | 0, $5 + 32 | 0 | 0, $5 + 28 | 0 | 0, $5 + 24 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($5 + 8 | 0 | 0, $6 + 408 | 0 | 0, $6 + 404 | 0 | 0); + $111 = $6 + 620 | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 12 | 0) >> 2] | 0; + $339 = i64toi32_i32$0; + i64toi32_i32$0 = $111; + HEAP32[i64toi32_i32$0 >> 2] = $339; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $113 = 8; + i64toi32_i32$2 = ($5 + 8 | 0) + $113 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $352 = i64toi32_i32$1; + i64toi32_i32$1 = $111 + $113 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $352; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $5 + 64 | 0; + return; + } + + function btRigidBody__updateInertiaTensor_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 160 | 0; + __stack_pointer = $3; + HEAP32[($3 + 156 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 156 | 0) >> 2] | 0; + btMatrix3x3__scaled_28btVector3_20const__29_20const($3 + 60 | 0 | 0, btTransform__getBasis_28_29($4 + 4 | 0 | 0) | 0 | 0, $4 + 456 | 0 | 0); + btMatrix3x3__transpose_28_29_20const($3 + 12 | 0 | 0, btTransform__getBasis_28_29($4 + 4 | 0 | 0) | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btMatrix3x3_20const__29($3 + 108 | 0 | 0, $3 + 60 | 0 | 0, $3 + 12 | 0 | 0); + btMatrix3x3__operator__28btMatrix3x3_20const__29($4 + 324 | 0 | 0, $3 + 108 | 0 | 0) | 0; + __stack_pointer = $3 + 160 | 0; + return; + } + + function btRigidBody__btRigidBody_28float_2c_20btMotionState__2c_20btCollisionShape__2c_20btVector3_20const__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $8 = 0, $7 = 0; + $7 = __stack_pointer - 176 | 0; + __stack_pointer = $7; + HEAP32[($7 + 172 | 0) >> 2] = $0; + HEAPF32[($7 + 168 | 0) >> 2] = $1; + HEAP32[($7 + 164 | 0) >> 2] = $2; + HEAP32[($7 + 160 | 0) >> 2] = $3; + HEAP32[($7 + 156 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 172 | 0) >> 2] | 0; + btCollisionObject__btCollisionObject_28_29($8 | 0) | 0; + HEAP32[$8 >> 2] = 102668 + 8 | 0; + btMatrix3x3__btMatrix3x3_28_29($8 + 324 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 372 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 388 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 408 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 424 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 440 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 456 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 472 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 488 | 0 | 0) | 0; + btAlignedObjectArray_btTypedConstraint____btAlignedObjectArray_28_29($8 + 544 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 572 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 588 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 604 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 620 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 636 | 0 | 0) | 0; + btVector3__btVector3_28_29($8 + 652 | 0 | 0) | 0; + btRigidBody__btRigidBodyConstructionInfo__btRigidBodyConstructionInfo_28float_2c_20btMotionState__2c_20btCollisionShape__2c_20btVector3_20const__29($7 + 12 | 0 | 0, Math_fround(Math_fround(HEAPF32[($7 + 168 | 0) >> 2])), HEAP32[($7 + 164 | 0) >> 2] | 0 | 0, HEAP32[($7 + 160 | 0) >> 2] | 0 | 0, HEAP32[($7 + 156 | 0) >> 2] | 0 | 0) | 0; + btRigidBody__setupRigidBody_28btRigidBody__btRigidBodyConstructionInfo_20const__29($8 | 0, $7 + 12 | 0 | 0); + __stack_pointer = $7 + 176 | 0; + return $8 | 0; + } + + function float_20const__20btClamped_float__28float_20const__2c_20float_20const__2c_20float_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $14 = 0, $23 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[(HEAP32[($5 + 12 | 0) >> 2] | 0) >> 2]) < Math_fround(HEAPF32[(HEAP32[($5 + 8 | 0) >> 2] | 0) >> 2]) & 1 | 0)) { + break label$2 + } + $14 = HEAP32[($5 + 8 | 0) >> 2] | 0; + break label$1; + } + label$3 : { + label$4 : { + if (!(Math_fround(HEAPF32[(HEAP32[($5 + 4 | 0) >> 2] | 0) >> 2]) < Math_fround(HEAPF32[(HEAP32[($5 + 12 | 0) >> 2] | 0) >> 2]) & 1 | 0)) { + break label$4 + } + $23 = HEAP32[($5 + 4 | 0) >> 2] | 0; + break label$3; + } + $23 = HEAP32[($5 + 12 | 0) >> 2] | 0; + } + $14 = $23; + } + return $14 | 0; + } + + function btMatrix3x3__scaled_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 44 | 0) >> 2] = $0; + HEAP32[($5 + 40 | 0) >> 2] = $1; + HEAP32[($5 + 36 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 40 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($6 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($6 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($6 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($6 + 16 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($6 + 16 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($6 + 16 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const($6 + 32 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__x_28_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const($6 + 32 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__y_28_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const($6 + 32 | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(btVector3__z_28_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0) | 0) >> 2]))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + btMatrix3x3__btMatrix3x3_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $5 + 32 | 0 | 0, $5 + 28 | 0 | 0, $5 + 24 | 0 | 0, $5 + 20 | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0, $5 + 8 | 0 | 0, $5 + 4 | 0 | 0, $5 | 0) | 0; + __stack_pointer = $5 + 48 | 0; + return; + } + + function btRigidBody__predictIntegratedTransform_28float_2c_20btTransform__29($0, $1, $2) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAPF32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + btTransformUtil__integrateTransform_28btTransform_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20btTransform__29($6 + 4 | 0 | 0, $6 + 372 | 0 | 0, $6 + 388 | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 8 | 0) >> 2])), HEAP32[($5 + 4 | 0) >> 2] | 0 | 0); + __stack_pointer = $5 + 16 | 0; + return; + } + + function btRigidBody__saveKinematicState_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, $19 = 0, $42 = 0, $44 = 0, $51 = 0, $53 = 0, $150 = 0, $160 = 0, $170 = 0, $180 = 0; + $4 = __stack_pointer - 48 | 0; + __stack_pointer = $4; + HEAP32[($4 + 44 | 0) >> 2] = $0; + HEAPF32[($4 + 40 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 44 | 0) >> 2] | 0; + label$1 : { + if (!(Math_fround(HEAPF32[($4 + 40 | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((btRigidBody__getMotionState_28_29($5 | 0) | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + $19 = btRigidBody__getMotionState_28_29($5 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$19 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($19, $5 + 4 | 0); + } + btVector3__btVector3_28_29($4 + 24 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 8 | 0 | 0) | 0; + btTransformUtil__calculateVelocity_28btTransform_20const__2c_20btTransform_20const__2c_20float_2c_20btVector3__2c_20btVector3__29($5 + 68 | 0 | 0, $5 + 4 | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 40 | 0) >> 2])), $5 + 372 | 0 | 0, $5 + 388 | 0 | 0); + $42 = $5 + 132 | 0; + i64toi32_i32$2 = $5 + 372 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $150 = i64toi32_i32$0; + i64toi32_i32$0 = $42; + HEAP32[i64toi32_i32$0 >> 2] = $150; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $44 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $44 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $160 = i64toi32_i32$1; + i64toi32_i32$1 = $42 + $44 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $160; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $51 = $5 + 148 | 0; + i64toi32_i32$2 = $5 + 388 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $170 = i64toi32_i32$0; + i64toi32_i32$0 = $51; + HEAP32[i64toi32_i32$0 >> 2] = $170; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $53 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $53 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $180 = i64toi32_i32$1; + i64toi32_i32$1 = $51 + $53 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $180; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btTransform__operator__28btTransform_20const__29($5 + 68 | 0 | 0, $5 + 4 | 0 | 0) | 0; + } + __stack_pointer = $4 + 48 | 0; + return; + } + + function btRigidBody__setGravity_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $5 = 0, $23 = 0, $25 = 0, $33 = 0, $35 = 0, $12 = 0, $90 = 0, $103 = 0, $112 = 0, $122 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + label$1 : { + if (!(Math_fround(HEAPF32[($5 + 404 | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0)) { + break label$1 + } + $12 = HEAP32[($4 + 24 | 0) >> 2] | 0; + HEAPF32[($4 + 4 | 0) >> 2] = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[($5 + 404 | 0) >> 2])); + operator__28btVector3_20const__2c_20float_20const__29($4 + 8 | 0 | 0, $12 | 0, $4 + 4 | 0 | 0); + $23 = $5 + 424 | 0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($4 + 12 | 0) >> 2] | 0; + $90 = i64toi32_i32$0; + i64toi32_i32$0 = $23; + HEAP32[i64toi32_i32$0 >> 2] = $90; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $25 = 8; + i64toi32_i32$2 = ($4 + 8 | 0) + $25 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $103 = i64toi32_i32$1; + i64toi32_i32$1 = $23 + $25 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $103; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + $33 = $5 + 440 | 0; + i64toi32_i32$2 = HEAP32[($4 + 24 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $112 = i64toi32_i32$0; + i64toi32_i32$0 = $33; + HEAP32[i64toi32_i32$0 >> 2] = $112; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $35 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $35 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $122 = i64toi32_i32$1; + i64toi32_i32$1 = $33 + $35 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $122; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $4 + 32 | 0; + return; + } + + function btRigidBody__applyDamping_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 128 | 0; + __stack_pointer = $4; + HEAP32[($4 + 124 | 0) >> 2] = $0; + HEAPF32[($4 + 120 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 124 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btPow_28float_2c_20float_29(Math_fround(Math_fround(Math_fround(1.0) - Math_fround(HEAPF32[($5 + 504 | 0) >> 2]))), Math_fround(Math_fround(HEAPF32[($4 + 120 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 116 | 0) >> 2] = wasm2js_f32$0; + btVector3__operator___28float_20const__29_1($5 + 372 | 0 | 0, $4 + 116 | 0 | 0) | 0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btPow_28float_2c_20float_29(Math_fround(Math_fround(Math_fround(1.0) - Math_fround(HEAPF32[($5 + 508 | 0) >> 2]))), Math_fround(Math_fround(HEAPF32[($4 + 120 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 112 | 0) >> 2] = wasm2js_f32$0; + btVector3__operator___28float_20const__29_1($5 + 388 | 0 | 0, $4 + 112 | 0 | 0) | 0; + label$1 : { + if (!((HEAPU8[($5 + 512 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!(Math_fround(btVector3__length2_28_29_20const($5 + 388 | 0 | 0)) < Math_fround(HEAPF32[($5 + 524 | 0) >> 2]) & 1 | 0)) { + break label$2 + } + if (!(Math_fround(btVector3__length2_28_29_20const($5 + 372 | 0 | 0)) < Math_fround(HEAPF32[($5 + 520 | 0) >> 2]) & 1 | 0)) { + break label$2 + } + btVector3__operator___28float_20const__29_1($5 + 388 | 0 | 0, $5 + 516 | 0 | 0) | 0; + btVector3__operator___28float_20const__29_1($5 + 372 | 0 | 0, $5 + 516 | 0 | 0) | 0; + } + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btVector3__length_28_29_20const($5 + 372 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 108 | 0) >> 2] = wasm2js_f32$0; + label$3 : { + if (!(Math_fround(HEAPF32[($4 + 108 | 0) >> 2]) < Math_fround(HEAPF32[($5 + 504 | 0) >> 2]) & 1 | 0)) { + break label$3 + } + HEAPF32[($4 + 104 | 0) >> 2] = Math_fround(.004999999888241291); + label$4 : { + label$5 : { + if (!(Math_fround(HEAPF32[($4 + 108 | 0) >> 2]) > Math_fround(HEAPF32[($4 + 104 | 0) >> 2]) & 1 | 0)) { + break label$5 + } + btVector3__normalized_28_29_20const($4 + 88 | 0 | 0, $5 + 372 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($4 + 72 | 0 | 0, $4 + 88 | 0 | 0, $4 + 104 | 0 | 0); + btVector3__operator___28btVector3_20const__29($5 + 372 | 0 | 0, $4 + 72 | 0 | 0) | 0; + break label$4; + } + HEAPF32[($4 + 68 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 64 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 60 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 372 | 0 | 0, $4 + 68 | 0 | 0, $4 + 64 | 0 | 0, $4 + 60 | 0 | 0); + } + } + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btVector3__length_28_29_20const($5 + 388 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 56 | 0) >> 2] = wasm2js_f32$0; + label$6 : { + if (!(Math_fround(HEAPF32[($4 + 56 | 0) >> 2]) < Math_fround(HEAPF32[($5 + 508 | 0) >> 2]) & 1 | 0)) { + break label$6 + } + HEAPF32[($4 + 52 | 0) >> 2] = Math_fround(.004999999888241291); + label$7 : { + label$8 : { + if (!(Math_fround(HEAPF32[($4 + 56 | 0) >> 2]) > Math_fround(HEAPF32[($4 + 52 | 0) >> 2]) & 1 | 0)) { + break label$8 + } + btVector3__normalized_28_29_20const($4 + 36 | 0 | 0, $5 + 388 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($4 + 20 | 0 | 0, $4 + 36 | 0 | 0, $4 + 52 | 0 | 0); + btVector3__operator___28btVector3_20const__29($5 + 388 | 0 | 0, $4 + 20 | 0 | 0) | 0; + break label$7; + } + HEAPF32[($4 + 16 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 12 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 8 | 0) >> 2] = Math_fround(0 | 0); + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 388 | 0 | 0, $4 + 16 | 0 | 0, $4 + 12 | 0 | 0, $4 + 8 | 0 | 0); + } + } + } + __stack_pointer = $4 + 128 | 0; + return; + } + + function btPow_28float_2c_20float_29($0, $1) { + $0 = Math_fround($0); + $1 = Math_fround($1); + var $4 = 0, $7 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAPF32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + $7 = Math_fround(powf(Math_fround(Math_fround(HEAPF32[($4 + 12 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2])))); + __stack_pointer = $4 + 16 | 0; + return Math_fround($7); + } + + function btRigidBody__applyGravity_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((btCollisionObject__isStaticOrKinematicObject_28_29_20const($4 | 0) | 0) & 1 | 0)) { + break label$2 + } + break label$1; + } + btRigidBody__applyCentralForce_28btVector3_20const__29($4 | 0, $4 + 424 | 0 | 0); + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btRigidBody__proceedToTransform_28btTransform_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btRigidBody__setCenterOfMassTransform_28btTransform_20const__29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btRigidBody__setCenterOfMassTransform_28btTransform_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5 = 0, $4 = 0, $18 = 0, $20 = 0, $26 = 0, $28 = 0, $80 = 0, $90 = 0, $99 = 0, $109 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((btCollisionObject__isKinematicObject_28_29_20const($5 | 0) | 0) & 1 | 0)) { + break label$2 + } + btTransform__operator__28btTransform_20const__29($5 + 68 | 0 | 0, $5 + 4 | 0 | 0) | 0; + break label$1; + } + btTransform__operator__28btTransform_20const__29($5 + 68 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + } + $18 = $5 + 132 | 0; + i64toi32_i32$2 = btRigidBody__getLinearVelocity_28_29_20const($5 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $80 = i64toi32_i32$0; + i64toi32_i32$0 = $18; + HEAP32[i64toi32_i32$0 >> 2] = $80; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $20 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $20 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $90 = i64toi32_i32$1; + i64toi32_i32$1 = $18 + $20 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $90; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $26 = $5 + 148 | 0; + i64toi32_i32$2 = btRigidBody__getAngularVelocity_28_29_20const($5 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $99 = i64toi32_i32$0; + i64toi32_i32$0 = $26; + HEAP32[i64toi32_i32$0 >> 2] = $99; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $28 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $28 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $109 = i64toi32_i32$1; + i64toi32_i32$1 = $26 + $28 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $109; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btTransform__operator__28btTransform_20const__29($5 + 4 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + btRigidBody__updateInertiaTensor_28_29($5 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btRigidBody__getLocalInertia_28_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $7 = 0, $8 = 0, $32 = Math_fround(0), $53 = Math_fround(0), $74 = Math_fround(0), $5 = 0, $115 = 0, $119 = 0; + $4 = __stack_pointer - 48 | 0; + __stack_pointer = $4; + HEAP32[($4 + 44 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 44 | 0) >> 2] | 0; + btVector3__btVector3_28_29($0 | 0) | 0; + $7 = $5 + 456 | 0; + $8 = 8; + i64toi32_i32$2 = $7 + $8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $115 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 24 | 0) + $8 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $115; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $7; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $119 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 24 | 0) >> 2] = $119; + HEAP32[($4 + 28 | 0) >> 2] = i64toi32_i32$0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[(btVector3__x_28_29_20const($4 + 24 | 0 | 0) | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + $32 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[(btVector3__x_28_29_20const($4 + 24 | 0 | 0) | 0) >> 2])); + break label$1; + } + $32 = Math_fround(0 | 0); + } + HEAPF32[($4 + 20 | 0) >> 2] = $32; + label$3 : { + label$4 : { + if (!(Math_fround(HEAPF32[(btVector3__y_28_29_20const($4 + 24 | 0 | 0) | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0)) { + break label$4 + } + $53 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[(btVector3__y_28_29_20const($4 + 24 | 0 | 0) | 0) >> 2])); + break label$3; + } + $53 = Math_fround(0 | 0); + } + HEAPF32[($4 + 16 | 0) >> 2] = $53; + label$5 : { + label$6 : { + if (!(Math_fround(HEAPF32[(btVector3__z_28_29_20const($4 + 24 | 0 | 0) | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0)) { + break label$6 + } + $74 = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[(btVector3__z_28_29_20const($4 + 24 | 0 | 0) | 0) >> 2])); + break label$5; + } + $74 = Math_fround(0 | 0); + } + HEAPF32[($4 + 12 | 0) >> 2] = $74; + btVector3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $4 + 20 | 0 | 0, $4 + 16 | 0 | 0, $4 + 12 | 0 | 0); + __stack_pointer = $4 + 48 | 0; + return; + } + + function btRigidBody__computeGyroscopicForceExplicit_28float_29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0, $6 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 192 | 0; + __stack_pointer = $5; + HEAP32[($5 + 188 | 0) >> 2] = $1; + HEAPF32[($5 + 184 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 188 | 0) >> 2] | 0; + btRigidBody__getLocalInertia_28_29_20const($5 + 168 | 0 | 0, $6 | 0); + btMatrix3x3__scaled_28btVector3_20const__29_20const($5 + 72 | 0 | 0, btTransform__getBasis_28_29_20const(btCollisionObject__getWorldTransform_28_29_20const($6 | 0) | 0 | 0) | 0 | 0, $5 + 168 | 0 | 0); + btMatrix3x3__transpose_28_29_20const($5 + 24 | 0 | 0, btTransform__getBasis_28_29_20const(btCollisionObject__getWorldTransform_28_29_20const($6 | 0) | 0 | 0) | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btMatrix3x3_20const__29($5 + 120 | 0 | 0, $5 + 72 | 0 | 0, $5 + 24 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($5 + 8 | 0 | 0, $5 + 120 | 0 | 0, btRigidBody__getAngularVelocity_28_29_20const($6 | 0) | 0 | 0); + btVector3__cross_28btVector3_20const__29_20const($0 | 0, btRigidBody__getAngularVelocity_28_29_20const($6 | 0) | 0 | 0, $5 + 8 | 0 | 0); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($0 | 0))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + if (!(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]) > Math_fround(Math_fround(HEAPF32[($5 + 184 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 184 | 0) >> 2])) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(Math_fround(1.0) / Math_fround(btSqrt_28float_29(Math_fround(Math_fround(HEAPF32[($5 + 4 | 0) >> 2]))))) * Math_fround(HEAPF32[($5 + 184 | 0) >> 2]))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + btVector3__operator___28float_20const__29_1($0 | 0, $5 | 0) | 0; + } + __stack_pointer = $5 + 192 | 0; + return; + } + + function btRigidBody__computeGyroscopicImpulseImplicit_Body_28float_29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $6 = 0, $10 = 0, $11 = 0, $217 = 0, $270 = 0, $274 = 0, $43 = 0, $53 = 0, $629 = 0, $633 = 0; + $5 = __stack_pointer - 560 | 0; + __stack_pointer = $5; + HEAP32[($5 + 556 | 0) >> 2] = $1; + HEAPF32[($5 + 552 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 556 | 0) >> 2] | 0; + btRigidBody__getLocalInertia_28_29_20const($5 + 536 | 0 | 0, $6 | 0); + $10 = btRigidBody__getAngularVelocity_28_29_20const($6 | 0) | 0; + $11 = 8; + i64toi32_i32$2 = $10 + $11 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $270 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 520 | 0) + $11 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $270; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $10; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $274 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 520 | 0) >> 2] = $274; + HEAP32[($5 + 524 | 0) >> 2] = i64toi32_i32$0; + btTransform__getRotation_28_29_20const($5 + 504 | 0 | 0, btCollisionObject__getWorldTransform_28_29_20const($6 | 0) | 0 | 0); + btQuaternion__inverse_28_29_20const($5 + 472 | 0 | 0, $5 + 504 | 0 | 0); + quatRotate_28btQuaternion_20const__2c_20btVector3_20const__29($5 + 488 | 0 | 0, $5 + 472 | 0 | 0, $5 + 520 | 0 | 0); + btMatrix3x3__btMatrix3x3_28_29($5 + 424 | 0 | 0) | 0; + $43 = btVector3__x_28_29_20const($5 + 536 | 0 | 0) | 0; + HEAPF32[($5 + 420 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 416 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 412 | 0) >> 2] = Math_fround(0 | 0); + $53 = btVector3__y_28_29_20const($5 + 536 | 0 | 0) | 0; + HEAPF32[($5 + 408 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 404 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 400 | 0) >> 2] = Math_fround(0 | 0); + btMatrix3x3__setValue_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($5 + 424 | 0 | 0, $43 | 0, $5 + 420 | 0 | 0, $5 + 416 | 0 | 0, $5 + 412 | 0 | 0, $53 | 0, $5 + 408 | 0 | 0, $5 + 404 | 0 | 0, $5 + 400 | 0 | 0, btVector3__z_28_29_20const($5 + 536 | 0 | 0) | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($5 + 384 | 0 | 0, $5 + 424 | 0 | 0, $5 + 488 | 0 | 0); + btVector3__cross_28btVector3_20const__29_20const($5 + 352 | 0 | 0, $5 + 488 | 0 | 0, $5 + 384 | 0 | 0); + operator__28float_20const__2c_20btVector3_20const__29($5 + 368 | 0 | 0, $5 + 552 | 0 | 0, $5 + 352 | 0 | 0); + btMatrix3x3__btMatrix3x3_28_29($5 + 304 | 0 | 0) | 0; + btVector3__getSkewSymmetricMatrix_28btVector3__2c_20btVector3__2c_20btVector3__29_20const($5 + 488 | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($5 + 304 | 0 | 0, 0 | 0) | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($5 + 304 | 0 | 0, 1 | 0) | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($5 + 304 | 0 | 0, 2 | 0) | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($5 + 288 | 0 | 0, $5 + 424 | 0 | 0, $5 + 488 | 0 | 0); + btMatrix3x3__btMatrix3x3_28_29($5 + 240 | 0 | 0) | 0; + btVector3__getSkewSymmetricMatrix_28btVector3__2c_20btVector3__2c_20btVector3__29_20const($5 + 288 | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($5 + 240 | 0 | 0, 0 | 0) | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($5 + 240 | 0 | 0, 1 | 0) | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($5 + 240 | 0 | 0, 2 | 0) | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btMatrix3x3_20const__29($5 + 48 | 0 | 0, $5 + 304 | 0 | 0, $5 + 424 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btMatrix3x3_20const__29_1($5 + 96 | 0 | 0, $5 + 48 | 0 | 0, $5 + 240 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20float_20const__29($5 + 144 | 0 | 0, $5 + 96 | 0 | 0, $5 + 552 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btMatrix3x3_20const__29_2($5 + 192 | 0 | 0, $5 + 424 | 0 | 0, $5 + 144 | 0 | 0); + btMatrix3x3__solve33_28btVector3_20const__29_20const($5 + 32 | 0 | 0, $5 + 192 | 0 | 0, $5 + 368 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 16 | 0 | 0, $5 + 488 | 0 | 0, $5 + 32 | 0 | 0); + $217 = 8; + i64toi32_i32$2 = ($5 + 16 | 0) + $217 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $629 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 488 | 0) + $217 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $629; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $5; + i64toi32_i32$1 = HEAP32[($5 + 16 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 20 | 0) >> 2] | 0; + $633 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 488 | 0) >> 2] = $633; + HEAP32[($5 + 492 | 0) >> 2] = i64toi32_i32$0; + quatRotate_28btQuaternion_20const__2c_20btVector3_20const__29($5 | 0, $5 + 504 | 0 | 0, $5 + 488 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($0 | 0, $5 | 0, $5 + 520 | 0 | 0); + __stack_pointer = $5 + 560 | 0; + return; + } + + function operator__28btMatrix3x3_20const__2c_20btMatrix3x3_20const__29_1($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 44 | 0) >> 2] = $0; + HEAP32[($5 + 40 | 0) >> 2] = $1; + HEAP32[($5 + 36 | 0) >> 2] = $2; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0) | 0) >> 2]) - Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0) | 0) + 4 | 0) >> 2]) - Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0) | 0) + 4 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0) | 0) + 8 | 0) >> 2]) - Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0) | 0) + 8 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0) | 0) >> 2]) - Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0) | 0) + 4 | 0) >> 2]) - Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0) | 0) + 4 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0) | 0) + 8 | 0) >> 2]) - Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0) | 0) + 8 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0) | 0) >> 2]) - Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0) | 0) + 4 | 0) >> 2]) - Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0) | 0) + 4 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0) | 0) + 8 | 0) >> 2]) - Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0) | 0) + 8 | 0) >> 2]))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + btMatrix3x3__btMatrix3x3_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $5 + 32 | 0 | 0, $5 + 28 | 0 | 0, $5 + 24 | 0 | 0, $5 + 20 | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0, $5 + 8 | 0 | 0, $5 + 4 | 0 | 0, $5 | 0) | 0; + __stack_pointer = $5 + 48 | 0; + return; + } + + function operator__28btMatrix3x3_20const__2c_20float_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 44 | 0) >> 2] = $0; + HEAP32[($5 + 40 | 0) >> 2] = $1; + HEAP32[($5 + 36 | 0) >> 2] = $2; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(HEAP32[($5 + 36 | 0) >> 2] | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(HEAP32[($5 + 36 | 0) >> 2] | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(HEAP32[($5 + 36 | 0) >> 2] | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(HEAP32[($5 + 36 | 0) >> 2] | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(HEAP32[($5 + 36 | 0) >> 2] | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(HEAP32[($5 + 36 | 0) >> 2] | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__x_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(HEAP32[($5 + 36 | 0) >> 2] | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__y_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(HEAP32[($5 + 36 | 0) >> 2] | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__z_28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0) | 0) >> 2]) * Math_fround(HEAPF32[(HEAP32[($5 + 36 | 0) >> 2] | 0) >> 2]))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + btMatrix3x3__btMatrix3x3_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $5 + 32 | 0 | 0, $5 + 28 | 0 | 0, $5 + 24 | 0 | 0, $5 + 20 | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0, $5 + 8 | 0 | 0, $5 + 4 | 0 | 0, $5 | 0) | 0; + __stack_pointer = $5 + 48 | 0; + return; + } + + function operator__28btMatrix3x3_20const__2c_20btMatrix3x3_20const__29_2($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 44 | 0) >> 2] = $0; + HEAP32[($5 + 40 | 0) >> 2] = $1; + HEAP32[($5 + 36 | 0) >> 2] = $2; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0) | 0) >> 2]) + Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0) | 0) + 4 | 0) >> 2]) + Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0) | 0) + 4 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0) | 0) + 8 | 0) >> 2]) + Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 0 | 0) | 0 | 0) | 0) + 8 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0) | 0) >> 2]) + Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0) | 0) + 4 | 0) >> 2]) + Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0) | 0) + 4 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0) | 0) + 8 | 0) >> 2]) + Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0) | 0) + 8 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0) | 0) >> 2]) + Math_fround(HEAPF32[(btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0) | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0) | 0) + 4 | 0) >> 2]) + Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0) | 0) + 4 | 0) >> 2]))), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 40 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0) | 0) + 8 | 0) >> 2]) + Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const(btMatrix3x3__operator_5b_5d_28int_29_20const(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, 2 | 0) | 0 | 0) | 0) + 8 | 0) >> 2]))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + btMatrix3x3__btMatrix3x3_28float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__2c_20float_20const__29($0 | 0, $5 + 32 | 0 | 0, $5 + 28 | 0 | 0, $5 + 24 | 0 | 0, $5 + 20 | 0 | 0, $5 + 16 | 0 | 0, $5 + 12 | 0 | 0, $5 + 8 | 0 | 0, $5 + 4 | 0 | 0, $5 | 0) | 0; + __stack_pointer = $5 + 48 | 0; + return; + } + + function btMatrix3x3__solve33_28btVector3_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $44 = Math_fround(0), $45 = 0, $59 = Math_fround(0), $61 = Math_fround(0), $76 = Math_fround(0), $78 = Math_fround(0), $93 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 128 | 0; + __stack_pointer = $5; + HEAP32[($5 + 124 | 0) >> 2] = $1; + HEAP32[($5 + 120 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 124 | 0) >> 2] | 0; + btMatrix3x3__getColumn_28int_29_20const($5 + 104 | 0 | 0, $6 | 0, 0 | 0); + btMatrix3x3__getColumn_28int_29_20const($5 + 88 | 0 | 0, $6 | 0, 1 | 0); + btMatrix3x3__getColumn_28int_29_20const($5 + 72 | 0 | 0, $6 | 0, 2 | 0); + btCross_28btVector3_20const__2c_20btVector3_20const__29($5 + 52 | 0 | 0, $5 + 88 | 0 | 0, $5 + 72 | 0 | 0); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btDot_28btVector3_20const__2c_20btVector3_20const__29($5 + 104 | 0 | 0, $5 + 52 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 68 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + if (!(Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[($5 + 68 | 0) >> 2])))) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$1 + } + HEAPF32[($5 + 68 | 0) >> 2] = Math_fround(Math_fround(1.0) / Math_fround(HEAPF32[($5 + 68 | 0) >> 2])); + } + btVector3__btVector3_28_29($0 | 0) | 0; + $44 = Math_fround(HEAPF32[($5 + 68 | 0) >> 2]); + $45 = HEAP32[($5 + 120 | 0) >> 2] | 0; + btCross_28btVector3_20const__2c_20btVector3_20const__29($5 + 36 | 0 | 0, $5 + 88 | 0 | 0, $5 + 72 | 0 | 0); + $59 = Math_fround($44 * Math_fround(btDot_28btVector3_20const__2c_20btVector3_20const__29($45 | 0, $5 + 36 | 0 | 0))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($0 | 0) | 0, wasm2js_f32$0 = $59), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $61 = Math_fround(HEAPF32[($5 + 68 | 0) >> 2]); + btCross_28btVector3_20const__2c_20btVector3_20const__29($5 + 20 | 0 | 0, HEAP32[($5 + 120 | 0) >> 2] | 0 | 0, $5 + 72 | 0 | 0); + $76 = Math_fround($61 * Math_fround(btDot_28btVector3_20const__2c_20btVector3_20const__29($5 + 104 | 0 | 0, $5 + 20 | 0 | 0))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($0 | 0) | 0, wasm2js_f32$0 = $76), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $78 = Math_fround(HEAPF32[($5 + 68 | 0) >> 2]); + btCross_28btVector3_20const__2c_20btVector3_20const__29($5 + 4 | 0 | 0, $5 + 88 | 0 | 0, HEAP32[($5 + 120 | 0) >> 2] | 0 | 0); + $93 = Math_fround($78 * Math_fround(btDot_28btVector3_20const__2c_20btVector3_20const__29($5 + 104 | 0 | 0, $5 + 4 | 0 | 0))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($0 | 0) | 0, wasm2js_f32$0 = $93), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + __stack_pointer = $5 + 128 | 0; + return; + } + + function btRigidBody__computeGyroscopicImpulseImplicit_World_28float_29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $6 = 0, $10 = 0, $11 = 0, $51 = 0, $119 = 0, $173 = 0, $177 = 0, $252 = 0, $256 = 0, $377 = 0, $381 = 0; + $5 = __stack_pointer - 384 | 0; + __stack_pointer = $5; + HEAP32[($5 + 380 | 0) >> 2] = $1; + HEAPF32[($5 + 376 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 380 | 0) >> 2] | 0; + btRigidBody__getLocalInertia_28_29_20const($5 + 360 | 0 | 0, $6 | 0); + $10 = btRigidBody__getAngularVelocity_28_29_20const($6 | 0) | 0; + $11 = 8; + i64toi32_i32$2 = $10 + $11 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $173 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 344 | 0) + $11 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $173; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $10; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $177 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 344 | 0) >> 2] = $177; + HEAP32[($5 + 348 | 0) >> 2] = i64toi32_i32$0; + btMatrix3x3__btMatrix3x3_28_29($5 + 296 | 0 | 0) | 0; + btMatrix3x3__scaled_28btVector3_20const__29_20const($5 + 200 | 0 | 0, btTransform__getBasis_28_29_20const($6 + 4 | 0 | 0) | 0 | 0, $5 + 360 | 0 | 0); + btMatrix3x3__transpose_28_29_20const($5 + 152 | 0 | 0, btTransform__getBasis_28_29_20const($6 + 4 | 0 | 0) | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btMatrix3x3_20const__29($5 + 248 | 0 | 0, $5 + 200 | 0 | 0, $5 + 152 | 0 | 0); + btMatrix3x3__operator__28btMatrix3x3_20const__29($5 + 296 | 0 | 0, $5 + 248 | 0 | 0) | 0; + $51 = 8; + i64toi32_i32$2 = ($5 + 344 | 0) + $51 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $252 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 136 | 0) + $51 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $252; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $5; + i64toi32_i32$1 = HEAP32[($5 + 344 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 348 | 0) >> 2] | 0; + $256 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 136 | 0) >> 2] = $256; + HEAP32[($5 + 140 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($5 + 100 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 96 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 92 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 104 | 0 | 0, $5 + 100 | 0 | 0, $5 + 96 | 0 | 0, $5 + 92 | 0 | 0) | 0; + evalEulerEqn_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20btMatrix3x3_20const__29($5 + 120 | 0 | 0, $5 + 136 | 0 | 0, $5 + 344 | 0 | 0, $5 + 104 | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 376 | 0) >> 2])), $5 + 296 | 0 | 0); + evalEulerEqnDeriv_28btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20btMatrix3x3_20const__29($5 + 44 | 0 | 0, $5 + 136 | 0 | 0, $5 + 344 | 0 | 0, Math_fround(Math_fround(HEAPF32[($5 + 376 | 0) >> 2])), $5 + 296 | 0 | 0); + btVector3__btVector3_28_29($5 + 24 | 0 | 0) | 0; + btMatrix3x3__solve33_28btVector3_20const__29_20const($5 + 8 | 0 | 0, $5 + 44 | 0 | 0, $5 + 120 | 0 | 0); + $119 = 8; + i64toi32_i32$2 = ($5 + 8 | 0) + $119 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $377 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 24 | 0) + $119 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $377; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $5; + i64toi32_i32$1 = HEAP32[($5 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 12 | 0) >> 2] | 0; + $381 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 24 | 0) >> 2] = $381; + HEAP32[($5 + 28 | 0) >> 2] = i64toi32_i32$0; + btVector3__operator___28btVector3_20const__29($5 + 136 | 0 | 0, $5 + 24 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($0 | 0, $5 + 136 | 0 | 0, $5 + 344 | 0 | 0); + __stack_pointer = $5 + 384 | 0; + return; + } + + function evalEulerEqn_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20btMatrix3x3_20const__29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = Math_fround($4); + $5 = $5 | 0; + var $8 = 0, $14 = 0; + $8 = __stack_pointer - 160 | 0; + __stack_pointer = $8; + HEAP32[($8 + 156 | 0) >> 2] = $1; + HEAP32[($8 + 152 | 0) >> 2] = $2; + HEAP32[($8 + 148 | 0) >> 2] = $3; + HEAPF32[($8 + 144 | 0) >> 2] = $4; + HEAP32[($8 + 140 | 0) >> 2] = $5; + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 108 | 0 | 0, HEAP32[($8 + 140 | 0) >> 2] | 0 | 0, HEAP32[($8 + 156 | 0) >> 2] | 0 | 0); + $14 = HEAP32[($8 + 156 | 0) >> 2] | 0; + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 60 | 0 | 0, HEAP32[($8 + 140 | 0) >> 2] | 0 | 0, HEAP32[($8 + 156 | 0) >> 2] | 0 | 0); + btVector3__cross_28btVector3_20const__29_20const($8 + 76 | 0 | 0, $14 | 0, $8 + 60 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($8 + 92 | 0 | 0, $8 + 76 | 0 | 0, $8 + 144 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 124 | 0 | 0, $8 + 108 | 0 | 0, $8 + 92 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($8 + 28 | 0 | 0, HEAP32[($8 + 148 | 0) >> 2] | 0 | 0, $8 + 144 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($8 + 12 | 0 | 0, HEAP32[($8 + 140 | 0) >> 2] | 0 | 0, HEAP32[($8 + 152 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($8 + 44 | 0 | 0, $8 + 28 | 0 | 0, $8 + 12 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($0 | 0, $8 + 124 | 0 | 0, $8 + 44 | 0 | 0); + __stack_pointer = $8 + 160 | 0; + return; + } + + function evalEulerEqnDeriv_28btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20btMatrix3x3_20const__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + $4 = $4 | 0; + var $7 = 0, $53 = 0; + $7 = __stack_pointer - 288 | 0; + __stack_pointer = $7; + HEAP32[($7 + 284 | 0) >> 2] = $0; + HEAP32[($7 + 280 | 0) >> 2] = $1; + HEAP32[($7 + 276 | 0) >> 2] = $2; + HEAPF32[($7 + 272 | 0) >> 2] = $3; + HEAP32[($7 + 268 | 0) >> 2] = $4; + btMatrix3x3__btMatrix3x3_28_29($7 + 220 | 0 | 0) | 0; + btMatrix3x3__btMatrix3x3_28_29($7 + 172 | 0 | 0) | 0; + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($7 + 156 | 0 | 0, HEAP32[($7 + 268 | 0) >> 2] | 0 | 0, HEAP32[($7 + 280 | 0) >> 2] | 0 | 0); + btVector3__getSkewSymmetricMatrix_28btVector3__2c_20btVector3__2c_20btVector3__29_20const(HEAP32[($7 + 280 | 0) >> 2] | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($7 + 220 | 0 | 0, 0 | 0) | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($7 + 220 | 0 | 0, 1 | 0) | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($7 + 220 | 0 | 0, 2 | 0) | 0 | 0); + btVector3__getSkewSymmetricMatrix_28btVector3__2c_20btVector3__2c_20btVector3__29_20const($7 + 156 | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($7 + 172 | 0 | 0, 0 | 0) | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($7 + 172 | 0 | 0, 1 | 0) | 0 | 0, btMatrix3x3__operator_5b_5d_28int_29($7 + 172 | 0 | 0, 2 | 0) | 0 | 0); + $53 = HEAP32[($7 + 268 | 0) >> 2] | 0; + operator__28btMatrix3x3_20const__2c_20btMatrix3x3_20const__29($7 + 12 | 0 | 0, $7 + 220 | 0 | 0, HEAP32[($7 + 268 | 0) >> 2] | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btMatrix3x3_20const__29_1($7 + 60 | 0 | 0, $7 + 12 | 0 | 0, $7 + 172 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20float_20const__29($7 + 108 | 0 | 0, $7 + 60 | 0 | 0, $7 + 272 | 0 | 0); + operator__28btMatrix3x3_20const__2c_20btMatrix3x3_20const__29_2($0 | 0, $53 | 0, $7 + 108 | 0 | 0); + __stack_pointer = $7 + 288 | 0; + return; + } + + function btRigidBody__addConstraintRef_28btTypedConstraint__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btTypedConstraint____findLinearSearch_28btTypedConstraint__20const__29_20const($5 + 544 | 0 | 0, $4 + 24 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 20 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btTypedConstraint____size_28_29_20const($5 + 544 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btTypedConstraint____push_back_28btTypedConstraint__20const__29($5 + 544 | 0 | 0, $4 + 24 | 0 | 0); + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btTypedConstraint__getRigidBodyA_28_29(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btTypedConstraint__getRigidBodyB_28_29(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + label$2 : { + label$3 : { + if (!((HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) == ($5 | 0) & 1 | 0)) { + break label$3 + } + btCollisionObject__setIgnoreCollisionCheck_28btCollisionObject_20const__2c_20bool_29(HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, 1 & 1 | 0 | 0); + break label$2; + } + btCollisionObject__setIgnoreCollisionCheck_28btCollisionObject_20const__2c_20bool_29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 1 & 1 | 0 | 0); + } + } + __stack_pointer = $4 + 32 | 0; + return; + } + + function btAlignedObjectArray_btTypedConstraint____findLinearSearch_28btTypedConstraint__20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btTypedConstraint____size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + HEAP32[$4 >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$4 >> 2] | 0 | 0) < (btAlignedObjectArray_btTypedConstraint____size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + label$3 : { + if (!((HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[$4 >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) == (HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[$4 >> 2] | 0; + break label$1; + } + HEAP32[$4 >> 2] = (HEAP32[$4 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + $32 = HEAP32[($4 + 4 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btAlignedObjectArray_btTypedConstraint____push_back_28btTypedConstraint__20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btTypedConstraint____size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btTypedConstraint____capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btTypedConstraint____reserve_28int_29($5 | 0, btAlignedObjectArray_btTypedConstraint____allocSize_28int_29($5 | 0, btAlignedObjectArray_btTypedConstraint____size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btTypedConstraint____capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btTypedConstraint____allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btAlignedObjectArray_btTypedConstraint____reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btTypedConstraint____capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btTypedConstraint____allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btTypedConstraint____copy_28int_2c_20int_2c_20btTypedConstraint___29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btTypedConstraint____size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btTypedConstraint____destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btTypedConstraint____size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btTypedConstraint____deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btRigidBody__removeConstraintRef_28btTypedConstraint__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btTypedConstraint____findLinearSearch_28btTypedConstraint__20const__29_20const($5 + 544 | 0 | 0, $4 + 24 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 20 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btTypedConstraint____size_28_29_20const($5 + 544 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btTypedConstraint____remove_28btTypedConstraint__20const__29($5 + 544 | 0 | 0, $4 + 24 | 0 | 0); + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btTypedConstraint__getRigidBodyA_28_29(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btTypedConstraint__getRigidBodyB_28_29(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + label$2 : { + label$3 : { + if (!((HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) == ($5 | 0) & 1 | 0)) { + break label$3 + } + btCollisionObject__setIgnoreCollisionCheck_28btCollisionObject_20const__2c_20bool_29(HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + break label$2; + } + btCollisionObject__setIgnoreCollisionCheck_28btCollisionObject_20const__2c_20bool_29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + } + } + __stack_pointer = $4 + 32 | 0; + return; + } + + function btAlignedObjectArray_btTypedConstraint____remove_28btTypedConstraint__20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btTypedConstraint____findLinearSearch_28btTypedConstraint__20const__29_20const($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btTypedConstraint____removeAtIndex_28int_29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btTypedConstraint____removeAtIndex_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btTypedConstraint____size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btTypedConstraint____swap_28int_2c_20int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, (btAlignedObjectArray_btTypedConstraint____size_28_29_20const($5 | 0) | 0) - 1 | 0 | 0); + btAlignedObjectArray_btTypedConstraint____pop_back_28_29($5 | 0); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btRigidBody__calculateSerializeBufferSize_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = 496; + return HEAP32[($3 + 8 | 0) >> 2] | 0 | 0; + } + + function btRigidBody__serialize_28void__2c_20btSerializer__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + btCollisionObject__serialize_28void__2c_20btSerializer__29_20const($6 | 0, HEAP32[$5 >> 2] | 0 | 0, HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0; + btMatrix3x3__serialize_28btMatrix3x3FloatData__29_20const($6 + 324 | 0 | 0, (HEAP32[$5 >> 2] | 0) + 264 | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const($6 + 372 | 0 | 0, (HEAP32[$5 >> 2] | 0) + 312 | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const($6 + 388 | 0 | 0, (HEAP32[$5 >> 2] | 0) + 328 | 0 | 0); + HEAPF32[((HEAP32[$5 >> 2] | 0) + 456 | 0) >> 2] = Math_fround(HEAPF32[($6 + 404 | 0) >> 2]); + btVector3__serialize_28btVector3FloatData__29_20const($6 + 604 | 0 | 0, (HEAP32[$5 >> 2] | 0) + 344 | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const($6 + 408 | 0 | 0, (HEAP32[$5 >> 2] | 0) + 360 | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const($6 + 424 | 0 | 0, (HEAP32[$5 >> 2] | 0) + 376 | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const($6 + 440 | 0 | 0, (HEAP32[$5 >> 2] | 0) + 392 | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const($6 + 456 | 0 | 0, (HEAP32[$5 >> 2] | 0) + 408 | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const($6 + 472 | 0 | 0, (HEAP32[$5 >> 2] | 0) + 424 | 0 | 0); + btVector3__serialize_28btVector3FloatData__29_20const($6 + 488 | 0 | 0, (HEAP32[$5 >> 2] | 0) + 440 | 0 | 0); + HEAPF32[((HEAP32[$5 >> 2] | 0) + 460 | 0) >> 2] = Math_fround(HEAPF32[($6 + 504 | 0) >> 2]); + HEAPF32[((HEAP32[$5 >> 2] | 0) + 464 | 0) >> 2] = Math_fround(HEAPF32[($6 + 508 | 0) >> 2]); + HEAP32[((HEAP32[$5 >> 2] | 0) + 492 | 0) >> 2] = (HEAPU8[($6 + 512 | 0) >> 0] | 0) & 1 | 0; + HEAPF32[((HEAP32[$5 >> 2] | 0) + 468 | 0) >> 2] = Math_fround(HEAPF32[($6 + 516 | 0) >> 2]); + HEAPF32[((HEAP32[$5 >> 2] | 0) + 472 | 0) >> 2] = Math_fround(HEAPF32[($6 + 520 | 0) >> 2]); + HEAPF32[((HEAP32[$5 >> 2] | 0) + 476 | 0) >> 2] = Math_fround(HEAPF32[($6 + 524 | 0) >> 2]); + HEAPF32[((HEAP32[$5 >> 2] | 0) + 480 | 0) >> 2] = Math_fround(HEAPF32[($6 + 528 | 0) >> 2]); + HEAPF32[((HEAP32[$5 >> 2] | 0) + 484 | 0) >> 2] = Math_fround(HEAPF32[($6 + 532 | 0) >> 2]); + HEAPF32[((HEAP32[$5 >> 2] | 0) + 488 | 0) >> 2] = Math_fround(HEAPF32[($6 + 536 | 0) >> 2]); + __stack_pointer = $5 + 16 | 0; + return 83210 | 0; + } + + function btRigidBody__serializeSingleObject_28btSerializer__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $6 = 0, $20 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0, wasm2js_i32$4 = 0, wasm2js_i32$5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + $6 = HEAP32[($4 + 8 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = ((((wasm2js_i32$3 = $6, wasm2js_i32$4 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($5) | 0), wasm2js_i32$5 = 1), wasm2js_i32$2 = HEAP32[((HEAP32[$6 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$2](wasm2js_i32$3 | 0, wasm2js_i32$4 | 0, wasm2js_i32$5 | 0) | 0)), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5, HEAP32[((HEAP32[($4 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0, HEAP32[($4 + 8 | 0) >> 2] | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $20 = HEAP32[($4 + 8 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$20 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($20, HEAP32[($4 + 4 | 0) >> 2] | 0, HEAP32[$4 >> 2] | 0, 1497645650, $5); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btRigidBody___btRigidBody_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btRigidBody___btRigidBody_28_29($4 | 0) | 0; + btCollisionObject__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btTypedConstraint____allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btTypedConstraint__2c_2016u___allocate_28int_2c_20btTypedConstraint__20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btTypedConstraint____copy_28int_2c_20int_2c_20btTypedConstraint___29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[((HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[((HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedAllocator_btTypedConstraint__2c_2016u___allocate_28int_2c_20btTypedConstraint__20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btAlignedObjectArray_btTypedConstraint____swap_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[$5 >> 2] | 0; + return; + } + + function btAlignedObjectArray_btTypedConstraint____pop_back_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85800 | 0, 78192 | 0, 201 | 0, 77711 | 0); + wasm2js_trap(); + } + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + -1 | 0; + __stack_pointer = $3 + 16 | 0; + return; + } + + function _GLOBAL__sub_I_btRigidBody_cpp() { + __cxx_global_var_init_74(); + return; + } + + function __cxx_global_var_init_75() { + btInfMaskConverter__btInfMaskConverter_28int_29(116132 | 0, 2139095040 | 0) | 0; + return; + } + + function btUnionFind___btUnionFind_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btUnionFind__Free_28_29($4 | 0); + btAlignedObjectArray_btElement____btAlignedObjectArray_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btUnionFind__Free_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedObjectArray_btElement___clear_28_29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btElement____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btElement___clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btElement___clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btElement___destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btElement___size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btElement___deallocate_28_29($4 | 0); + btAlignedObjectArray_btElement___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btUnionFind__btUnionFind_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btElement___btAlignedObjectArray_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btElement___btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btElement_2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btElement___init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedAllocator_btElement_2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btElement___init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btUnionFind__allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $6 = 0, i64toi32_i32$0 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + $6 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = 0; + HEAP32[$4 >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = i64toi32_i32$0; + btAlignedObjectArray_btElement___resize_28int_2c_20btElement_20const__29($5 | 0, $6 | 0, $4 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btElement___resize_28int_2c_20btElement_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $162 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btElement___size_28_29_20const($6 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + break label$1; + } + label$5 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) > (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + btAlignedObjectArray_btElement___reserve_28int_29($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + i64toi32_i32$2 = HEAP32[($5 + 20 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $162 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $162; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btAlignedObjectArray_btElement___reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btElement___capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btElement___allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btElement___copy_28int_2c_20int_2c_20btElement__29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btElement___size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btElement___destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btElement___size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btElement___deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btElement___destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btElement___deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btElement_2c_2016u___deallocate_28btElement__29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btUnionFind__reset_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $15 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btUnionFind__allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + HEAP32[($4 + 4 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + $15 = HEAP32[($4 + 4 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btElement___operator_5b_5d_28int_29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $15), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = btAlignedObjectArray_btElement___operator_5b_5d_28int_29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = 1), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btUnionFind__sortIslands_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $15 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btAlignedObjectArray_btElement___size_28_29_20const($4 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($3 + 4 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) < (HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + $15 = btUnionFind__find_28int_29($4 | 0, HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btElement___operator_5b_5d_28int_29($4 | 0, HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $15), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[($3 + 4 | 0) >> 2] = (HEAP32[($3 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + void_20btAlignedObjectArray_btElement___quickSort_btUnionFindElementSortPredicate__28btUnionFindElementSortPredicate_20const__29($4 | 0, $3 + 3 | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function void_20btAlignedObjectArray_btElement___quickSort_btUnionFindElementSortPredicate__28btUnionFindElementSortPredicate_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btElement___size_28_29_20const($5 | 0) | 0 | 0) > (1 | 0) & 1 | 0)) { + break label$1 + } + void_20btAlignedObjectArray_btElement___quickSortInternal_btUnionFindElementSortPredicate__28btUnionFindElementSortPredicate_20const__2c_20int_2c_20int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 0 | 0, (btAlignedObjectArray_btElement___size_28_29_20const($5 | 0) | 0) - 1 | 0 | 0); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function void_20btAlignedObjectArray_btElement___quickSortInternal_btUnionFindElementSortPredicate__28btUnionFindElementSortPredicate_20const__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 20 | 0) >> 2] | 0; + HEAP32[($6 + 8 | 0) >> 2] = HEAP32[($6 + 16 | 0) >> 2] | 0; + i64toi32_i32$2 = (HEAP32[($7 + 12 | 0) >> 2] | 0) + ((((HEAP32[($6 + 20 | 0) >> 2] | 0) + (HEAP32[($6 + 16 | 0) >> 2] | 0) | 0 | 0) / (2 | 0) | 0) << 3 | 0) | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + HEAP32[$6 >> 2] = HEAP32[i64toi32_i32$2 >> 2] | 0; + HEAP32[($6 + 4 | 0) >> 2] = i64toi32_i32$1; + label$1 : while (1) { + label$2 : { + label$3 : while (1) { + if (!((btUnionFindElementSortPredicate__operator_28_29_28btElement_20const__2c_20btElement_20const__29_20const(HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, (HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 3 | 0) | 0 | 0, $6 | 0) | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + label$4 : { + label$5 : while (1) { + if (!((btUnionFindElementSortPredicate__operator_28_29_28btElement_20const__2c_20btElement_20const__29_20const(HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, $6 | 0, (HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 8 | 0) >> 2] | 0) << 3 | 0) | 0 | 0) | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($6 + 8 | 0) >> 2] = (HEAP32[($6 + 8 | 0) >> 2] | 0) + -1 | 0; + continue label$5; + }; + } + label$6 : { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) <= (HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + btAlignedObjectArray_btElement___swap_28int_2c_20int_29($7 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0); + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($6 + 8 | 0) >> 2] = (HEAP32[($6 + 8 | 0) >> 2] | 0) + -1 | 0; + } + if ((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) <= (HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) & 1 | 0) { + continue label$1 + } + break label$1; + }; + label$7 : { + if (!((HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$7 + } + void_20btAlignedObjectArray_btElement___quickSortInternal_btUnionFindElementSortPredicate__28btUnionFindElementSortPredicate_20const__2c_20int_2c_20int_29($7 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0); + } + label$8 : { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + void_20btAlignedObjectArray_btElement___quickSortInternal_btUnionFindElementSortPredicate__28btUnionFindElementSortPredicate_20const__2c_20int_2c_20int_29($7 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0); + } + __stack_pointer = $6 + 32 | 0; + return; + } + + function btAlignedObjectArray_btElement___capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btElement___allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btElement_2c_2016u___allocate_28int_2c_20btElement_20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btElement___copy_28int_2c_20int_2c_20btElement__29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, $7 = 0, i64toi32_i32$1 = 0, $85 = 0; + $6 = __stack_pointer - 32 | 0; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + i64toi32_i32$2 = (HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 3 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $85 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $85; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedAllocator_btElement_2c_2016u___allocate_28int_2c_20btElement_20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 3 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btAlignedAllocator_btElement_2c_2016u___deallocate_28btElement__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btUnionFindElementSortPredicate__operator_28_29_28btElement_20const__2c_20btElement_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + return (HEAP32[(HEAP32[($5 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) < (HEAP32[(HEAP32[($5 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0 | 0; + } + + function btAlignedObjectArray_btElement___swap_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $6 = 0, $55 = 0, $79 = 0, $93 = 0; + $5 = __stack_pointer - 32 | 0; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + i64toi32_i32$2 = (HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 24 | 0) >> 2] | 0) << 3 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $55 = i64toi32_i32$0; + i64toi32_i32$0 = $5; + HEAP32[($5 + 8 | 0) >> 2] = $55; + HEAP32[($5 + 12 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = (HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 20 | 0) >> 2] | 0) << 3 | 0) | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $79 = i64toi32_i32$1; + i64toi32_i32$1 = (HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 24 | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$1 >> 2] = $79; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 12 | 0) >> 2] | 0; + $93 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 20 | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $93; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + return; + } + + function _GLOBAL__sub_I_btUnionFind_cpp() { + __cxx_global_var_init_75(); + return; + } + + function __cxx_global_var_init_76() { + btInfMaskConverter__btInfMaskConverter_28int_29(116136 | 0, 2139095040 | 0) | 0; + return; + } + + function btSimulationIslandManager__btSimulationIslandManager_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 102732 + 8 | 0; + btUnionFind__btUnionFind_28_29($4 + 4 | 0 | 0) | 0; + btAlignedObjectArray_btPersistentManifold____btAlignedObjectArray_28_29($4 + 24 | 0 | 0) | 0; + btAlignedObjectArray_btCollisionObject____btAlignedObjectArray_28_29($4 + 44 | 0 | 0) | 0; + HEAP8[($4 + 64 | 0) >> 0] = 1; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btSimulationIslandManager___btSimulationIslandManager_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 102732 + 8 | 0; + btAlignedObjectArray_btCollisionObject_____btAlignedObjectArray_28_29($4 + 44 | 0 | 0) | 0; + btAlignedObjectArray_btPersistentManifold_____btAlignedObjectArray_28_29($4 + 24 | 0 | 0) | 0; + btUnionFind___btUnionFind_28_29($4 + 4 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btSimulationIslandManager___btSimulationIslandManager_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[1110 | 0]($4) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btSimulationIslandManager__initUnionFind_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btUnionFind__reset_28int_29((HEAP32[($4 + 12 | 0) >> 2] | 0) + 4 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btSimulationIslandManager__findUnions_28btDispatcher__2c_20btCollisionWorld__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $9 = 0, $14 = 0, $6 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 44 | 0) >> 2] = $0; + HEAP32[($5 + 40 | 0) >> 2] = $1; + HEAP32[($5 + 36 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 44 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btCollisionWorld__getPairCache_28_29(HEAP32[($5 + 36 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + $9 = HEAP32[($5 + 32 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$9 >> 2] | 0) + 36 | 0) >> 2] | 0 | 0]($9) | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!(HEAP32[($5 + 28 | 0) >> 2] | 0)) { + break label$1 + } + $14 = HEAP32[($5 + 32 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$14 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($14) | 0), HEAP32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($5 + 20 | 0) >> 2] = 0; + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 16 | 0) >> 2] = (HEAP32[($5 + 24 | 0) >> 2] | 0) + ((HEAP32[($5 + 20 | 0) >> 2] | 0) << 4 | 0) | 0; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[(HEAP32[(HEAP32[($5 + 16 | 0) >> 2] | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] | 0; + label$4 : { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((btCollisionObject__mergesSimulationIslands_28_29_20const(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((btCollisionObject__mergesSimulationIslands_28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$4 + } + btUnionFind__unite_28int_2c_20int_29($6 + 4 | 0 | 0, btCollisionObject__getIslandTag_28_29_20const(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0 | 0, btCollisionObject__getIslandTag_28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0 | 0); + } + HEAP32[($5 + 20 | 0) >> 2] = (HEAP32[($5 + 20 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + } + __stack_pointer = $5 + 48 | 0; + return; + } + + function btCollisionObject__mergesSimulationIslands_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return ((HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 204 | 0) >> 2] | 0) & 7 | 0 | 0) == (0 | 0) & 1 | 0 | 0; + } + + function btSimulationIslandManager__updateActivationState_28btCollisionWorld__2c_20btDispatcher__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $28 = 0, $27 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + HEAP32[($5 + 16 | 0) >> 2] = 0; + HEAP32[($5 + 12 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btCollisionObject____size_28_29_20const(btCollisionWorld__getCollisionObjectArray_28_29(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btCollisionObject____operator_5b_5d_28int_29(btCollisionWorld__getCollisionObjectArray_28_29(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + label$3 : { + if ((btCollisionObject__isStaticOrKinematicObject_28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$3 + } + $27 = HEAP32[($5 + 8 | 0) >> 2] | 0; + $28 = HEAP32[($5 + 16 | 0) >> 2] | 0; + HEAP32[($5 + 16 | 0) >> 2] = $28 + 1 | 0; + btCollisionObject__setIslandTag_28int_29($27 | 0, $28 | 0); + } + btCollisionObject__setCompanionId_28int_29(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, -1 | 0); + btCollisionObject__setHitFraction_28float_29(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(1.0))); + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + btSimulationIslandManager__initUnionFind_28int_29($6 | 0, HEAP32[($5 + 16 | 0) >> 2] | 0 | 0); + btSimulationIslandManager__findUnions_28btDispatcher__2c_20btCollisionWorld__29($6 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + __stack_pointer = $5 + 32 | 0; + return; + } + + function btCollisionWorld__getCollisionObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0 | 0; + } + + function btCollisionObject__setIslandTag_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 208 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return; + } + + function btSimulationIslandManager__storeIslandActivationState_28btCollisionWorld__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $31 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + HEAP32[($4 + 20 | 0) >> 2] = 0; + HEAP32[($4 + 16 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btCollisionObject____size_28_29_20const(btCollisionWorld__getCollisionObjectArray_28_29(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btCollisionObject____operator_5b_5d_28int_29(btCollisionWorld__getCollisionObjectArray_28_29(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + label$3 : { + label$4 : { + if ((btCollisionObject__isStaticOrKinematicObject_28_29_20const(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$4 + } + btCollisionObject__setIslandTag_28int_29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, btUnionFind__find_28int_29($5 + 4 | 0 | 0, HEAP32[($4 + 20 | 0) >> 2] | 0 | 0) | 0 | 0); + $31 = HEAP32[($4 + 16 | 0) >> 2] | 0; + (wasm2js_i32$0 = btUnionFind__getElement_28int_29($5 + 4 | 0 | 0, HEAP32[($4 + 20 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $31), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btCollisionObject__setCompanionId_28int_29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, -1 | 0); + HEAP32[($4 + 20 | 0) >> 2] = (HEAP32[($4 + 20 | 0) >> 2] | 0) + 1 | 0; + break label$3; + } + btCollisionObject__setIslandTag_28int_29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, -1 | 0); + btCollisionObject__setCompanionId_28int_29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, -2 | 0); + } + HEAP32[($4 + 16 | 0) >> 2] = (HEAP32[($4 + 16 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $4 + 32 | 0; + return; + } + + function btUnionFind__getElement_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $7 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $7 = btAlignedObjectArray_btElement___operator_5b_5d_28int_29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $7 | 0; + } + + function btSimulationIslandManager__buildIslands_28btDispatcher__2c_20btCollisionWorld__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $47 = 0, $289 = 0, $301 = 0, $383 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 112 | 0; + __stack_pointer = $5; + HEAP32[($5 + 108 | 0) >> 2] = $0; + HEAP32[($5 + 104 | 0) >> 2] = $1; + HEAP32[($5 + 100 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 108 | 0) >> 2] | 0; + CProfileSample__CProfileSample_28char_20const__29($5 + 99 | 0 | 0, 67513 | 0) | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btCollisionWorld__getCollisionObjectArray_28_29(HEAP32[($5 + 100 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 92 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($5 + 88 | 0) >> 2] = 0; + btAlignedObjectArray_btPersistentManifold____resize_28int_2c_20btPersistentManifold__20const__29($6 + 24 | 0 | 0, 0 | 0, $5 + 88 | 0 | 0); + btUnionFind__sortIslands_28_29(btSimulationIslandManager__getUnionFind_28_29($6 | 0) | 0 | 0); + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btUnionFind__getNumElements_28_29_20const(btSimulationIslandManager__getUnionFind_28_29($6 | 0) | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 84 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($5 + 80 | 0) >> 2] = 1; + HEAP32[($5 + 76 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($5 + 76 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 84 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = HEAP32[(btUnionFind__getElement_28int_29(btSimulationIslandManager__getUnionFind_28_29($6 | 0) | 0 | 0, HEAP32[($5 + 76 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 72 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($5 + 80 | 0) >> 2] = (HEAP32[($5 + 76 | 0) >> 2] | 0) + 1 | 0; + label$3 : while (1) { + $47 = 0; + label$4 : { + if (!((HEAP32[($5 + 80 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 84 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + $47 = (HEAP32[(btUnionFind__getElement_28int_29(btSimulationIslandManager__getUnionFind_28_29($6 | 0) | 0 | 0, HEAP32[($5 + 80 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) == (HEAP32[($5 + 72 | 0) >> 2] | 0 | 0); + } + label$5 : { + if (!($47 & 1 | 0)) { + break label$5 + } + HEAP32[($5 + 80 | 0) >> 2] = (HEAP32[($5 + 80 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + } + break label$3; + }; + HEAP8[($5 + 71 | 0) >> 0] = 1; + HEAP32[($5 + 64 | 0) >> 2] = HEAP32[($5 + 76 | 0) >> 2] | 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($5 + 64 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 80 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = HEAP32[((btUnionFind__getElement_28int_29(btSimulationIslandManager__getUnionFind_28_29($6 | 0) | 0 | 0, HEAP32[($5 + 64 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 60 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btCollisionObject____operator_5b_5d_28int_29(HEAP32[($5 + 92 | 0) >> 2] | 0 | 0, HEAP32[($5 + 60 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 56 | 0) >> 2] = wasm2js_i32$1; + label$8 : { + if (!((btCollisionObject__getIslandTag_28_29_20const(HEAP32[($5 + 56 | 0) >> 2] | 0 | 0) | 0 | 0) != (HEAP32[($5 + 72 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + if (!((btCollisionObject__getIslandTag_28_29_20const(HEAP32[($5 + 56 | 0) >> 2] | 0 | 0) | 0 | 0) != (-1 | 0) & 1 | 0)) { + break label$8 + } + } + label$9 : { + if ((btCollisionObject__getIslandTag_28_29_20const(HEAP32[($5 + 56 | 0) >> 2] | 0 | 0) | 0 | 0) == (HEAP32[($5 + 72 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$9 + } + if ((btCollisionObject__getIslandTag_28_29_20const(HEAP32[($5 + 56 | 0) >> 2] | 0 | 0) | 0 | 0) == (-1 | 0) & 1 | 0) { + break label$9 + } + __assert_fail(86552 | 0, 72966 | 0, 245 | 0, 70353 | 0); + wasm2js_trap(); + } + label$10 : { + if (!((btCollisionObject__getIslandTag_28_29_20const(HEAP32[($5 + 56 | 0) >> 2] | 0 | 0) | 0 | 0) == (HEAP32[($5 + 72 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$10 + } + label$11 : { + if (!((btCollisionObject__getActivationState_28_29_20const(HEAP32[($5 + 56 | 0) >> 2] | 0 | 0) | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$11 + } + HEAP8[($5 + 71 | 0) >> 0] = 0; + } + label$12 : { + if (!((btCollisionObject__getActivationState_28_29_20const(HEAP32[($5 + 56 | 0) >> 2] | 0 | 0) | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$12 + } + HEAP8[($5 + 71 | 0) >> 0] = 0; + } + } + HEAP32[($5 + 64 | 0) >> 2] = (HEAP32[($5 + 64 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + label$13 : { + label$14 : { + if (!((HEAPU8[($5 + 71 | 0) >> 0] | 0) & 1 | 0)) { + break label$14 + } + HEAP32[($5 + 52 | 0) >> 2] = HEAP32[($5 + 76 | 0) >> 2] | 0; + label$15 : { + label$16 : while (1) { + if (!((HEAP32[($5 + 52 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 80 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$15 + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = HEAP32[((btUnionFind__getElement_28int_29(btSimulationIslandManager__getUnionFind_28_29($6 | 0) | 0 | 0, HEAP32[($5 + 52 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 48 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btCollisionObject____operator_5b_5d_28int_29(HEAP32[($5 + 92 | 0) >> 2] | 0 | 0, HEAP32[($5 + 48 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_i32$1; + label$17 : { + if (!((btCollisionObject__getIslandTag_28_29_20const(HEAP32[($5 + 44 | 0) >> 2] | 0 | 0) | 0 | 0) != (HEAP32[($5 + 72 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$17 + } + if (!((btCollisionObject__getIslandTag_28_29_20const(HEAP32[($5 + 44 | 0) >> 2] | 0 | 0) | 0 | 0) != (-1 | 0) & 1 | 0)) { + break label$17 + } + } + label$18 : { + if ((btCollisionObject__getIslandTag_28_29_20const(HEAP32[($5 + 44 | 0) >> 2] | 0 | 0) | 0 | 0) == (HEAP32[($5 + 72 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$18 + } + if ((btCollisionObject__getIslandTag_28_29_20const(HEAP32[($5 + 44 | 0) >> 2] | 0 | 0) | 0 | 0) == (-1 | 0) & 1 | 0) { + break label$18 + } + __assert_fail(86552 | 0, 72966 | 0, 272 | 0, 70353 | 0); + wasm2js_trap(); + } + label$19 : { + if (!((btCollisionObject__getIslandTag_28_29_20const(HEAP32[($5 + 44 | 0) >> 2] | 0 | 0) | 0 | 0) == (HEAP32[($5 + 72 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$19 + } + btCollisionObject__setActivationState_28int_29_20const(HEAP32[($5 + 44 | 0) >> 2] | 0 | 0, 2 | 0); + } + HEAP32[($5 + 52 | 0) >> 2] = (HEAP32[($5 + 52 | 0) >> 2] | 0) + 1 | 0; + continue label$16; + }; + } + break label$13; + } + HEAP32[($5 + 40 | 0) >> 2] = HEAP32[($5 + 76 | 0) >> 2] | 0; + label$20 : { + label$21 : while (1) { + if (!((HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 80 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$20 + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = HEAP32[((btUnionFind__getElement_28int_29(btSimulationIslandManager__getUnionFind_28_29($6 | 0) | 0 | 0, HEAP32[($5 + 40 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btCollisionObject____operator_5b_5d_28int_29(HEAP32[($5 + 92 | 0) >> 2] | 0 | 0, HEAP32[($5 + 36 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + label$22 : { + if (!((btCollisionObject__getIslandTag_28_29_20const(HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0 | 0) != (HEAP32[($5 + 72 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$22 + } + if (!((btCollisionObject__getIslandTag_28_29_20const(HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0 | 0) != (-1 | 0) & 1 | 0)) { + break label$22 + } + } + label$23 : { + if ((btCollisionObject__getIslandTag_28_29_20const(HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0 | 0) == (HEAP32[($5 + 72 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$23 + } + if ((btCollisionObject__getIslandTag_28_29_20const(HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0 | 0) == (-1 | 0) & 1 | 0) { + break label$23 + } + __assert_fail(86552 | 0, 72966 | 0, 293 | 0, 70353 | 0); + wasm2js_trap(); + } + label$24 : { + if (!((btCollisionObject__getIslandTag_28_29_20const(HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0 | 0) == (HEAP32[($5 + 72 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$24 + } + label$25 : { + if (!((btCollisionObject__getActivationState_28_29_20const(HEAP32[($5 + 32 | 0) >> 2] | 0 | 0) | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$25 + } + btCollisionObject__setActivationState_28int_29_20const(HEAP32[($5 + 32 | 0) >> 2] | 0 | 0, 3 | 0); + btCollisionObject__setDeactivationTime_28float_29(HEAP32[($5 + 32 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(0 | 0))); + } + } + HEAP32[($5 + 40 | 0) >> 2] = (HEAP32[($5 + 40 | 0) >> 2] | 0) + 1 | 0; + continue label$21; + }; + } + } + HEAP32[($5 + 76 | 0) >> 2] = HEAP32[($5 + 80 | 0) >> 2] | 0; + continue label$2; + }; + } + $289 = HEAP32[($5 + 104 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$289 >> 2] | 0) + 36 | 0) >> 2] | 0 | 0]($289) | 0), HEAP32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($5 + 28 | 0) >> 2] = 0; + label$26 : { + label$27 : while (1) { + if (!((HEAP32[($5 + 28 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$26 + } + $301 = HEAP32[($5 + 104 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$301 >> 2] | 0) + 40 | 0) >> 2] | 0 | 0]($301, HEAP32[($5 + 28 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btPersistentManifold__getBody0_28_29_20const(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btPersistentManifold__getBody1_28_29_20const(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + label$28 : { + label$29 : { + label$30 : { + if (!((HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$30 + } + if ((btCollisionObject__getActivationState_28_29_20const(HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) | 0 | 0) != (2 | 0) & 1 | 0) { + break label$29 + } + } + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$28 + } + if (!((btCollisionObject__getActivationState_28_29_20const(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0 | 0) != (2 | 0) & 1 | 0)) { + break label$28 + } + } + label$31 : { + if (!((btCollisionObject__isKinematicObject_28_29_20const(HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$31 + } + if (!((btCollisionObject__getActivationState_28_29_20const(HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) | 0 | 0) != (2 | 0) & 1 | 0)) { + break label$31 + } + label$32 : { + if (!((btCollisionObject__hasContactResponse_28_29_20const(HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$32 + } + btCollisionObject__activate_28bool_29_20const(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + } + } + label$33 : { + if (!((btCollisionObject__isKinematicObject_28_29_20const(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$33 + } + if (!((btCollisionObject__getActivationState_28_29_20const(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0 | 0) != (2 | 0) & 1 | 0)) { + break label$33 + } + label$34 : { + if (!((btCollisionObject__hasContactResponse_28_29_20const(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$34 + } + btCollisionObject__activate_28bool_29_20const(HEAP32[($5 + 16 | 0) >> 2] | 0 | 0, 0 & 1 | 0 | 0); + } + } + label$35 : { + if (!((HEAPU8[($6 + 64 | 0) >> 0] | 0) & 1 | 0)) { + break label$35 + } + $383 = HEAP32[($5 + 104 | 0) >> 2] | 0; + label$36 : { + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$383 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($383, HEAP32[($5 + 16 | 0) >> 2] | 0, HEAP32[($5 + 12 | 0) >> 2] | 0) | 0) & 1 | 0)) { + break label$36 + } + btAlignedObjectArray_btPersistentManifold____push_back_28btPersistentManifold__20const__29($6 + 24 | 0 | 0, $5 + 20 | 0 | 0); + } + } + } + HEAP32[($5 + 28 | 0) >> 2] = (HEAP32[($5 + 28 | 0) >> 2] | 0) + 1 | 0; + continue label$27; + }; + } + CProfileSample___CProfileSample_28_29($5 + 99 | 0 | 0) | 0; + __stack_pointer = $5 + 112 | 0; + return; + } + + function btUnionFind__getNumElements_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = btAlignedObjectArray_btElement___size_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $5 | 0; + } + + function btCollisionObject__setDeactivationTime_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 224 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + return; + } + + function btSimulationIslandManager__buildAndProcessIslands_28btDispatcher__2c_20btCollisionWorld__2c_20btSimulationIslandManager__IslandCallback__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $22 = 0, $26 = 0, $30 = 0, $73 = 0, $143 = 0, $166 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0, wasm2js_i32$4 = 0, wasm2js_i32$5 = 0, wasm2js_i32$6 = 0; + $6 = __stack_pointer - 96 | 0; + __stack_pointer = $6; + HEAP32[($6 + 92 | 0) >> 2] = $0; + HEAP32[($6 + 88 | 0) >> 2] = $1; + HEAP32[($6 + 84 | 0) >> 2] = $2; + HEAP32[($6 + 80 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 92 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btCollisionWorld__getCollisionObjectArray_28_29(HEAP32[($6 + 84 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 76 | 0) >> 2] = wasm2js_i32$1; + btSimulationIslandManager__buildIslands_28btDispatcher__2c_20btCollisionWorld__29($7 | 0, HEAP32[($6 + 88 | 0) >> 2] | 0 | 0, HEAP32[($6 + 84 | 0) >> 2] | 0 | 0); + HEAP32[($6 + 72 | 0) >> 2] = 1; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btUnionFind__getNumElements_28_29_20const(btSimulationIslandManager__getUnionFind_28_29($7 | 0) | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 64 | 0) >> 2] = wasm2js_i32$1; + CProfileSample__CProfileSample_28char_20const__29($6 + 63 | 0 | 0, 70311 | 0) | 0; + label$1 : { + label$2 : { + if ((HEAPU8[($7 + 64 | 0) >> 0] | 0) & 1 | 0) { + break label$2 + } + $22 = HEAP32[($6 + 88 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$22 >> 2] | 0) + 44 | 0) >> 2] | 0 | 0]($22) | 0), HEAP32[(wasm2js_i32$0 + 56 | 0) >> 2] = wasm2js_i32$1; + $26 = HEAP32[($6 + 88 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$26 >> 2] | 0) + 36 | 0) >> 2] | 0 | 0]($26) | 0), HEAP32[(wasm2js_i32$0 + 52 | 0) >> 2] = wasm2js_i32$1; + $30 = HEAP32[($6 + 80 | 0) >> 2] | 0; + ((((((wasm2js_i32$1 = $30, wasm2js_i32$2 = btAlignedObjectArray_btCollisionObject____operator_5b_5d_28int_29(HEAP32[($6 + 76 | 0) >> 2] | 0 | 0, 0 | 0) | 0), wasm2js_i32$3 = btAlignedObjectArray_btCollisionObject____size_28_29_20const(HEAP32[($6 + 76 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$4 = HEAP32[($6 + 56 | 0) >> 2] | 0), wasm2js_i32$5 = HEAP32[($6 + 52 | 0) >> 2] | 0), wasm2js_i32$6 = -1), wasm2js_i32$0 = HEAP32[((HEAP32[$30 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0, wasm2js_i32$3 | 0, wasm2js_i32$4 | 0, wasm2js_i32$5 | 0, wasm2js_i32$6 | 0); + break label$1; + } + (wasm2js_i32$0 = $6, wasm2js_i32$6 = btAlignedObjectArray_btPersistentManifold____size_28_29_20const($7 + 24 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 48 | 0) >> 2] = wasm2js_i32$6; + void_20btAlignedObjectArray_btPersistentManifold____quickSort_btPersistentManifoldSortPredicate__28btPersistentManifoldSortPredicate_20const__29($7 + 24 | 0 | 0, $6 + 47 | 0 | 0); + HEAP32[($6 + 40 | 0) >> 2] = 0; + HEAP32[($6 + 36 | 0) >> 2] = 1; + HEAP32[($6 + 68 | 0) >> 2] = 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($6 + 68 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 64 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + (wasm2js_i32$0 = $6, wasm2js_i32$6 = HEAP32[(btUnionFind__getElement_28int_29(btSimulationIslandManager__getUnionFind_28_29($7 | 0) | 0 | 0, HEAP32[($6 + 68 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$6; + HEAP8[($6 + 31 | 0) >> 0] = 1; + HEAP32[($6 + 72 | 0) >> 2] = HEAP32[($6 + 68 | 0) >> 2] | 0; + label$5 : while (1) { + $73 = 0; + label$6 : { + if (!((HEAP32[($6 + 72 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 64 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + $73 = (HEAP32[(btUnionFind__getElement_28int_29(btSimulationIslandManager__getUnionFind_28_29($7 | 0) | 0 | 0, HEAP32[($6 + 72 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) == (HEAP32[($6 + 32 | 0) >> 2] | 0 | 0); + } + label$7 : { + if (!($73 & 1 | 0)) { + break label$7 + } + (wasm2js_i32$0 = $6, wasm2js_i32$6 = HEAP32[((btUnionFind__getElement_28int_29(btSimulationIslandManager__getUnionFind_28_29($7 | 0) | 0 | 0, HEAP32[($6 + 72 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_i32$6; + (wasm2js_i32$0 = $6, wasm2js_i32$6 = HEAP32[(btAlignedObjectArray_btCollisionObject____operator_5b_5d_28int_29(HEAP32[($6 + 76 | 0) >> 2] | 0 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$6; + btAlignedObjectArray_btCollisionObject____push_back_28btCollisionObject__20const__29($7 + 44 | 0 | 0, $6 + 20 | 0 | 0); + label$8 : { + if (!((btCollisionObject__isActive_28_29_20const(HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$8 + } + HEAP8[($6 + 31 | 0) >> 0] = 0; + } + HEAP32[($6 + 72 | 0) >> 2] = (HEAP32[($6 + 72 | 0) >> 2] | 0) + 1 | 0; + continue label$5; + } + break label$5; + }; + HEAP32[($6 + 16 | 0) >> 2] = 0; + HEAP32[($6 + 12 | 0) >> 2] = 0; + label$9 : { + if (!((HEAP32[($6 + 40 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 48 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$9 + } + (wasm2js_i32$0 = $6, wasm2js_i32$6 = getIslandId_28btPersistentManifold_20const__29(HEAP32[(btAlignedObjectArray_btPersistentManifold____operator_5b_5d_28int_29($7 + 24 | 0 | 0, HEAP32[($6 + 40 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$6; + label$10 : { + if (!((HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) == (HEAP32[($6 + 32 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$10 + } + (wasm2js_i32$0 = $6, wasm2js_i32$6 = btAlignedObjectArray_btPersistentManifold____operator_5b_5d_28int_29($7 + 24 | 0 | 0, HEAP32[($6 + 40 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$6; + HEAP32[($6 + 36 | 0) >> 2] = (HEAP32[($6 + 40 | 0) >> 2] | 0) + 1 | 0; + label$11 : while (1) { + $143 = 0; + label$12 : { + if (!((HEAP32[($6 + 36 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 48 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$12 + } + $143 = (HEAP32[($6 + 32 | 0) >> 2] | 0 | 0) == (getIslandId_28btPersistentManifold_20const__29(HEAP32[(btAlignedObjectArray_btPersistentManifold____operator_5b_5d_28int_29($7 + 24 | 0 | 0, HEAP32[($6 + 36 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) | 0 | 0); + } + label$13 : { + if (!($143 & 1 | 0)) { + break label$13 + } + HEAP32[($6 + 36 | 0) >> 2] = (HEAP32[($6 + 36 | 0) >> 2] | 0) + 1 | 0; + continue label$11; + } + break label$11; + }; + HEAP32[($6 + 16 | 0) >> 2] = (HEAP32[($6 + 36 | 0) >> 2] | 0) - (HEAP32[($6 + 40 | 0) >> 2] | 0) | 0; + } + } + label$14 : { + if ((HEAPU8[($6 + 31 | 0) >> 0] | 0) & 1 | 0) { + break label$14 + } + $166 = HEAP32[($6 + 80 | 0) >> 2] | 0; + ((((((wasm2js_i32$6 = $166, wasm2js_i32$5 = btAlignedObjectArray_btCollisionObject____operator_5b_5d_28int_29($7 + 44 | 0 | 0, 0 | 0) | 0), wasm2js_i32$4 = btAlignedObjectArray_btCollisionObject____size_28_29_20const($7 + 44 | 0 | 0) | 0), wasm2js_i32$3 = HEAP32[($6 + 12 | 0) >> 2] | 0), wasm2js_i32$2 = HEAP32[($6 + 16 | 0) >> 2] | 0), wasm2js_i32$1 = HEAP32[($6 + 32 | 0) >> 2] | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$166 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$6 | 0, wasm2js_i32$5 | 0, wasm2js_i32$4 | 0, wasm2js_i32$3 | 0, wasm2js_i32$2 | 0, wasm2js_i32$1 | 0); + } + label$15 : { + if (!(HEAP32[($6 + 16 | 0) >> 2] | 0)) { + break label$15 + } + HEAP32[($6 + 40 | 0) >> 2] = HEAP32[($6 + 36 | 0) >> 2] | 0; + } + HEAP32[($6 + 4 | 0) >> 2] = 0; + btAlignedObjectArray_btCollisionObject____resize_28int_2c_20btCollisionObject__20const__29($7 + 44 | 0 | 0, 0 | 0, $6 + 4 | 0 | 0); + HEAP32[($6 + 68 | 0) >> 2] = HEAP32[($6 + 72 | 0) >> 2] | 0; + continue label$4; + }; + } + } + CProfileSample___CProfileSample_28_29($6 + 63 | 0 | 0) | 0; + __stack_pointer = $6 + 96 | 0; + return; + } + + function void_20btAlignedObjectArray_btPersistentManifold____quickSort_btPersistentManifoldSortPredicate__28btPersistentManifoldSortPredicate_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btPersistentManifold____size_28_29_20const($5 | 0) | 0 | 0) > (1 | 0) & 1 | 0)) { + break label$1 + } + void_20btAlignedObjectArray_btPersistentManifold____quickSortInternal_btPersistentManifoldSortPredicate__28btPersistentManifoldSortPredicate_20const__2c_20int_2c_20int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 0 | 0, (btAlignedObjectArray_btPersistentManifold____size_28_29_20const($5 | 0) | 0) - 1 | 0 | 0); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function getIslandId_28btPersistentManifold_20const__29($0) { + $0 = $0 | 0; + var $3 = 0, $18 = 0, $22 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btPersistentManifold__getBody0_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btPersistentManifold__getBody1_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((btCollisionObject__getIslandTag_28_29_20const(HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$2 + } + $18 = btCollisionObject__getIslandTag_28_29_20const(HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) | 0; + break label$1; + } + $18 = btCollisionObject__getIslandTag_28_29_20const(HEAP32[$3 >> 2] | 0 | 0) | 0; + } + HEAP32[($3 + 8 | 0) >> 2] = $18; + $22 = HEAP32[($3 + 8 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $22 | 0; + } + + function void_20btAlignedObjectArray_btPersistentManifold____quickSortInternal_btPersistentManifoldSortPredicate__28btPersistentManifoldSortPredicate_20const__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 20 | 0) >> 2] | 0; + HEAP32[($6 + 8 | 0) >> 2] = HEAP32[($6 + 16 | 0) >> 2] | 0; + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[((HEAP32[($7 + 12 | 0) >> 2] | 0) + ((((HEAP32[($6 + 20 | 0) >> 2] | 0) + (HEAP32[($6 + 16 | 0) >> 2] | 0) | 0 | 0) / (2 | 0) | 0) << 2 | 0) | 0) >> 2] | 0; + label$1 : while (1) { + label$2 : { + label$3 : while (1) { + if (!((btPersistentManifoldSortPredicate__operator_28_29_28btPersistentManifold_20const__2c_20btPersistentManifold_20const__29_20const(HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0, HEAP32[($6 + 4 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + label$4 : { + label$5 : while (1) { + if (!((btPersistentManifoldSortPredicate__operator_28_29_28btPersistentManifold_20const__2c_20btPersistentManifold_20const__29_20const(HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6 + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($6 + 8 | 0) >> 2] = (HEAP32[($6 + 8 | 0) >> 2] | 0) + -1 | 0; + continue label$5; + }; + } + label$6 : { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) <= (HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + btAlignedObjectArray_btPersistentManifold____swap_28int_2c_20int_29($7 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0); + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($6 + 8 | 0) >> 2] = (HEAP32[($6 + 8 | 0) >> 2] | 0) + -1 | 0; + } + if ((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) <= (HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) & 1 | 0) { + continue label$1 + } + break label$1; + }; + label$7 : { + if (!((HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$7 + } + void_20btAlignedObjectArray_btPersistentManifold____quickSortInternal_btPersistentManifoldSortPredicate__28btPersistentManifoldSortPredicate_20const__2c_20int_2c_20int_29($7 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0); + } + label$8 : { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + void_20btAlignedObjectArray_btPersistentManifold____quickSortInternal_btPersistentManifoldSortPredicate__28btPersistentManifoldSortPredicate_20const__2c_20int_2c_20int_29($7 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0); + } + __stack_pointer = $6 + 32 | 0; + return; + } + + function btPersistentManifoldSortPredicate__operator_28_29_28btPersistentManifold_20const__2c_20btPersistentManifold_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $14 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $14 = (getIslandId_28btPersistentManifold_20const__29(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) < (getIslandId_28btPersistentManifold_20const__29(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0; + __stack_pointer = $5 + 16 | 0; + return $14 | 0; + } + + function _GLOBAL__sub_I_btSimulationIslandManager_cpp() { + __cxx_global_var_init_76(); + return; + } + + function __cxx_global_var_init_77() { + btInfMaskConverter__btInfMaskConverter_28int_29(116140 | 0, 2139095040 | 0) | 0; + return; + } + + function __cxx_global_var_init_2_2() { + var $2 = 0; + $2 = __stack_pointer - 16 | 0; + __stack_pointer = $2; + HEAPF32[($2 + 12 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($2 + 8 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($2 + 4 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29(116144 | 0, $2 + 12 | 0 | 0, $2 + 8 | 0 | 0, $2 + 4 | 0 | 0) | 0; + __stack_pointer = $2 + 16 | 0; + return; + } + + function fabs_5babi_v160004_5d_28float_29($0) { + $0 = Math_fround($0); + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAPF32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(Math_abs(Math_fround(HEAPF32[($3 + 12 | 0) >> 2])))); + } + + function btConeTwistConstraint__GetPointForAngle_28float_2c_20float_29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = Math_fround($3); + var $6 = 0, $7 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 112 | 0; + __stack_pointer = $6; + HEAP32[($6 + 108 | 0) >> 2] = $1; + HEAPF32[($6 + 104 | 0) >> 2] = $2; + HEAPF32[($6 + 100 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 108 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btCos_28float_29(Math_fround(Math_fround(HEAPF32[($6 + 104 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 96 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btSin_28float_29(Math_fround(Math_fround(HEAPF32[($6 + 104 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 92 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($6 + 88 | 0) >> 2] = Math_fround(HEAPF32[($7 + 444 | 0) >> 2]); + label$1 : { + if (!(Math_fround(fabs_5babi_v160004_5d_28float_29(Math_fround(Math_fround(HEAPF32[($6 + 96 | 0) >> 2])))) > Math_fround(1.1920928955078125e-07) & 1 | 0)) { + break label$1 + } + HEAPF32[($6 + 84 | 0) >> 2] = Math_fround(Math_fround(Math_fround(HEAPF32[($6 + 92 | 0) >> 2]) * Math_fround(HEAPF32[($6 + 92 | 0) >> 2])) / Math_fround(Math_fround(HEAPF32[($6 + 96 | 0) >> 2]) * Math_fround(HEAPF32[($6 + 96 | 0) >> 2]))); + HEAPF32[($6 + 80 | 0) >> 2] = Math_fround(Math_fround(1.0) / Math_fround(Math_fround(HEAPF32[($7 + 448 | 0) >> 2]) * Math_fround(HEAPF32[($7 + 448 | 0) >> 2]))); + HEAPF32[($6 + 80 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($6 + 80 | 0) >> 2]) + Math_fround(Math_fround(HEAPF32[($6 + 84 | 0) >> 2]) / Math_fround(Math_fround(HEAPF32[($7 + 444 | 0) >> 2]) * Math_fround(HEAPF32[($7 + 444 | 0) >> 2])))); + HEAPF32[($6 + 76 | 0) >> 2] = Math_fround(Math_fround(Math_fround(1.0) + Math_fround(HEAPF32[($6 + 84 | 0) >> 2])) / Math_fround(HEAPF32[($6 + 80 | 0) >> 2])); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(sqrt_5babi_v160004_5d_28float_29(Math_fround(Math_fround(HEAPF32[($6 + 76 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 88 | 0) >> 2] = wasm2js_f32$0; + } + HEAPF32[($6 + 56 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 52 | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[($6 + 92 | 0) >> 2])); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 60 | 0 | 0, $6 + 56 | 0 | 0, $6 + 96 | 0 | 0, $6 + 52 | 0 | 0) | 0; + btQuaternion__btQuaternion_28btVector3_20const__2c_20float_20const__29($6 + 36 | 0 | 0, $6 + 60 | 0 | 0, $6 + 88 | 0 | 0) | 0; + HEAPF32[($6 + 16 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 12 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 20 | 0 | 0, $6 + 100 | 0 | 0, $6 + 16 | 0 | 0, $6 + 12 | 0 | 0) | 0; + quatRotate_28btQuaternion_20const__2c_20btVector3_20const__29($0 | 0, $6 + 36 | 0 | 0, $6 + 20 | 0 | 0); + __stack_pointer = $6 + 112 | 0; + return; + } + + function _GLOBAL__sub_I_btConeTwistConstraint_cpp() { + __cxx_global_var_init_77(); + __cxx_global_var_init_2_2(); + return; + } + + function __cxx_global_var_init_78() { + btInfMaskConverter__btInfMaskConverter_28int_29(116160 | 0, 2139095040 | 0) | 0; + return; + } + + function btGeneric6DofConstraint__getAngle_28int_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $13 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $13 = Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const((HEAP32[($4 + 12 | 0) >> 2] | 0) + 1192 | 0 | 0) | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + __stack_pointer = $4 + 16 | 0; + return Math_fround($13); + } + + function _GLOBAL__sub_I_btGeneric6DofConstraint_cpp() { + __cxx_global_var_init_78(); + return; + } + + function __cxx_global_var_init_79() { + btInfMaskConverter__btInfMaskConverter_28int_29(116164 | 0, 2139095040 | 0) | 0; + return; + } + + function btDiscreteDynamicsWorld__btDiscreteDynamicsWorld_28btDispatcher__2c_20btBroadphaseInterface__2c_20btConstraintSolver__2c_20btCollisionConfiguration__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0, $65 = 0, $71 = 0, $76 = 0, $80 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $7 = __stack_pointer - 48 | 0; + __stack_pointer = $7; + HEAP32[($7 + 40 | 0) >> 2] = $0; + HEAP32[($7 + 36 | 0) >> 2] = $1; + HEAP32[($7 + 32 | 0) >> 2] = $2; + HEAP32[($7 + 28 | 0) >> 2] = $3; + HEAP32[($7 + 24 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 40 | 0) >> 2] | 0; + HEAP32[($7 + 44 | 0) >> 2] = $8; + btDynamicsWorld__btDynamicsWorld_28btDispatcher__2c_20btBroadphaseInterface__2c_20btCollisionConfiguration__29($8 | 0, HEAP32[($7 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7 + 24 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$8 >> 2] = 102792 + 8 | 0; + btAlignedObjectArray_btTypedConstraint____btAlignedObjectArray_28_29($8 + 192 | 0 | 0) | 0; + HEAP32[($8 + 212 | 0) >> 2] = 0; + HEAP32[($8 + 216 | 0) >> 2] = HEAP32[($7 + 28 | 0) >> 2] | 0; + btAlignedObjectArray_btTypedConstraint____btAlignedObjectArray_28_29($8 + 224 | 0 | 0) | 0; + btAlignedObjectArray_btRigidBody____btAlignedObjectArray_28_29($8 + 244 | 0 | 0) | 0; + HEAPF32[($7 + 20 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($7 + 16 | 0) >> 2] = Math_fround(-10.0); + HEAPF32[($7 + 12 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($8 + 264 | 0 | 0, $7 + 20 | 0 | 0, $7 + 16 | 0 | 0, $7 + 12 | 0 | 0) | 0; + HEAPF32[($8 + 280 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($8 + 284 | 0) >> 2] = Math_fround(0 | 0); + HEAP8[($8 + 290 | 0) >> 0] = 0; + HEAP8[($8 + 291 | 0) >> 0] = 0; + btAlignedObjectArray_btActionInterface____btAlignedObjectArray_28_29($8 + 292 | 0 | 0) | 0; + HEAP32[($8 + 312 | 0) >> 2] = 0; + HEAP8[($8 + 316 | 0) >> 0] = 1; + btAlignedObjectArray_btPersistentManifold____btAlignedObjectArray_28_29($8 + 320 | 0 | 0) | 0; + btSpinMutex__btSpinMutex_28_29($8 + 340 | 0 | 0) | 0; + label$1 : { + label$2 : { + if ((HEAP32[($8 + 216 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$2 + } + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(236 | 0, 16 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + $65 = btSequentialImpulseConstraintSolver__operator_20new_28unsigned_20long_2c_20void__29(236 | 0, HEAP32[($7 + 8 | 0) >> 2] | 0 | 0) | 0; + btSequentialImpulseConstraintSolver__btSequentialImpulseConstraintSolver_28_29($65 | 0) | 0; + HEAP32[($8 + 216 | 0) >> 2] = $65; + HEAP8[($8 + 289 | 0) >> 0] = 1; + break label$1; + } + HEAP8[($8 + 289 | 0) >> 0] = 0; + } + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(68 | 0, 16 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + $71 = HEAP32[($7 + 4 | 0) >> 2] | 0; + btSimulationIslandManager__btSimulationIslandManager_28_29($71 | 0) | 0; + HEAP32[($8 + 220 | 0) >> 2] = $71; + HEAP8[($8 + 288 | 0) >> 0] = 1; + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29(88 | 0, 16 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $76 = HEAP32[$7 >> 2] | 0; + InplaceSolverIslandCallback__InplaceSolverIslandCallback_28btConstraintSolver__2c_20btStackAlloc__2c_20btDispatcher__29($76 | 0, HEAP32[($8 + 216 | 0) >> 2] | 0 | 0, 0 | 0, HEAP32[($7 + 36 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($8 + 212 | 0) >> 2] = $76; + $80 = HEAP32[($7 + 44 | 0) >> 2] | 0; + __stack_pointer = $7 + 48 | 0; + return $80 | 0; + } + + function btDynamicsWorld__btDynamicsWorld_28btDispatcher__2c_20btBroadphaseInterface__2c_20btCollisionConfiguration__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btCollisionWorld__btCollisionWorld_28btDispatcher__2c_20btBroadphaseInterface__2c_20btCollisionConfiguration__29($7 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6 >> 2] | 0 | 0) | 0; + HEAP32[$7 >> 2] = 103056 + 8 | 0; + HEAP32[($7 + 80 | 0) >> 2] = 0; + HEAP32[($7 + 84 | 0) >> 2] = 0; + HEAP32[($7 + 88 | 0) >> 2] = 0; + btContactSolverInfo__btContactSolverInfo_28_29($7 + 92 | 0 | 0) | 0; + __stack_pointer = $6 + 16 | 0; + return $7 | 0; + } + + function btAlignedObjectArray_btRigidBody____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btRigidBody__2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btRigidBody____init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btActionInterface____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedAllocator_btActionInterface__2c_2016u___btAlignedAllocator_28_29($4 | 0) | 0; + btAlignedObjectArray_btActionInterface____init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btSequentialImpulseConstraintSolver__operator_20new_28unsigned_20long_2c_20void__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return HEAP32[($4 + 8 | 0) >> 2] | 0 | 0; + } + + function InplaceSolverIslandCallback__InplaceSolverIslandCallback_28btConstraintSolver__2c_20btStackAlloc__2c_20btDispatcher__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $7 = 0, $6 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btSimulationIslandManager__IslandCallback__IslandCallback_28_29($7 | 0) | 0; + HEAP32[$7 >> 2] = 103204 + 8 | 0; + HEAP32[($7 + 4 | 0) >> 2] = 0; + HEAP32[($7 + 8 | 0) >> 2] = HEAP32[($6 + 8 | 0) >> 2] | 0; + HEAP32[($7 + 12 | 0) >> 2] = 0; + HEAP32[($7 + 16 | 0) >> 2] = 0; + HEAP32[($7 + 20 | 0) >> 2] = 0; + HEAP32[($7 + 24 | 0) >> 2] = HEAP32[$6 >> 2] | 0; + btAlignedObjectArray_btCollisionObject____btAlignedObjectArray_28_29($7 + 28 | 0 | 0) | 0; + btAlignedObjectArray_btPersistentManifold____btAlignedObjectArray_28_29($7 + 48 | 0 | 0) | 0; + btAlignedObjectArray_btTypedConstraint____btAlignedObjectArray_28_29($7 + 68 | 0 | 0) | 0; + __stack_pointer = $6 + 16 | 0; + return $7 | 0; + } + + function btContactSolverInfo__btContactSolverInfo_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAPF32[$4 >> 2] = Math_fround(.6000000238418579); + HEAPF32[($4 + 4 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($4 + 8 | 0) >> 2] = Math_fround(.30000001192092896); + HEAPF32[($4 + 12 | 0) >> 2] = Math_fround(.01666666753590107); + HEAPF32[($4 + 16 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 24 | 0) >> 2] = Math_fround(20.0); + HEAP32[($4 + 20 | 0) >> 2] = 10; + HEAPF32[($4 + 32 | 0) >> 2] = Math_fround(.20000000298023224); + HEAPF32[($4 + 36 | 0) >> 2] = Math_fround(.20000000298023224); + HEAPF32[($4 + 40 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 44 | 0) >> 2] = Math_fround(.20000000298023224); + HEAPF32[($4 + 48 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 28 | 0) >> 2] = Math_fround(1.0); + HEAP32[($4 + 52 | 0) >> 2] = 1; + HEAPF32[($4 + 56 | 0) >> 2] = Math_fround(-.03999999910593033); + HEAPF32[($4 + 60 | 0) >> 2] = Math_fround(.10000000149011612); + HEAPF32[($4 + 64 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 68 | 0) >> 2] = Math_fround(.8500000238418579); + HEAP32[($4 + 72 | 0) >> 2] = 260; + HEAP32[($4 + 76 | 0) >> 2] = 2; + HEAP32[($4 + 80 | 0) >> 2] = 128; + HEAPF32[($4 + 84 | 0) >> 2] = Math_fround(100.0); + HEAPF32[($4 + 88 | 0) >> 2] = Math_fround(1000000015047466219876688.0e6); + HEAPF32[($4 + 92 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 96 | 0) >> 2] = Math_fround(.20000000298023224); + return $4 | 0; + } + + function btAlignedAllocator_btRigidBody__2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btRigidBody____init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btAlignedAllocator_btActionInterface__2c_2016u___btAlignedAllocator_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btActionInterface____init_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP8[($4 + 16 | 0) >> 0] = 1; + HEAP32[($4 + 12 | 0) >> 2] = 0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 0; + return; + } + + function btSimulationIslandManager__IslandCallback__IslandCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 103320 + 8 | 0; + return $4 | 0; + } + + function btDiscreteDynamicsWorld___btDiscreteDynamicsWorld_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0, $11 = 0, $22 = 0, $29 = 0, $43 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $4; + HEAP32[$4 >> 2] = 102792 + 8 | 0; + label$1 : { + if (!((HEAPU8[($4 + 288 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + $11 = HEAP32[($4 + 220 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$11 >> 2] | 0) >> 2] | 0 | 0]($11) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 220 | 0) >> 2] | 0 | 0); + } + label$2 : { + if (!((HEAP32[($4 + 212 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + $22 = HEAP32[($4 + 212 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$22 >> 2] | 0) >> 2] | 0 | 0]($22) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 212 | 0) >> 2] | 0 | 0); + } + label$3 : { + if (!((HEAPU8[($4 + 289 | 0) >> 0] | 0) & 1 | 0)) { + break label$3 + } + $29 = HEAP32[($4 + 216 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$29 >> 2] | 0) >> 2] | 0 | 0]($29) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 216 | 0) >> 2] | 0 | 0); + } + btAlignedObjectArray_btPersistentManifold_____btAlignedObjectArray_28_29($4 + 320 | 0 | 0) | 0; + btAlignedObjectArray_btActionInterface_____btAlignedObjectArray_28_29($4 + 292 | 0 | 0) | 0; + btAlignedObjectArray_btRigidBody_____btAlignedObjectArray_28_29($4 + 244 | 0 | 0) | 0; + btAlignedObjectArray_btTypedConstraint_____btAlignedObjectArray_28_29($4 + 224 | 0 | 0) | 0; + btAlignedObjectArray_btTypedConstraint_____btAlignedObjectArray_28_29($4 + 192 | 0 | 0) | 0; + btDynamicsWorld___btDynamicsWorld_28_29($4 | 0) | 0; + $43 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $43 | 0; + } + + function btAlignedObjectArray_btActionInterface_____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btActionInterface____clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btRigidBody_____btAlignedObjectArray_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btRigidBody____clear_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btDynamicsWorld___btDynamicsWorld_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionWorld___btCollisionWorld_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btAlignedObjectArray_btActionInterface____clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btActionInterface____destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btActionInterface____size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btActionInterface____deallocate_28_29($4 | 0); + btAlignedObjectArray_btActionInterface____init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btRigidBody____clear_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btRigidBody____destroy_28int_2c_20int_29($4 | 0, 0 | 0, btAlignedObjectArray_btRigidBody____size_28_29_20const($4 | 0) | 0 | 0); + btAlignedObjectArray_btRigidBody____deallocate_28_29($4 | 0); + btAlignedObjectArray_btRigidBody____init_28_29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btDiscreteDynamicsWorld___btDiscreteDynamicsWorld_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[1114 | 0]($4) | 0; + btDiscreteDynamicsWorld__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btDiscreteDynamicsWorld__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btDiscreteDynamicsWorld__saveKinematicState_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAPF32[($4 + 24 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + HEAP32[($4 + 20 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 20 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btCollisionObject____size_28_29_20const($5 + 4 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btCollisionObject____operator_5b_5d_28int_29($5 + 4 | 0 | 0, HEAP32[($4 + 20 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btRigidBody__upcast_28btCollisionObject__29(HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + label$3 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + if (!((btCollisionObject__getActivationState_28_29_20const(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0 | 0) != (2 | 0) & 1 | 0)) { + break label$3 + } + label$4 : { + if (!((btCollisionObject__isKinematicObject_28_29_20const(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$4 + } + btRigidBody__saveKinematicState_28float_29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 24 | 0) >> 2]))); + } + } + HEAP32[($4 + 20 | 0) >> 2] = (HEAP32[($4 + 20 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $4 + 32 | 0; + return; + } + + function btDiscreteDynamicsWorld__debugDrawWorld_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0, $21 = 0, $65 = 0, $82 = 0, $100 = 0, $118 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $3 = __stack_pointer - 32 | 0; + __stack_pointer = $3; + HEAP32[($3 + 28 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 28 | 0) >> 2] | 0; + CProfileSample__CProfileSample_28char_20const__29($3 + 27 | 0 | 0, 82255 | 0) | 0; + btCollisionWorld__debugDrawWorld_28_29($4 | 0); + HEAP8[($3 + 26 | 0) >> 0] = 0; + label$1 : { + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($4) | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + $21 = FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($4) | 0; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$21 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($21) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + label$2 : { + if (!((HEAP32[($3 + 20 | 0) >> 2] | 0) & 6144 | 0)) { + break label$2 + } + HEAP8[($3 + 26 | 0) >> 0] = 1; + } + } + label$3 : { + if (!((HEAPU8[($3 + 26 | 0) >> 0] | 0) & 1 | 0)) { + break label$3 + } + (wasm2js_i32$0 = $3, wasm2js_i32$1 = (FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 104 | 0) >> 2] | 0 | 0]($4) | 0) - 1 | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($3 + 16 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$4 + } + (wasm2js_i32$0 = $3, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 108 | 0) >> 2] | 0 | 0]($4, HEAP32[($3 + 16 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 172 | 0) >> 2] | 0 | 0]($4, HEAP32[($3 + 12 | 0) >> 2] | 0); + HEAP32[($3 + 16 | 0) >> 2] = (HEAP32[($3 + 16 | 0) >> 2] | 0) + -1 | 0; + continue label$5; + }; + } + } + label$6 : { + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($4) | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $65 = FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($4) | 0; + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$65 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($65) | 0) & 16387 | 0)) { + break label$6 + } + label$7 : { + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($4) | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + $82 = FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($4) | 0; + if (!(FUNCTION_TABLE[HEAP32[((HEAP32[$82 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($82) | 0)) { + break label$7 + } + HEAP32[($3 + 8 | 0) >> 2] = 0; + label$8 : { + label$9 : while (1) { + if (!((HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btActionInterface____size_28_29_20const($4 + 292 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$8 + } + $100 = HEAP32[(btAlignedObjectArray_btActionInterface____operator_5b_5d_28int_29($4 + 292 | 0 | 0, HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$100 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($100, HEAP32[($4 + 72 | 0) >> 2] | 0); + HEAP32[($3 + 8 | 0) >> 2] = (HEAP32[($3 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$9; + }; + } + } + } + label$10 : { + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($4) | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$10 + } + $118 = FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($4) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$118 >> 2] | 0) + 104 | 0) >> 2] | 0 | 0]($118); + } + CProfileSample___CProfileSample_28_29($3 + 27 | 0 | 0) | 0; + __stack_pointer = $3 + 32 | 0; + return; + } + + function btAlignedObjectArray_btActionInterface____size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btActionInterface____operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btActionInterface____size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 2 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btDiscreteDynamicsWorld__clearForces_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[($3 + 8 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btRigidBody____size_28_29_20const($4 + 244 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $3, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btRigidBody____operator_5b_5d_28int_29($4 + 244 | 0 | 0, HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btRigidBody__clearForces_28_29(HEAP32[($3 + 4 | 0) >> 2] | 0 | 0); + HEAP32[($3 + 8 | 0) >> 2] = (HEAP32[($3 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btDiscreteDynamicsWorld__applyGravity_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[($3 + 8 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btRigidBody____size_28_29_20const($4 + 244 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $3, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btRigidBody____operator_5b_5d_28int_29($4 + 244 | 0 | 0, HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$3 : { + if (!((btCollisionObject__isActive_28_29_20const(HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$3 + } + btRigidBody__applyGravity_28_29(HEAP32[($3 + 4 | 0) >> 2] | 0 | 0); + } + HEAP32[($3 + 8 | 0) >> 2] = (HEAP32[($3 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btDiscreteDynamicsWorld__synchronizeSingleMotionState_28btRigidBody__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $50 = Math_fround(0), $60 = 0, $33 = 0, $35 = 0, $37 = 0; + $4 = __stack_pointer - 80 | 0; + __stack_pointer = $4; + HEAP32[($4 + 76 | 0) >> 2] = $0; + HEAP32[($4 + 72 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 76 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 72 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(66059 | 0, 75653 | 0, 355 | 0, 81262 | 0); + wasm2js_trap(); + } + label$2 : { + if (!((btRigidBody__getMotionState_28_29(HEAP32[($4 + 72 | 0) >> 2] | 0 | 0) | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + if ((btCollisionObject__isStaticOrKinematicObject_28_29_20const(HEAP32[($4 + 72 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$2 + } + btTransform__btTransform_28_29($4 + 8 | 0 | 0) | 0; + $33 = btCollisionObject__getInterpolationWorldTransform_28_29(HEAP32[($4 + 72 | 0) >> 2] | 0 | 0) | 0; + $35 = btCollisionObject__getInterpolationLinearVelocity_28_29_20const(HEAP32[($4 + 72 | 0) >> 2] | 0 | 0) | 0; + $37 = btCollisionObject__getInterpolationAngularVelocity_28_29_20const(HEAP32[($4 + 72 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAPU8[($5 + 316 | 0) >> 0] | 0) & 1 | 0)) { + break label$4 + } + if (!(Math_fround(HEAPF32[($5 + 284 | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0)) { + break label$4 + } + $50 = Math_fround(Math_fround(HEAPF32[($5 + 280 | 0) >> 2]) - Math_fround(HEAPF32[($5 + 284 | 0) >> 2])); + break label$3; + } + $50 = Math_fround(Math_fround(HEAPF32[($5 + 280 | 0) >> 2]) * Math_fround(btCollisionObject__getHitFraction_28_29_20const(HEAP32[($4 + 72 | 0) >> 2] | 0 | 0))); + } + btTransformUtil__integrateTransform_28btTransform_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20btTransform__29($33 | 0, $35 | 0, $37 | 0, Math_fround($50), $4 + 8 | 0 | 0); + $60 = btRigidBody__getMotionState_28_29(HEAP32[($4 + 72 | 0) >> 2] | 0 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$60 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($60, $4 + 8 | 0); + } + __stack_pointer = $4 + 80 | 0; + return; + } + + function btCollisionObject__getInterpolationLinearVelocity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 132 | 0 | 0; + } + + function btCollisionObject__getInterpolationAngularVelocity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 148 | 0 | 0; + } + + function btDiscreteDynamicsWorld__synchronizeMotionStates_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $3 = __stack_pointer - 32 | 0; + __stack_pointer = $3; + HEAP32[($3 + 28 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 28 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($4 + 290 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($3 + 24 | 0) >> 2] = 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($3 + 24 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btCollisionObject____size_28_29_20const($4 + 4 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$3 + } + (wasm2js_i32$0 = $3, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btCollisionObject____operator_5b_5d_28int_29($4 + 4 | 0 | 0, HEAP32[($3 + 24 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btRigidBody__upcast_28btCollisionObject__29(HEAP32[($3 + 20 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$5 : { + if (!((HEAP32[($3 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + btDiscreteDynamicsWorld__synchronizeSingleMotionState_28btRigidBody__29($4 | 0, HEAP32[($3 + 16 | 0) >> 2] | 0 | 0); + } + HEAP32[($3 + 24 | 0) >> 2] = (HEAP32[($3 + 24 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + break label$1; + } + HEAP32[($3 + 12 | 0) >> 2] = 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btRigidBody____size_28_29_20const($4 + 244 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$6 + } + (wasm2js_i32$0 = $3, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btRigidBody____operator_5b_5d_28int_29($4 + 244 | 0 | 0, HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + label$8 : { + if (!((btCollisionObject__isActive_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$8 + } + btDiscreteDynamicsWorld__synchronizeSingleMotionState_28btRigidBody__29($4 | 0, HEAP32[($3 + 8 | 0) >> 2] | 0 | 0); + } + HEAP32[($3 + 12 | 0) >> 2] = (HEAP32[($3 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + __stack_pointer = $3 + 32 | 0; + return; + } + + function btDiscreteDynamicsWorld__stepSimulation_28float_2c_20int_2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = Math_fround($1); + $2 = $2 | 0; + $3 = Math_fround($3); + var $6 = 0, $7 = 0, $22 = Math_fround(0), $28 = 0, $44 = Math_fround(0), $69 = 0, $91 = 0, $122 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAPF32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAPF32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + btDiscreteDynamicsWorld__startProfiling_28float_29($7 | 0, Math_fround(Math_fround(HEAPF32[($6 + 24 | 0) >> 2]))); + HEAP32[($6 + 12 | 0) >> 2] = 0; + label$1 : { + label$2 : { + if (!(HEAP32[($6 + 20 | 0) >> 2] | 0)) { + break label$2 + } + HEAPF32[($7 + 284 | 0) >> 2] = Math_fround(HEAPF32[($6 + 16 | 0) >> 2]); + HEAPF32[($7 + 280 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($7 + 280 | 0) >> 2]) + Math_fround(HEAPF32[($6 + 24 | 0) >> 2])); + label$3 : { + if (!(Math_fround(HEAPF32[($7 + 280 | 0) >> 2]) >= Math_fround(HEAPF32[($6 + 16 | 0) >> 2]) & 1 | 0)) { + break label$3 + } + $22 = Math_fround(Math_fround(HEAPF32[($7 + 280 | 0) >> 2]) / Math_fround(HEAPF32[($6 + 16 | 0) >> 2])); + label$4 : { + label$5 : { + if (!(Math_fround(Math_abs($22)) < Math_fround(2147483648.0))) { + break label$5 + } + $28 = ~~$22; + break label$4; + } + $28 = -2147483648; + } + HEAP32[($6 + 12 | 0) >> 2] = $28; + HEAPF32[($7 + 280 | 0) >> 2] = Math_fround(Math_fround(Math_fround(-Math_fround(HEAP32[($6 + 12 | 0) >> 2] | 0 | 0)) * Math_fround(HEAPF32[($6 + 16 | 0) >> 2])) + Math_fround(HEAPF32[($7 + 280 | 0) >> 2])); + } + break label$1; + } + HEAPF32[($6 + 16 | 0) >> 2] = Math_fround(HEAPF32[($6 + 24 | 0) >> 2]); + label$6 : { + label$7 : { + if (!((HEAPU8[($7 + 316 | 0) >> 0] | 0) & 1 | 0)) { + break label$7 + } + $44 = Math_fround(0 | 0); + break label$6; + } + $44 = Math_fround(HEAPF32[($6 + 24 | 0) >> 2]); + } + HEAPF32[($7 + 280 | 0) >> 2] = $44; + HEAPF32[($7 + 284 | 0) >> 2] = Math_fround(0 | 0); + label$8 : { + label$9 : { + if (!((btFuzzyZero_28float_29(Math_fround(Math_fround(HEAPF32[($6 + 24 | 0) >> 2]))) | 0) & 1 | 0)) { + break label$9 + } + HEAP32[($6 + 12 | 0) >> 2] = 0; + HEAP32[($6 + 20 | 0) >> 2] = 0; + break label$8; + } + HEAP32[($6 + 12 | 0) >> 2] = 1; + HEAP32[($6 + 20 | 0) >> 2] = 1; + } + } + label$10 : { + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($7) | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$10 + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($7) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + $69 = HEAP32[($6 + 8 | 0) >> 2] | 0; + (wasm2js_i32$0 = 0, wasm2js_i32$1 = ((FUNCTION_TABLE[HEAP32[((HEAP32[$69 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($69) | 0) & 16 | 0 | 0) != (0 | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 116124 | 0) >> 0] = wasm2js_i32$1; + } + label$11 : { + label$12 : { + if (!(HEAP32[($6 + 12 | 0) >> 2] | 0)) { + break label$12 + } + label$13 : { + label$14 : { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) > (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$14 + } + $91 = HEAP32[($6 + 20 | 0) >> 2] | 0; + break label$13; + } + $91 = HEAP32[($6 + 12 | 0) >> 2] | 0; + } + HEAP32[($6 + 4 | 0) >> 2] = $91; + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 168 | 0) >> 2] | 0 | 0]($7, Math_fround(Math_fround(HEAPF32[($6 + 16 | 0) >> 2]) * Math_fround(HEAP32[($6 + 4 | 0) >> 2] | 0 | 0))); + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 176 | 0) >> 2] | 0 | 0]($7); + HEAP32[$6 >> 2] = 0; + label$15 : { + label$16 : while (1) { + if (!((HEAP32[$6 >> 2] | 0 | 0) < (HEAP32[($6 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$15 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 160 | 0) >> 2] | 0 | 0]($7, Math_fround(HEAPF32[($6 + 16 | 0) >> 2])); + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 80 | 0) >> 2] | 0 | 0]($7); + HEAP32[$6 >> 2] = (HEAP32[$6 >> 2] | 0) + 1 | 0; + continue label$16; + }; + } + break label$11; + } + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 80 | 0) >> 2] | 0 | 0]($7); + } + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 120 | 0) >> 2] | 0 | 0]($7); + $122 = HEAP32[($6 + 12 | 0) >> 2] | 0; + __stack_pointer = $6 + 32 | 0; + return $122 | 0; + } + + function btDiscreteDynamicsWorld__startProfiling_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + return; + } + + function btFuzzyZero_28float_29($0) { + $0 = Math_fround($0); + var $3 = 0, $9 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAPF32[($3 + 12 | 0) >> 2] = $0; + $9 = Math_fround(btFabs_28float_29(Math_fround(Math_fround(HEAPF32[($3 + 12 | 0) >> 2])))) < Math_fround(1.1920928955078125e-07) & 1 | 0; + __stack_pointer = $3 + 16 | 0; + return $9 | 0; + } + + function btDiscreteDynamicsWorld__internalSingleStepSimulation_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $5 = 0, $4 = 0, $29 = 0, $38 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$2 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + CProfileSample__CProfileSample_28char_20const__29($4 + 7 | 0 | 0, 76760 | 0) | 0; + label$1 : { + if (!((0 | 0) != (HEAP32[($5 + 84 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + FUNCTION_TABLE[HEAP32[($5 + 84 | 0) >> 2] | 0 | 0]($5, Math_fround(HEAPF32[($4 + 8 | 0) >> 2])); + } + FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 140 | 0) >> 2] | 0 | 0]($5, Math_fround(HEAPF32[($4 + 8 | 0) >> 2])); + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btCollisionWorld__getDispatchInfo_28_29($5 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAPF32[(HEAP32[$4 >> 2] | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + HEAP32[((HEAP32[$4 >> 2] | 0) + 4 | 0) >> 2] = 0; + $29 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + HEAP32[((HEAP32[$4 >> 2] | 0) + 20 | 0) >> 2] = $29; + FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 164 | 0) >> 2] | 0 | 0]($5, Math_fround(HEAPF32[($4 + 8 | 0) >> 2])); + FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 44 | 0) >> 2] | 0 | 0]($5); + FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 148 | 0) >> 2] | 0 | 0]($5); + $38 = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + (wasm2js_i32$0 = btDynamicsWorld__getSolverInfo_28_29($5 | 0) | 0, wasm2js_f32$0 = $38), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + ((wasm2js_i32$1 = $5, wasm2js_i32$2 = btDynamicsWorld__getSolverInfo_28_29($5 | 0) | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$5 >> 2] | 0) + 152 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0); + FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 144 | 0) >> 2] | 0 | 0]($5, Math_fround(HEAPF32[($4 + 8 | 0) >> 2])); + btDiscreteDynamicsWorld__updateActions_28float_29($5 | 0, Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))); + FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 156 | 0) >> 2] | 0 | 0]($5, Math_fround(HEAPF32[($4 + 8 | 0) >> 2])); + label$2 : { + if (!((0 | 0) != (HEAP32[($5 + 80 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + FUNCTION_TABLE[HEAP32[($5 + 80 | 0) >> 2] | 0 | 0]($5, Math_fround(HEAPF32[($4 + 8 | 0) >> 2])); + } + CProfileSample___CProfileSample_28_29($4 + 7 | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btDiscreteDynamicsWorld__updateActions_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0, $5 = 0, $24 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + CProfileSample__CProfileSample_28char_20const__29($4 + 7 | 0 | 0, 69678 | 0) | 0; + HEAP32[$4 >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$4 >> 2] | 0 | 0) < (btAlignedObjectArray_btActionInterface____size_28_29_20const($5 + 292 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + $24 = HEAP32[(btAlignedObjectArray_btActionInterface____operator_5b_5d_28int_29($5 + 292 | 0 | 0, HEAP32[$4 >> 2] | 0 | 0) | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$24 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($24, $5, Math_fround(HEAPF32[($4 + 8 | 0) >> 2])); + HEAP32[$4 >> 2] = (HEAP32[$4 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + CProfileSample___CProfileSample_28_29($4 + 7 | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btDiscreteDynamicsWorld__setGravity_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5 = 0, $8 = 0, $10 = 0, $63 = 0, $73 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + $8 = $5 + 264 | 0; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $63 = i64toi32_i32$0; + i64toi32_i32$0 = $8; + HEAP32[i64toi32_i32$0 >> 2] = $63; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $10 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $10 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $73 = i64toi32_i32$1; + i64toi32_i32$1 = $8 + $10 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $73; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4 + 4 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btRigidBody____size_28_29_20const($5 + 244 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btRigidBody____operator_5b_5d_28int_29($5 + 244 | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + label$3 : { + if (!((btCollisionObject__isActive_28_29_20const(HEAP32[$4 >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$3 + } + if ((btRigidBody__getFlags_28_29_20const(HEAP32[$4 >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$3 + } + btRigidBody__setGravity_28btVector3_20const__29(HEAP32[$4 >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btDiscreteDynamicsWorld__getGravity_28_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, $9 = 0, $27 = 0, $37 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $1; + i64toi32_i32$2 = (HEAP32[($4 + 12 | 0) >> 2] | 0) + 264 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $27 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $27; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $9 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $9 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $37 = i64toi32_i32$1; + i64toi32_i32$1 = $0 + $9 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $37; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function btDiscreteDynamicsWorld__addCollisionObject_28btCollisionObject__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + btCollisionWorld__addCollisionObject_28btCollisionObject__2c_20int_2c_20int_29(HEAP32[($6 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6 >> 2] | 0 | 0); + __stack_pointer = $6 + 16 | 0; + return; + } + + function btDiscreteDynamicsWorld__removeCollisionObject_28btCollisionObject__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btRigidBody__upcast_28btCollisionObject__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 92 | 0) >> 2] | 0 | 0]($5, HEAP32[($4 + 4 | 0) >> 2] | 0); + break label$1; + } + btCollisionWorld__removeCollisionObject_28btCollisionObject__29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btDiscreteDynamicsWorld__removeRigidBody_28btRigidBody__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + btAlignedObjectArray_btRigidBody____remove_28btRigidBody__20const__29($5 + 244 | 0 | 0, $4 + 8 | 0 | 0); + btCollisionWorld__removeCollisionObject_28btCollisionObject__29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btRigidBody____remove_28btRigidBody__20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btRigidBody____findLinearSearch_28btRigidBody__20const__29_20const($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btRigidBody____removeAtIndex_28int_29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btRigidBody____findLinearSearch_28btRigidBody__20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btRigidBody____size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + HEAP32[$4 >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$4 >> 2] | 0 | 0) < (btAlignedObjectArray_btRigidBody____size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + label$3 : { + if (!((HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[$4 >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) == (HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[$4 >> 2] | 0; + break label$1; + } + HEAP32[$4 >> 2] = (HEAP32[$4 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + $32 = HEAP32[($4 + 4 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btAlignedObjectArray_btRigidBody____removeAtIndex_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btRigidBody____size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btRigidBody____swap_28int_2c_20int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, (btAlignedObjectArray_btRigidBody____size_28_29_20const($5 | 0) | 0) - 1 | 0 | 0); + btAlignedObjectArray_btRigidBody____pop_back_28_29($5 | 0); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btDiscreteDynamicsWorld__addRigidBody_28btRigidBody__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $41 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + label$1 : { + if ((btCollisionObject__isStaticOrKinematicObject_28_29_20const(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$1 + } + if ((btRigidBody__getFlags_28_29_20const(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$1 + } + btRigidBody__setGravity_28btVector3_20const__29(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0, $5 + 264 | 0 | 0); + } + label$2 : { + if (!((btRigidBody__getCollisionShape_28_29(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + label$3 : { + label$4 : { + if ((btCollisionObject__isStaticObject_28_29_20const(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$4 + } + btAlignedObjectArray_btRigidBody____push_back_28btRigidBody__20const__29($5 + 244 | 0 | 0, $4 + 24 | 0 | 0); + break label$3; + } + btCollisionObject__setActivationState_28int_29_20const(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0, 2 | 0); + } + $41 = 1; + label$5 : { + if ((btCollisionObject__isStaticObject_28_29_20const(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$5 + } + $41 = btCollisionObject__isKinematicObject_28_29_20const(HEAP32[($4 + 24 | 0) >> 2] | 0 | 0) | 0; + } + HEAP8[($4 + 23 | 0) >> 0] = ($41 ^ -1 | 0) & 1 | 0; + HEAP32[($4 + 16 | 0) >> 2] = (HEAPU8[($4 + 23 | 0) >> 0] | 0) & 1 | 0 ? 1 : 2; + HEAP32[($4 + 12 | 0) >> 2] = (HEAPU8[($4 + 23 | 0) >> 0] | 0) & 1 | 0 ? -1 : -3; + FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 36 | 0) >> 2] | 0 | 0]($5, HEAP32[($4 + 24 | 0) >> 2] | 0, HEAP32[($4 + 16 | 0) >> 2] | 0, HEAP32[($4 + 12 | 0) >> 2] | 0); + } + __stack_pointer = $4 + 32 | 0; + return; + } + + function btAlignedObjectArray_btRigidBody____push_back_28btRigidBody__20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btRigidBody____size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btRigidBody____capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btRigidBody____reserve_28int_29($5 | 0, btAlignedObjectArray_btRigidBody____allocSize_28int_29($5 | 0, btAlignedObjectArray_btRigidBody____size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btRigidBody____capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btRigidBody____allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btAlignedObjectArray_btRigidBody____reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btRigidBody____capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btRigidBody____allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btRigidBody____copy_28int_2c_20int_2c_20btRigidBody___29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btRigidBody____size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btRigidBody____destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btRigidBody____size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btRigidBody____deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btDiscreteDynamicsWorld__addRigidBody_28btRigidBody__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + label$1 : { + if ((btCollisionObject__isStaticOrKinematicObject_28_29_20const(HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$1 + } + if ((btRigidBody__getFlags_28_29_20const(HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$1 + } + btRigidBody__setGravity_28btVector3_20const__29(HEAP32[($6 + 8 | 0) >> 2] | 0 | 0, $7 + 264 | 0 | 0); + } + label$2 : { + if (!((btRigidBody__getCollisionShape_28_29(HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + label$3 : { + label$4 : { + if ((btCollisionObject__isStaticObject_28_29_20const(HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$4 + } + btAlignedObjectArray_btRigidBody____push_back_28btRigidBody__20const__29($7 + 244 | 0 | 0, $6 + 8 | 0 | 0); + break label$3; + } + btCollisionObject__setActivationState_28int_29_20const(HEAP32[($6 + 8 | 0) >> 2] | 0 | 0, 2 | 0); + } + FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 36 | 0) >> 2] | 0 | 0]($7, HEAP32[($6 + 8 | 0) >> 2] | 0, HEAP32[($6 + 4 | 0) >> 2] | 0, HEAP32[$6 >> 2] | 0); + } + __stack_pointer = $6 + 16 | 0; + return; + } + + function btDiscreteDynamicsWorld__updateActivationState_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0, $5 = 0, $62 = 0, $84 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 80 | 0; + __stack_pointer = $4; + HEAP32[($4 + 76 | 0) >> 2] = $0; + HEAPF32[($4 + 72 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 76 | 0) >> 2] | 0; + CProfileSample__CProfileSample_28char_20const__29($4 + 71 | 0 | 0, 81326 | 0) | 0; + HEAP32[($4 + 64 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 64 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btRigidBody____size_28_29_20const($5 + 244 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btRigidBody____operator_5b_5d_28int_29($5 + 244 | 0 | 0, HEAP32[($4 + 64 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 60 | 0) >> 2] = wasm2js_i32$1; + label$3 : { + if (!((HEAP32[($4 + 60 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + btRigidBody__updateDeactivation_28float_29(HEAP32[($4 + 60 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 72 | 0) >> 2]))); + label$4 : { + label$5 : { + if (!((btRigidBody__wantsSleeping_28_29(HEAP32[($4 + 60 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$5 + } + label$6 : { + label$7 : { + if (!((btCollisionObject__isStaticOrKinematicObject_28_29_20const(HEAP32[($4 + 60 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$7 + } + btCollisionObject__setActivationState_28int_29_20const(HEAP32[($4 + 60 | 0) >> 2] | 0 | 0, 2 | 0); + break label$6; + } + label$8 : { + if (!((btCollisionObject__getActivationState_28_29_20const(HEAP32[($4 + 60 | 0) >> 2] | 0 | 0) | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$8 + } + btCollisionObject__setActivationState_28int_29_20const(HEAP32[($4 + 60 | 0) >> 2] | 0 | 0, 3 | 0); + } + label$9 : { + if (!((btCollisionObject__getActivationState_28_29_20const(HEAP32[($4 + 60 | 0) >> 2] | 0 | 0) | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$9 + } + $62 = HEAP32[($4 + 60 | 0) >> 2] | 0; + HEAPF32[($4 + 40 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 36 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 32 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 44 | 0 | 0, $4 + 40 | 0 | 0, $4 + 36 | 0 | 0, $4 + 32 | 0 | 0) | 0; + btRigidBody__setAngularVelocity_28btVector3_20const__29($62 | 0, $4 + 44 | 0 | 0); + $84 = HEAP32[($4 + 60 | 0) >> 2] | 0; + HEAPF32[($4 + 12 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 8 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 4 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 16 | 0 | 0, $4 + 12 | 0 | 0, $4 + 8 | 0 | 0, $4 + 4 | 0 | 0) | 0; + btRigidBody__setLinearVelocity_28btVector3_20const__29($84 | 0, $4 + 16 | 0 | 0); + } + } + break label$4; + } + label$10 : { + if (!((btCollisionObject__getActivationState_28_29_20const(HEAP32[($4 + 60 | 0) >> 2] | 0 | 0) | 0 | 0) != (4 | 0) & 1 | 0)) { + break label$10 + } + btCollisionObject__setActivationState_28int_29_20const(HEAP32[($4 + 60 | 0) >> 2] | 0 | 0, 1 | 0); + } + } + } + HEAP32[($4 + 64 | 0) >> 2] = (HEAP32[($4 + 64 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + CProfileSample___CProfileSample_28_29($4 + 71 | 0 | 0) | 0; + __stack_pointer = $4 + 80 | 0; + return; + } + + function btRigidBody__updateDeactivation_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $5 = 0, $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : { + label$3 : { + if ((btCollisionObject__getActivationState_28_29_20const($5 | 0) | 0 | 0) == (2 | 0) & 1 | 0) { + break label$3 + } + if (!((btCollisionObject__getActivationState_28_29_20const($5 | 0) | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$2 + } + } + break label$1; + } + label$4 : { + if (!(Math_fround(btVector3__length2_28_29_20const(btRigidBody__getLinearVelocity_28_29_20const($5 | 0) | 0 | 0)) < Math_fround(Math_fround(HEAPF32[($5 + 532 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 532 | 0) >> 2])) & 1 | 0)) { + break label$4 + } + if (!(Math_fround(btVector3__length2_28_29_20const(btRigidBody__getAngularVelocity_28_29_20const($5 | 0) | 0 | 0)) < Math_fround(Math_fround(HEAPF32[($5 + 536 | 0) >> 2]) * Math_fround(HEAPF32[($5 + 536 | 0) >> 2])) & 1 | 0)) { + break label$4 + } + HEAPF32[($5 + 224 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($5 + 224 | 0) >> 2]) + Math_fround(HEAPF32[($4 + 8 | 0) >> 2])); + break label$1; + } + HEAPF32[($5 + 224 | 0) >> 2] = Math_fround(0 | 0); + btCollisionObject__setActivationState_28int_29_20const($5 | 0, 0 | 0); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btDiscreteDynamicsWorld__addConstraint_28btTypedConstraint__2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP8[($5 + 7 | 0) >> 0] = $2; + btAlignedObjectArray_btTypedConstraint____push_back_28btTypedConstraint__20const__29((HEAP32[($5 + 12 | 0) >> 2] | 0) + 224 | 0 | 0, $5 + 8 | 0 | 0); + label$1 : { + if ((btTypedConstraint__getRigidBodyA_28_29(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) != (btTypedConstraint__getRigidBodyB_28_29(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(88204 | 0, 75653 | 0, 660 | 0, 67767 | 0); + wasm2js_trap(); + } + label$2 : { + if (!((HEAPU8[($5 + 7 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btRigidBody__addConstraintRef_28btTypedConstraint__29(btTypedConstraint__getRigidBodyA_28_29(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0); + btRigidBody__addConstraintRef_28btTypedConstraint__29(btTypedConstraint__getRigidBodyB_28_29(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0); + } + __stack_pointer = $5 + 16 | 0; + return; + } + + function btDiscreteDynamicsWorld__removeConstraint_28btTypedConstraint__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedObjectArray_btTypedConstraint____remove_28btTypedConstraint__20const__29((HEAP32[($4 + 12 | 0) >> 2] | 0) + 224 | 0 | 0, $4 + 8 | 0 | 0); + btRigidBody__removeConstraintRef_28btTypedConstraint__29(btTypedConstraint__getRigidBodyA_28_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + btRigidBody__removeConstraintRef_28btTypedConstraint__29(btTypedConstraint__getRigidBodyB_28_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btDiscreteDynamicsWorld__addAction_28btActionInterface__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedObjectArray_btActionInterface____push_back_28btActionInterface__20const__29((HEAP32[($4 + 12 | 0) >> 2] | 0) + 292 | 0 | 0, $4 + 8 | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btActionInterface____push_back_28btActionInterface__20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btActionInterface____size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btActionInterface____capacity_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btActionInterface____reserve_28int_29($5 | 0, btAlignedObjectArray_btActionInterface____allocSize_28int_29($5 | 0, btAlignedObjectArray_btActionInterface____size_28_29_20const($5 | 0) | 0 | 0) | 0 | 0); + } + HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 4 | 0) >> 2] = (HEAP32[($5 + 4 | 0) >> 2] | 0) + 1 | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btActionInterface____capacity_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btActionInterface____allocSize_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $9 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 8 | 0) >> 2] | 0)) { + break label$2 + } + $9 = (HEAP32[($4 + 8 | 0) >> 2] | 0) << 1 | 0; + break label$1; + } + $9 = 1; + } + return $9 | 0; + } + + function btAlignedObjectArray_btActionInterface____reserve_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btActionInterface____capacity_28_29_20const($5 | 0) | 0 | 0) < (HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btActionInterface____allocate_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btActionInterface____copy_28int_2c_20int_2c_20btActionInterface___29_20const($5 | 0, 0 | 0, btAlignedObjectArray_btActionInterface____size_28_29_20const($5 | 0) | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + btAlignedObjectArray_btActionInterface____destroy_28int_2c_20int_29($5 | 0, 0 | 0, btAlignedObjectArray_btActionInterface____size_28_29_20const($5 | 0) | 0 | 0); + btAlignedObjectArray_btActionInterface____deallocate_28_29($5 | 0); + HEAP8[($5 + 16 | 0) >> 0] = 1; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btDiscreteDynamicsWorld__removeAction_28btActionInterface__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedObjectArray_btActionInterface____remove_28btActionInterface__20const__29((HEAP32[($4 + 12 | 0) >> 2] | 0) + 292 | 0 | 0, $4 + 8 | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btActionInterface____remove_28btActionInterface__20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btActionInterface____findLinearSearch_28btActionInterface__20const__29_20const($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btActionInterface____removeAtIndex_28int_29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btActionInterface____findLinearSearch_28btActionInterface__20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btActionInterface____size_28_29_20const($5 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + HEAP32[$4 >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$4 >> 2] | 0 | 0) < (btAlignedObjectArray_btActionInterface____size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + label$3 : { + if (!((HEAP32[((HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[$4 >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) == (HEAP32[(HEAP32[($4 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[$4 >> 2] | 0; + break label$1; + } + HEAP32[$4 >> 2] = (HEAP32[$4 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + $32 = HEAP32[($4 + 4 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btAlignedObjectArray_btActionInterface____removeAtIndex_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btActionInterface____size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + btAlignedObjectArray_btActionInterface____swap_28int_2c_20int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, (btAlignedObjectArray_btActionInterface____size_28_29_20const($5 | 0) | 0) - 1 | 0 | 0); + btAlignedObjectArray_btActionInterface____pop_back_28_29($5 | 0); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function btDiscreteDynamicsWorld__addVehicle_28btActionInterface__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($5, HEAP32[($4 + 8 | 0) >> 2] | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btDiscreteDynamicsWorld__removeVehicle_28btActionInterface__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 68 | 0) >> 2] | 0 | 0]($5, HEAP32[($4 + 8 | 0) >> 2] | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btDiscreteDynamicsWorld__addCharacter_28btActionInterface__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($5, HEAP32[($4 + 8 | 0) >> 2] | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btDiscreteDynamicsWorld__removeCharacter_28btActionInterface__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 68 | 0) >> 2] | 0 | 0]($5, HEAP32[($4 + 8 | 0) >> 2] | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btDiscreteDynamicsWorld__solveConstraints_28btContactSolverInfo__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $5 = 0, $4 = 0, $53 = 0, $65 = 0, $69 = 0, $81 = 0, $14 = 0, $33 = 0, $67 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + CProfileSample__CProfileSample_28char_20const__29($4 + 23 | 0 | 0, 69190 | 0) | 0; + $14 = btAlignedObjectArray_btTypedConstraint____size_28_29_20const($5 + 224 | 0 | 0) | 0; + HEAP32[($4 + 16 | 0) >> 2] = 0; + btAlignedObjectArray_btTypedConstraint____resize_28int_2c_20btTypedConstraint__20const__29($5 + 192 | 0 | 0, $14 | 0, $4 + 16 | 0 | 0); + HEAP32[($4 + 12 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) < (FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 104 | 0) >> 2] | 0 | 0]($5) | 0 | 0) & 1 | 0)) { + break label$1 + } + $33 = HEAP32[(btAlignedObjectArray_btTypedConstraint____operator_5b_5d_28int_29($5 + 224 | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btTypedConstraint____operator_5b_5d_28int_29($5 + 192 | 0 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $33), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[($4 + 12 | 0) >> 2] = (HEAP32[($4 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + void_20btAlignedObjectArray_btTypedConstraint____quickSort_btSortConstraintOnIslandPredicate__28btSortConstraintOnIslandPredicate_20const__29($5 + 192 | 0 | 0, $4 + 11 | 0 | 0); + label$3 : { + label$4 : { + if (!(FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 104 | 0) >> 2] | 0 | 0]($5) | 0)) { + break label$4 + } + $53 = btAlignedObjectArray_btTypedConstraint____operator_5b_5d_28int_29($5 + 192 | 0 | 0, 0 | 0) | 0; + break label$3; + } + $53 = 0; + } + HEAP32[($4 + 4 | 0) >> 2] = $53; + InplaceSolverIslandCallback__setup_28btContactSolverInfo__2c_20btTypedConstraint___2c_20int_2c_20btIDebugDraw__29(HEAP32[($5 + 212 | 0) >> 2] | 0 | 0, HEAP32[($4 + 24 | 0) >> 2] | 0 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, btAlignedObjectArray_btTypedConstraint____size_28_29_20const($5 + 192 | 0 | 0) | 0 | 0, FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0 | 0); + $65 = HEAP32[($5 + 216 | 0) >> 2] | 0; + $67 = btCollisionWorld__getNumCollisionObjects_28_29_20const(btDiscreteDynamicsWorld__getCollisionWorld_28_29($5 | 0) | 0 | 0) | 0; + $69 = btCollisionWorld__getDispatcher_28_29(btDiscreteDynamicsWorld__getCollisionWorld_28_29($5 | 0) | 0 | 0) | 0; + (((wasm2js_i32$1 = $65, wasm2js_i32$2 = $67), wasm2js_i32$3 = FUNCTION_TABLE[HEAP32[((HEAP32[$69 >> 2] | 0) + 36 | 0) >> 2] | 0 | 0]($69) | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$65 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0, wasm2js_i32$3 | 0); + btSimulationIslandManager__buildAndProcessIslands_28btDispatcher__2c_20btCollisionWorld__2c_20btSimulationIslandManager__IslandCallback__29(HEAP32[($5 + 220 | 0) >> 2] | 0 | 0, btCollisionWorld__getDispatcher_28_29(btDiscreteDynamicsWorld__getCollisionWorld_28_29($5 | 0) | 0 | 0) | 0 | 0, btDiscreteDynamicsWorld__getCollisionWorld_28_29($5 | 0) | 0 | 0, HEAP32[($5 + 212 | 0) >> 2] | 0 | 0); + InplaceSolverIslandCallback__processConstraints_28_29(HEAP32[($5 + 212 | 0) >> 2] | 0 | 0); + $81 = HEAP32[($5 + 216 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$81 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($81, HEAP32[($4 + 24 | 0) >> 2] | 0, HEAP32[($5 + 72 | 0) >> 2] | 0); + CProfileSample___CProfileSample_28_29($4 + 23 | 0 | 0) | 0; + __stack_pointer = $4 + 32 | 0; + return; + } + + function btAlignedObjectArray_btTypedConstraint____resize_28int_2c_20btTypedConstraint__20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btTypedConstraint____size_28_29_20const($6 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + break label$1; + } + label$5 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) > (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + btAlignedObjectArray_btTypedConstraint____reserve_28int_29($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[(HEAP32[($5 + 20 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function void_20btAlignedObjectArray_btTypedConstraint____quickSort_btSortConstraintOnIslandPredicate__28btSortConstraintOnIslandPredicate_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((btAlignedObjectArray_btTypedConstraint____size_28_29_20const($5 | 0) | 0 | 0) > (1 | 0) & 1 | 0)) { + break label$1 + } + void_20btAlignedObjectArray_btTypedConstraint____quickSortInternal_btSortConstraintOnIslandPredicate__28btSortConstraintOnIslandPredicate_20const__2c_20int_2c_20int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, 0 | 0, (btAlignedObjectArray_btTypedConstraint____size_28_29_20const($5 | 0) | 0) - 1 | 0 | 0); + } + __stack_pointer = $4 + 16 | 0; + return; + } + + function InplaceSolverIslandCallback__setup_28btContactSolverInfo__2c_20btTypedConstraint___2c_20int_2c_20btIDebugDraw__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($7 + 24 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(76208 | 0, 75653 | 0, 121 | 0, 71279 | 0); + wasm2js_trap(); + } + HEAP32[($8 + 4 | 0) >> 2] = HEAP32[($7 + 24 | 0) >> 2] | 0; + HEAP32[($8 + 12 | 0) >> 2] = HEAP32[($7 + 20 | 0) >> 2] | 0; + HEAP32[($8 + 16 | 0) >> 2] = HEAP32[($7 + 16 | 0) >> 2] | 0; + HEAP32[($8 + 20 | 0) >> 2] = HEAP32[($7 + 12 | 0) >> 2] | 0; + HEAP32[($7 + 8 | 0) >> 2] = 0; + btAlignedObjectArray_btCollisionObject____resize_28int_2c_20btCollisionObject__20const__29($8 + 28 | 0 | 0, 0 | 0, $7 + 8 | 0 | 0); + HEAP32[($7 + 4 | 0) >> 2] = 0; + btAlignedObjectArray_btPersistentManifold____resize_28int_2c_20btPersistentManifold__20const__29($8 + 48 | 0 | 0, 0 | 0, $7 + 4 | 0 | 0); + HEAP32[$7 >> 2] = 0; + btAlignedObjectArray_btTypedConstraint____resize_28int_2c_20btTypedConstraint__20const__29($8 + 68 | 0 | 0, 0 | 0, $7 | 0); + __stack_pointer = $7 + 32 | 0; + return; + } + + function btDiscreteDynamicsWorld__getCollisionWorld_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btCollisionWorld__getNumCollisionObjects_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $7 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $7 = btAlignedObjectArray_btCollisionObject____size_28_29_20const((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $7 | 0; + } + + function InplaceSolverIslandCallback__processConstraints_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $12 = 0, $22 = 0, $32 = 0, $35 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0, wasm2js_i32$4 = 0, wasm2js_i32$5 = 0, wasm2js_i32$6 = 0, wasm2js_i32$7 = 0, wasm2js_i32$8 = 0, wasm2js_i32$9 = 0, wasm2js_i32$10 = 0; + $3 = __stack_pointer - 32 | 0; + __stack_pointer = $3; + HEAP32[($3 + 28 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 28 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(btAlignedObjectArray_btCollisionObject____size_28_29_20const($4 + 28 | 0 | 0) | 0)) { + break label$2 + } + $12 = btAlignedObjectArray_btCollisionObject____operator_5b_5d_28int_29($4 + 28 | 0 | 0, 0 | 0) | 0; + break label$1; + } + $12 = 0; + } + HEAP32[($3 + 24 | 0) >> 2] = $12; + label$3 : { + label$4 : { + if (!(btAlignedObjectArray_btPersistentManifold____size_28_29_20const($4 + 48 | 0 | 0) | 0)) { + break label$4 + } + $22 = btAlignedObjectArray_btPersistentManifold____operator_5b_5d_28int_29($4 + 48 | 0 | 0, 0 | 0) | 0; + break label$3; + } + $22 = 0; + } + HEAP32[($3 + 20 | 0) >> 2] = $22; + label$5 : { + label$6 : { + if (!(btAlignedObjectArray_btTypedConstraint____size_28_29_20const($4 + 68 | 0 | 0) | 0)) { + break label$6 + } + $32 = btAlignedObjectArray_btTypedConstraint____operator_5b_5d_28int_29($4 + 68 | 0 | 0, 0 | 0) | 0; + break label$5; + } + $32 = 0; + } + HEAP32[($3 + 16 | 0) >> 2] = $32; + $35 = HEAP32[($4 + 8 | 0) >> 2] | 0; + ((((((((((wasm2js_i32$1 = $35, wasm2js_i32$2 = HEAP32[($3 + 24 | 0) >> 2] | 0), wasm2js_i32$3 = btAlignedObjectArray_btCollisionObject____size_28_29_20const($4 + 28 | 0 | 0) | 0), wasm2js_i32$4 = HEAP32[($3 + 20 | 0) >> 2] | 0), wasm2js_i32$5 = btAlignedObjectArray_btPersistentManifold____size_28_29_20const($4 + 48 | 0 | 0) | 0), wasm2js_i32$6 = HEAP32[($3 + 16 | 0) >> 2] | 0), wasm2js_i32$7 = btAlignedObjectArray_btTypedConstraint____size_28_29_20const($4 + 68 | 0 | 0) | 0), wasm2js_i32$8 = HEAP32[($4 + 4 | 0) >> 2] | 0), wasm2js_i32$9 = HEAP32[($4 + 20 | 0) >> 2] | 0), wasm2js_i32$10 = HEAP32[($4 + 24 | 0) >> 2] | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$35 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0), Math_fround(FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0, wasm2js_i32$3 | 0, wasm2js_i32$4 | 0, wasm2js_i32$5 | 0, wasm2js_i32$6 | 0, wasm2js_i32$7 | 0, wasm2js_i32$8 | 0, wasm2js_i32$9 | 0, wasm2js_i32$10 | 0)); + HEAP32[($3 + 12 | 0) >> 2] = 0; + btAlignedObjectArray_btCollisionObject____resize_28int_2c_20btCollisionObject__20const__29($4 + 28 | 0 | 0, 0 | 0, $3 + 12 | 0 | 0); + HEAP32[($3 + 8 | 0) >> 2] = 0; + btAlignedObjectArray_btPersistentManifold____resize_28int_2c_20btPersistentManifold__20const__29($4 + 48 | 0 | 0, 0 | 0, $3 + 8 | 0 | 0); + HEAP32[($3 + 4 | 0) >> 2] = 0; + btAlignedObjectArray_btTypedConstraint____resize_28int_2c_20btTypedConstraint__20const__29($4 + 68 | 0 | 0, 0 | 0, $3 + 4 | 0 | 0); + __stack_pointer = $3 + 32 | 0; + return; + } + + function void_20btAlignedObjectArray_btTypedConstraint____quickSortInternal_btSortConstraintOnIslandPredicate__28btSortConstraintOnIslandPredicate_20const__2c_20int_2c_20int_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 20 | 0) >> 2] | 0; + HEAP32[($6 + 8 | 0) >> 2] = HEAP32[($6 + 16 | 0) >> 2] | 0; + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[((HEAP32[($7 + 12 | 0) >> 2] | 0) + ((((HEAP32[($6 + 20 | 0) >> 2] | 0) + (HEAP32[($6 + 16 | 0) >> 2] | 0) | 0 | 0) / (2 | 0) | 0) << 2 | 0) | 0) >> 2] | 0; + label$1 : while (1) { + label$2 : { + label$3 : while (1) { + if (!((btSortConstraintOnIslandPredicate__operator_28_29_28btTypedConstraint_20const__2c_20btTypedConstraint_20const__29_20const(HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0, HEAP32[($6 + 4 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + label$4 : { + label$5 : while (1) { + if (!((btSortConstraintOnIslandPredicate__operator_28_29_28btTypedConstraint_20const__2c_20btTypedConstraint_20const__29_20const(HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6 + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($6 + 8 | 0) >> 2] = (HEAP32[($6 + 8 | 0) >> 2] | 0) + -1 | 0; + continue label$5; + }; + } + label$6 : { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) <= (HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + btAlignedObjectArray_btTypedConstraint____swap_28int_2c_20int_29($7 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0); + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($6 + 8 | 0) >> 2] = (HEAP32[($6 + 8 | 0) >> 2] | 0) + -1 | 0; + } + if ((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) <= (HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) & 1 | 0) { + continue label$1 + } + break label$1; + }; + label$7 : { + if (!((HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$7 + } + void_20btAlignedObjectArray_btTypedConstraint____quickSortInternal_btSortConstraintOnIslandPredicate__28btSortConstraintOnIslandPredicate_20const__2c_20int_2c_20int_29($7 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0); + } + label$8 : { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + void_20btAlignedObjectArray_btTypedConstraint____quickSortInternal_btSortConstraintOnIslandPredicate__28btSortConstraintOnIslandPredicate_20const__2c_20int_2c_20int_29($7 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6 + 16 | 0) >> 2] | 0 | 0); + } + __stack_pointer = $6 + 32 | 0; + return; + } + + function btAlignedObjectArray_btCollisionObject____resize_28int_2c_20btCollisionObject__20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btCollisionObject____size_28_29_20const($6 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 12 | 0) >> 2] = (HEAP32[($5 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + break label$1; + } + label$5 : { + if (!((HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) > (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + btAlignedObjectArray_btCollisionObject____reserve_28int_29($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0); + } + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[($5 + 16 | 0) >> 2] | 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[(HEAP32[($5 + 20 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 8 | 0) >> 2] = (HEAP32[($5 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($5 + 24 | 0) >> 2] | 0; + __stack_pointer = $5 + 32 | 0; + return; + } + + function btDiscreteDynamicsWorld__calculateSimulationIslands_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $9 = 0, $120 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0; + $3 = __stack_pointer - 48 | 0; + __stack_pointer = $3; + HEAP32[($3 + 44 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 44 | 0) >> 2] | 0; + CProfileSample__CProfileSample_28char_20const__29($3 + 43 | 0 | 0, 70326 | 0) | 0; + $9 = btDiscreteDynamicsWorld__getSimulationIslandManager_28_29($4 | 0) | 0; + (((wasm2js_i32$1 = $9, wasm2js_i32$2 = btDiscreteDynamicsWorld__getCollisionWorld_28_29($4 | 0) | 0), wasm2js_i32$3 = btCollisionWorld__getDispatcher_28_29(btDiscreteDynamicsWorld__getCollisionWorld_28_29($4 | 0) | 0 | 0) | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$9 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0, wasm2js_i32$3 | 0); + HEAP32[($3 + 36 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3 + 36 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btPersistentManifold____size_28_29_20const($4 + 320 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $3, wasm2js_i32$3 = HEAP32[(btAlignedObjectArray_btPersistentManifold____operator_5b_5d_28int_29($4 + 320 | 0 | 0, HEAP32[($3 + 36 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$3; + (wasm2js_i32$0 = $3, wasm2js_i32$3 = btPersistentManifold__getBody0_28_29_20const(HEAP32[($3 + 32 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$3; + (wasm2js_i32$0 = $3, wasm2js_i32$3 = btPersistentManifold__getBody1_28_29_20const(HEAP32[($3 + 32 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_i32$3; + label$3 : { + if (!((HEAP32[($3 + 28 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + if ((btCollisionObject__isStaticOrKinematicObject_28_29_20const(HEAP32[($3 + 28 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$3 + } + if (!((HEAP32[($3 + 24 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + if ((btCollisionObject__isStaticOrKinematicObject_28_29_20const(HEAP32[($3 + 24 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$3 + } + btUnionFind__unite_28int_2c_20int_29(btSimulationIslandManager__getUnionFind_28_29(btDiscreteDynamicsWorld__getSimulationIslandManager_28_29($4 | 0) | 0 | 0) | 0 | 0, btCollisionObject__getIslandTag_28_29_20const(HEAP32[($3 + 28 | 0) >> 2] | 0 | 0) | 0 | 0, btCollisionObject__getIslandTag_28_29_20const(HEAP32[($3 + 24 | 0) >> 2] | 0 | 0) | 0 | 0); + } + HEAP32[($3 + 36 | 0) >> 2] = (HEAP32[($3 + 36 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + (wasm2js_i32$0 = $3, wasm2js_i32$3 = btAlignedObjectArray_btTypedConstraint____size_28_29_20const($4 + 224 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$3; + HEAP32[($3 + 20 | 0) >> 2] = 0; + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($3 + 20 | 0) >> 2] | 0 | 0) < (HEAP32[($3 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + (wasm2js_i32$0 = $3, wasm2js_i32$3 = HEAP32[(btAlignedObjectArray_btTypedConstraint____operator_5b_5d_28int_29($4 + 224 | 0 | 0, HEAP32[($3 + 20 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$3; + label$6 : { + if (!((btTypedConstraint__isEnabled_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$6 + } + (wasm2js_i32$0 = $3, wasm2js_i32$3 = btTypedConstraint__getRigidBodyA_28_29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$3; + (wasm2js_i32$0 = $3, wasm2js_i32$3 = btTypedConstraint__getRigidBodyB_28_29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$3; + label$7 : { + if (!((HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + if ((btCollisionObject__isStaticOrKinematicObject_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$7 + } + if (!((HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + if ((btCollisionObject__isStaticOrKinematicObject_28_29_20const(HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$7 + } + btUnionFind__unite_28int_2c_20int_29(btSimulationIslandManager__getUnionFind_28_29(btDiscreteDynamicsWorld__getSimulationIslandManager_28_29($4 | 0) | 0 | 0) | 0 | 0, btCollisionObject__getIslandTag_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0 | 0, btCollisionObject__getIslandTag_28_29_20const(HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) | 0 | 0); + } + } + HEAP32[($3 + 20 | 0) >> 2] = (HEAP32[($3 + 20 | 0) >> 2] | 0) + 1 | 0; + continue label$5; + }; + } + $120 = btDiscreteDynamicsWorld__getSimulationIslandManager_28_29($4 | 0) | 0; + ((wasm2js_i32$3 = $120, wasm2js_i32$2 = btDiscreteDynamicsWorld__getCollisionWorld_28_29($4 | 0) | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$120 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$3 | 0, wasm2js_i32$2 | 0); + CProfileSample___CProfileSample_28_29($3 + 43 | 0 | 0) | 0; + __stack_pointer = $3 + 48 | 0; + return; + } + + function btDiscreteDynamicsWorld__getSimulationIslandManager_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 220 | 0) >> 2] | 0 | 0; + } + + function btSimulationIslandManager__getUnionFind_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0 | 0; + } + + function btCollisionObject__getIslandTag_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 208 | 0) >> 2] | 0 | 0; + } + + function btUnionFind__unite_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $25 = 0, $18 = 0, $23 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btUnionFind__find_28int_29($6 | 0, HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btUnionFind__find_28int_29($6 | 0, HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) == (HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + break label$1; + } + $18 = HEAP32[($5 + 12 | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btElement___operator_5b_5d_28int_29($6 | 0, HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $18), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $23 = HEAP32[((btAlignedObjectArray_btElement___operator_5b_5d_28int_29($6 | 0, HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2] | 0; + $25 = btAlignedObjectArray_btElement___operator_5b_5d_28int_29($6 | 0, HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($25 + 4 | 0) >> 2] = (HEAP32[($25 + 4 | 0) >> 2] | 0) + $23 | 0; + } + __stack_pointer = $5 + 32 | 0; + return; + } + + function btUnionFind__find_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $20 = 0, $25 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) != (HEAP32[(btAlignedObjectArray_btElement___operator_5b_5d_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btElement___operator_5b_5d_28int_29($5 | 0, HEAP32[(btAlignedObjectArray_btElement___operator_5b_5d_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + $20 = HEAP32[(HEAP32[($4 + 4 | 0) >> 2] | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btElement___operator_5b_5d_28int_29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $20), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAP32[($4 + 8 | 0) >> 2] = HEAP32[(HEAP32[($4 + 4 | 0) >> 2] | 0) >> 2] | 0; + continue label$2; + }; + } + $25 = HEAP32[($4 + 8 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $25 | 0; + } + + function btAlignedObjectArray_btElement___operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btElement___size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 3 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btDiscreteDynamicsWorld__createPredictiveContactsInternal_28btRigidBody___2c_20int_2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $7 = 0, $93 = 0, $186 = 0, $281 = 0, $283 = 0, $289 = 0, $291 = 0, $85 = 0, $88 = 0, $92 = 0, $274 = Math_fround(0), $278 = 0, $878 = 0, $888 = 0, $897 = 0, $910 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$1 = 0; + $6 = __stack_pointer - 736 | 0; + __stack_pointer = $6; + HEAP32[($6 + 732 | 0) >> 2] = $0; + HEAP32[($6 + 728 | 0) >> 2] = $1; + HEAP32[($6 + 724 | 0) >> 2] = $2; + HEAPF32[($6 + 720 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 732 | 0) >> 2] | 0; + btTransform__btTransform_28_29($6 + 656 | 0 | 0) | 0; + HEAP32[($6 + 652 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 652 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 724 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[($6 + 648 | 0) >> 2] = HEAP32[((HEAP32[($6 + 728 | 0) >> 2] | 0) + ((HEAP32[($6 + 652 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + btCollisionObject__setHitFraction_28float_29(HEAP32[($6 + 648 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(1.0))); + label$3 : { + if (!((btCollisionObject__isActive_28_29_20const(HEAP32[($6 + 648 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$3 + } + if ((btCollisionObject__isStaticOrKinematicObject_28_29_20const(HEAP32[($6 + 648 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$3 + } + btRigidBody__predictIntegratedTransform_28float_2c_20btTransform__29(HEAP32[($6 + 648 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 720 | 0) >> 2])), $6 + 656 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 628 | 0 | 0, btTransform__getOrigin_28_29($6 + 656 | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29(btCollisionObject__getWorldTransform_28_29(HEAP32[($6 + 648 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($6 + 628 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 644 | 0) >> 2] = wasm2js_f32$0; + label$4 : { + if (!((HEAPU8[((btCollisionWorld__getDispatchInfo_28_29($7 | 0) | 0) + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$4 + } + if (!(Math_fround(btCollisionObject__getCcdSquareMotionThreshold_28_29_20const(HEAP32[($6 + 648 | 0) >> 2] | 0 | 0)) != Math_fround(0 | 0) & 1 | 0)) { + break label$4 + } + if (!(Math_fround(btCollisionObject__getCcdSquareMotionThreshold_28_29_20const(HEAP32[($6 + 648 | 0) >> 2] | 0 | 0)) < Math_fround(HEAPF32[($6 + 644 | 0) >> 2]) & 1 | 0)) { + break label$4 + } + CProfileSample__CProfileSample_28char_20const__29($6 + 627 | 0 | 0, 67428 | 0) | 0; + label$5 : { + if (!((btCollisionShape__isConvex_28_29_20const(btRigidBody__getCollisionShape_28_29(HEAP32[($6 + 648 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) & 1 | 0)) { + break label$5 + } + HEAP32[(0 + 116168 | 0) >> 2] = (HEAP32[(0 + 116168 | 0) >> 2] | 0) + 1 | 0; + $85 = HEAP32[($6 + 648 | 0) >> 2] | 0; + $88 = btTransform__getOrigin_28_29(btCollisionObject__getWorldTransform_28_29(HEAP32[($6 + 648 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + $92 = btTransform__getOrigin_28_29($6 + 656 | 0 | 0) | 0; + $93 = btCollisionWorld__getBroadphase_28_29($7 | 0) | 0; + btClosestNotMeConvexResultCallback__btClosestNotMeConvexResultCallback_28btCollisionObject__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btOverlappingPairCache__2c_20btDispatcher__29($6 + 524 | 0 | 0, $85 | 0, $88 | 0, $92 | 0, FUNCTION_TABLE[HEAP32[((HEAP32[$93 >> 2] | 0) + 36 | 0) >> 2] | 0 | 0]($93) | 0 | 0, btCollisionWorld__getDispatcher_28_29($7 | 0) | 0 | 0) | 0; + btSphereShape__btSphereShape_28float_29($6 + 464 | 0 | 0, Math_fround(Math_fround(btCollisionObject__getCcdSweptSphereRadius_28_29_20const(HEAP32[($6 + 648 | 0) >> 2] | 0 | 0)))) | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(HEAPF32[((btCollisionWorld__getDispatchInfo_28_29($7 | 0) | 0) + 28 | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 612 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = HEAP32[((btRigidBody__getBroadphaseProxy_28_29(HEAP32[($6 + 648 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 532 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = HEAP32[((btRigidBody__getBroadphaseProxy_28_29(HEAP32[($6 + 648 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 536 | 0) >> 2] = wasm2js_i32$1; + btTransform__btTransform_28btTransform_20const__29($6 + 400 | 0 | 0, $6 + 656 | 0 | 0) | 0; + btTransform__setBasis_28btMatrix3x3_20const__29($6 + 400 | 0 | 0, btTransform__getBasis_28_29(btCollisionObject__getWorldTransform_28_29(HEAP32[($6 + 648 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + btCollisionWorld__convexSweepTest_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29_20const($7 | 0, $6 + 464 | 0 | 0, btCollisionObject__getWorldTransform_28_29(HEAP32[($6 + 648 | 0) >> 2] | 0 | 0) | 0 | 0, $6 + 400 | 0 | 0, $6 + 524 | 0 | 0, Math_fround(Math_fround(0 | 0))); + label$6 : { + if (!((btCollisionWorld__ConvexResultCallback__hasHit_28_29_20const($6 + 524 | 0 | 0) | 0) & 1 | 0)) { + break label$6 + } + if (!(Math_fround(HEAPF32[($6 + 528 | 0) >> 2]) < Math_fround(1.0) & 1 | 0)) { + break label$6 + } + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 368 | 0 | 0, btTransform__getOrigin_28_29($6 + 656 | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29(btCollisionObject__getWorldTransform_28_29(HEAP32[($6 + 648 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($6 + 384 | 0 | 0, $6 + 368 | 0 | 0, ($6 + 524 | 0) + 4 | 0 | 0); + operator__28btVector3_20const__29($6 + 348 | 0 | 0, ($6 + 524 | 0) + 52 | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($6 + 384 | 0 | 0, $6 + 348 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 364 | 0) >> 2] = wasm2js_f32$0; + $186 = HEAP32[($7 + 24 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$186 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($186, HEAP32[($6 + 648 | 0) >> 2] | 0, HEAP32[($6 + 540 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 344 | 0) >> 2] = wasm2js_i32$1; + btMutexLock_28btSpinMutex__29($7 + 340 | 0 | 0); + btAlignedObjectArray_btPersistentManifold____push_back_28btPersistentManifold__20const__29($7 + 320 | 0 | 0, $6 + 344 | 0 | 0); + btMutexUnlock_28btSpinMutex__29($7 + 340 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 328 | 0 | 0, btTransform__getOrigin_28_29(btCollisionObject__getWorldTransform_28_29(HEAP32[($6 + 648 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, $6 + 384 | 0 | 0); + btTransform__inverse_28_29_20const($6 + 248 | 0 | 0, btCollisionObject__getWorldTransform_28_29_20const(HEAP32[($6 + 540 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($6 + 312 | 0 | 0, $6 + 248 | 0 | 0, $6 + 328 | 0 | 0); + HEAPF32[($6 + 20 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 16 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 12 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 24 | 0 | 0, $6 + 20 | 0 | 0, $6 + 16 | 0 | 0, $6 + 12 | 0 | 0) | 0; + btManifoldPoint__btManifoldPoint_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_29($6 + 40 | 0 | 0, $6 + 24 | 0 | 0, $6 + 312 | 0 | 0, ($6 + 524 | 0) + 52 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 364 | 0) >> 2]))) | 0; + HEAP8[($6 + 11 | 0) >> 0] = 1; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btPersistentManifold__addManifoldPoint_28btManifoldPoint_20const__2c_20bool_29(HEAP32[($6 + 344 | 0) >> 2] | 0 | 0, $6 + 40 | 0 | 0, (HEAPU8[($6 + 11 | 0) >> 0] | 0) & 1 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btPersistentManifold__getContactPoint_28int_29(HEAP32[($6 + 344 | 0) >> 2] | 0 | 0, HEAP32[($6 + 4 | 0) >> 2] | 0 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + HEAPF32[((HEAP32[$6 >> 2] | 0) + 96 | 0) >> 2] = Math_fround(0 | 0); + $274 = Math_fround(btManifoldResult__calculateCombinedFriction_28btCollisionObject_20const__2c_20btCollisionObject_20const__29(HEAP32[($6 + 648 | 0) >> 2] | 0 | 0, HEAP32[($6 + 540 | 0) >> 2] | 0 | 0)); + HEAPF32[((HEAP32[$6 >> 2] | 0) + 84 | 0) >> 2] = $274; + $278 = btTransform__getOrigin_28_29(btCollisionObject__getWorldTransform_28_29(HEAP32[($6 + 648 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + $281 = (HEAP32[$6 >> 2] | 0) + 48 | 0; + i64toi32_i32$2 = $278; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $878 = i64toi32_i32$0; + i64toi32_i32$0 = $281; + HEAP32[i64toi32_i32$0 >> 2] = $878; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $283 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $283 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $888 = i64toi32_i32$1; + i64toi32_i32$1 = $281 + $283 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $888; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $289 = (HEAP32[$6 >> 2] | 0) + 32 | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 328 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 332 | 0) >> 2] | 0; + $897 = i64toi32_i32$0; + i64toi32_i32$0 = $289; + HEAP32[i64toi32_i32$0 >> 2] = $897; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $291 = 8; + i64toi32_i32$2 = ($6 + 328 | 0) + $291 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $910 = i64toi32_i32$1; + i64toi32_i32$1 = $289 + $291 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $910; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + btSphereShape___btSphereShape_28_29($6 + 464 | 0 | 0) | 0; + btClosestNotMeConvexResultCallback___btClosestNotMeConvexResultCallback_28_29($6 + 524 | 0 | 0) | 0; + } + CProfileSample___CProfileSample_28_29($6 + 627 | 0 | 0) | 0; + } + } + HEAP32[($6 + 652 | 0) >> 2] = (HEAP32[($6 + 652 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $6 + 736 | 0; + return; + } + + function btClosestNotMeConvexResultCallback__btClosestNotMeConvexResultCallback_28btCollisionObject__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btOverlappingPairCache__2c_20btDispatcher__29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, $9 = 0; + $8 = __stack_pointer - 32 | 0; + __stack_pointer = $8; + HEAP32[($8 + 28 | 0) >> 2] = $0; + HEAP32[($8 + 24 | 0) >> 2] = $1; + HEAP32[($8 + 20 | 0) >> 2] = $2; + HEAP32[($8 + 16 | 0) >> 2] = $3; + HEAP32[($8 + 12 | 0) >> 2] = $4; + HEAP32[($8 + 8 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 28 | 0) >> 2] | 0; + btCollisionWorld__ClosestConvexResultCallback__ClosestConvexResultCallback_28btVector3_20const__2c_20btVector3_20const__29($9 | 0, HEAP32[($8 + 20 | 0) >> 2] | 0 | 0, HEAP32[($8 + 16 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$9 >> 2] = 103340 + 8 | 0; + HEAP32[($9 + 84 | 0) >> 2] = HEAP32[($8 + 24 | 0) >> 2] | 0; + HEAPF32[($9 + 88 | 0) >> 2] = Math_fround(0 | 0); + HEAP32[($9 + 92 | 0) >> 2] = HEAP32[($8 + 12 | 0) >> 2] | 0; + HEAP32[($9 + 96 | 0) >> 2] = HEAP32[($8 + 8 | 0) >> 2] | 0; + __stack_pointer = $8 + 32 | 0; + return $9 | 0; + } + + function btClosestNotMeConvexResultCallback___btClosestNotMeConvexResultCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionWorld__ClosestConvexResultCallback___ClosestConvexResultCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btDiscreteDynamicsWorld__releasePredictiveContacts_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $24 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + CProfileSample__CProfileSample_28char_20const__29($3 + 11 | 0 | 0, 70398 | 0) | 0; + HEAP32[($3 + 4 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btPersistentManifold____size_28_29_20const($4 + 320 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $3, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btPersistentManifold____operator_5b_5d_28int_29($4 + 320 | 0 | 0, HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $24 = HEAP32[($4 + 24 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$24 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($24, HEAP32[$3 >> 2] | 0); + HEAP32[($3 + 4 | 0) >> 2] = (HEAP32[($3 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + btAlignedObjectArray_btPersistentManifold____clear_28_29($4 + 320 | 0 | 0); + CProfileSample___CProfileSample_28_29($3 + 11 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return; + } + + function btDiscreteDynamicsWorld__createPredictiveContacts_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + CProfileSample__CProfileSample_28char_20const__29($4 + 7 | 0 | 0, 69290 | 0) | 0; + btDiscreteDynamicsWorld__releasePredictiveContacts_28_29($5 | 0); + label$1 : { + if (!((btAlignedObjectArray_btRigidBody____size_28_29_20const($5 + 244 | 0 | 0) | 0 | 0) > (0 | 0) & 1 | 0)) { + break label$1 + } + btDiscreteDynamicsWorld__createPredictiveContactsInternal_28btRigidBody___2c_20int_2c_20float_29($5 | 0, btAlignedObjectArray_btRigidBody____operator_5b_5d_28int_29($5 + 244 | 0 | 0, 0 | 0) | 0 | 0, btAlignedObjectArray_btRigidBody____size_28_29_20const($5 + 244 | 0 | 0) | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))); + } + CProfileSample___CProfileSample_28_29($4 + 7 | 0 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btDiscreteDynamicsWorld__integrateTransformsInternal_28btRigidBody___2c_20int_2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = Math_fround($3); + var $6 = 0, $7 = 0, $93 = 0, $85 = 0, $88 = 0, $92 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$1 = 0; + $6 = __stack_pointer - 352 | 0; + __stack_pointer = $6; + HEAP32[($6 + 348 | 0) >> 2] = $0; + HEAP32[($6 + 344 | 0) >> 2] = $1; + HEAP32[($6 + 340 | 0) >> 2] = $2; + HEAPF32[($6 + 336 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 348 | 0) >> 2] | 0; + btTransform__btTransform_28_29($6 + 272 | 0 | 0) | 0; + HEAP32[($6 + 268 | 0) >> 2] = 0; + label$1 : { + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($6 + 268 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 340 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($6 + 264 | 0) >> 2] = HEAP32[((HEAP32[($6 + 344 | 0) >> 2] | 0) + ((HEAP32[($6 + 268 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + btCollisionObject__setHitFraction_28float_29(HEAP32[($6 + 264 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(1.0))); + label$4 : { + label$5 : { + if (!((btCollisionObject__isActive_28_29_20const(HEAP32[($6 + 264 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$5 + } + if ((btCollisionObject__isStaticOrKinematicObject_28_29_20const(HEAP32[($6 + 264 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$5 + } + btRigidBody__predictIntegratedTransform_28float_2c_20btTransform__29(HEAP32[($6 + 264 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 336 | 0) >> 2])), $6 + 272 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 244 | 0 | 0, btTransform__getOrigin_28_29($6 + 272 | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29(btCollisionObject__getWorldTransform_28_29(HEAP32[($6 + 264 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($6 + 244 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 260 | 0) >> 2] = wasm2js_f32$0; + label$6 : { + if (!((HEAPU8[((btCollisionWorld__getDispatchInfo_28_29($7 | 0) | 0) + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$6 + } + if (!(Math_fround(btCollisionObject__getCcdSquareMotionThreshold_28_29_20const(HEAP32[($6 + 264 | 0) >> 2] | 0 | 0)) != Math_fround(0 | 0) & 1 | 0)) { + break label$6 + } + if (!(Math_fround(btCollisionObject__getCcdSquareMotionThreshold_28_29_20const(HEAP32[($6 + 264 | 0) >> 2] | 0 | 0)) < Math_fround(HEAPF32[($6 + 260 | 0) >> 2]) & 1 | 0)) { + break label$6 + } + CProfileSample__CProfileSample_28char_20const__29($6 + 243 | 0 | 0, 80605 | 0) | 0; + label$7 : { + label$8 : { + if (!((btCollisionShape__isConvex_28_29_20const(btRigidBody__getCollisionShape_28_29(HEAP32[($6 + 264 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) & 1 | 0)) { + break label$8 + } + HEAP32[(0 + 116168 | 0) >> 2] = (HEAP32[(0 + 116168 | 0) >> 2] | 0) + 1 | 0; + $85 = HEAP32[($6 + 264 | 0) >> 2] | 0; + $88 = btTransform__getOrigin_28_29(btCollisionObject__getWorldTransform_28_29(HEAP32[($6 + 264 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + $92 = btTransform__getOrigin_28_29($6 + 272 | 0 | 0) | 0; + $93 = btCollisionWorld__getBroadphase_28_29($7 | 0) | 0; + btClosestNotMeConvexResultCallback__btClosestNotMeConvexResultCallback_28btCollisionObject__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btOverlappingPairCache__2c_20btDispatcher__29($6 + 140 | 0 | 0, $85 | 0, $88 | 0, $92 | 0, FUNCTION_TABLE[HEAP32[((HEAP32[$93 >> 2] | 0) + 36 | 0) >> 2] | 0 | 0]($93) | 0 | 0, btCollisionWorld__getDispatcher_28_29($7 | 0) | 0 | 0) | 0; + btSphereShape__btSphereShape_28float_29($6 + 80 | 0 | 0, Math_fround(Math_fround(btCollisionObject__getCcdSweptSphereRadius_28_29_20const(HEAP32[($6 + 264 | 0) >> 2] | 0 | 0)))) | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(HEAPF32[((btCollisionWorld__getDispatchInfo_28_29($7 | 0) | 0) + 28 | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 228 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = HEAP32[((btRigidBody__getBroadphaseProxy_28_29(HEAP32[($6 + 264 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 148 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = HEAP32[((btRigidBody__getBroadphaseProxy_28_29(HEAP32[($6 + 264 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 152 | 0) >> 2] = wasm2js_i32$1; + btTransform__btTransform_28btTransform_20const__29($6 + 16 | 0 | 0, $6 + 272 | 0 | 0) | 0; + btTransform__setBasis_28btMatrix3x3_20const__29($6 + 16 | 0 | 0, btTransform__getBasis_28_29(btCollisionObject__getWorldTransform_28_29(HEAP32[($6 + 264 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + btCollisionWorld__convexSweepTest_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29_20const($7 | 0, $6 + 80 | 0 | 0, btCollisionObject__getWorldTransform_28_29(HEAP32[($6 + 264 | 0) >> 2] | 0 | 0) | 0 | 0, $6 + 16 | 0 | 0, $6 + 140 | 0 | 0, Math_fround(Math_fround(0 | 0))); + label$9 : { + label$10 : { + if (!((btCollisionWorld__ConvexResultCallback__hasHit_28_29_20const($6 + 140 | 0 | 0) | 0) & 1 | 0)) { + break label$10 + } + if (!(Math_fround(HEAPF32[($6 + 144 | 0) >> 2]) < Math_fround(1.0) & 1 | 0)) { + break label$10 + } + btCollisionObject__setHitFraction_28float_29(HEAP32[($6 + 264 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 144 | 0) >> 2]))); + btRigidBody__predictIntegratedTransform_28float_2c_20btTransform__29(HEAP32[($6 + 264 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(Math_fround(HEAPF32[($6 + 336 | 0) >> 2]) * Math_fround(btCollisionObject__getHitFraction_28_29_20const(HEAP32[($6 + 264 | 0) >> 2] | 0 | 0)))), $6 + 272 | 0 | 0); + btCollisionObject__setHitFraction_28float_29(HEAP32[($6 + 264 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(0 | 0))); + btRigidBody__proceedToTransform_28btTransform_20const__29(HEAP32[($6 + 264 | 0) >> 2] | 0 | 0, $6 + 272 | 0 | 0); + HEAP32[($6 + 12 | 0) >> 2] = 4; + break label$9; + } + HEAP32[($6 + 12 | 0) >> 2] = 0; + } + btSphereShape___btSphereShape_28_29($6 + 80 | 0 | 0) | 0; + btClosestNotMeConvexResultCallback___btClosestNotMeConvexResultCallback_28_29($6 + 140 | 0 | 0) | 0; + if (HEAP32[($6 + 12 | 0) >> 2] | 0) { + break label$7 + } + } + HEAP32[($6 + 12 | 0) >> 2] = 0; + } + CProfileSample___CProfileSample_28_29($6 + 243 | 0 | 0) | 0; + label$11 : { + switch (HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) { + case 1: + case 2: + case 3: + break label$1; + case 4: + break label$4; + default: + break label$11; + }; + } + } + btRigidBody__proceedToTransform_28btTransform_20const__29(HEAP32[($6 + 264 | 0) >> 2] | 0 | 0, $6 + 272 | 0 | 0); + } + } + HEAP32[($6 + 268 | 0) >> 2] = (HEAP32[($6 + 268 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + __stack_pointer = $6 + 352 | 0; + return; + } + wasm2js_trap(); + } + + function btDiscreteDynamicsWorld__integrateTransforms_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0, $5 = 0, $146 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 144 | 0; + __stack_pointer = $4; + HEAP32[($4 + 140 | 0) >> 2] = $0; + HEAPF32[($4 + 136 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 140 | 0) >> 2] | 0; + CProfileSample__CProfileSample_28char_20const__29($4 + 135 | 0 | 0, 69773 | 0) | 0; + label$1 : { + if (!((btAlignedObjectArray_btRigidBody____size_28_29_20const($5 + 244 | 0 | 0) | 0 | 0) > (0 | 0) & 1 | 0)) { + break label$1 + } + btDiscreteDynamicsWorld__integrateTransformsInternal_28btRigidBody___2c_20int_2c_20float_29($5 | 0, btAlignedObjectArray_btRigidBody____operator_5b_5d_28int_29($5 + 244 | 0 | 0, 0 | 0) | 0 | 0, btAlignedObjectArray_btRigidBody____size_28_29_20const($5 + 244 | 0 | 0) | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 136 | 0) >> 2]))); + } + label$2 : { + if (!((HEAPU8[($5 + 291 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + CProfileSample__CProfileSample_28char_20const__29($4 + 134 | 0 | 0, 76238 | 0) | 0; + HEAP32[($4 + 128 | 0) >> 2] = 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($4 + 128 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btPersistentManifold____size_28_29_20const($5 + 320 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$3 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btPersistentManifold____operator_5b_5d_28int_29($5 + 320 | 0 | 0, HEAP32[($4 + 128 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 124 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btRigidBody__upcast_28btCollisionObject__29(btPersistentManifold__getBody0_28_29_20const(HEAP32[($4 + 124 | 0) >> 2] | 0 | 0) | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 120 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btRigidBody__upcast_28btCollisionObject__29(btPersistentManifold__getBody1_28_29_20const(HEAP32[($4 + 124 | 0) >> 2] | 0 | 0) | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 116 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($4 + 112 | 0) >> 2] = 0; + label$5 : { + label$6 : while (1) { + if (!((HEAP32[($4 + 112 | 0) >> 2] | 0 | 0) < (btPersistentManifold__getNumContacts_28_29_20const(HEAP32[($4 + 124 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$5 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btPersistentManifold__getContactPoint_28int_29(HEAP32[($4 + 124 | 0) >> 2] | 0 | 0, HEAP32[($4 + 112 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 108 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btManifoldResult__calculateCombinedRestitution_28btCollisionObject_20const__2c_20btCollisionObject_20const__29(HEAP32[($4 + 120 | 0) >> 2] | 0 | 0, HEAP32[($4 + 116 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 104 | 0) >> 2] = wasm2js_f32$0; + label$7 : { + if (!(Math_fround(HEAPF32[($4 + 104 | 0) >> 2]) > Math_fround(0 | 0) & 1 | 0)) { + break label$7 + } + if (!(Math_fround(HEAPF32[((HEAP32[($4 + 108 | 0) >> 2] | 0) + 132 | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0)) { + break label$7 + } + operator__28btVector3_20const__29($4 + 56 | 0 | 0, (HEAP32[($4 + 108 | 0) >> 2] | 0) + 64 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($4 + 72 | 0 | 0, $4 + 56 | 0 | 0, (HEAP32[($4 + 108 | 0) >> 2] | 0) + 132 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($4 + 88 | 0 | 0, $4 + 72 | 0 | 0, $4 + 104 | 0 | 0); + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btManifoldPoint__getPositionWorldOnA_28_29_20const(HEAP32[($4 + 108 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 52 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btManifoldPoint__getPositionWorldOnB_28_29_20const(HEAP32[($4 + 108 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 48 | 0) >> 2] = wasm2js_i32$1; + operator__28btVector3_20const__2c_20btVector3_20const__29($4 + 32 | 0 | 0, HEAP32[($4 + 52 | 0) >> 2] | 0 | 0, btTransform__getOrigin_28_29(btCollisionObject__getWorldTransform_28_29(HEAP32[($4 + 120 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($4 + 16 | 0 | 0, HEAP32[($4 + 48 | 0) >> 2] | 0 | 0, btTransform__getOrigin_28_29(btCollisionObject__getWorldTransform_28_29(HEAP32[($4 + 116 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0); + label$8 : { + if (!((HEAP32[($4 + 120 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$8 + } + btRigidBody__applyImpulse_28btVector3_20const__2c_20btVector3_20const__29(HEAP32[($4 + 120 | 0) >> 2] | 0 | 0, $4 + 88 | 0 | 0, $4 + 32 | 0 | 0); + } + label$9 : { + if (!((HEAP32[($4 + 116 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$9 + } + $146 = HEAP32[($4 + 116 | 0) >> 2] | 0; + operator__28btVector3_20const__29($4 | 0, $4 + 88 | 0 | 0); + btRigidBody__applyImpulse_28btVector3_20const__2c_20btVector3_20const__29($146 | 0, $4 | 0, $4 + 16 | 0 | 0); + } + } + HEAP32[($4 + 112 | 0) >> 2] = (HEAP32[($4 + 112 | 0) >> 2] | 0) + 1 | 0; + continue label$6; + }; + } + HEAP32[($4 + 128 | 0) >> 2] = (HEAP32[($4 + 128 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + CProfileSample___CProfileSample_28_29($4 + 134 | 0 | 0) | 0; + } + CProfileSample___CProfileSample_28_29($4 + 135 | 0 | 0) | 0; + __stack_pointer = $4 + 144 | 0; + return; + } + + function btDiscreteDynamicsWorld__predictUnconstraintMotion_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAPF32[($4 + 24 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + CProfileSample__CProfileSample_28char_20const__29($4 + 23 | 0 | 0, 76276 | 0) | 0; + HEAP32[($4 + 16 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btRigidBody____size_28_29_20const($5 + 244 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btRigidBody____operator_5b_5d_28int_29($5 + 244 | 0 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + label$3 : { + if ((btCollisionObject__isStaticOrKinematicObject_28_29_20const(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$3 + } + btRigidBody__applyDamping_28float_29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 24 | 0) >> 2]))); + btRigidBody__predictIntegratedTransform_28float_2c_20btTransform__29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 24 | 0) >> 2])), btCollisionObject__getInterpolationWorldTransform_28_29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0 | 0); + } + HEAP32[($4 + 16 | 0) >> 2] = (HEAP32[($4 + 16 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + CProfileSample___CProfileSample_28_29($4 + 23 | 0 | 0) | 0; + __stack_pointer = $4 + 32 | 0; + return; + } + + function btDiscreteDynamicsWorld__debugDrawConstraint_28btTypedConstraint__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $5 = 0, $8 = 0, $18 = 0, $19 = 0, $28 = 0, $42 = 0, $65 = 0, $75 = 0, $76 = 0, $92 = 0, $109 = 0, $117 = 0, $118 = 0, $134 = 0, $154 = 0, $175 = 0, $201 = 0, $251 = 0, $286 = 0, $312 = 0, $349 = 0, $390 = 0, $401 = 0, $421 = 0, $434 = 0, $492 = 0, $493 = 0, $518 = 0, $558 = 0, $575 = 0, $627 = 0, $659 = 0, $802 = 0, $830 = 0, $857 = 0, $858 = 0, $868 = 0, $869 = 0, $878 = 0, $904 = 0, $921 = 0, $973 = 0, $1005 = 0, $1148 = 0, $1176 = 0, $1203 = 0, $1204 = 0, $1214 = 0, $1215 = 0, $1224 = 0, $1250 = 0, $1267 = 0, $1283 = 0, $1346 = 0, $1383 = 0, $1454 = 0, $1458 = 0, $1573 = 0, $1577 = 0, $1610 = 0, $1614 = 0, $1662 = 0, $1666 = 0, $1699 = 0, $1703 = 0, $2159 = 0, $2163 = 0, $2240 = 0, $2244 = 0, $2329 = 0, $2333 = 0, $2450 = 0, $2454 = 0, $2797 = 0, $2801 = 0, $703 = Math_fround(0), $712 = Math_fround(0), $732 = Math_fround(0), $755 = Math_fround(0), $763 = Math_fround(0), $3208 = 0, $3212 = 0, $3232 = 0, $3236 = 0, $3522 = 0, $3526 = 0, $1049 = Math_fround(0), $1058 = Math_fround(0), $1078 = Math_fround(0), $1101 = Math_fround(0), $1109 = Math_fround(0), $3933 = 0, $3937 = 0, $3957 = 0, $3961 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$2 = 0, wasm2js_i32$3 = 0, wasm2js_i32$4 = 0; + $4 = __stack_pointer - 1632 | 0; + __stack_pointer = $4; + HEAP32[($4 + 1628 | 0) >> 2] = $0; + HEAP32[($4 + 1624 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 1628 | 0) >> 2] | 0; + $8 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$8 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($4 + 1496 | 0, $8); + $18 = ($4 + 1496 | 0) + 112 | 0; + $19 = 8; + i64toi32_i32$2 = $18 + $19 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1454 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 1480 | 0) + $19 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1454; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $18; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1458 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 1480 | 0) >> 2] = $1458; + HEAP32[($4 + 1484 | 0) >> 2] = i64toi32_i32$0; + $28 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = ((FUNCTION_TABLE[HEAP32[((HEAP32[$28 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($28) | 0) & 2048 | 0 | 0) != (0 | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 1479 | 0) >> 0] = wasm2js_i32$1; + $42 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = ((FUNCTION_TABLE[HEAP32[((HEAP32[$42 >> 2] | 0) + 56 | 0) >> 2] | 0 | 0]($42) | 0) & 4096 | 0 | 0) != (0 | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 1478 | 0) >> 0] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btTypedConstraint__getDbgDrawSize_28_29(HEAP32[($4 + 1624 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 1472 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($4 + 1472 | 0) >> 2]) <= Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + break label$1; + } + $65 = (btTypedConstraint__getConstraintType_28_29_20const(HEAP32[($4 + 1624 | 0) >> 2] | 0 | 0) | 0) + -3 | 0; + label$3 : { + label$4 : { + switch ($65 | 0) { + case 0: + HEAP32[($4 + 1468 | 0) >> 2] = HEAP32[($4 + 1624 | 0) >> 2] | 0; + btTransform__btTransform_28_29($4 + 1404 | 0 | 0) | 0; + btTransform__setIdentity_28_29($4 + 1404 | 0 | 0); + $75 = btPoint2PointConstraint__getPivotInA_28_29_20const(HEAP32[($4 + 1468 | 0) >> 2] | 0 | 0) | 0; + $76 = 8; + i64toi32_i32$2 = $75 + $76 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1573 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 1384 | 0) + $76 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1573; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $75; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1577 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 1384 | 0) >> 2] = $1577; + HEAP32[($4 + 1388 | 0) >> 2] = i64toi32_i32$0; + btTransform__operator__28btVector3_20const__29_20const($4 + 1368 | 0 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(btTypedConstraint__getRigidBodyA_28_29(HEAP32[($4 + 1468 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, $4 + 1384 | 0 | 0); + $92 = 8; + i64toi32_i32$2 = ($4 + 1368 | 0) + $92 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1610 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 1384 | 0) + $92 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1610; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $4; + i64toi32_i32$1 = HEAP32[($4 + 1368 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($4 + 1372 | 0) >> 2] | 0; + $1614 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 1384 | 0) >> 2] = $1614; + HEAP32[($4 + 1388 | 0) >> 2] = i64toi32_i32$0; + btTransform__setOrigin_28btVector3_20const__29($4 + 1404 | 0 | 0, $4 + 1384 | 0 | 0); + $109 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$109 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($109, $4 + 1404 | 0, Math_fround(HEAPF32[($4 + 1472 | 0) >> 2])); + $117 = btPoint2PointConstraint__getPivotInB_28_29_20const(HEAP32[($4 + 1468 | 0) >> 2] | 0 | 0) | 0; + $118 = 8; + i64toi32_i32$2 = $117 + $118 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1662 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 1384 | 0) + $118 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1662; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $117; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1666 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 1384 | 0) >> 2] = $1666; + HEAP32[($4 + 1388 | 0) >> 2] = i64toi32_i32$0; + btTransform__operator__28btVector3_20const__29_20const($4 + 1352 | 0 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(btTypedConstraint__getRigidBodyB_28_29(HEAP32[($4 + 1468 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, $4 + 1384 | 0 | 0); + $134 = 8; + i64toi32_i32$2 = ($4 + 1352 | 0) + $134 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1699 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 1384 | 0) + $134 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1699; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $4; + i64toi32_i32$1 = HEAP32[($4 + 1352 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($4 + 1356 | 0) >> 2] | 0; + $1703 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 1384 | 0) >> 2] = $1703; + HEAP32[($4 + 1388 | 0) >> 2] = i64toi32_i32$0; + btTransform__setOrigin_28btVector3_20const__29($4 + 1404 | 0 | 0, $4 + 1384 | 0 | 0); + label$11 : { + if (!((HEAPU8[($4 + 1479 | 0) >> 0] | 0) & 1 | 0)) { + break label$11 + } + $154 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$154 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($154, $4 + 1404 | 0, Math_fround(HEAPF32[($4 + 1472 | 0) >> 2])); + } + break label$3; + case 1: + HEAP32[($4 + 1348 | 0) >> 2] = HEAP32[($4 + 1624 | 0) >> 2] | 0; + btTransform__operator__28btTransform_20const__29_20const($4 + 1284 | 0 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(btHingeConstraint__getRigidBodyA_28_29(HEAP32[($4 + 1348 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, btHingeConstraint__getAFrame_28_29(HEAP32[($4 + 1348 | 0) >> 2] | 0 | 0) | 0 | 0); + label$12 : { + if (!((HEAPU8[($4 + 1479 | 0) >> 0] | 0) & 1 | 0)) { + break label$12 + } + $175 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$175 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($175, $4 + 1284 | 0, Math_fround(HEAPF32[($4 + 1472 | 0) >> 2])); + } + btTransform__operator__28btTransform_20const__29_20const($4 + 1220 | 0 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(btHingeConstraint__getRigidBodyB_28_29(HEAP32[($4 + 1348 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, btHingeConstraint__getBFrame_28_29(HEAP32[($4 + 1348 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator__28btTransform_20const__29($4 + 1284 | 0 | 0, $4 + 1220 | 0 | 0) | 0; + label$13 : { + if (!((HEAPU8[($4 + 1479 | 0) >> 0] | 0) & 1 | 0)) { + break label$13 + } + $201 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$201 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($201, $4 + 1284 | 0, Math_fround(HEAPF32[($4 + 1472 | 0) >> 2])); + } + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btHingeConstraint__getLowerLimit_28_29_20const(HEAP32[($4 + 1348 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 1216 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btHingeConstraint__getUpperLimit_28_29_20const(HEAP32[($4 + 1348 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 1212 | 0) >> 2] = wasm2js_f32$0; + label$14 : { + if (!(Math_fround(HEAPF32[($4 + 1216 | 0) >> 2]) == Math_fround(HEAPF32[($4 + 1212 | 0) >> 2]) & 1 | 0)) { + break label$14 + } + break label$3; + } + HEAP8[($4 + 1211 | 0) >> 0] = 1; + label$15 : { + if ((btHingeConstraint__hasLimit_28_29_20const(HEAP32[($4 + 1348 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$15 + } + HEAPF32[($4 + 1216 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 1212 | 0) >> 2] = Math_fround(6.2831854820251465); + HEAP8[($4 + 1211 | 0) >> 0] = 0; + } + label$16 : { + if (!((HEAPU8[($4 + 1478 | 0) >> 0] | 0) & 1 | 0)) { + break label$16 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btTransform__getOrigin_28_29($4 + 1284 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 1204 | 0) >> 2] = wasm2js_i32$1; + btMatrix3x3__getColumn_28int_29_20const($4 + 1188 | 0 | 0, btTransform__getBasis_28_29($4 + 1284 | 0 | 0) | 0 | 0, 2 | 0); + btMatrix3x3__getColumn_28int_29_20const($4 + 1172 | 0 | 0, btTransform__getBasis_28_29($4 + 1284 | 0 | 0) | 0 | 0, 0 | 0); + $251 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$251 >> 2] | 0) + 68 | 0) >> 2] | 0 | 0]($251, HEAP32[($4 + 1204 | 0) >> 2] | 0, $4 + 1188 | 0, $4 + 1172 | 0, Math_fround(HEAPF32[($4 + 1472 | 0) >> 2]), Math_fround(HEAPF32[($4 + 1472 | 0) >> 2]), Math_fround(HEAPF32[($4 + 1216 | 0) >> 2]), Math_fround(HEAPF32[($4 + 1212 | 0) >> 2]), $4 + 1480 | 0, (HEAPU8[($4 + 1211 | 0) >> 0] | 0) & 1 | 0, Math_fround(10.0)); + } + break label$3; + case 2: + HEAP32[($4 + 1168 | 0) >> 2] = HEAP32[($4 + 1624 | 0) >> 2] | 0; + btTransform__operator__28btTransform_20const__29_20const($4 + 1104 | 0 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(btConeTwistConstraint__getRigidBodyA_28_29_20const(HEAP32[($4 + 1168 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, btConeTwistConstraint__getAFrame_28_29_20const(HEAP32[($4 + 1168 | 0) >> 2] | 0 | 0) | 0 | 0); + label$17 : { + if (!((HEAPU8[($4 + 1479 | 0) >> 0] | 0) & 1 | 0)) { + break label$17 + } + $286 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$286 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($286, $4 + 1104 | 0, Math_fround(HEAPF32[($4 + 1472 | 0) >> 2])); + } + btTransform__operator__28btTransform_20const__29_20const($4 + 1040 | 0 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(btConeTwistConstraint__getRigidBodyB_28_29_20const(HEAP32[($4 + 1168 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, btConeTwistConstraint__getBFrame_28_29_20const(HEAP32[($4 + 1168 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator__28btTransform_20const__29($4 + 1104 | 0 | 0, $4 + 1040 | 0 | 0) | 0; + label$18 : { + if (!((HEAPU8[($4 + 1479 | 0) >> 0] | 0) & 1 | 0)) { + break label$18 + } + $312 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$312 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($312, $4 + 1104 | 0, Math_fround(HEAPF32[($4 + 1472 | 0) >> 2])); + } + label$19 : { + if (!((HEAPU8[($4 + 1478 | 0) >> 0] | 0) & 1 | 0)) { + break label$19 + } + HEAPF32[($4 + 1036 | 0) >> 2] = Math_fround(HEAPF32[($4 + 1472 | 0) >> 2]); + HEAPF32[($4 + 1032 | 0) >> 2] = Math_fround(Math_fround(Math_fround(6.283185005187988) * Math_fround((HEAP32[(0 + 112852 | 0) >> 2] | 0) - 1 | 0 | 0)) / Math_fround(HEAP32[(0 + 112852 | 0) >> 2] | 0 | 0)); + btConeTwistConstraint__GetPointForAngle_28float_2c_20float_29_20const($4 + 1016 | 0 | 0, HEAP32[($4 + 1168 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 1032 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($4 + 1036 | 0) >> 2]))); + btTransform__operator__28btVector3_20const__29_20const($4 + 1e3 | 0 | 0, $4 + 1104 | 0 | 0, $4 + 1016 | 0 | 0); + $349 = 8; + i64toi32_i32$2 = ($4 + 1e3 | 0) + $349 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2159 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 1016 | 0) + $349 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2159; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $4; + i64toi32_i32$1 = HEAP32[($4 + 1e3 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($4 + 1004 | 0) >> 2] | 0; + $2163 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 1016 | 0) >> 2] = $2163; + HEAP32[($4 + 1020 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4 + 996 | 0) >> 2] = 0; + label$20 : { + label$21 : while (1) { + if (!((HEAP32[($4 + 996 | 0) >> 2] | 0 | 0) < (HEAP32[(0 + 112852 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$20 + } + HEAPF32[($4 + 1032 | 0) >> 2] = Math_fround(Math_fround(Math_fround(6.283185005187988) * Math_fround(HEAP32[($4 + 996 | 0) >> 2] | 0 | 0)) / Math_fround(HEAP32[(0 + 112852 | 0) >> 2] | 0 | 0)); + btConeTwistConstraint__GetPointForAngle_28float_2c_20float_29_20const($4 + 976 | 0 | 0, HEAP32[($4 + 1168 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 1032 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($4 + 1036 | 0) >> 2]))); + btTransform__operator__28btVector3_20const__29_20const($4 + 960 | 0 | 0, $4 + 1104 | 0 | 0, $4 + 976 | 0 | 0); + $390 = 8; + i64toi32_i32$2 = ($4 + 960 | 0) + $390 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2240 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 976 | 0) + $390 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2240; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $4; + i64toi32_i32$1 = HEAP32[($4 + 960 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($4 + 964 | 0) >> 2] | 0; + $2244 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 976 | 0) >> 2] = $2244; + HEAP32[($4 + 980 | 0) >> 2] = i64toi32_i32$0; + $401 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$401 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($401, $4 + 1016 | 0, $4 + 976 | 0, $4 + 1480 | 0); + label$22 : { + if ((HEAP32[($4 + 996 | 0) >> 2] | 0 | 0) % ((HEAP32[(0 + 112852 | 0) >> 2] | 0 | 0) / (8 | 0) | 0 | 0) | 0) { + break label$22 + } + $421 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + ((((wasm2js_i32$1 = $421, wasm2js_i32$2 = btTransform__getOrigin_28_29($4 + 1104 | 0 | 0) | 0), wasm2js_i32$3 = $4 + 976 | 0), wasm2js_i32$4 = $4 + 1480 | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$421 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0, wasm2js_i32$3 | 0, wasm2js_i32$4 | 0); + } + $434 = 8; + i64toi32_i32$2 = ($4 + 976 | 0) + $434 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2329 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 1016 | 0) + $434 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2329; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $4; + i64toi32_i32$1 = HEAP32[($4 + 976 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($4 + 980 | 0) >> 2] | 0; + $2333 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 1016 | 0) >> 2] = $2333; + HEAP32[($4 + 1020 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4 + 996 | 0) >> 2] = (HEAP32[($4 + 996 | 0) >> 2] | 0) + 1 | 0; + continue label$21; + }; + } + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btConeTwistConstraint__getTwistSpan_28_29_20const(HEAP32[($4 + 1168 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 956 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btConeTwistConstraint__getTwistAngle_28_29_20const(HEAP32[($4 + 1168 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 952 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_i32$4 = Math_fround(btRigidBody__getInvMass_28_29_20const(btConeTwistConstraint__getRigidBodyB_28_29_20const(HEAP32[($4 + 1168 | 0) >> 2] | 0 | 0) | 0 | 0)) > Math_fround(0 | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 951 | 0) >> 0] = wasm2js_i32$4; + label$23 : { + label$24 : { + if (!((HEAPU8[($4 + 951 | 0) >> 0] | 0) & 1 | 0)) { + break label$24 + } + btTransform__operator__28btTransform_20const__29_20const($4 + 884 | 0 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(btConeTwistConstraint__getRigidBodyB_28_29_20const(HEAP32[($4 + 1168 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, btConeTwistConstraint__getBFrame_28_29_20const(HEAP32[($4 + 1168 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator__28btTransform_20const__29($4 + 1104 | 0 | 0, $4 + 884 | 0 | 0) | 0; + break label$23; + } + btTransform__operator__28btTransform_20const__29_20const($4 + 820 | 0 | 0, btRigidBody__getCenterOfMassTransform_28_29_20const(btConeTwistConstraint__getRigidBodyA_28_29_20const(HEAP32[($4 + 1168 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, btConeTwistConstraint__getAFrame_28_29_20const(HEAP32[($4 + 1168 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator__28btTransform_20const__29($4 + 1104 | 0 | 0, $4 + 820 | 0 | 0) | 0; + } + $492 = btTransform__getOrigin_28_29($4 + 1104 | 0 | 0) | 0; + $493 = 8; + i64toi32_i32$2 = $492 + $493 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2450 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 800 | 0) + $493 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2450; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $492; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2454 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 800 | 0) >> 2] = $2454; + HEAP32[($4 + 804 | 0) >> 2] = i64toi32_i32$0; + btMatrix3x3__getColumn_28int_29_20const($4 + 784 | 0 | 0, btTransform__getBasis_28_29($4 + 1104 | 0 | 0) | 0 | 0, 0 | 0); + btMatrix3x3__getColumn_28int_29_20const($4 + 768 | 0 | 0, btTransform__getBasis_28_29($4 + 1104 | 0 | 0) | 0 | 0, 1 | 0); + $518 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$518 >> 2] | 0) + 68 | 0) >> 2] | 0 | 0]($518, $4 + 800 | 0, $4 + 784 | 0, $4 + 768 | 0, Math_fround(HEAPF32[($4 + 1472 | 0) >> 2]), Math_fround(HEAPF32[($4 + 1472 | 0) >> 2]), Math_fround(Math_fround(-Math_fround(HEAPF32[($4 + 952 | 0) >> 2])) - Math_fround(HEAPF32[($4 + 956 | 0) >> 2])), Math_fround(Math_fround(-Math_fround(HEAPF32[($4 + 952 | 0) >> 2])) + Math_fround(HEAPF32[($4 + 956 | 0) >> 2])), $4 + 1480 | 0, 1 & 1 | 0, Math_fround(10.0)); + } + break label$3; + case 3: + case 6: + HEAP32[($4 + 764 | 0) >> 2] = HEAP32[($4 + 1624 | 0) >> 2] | 0; + btTransform__btTransform_28btTransform_20const__29($4 + 700 | 0 | 0, btGeneric6DofConstraint__getCalculatedTransformA_28_29_20const(HEAP32[($4 + 764 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + label$25 : { + if (!((HEAPU8[($4 + 1479 | 0) >> 0] | 0) & 1 | 0)) { + break label$25 + } + $558 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$558 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($558, $4 + 700 | 0, Math_fround(HEAPF32[($4 + 1472 | 0) >> 2])); + } + btTransform__operator__28btTransform_20const__29($4 + 700 | 0 | 0, btGeneric6DofConstraint__getCalculatedTransformB_28_29_20const(HEAP32[($4 + 764 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + label$26 : { + if (!((HEAPU8[($4 + 1479 | 0) >> 0] | 0) & 1 | 0)) { + break label$26 + } + $575 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$575 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($575, $4 + 700 | 0, Math_fround(HEAPF32[($4 + 1472 | 0) >> 2])); + } + label$27 : { + if (!((HEAPU8[($4 + 1478 | 0) >> 0] | 0) & 1 | 0)) { + break label$27 + } + btTransform__operator__28btTransform_20const__29($4 + 700 | 0 | 0, btGeneric6DofConstraint__getCalculatedTransformA_28_29_20const(HEAP32[($4 + 764 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$4 = btTransform__getOrigin_28_29_20const(btGeneric6DofConstraint__getCalculatedTransformB_28_29_20const(HEAP32[($4 + 764 | 0) >> 2] | 0 | 0) | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 696 | 0) >> 2] = wasm2js_i32$4; + btMatrix3x3__getColumn_28int_29_20const($4 + 680 | 0 | 0, btTransform__getBasis_28_29($4 + 700 | 0 | 0) | 0 | 0, 2 | 0); + btMatrix3x3__getColumn_28int_29_20const($4 + 664 | 0 | 0, btTransform__getBasis_28_29($4 + 700 | 0 | 0) | 0 | 0, 0 | 0); + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(HEAPF32[(btGeneric6DofConstraint__getRotationalLimitMotor_28int_29(HEAP32[($4 + 764 | 0) >> 2] | 0 | 0, 1 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 660 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(HEAPF32[((btGeneric6DofConstraint__getRotationalLimitMotor_28int_29(HEAP32[($4 + 764 | 0) >> 2] | 0 | 0, 1 | 0) | 0) + 4 | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 656 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(HEAPF32[(btGeneric6DofConstraint__getRotationalLimitMotor_28int_29(HEAP32[($4 + 764 | 0) >> 2] | 0 | 0, 2 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 652 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(HEAPF32[((btGeneric6DofConstraint__getRotationalLimitMotor_28int_29(HEAP32[($4 + 764 | 0) >> 2] | 0 | 0, 2 | 0) | 0) + 4 | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 648 | 0) >> 2] = wasm2js_f32$0; + $627 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$627 >> 2] | 0) + 72 | 0) >> 2] | 0 | 0]($627, HEAP32[($4 + 696 | 0) >> 2] | 0, $4 + 680 | 0, $4 + 664 | 0, Math_fround(Math_fround(HEAPF32[($4 + 1472 | 0) >> 2]) * Math_fround(.8999999761581421)), Math_fround(HEAPF32[($4 + 660 | 0) >> 2]), Math_fround(HEAPF32[($4 + 656 | 0) >> 2]), Math_fround(HEAPF32[($4 + 652 | 0) >> 2]), Math_fround(HEAPF32[($4 + 648 | 0) >> 2]), $4 + 1480 | 0, Math_fround(10.0), 1 & 1 | 0); + btMatrix3x3__getColumn_28int_29_20const($4 + 632 | 0 | 0, btTransform__getBasis_28_29($4 + 700 | 0 | 0) | 0 | 0, 1 | 0); + $659 = 8; + i64toi32_i32$2 = ($4 + 632 | 0) + $659 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2797 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 664 | 0) + $659 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2797; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $4; + i64toi32_i32$1 = HEAP32[($4 + 632 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($4 + 636 | 0) >> 2] | 0; + $2801 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 664 | 0) >> 2] = $2801; + HEAP32[($4 + 668 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btGeneric6DofConstraint__getAngle_28int_29_20const(HEAP32[($4 + 764 | 0) >> 2] | 0 | 0, 1 | 0))), HEAPF32[(wasm2js_i32$0 + 628 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btGeneric6DofConstraint__getAngle_28int_29_20const(HEAP32[($4 + 764 | 0) >> 2] | 0 | 0, 2 | 0))), HEAPF32[(wasm2js_i32$0 + 624 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btCos_28float_29(Math_fround(Math_fround(HEAPF32[($4 + 628 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 620 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btSin_28float_29(Math_fround(Math_fround(HEAPF32[($4 + 628 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 616 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btCos_28float_29(Math_fround(Math_fround(HEAPF32[($4 + 624 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 612 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btSin_28float_29(Math_fround(Math_fround(HEAPF32[($4 + 624 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 608 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28_29($4 + 592 | 0 | 0) | 0; + $703 = Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[($4 + 620 | 0) >> 2]) * Math_fround(HEAPF32[($4 + 612 | 0) >> 2])) * Math_fround(HEAPF32[(btVector3__operator_20float__28_29($4 + 664 | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($4 + 620 | 0) >> 2]) * Math_fround(HEAPF32[($4 + 608 | 0) >> 2])) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($4 + 664 | 0 | 0) | 0) + 4 | 0) >> 2]))); + $712 = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($4 + 616 | 0) >> 2])) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($4 + 664 | 0 | 0) | 0) + 8 | 0) >> 2])) + $703); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($4 + 592 | 0 | 0) | 0, wasm2js_f32$0 = $712), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $732 = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($4 + 608 | 0) >> 2])) * Math_fround(HEAPF32[(btVector3__operator_20float__28_29($4 + 664 | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($4 + 612 | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($4 + 664 | 0 | 0) | 0) + 4 | 0) >> 2]))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($4 + 592 | 0 | 0) | 0, wasm2js_f32$0 = $732), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $755 = Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[($4 + 612 | 0) >> 2]) * Math_fround(HEAPF32[($4 + 616 | 0) >> 2])) * Math_fround(HEAPF32[(btVector3__operator_20float__28_29($4 + 664 | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($4 + 608 | 0) >> 2]) * Math_fround(HEAPF32[($4 + 616 | 0) >> 2])) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($4 + 664 | 0 | 0) | 0) + 4 | 0) >> 2]))); + $763 = Math_fround(Math_fround(Math_fround(HEAPF32[($4 + 620 | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($4 + 664 | 0 | 0) | 0) + 8 | 0) >> 2])) + $755); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($4 + 592 | 0 | 0) | 0, wasm2js_f32$0 = $763), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + btTransform__operator__28btTransform_20const__29($4 + 700 | 0 | 0, btGeneric6DofConstraint__getCalculatedTransformB_28_29_20const(HEAP32[($4 + 764 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + btMatrix3x3__getColumn_28int_29_20const($4 + 560 | 0 | 0, btTransform__getBasis_28_29($4 + 700 | 0 | 0) | 0 | 0, 0 | 0); + operator__28btVector3_20const__29($4 + 576 | 0 | 0, $4 + 560 | 0 | 0); + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(HEAPF32[(btGeneric6DofConstraint__getRotationalLimitMotor_28int_29(HEAP32[($4 + 764 | 0) >> 2] | 0 | 0, 0 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 556 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(HEAPF32[((btGeneric6DofConstraint__getRotationalLimitMotor_28int_29(HEAP32[($4 + 764 | 0) >> 2] | 0 | 0, 0 | 0) | 0) + 4 | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 552 | 0) >> 2] = wasm2js_f32$0; + label$28 : { + label$29 : { + if (!(Math_fround(HEAPF32[($4 + 556 | 0) >> 2]) > Math_fround(HEAPF32[($4 + 552 | 0) >> 2]) & 1 | 0)) { + break label$29 + } + $802 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$802 >> 2] | 0) + 68 | 0) >> 2] | 0 | 0]($802, HEAP32[($4 + 696 | 0) >> 2] | 0, $4 + 576 | 0, $4 + 592 | 0, Math_fround(HEAPF32[($4 + 1472 | 0) >> 2]), Math_fround(HEAPF32[($4 + 1472 | 0) >> 2]), Math_fround(-3.1415927410125732), Math_fround(3.1415927410125732), $4 + 1480 | 0, 0 & 1 | 0, Math_fround(10.0)); + break label$28; + } + label$30 : { + if (!(Math_fround(HEAPF32[($4 + 556 | 0) >> 2]) < Math_fround(HEAPF32[($4 + 552 | 0) >> 2]) & 1 | 0)) { + break label$30 + } + $830 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$830 >> 2] | 0) + 68 | 0) >> 2] | 0 | 0]($830, HEAP32[($4 + 696 | 0) >> 2] | 0, $4 + 576 | 0, $4 + 592 | 0, Math_fround(HEAPF32[($4 + 1472 | 0) >> 2]), Math_fround(HEAPF32[($4 + 1472 | 0) >> 2]), Math_fround(HEAPF32[($4 + 556 | 0) >> 2]), Math_fround(HEAPF32[($4 + 552 | 0) >> 2]), $4 + 1480 | 0, 1 & 1 | 0, Math_fround(10.0)); + } + } + btTransform__operator__28btTransform_20const__29($4 + 700 | 0 | 0, btGeneric6DofConstraint__getCalculatedTransformA_28_29_20const(HEAP32[($4 + 764 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + $857 = btGeneric6DofConstraint__getTranslationalLimitMotor_28_29(HEAP32[($4 + 764 | 0) >> 2] | 0 | 0) | 0; + $858 = 8; + i64toi32_i32$2 = $857 + $858 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $3208 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 536 | 0) + $858 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $3208; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $857; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $3212 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 536 | 0) >> 2] = $3212; + HEAP32[($4 + 540 | 0) >> 2] = i64toi32_i32$0; + $868 = (btGeneric6DofConstraint__getTranslationalLimitMotor_28_29(HEAP32[($4 + 764 | 0) >> 2] | 0 | 0) | 0) + 16 | 0; + $869 = 8; + i64toi32_i32$2 = $868 + $869 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $3232 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 520 | 0) + $869 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $3232; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $868; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $3236 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 520 | 0) >> 2] = $3236; + HEAP32[($4 + 524 | 0) >> 2] = i64toi32_i32$0; + $878 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$878 >> 2] | 0) + 80 | 0) >> 2] | 0 | 0]($878, $4 + 536 | 0, $4 + 520 | 0, $4 + 700 | 0, $4 + 1480 | 0); + } + break label$3; + case 9: + HEAP32[($4 + 516 | 0) >> 2] = HEAP32[($4 + 1624 | 0) >> 2] | 0; + btTransform__btTransform_28btTransform_20const__29($4 + 452 | 0 | 0, btGeneric6DofSpring2Constraint__getCalculatedTransformA_28_29_20const(HEAP32[($4 + 516 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + label$31 : { + if (!((HEAPU8[($4 + 1479 | 0) >> 0] | 0) & 1 | 0)) { + break label$31 + } + $904 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$904 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($904, $4 + 452 | 0, Math_fround(HEAPF32[($4 + 1472 | 0) >> 2])); + } + btTransform__operator__28btTransform_20const__29($4 + 452 | 0 | 0, btGeneric6DofSpring2Constraint__getCalculatedTransformB_28_29_20const(HEAP32[($4 + 516 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + label$32 : { + if (!((HEAPU8[($4 + 1479 | 0) >> 0] | 0) & 1 | 0)) { + break label$32 + } + $921 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$921 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($921, $4 + 452 | 0, Math_fround(HEAPF32[($4 + 1472 | 0) >> 2])); + } + label$33 : { + if (!((HEAPU8[($4 + 1478 | 0) >> 0] | 0) & 1 | 0)) { + break label$33 + } + btTransform__operator__28btTransform_20const__29($4 + 452 | 0 | 0, btGeneric6DofSpring2Constraint__getCalculatedTransformA_28_29_20const(HEAP32[($4 + 516 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$4 = btTransform__getOrigin_28_29_20const(btGeneric6DofSpring2Constraint__getCalculatedTransformB_28_29_20const(HEAP32[($4 + 516 | 0) >> 2] | 0 | 0) | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 448 | 0) >> 2] = wasm2js_i32$4; + btMatrix3x3__getColumn_28int_29_20const($4 + 432 | 0 | 0, btTransform__getBasis_28_29($4 + 452 | 0 | 0) | 0 | 0, 2 | 0); + btMatrix3x3__getColumn_28int_29_20const($4 + 416 | 0 | 0, btTransform__getBasis_28_29($4 + 452 | 0 | 0) | 0 | 0, 0 | 0); + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(HEAPF32[(btGeneric6DofSpring2Constraint__getRotationalLimitMotor_28int_29(HEAP32[($4 + 516 | 0) >> 2] | 0 | 0, 1 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 412 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(HEAPF32[((btGeneric6DofSpring2Constraint__getRotationalLimitMotor_28int_29(HEAP32[($4 + 516 | 0) >> 2] | 0 | 0, 1 | 0) | 0) + 4 | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 408 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(HEAPF32[(btGeneric6DofSpring2Constraint__getRotationalLimitMotor_28int_29(HEAP32[($4 + 516 | 0) >> 2] | 0 | 0, 2 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 404 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(HEAPF32[((btGeneric6DofSpring2Constraint__getRotationalLimitMotor_28int_29(HEAP32[($4 + 516 | 0) >> 2] | 0 | 0, 2 | 0) | 0) + 4 | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 400 | 0) >> 2] = wasm2js_f32$0; + $973 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$973 >> 2] | 0) + 72 | 0) >> 2] | 0 | 0]($973, HEAP32[($4 + 448 | 0) >> 2] | 0, $4 + 432 | 0, $4 + 416 | 0, Math_fround(Math_fround(HEAPF32[($4 + 1472 | 0) >> 2]) * Math_fround(.8999999761581421)), Math_fround(HEAPF32[($4 + 412 | 0) >> 2]), Math_fround(HEAPF32[($4 + 408 | 0) >> 2]), Math_fround(HEAPF32[($4 + 404 | 0) >> 2]), Math_fround(HEAPF32[($4 + 400 | 0) >> 2]), $4 + 1480 | 0, Math_fround(10.0), 1 & 1 | 0); + btMatrix3x3__getColumn_28int_29_20const($4 + 384 | 0 | 0, btTransform__getBasis_28_29($4 + 452 | 0 | 0) | 0 | 0, 1 | 0); + $1005 = 8; + i64toi32_i32$2 = ($4 + 384 | 0) + $1005 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $3522 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 416 | 0) + $1005 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $3522; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $4; + i64toi32_i32$1 = HEAP32[($4 + 384 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($4 + 388 | 0) >> 2] | 0; + $3526 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 416 | 0) >> 2] = $3526; + HEAP32[($4 + 420 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btGeneric6DofSpring2Constraint__getAngle_28int_29_20const(HEAP32[($4 + 516 | 0) >> 2] | 0 | 0, 1 | 0))), HEAPF32[(wasm2js_i32$0 + 380 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btGeneric6DofSpring2Constraint__getAngle_28int_29_20const(HEAP32[($4 + 516 | 0) >> 2] | 0 | 0, 2 | 0))), HEAPF32[(wasm2js_i32$0 + 376 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btCos_28float_29(Math_fround(Math_fround(HEAPF32[($4 + 380 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 372 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btSin_28float_29(Math_fround(Math_fround(HEAPF32[($4 + 380 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 368 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btCos_28float_29(Math_fround(Math_fround(HEAPF32[($4 + 376 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 364 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btSin_28float_29(Math_fround(Math_fround(HEAPF32[($4 + 376 | 0) >> 2]))))), HEAPF32[(wasm2js_i32$0 + 360 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28_29($4 + 344 | 0 | 0) | 0; + $1049 = Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[($4 + 372 | 0) >> 2]) * Math_fround(HEAPF32[($4 + 364 | 0) >> 2])) * Math_fround(HEAPF32[(btVector3__operator_20float__28_29($4 + 416 | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($4 + 372 | 0) >> 2]) * Math_fround(HEAPF32[($4 + 360 | 0) >> 2])) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($4 + 416 | 0 | 0) | 0) + 4 | 0) >> 2]))); + $1058 = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($4 + 368 | 0) >> 2])) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($4 + 416 | 0 | 0) | 0) + 8 | 0) >> 2])) + $1049); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($4 + 344 | 0 | 0) | 0, wasm2js_f32$0 = $1058), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $1078 = Math_fround(Math_fround(Math_fround(-Math_fround(HEAPF32[($4 + 360 | 0) >> 2])) * Math_fround(HEAPF32[(btVector3__operator_20float__28_29($4 + 416 | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(HEAPF32[($4 + 364 | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($4 + 416 | 0 | 0) | 0) + 4 | 0) >> 2]))); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($4 + 344 | 0 | 0) | 0, wasm2js_f32$0 = $1078), HEAPF32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_f32$0; + $1101 = Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[($4 + 364 | 0) >> 2]) * Math_fround(HEAPF32[($4 + 368 | 0) >> 2])) * Math_fround(HEAPF32[(btVector3__operator_20float__28_29($4 + 416 | 0 | 0) | 0) >> 2])) + Math_fround(Math_fround(Math_fround(HEAPF32[($4 + 360 | 0) >> 2]) * Math_fround(HEAPF32[($4 + 368 | 0) >> 2])) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($4 + 416 | 0 | 0) | 0) + 4 | 0) >> 2]))); + $1109 = Math_fround(Math_fround(Math_fround(HEAPF32[($4 + 372 | 0) >> 2]) * Math_fround(HEAPF32[((btVector3__operator_20float__28_29($4 + 416 | 0 | 0) | 0) + 8 | 0) >> 2])) + $1101); + (wasm2js_i32$0 = btVector3__operator_20float__28_29($4 + 344 | 0 | 0) | 0, wasm2js_f32$0 = $1109), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + btTransform__operator__28btTransform_20const__29($4 + 452 | 0 | 0, btGeneric6DofSpring2Constraint__getCalculatedTransformB_28_29_20const(HEAP32[($4 + 516 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + btMatrix3x3__getColumn_28int_29_20const($4 + 312 | 0 | 0, btTransform__getBasis_28_29($4 + 452 | 0 | 0) | 0 | 0, 0 | 0); + operator__28btVector3_20const__29($4 + 328 | 0 | 0, $4 + 312 | 0 | 0); + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(HEAPF32[(btGeneric6DofSpring2Constraint__getRotationalLimitMotor_28int_29(HEAP32[($4 + 516 | 0) >> 2] | 0 | 0, 0 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 308 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(HEAPF32[((btGeneric6DofSpring2Constraint__getRotationalLimitMotor_28int_29(HEAP32[($4 + 516 | 0) >> 2] | 0 | 0, 0 | 0) | 0) + 4 | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 304 | 0) >> 2] = wasm2js_f32$0; + label$34 : { + label$35 : { + if (!(Math_fround(HEAPF32[($4 + 308 | 0) >> 2]) > Math_fround(HEAPF32[($4 + 304 | 0) >> 2]) & 1 | 0)) { + break label$35 + } + $1148 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$1148 >> 2] | 0) + 68 | 0) >> 2] | 0 | 0]($1148, HEAP32[($4 + 448 | 0) >> 2] | 0, $4 + 328 | 0, $4 + 344 | 0, Math_fround(HEAPF32[($4 + 1472 | 0) >> 2]), Math_fround(HEAPF32[($4 + 1472 | 0) >> 2]), Math_fround(-3.1415927410125732), Math_fround(3.1415927410125732), $4 + 1480 | 0, 0 & 1 | 0, Math_fround(10.0)); + break label$34; + } + label$36 : { + if (!(Math_fround(HEAPF32[($4 + 308 | 0) >> 2]) < Math_fround(HEAPF32[($4 + 304 | 0) >> 2]) & 1 | 0)) { + break label$36 + } + $1176 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$1176 >> 2] | 0) + 68 | 0) >> 2] | 0 | 0]($1176, HEAP32[($4 + 448 | 0) >> 2] | 0, $4 + 328 | 0, $4 + 344 | 0, Math_fround(HEAPF32[($4 + 1472 | 0) >> 2]), Math_fround(HEAPF32[($4 + 1472 | 0) >> 2]), Math_fround(HEAPF32[($4 + 308 | 0) >> 2]), Math_fround(HEAPF32[($4 + 304 | 0) >> 2]), $4 + 1480 | 0, 1 & 1 | 0, Math_fround(10.0)); + } + } + btTransform__operator__28btTransform_20const__29($4 + 452 | 0 | 0, btGeneric6DofSpring2Constraint__getCalculatedTransformA_28_29_20const(HEAP32[($4 + 516 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + $1203 = btGeneric6DofSpring2Constraint__getTranslationalLimitMotor_28_29(HEAP32[($4 + 516 | 0) >> 2] | 0 | 0) | 0; + $1204 = 8; + i64toi32_i32$2 = $1203 + $1204 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $3933 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 288 | 0) + $1204 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $3933; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $1203; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $3937 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 288 | 0) >> 2] = $3937; + HEAP32[($4 + 292 | 0) >> 2] = i64toi32_i32$0; + $1214 = (btGeneric6DofSpring2Constraint__getTranslationalLimitMotor_28_29(HEAP32[($4 + 516 | 0) >> 2] | 0 | 0) | 0) + 16 | 0; + $1215 = 8; + i64toi32_i32$2 = $1214 + $1215 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $3957 = i64toi32_i32$0; + i64toi32_i32$0 = ($4 + 272 | 0) + $1215 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $3957; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $1214; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $3961 = i64toi32_i32$1; + i64toi32_i32$1 = $4; + HEAP32[($4 + 272 | 0) >> 2] = $3961; + HEAP32[($4 + 276 | 0) >> 2] = i64toi32_i32$0; + $1224 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$1224 >> 2] | 0) + 80 | 0) >> 2] | 0 | 0]($1224, $4 + 288 | 0, $4 + 272 | 0, $4 + 452 | 0, $4 + 1480 | 0); + } + break label$3; + case 4: + HEAP32[($4 + 268 | 0) >> 2] = HEAP32[($4 + 1624 | 0) >> 2] | 0; + btTransform__btTransform_28btTransform_20const__29($4 + 204 | 0 | 0, btSliderConstraint__getCalculatedTransformA_28_29_20const(HEAP32[($4 + 268 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + label$37 : { + if (!((HEAPU8[($4 + 1479 | 0) >> 0] | 0) & 1 | 0)) { + break label$37 + } + $1250 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$1250 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($1250, $4 + 204 | 0, Math_fround(HEAPF32[($4 + 1472 | 0) >> 2])); + } + btTransform__operator__28btTransform_20const__29($4 + 204 | 0 | 0, btSliderConstraint__getCalculatedTransformB_28_29_20const(HEAP32[($4 + 268 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + label$38 : { + if (!((HEAPU8[($4 + 1479 | 0) >> 0] | 0) & 1 | 0)) { + break label$38 + } + $1267 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$1267 >> 2] | 0) + 64 | 0) >> 2] | 0 | 0]($1267, $4 + 204 | 0, Math_fround(HEAPF32[($4 + 1472 | 0) >> 2])); + } + label$39 : { + if (!((HEAPU8[($4 + 1478 | 0) >> 0] | 0) & 1 | 0)) { + break label$39 + } + label$40 : { + label$41 : { + if (!((btSliderConstraint__getUseLinearReferenceFrameA_28_29(HEAP32[($4 + 268 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$41 + } + $1283 = btSliderConstraint__getCalculatedTransformA_28_29_20const(HEAP32[($4 + 268 | 0) >> 2] | 0 | 0) | 0; + break label$40; + } + $1283 = btSliderConstraint__getCalculatedTransformB_28_29_20const(HEAP32[($4 + 268 | 0) >> 2] | 0 | 0) | 0; + } + btTransform__btTransform_28btTransform_20const__29($4 + 140 | 0 | 0, $1283 | 0) | 0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btSliderConstraint__getLowerLinLimit_28_29(HEAP32[($4 + 268 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 104 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($4 + 100 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 96 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 108 | 0 | 0, $4 + 104 | 0 | 0, $4 + 100 | 0 | 0, $4 + 96 | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($4 + 124 | 0 | 0, $4 + 140 | 0 | 0, $4 + 108 | 0 | 0); + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btSliderConstraint__getUpperLinLimit_28_29(HEAP32[($4 + 268 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 60 | 0) >> 2] = wasm2js_f32$0; + HEAPF32[($4 + 56 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 52 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 64 | 0 | 0, $4 + 60 | 0 | 0, $4 + 56 | 0 | 0, $4 + 52 | 0 | 0) | 0; + btTransform__operator__28btVector3_20const__29_20const($4 + 80 | 0 | 0, $4 + 140 | 0 | 0, $4 + 64 | 0 | 0); + $1346 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$1346 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($1346, $4 + 124 | 0, $4 + 80 | 0, $4 + 1480 | 0); + btMatrix3x3__getColumn_28int_29_20const($4 + 36 | 0 | 0, btTransform__getBasis_28_29($4 + 140 | 0 | 0) | 0 | 0, 0 | 0); + btMatrix3x3__getColumn_28int_29_20const($4 + 20 | 0 | 0, btTransform__getBasis_28_29($4 + 140 | 0 | 0) | 0 | 0, 1 | 0); + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btSliderConstraint__getLowerAngLimit_28_29(HEAP32[($4 + 268 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btSliderConstraint__getUpperAngLimit_28_29(HEAP32[($4 + 268 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + (wasm2js_i32$0 = $4, wasm2js_i32$4 = btTransform__getOrigin_28_29_20const(btSliderConstraint__getCalculatedTransformB_28_29_20const(HEAP32[($4 + 268 | 0) >> 2] | 0 | 0) | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$4; + $1383 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($5) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$1383 >> 2] | 0) + 68 | 0) >> 2] | 0 | 0]($1383, HEAP32[($4 + 8 | 0) >> 2] | 0, $4 + 36 | 0, $4 + 20 | 0, Math_fround(HEAPF32[($4 + 1472 | 0) >> 2]), Math_fround(HEAPF32[($4 + 1472 | 0) >> 2]), Math_fround(HEAPF32[($4 + 16 | 0) >> 2]), Math_fround(HEAPF32[($4 + 12 | 0) >> 2]), $4 + 1480 | 0, 1 & 1 | 0, Math_fround(10.0)); + } + break label$3; + default: + break label$4; + }; + } + } + } + __stack_pointer = $4 + 1632 | 0; + return; + } + + function btTypedConstraint__getConstraintType_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btHingeConstraint__getAFrame_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 552 | 0 | 0; + } + + function btHingeConstraint__getBFrame_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 616 | 0 | 0; + } + + function btHingeConstraint__hasLimit_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $12 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $12 = Math_fround(btAngularLimit__getHalfRange_28_29_20const((HEAP32[($3 + 12 | 0) >> 2] | 0) + 688 | 0 | 0)) > Math_fround(0 | 0) & 1 | 0; + __stack_pointer = $3 + 16 | 0; + return $12 | 0; + } + + function btConeTwistConstraint__getRigidBodyA_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0; + } + + function btConeTwistConstraint__getAFrame_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 300 | 0 | 0; + } + + function btConeTwistConstraint__getRigidBodyB_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0; + } + + function btConeTwistConstraint__getBFrame_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 364 | 0 | 0; + } + + function btConeTwistConstraint__getTwistSpan_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 452 | 0) >> 2])); + } + + function btConeTwistConstraint__getTwistAngle_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 512 | 0) >> 2])); + } + + function btGeneric6DofConstraint__getCalculatedTransformA_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 1064 | 0 | 0; + } + + function btGeneric6DofConstraint__getCalculatedTransformB_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 1128 | 0 | 0; + } + + function btGeneric6DofConstraint__getRotationalLimitMotor_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return ((HEAP32[($4 + 12 | 0) >> 2] | 0) + 868 | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 6 | 0) | 0 | 0; + } + + function btGeneric6DofConstraint__getTranslationalLimitMotor_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 680 | 0 | 0; + } + + function btGeneric6DofSpring2Constraint__getCalculatedTransformA_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 1236 | 0 | 0; + } + + function btGeneric6DofSpring2Constraint__getCalculatedTransformB_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 1300 | 0 | 0; + } + + function btGeneric6DofSpring2Constraint__getRotationalLimitMotor_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return ((HEAP32[($4 + 12 | 0) >> 2] | 0) + 968 | 0) + Math_imul(HEAP32[($4 + 8 | 0) >> 2] | 0, 88) | 0 | 0; + } + + function btGeneric6DofSpring2Constraint__getAngle_28int_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $13 = Math_fround(0); + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $13 = Math_fround(HEAPF32[((btVector3__operator_20float_20const__28_29_20const((HEAP32[($4 + 12 | 0) >> 2] | 0) + 1364 | 0 | 0) | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2]); + __stack_pointer = $4 + 16 | 0; + return Math_fround($13); + } + + function btGeneric6DofSpring2Constraint__getTranslationalLimitMotor_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 680 | 0 | 0; + } + + function btSliderConstraint__getCalculatedTransformA_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 824 | 0 | 0; + } + + function btSliderConstraint__getCalculatedTransformB_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAP32[($3 + 12 | 0) >> 2] | 0) + 888 | 0 | 0; + } + + function btSliderConstraint__getUseLinearReferenceFrameA_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return (HEAPU8[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 180 | 0) >> 0] | 0) & 1 | 0 | 0; + } + + function btSliderConstraint__getLowerLinLimit_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 184 | 0) >> 2])); + } + + function btSliderConstraint__getUpperLinLimit_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 188 | 0) >> 2])); + } + + function btSliderConstraint__getLowerAngLimit_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 192 | 0) >> 2])); + } + + function btSliderConstraint__getUpperAngLimit_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 196 | 0) >> 2])); + } + + function btAngularLimit__getHalfRange_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2])); + } + + function btDiscreteDynamicsWorld__setConstraintSolver_28btConstraintSolver__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAPU8[($5 + 289 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + btAlignedFreeInternal_28void__29(HEAP32[($5 + 216 | 0) >> 2] | 0 | 0); + } + HEAP8[($5 + 289 | 0) >> 0] = 0; + HEAP32[($5 + 216 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5 + 212 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return; + } + + function btDiscreteDynamicsWorld__getConstraintSolver_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 216 | 0) >> 2] | 0 | 0; + } + + function btDiscreteDynamicsWorld__getNumConstraints_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0, $7 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $7 = btAlignedObjectArray_btTypedConstraint____size_28_29_20const((HEAP32[($3 + 12 | 0) >> 2] | 0) + 224 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $7 | 0; + } + + function btDiscreteDynamicsWorld__getConstraint_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $10 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $10 = HEAP32[(btAlignedObjectArray_btTypedConstraint____operator_5b_5d_28int_29((HEAP32[($4 + 12 | 0) >> 2] | 0) + 224 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $10 | 0; + } + + function btDiscreteDynamicsWorld__getConstraint_28int_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $10 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $10 = HEAP32[(btAlignedObjectArray_btTypedConstraint____operator_5b_5d_28int_29_20const((HEAP32[($4 + 12 | 0) >> 2] | 0) + 224 | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $10 | 0; + } + + function btAlignedObjectArray_btTypedConstraint____operator_5b_5d_28int_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 176 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btTypedConstraint____size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 177 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 2 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btDiscreteDynamicsWorld__serializeRigidBodies_28btSerializer__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $25 = 0, $29 = 0, $35 = 0, $42 = 0, $67 = 0, $71 = 0, $77 = 0, $84 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 48 | 0; + __stack_pointer = $4; + HEAP32[($4 + 44 | 0) >> 2] = $0; + HEAP32[($4 + 40 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 44 | 0) >> 2] | 0; + HEAP32[($4 + 36 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4 + 36 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btCollisionObject____size_28_29_20const($5 + 4 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btCollisionObject____operator_5b_5d_28int_29($5 + 4 | 0 | 0, HEAP32[($4 + 36 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 32 | 0) >> 2] = wasm2js_i32$1; + label$3 : { + if (!((btCollisionObject__getInternalType_28_29_20const(HEAP32[($4 + 32 | 0) >> 2] | 0 | 0) | 0) & 2 | 0)) { + break label$3 + } + $25 = HEAP32[($4 + 32 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$25 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($25) | 0), HEAP32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_i32$1; + $29 = HEAP32[($4 + 40 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$29 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($29, HEAP32[($4 + 28 | 0) >> 2] | 0, 1) | 0), HEAP32[(wasm2js_i32$0 + 24 | 0) >> 2] = wasm2js_i32$1; + $35 = HEAP32[($4 + 32 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$35 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($35, HEAP32[((HEAP32[($4 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0, HEAP32[($4 + 40 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + $42 = HEAP32[($4 + 40 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$42 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($42, HEAP32[($4 + 24 | 0) >> 2] | 0, HEAP32[($4 + 20 | 0) >> 2] | 0, 1497645650, HEAP32[($4 + 32 | 0) >> 2] | 0); + } + HEAP32[($4 + 36 | 0) >> 2] = (HEAP32[($4 + 36 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + HEAP32[($4 + 36 | 0) >> 2] = 0; + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($4 + 36 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btTypedConstraint____size_28_29_20const($5 + 224 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$4 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btTypedConstraint____operator_5b_5d_28int_29($5 + 224 | 0 | 0, HEAP32[($4 + 36 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + $67 = HEAP32[($4 + 16 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$67 >> 2] | 0) + 36 | 0) >> 2] | 0 | 0]($67) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $71 = HEAP32[($4 + 40 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$71 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($71, HEAP32[($4 + 12 | 0) >> 2] | 0, 1) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + $77 = HEAP32[($4 + 16 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$77 >> 2] | 0) + 40 | 0) >> 2] | 0 | 0]($77, HEAP32[((HEAP32[($4 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0, HEAP32[($4 + 40 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + $84 = HEAP32[($4 + 40 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$84 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($84, HEAP32[($4 + 8 | 0) >> 2] | 0, HEAP32[($4 + 4 | 0) >> 2] | 0, 1397641027, HEAP32[($4 + 16 | 0) >> 2] | 0); + HEAP32[($4 + 36 | 0) >> 2] = (HEAP32[($4 + 36 | 0) >> 2] | 0) + 1 | 0; + continue label$5; + }; + } + __stack_pointer = $4 + 48 | 0; + return; + } + + function btDiscreteDynamicsWorld__serializeDynamicsWorldInfo_28btSerializer__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $7 = 0, $91 = 0, $24 = Math_fround(0), $27 = Math_fround(0), $30 = Math_fround(0), $33 = Math_fround(0), $36 = Math_fround(0), $39 = Math_fround(0), $42 = Math_fround(0), $45 = Math_fround(0), $48 = Math_fround(0), $51 = Math_fround(0), $54 = Math_fround(0), $57 = Math_fround(0), $60 = Math_fround(0), $63 = Math_fround(0), $66 = Math_fround(0), $69 = Math_fround(0), $72 = 0, $75 = 0, $78 = 0, $81 = 0, $84 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + HEAP32[($4 + 28 | 0) >> 2] = $0; + HEAP32[($4 + 24 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 28 | 0) >> 2] | 0; + HEAP32[($4 + 20 | 0) >> 2] = 104; + $7 = HEAP32[($4 + 24 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($7, HEAP32[($4 + 20 | 0) >> 2] | 0, 1) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($4 + 12 | 0) >> 2] = HEAP32[((HEAP32[($4 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + __memset(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, 0 | 0, HEAP32[($4 + 20 | 0) >> 2] | 0 | 0) | 0; + btVector3__serialize_28btVector3FloatData__29_20const($5 + 264 | 0 | 0, (HEAP32[($4 + 12 | 0) >> 2] | 0) + 88 | 0 | 0); + $24 = Math_fround(HEAPF32[(btDynamicsWorld__getSolverInfo_28_29($5 | 0) | 0) >> 2]); + HEAPF32[(HEAP32[($4 + 12 | 0) >> 2] | 0) >> 2] = $24; + $27 = Math_fround(HEAPF32[((btDynamicsWorld__getSolverInfo_28_29($5 | 0) | 0) + 4 | 0) >> 2]); + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $27; + $30 = Math_fround(HEAPF32[((btDynamicsWorld__getSolverInfo_28_29($5 | 0) | 0) + 8 | 0) >> 2]); + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $30; + $33 = Math_fround(HEAPF32[((btDynamicsWorld__getSolverInfo_28_29($5 | 0) | 0) + 12 | 0) >> 2]); + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] = $33; + $36 = Math_fround(HEAPF32[((btDynamicsWorld__getSolverInfo_28_29($5 | 0) | 0) + 16 | 0) >> 2]); + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] = $36; + $39 = Math_fround(HEAPF32[((btDynamicsWorld__getSolverInfo_28_29($5 | 0) | 0) + 24 | 0) >> 2]); + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 20 | 0) >> 2] = $39; + $42 = Math_fround(HEAPF32[((btDynamicsWorld__getSolverInfo_28_29($5 | 0) | 0) + 28 | 0) >> 2]); + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] = $42; + $45 = Math_fround(HEAPF32[((btDynamicsWorld__getSolverInfo_28_29($5 | 0) | 0) + 32 | 0) >> 2]); + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] = $45; + $48 = Math_fround(HEAPF32[((btDynamicsWorld__getSolverInfo_28_29($5 | 0) | 0) + 36 | 0) >> 2]); + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 32 | 0) >> 2] = $48; + $51 = Math_fround(HEAPF32[((btDynamicsWorld__getSolverInfo_28_29($5 | 0) | 0) + 40 | 0) >> 2]); + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] = $51; + $54 = Math_fround(HEAPF32[((btDynamicsWorld__getSolverInfo_28_29($5 | 0) | 0) + 56 | 0) >> 2]); + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] = $54; + $57 = Math_fround(HEAPF32[((btDynamicsWorld__getSolverInfo_28_29($5 | 0) | 0) + 60 | 0) >> 2]); + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 44 | 0) >> 2] = $57; + $60 = Math_fround(HEAPF32[((btDynamicsWorld__getSolverInfo_28_29($5 | 0) | 0) + 64 | 0) >> 2]); + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 48 | 0) >> 2] = $60; + $63 = Math_fround(HEAPF32[((btDynamicsWorld__getSolverInfo_28_29($5 | 0) | 0) + 68 | 0) >> 2]); + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 52 | 0) >> 2] = $63; + $66 = Math_fround(HEAPF32[((btDynamicsWorld__getSolverInfo_28_29($5 | 0) | 0) + 84 | 0) >> 2]); + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 56 | 0) >> 2] = $66; + $69 = Math_fround(HEAPF32[((btDynamicsWorld__getSolverInfo_28_29($5 | 0) | 0) + 88 | 0) >> 2]); + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 60 | 0) >> 2] = $69; + $72 = HEAP32[((btDynamicsWorld__getSolverInfo_28_29($5 | 0) | 0) + 20 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 64 | 0) >> 2] = $72; + $75 = HEAP32[((btDynamicsWorld__getSolverInfo_28_29($5 | 0) | 0) + 72 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 68 | 0) >> 2] = $75; + $78 = HEAP32[((btDynamicsWorld__getSolverInfo_28_29($5 | 0) | 0) + 76 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 72 | 0) >> 2] = $78; + $81 = HEAP32[((btDynamicsWorld__getSolverInfo_28_29($5 | 0) | 0) + 80 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 76 | 0) >> 2] = $81; + $84 = HEAP32[((btDynamicsWorld__getSolverInfo_28_29($5 | 0) | 0) + 52 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 80 | 0) >> 2] = $84; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 84 | 0) >> 2] = 0; + HEAP32[($4 + 8 | 0) >> 2] = 83369; + $91 = HEAP32[($4 + 24 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$91 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($91, HEAP32[($4 + 16 | 0) >> 2] | 0, HEAP32[($4 + 8 | 0) >> 2] | 0, 1145853764, HEAP32[($4 + 12 | 0) >> 2] | 0); + __stack_pointer = $4 + 32 | 0; + return; + } + + function btDiscreteDynamicsWorld__serialize_28btSerializer__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $6 = 0, $12 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + $6 = HEAP32[($4 + 8 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 32 | 0) >> 2] | 0 | 0]($6); + btDiscreteDynamicsWorld__serializeDynamicsWorldInfo_28btSerializer__29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + btCollisionWorld__serializeCollisionObjects_28btSerializer__29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + btDiscreteDynamicsWorld__serializeRigidBodies_28btSerializer__29($5 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + $12 = HEAP32[($4 + 8 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$12 >> 2] | 0) + 36 | 0) >> 2] | 0 | 0]($12); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btDynamicsWorld___btDynamicsWorld_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btDynamicsWorld__addConstraint_28btTypedConstraint__2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP8[($5 + 7 | 0) >> 0] = $2; + return; + } + + function btDynamicsWorld__removeConstraint_28btTypedConstraint__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return; + } + + function btDynamicsWorld__getNumConstraints_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 0 | 0; + } + + function btDynamicsWorld__getConstraint_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return 0 | 0; + } + + function btDynamicsWorld__getConstraint_28int_29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return 0 | 0; + } + + function btDynamicsWorld__addVehicle_28btActionInterface__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return; + } + + function btDynamicsWorld__removeVehicle_28btActionInterface__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return; + } + + function btDynamicsWorld__addCharacter_28btActionInterface__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return; + } + + function btDynamicsWorld__removeCharacter_28btActionInterface__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return; + } + + function InplaceSolverIslandCallback___InplaceSolverIslandCallback_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 103204 + 8 | 0; + btAlignedObjectArray_btTypedConstraint_____btAlignedObjectArray_28_29($4 + 68 | 0 | 0) | 0; + btAlignedObjectArray_btPersistentManifold_____btAlignedObjectArray_28_29($4 + 48 | 0 | 0) | 0; + btAlignedObjectArray_btCollisionObject_____btAlignedObjectArray_28_29($4 + 28 | 0 | 0) | 0; + btSimulationIslandManager__IslandCallback___IslandCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btSimulationIslandManager__IslandCallback___IslandCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function InplaceSolverIslandCallback___InplaceSolverIslandCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + InplaceSolverIslandCallback___InplaceSolverIslandCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function InplaceSolverIslandCallback__processIsland_28btCollisionObject___2c_20int_2c_20btPersistentManifold___2c_20int_2c_20int_29($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $8 = 0, $9 = 0, $17 = 0, $94 = 0; + $8 = __stack_pointer - 48 | 0; + __stack_pointer = $8; + HEAP32[($8 + 44 | 0) >> 2] = $0; + HEAP32[($8 + 40 | 0) >> 2] = $1; + HEAP32[($8 + 36 | 0) >> 2] = $2; + HEAP32[($8 + 32 | 0) >> 2] = $3; + HEAP32[($8 + 28 | 0) >> 2] = $4; + HEAP32[($8 + 24 | 0) >> 2] = $5; + $9 = HEAP32[($8 + 44 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($8 + 24 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0)) { + break label$2 + } + $17 = HEAP32[($9 + 8 | 0) >> 2] | 0; + Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$17 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($17, HEAP32[($8 + 40 | 0) >> 2] | 0, HEAP32[($8 + 36 | 0) >> 2] | 0, HEAP32[($8 + 32 | 0) >> 2] | 0, HEAP32[($8 + 28 | 0) >> 2] | 0, HEAP32[($9 + 12 | 0) >> 2] | 0, HEAP32[($9 + 16 | 0) >> 2] | 0, HEAP32[($9 + 4 | 0) >> 2] | 0, HEAP32[($9 + 20 | 0) >> 2] | 0, HEAP32[($9 + 24 | 0) >> 2] | 0)); + break label$1; + } + HEAP32[($8 + 20 | 0) >> 2] = 0; + HEAP32[($8 + 16 | 0) >> 2] = 0; + HEAP32[($8 + 12 | 0) >> 2] = 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($8 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($9 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + label$5 : { + if (!((btGetConstraintIslandId_28btTypedConstraint_20const__29(HEAP32[((HEAP32[($9 + 12 | 0) >> 2] | 0) + ((HEAP32[($8 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) | 0 | 0) == (HEAP32[($8 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + HEAP32[($8 + 20 | 0) >> 2] = (HEAP32[($9 + 12 | 0) >> 2] | 0) + ((HEAP32[($8 + 12 | 0) >> 2] | 0) << 2 | 0) | 0; + break label$3; + } + HEAP32[($8 + 12 | 0) >> 2] = (HEAP32[($8 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($8 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($9 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + label$8 : { + if (!((btGetConstraintIslandId_28btTypedConstraint_20const__29(HEAP32[((HEAP32[($9 + 12 | 0) >> 2] | 0) + ((HEAP32[($8 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) | 0 | 0) == (HEAP32[($8 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[($8 + 16 | 0) >> 2] = (HEAP32[($8 + 16 | 0) >> 2] | 0) + 1 | 0; + } + HEAP32[($8 + 12 | 0) >> 2] = (HEAP32[($8 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + label$9 : { + label$10 : { + if (!((HEAP32[((HEAP32[($9 + 4 | 0) >> 2] | 0) + 80 | 0) >> 2] | 0 | 0) <= (1 | 0) & 1 | 0)) { + break label$10 + } + $94 = HEAP32[($9 + 8 | 0) >> 2] | 0; + Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$94 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($94, HEAP32[($8 + 40 | 0) >> 2] | 0, HEAP32[($8 + 36 | 0) >> 2] | 0, HEAP32[($8 + 32 | 0) >> 2] | 0, HEAP32[($8 + 28 | 0) >> 2] | 0, HEAP32[($8 + 20 | 0) >> 2] | 0, HEAP32[($8 + 16 | 0) >> 2] | 0, HEAP32[($9 + 4 | 0) >> 2] | 0, HEAP32[($9 + 20 | 0) >> 2] | 0, HEAP32[($9 + 24 | 0) >> 2] | 0)); + break label$9; + } + HEAP32[($8 + 12 | 0) >> 2] = 0; + label$11 : { + label$12 : while (1) { + if (!((HEAP32[($8 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($8 + 36 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$11 + } + btAlignedObjectArray_btCollisionObject____push_back_28btCollisionObject__20const__29($9 + 28 | 0 | 0, (HEAP32[($8 + 40 | 0) >> 2] | 0) + ((HEAP32[($8 + 12 | 0) >> 2] | 0) << 2 | 0) | 0 | 0); + HEAP32[($8 + 12 | 0) >> 2] = (HEAP32[($8 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$12; + }; + } + HEAP32[($8 + 12 | 0) >> 2] = 0; + label$13 : { + label$14 : while (1) { + if (!((HEAP32[($8 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($8 + 28 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$13 + } + btAlignedObjectArray_btPersistentManifold____push_back_28btPersistentManifold__20const__29($9 + 48 | 0 | 0, (HEAP32[($8 + 32 | 0) >> 2] | 0) + ((HEAP32[($8 + 12 | 0) >> 2] | 0) << 2 | 0) | 0 | 0); + HEAP32[($8 + 12 | 0) >> 2] = (HEAP32[($8 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$14; + }; + } + HEAP32[($8 + 12 | 0) >> 2] = 0; + label$15 : { + label$16 : while (1) { + if (!((HEAP32[($8 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($8 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$15 + } + btAlignedObjectArray_btTypedConstraint____push_back_28btTypedConstraint__20const__29($9 + 68 | 0 | 0, (HEAP32[($8 + 20 | 0) >> 2] | 0) + ((HEAP32[($8 + 12 | 0) >> 2] | 0) << 2 | 0) | 0 | 0); + HEAP32[($8 + 12 | 0) >> 2] = (HEAP32[($8 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$16; + }; + } + label$17 : { + label$18 : { + if (!(((btAlignedObjectArray_btTypedConstraint____size_28_29_20const($9 + 68 | 0 | 0) | 0) + (btAlignedObjectArray_btPersistentManifold____size_28_29_20const($9 + 48 | 0 | 0) | 0) | 0 | 0) > (HEAP32[((HEAP32[($9 + 4 | 0) >> 2] | 0) + 80 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$18 + } + InplaceSolverIslandCallback__processConstraints_28_29($9 | 0); + break label$17; + } + } + } + } + __stack_pointer = $8 + 48 | 0; + return; + } + + function btGetConstraintIslandId_28btTypedConstraint_20const__29($0) { + $0 = $0 | 0; + var $3 = 0, $18 = 0, $22 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btTypedConstraint__getRigidBodyA_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btTypedConstraint__getRigidBodyB_28_29_20const(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : { + if (!((btCollisionObject__getIslandTag_28_29_20const(HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$2 + } + $18 = btCollisionObject__getIslandTag_28_29_20const(HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) | 0; + break label$1; + } + $18 = btCollisionObject__getIslandTag_28_29_20const(HEAP32[$3 >> 2] | 0 | 0) | 0; + } + HEAP32[($3 + 8 | 0) >> 2] = $18; + $22 = HEAP32[($3 + 8 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $22 | 0; + } + + function btSimulationIslandManager__IslandCallback___IslandCallback_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btTypedConstraint__getRigidBodyA_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0; + } + + function btTypedConstraint__getRigidBodyB_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btElement___size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btClosestNotMeConvexResultCallback___btClosestNotMeConvexResultCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btClosestNotMeConvexResultCallback___btClosestNotMeConvexResultCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btClosestNotMeConvexResultCallback__needsCollision_28btBroadphaseProxy__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $26 = 0, $42 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[(HEAP32[($4 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) == (HEAP32[($5 + 84 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP8[($4 + 15 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + label$3 : { + if ((btCollisionWorld__ConvexResultCallback__needsCollision_28btBroadphaseProxy__29_20const($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$3 + } + HEAP8[($4 + 15 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + HEAP32[$4 >> 2] = HEAP32[(HEAP32[($4 + 4 | 0) >> 2] | 0) >> 2] | 0; + $26 = HEAP32[($5 + 96 | 0) >> 2] | 0; + label$4 : { + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$26 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($26, HEAP32[($5 + 84 | 0) >> 2] | 0, HEAP32[$4 >> 2] | 0) | 0) & 1 | 0)) { + break label$4 + } + HEAP8[($4 + 15 | 0) >> 0] = 1 & 1 | 0; + break label$1; + } + HEAP8[($4 + 15 | 0) >> 0] = 0 & 1 | 0; + } + $42 = (HEAPU8[($4 + 15 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $4 + 16 | 0; + return $42 | 0; + } + + function btClosestNotMeConvexResultCallback__addSingleResult_28btCollisionWorld__LocalConvexResult__2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $7 = 0, $36 = 0, $63 = 0, $186 = 0, $190 = 0, $239 = 0, $243 = 0, $99 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 112 | 0; + __stack_pointer = $5; + HEAP32[($5 + 104 | 0) >> 2] = $0; + HEAP32[($5 + 100 | 0) >> 2] = $1; + HEAP8[($5 + 99 | 0) >> 0] = $2; + $7 = HEAP32[($5 + 104 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[(HEAP32[($5 + 100 | 0) >> 2] | 0) >> 2] | 0 | 0) == (HEAP32[($7 + 84 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAPF32[($5 + 108 | 0) >> 2] = Math_fround(1.0); + break label$1; + } + label$3 : { + if ((btCollisionObject__hasContactResponse_28_29_20const(HEAP32[(HEAP32[($5 + 100 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$3 + } + HEAPF32[($5 + 108 | 0) >> 2] = Math_fround(1.0); + break label$1; + } + btVector3__btVector3_28_29($5 + 80 | 0 | 0) | 0; + btVector3__btVector3_28_29($5 + 64 | 0 | 0) | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 48 | 0 | 0, $7 + 36 | 0 | 0, $7 + 20 | 0 | 0); + $36 = 8; + i64toi32_i32$2 = ($5 + 48 | 0) + $36 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $186 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 80 | 0) + $36 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $186; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $5; + i64toi32_i32$1 = HEAP32[($5 + 48 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 52 | 0) >> 2] | 0; + $190 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 80 | 0) >> 2] = $190; + HEAP32[($5 + 84 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($5 + 28 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 24 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($5 + 20 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($5 + 32 | 0 | 0, $5 + 28 | 0 | 0, $5 + 24 | 0 | 0, $5 + 20 | 0 | 0) | 0; + $63 = 8; + i64toi32_i32$2 = ($5 + 32 | 0) + $63 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $239 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 64 | 0) + $63 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $239; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $5; + i64toi32_i32$1 = HEAP32[($5 + 32 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 36 | 0) >> 2] | 0; + $243 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 64 | 0) >> 2] = $243; + HEAP32[($5 + 68 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 4 | 0 | 0, $5 + 80 | 0 | 0, $5 + 64 | 0 | 0); + label$4 : { + if (!(Math_fround(btVector3__dot_28btVector3_20const__29_20const((HEAP32[($5 + 100 | 0) >> 2] | 0) + 8 | 0 | 0, $5 + 4 | 0 | 0)) >= Math_fround(-Math_fround(HEAPF32[($7 + 88 | 0) >> 2])) & 1 | 0)) { + break label$4 + } + HEAPF32[($5 + 108 | 0) >> 2] = Math_fround(1.0); + break label$1; + } + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btCollisionWorld__ClosestConvexResultCallback__addSingleResult_28btCollisionWorld__LocalConvexResult__2c_20bool_29($7 | 0, HEAP32[($5 + 100 | 0) >> 2] | 0 | 0, (HEAPU8[($5 + 99 | 0) >> 0] | 0) & 1 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 108 | 0) >> 2] = wasm2js_f32$0; + } + $99 = Math_fround(HEAPF32[($5 + 108 | 0) >> 2]); + __stack_pointer = $5 + 112 | 0; + return Math_fround($99); + } + + function btAlignedObjectArray_btRigidBody____destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btRigidBody____deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btRigidBody__2c_2016u___deallocate_28btRigidBody___29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocator_btRigidBody__2c_2016u___deallocate_28btRigidBody___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btActionInterface____destroy_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[($5 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedObjectArray_btActionInterface____deallocate_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($4 + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btAlignedAllocator_btActionInterface__2c_2016u___deallocate_28btActionInterface___29($4 | 0, HEAP32[($4 + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedAllocator_btActionInterface__2c_2016u___deallocate_28btActionInterface___29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btAlignedObjectArray_btRigidBody____swap_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[$5 >> 2] | 0; + return; + } + + function btAlignedObjectArray_btRigidBody____pop_back_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85800 | 0, 78192 | 0, 201 | 0, 77711 | 0); + wasm2js_trap(); + } + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + -1 | 0; + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btRigidBody____allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btRigidBody__2c_2016u___allocate_28int_2c_20btRigidBody__20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btRigidBody____copy_28int_2c_20int_2c_20btRigidBody___29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[((HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[((HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedAllocator_btRigidBody__2c_2016u___allocate_28int_2c_20btRigidBody__20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btAlignedObjectArray_btActionInterface____allocate_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!(HEAP32[($4 + 4 | 0) >> 2] | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedAllocator_btActionInterface__2c_2016u___allocate_28int_2c_20btActionInterface__20const___29($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + break label$1; + } + HEAP32[($4 + 12 | 0) >> 2] = 0; + } + $11 = HEAP32[($4 + 12 | 0) >> 2] | 0; + __stack_pointer = $4 + 16 | 0; + return $11 | 0; + } + + function btAlignedObjectArray_btActionInterface____copy_28int_2c_20int_2c_20btActionInterface___29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 32 | 0; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[((HEAP32[($6 + 16 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[((HEAP32[($7 + 12 | 0) >> 2] | 0) + ((HEAP32[($6 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function btAlignedAllocator_btActionInterface__2c_2016u___allocate_28int_2c_20btActionInterface__20const___29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $10 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $10 = btAlignedAllocInternal_28unsigned_20long_2c_20int_29((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0 | 0, 16 | 0) | 0; + __stack_pointer = $5 + 16 | 0; + return $10 | 0; + } + + function btAlignedObjectArray_btActionInterface____swap_28int_2c_20int_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[$5 >> 2] = HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 12 | 0) >> 2] | 0) + ((HEAP32[($5 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[$5 >> 2] | 0; + return; + } + + function btAlignedObjectArray_btActionInterface____pop_back_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85800 | 0, 78192 | 0, 201 | 0, 77711 | 0); + wasm2js_trap(); + } + HEAP32[($4 + 4 | 0) >> 2] = (HEAP32[($4 + 4 | 0) >> 2] | 0) + -1 | 0; + __stack_pointer = $3 + 16 | 0; + return; + } + + function btSortConstraintOnIslandPredicate__operator_28_29_28btTypedConstraint_20const__2c_20btTypedConstraint_20const__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $16 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btGetConstraintIslandId_28btTypedConstraint_20const__29(HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btGetConstraintIslandId_28btTypedConstraint_20const__29(HEAP32[($5 + 24 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + $16 = (HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) & 1 | 0; + __stack_pointer = $5 + 32 | 0; + return $16 | 0; + } + + function _GLOBAL__sub_I_btDiscreteDynamicsWorld_cpp() { + __cxx_global_var_init_79(); + return; + } + + function __cxx_global_var_init_80() { + btInfMaskConverter__btInfMaskConverter_28int_29(116172 | 0, 2139095040 | 0) | 0; + return; + } + + function cc__ccDiscreteDynamicsWorld__ccDiscreteDynamicsWorld_28btDispatcher__2c_20btBroadphaseInterface__2c_20btConstraintSolver__2c_20btCollisionConfiguration__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0, $19 = 0, $24 = 0, $26 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + btDiscreteDynamicsWorld__btDiscreteDynamicsWorld_28btDispatcher__2c_20btBroadphaseInterface__2c_20btConstraintSolver__2c_20btCollisionConfiguration__29($8 | 0, HEAP32[($7 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$8 >> 2] = 103416 + 8 | 0; + cc__ccOverlapFilterCallback__ccOverlapFilterCallback_28_29($8 + 344 | 0 | 0) | 0; + HEAPF32[($8 + 56 | 0) >> 2] = Math_fround(.009999999776482582); + $19 = btCollisionWorld__getPairCache_28_29($8 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$19 >> 2] | 0) + 44 | 0) >> 2] | 0 | 0]($19, $8 + 344 | 0); + $24 = btCollisionWorld__getPairCache_28_29($8 | 0) | 0; + $26 = operator_20new_28unsigned_20long_29(4 | 0) | 0; + btGhostPairCallback__btGhostPairCallback_28_29($26 | 0) | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$24 >> 2] | 0) + 60 | 0) >> 2] | 0 | 0]($24, $26); + __stack_pointer = $7 + 32 | 0; + return $8 | 0; + } + + function cc__ccOverlapFilterCallback__ccOverlapFilterCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btOverlapFilterCallback__btOverlapFilterCallback_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 103656 + 8 | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCollisionWorld__getPairCache_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $5 = 0, $8 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $5 = HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 68 | 0) >> 2] | 0; + $8 = FUNCTION_TABLE[HEAP32[((HEAP32[$5 >> 2] | 0) + 36 | 0) >> 2] | 0 | 0]($5) | 0; + __stack_pointer = $3 + 16 | 0; + return $8 | 0; + } + + function btGhostPairCallback__btGhostPairCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btOverlappingPairCallback__btOverlappingPairCallback_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 103776 + 8 | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btOverlapFilterCallback__btOverlapFilterCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 103756 + 8 | 0; + return $4 | 0; + } + + function cc__ccDiscreteDynamicsWorld__applyGravity_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[($3 + 8 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btRigidBody____size_28_29_20const($4 + 244 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$1 + } + (wasm2js_i32$0 = $3, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btRigidBody____operator_5b_5d_28int_29($4 + 244 | 0 | 0, HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$3 : { + if (!((btCollisionObject__isActive_28_29_20const(HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$3 + } + if ((btCollisionObject__isKinematicObject_28_29_20const(HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$3 + } + label$4 : { + label$5 : { + if (!(+Math_fround(btRigidBody__getLinearDamping_28_29_20const(HEAP32[($3 + 4 | 0) >> 2] | 0 | 0)) == 1.0 & 1 | 0)) { + break label$5 + } + btVector3__setZero_28_29(btRigidBody__getTotalForce_28_29_20const(HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) | 0 | 0); + break label$4; + } + btRigidBody__applyGravity_28_29(HEAP32[($3 + 4 | 0) >> 2] | 0 | 0); + } + label$6 : { + if (!(+Math_fround(btRigidBody__getAngularDamping_28_29_20const(HEAP32[($3 + 4 | 0) >> 2] | 0 | 0)) == 1.0 & 1 | 0)) { + break label$6 + } + btVector3__setZero_28_29(btRigidBody__getTotalTorque_28_29_20const(HEAP32[($3 + 4 | 0) >> 2] | 0 | 0) | 0 | 0); + } + } + HEAP32[($3 + 8 | 0) >> 2] = (HEAP32[($3 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + __stack_pointer = $3 + 16 | 0; + return; + } + + function btAlignedObjectArray_btRigidBody____size_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function btAlignedObjectArray_btRigidBody____operator_5b_5d_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $32 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(85840 | 0, 78192 | 0, 183 | 0, 83901 | 0); + wasm2js_trap(); + } + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btRigidBody____size_28_29_20const($5 | 0) | 0 | 0) & 1 | 0) { + break label$2 + } + __assert_fail(87321 | 0, 78192 | 0, 184 | 0, 83901 | 0); + wasm2js_trap(); + } + $32 = (HEAP32[($5 + 12 | 0) >> 2] | 0) + ((HEAP32[($4 + 8 | 0) >> 2] | 0) << 2 | 0) | 0; + __stack_pointer = $4 + 16 | 0; + return $32 | 0; + } + + function btRigidBody__getLinearDamping_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 504 | 0) >> 2])); + } + + function btRigidBody__getAngularDamping_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 508 | 0) >> 2])); + } + + function cc__ccDiscreteDynamicsWorld__createPredictiveContacts_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5 = 0, i64toi32_i32$2 = 0, $177 = 0, $272 = 0, $274 = 0, $280 = 0, $282 = 0, $266 = Math_fround(0), $269 = 0, $856 = 0, $866 = 0, $875 = 0, $888 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_f32$0 = Math_fround(0); + $4 = __stack_pointer - 736 | 0; + __stack_pointer = $4; + HEAP32[($4 + 732 | 0) >> 2] = $0; + HEAPF32[($4 + 728 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 732 | 0) >> 2] | 0; + CProfileSample__CProfileSample_28char_20const__29($4 + 727 | 0 | 0, 69290 | 0) | 0; + btDiscreteDynamicsWorld__releasePredictiveContacts_28_29($5 | 0); + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btAlignedObjectArray_btRigidBody____size_28_29_20const($5 + 244 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 720 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($4 + 720 | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0)) { + break label$1 + } + btTransform__btTransform_28_29($4 + 656 | 0 | 0) | 0; + HEAP32[($4 + 652 | 0) >> 2] = 0; + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($4 + 652 | 0) >> 2] | 0 | 0) < (HEAP32[($4 + 720 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[(btAlignedObjectArray_btRigidBody____operator_5b_5d_28int_29($5 + 244 | 0 | 0, HEAP32[($4 + 652 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 648 | 0) >> 2] = wasm2js_i32$1; + btCollisionObject__setHitFraction_28float_29(HEAP32[($4 + 648 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(1.0))); + label$4 : { + if (!((btCollisionObject__isActive_28_29_20const(HEAP32[($4 + 648 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$4 + } + if ((btCollisionObject__isStaticOrKinematicObject_28_29_20const(HEAP32[($4 + 648 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$4 + } + btRigidBody__predictIntegratedTransform_28float_2c_20btTransform__29(HEAP32[($4 + 648 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 728 | 0) >> 2])), $4 + 656 | 0 | 0); + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btCollisionObject__getWorldTransform_28_29(HEAP32[($4 + 648 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 644 | 0) >> 2] = wasm2js_i32$1; + operator__28btVector3_20const__2c_20btVector3_20const__29($4 + 624 | 0 | 0, btTransform__getOrigin_28_29($4 + 656 | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($4 + 644 | 0) >> 2] | 0 | 0) | 0 | 0); + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btVector3__length2_28_29_20const($4 + 624 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 640 | 0) >> 2] = wasm2js_f32$0; + label$5 : { + if (!((HEAPU8[((btCollisionWorld__getDispatchInfo_28_29($5 | 0) | 0) + 16 | 0) >> 0] | 0) & 1 | 0)) { + break label$5 + } + if (!(Math_fround(btCollisionObject__getCcdSquareMotionThreshold_28_29_20const(HEAP32[($4 + 648 | 0) >> 2] | 0 | 0)) != Math_fround(0 | 0) & 1 | 0)) { + break label$5 + } + if (!(Math_fround(btCollisionObject__getCcdSquareMotionThreshold_28_29_20const(HEAP32[($4 + 648 | 0) >> 2] | 0 | 0)) < Math_fround(HEAPF32[($4 + 640 | 0) >> 2]) & 1 | 0)) { + break label$5 + } + CProfileSample__CProfileSample_28char_20const__29($4 + 623 | 0 | 0, 67428 | 0) | 0; + label$6 : { + if (!((btCollisionShape__isConvex_28_29_20const(btRigidBody__getCollisionShape_28_29(HEAP32[($4 + 648 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) & 1 | 0)) { + break label$6 + } + cc__ccNotMeClosestConvexResultCallback__ccNotMeClosestConvexResultCallback_28btCollisionObject__2c_20cc__ccDiscreteDynamicsWorld__2c_20btVector3_20const__2c_20btVector3_20const__29($4 + 524 | 0 | 0, HEAP32[($4 + 648 | 0) >> 2] | 0 | 0, $5 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($4 + 644 | 0) >> 2] | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29($4 + 656 | 0 | 0) | 0 | 0) | 0; + btSphereShape__btSphereShape_28float_29($4 + 464 | 0 | 0, Math_fround(Math_fround(btCollisionObject__getCcdSweptSphereRadius_28_29_20const(HEAP32[($4 + 648 | 0) >> 2] | 0 | 0)))) | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[((btRigidBody__getBroadphaseProxy_28_29(HEAP32[($4 + 648 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 532 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = HEAP32[((btRigidBody__getBroadphaseProxy_28_29(HEAP32[($4 + 648 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 536 | 0) >> 2] = wasm2js_i32$1; + btTransform__btTransform_28btTransform_20const__29($4 + 400 | 0 | 0, $4 + 656 | 0 | 0) | 0; + btTransform__setBasis_28btMatrix3x3_20const__29($4 + 400 | 0 | 0, btTransform__getBasis_28_29_20const(HEAP32[($4 + 644 | 0) >> 2] | 0 | 0) | 0 | 0); + btCollisionWorld__convexSweepTest_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29_20const($5 | 0, $4 + 464 | 0 | 0, HEAP32[($4 + 644 | 0) >> 2] | 0 | 0, $4 + 400 | 0 | 0, $4 + 524 | 0 | 0, Math_fround(Math_fround(0 | 0))); + label$7 : { + if (!((btCollisionWorld__ConvexResultCallback__hasHit_28_29_20const($4 + 524 | 0 | 0) | 0) & 1 | 0)) { + break label$7 + } + operator__28btVector3_20const__2c_20btVector3_20const__29($4 + 368 | 0 | 0, btTransform__getOrigin_28_29($4 + 656 | 0 | 0) | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($4 + 644 | 0) >> 2] | 0 | 0) | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($4 + 384 | 0 | 0, $4 + 368 | 0 | 0, ($4 + 524 | 0) + 4 | 0 | 0); + operator__28btVector3_20const__29($4 + 348 | 0 | 0, ($4 + 524 | 0) + 52 | 0 | 0); + (wasm2js_i32$0 = $4, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($4 + 384 | 0 | 0, $4 + 348 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 364 | 0) >> 2] = wasm2js_f32$0; + $177 = HEAP32[($5 + 24 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = FUNCTION_TABLE[HEAP32[((HEAP32[$177 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($177, HEAP32[($4 + 648 | 0) >> 2] | 0, HEAP32[($4 + 540 | 0) >> 2] | 0) | 0), HEAP32[(wasm2js_i32$0 + 344 | 0) >> 2] = wasm2js_i32$1; + btMutexLock_28btSpinMutex__29($5 + 340 | 0 | 0); + btAlignedObjectArray_btPersistentManifold____push_back_28btPersistentManifold__20const__29($5 + 320 | 0 | 0, $4 + 344 | 0 | 0); + btMutexUnlock_28btSpinMutex__29($5 + 340 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($4 + 328 | 0 | 0, btTransform__getOrigin_28_29_20const(HEAP32[($4 + 644 | 0) >> 2] | 0 | 0) | 0 | 0, $4 + 384 | 0 | 0); + btTransform__inverse_28_29_20const($4 + 248 | 0 | 0, btCollisionObject__getWorldTransform_28_29_20const(HEAP32[($4 + 540 | 0) >> 2] | 0 | 0) | 0 | 0); + btTransform__operator__28btVector3_20const__29_20const($4 + 312 | 0 | 0, $4 + 248 | 0 | 0, $4 + 328 | 0 | 0); + HEAPF32[($4 + 20 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 16 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4 + 12 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($4 + 24 | 0 | 0, $4 + 20 | 0 | 0, $4 + 16 | 0 | 0, $4 + 12 | 0 | 0) | 0; + btManifoldPoint__btManifoldPoint_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_29($4 + 40 | 0 | 0, $4 + 24 | 0 | 0, $4 + 312 | 0 | 0, ($4 + 524 | 0) + 52 | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 364 | 0) >> 2]))) | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btRigidBody__getCollisionShape_28_29(HEAP32[($4 + 648 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 240 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($4 + 244 | 0) >> 2] = HEAP32[($4 + 608 | 0) >> 2] | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btPersistentManifold__addManifoldPoint_28btManifoldPoint_20const__2c_20bool_29(HEAP32[($4 + 344 | 0) >> 2] | 0 | 0, $4 + 40 | 0 | 0, 1 & 1 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = btPersistentManifold__getContactPoint_28int_29(HEAP32[($4 + 344 | 0) >> 2] | 0 | 0, HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + HEAPF32[((HEAP32[($4 + 4 | 0) >> 2] | 0) + 96 | 0) >> 2] = Math_fround(0 | 0); + $266 = Math_fround(btManifoldResult__calculateCombinedFriction_28btCollisionObject_20const__2c_20btCollisionObject_20const__29(HEAP32[($4 + 648 | 0) >> 2] | 0 | 0, HEAP32[($4 + 540 | 0) >> 2] | 0 | 0)); + HEAPF32[((HEAP32[($4 + 4 | 0) >> 2] | 0) + 84 | 0) >> 2] = $266; + $269 = btTransform__getOrigin_28_29_20const(HEAP32[($4 + 644 | 0) >> 2] | 0 | 0) | 0; + $272 = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 48 | 0; + i64toi32_i32$2 = $269; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $856 = i64toi32_i32$0; + i64toi32_i32$0 = $272; + HEAP32[i64toi32_i32$0 >> 2] = $856; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $274 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $274 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $866 = i64toi32_i32$1; + i64toi32_i32$1 = $272 + $274 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $866; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $280 = (HEAP32[($4 + 4 | 0) >> 2] | 0) + 32 | 0; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = HEAP32[($4 + 328 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($4 + 332 | 0) >> 2] | 0; + $875 = i64toi32_i32$0; + i64toi32_i32$0 = $280; + HEAP32[i64toi32_i32$0 >> 2] = $875; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $282 = 8; + i64toi32_i32$2 = ($4 + 328 | 0) + $282 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $888 = i64toi32_i32$1; + i64toi32_i32$1 = $280 + $282 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $888; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + btSphereShape___btSphereShape_28_29($4 + 464 | 0 | 0) | 0; + cc__ccNotMeClosestConvexResultCallback___ccNotMeClosestConvexResultCallback_28_29($4 + 524 | 0 | 0) | 0; + } + CProfileSample___CProfileSample_28_29($4 + 623 | 0 | 0) | 0; + } + } + HEAP32[($4 + 652 | 0) >> 2] = (HEAP32[($4 + 652 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + } + CProfileSample___CProfileSample_28_29($4 + 727 | 0 | 0) | 0; + __stack_pointer = $4 + 736 | 0; + return; + } + + function cc__ccNotMeClosestConvexResultCallback__ccNotMeClosestConvexResultCallback_28btCollisionObject__2c_20cc__ccDiscreteDynamicsWorld__2c_20btVector3_20const__2c_20btVector3_20const__29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, $8 = 0; + $7 = __stack_pointer - 32 | 0; + __stack_pointer = $7; + HEAP32[($7 + 28 | 0) >> 2] = $0; + HEAP32[($7 + 24 | 0) >> 2] = $1; + HEAP32[($7 + 20 | 0) >> 2] = $2; + HEAP32[($7 + 16 | 0) >> 2] = $3; + HEAP32[($7 + 12 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 28 | 0) >> 2] | 0; + btCollisionWorld__ClosestConvexResultCallback__ClosestConvexResultCallback_28btVector3_20const__2c_20btVector3_20const__29($8 | 0, HEAP32[($7 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$8 >> 2] = 103840 + 8 | 0; + HEAP32[($8 + 84 | 0) >> 2] = 0; + HEAP32[($8 + 88 | 0) >> 2] = HEAP32[($7 + 24 | 0) >> 2] | 0; + HEAP32[($8 + 92 | 0) >> 2] = HEAP32[($7 + 20 | 0) >> 2] | 0; + __stack_pointer = $7 + 32 | 0; + return $8 | 0; + } + + function btRigidBody__getBroadphaseProxy_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 188 | 0) >> 2] | 0 | 0; + } + + function cc__ccNotMeClosestConvexResultCallback___ccNotMeClosestConvexResultCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionWorld__ClosestConvexResultCallback___ClosestConvexResultCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function cc__ccDiscreteDynamicsWorld___ccDiscreteDynamicsWorld_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + cc__ccOverlapFilterCallback___ccOverlapFilterCallback_28_29($4 + 344 | 0 | 0) | 0; + btDiscreteDynamicsWorld___btDiscreteDynamicsWorld_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function cc__ccOverlapFilterCallback___ccOverlapFilterCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btOverlapFilterCallback___btOverlapFilterCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function cc__ccDiscreteDynamicsWorld___ccDiscreteDynamicsWorld_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + cc__ccDiscreteDynamicsWorld___ccDiscreteDynamicsWorld_28_29($4 | 0) | 0; + cc__ccDiscreteDynamicsWorld__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function cc__ccDiscreteDynamicsWorld__operator_20delete_28void__29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + btAlignedFreeInternal_28void__29(HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btDiscreteDynamicsWorld__getWorldType_28_29_20const($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return 2 | 0; + } + + function btDiscreteDynamicsWorld__setNumTasks_28int_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return; + } + + function btDiscreteDynamicsWorld__updateVehicles_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + btDiscreteDynamicsWorld__updateActions_28float_29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 8 | 0) >> 2]))); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btOverlapFilterCallback___btOverlapFilterCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function cc__ccOverlapFilterCallback___ccOverlapFilterCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + cc__ccOverlapFilterCallback___ccOverlapFilterCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function cc__ccOverlapFilterCallback__needBroadphaseCollision_28btBroadphaseProxy__2c_20btBroadphaseProxy__29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $21 = 0, $76 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 24 | 0) >> 2] = $0; + HEAP32[($5 + 20 | 0) >> 2] = $1; + HEAP32[($5 + 16 | 0) >> 2] = $2; + HEAP8[($5 + 15 | 0) >> 0] = ((HEAP32[((HEAP32[($5 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) & (HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) | 0 | 0) != (0 | 0) & 1 | 0; + $21 = 0; + label$1 : { + if (!((HEAPU8[($5 + 15 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + $21 = ((HEAP32[((HEAP32[($5 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) & (HEAP32[((HEAP32[($5 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) | 0 | 0) != (0 | 0); + } + HEAP8[($5 + 15 | 0) >> 0] = $21 & 1 | 0; + label$2 : { + label$3 : { + if (!((HEAPU8[($5 + 15 | 0) >> 0] | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5 + 8 | 0) >> 2] = HEAP32[(HEAP32[($5 + 20 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 4 | 0) >> 2] = HEAP32[(HEAP32[($5 + 16 | 0) >> 2] | 0) >> 2] | 0; + label$4 : { + if (!((btCollisionObject__isStaticObject_28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$4 + } + if (!((btCollisionObject__isStaticObject_28_29_20const(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$4 + } + HEAP8[($5 + 31 | 0) >> 0] = 0 & 1 | 0; + break label$2; + } + label$5 : { + if (!((btCollisionObject__getActivationState_28_29_20const(HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$5 + } + if (!((btCollisionObject__getActivationState_28_29_20const(HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$5 + } + HEAP8[($5 + 31 | 0) >> 0] = 0 & 1 | 0; + break label$2; + } + } + HEAP8[($5 + 31 | 0) >> 0] = (HEAPU8[($5 + 15 | 0) >> 0] | 0) & 1 | 0; + } + $76 = (HEAPU8[($5 + 31 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $5 + 32 | 0; + return $76 | 0; + } + + function btOverlapFilterCallback___btOverlapFilterCallback_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btGhostPairCallback___btGhostPairCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btOverlappingPairCallback___btOverlappingPairCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btGhostPairCallback___btGhostPairCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btGhostPairCallback___btGhostPairCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btGhostPairCallback__addOverlappingPair_28btBroadphaseProxy__2c_20btBroadphaseProxy__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $21 = 0, $33 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + HEAP32[($5 + 16 | 0) >> 2] = HEAP32[(HEAP32[($5 + 24 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[(HEAP32[($5 + 20 | 0) >> 2] | 0) >> 2] | 0; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btGhostObject__upcast_28btCollisionObject__29(HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btGhostObject__upcast_28btCollisionObject__29(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + $21 = HEAP32[($5 + 8 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$21 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($21, HEAP32[($5 + 20 | 0) >> 2] | 0, HEAP32[($5 + 24 | 0) >> 2] | 0); + } + label$2 : { + if (!((HEAP32[($5 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + $33 = HEAP32[($5 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$33 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($33, HEAP32[($5 + 24 | 0) >> 2] | 0, HEAP32[($5 + 20 | 0) >> 2] | 0); + } + __stack_pointer = $5 + 32 | 0; + return 0 | 0; + } + + function btGhostObject__upcast_28btCollisionObject__29($0) { + $0 = $0 | 0; + var $3 = 0, $14 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + label$1 : { + label$2 : { + if (!((btCollisionObject__getInternalType_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($3 + 12 | 0) >> 2] = HEAP32[($3 + 8 | 0) >> 2] | 0; + break label$1; + } + HEAP32[($3 + 12 | 0) >> 2] = 0; + } + $14 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $14 | 0; + } + + function btGhostPairCallback__removeOverlappingPair_28btBroadphaseProxy__2c_20btBroadphaseProxy__2c_20btDispatcher__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $22 = 0, $35 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[(HEAP32[($6 + 24 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($6 + 8 | 0) >> 2] = HEAP32[(HEAP32[($6 + 20 | 0) >> 2] | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btGhostObject__upcast_28btCollisionObject__29(HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btGhostObject__upcast_28btCollisionObject__29(HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + label$1 : { + if (!((HEAP32[($6 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + $22 = HEAP32[($6 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$22 >> 2] | 0) + 32 | 0) >> 2] | 0 | 0]($22, HEAP32[($6 + 20 | 0) >> 2] | 0, HEAP32[($6 + 16 | 0) >> 2] | 0, HEAP32[($6 + 24 | 0) >> 2] | 0); + } + label$2 : { + if (!((HEAP32[$6 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + $35 = HEAP32[$6 >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$35 >> 2] | 0) + 32 | 0) >> 2] | 0 | 0]($35, HEAP32[($6 + 24 | 0) >> 2] | 0, HEAP32[($6 + 16 | 0) >> 2] | 0, HEAP32[($6 + 20 | 0) >> 2] | 0); + } + __stack_pointer = $6 + 32 | 0; + return 0 | 0; + } + + function btGhostPairCallback__removeOverlappingPairsContainingProxy_28btBroadphaseProxy__2c_20btDispatcher__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP32[($5 + 4 | 0) >> 2] = $2; + __assert_fail(86177 | 0, 78520 | 0, 165 | 0, 65616 | 0); + wasm2js_trap(); + } + + function cc__ccNotMeClosestConvexResultCallback___ccNotMeClosestConvexResultCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + cc__ccNotMeClosestConvexResultCallback___ccNotMeClosestConvexResultCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function cc__ccNotMeClosestConvexResultCallback__needsCollision_28btBroadphaseProxy__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $5 = 0, $27 = 0, $43 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($4 + 4 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[(HEAP32[($4 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) == (HEAP32[($5 + 88 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP8[($4 + 15 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + label$3 : { + if ((btCollisionWorld__ConvexResultCallback__needsCollision_28btBroadphaseProxy__29_20const($5 | 0, HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$3 + } + HEAP8[($4 + 15 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + HEAP32[$4 >> 2] = HEAP32[(HEAP32[($4 + 4 | 0) >> 2] | 0) >> 2] | 0; + $27 = btCollisionWorld__getDispatcher_28_29(HEAP32[($5 + 92 | 0) >> 2] | 0 | 0) | 0; + label$4 : { + if ((FUNCTION_TABLE[HEAP32[((HEAP32[$27 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($27, HEAP32[($5 + 88 | 0) >> 2] | 0, HEAP32[$4 >> 2] | 0) | 0) & 1 | 0) { + break label$4 + } + HEAP8[($4 + 15 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + HEAP8[($4 + 15 | 0) >> 0] = 1 & 1 | 0; + } + $43 = (HEAPU8[($4 + 15 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $4 + 16 | 0; + return $43 | 0; + } + + function cc__ccNotMeClosestConvexResultCallback__addSingleResult_28btCollisionWorld__LocalConvexResult__2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $7 = 0, $15 = Math_fround(0); + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAP8[($5 + 7 | 0) >> 0] = $2; + $7 = HEAP32[($5 + 12 | 0) >> 2] | 0; + HEAP32[($7 + 84 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($5 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $15 = Math_fround(btCollisionWorld__ClosestConvexResultCallback__addSingleResult_28btCollisionWorld__LocalConvexResult__2c_20bool_29($7 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0, (HEAPU8[($5 + 7 | 0) >> 0] | 0) & 1 | 0 | 0)); + __stack_pointer = $5 + 16 | 0; + return Math_fround($15); + } + + function _GLOBAL__sub_I_ccDiscreteDynamicsWorld_cpp() { + __cxx_global_var_init_80(); + return; + } + + function __cxx_global_var_init_81() { + btInfMaskConverter__btInfMaskConverter_28int_29(116176 | 0, 2139095040 | 0) | 0; + return; + } + + function cc__ccCompoundShape__updateChildTransform_28btCollisionShape__2c_20btTransform_20const__2c_20bool_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $8 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP8[($6 + 19 | 0) >> 0] = $3; + $8 = HEAP32[($6 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = (btAlignedObjectArray_btCompoundShapeChild___size_28_29_20const($8 + 20 | 0 | 0) | 0) - 1 | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$1 + } + label$3 : { + if (!((HEAP32[((btAlignedObjectArray_btCompoundShapeChild___operator_5b_5d_28int_29($8 + 20 | 0 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) | 0) + 64 | 0) >> 2] | 0 | 0) == (HEAP32[($6 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + btCompoundShape__updateChildTransform_28int_2c_20btTransform_20const__2c_20bool_29($8 | 0, HEAP32[($6 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6 + 20 | 0) >> 2] | 0 | 0, (HEAPU8[($6 + 19 | 0) >> 0] | 0) & 1 | 0 | 0); + break label$1; + } + HEAP32[($6 + 12 | 0) >> 2] = (HEAP32[($6 + 12 | 0) >> 2] | 0) + -1 | 0; + continue label$2; + }; + } + __stack_pointer = $6 + 32 | 0; + return; + } + + function _GLOBAL__sub_I_ccCompoundShape_cpp() { + __cxx_global_var_init_81(); + return; + } + + function __cxx_global_var_init_82() { + btInfMaskConverter__btInfMaskConverter_28int_29(116180 | 0, 2139095040 | 0) | 0; + return; + } + + function btGhostObject__btGhostObject_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionObject__btCollisionObject_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 103920 + 8 | 0; + btAlignedObjectArray_btCollisionObject____btAlignedObjectArray_28_29($4 + 324 | 0 | 0) | 0; + HEAP32[($4 + 252 | 0) >> 2] = 4; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btGhostObject___btGhostObject_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $17 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 8 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $4; + HEAP32[$4 >> 2] = 103920 + 8 | 0; + label$1 : { + if (!(btAlignedObjectArray_btCollisionObject____size_28_29_20const($4 + 324 | 0 | 0) | 0)) { + break label$1 + } + __assert_fail(87492 | 0, 72085 | 0, 29 | 0, 68669 | 0); + wasm2js_trap(); + } + btAlignedObjectArray_btCollisionObject_____btAlignedObjectArray_28_29($4 + 324 | 0 | 0) | 0; + btCollisionObject___btCollisionObject_28_29($4 | 0) | 0; + $17 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $17 | 0; + } + + function btGhostObject___btGhostObject_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[1192 | 0]($4) | 0; + btCollisionObject__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btGhostObject__addOverlappingObjectInternal_28btBroadphaseProxy__2c_20btBroadphaseProxy__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + HEAP32[($5 + 16 | 0) >> 2] = HEAP32[(HEAP32[($5 + 24 | 0) >> 2] | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(68684 | 0, 72085 | 0, 36 | 0, 77471 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btCollisionObject____findLinearSearch_28btCollisionObject__20const__29_20const($6 + 324 | 0 | 0, $5 + 16 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + label$2 : { + if (!((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btCollisionObject____size_28_29_20const($6 + 324 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$2 + } + btAlignedObjectArray_btCollisionObject____push_back_28btCollisionObject__20const__29($6 + 324 | 0 | 0, $5 + 16 | 0 | 0); + } + __stack_pointer = $5 + 32 | 0; + return; + } + + function btGhostObject__removeOverlappingObjectInternal_28btBroadphaseProxy__2c_20btDispatcher__2c_20btBroadphaseProxy__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $44 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[(HEAP32[($6 + 24 | 0) >> 2] | 0) >> 2] | 0; + label$1 : { + if ((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$1 + } + __assert_fail(68684 | 0, 72085 | 0, 49 | 0, 77439 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btAlignedObjectArray_btCollisionObject____findLinearSearch_28btCollisionObject__20const__29_20const($7 + 324 | 0 | 0, $6 + 12 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + label$2 : { + if (!((HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btCollisionObject____size_28_29_20const($7 + 324 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$2 + } + $44 = HEAP32[(btAlignedObjectArray_btCollisionObject____operator_5b_5d_28int_29($7 + 324 | 0 | 0, (btAlignedObjectArray_btCollisionObject____size_28_29_20const($7 + 324 | 0 | 0) | 0) - 1 | 0 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btCollisionObject____operator_5b_5d_28int_29($7 + 324 | 0 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $44), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btCollisionObject____pop_back_28_29($7 + 324 | 0 | 0); + } + __stack_pointer = $6 + 32 | 0; + return; + } + + function btPairCachingGhostObject__btPairCachingGhostObject_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $12 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btGhostObject__btGhostObject_28_29($4 | 0) | 0; + HEAP32[$4 >> 2] = 103964 + 8 | 0; + $12 = btHashedOverlappingPairCache__operator_20new_28unsigned_20long_2c_20void__29(72 | 0, btAlignedAllocInternal_28unsigned_20long_2c_20int_29(72 | 0, 16 | 0) | 0 | 0) | 0; + btHashedOverlappingPairCache__btHashedOverlappingPairCache_28_29($12 | 0) | 0; + HEAP32[($4 + 344 | 0) >> 2] = $12; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btPairCachingGhostObject___btPairCachingGhostObject_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0, $8 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 103964 + 8 | 0; + $8 = HEAP32[($4 + 344 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$8 >> 2] | 0) >> 2] | 0 | 0]($8) | 0; + btAlignedFreeInternal_28void__29(HEAP32[($4 + 344 | 0) >> 2] | 0 | 0); + btGhostObject___btGhostObject_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btPairCachingGhostObject___btPairCachingGhostObject_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + FUNCTION_TABLE[1193 | 0]($4) | 0; + btCollisionObject__operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btPairCachingGhostObject__addOverlappingObjectInternal_28btBroadphaseProxy__2c_20btBroadphaseProxy__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, $6 = 0, $15 = 0, $62 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $5 = __stack_pointer - 32 | 0; + __stack_pointer = $5; + HEAP32[($5 + 28 | 0) >> 2] = $0; + HEAP32[($5 + 24 | 0) >> 2] = $1; + HEAP32[($5 + 20 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 28 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($5 + 20 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + $15 = HEAP32[($5 + 20 | 0) >> 2] | 0; + break label$1; + } + $15 = btCollisionObject__getBroadphaseHandle_28_29($6 | 0) | 0; + } + HEAP32[($5 + 16 | 0) >> 2] = $15; + label$3 : { + if ((HEAP32[($5 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$3 + } + __assert_fail(65600 | 0, 72085 | 0, 73 | 0, 77471 | 0); + wasm2js_trap(); + } + HEAP32[($5 + 12 | 0) >> 2] = HEAP32[(HEAP32[($5 + 24 | 0) >> 2] | 0) >> 2] | 0; + label$4 : { + if ((HEAP32[($5 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$4 + } + __assert_fail(68684 | 0, 72085 | 0, 76 | 0, 77471 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $5, wasm2js_i32$1 = btAlignedObjectArray_btCollisionObject____findLinearSearch_28btCollisionObject__20const__29_20const($6 + 324 | 0 | 0, $5 + 12 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + label$5 : { + if (!((HEAP32[($5 + 8 | 0) >> 2] | 0 | 0) == (btAlignedObjectArray_btCollisionObject____size_28_29_20const($6 + 324 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$5 + } + btAlignedObjectArray_btCollisionObject____push_back_28btCollisionObject__20const__29($6 + 324 | 0 | 0, $5 + 12 | 0 | 0); + $62 = HEAP32[($6 + 344 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$62 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($62, HEAP32[($5 + 16 | 0) >> 2] | 0, HEAP32[($5 + 24 | 0) >> 2] | 0) | 0; + } + __stack_pointer = $5 + 32 | 0; + return; + } + + function btPairCachingGhostObject__removeOverlappingObjectInternal_28btBroadphaseProxy__2c_20btDispatcher__2c_20btBroadphaseProxy__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $18 = 0, $73 = 0, $66 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + HEAP32[($6 + 12 | 0) >> 2] = HEAP32[(HEAP32[($6 + 24 | 0) >> 2] | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($6 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + $18 = HEAP32[($6 + 16 | 0) >> 2] | 0; + break label$1; + } + $18 = btCollisionObject__getBroadphaseHandle_28_29($7 | 0) | 0; + } + HEAP32[($6 + 8 | 0) >> 2] = $18; + label$3 : { + if ((HEAP32[($6 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$3 + } + __assert_fail(65600 | 0, 72085 | 0, 89 | 0, 77439 | 0); + wasm2js_trap(); + } + label$4 : { + if ((HEAP32[($6 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$4 + } + __assert_fail(68684 | 0, 72085 | 0, 91 | 0, 77439 | 0); + wasm2js_trap(); + } + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btAlignedObjectArray_btCollisionObject____findLinearSearch_28btCollisionObject__20const__29_20const($7 + 324 | 0 | 0, $6 + 12 | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + label$5 : { + if (!((HEAP32[($6 + 4 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btCollisionObject____size_28_29_20const($7 + 324 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$5 + } + $66 = HEAP32[(btAlignedObjectArray_btCollisionObject____operator_5b_5d_28int_29($7 + 324 | 0 | 0, (btAlignedObjectArray_btCollisionObject____size_28_29_20const($7 + 324 | 0 | 0) | 0) - 1 | 0 | 0) | 0) >> 2] | 0; + (wasm2js_i32$0 = btAlignedObjectArray_btCollisionObject____operator_5b_5d_28int_29($7 + 324 | 0 | 0, HEAP32[($6 + 4 | 0) >> 2] | 0 | 0) | 0, wasm2js_i32$1 = $66), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + btAlignedObjectArray_btCollisionObject____pop_back_28_29($7 + 324 | 0 | 0); + $73 = HEAP32[($7 + 344 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$73 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0]($73, HEAP32[($6 + 8 | 0) >> 2] | 0, HEAP32[($6 + 24 | 0) >> 2] | 0, HEAP32[($6 + 20 | 0) >> 2] | 0) | 0; + } + __stack_pointer = $6 + 32 | 0; + return; + } + + function _GLOBAL__sub_I_btGhostObject_cpp() { + __cxx_global_var_init_82(); + return; + } + + function __cxx_global_var_init_83() { + btInfMaskConverter__btInfMaskConverter_28int_29(116184 | 0, 2139095040 | 0) | 0; + return; + } + + function __cxx_global_var_init_1_1() { + var $2 = 0; + $2 = __stack_pointer - 16 | 0; + __stack_pointer = $2; + HEAP32[($2 + 12 | 0) >> 2] = 116192; + std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____basic_string_5babi_v160004_5d_std__nullptr_t__28char_20const__29(116192 | 0, 84159 | 0) | 0; + HEAP32[($2 + 12 | 0) >> 2] = 116192 + 12 | 0; + std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____basic_string_5babi_v160004_5d_std__nullptr_t__28char_20const__29(116192 + 12 | 0 | 0, 84426 | 0) | 0; + HEAP32[($2 + 12 | 0) >> 2] = 116192 + 24 | 0; + std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____basic_string_5babi_v160004_5d_std__nullptr_t__28char_20const__29(116192 + 24 | 0 | 0, 84257 | 0) | 0; + HEAP32[($2 + 12 | 0) >> 2] = 116192 + 36 | 0; + std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____basic_string_5babi_v160004_5d_std__nullptr_t__28char_20const__29(116192 + 36 | 0 | 0, 84028 | 0) | 0; + __cxa_atexit(1200 | 0, 0 | 0, 65536 | 0) | 0; + __stack_pointer = $2 + 16 | 0; + return; + } + + function __cxx_global_array_dtor_2($0) { + $0 = $0 | 0; + var $3 = 0, $10 = 0, $7 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $7 = 116192 + 48 | 0; + label$1 : while (1) { + $10 = $7 + -12 | 0; + std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char_____basic_string_28_29($10 | 0) | 0; + $7 = $10; + if (!(($10 | 0) == (116192 | 0) & 1 | 0)) { + continue label$1 + } + break label$1; + }; + __stack_pointer = $3 + 16 | 0; + return; + } + + function btCharacterController__logMovementChange_28_29($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + return; + } + + function btCharacterController__move_28btVector3_20const__2c_20float_2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = Math_fround($3); + var $7 = 0, $6 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $24 = 0, $26 = 0, $125 = 0, $135 = 0, $68 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$1 = 0; + $6 = __stack_pointer - 32 | 0; + __stack_pointer = $6; + HEAP32[($6 + 28 | 0) >> 2] = $0; + HEAP32[($6 + 24 | 0) >> 2] = $1; + HEAPF32[($6 + 20 | 0) >> 2] = $2; + HEAPF32[($6 + 16 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 28 | 0) >> 2] | 0; + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($7))), HEAPF32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_f32$0; + HEAP8[($7 + 65 | 0) >> 0] = 0; + HEAPF32[($6 + 12 | 0) >> 2] = Math_fround(.009999999776482582); + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(HEAPF32[(float_20const__20btMax_float__28float_20const__2c_20float_20const__29($7 + 36 | 0 | 0, $6 + 12 | 0 | 0) | 0) >> 2])), HEAPF32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_f32$0; + $24 = $7 + 136 | 0; + i64toi32_i32$2 = btTransform__getOrigin_28_29(btCollisionObject__getWorldTransform_28_29(HEAP32[($7 + 4 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $125 = i64toi32_i32$0; + i64toi32_i32$0 = $24; + HEAP32[i64toi32_i32$0 >> 2] = $125; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $26 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $26 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $135 = i64toi32_i32$1; + i64toi32_i32$1 = $24 + $26 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $135; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btCharacterController__moveCharacter_28btVector3_20const__2c_20float_2c_20float_29($7 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 20 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($6 + 16 | 0) >> 2]))) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + btCharacterController__logMovementChange_28_29($7 | 0); + label$1 : { + if (!((HEAPU8[($7 + 60 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + HEAP8[($7 + 61 | 0) >> 0] = 1; + btTransform__setOrigin_28btVector3_20const__29(btCollisionObject__getWorldTransform_28_29(HEAP32[($7 + 4 | 0) >> 2] | 0 | 0) | 0 | 0, $7 + 136 | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_i32$1 = btCharacterController__moveCharacter_28btVector3_20const__2c_20float_2c_20float_29($7 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 20 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($6 + 16 | 0) >> 2]))) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + HEAP8[($7 + 61 | 0) >> 0] = 0; + btCharacterController__logMovementChange_28_29($7 | 0); + } + label$2 : { + if (!((HEAPU8[($7 + 65 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($7) | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$2 + } + if (!((HEAP32[($6 + 8 | 0) >> 2] | 0) & 4 | 0)) { + break label$2 + } + HEAP8[($7 + 64 | 0) >> 0] = 1; + btCharacterController__moveCharacter_28btVector3_20const__2c_20float_2c_20float_29($7 | 0, HEAP32[($6 + 24 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 20 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($6 + 16 | 0) >> 2]))) | 0; + HEAP8[($7 + 64 | 0) >> 0] = 0; + btCharacterController__logMovementChange_28_29($7 | 0); + } + HEAP32[($7 + 132 | 0) >> 2] = HEAP32[($6 + 8 | 0) >> 2] | 0; + $68 = HEAP32[($6 + 8 | 0) >> 2] | 0; + __stack_pointer = $6 + 32 | 0; + return $68 | 0; + } + + function btCharacterController__moveCharacter_28btVector3_20const__2c_20float_2c_20float_29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = Math_fround($3); + var $6 = 0, $7 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $76 = 0, $85 = 0, $94 = 0, $107 = 0, $462 = 0, $466 = 0, $482 = 0, $486 = 0, $502 = 0, $506 = 0, $295 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 208 | 0; + __stack_pointer = $6; + HEAP32[($6 + 200 | 0) >> 2] = $0; + HEAP32[($6 + 196 | 0) >> 2] = $1; + HEAPF32[($6 + 192 | 0) >> 2] = $2; + HEAPF32[($6 + 188 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 200 | 0) >> 2] | 0; + HEAP8[($6 + 187 | 0) >> 0] = 0; + HEAP8[($7 + 60 | 0) >> 0] = 0; + HEAP32[($6 + 180 | 0) >> 2] = 0; + HEAP32[($6 + 176 | 0) >> 2] = 10; + HEAP32[($6 + 172 | 0) >> 2] = 10; + HEAP32[($6 + 168 | 0) >> 2] = 10; + HEAP32[($6 + 164 | 0) >> 2] = 1; + HEAP32[($6 + 160 | 0) >> 2] = $7 + 40 | 0; + HEAPF32[($6 + 140 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 136 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 132 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 144 | 0 | 0, $6 + 140 | 0 | 0, $6 + 136 | 0 | 0, $6 + 132 | 0 | 0) | 0; + HEAPF32[($6 + 108 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 104 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($6 + 100 | 0) >> 2] = Math_fround(0 | 0); + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($6 + 112 | 0 | 0, $6 + 108 | 0 | 0, $6 + 104 | 0 | 0, $6 + 100 | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 84 | 0 | 0) | 0; + btVector3__btVector3_28_29($6 + 68 | 0 | 0) | 0; + decomposeVector_28btVector3__2c_20btVector3__2c_20btVector3_20const__2c_20btVector3_20const__29($6 + 84 | 0 | 0, $6 + 68 | 0 | 0, HEAP32[($6 + 196 | 0) >> 2] | 0 | 0, HEAP32[($6 + 160 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($6 + 196 | 0) >> 2] | 0 | 0, HEAP32[($6 + 160 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 64 | 0) >> 2] = wasm2js_f32$0; + label$1 : { + label$2 : { + if (!(Math_fround(HEAPF32[($6 + 64 | 0) >> 2]) <= Math_fround(0 | 0) & 1 | 0)) { + break label$2 + } + $76 = 8; + i64toi32_i32$2 = ($6 + 84 | 0) + $76 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $462 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 112 | 0) + $76 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $462; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 84 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 88 | 0) >> 2] | 0; + $466 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 112 | 0) >> 2] = $466; + HEAP32[($6 + 116 | 0) >> 2] = i64toi32_i32$0; + break label$1; + } + $85 = 8; + i64toi32_i32$2 = ($6 + 84 | 0) + $85 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $482 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 144 | 0) + $85 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $482; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 84 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 88 | 0) >> 2] | 0; + $486 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 144 | 0) >> 2] = $486; + HEAP32[($6 + 148 | 0) >> 2] = i64toi32_i32$0; + } + $94 = 8; + i64toi32_i32$2 = ($6 + 68 | 0) + $94 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $502 = i64toi32_i32$0; + i64toi32_i32$0 = ($6 + 48 | 0) + $94 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $502; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $6; + i64toi32_i32$1 = HEAP32[($6 + 68 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6 + 72 | 0) >> 2] | 0; + $506 = i64toi32_i32$1; + i64toi32_i32$1 = $6; + HEAP32[($6 + 48 | 0) >> 2] = $506; + HEAP32[($6 + 52 | 0) >> 2] = i64toi32_i32$0; + $107 = 0; + label$3 : { + if ((HEAPU8[($6 + 187 | 0) >> 0] | 0) & 1 | 0) { + break label$3 + } + $107 = btVector3__fuzzyZero_28_29_20const($6 + 48 | 0 | 0) | 0; + } + HEAP8[($6 + 47 | 0) >> 0] = $107 & 1 | 0; + label$4 : { + label$5 : { + if ((HEAPU8[($6 + 47 | 0) >> 0] | 0) & 1 | 0) { + break label$5 + } + HEAP8[($7 + 65 | 0) >> 0] = 1; + break label$4; + } + HEAP8[($7 + 65 | 0) >> 0] = 0; + } + label$6 : { + if ((HEAPU8[($7 + 61 | 0) >> 0] | 0) & 1 | 0) { + break label$6 + } + if ((HEAPU8[($7 + 64 | 0) >> 0] | 0) & 1 | 0) { + break label$6 + } + label$7 : { + if ((HEAPU8[($6 + 47 | 0) >> 0] | 0) & 1 | 0) { + break label$7 + } + operator__28btVector3_20const__2c_20float_20const__29($6 + 28 | 0 | 0, HEAP32[($6 + 160 | 0) >> 2] | 0 | 0, $7 + 32 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($6 + 144 | 0 | 0, $6 + 28 | 0 | 0) | 0; + } + label$8 : { + if ((btVector3__fuzzyZero_28_29_20const($6 + 144 | 0 | 0) | 0) & 1 | 0) { + break label$8 + } + } + HEAP8[($7 + 108 | 0) >> 0] = 0; + label$9 : { + if (!((btCharacterController__doSweepTest_28btVector3_20const__2c_20float_2c_20SweepPass_2c_20int_29($7 | 0, $6 + 144 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 192 | 0) >> 2])), 0 | 0, 10 | 0) | 0) & 1 | 0)) { + break label$9 + } + HEAP32[($6 + 180 | 0) >> 2] = HEAP32[($6 + 180 | 0) >> 2] | 0 | 2 | 0; + } + } + label$10 : { + if ((HEAPU8[($7 + 64 | 0) >> 0] | 0) & 1 | 0) { + break label$10 + } + label$11 : { + if ((HEAPU8[($7 + 61 | 0) >> 0] | 0) & 1 | 0) { + break label$11 + } + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($7) | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$11 + } + HEAP8[($7 + 108 | 0) >> 0] = 1; + } + label$12 : { + if (!((btCharacterController__doSweepTest_28btVector3_20const__2c_20float_2c_20SweepPass_2c_20int_29($7 | 0, $6 + 48 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 192 | 0) >> 2])), 1 | 0, 10 | 0) | 0) & 1 | 0)) { + break label$12 + } + HEAP32[($6 + 180 | 0) >> 2] = HEAP32[($6 + 180 | 0) >> 2] | 0 | 1 | 0; + } + label$13 : { + if ((HEAPU8[($7 + 61 | 0) >> 0] | 0) & 1 | 0) { + break label$13 + } + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($7) | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$13 + } + HEAP8[($7 + 108 | 0) >> 0] = 0; + } + } + label$14 : { + if ((HEAPU8[($6 + 47 | 0) >> 0] | 0) & 1 | 0) { + break label$14 + } + operator__28btVector3_20const__2c_20float_20const__29($6 + 12 | 0 | 0, HEAP32[($6 + 160 | 0) >> 2] | 0 | 0, $7 + 32 | 0 | 0); + btVector3__operator___28btVector3_20const__29($6 + 112 | 0 | 0, $6 + 12 | 0 | 0) | 0; + } + label$15 : { + if ((HEAPU8[($7 + 61 | 0) >> 0] | 0) & 1 | 0) { + break label$15 + } + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($7) | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$15 + } + HEAP8[($7 + 108 | 0) >> 0] = 1; + } + label$16 : { + label$17 : { + if ((HEAPU8[($7 + 64 | 0) >> 0] | 0) & 1 | 0) { + break label$17 + } + if ((HEAPU8[($7 + 65 | 0) >> 0] | 0) & 1 | 0) { + break label$16 + } + } + HEAP8[($7 + 108 | 0) >> 0] = 0; + } + label$18 : { + label$19 : { + if (!((btCharacterController__doSweepTest_28btVector3_20const__2c_20float_2c_20SweepPass_2c_20int_29($7 | 0, $6 + 112 | 0 | 0, Math_fround(Math_fround(HEAPF32[($6 + 192 | 0) >> 2])), 2 | 0, 1 | 0) | 0) & 1 | 0)) { + break label$19 + } + HEAP32[($6 + 180 | 0) >> 2] = HEAP32[($6 + 180 | 0) >> 2] | 0 | 4 | 0; + label$20 : { + if ((HEAPU8[($7 + 64 | 0) >> 0] | 0) & 1 | 0) { + break label$20 + } + label$21 : { + if (!((testSlope_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($7 + 72 | 0 | 0, $7 + 40 | 0 | 0, Math_fround(Math_fround(btCos_28float_29(Math_fround(Math_fround(HEAPF32[($7 + 28 | 0) >> 2])))))) | 0) & 1 | 0)) { + break label$21 + } + HEAP8[($7 + 60 | 0) >> 0] = 1; + label$22 : { + if ((HEAPU8[($7 + 61 | 0) >> 0] | 0) & 1 | 0) { + break label$22 + } + label$23 : { + if ((HEAPU8[($7 + 64 | 0) >> 0] | 0) & 1 | 0) { + break label$23 + } + if ((HEAPU8[($7 + 61 | 0) >> 0] | 0) & 1 | 0) { + break label$23 + } + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($7) | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$23 + } + HEAP8[($7 + 108 | 0) >> 0] = 0; + } + HEAP32[($6 + 204 | 0) >> 2] = HEAP32[($6 + 180 | 0) >> 2] | 0; + break label$18; + } + } + } + } + label$24 : { + if ((HEAPU8[($7 + 61 | 0) >> 0] | 0) & 1 | 0) { + break label$24 + } + if (!((FUNCTION_TABLE[HEAP32[((HEAP32[$7 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($7) | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$24 + } + HEAP8[($7 + 108 | 0) >> 0] = 0; + } + HEAP32[($6 + 204 | 0) >> 2] = HEAP32[($6 + 180 | 0) >> 2] | 0; + } + $295 = HEAP32[($6 + 204 | 0) >> 2] | 0; + __stack_pointer = $6 + 208 | 0; + return $295 | 0; + } + + function decomposeVector_28btVector3__2c_20btVector3__2c_20btVector3_20const__2c_20btVector3_20const__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $17 = 0, $19 = 0, $30 = 0, $32 = 0, $7 = 0, $80 = 0, $93 = 0, $110 = 0, $123 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $6 = __stack_pointer - 64 | 0; + __stack_pointer = $6; + HEAP32[($6 + 60 | 0) >> 2] = $0; + HEAP32[($6 + 56 | 0) >> 2] = $1; + HEAP32[($6 + 52 | 0) >> 2] = $2; + HEAP32[($6 + 48 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 48 | 0) >> 2] | 0; + (wasm2js_i32$0 = $6, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($6 + 52 | 0) >> 2] | 0 | 0, HEAP32[($6 + 48 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 28 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20float_20const__29($6 + 32 | 0 | 0, $7 | 0, $6 + 28 | 0 | 0); + $17 = HEAP32[($6 + 60 | 0) >> 2] | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 32 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 36 | 0) >> 2] | 0; + $80 = i64toi32_i32$0; + i64toi32_i32$0 = $17; + HEAP32[i64toi32_i32$0 >> 2] = $80; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $19 = 8; + i64toi32_i32$2 = ($6 + 32 | 0) + $19 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $93 = i64toi32_i32$1; + i64toi32_i32$1 = $17 + $19 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $93; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 12 | 0 | 0, HEAP32[($6 + 52 | 0) >> 2] | 0 | 0, HEAP32[($6 + 60 | 0) >> 2] | 0 | 0); + $30 = HEAP32[($6 + 56 | 0) >> 2] | 0; + i64toi32_i32$2 = $6; + i64toi32_i32$0 = HEAP32[($6 + 12 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($6 + 16 | 0) >> 2] | 0; + $110 = i64toi32_i32$0; + i64toi32_i32$0 = $30; + HEAP32[i64toi32_i32$0 >> 2] = $110; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $32 = 8; + i64toi32_i32$2 = ($6 + 12 | 0) + $32 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $123 = i64toi32_i32$1; + i64toi32_i32$1 = $30 + $32 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $123; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $6 + 64 | 0; + return; + } + + function btCharacterController__doSweepTest_28btVector3_20const__2c_20float_2c_20SweepPass_2c_20int_29($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + $3 = $3 | 0; + $4 = $4 | 0; + var $7 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $8 = 0, $20 = 0, $21 = 0, $28 = 0, $41 = 0, $98 = 0, $133 = 0, $135 = 0, $146 = 0, $148 = 0, $156 = 0, $158 = 0, $172 = 0, $205 = 0, $207 = 0, $218 = 0, $220 = 0, $228 = 0, $230 = 0, $237 = 0, $305 = 0, $307 = 0, $317 = 0, $319 = 0, $352 = 0, $354 = 0, $444 = 0, $448 = 0, $464 = 0, $468 = 0, $607 = 0, $611 = 0, $668 = 0, $678 = 0, $693 = 0, $703 = 0, $714 = 0, $727 = 0, $817 = 0, $827 = 0, $842 = 0, $852 = 0, $863 = 0, $876 = 0, $1025 = 0, $1035 = 0, $1049 = 0, $1059 = 0, $1121 = 0, $1134 = 0, $388 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0), wasm2js_i32$1 = 0; + $7 = __stack_pointer - 336 | 0; + __stack_pointer = $7; + HEAP32[($7 + 328 | 0) >> 2] = $0; + HEAP32[($7 + 324 | 0) >> 2] = $1; + HEAPF32[($7 + 320 | 0) >> 2] = $2; + HEAP32[($7 + 316 | 0) >> 2] = $3; + HEAP32[($7 + 312 | 0) >> 2] = $4; + $8 = HEAP32[($7 + 328 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((btVector3__fuzzyZero_28_29_20const(HEAP32[($7 + 324 | 0) >> 2] | 0 | 0) | 0) & 1 | 0)) { + break label$2 + } + HEAP8[($7 + 335 | 0) >> 0] = 0 & 1 | 0; + break label$1; + } + HEAP8[($7 + 311 | 0) >> 0] = 0; + HEAP8[($7 + 310 | 0) >> 0] = 0; + $20 = btTransform__getOrigin_28_29(btCollisionObject__getWorldTransform_28_29(HEAP32[($8 + 4 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + $21 = 8; + i64toi32_i32$2 = $20 + $21 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $444 = i64toi32_i32$0; + i64toi32_i32$0 = ($7 + 288 | 0) + $21 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $444; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $20; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $448 = i64toi32_i32$1; + i64toi32_i32$1 = $7; + HEAP32[($7 + 288 | 0) >> 2] = $448; + HEAP32[($7 + 292 | 0) >> 2] = i64toi32_i32$0; + $28 = 8; + i64toi32_i32$2 = ($7 + 288 | 0) + $28 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $464 = i64toi32_i32$0; + i64toi32_i32$0 = ($7 + 272 | 0) + $28 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $464; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $7; + i64toi32_i32$1 = HEAP32[($7 + 288 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($7 + 292 | 0) >> 2] | 0; + $468 = i64toi32_i32$1; + i64toi32_i32$1 = $7; + HEAP32[($7 + 272 | 0) >> 2] = $468; + HEAP32[($7 + 276 | 0) >> 2] = i64toi32_i32$0; + btVector3__operator___28btVector3_20const__29_1($7 + 272 | 0 | 0, HEAP32[($7 + 324 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : while (1) { + $41 = HEAP32[($7 + 312 | 0) >> 2] | 0; + HEAP32[($7 + 312 | 0) >> 2] = $41 + -1 | 0; + if (!$41) { + break label$3 + } + operator__28btVector3_20const__2c_20btVector3_20const__29($7 + 256 | 0 | 0, $7 + 272 | 0 | 0, $7 + 288 | 0 | 0); + (wasm2js_i32$0 = $7, wasm2js_f32$0 = Math_fround(btVector3__length_28_29_20const($7 + 256 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 252 | 0) >> 2] = wasm2js_f32$0; + label$5 : { + if (!(Math_fround(HEAPF32[($7 + 252 | 0) >> 2]) <= Math_fround(HEAPF32[($7 + 320 | 0) >> 2]) & 1 | 0)) { + break label$5 + } + break label$3; + } + btVector3__operator___28float_20const__29($7 + 256 | 0 | 0, $7 + 252 | 0 | 0) | 0; + label$6 : { + if (!(Math_fround(btVector3__dot_28btVector3_20const__29_20const($7 + 256 | 0 | 0, HEAP32[($7 + 324 | 0) >> 2] | 0 | 0)) <= Math_fround(0 | 0) & 1 | 0)) { + break label$6 + } + break label$3; + } + HEAP8[($7 + 311 | 0) >> 0] = 1; + btSweptContact__btSweptContact_28_29($7 + 208 | 0 | 0) | 0; + HEAPF32[($7 + 240 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($7 + 252 | 0) >> 2]) + Math_fround(HEAPF32[($8 + 36 | 0) >> 2])); + label$7 : { + if ((btCharacterController__collideGeoms_28btVector3_20const__2c_20btVector3_20const__2c_20btSweptContact__29($8 | 0, $7 + 288 | 0 | 0, $7 + 272 | 0 | 0, $7 + 208 | 0 | 0) | 0) & 1 | 0) { + break label$7 + } + HEAP8[($7 + 310 | 0) >> 0] = 0; + $98 = 8; + i64toi32_i32$2 = ($7 + 272 | 0) + $98 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $607 = i64toi32_i32$0; + i64toi32_i32$0 = ($7 + 288 | 0) + $98 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $607; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $7; + i64toi32_i32$1 = HEAP32[($7 + 272 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($7 + 276 | 0) >> 2] | 0; + $611 = i64toi32_i32$1; + i64toi32_i32$1 = $7; + HEAP32[($7 + 288 | 0) >> 2] = $611; + HEAP32[($7 + 292 | 0) >> 2] = i64toi32_i32$0; + break label$3; + } + HEAP8[($7 + 310 | 0) >> 0] = 1; + label$8 : { + if (!((HEAP32[($8 + 20 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$8 + } + label$9 : { + label$10 : { + if (!((btCollisionObject__getInternalType_28_29_20const(HEAP32[($7 + 244 | 0) >> 2] | 0 | 0) | 0) & 2 | 0)) { + break label$10 + } + btControllerShapeHit__btControllerShapeHit_28_29($7 + 144 | 0 | 0) | 0; + HEAP32[($7 + 144 | 0) >> 2] = $8; + HEAP32[($7 + 200 | 0) >> 2] = HEAP32[($7 + 248 | 0) >> 2] | 0; + HEAP32[($7 + 204 | 0) >> 2] = HEAP32[($7 + 244 | 0) >> 2] | 0; + $133 = ($7 + 144 | 0) + 20 | 0; + i64toi32_i32$2 = ($7 + 208 | 0) + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $668 = i64toi32_i32$0; + i64toi32_i32$0 = $133; + HEAP32[i64toi32_i32$0 >> 2] = $668; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $135 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $135 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $678 = i64toi32_i32$1; + i64toi32_i32$1 = $133 + $135 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $678; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $146 = ($7 + 144 | 0) + 4 | 0; + i64toi32_i32$2 = $7 + 208 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $693 = i64toi32_i32$0; + i64toi32_i32$0 = $146; + HEAP32[i64toi32_i32$0 >> 2] = $693; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $148 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $148 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $703 = i64toi32_i32$1; + i64toi32_i32$1 = $146 + $148 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $703; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $156 = ($7 + 144 | 0) + 36 | 0; + i64toi32_i32$2 = $7; + i64toi32_i32$0 = HEAP32[($7 + 256 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7 + 260 | 0) >> 2] | 0; + $714 = i64toi32_i32$0; + i64toi32_i32$0 = $156; + HEAP32[i64toi32_i32$0 >> 2] = $714; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $158 = 8; + i64toi32_i32$2 = ($7 + 256 | 0) + $158 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $727 = i64toi32_i32$1; + i64toi32_i32$1 = $156 + $158 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $727; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($7 + 196 | 0) >> 2] = Math_fround(HEAPF32[($7 + 252 | 0) >> 2]); + label$11 : { + label$12 : { + if (!((HEAP32[($7 + 248 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$12 + } + $172 = HEAP32[($8 + 20 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[(HEAP32[$172 >> 2] | 0) >> 2] | 0 | 0]($172, $7 + 144 | 0); + break label$11; + } + } + break label$9; + } + label$13 : { + if (!((btCollisionObject__getInternalType_28_29_20const(HEAP32[($7 + 244 | 0) >> 2] | 0 | 0) | 0) & 4 | 0)) { + break label$13 + } + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btCollisionObject__getUserPointer_28_29_20const(HEAP32[($7 + 244 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 140 | 0) >> 2] = wasm2js_i32$1; + label$14 : { + if (!((HEAP32[($7 + 140 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$14 + } + HEAP32[($7 + 136 | 0) >> 2] = HEAP32[($7 + 140 | 0) >> 2] | 0; + btControllersHit__btControllersHit_28_29($7 + 76 | 0 | 0) | 0; + HEAP32[($7 + 76 | 0) >> 2] = $8; + HEAP32[($7 + 132 | 0) >> 2] = HEAP32[($7 + 136 | 0) >> 2] | 0; + $205 = ($7 + 76 | 0) + 20 | 0; + i64toi32_i32$2 = ($7 + 208 | 0) + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $817 = i64toi32_i32$0; + i64toi32_i32$0 = $205; + HEAP32[i64toi32_i32$0 >> 2] = $817; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $207 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $207 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $827 = i64toi32_i32$1; + i64toi32_i32$1 = $205 + $207 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $827; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $218 = ($7 + 76 | 0) + 4 | 0; + i64toi32_i32$2 = $7 + 208 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $842 = i64toi32_i32$0; + i64toi32_i32$0 = $218; + HEAP32[i64toi32_i32$0 >> 2] = $842; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $220 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $220 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $852 = i64toi32_i32$1; + i64toi32_i32$1 = $218 + $220 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $852; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $228 = ($7 + 76 | 0) + 36 | 0; + i64toi32_i32$2 = $7; + i64toi32_i32$0 = HEAP32[($7 + 256 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7 + 260 | 0) >> 2] | 0; + $863 = i64toi32_i32$0; + i64toi32_i32$0 = $228; + HEAP32[i64toi32_i32$0 >> 2] = $863; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $230 = 8; + i64toi32_i32$2 = ($7 + 256 | 0) + $230 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $876 = i64toi32_i32$1; + i64toi32_i32$1 = $228 + $230 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $876; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($7 + 128 | 0) >> 2] = Math_fround(HEAPF32[($7 + 252 | 0) >> 2]); + $237 = HEAP32[($8 + 20 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$237 >> 2] | 0) + 4 | 0) >> 2] | 0 | 0]($237, $7 + 76 | 0); + } + } + } + } + label$15 : { + if (!((HEAPU8[($8 + 63 | 0) >> 0] | 0) & 1 | 0)) { + break label$15 + } + if (!(Math_fround(HEAPF32[($7 + 240 | 0) >> 2]) == Math_fround(0 | 0) & 1 | 0)) { + break label$15 + } + (wasm2js_i32$0 = $7, wasm2js_i32$1 = btTransform__getOrigin_28_29(btCollisionObject__getWorldTransform_28_29(HEAP32[($8 + 4 | 0) >> 2] | 0 | 0) | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 72 | 0) >> 2] = wasm2js_i32$1; + HEAP32[($7 + 68 | 0) >> 2] = 0; + label$16 : { + label$17 : while (1) { + if (!((HEAP32[($7 + 68 | 0) >> 2] | 0 | 0) < (4 | 0) & 1 | 0)) { + break label$16 + } + btCharacterController__recoverFromPenetration_28_29($8 | 0) | 0; + HEAP32[($7 + 68 | 0) >> 2] = (HEAP32[($7 + 68 | 0) >> 2] | 0) + 1 | 0; + continue label$17; + }; + } + HEAP8[($7 + 335 | 0) >> 0] = (HEAPU8[($7 + 310 | 0) >> 0] | 0) & 1 | 0; + break label$1; + } + label$18 : { + if (!(Math_fround(Math_fround(HEAPF32[($7 + 240 | 0) >> 2]) - Math_fround(HEAPF32[($8 + 36 | 0) >> 2])) > Math_fround(0 | 0) & 1 | 0)) { + break label$18 + } + HEAPF32[($7 + 48 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($7 + 240 | 0) >> 2]) - Math_fround(HEAPF32[($8 + 36 | 0) >> 2])); + operator__28btVector3_20const__2c_20float_20const__29($7 + 52 | 0 | 0, $7 + 256 | 0 | 0, $7 + 48 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1($7 + 288 | 0 | 0, $7 + 52 | 0 | 0) | 0; + } + (wasm2js_i32$0 = $8, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const($7 + 208 | 0 | 0, $8 + 40 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 68 | 0) >> 2] = wasm2js_f32$0; + $305 = $8 + 88 | 0; + i64toi32_i32$2 = $7 + 208 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1025 = i64toi32_i32$0; + i64toi32_i32$0 = $305; + HEAP32[i64toi32_i32$0 >> 2] = $1025; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $307 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $307 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1035 = i64toi32_i32$1; + i64toi32_i32$1 = $305 + $307 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1035; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $317 = $8 + 72 | 0; + i64toi32_i32$2 = ($7 + 208 | 0) + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1049 = i64toi32_i32$0; + i64toi32_i32$0 = $317; + HEAP32[i64toi32_i32$0 >> 2] = $1049; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $319 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $319 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1059 = i64toi32_i32$1; + i64toi32_i32$1 = $317 + $319 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1059; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + label$19 : { + if (!((HEAPU8[($8 + 61 | 0) >> 0] | 0) & 1 | 0)) { + break label$19 + } + btVector3__btVector3_28_29($7 + 32 | 0 | 0) | 0; + btVector3__btVector3_28_29($7 + 16 | 0 | 0) | 0; + decomposeVector_28btVector3__2c_20btVector3__2c_20btVector3_20const__2c_20btVector3_20const__29($7 + 32 | 0 | 0, $7 + 16 | 0 | 0, $8 + 72 | 0 | 0, $8 + 40 | 0 | 0); + label$20 : { + if (!((btVector3__fuzzyZero_28_29_20const($7 + 16 | 0 | 0) | 0) & 1 | 0)) { + break label$20 + } + HEAP8[($7 + 335 | 0) >> 0] = (HEAPU8[($7 + 310 | 0) >> 0] | 0) & 1 | 0; + break label$1; + } + $352 = $8 + 72 | 0; + i64toi32_i32$2 = $7; + i64toi32_i32$0 = HEAP32[($7 + 16 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7 + 20 | 0) >> 2] | 0; + $1121 = i64toi32_i32$0; + i64toi32_i32$0 = $352; + HEAP32[i64toi32_i32$0 >> 2] = $1121; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $354 = 8; + i64toi32_i32$2 = ($7 + 16 | 0) + $354 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1134 = i64toi32_i32$1; + i64toi32_i32$1 = $352 + $354 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1134; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + btVector3__normalize_28_29($8 + 72 | 0 | 0) | 0; + } + HEAPF32[($7 + 12 | 0) >> 2] = Math_fround(1.0); + btCharacterController__collisionResponse_28btVector3_20const__2c_20btVector3__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20bool_29($8 | 0, $7 + 288 | 0 | 0, $7 + 272 | 0 | 0, $7 + 256 | 0 | 0, $8 + 72 | 0 | 0, Math_fround(Math_fround(1.0)), 0 & 1 | 0 | 0); + continue label$4; + }; + } + btTransform__setOrigin_28btVector3_20const__29(btCollisionObject__getWorldTransform_28_29(HEAP32[($8 + 4 | 0) >> 2] | 0 | 0) | 0 | 0, $7 + 288 | 0 | 0); + HEAP8[($7 + 335 | 0) >> 0] = (HEAPU8[($7 + 310 | 0) >> 0] | 0) & 1 | 0; + } + $388 = (HEAPU8[($7 + 335 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $7 + 336 | 0; + return $388 | 0; + } + + function testSlope_28btVector3_20const__2c_20btVector3_20const__2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0, $16 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($5 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5 + 8 | 0) >> 2] | 0 | 0))), HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + $16 = 0; + label$1 : { + if (!(Math_fround(HEAPF32[$5 >> 2]) >= Math_fround(0 | 0) & 1 | 0)) { + break label$1 + } + $16 = Math_fround(HEAPF32[$5 >> 2]) < Math_fround(HEAPF32[($5 + 4 | 0) >> 2]); + } + __stack_pointer = $5 + 16 | 0; + return $16 & 1 | 0 | 0; + } + + function btSweptContact__btSweptContact_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btVector3__btVector3_28_29($4 | 0) | 0; + btVector3__btVector3_28_29($4 + 16 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCharacterController__collideGeoms_28btVector3_20const__2c_20btVector3_20const__2c_20btSweptContact__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $7 = 0, $91 = 0, $93 = 0, $104 = 0, $106 = 0, $21 = 0, $22 = 0, $326 = 0, $336 = 0, $352 = 0, $362 = 0, $122 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $6 = __stack_pointer - 304 | 0; + __stack_pointer = $6; + HEAP32[($6 + 300 | 0) >> 2] = $0; + HEAP32[($6 + 296 | 0) >> 2] = $1; + HEAP32[($6 + 292 | 0) >> 2] = $2; + HEAP32[($6 + 288 | 0) >> 2] = $3; + $7 = HEAP32[($6 + 300 | 0) >> 2] | 0; + HEAP8[($6 + 287 | 0) >> 0] = 0; + HEAP32[($6 + 280 | 0) >> 2] = HEAP32[($7 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAPU8[($7 + 108 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($6 + 280 | 0) >> 2] = HEAP32[($7 + 104 | 0) >> 2] | 0; + break label$1; + } + } + HEAPF32[($6 + 276 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($6 + 288 | 0) >> 2] | 0) + 32 | 0) >> 2]); + btTransform__btTransform_28btQuaternion_20const__2c_20btVector3_20const__29($6 + 212 | 0 | 0, btQuaternion__getIdentity_28_29() | 0 | 0, HEAP32[($6 + 296 | 0) >> 2] | 0 | 0) | 0; + $21 = btQuaternion__getIdentity_28_29() | 0; + $22 = HEAP32[($6 + 296 | 0) >> 2] | 0; + operator__28btVector3_20const__2c_20btVector3_20const__29($6 + 100 | 0 | 0, HEAP32[($6 + 292 | 0) >> 2] | 0 | 0, HEAP32[($6 + 296 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($6 + 116 | 0 | 0, btVector3__normalize_28_29($6 + 100 | 0 | 0) | 0 | 0, $6 + 276 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29_2($6 + 132 | 0 | 0, $22 | 0, $6 + 116 | 0 | 0); + btTransform__btTransform_28btQuaternion_20const__2c_20btVector3_20const__29($6 + 148 | 0 | 0, $21 | 0, $6 + 132 | 0 | 0) | 0; + btKinematicClosestNotMeConvexResultCallback__btKinematicClosestNotMeConvexResultCallback_28btVector3_20const__2c_20btVector3_20const__2c_20btCollisionObject__29($6 + 8 | 0 | 0, HEAP32[($6 + 296 | 0) >> 2] | 0 | 0, HEAP32[($6 + 292 | 0) >> 2] | 0 | 0, HEAP32[($7 + 4 | 0) >> 2] | 0 | 0) | 0; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = HEAP32[((btCollisionObject__getBroadphaseHandle_28_29(HEAP32[($7 + 4 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 16 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $6, wasm2js_i32$1 = HEAP32[((btCollisionObject__getBroadphaseHandle_28_29(HEAP32[($7 + 4 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 20 | 0) >> 2] = wasm2js_i32$1; + btCollisionWorld__convexSweepTest_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29_20const(HEAP32[($7 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6 + 280 | 0) >> 2] | 0 | 0, $6 + 212 | 0 | 0, $6 + 148 | 0 | 0, $6 + 8 | 0 | 0, Math_fround(Math_fround(HEAPF32[((btCollisionWorld__getDispatchInfo_28_29(HEAP32[($7 + 12 | 0) >> 2] | 0 | 0) | 0) + 28 | 0) >> 2]))); + label$3 : { + if (!((btCollisionWorld__ConvexResultCallback__hasHit_28_29_20const($6 + 8 | 0 | 0) | 0) & 1 | 0)) { + break label$3 + } + HEAP8[($6 + 287 | 0) >> 0] = 1; + HEAPF32[($6 + 4 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($6 + 276 | 0) >> 2]) * Math_fround(HEAPF32[($6 + 12 | 0) >> 2])); + $91 = HEAP32[($6 + 288 | 0) >> 2] | 0; + i64toi32_i32$2 = ($6 + 8 | 0) + 68 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $326 = i64toi32_i32$0; + i64toi32_i32$0 = $91; + HEAP32[i64toi32_i32$0 >> 2] = $326; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $93 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $93 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $336 = i64toi32_i32$1; + i64toi32_i32$1 = $91 + $93 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $336; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $104 = (HEAP32[($6 + 288 | 0) >> 2] | 0) + 16 | 0; + i64toi32_i32$2 = ($6 + 8 | 0) + 52 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $352 = i64toi32_i32$0; + i64toi32_i32$0 = $104; + HEAP32[i64toi32_i32$0 >> 2] = $352; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $106 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $106 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $362 = i64toi32_i32$1; + i64toi32_i32$1 = $104 + $106 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $362; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + label$4 : { + if (!((btVector3__fuzzyZero_28_29_20const((HEAP32[($6 + 288 | 0) >> 2] | 0) + 16 | 0 | 0) | 0) & 1 | 0)) { + break label$4 + } + } + HEAPF32[((HEAP32[($6 + 288 | 0) >> 2] | 0) + 32 | 0) >> 2] = Math_fround(HEAPF32[($6 + 4 | 0) >> 2]); + HEAP32[((HEAP32[($6 + 288 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($6 + 24 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6 + 288 | 0) >> 2] | 0) + 40 | 0) >> 2] = HEAP32[($6 + 92 | 0) >> 2] | 0; + } + $122 = HEAPU8[($6 + 287 | 0) >> 0] | 0; + btKinematicClosestNotMeConvexResultCallback___btKinematicClosestNotMeConvexResultCallback_28_29($6 + 8 | 0 | 0) | 0; + __stack_pointer = $6 + 304 | 0; + return $122 & 1 | 0 | 0; + } + + function btControllerShapeHit__btControllerShapeHit_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btControllerHit__btControllerHit_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCollisionObject__getUserPointer_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 256 | 0) >> 2] | 0 | 0; + } + + function btControllersHit__btControllersHit_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btControllerHit__btControllerHit_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCharacterController__recoverFromPenetration_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0, $15 = 0, $27 = 0, $41 = 0, $56 = 0, $74 = 0, $100 = 0, $54 = 0, $180 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0, wasm2js_i32$4 = 0, wasm2js_i32$5 = 0, wasm2js_f32$0 = Math_fround(0); + $3 = __stack_pointer - 144 | 0; + __stack_pointer = $3; + HEAP32[($3 + 140 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 140 | 0) >> 2] | 0; + HEAP8[($3 + 139 | 0) >> 0] = 0; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = btTransform__getOrigin_28_29(btCollisionObject__getWorldTransform_28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 132 | 0) >> 2] = wasm2js_i32$1; + btVector3__btVector3_28_29($3 + 116 | 0 | 0) | 0; + btVector3__btVector3_28_29($3 + 100 | 0 | 0) | 0; + $15 = HEAP32[($4 + 8 | 0) >> 2] | 0; + ((((wasm2js_i32$1 = $15, wasm2js_i32$2 = btCollisionObject__getWorldTransform_28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$3 = $3 + 116 | 0), wasm2js_i32$4 = $3 + 100 | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$15 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0, wasm2js_i32$2 | 0, wasm2js_i32$3 | 0, wasm2js_i32$4 | 0); + $27 = btCollisionWorld__getBroadphase_28_29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0; + (((((wasm2js_i32$4 = $27, wasm2js_i32$3 = btCollisionObject__getBroadphaseHandle_28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$2 = $3 + 116 | 0), wasm2js_i32$1 = $3 + 100 | 0), wasm2js_i32$5 = btCollisionWorld__getDispatcher_28_29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$27 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$4 | 0, wasm2js_i32$3 | 0, wasm2js_i32$2 | 0, wasm2js_i32$1 | 0, wasm2js_i32$5 | 0); + $41 = btCollisionWorld__getDispatcher_28_29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0; + ((((wasm2js_i32$5 = $41, wasm2js_i32$1 = btPairCachingGhostObject__getOverlappingPairCache_28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$2 = btCollisionWorld__getDispatchInfo_28_29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$3 = btCollisionWorld__getDispatcher_28_29(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0), wasm2js_i32$0 = HEAP32[((HEAP32[$41 >> 2] | 0) + 32 | 0) >> 2] | 0 | 0), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$5 | 0, wasm2js_i32$1 | 0, wasm2js_i32$2 | 0, wasm2js_i32$3 | 0); + btAlignedObjectArray_btPersistentManifold____btAlignedObjectArray_28_29($3 + 80 | 0 | 0) | 0; + HEAP32[($3 + 76 | 0) >> 2] = 0; + label$1 : { + label$2 : while (1) { + $54 = HEAP32[($3 + 76 | 0) >> 2] | 0; + $56 = btPairCachingGhostObject__getOverlappingPairCache_28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0; + if (!(($54 | 0) < (FUNCTION_TABLE[HEAP32[((HEAP32[$56 >> 2] | 0) + 36 | 0) >> 2] | 0 | 0]($56) | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[($3 + 72 | 0) >> 2] = 0; + btAlignedObjectArray_btPersistentManifold____resize_28int_2c_20btPersistentManifold__20const__29($3 + 80 | 0 | 0, 0 | 0, $3 + 72 | 0 | 0); + $74 = btPairCachingGhostObject__getOverlappingPairCache_28_29(HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) | 0; + (wasm2js_i32$0 = $3, wasm2js_i32$3 = btAlignedObjectArray_btBroadphasePair___operator_5b_5d_28int_29(FUNCTION_TABLE[HEAP32[((HEAP32[$74 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($74) | 0 | 0, HEAP32[($3 + 76 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 68 | 0) >> 2] = wasm2js_i32$3; + HEAP32[($3 + 64 | 0) >> 2] = HEAP32[(HEAP32[(HEAP32[($3 + 68 | 0) >> 2] | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($3 + 60 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($3 + 68 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + label$4 : { + if ((needsCollision_28btCollisionObject_20const__2c_20btCollisionObject_20const__29(HEAP32[($3 + 64 | 0) >> 2] | 0 | 0, HEAP32[($3 + 60 | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$4 + } + break label$3; + } + label$5 : { + if (!((HEAP32[((HEAP32[($3 + 68 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $100 = HEAP32[((HEAP32[($3 + 68 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$100 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0]($100, $3 + 80 | 0); + } + HEAP32[($3 + 56 | 0) >> 2] = 0; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($3 + 56 | 0) >> 2] | 0 | 0) < (btAlignedObjectArray_btPersistentManifold____size_28_29_20const($3 + 80 | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$6 + } + (wasm2js_i32$0 = $3, wasm2js_i32$3 = HEAP32[(btAlignedObjectArray_btPersistentManifold____operator_5b_5d_28int_29($3 + 80 | 0 | 0, HEAP32[($3 + 56 | 0) >> 2] | 0 | 0) | 0) >> 2] | 0), HEAP32[(wasm2js_i32$0 + 52 | 0) >> 2] = wasm2js_i32$3; + (wasm2js_i32$0 = $3, wasm2js_f32$0 = (btPersistentManifold__getBody0_28_29_20const(HEAP32[($3 + 52 | 0) >> 2] | 0 | 0) | 0 | 0) == (HEAP32[($4 + 4 | 0) >> 2] | 0 | 0) & 1 | 0 ? Math_fround(-1.0) : Math_fround(1.0)), HEAPF32[(wasm2js_i32$0 + 48 | 0) >> 2] = wasm2js_f32$0; + HEAP32[($3 + 44 | 0) >> 2] = 0; + label$8 : { + label$9 : while (1) { + if (!((HEAP32[($3 + 44 | 0) >> 2] | 0 | 0) < (btPersistentManifold__getNumContacts_28_29_20const(HEAP32[($3 + 52 | 0) >> 2] | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$8 + } + (wasm2js_i32$0 = $3, wasm2js_i32$3 = btPersistentManifold__getContactPoint_28int_29(HEAP32[($3 + 52 | 0) >> 2] | 0 | 0, HEAP32[($3 + 44 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 40 | 0) >> 2] = wasm2js_i32$3; + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(btManifoldPoint__getDistance_28_29_20const(HEAP32[($3 + 40 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 36 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20float_20const__29($3 + 4 | 0 | 0, (HEAP32[($3 + 40 | 0) >> 2] | 0) + 64 | 0 | 0, $3 + 48 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($3 + 20 | 0 | 0, $3 + 4 | 0 | 0, $3 + 36 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1(HEAP32[($3 + 132 | 0) >> 2] | 0 | 0, $3 + 20 | 0 | 0) | 0; + HEAP8[($3 + 139 | 0) >> 0] = 1; + HEAP32[($3 + 44 | 0) >> 2] = (HEAP32[($3 + 44 | 0) >> 2] | 0) + 1 | 0; + continue label$9; + }; + } + HEAP32[($3 + 56 | 0) >> 2] = (HEAP32[($3 + 56 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + } + HEAP32[($3 + 76 | 0) >> 2] = (HEAP32[($3 + 76 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + $180 = HEAPU8[($3 + 139 | 0) >> 0] | 0; + btAlignedObjectArray_btPersistentManifold_____btAlignedObjectArray_28_29($3 + 80 | 0 | 0) | 0; + __stack_pointer = $3 + 144 | 0; + return $180 & 1 | 0 | 0; + } + + function btCharacterController__collisionResponse_28btVector3_20const__2c_20btVector3__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20bool_29($0, $1, $2, $3, $4, $5, $6) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = Math_fround($5); + $6 = $6 | 0; + var $9 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $48 = 0, $50 = 0, $185 = 0, $195 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $9 = __stack_pointer - 128 | 0; + __stack_pointer = $9; + HEAP32[($9 + 124 | 0) >> 2] = $0; + HEAP32[($9 + 120 | 0) >> 2] = $1; + HEAP32[($9 + 116 | 0) >> 2] = $2; + HEAP32[($9 + 112 | 0) >> 2] = $3; + HEAP32[($9 + 108 | 0) >> 2] = $4; + HEAPF32[($9 + 104 | 0) >> 2] = $5; + HEAP8[($9 + 103 | 0) >> 0] = $6; + btVector3__btVector3_28_29($9 + 84 | 0 | 0) | 0; + computeReflexionVector_28btVector3__2c_20btVector3_20const__2c_20btVector3_20const__29($9 + 84 | 0 | 0, HEAP32[($9 + 112 | 0) >> 2] | 0 | 0, HEAP32[($9 + 108 | 0) >> 2] | 0 | 0); + btVector3__normalize_28_29($9 + 84 | 0 | 0) | 0; + btVector3__btVector3_28_29($9 + 68 | 0 | 0) | 0; + btVector3__btVector3_28_29($9 + 52 | 0 | 0) | 0; + decomposeVector_28btVector3__2c_20btVector3__2c_20btVector3_20const__2c_20btVector3_20const__29($9 + 68 | 0 | 0, $9 + 52 | 0 | 0, $9 + 84 | 0 | 0, HEAP32[($9 + 108 | 0) >> 2] | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($9 + 32 | 0 | 0, HEAP32[($9 + 116 | 0) >> 2] | 0 | 0, HEAP32[($9 + 120 | 0) >> 2] | 0 | 0); + (wasm2js_i32$0 = $9, wasm2js_f32$0 = Math_fround(btVector3__length_28_29_20const($9 + 32 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 48 | 0) >> 2] = wasm2js_f32$0; + $48 = HEAP32[($9 + 116 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($9 + 120 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $185 = i64toi32_i32$0; + i64toi32_i32$0 = $48; + HEAP32[i64toi32_i32$0 >> 2] = $185; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $50 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $50 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $195 = i64toi32_i32$1; + i64toi32_i32$1 = $48 + $50 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $195; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + label$1 : { + if (!(Math_fround(HEAPF32[($9 + 104 | 0) >> 2]) != Math_fround(0 | 0) & 1 | 0)) { + break label$1 + } + label$2 : { + if (!((HEAPU8[($9 + 103 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + btVector3__normalize_28_29($9 + 52 | 0 | 0) | 0; + } + operator__28btVector3_20const__2c_20float_20const__29($9 | 0, $9 + 52 | 0 | 0, $9 + 104 | 0 | 0); + operator__28btVector3_20const__2c_20float_20const__29($9 + 16 | 0 | 0, $9 | 0, $9 + 48 | 0 | 0); + btVector3__operator___28btVector3_20const__29_1(HEAP32[($9 + 116 | 0) >> 2] | 0 | 0, $9 + 16 | 0 | 0) | 0; + } + __stack_pointer = $9 + 128 | 0; + return; + } + + function btKinematicClosestNotMeConvexResultCallback__btKinematicClosestNotMeConvexResultCallback_28btVector3_20const__2c_20btVector3_20const__2c_20btCollisionObject__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btCollisionWorld__ClosestConvexResultCallback__ClosestConvexResultCallback_28btVector3_20const__2c_20btVector3_20const__29($7 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6 + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$7 >> 2] = 104320 + 8 | 0; + HEAP32[($7 + 84 | 0) >> 2] = 0; + HEAP32[($7 + 88 | 0) >> 2] = HEAP32[$6 >> 2] | 0; + __stack_pointer = $6 + 16 | 0; + return $7 | 0; + } + + function btKinematicClosestNotMeConvexResultCallback___btKinematicClosestNotMeConvexResultCallback_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCollisionWorld__ClosestConvexResultCallback___ClosestConvexResultCallback_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btControllerHit__btControllerHit_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btVector3__btVector3_28_29($4 + 4 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 20 | 0 | 0) | 0; + btVector3__btVector3_28_29($4 + 36 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btPairCachingGhostObject__getOverlappingPairCache_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 344 | 0) >> 2] | 0 | 0; + } + + function needsCollision_28btCollisionObject_20const__2c_20btCollisionObject_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0, $22 = 0, $39 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = ((HEAP32[((btCollisionObject__getBroadphaseHandle_28_29_20const(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2] | 0) & (HEAP32[((btCollisionObject__getBroadphaseHandle_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2] | 0) | 0 | 0) != (0 | 0) & 1 | 0), HEAP8[(wasm2js_i32$0 + 7 | 0) >> 0] = wasm2js_i32$1; + $22 = 0; + label$1 : { + if (!((HEAPU8[($4 + 7 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + $22 = ((HEAP32[((btCollisionObject__getBroadphaseHandle_28_29_20const(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) | 0) + 4 | 0) >> 2] | 0) & (HEAP32[((btCollisionObject__getBroadphaseHandle_28_29_20const(HEAP32[($4 + 12 | 0) >> 2] | 0 | 0) | 0) + 8 | 0) >> 2] | 0) | 0 | 0) != (0 | 0); + } + HEAP8[($4 + 7 | 0) >> 0] = $22 & 1 | 0; + $39 = (HEAPU8[($4 + 7 | 0) >> 0] | 0) & 1 | 0; + __stack_pointer = $4 + 16 | 0; + return $39 | 0; + } + + function computeReflexionVector_28btVector3__2c_20btVector3_20const__2c_20btVector3_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $33 = 0, $35 = 0, $6 = 0, $7 = 0, $111 = 0, $124 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 80 | 0; + __stack_pointer = $5; + HEAP32[($5 + 76 | 0) >> 2] = $0; + HEAP32[($5 + 72 | 0) >> 2] = $1; + HEAP32[($5 + 68 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 72 | 0) >> 2] | 0; + $7 = HEAP32[($5 + 68 | 0) >> 2] | 0; + HEAPF32[($5 + 16 | 0) >> 2] = Math_fround(2.0); + operator__28btVector3_20const__2c_20float_20const__29($5 + 20 | 0 | 0, $7 | 0, $5 + 16 | 0 | 0); + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btVector3__dot_28btVector3_20const__29_20const(HEAP32[($5 + 72 | 0) >> 2] | 0 | 0, HEAP32[($5 + 68 | 0) >> 2] | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_f32$0; + operator__28btVector3_20const__2c_20float_20const__29($5 + 36 | 0 | 0, $5 + 20 | 0 | 0, $5 + 12 | 0 | 0); + operator__28btVector3_20const__2c_20btVector3_20const__29($5 + 52 | 0 | 0, $6 | 0, $5 + 36 | 0 | 0); + $33 = HEAP32[($5 + 76 | 0) >> 2] | 0; + i64toi32_i32$2 = $5; + i64toi32_i32$0 = HEAP32[($5 + 52 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5 + 56 | 0) >> 2] | 0; + $111 = i64toi32_i32$0; + i64toi32_i32$0 = $33; + HEAP32[i64toi32_i32$0 >> 2] = $111; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $35 = 8; + i64toi32_i32$2 = ($5 + 52 | 0) + $35 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $124 = i64toi32_i32$1; + i64toi32_i32$1 = $33 + $35 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $124; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + __stack_pointer = $5 + 80 | 0; + return; + } + + function btCollisionObject__getBroadphaseHandle_28_29_20const($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 188 | 0) >> 2] | 0 | 0; + } + + function btCharacterController__btCharacterController_28btCollisionWorld__2c_20btCharacterControllerDesc__2c_20void__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $7 = 0, $6 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btActionInterface__btActionInterface_28_29($7 | 0) | 0; + HEAP32[$7 >> 2] = 104076 + 8 | 0; + HEAP32[($7 + 4 | 0) >> 2] = 0; + HEAP32[($7 + 8 | 0) >> 2] = 0; + HEAP32[($7 + 20 | 0) >> 2] = 0; + HEAP32[($7 + 24 | 0) >> 2] = 0; + btVector3__btVector3_28_29($7 + 40 | 0 | 0) | 0; + HEAP8[($7 + 61 | 0) >> 0] = 0; + HEAP8[($7 + 62 | 0) >> 0] = 1; + HEAP8[($7 + 63 | 0) >> 0] = 1; + HEAP8[($7 + 64 | 0) >> 0] = 0; + HEAP8[($7 + 65 | 0) >> 0] = 0; + btVector3__btVector3_28_29($7 + 72 | 0 | 0) | 0; + btVector3__btVector3_28_29($7 + 88 | 0 | 0) | 0; + HEAP32[($7 + 104 | 0) >> 2] = 0; + HEAP8[($7 + 108 | 0) >> 0] = 0; + btAlignedObjectArray_btPersistentManifold____btAlignedObjectArray_28_29($7 + 112 | 0 | 0) | 0; + btVector3__btVector3_28_29($7 + 136 | 0 | 0) | 0; + HEAP32[($7 + 12 | 0) >> 2] = HEAP32[($6 + 8 | 0) >> 2] | 0; + HEAP32[($7 + 24 | 0) >> 2] = HEAP32[$6 >> 2] | 0; + HEAP32[($7 + 56 | 0) >> 2] = HEAP32[((HEAP32[($6 + 4 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0; + btCharacterController__setUp_28btVector3_20const__29($7 | 0, (HEAP32[($6 + 4 | 0) >> 2] | 0) + 12 | 0 | 0); + btCharacterController__setStepHeight_28float_29($7 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($6 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2]))); + btCharacterController__setContactOffset_28float_29($7 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($6 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2]))); + btCharacterController__setMaxSlope_28float_29($7 | 0, Math_fround(Math_fround(HEAPF32[(HEAP32[($6 + 4 | 0) >> 2] | 0) >> 2]))); + HEAP32[($7 + 20 | 0) >> 2] = HEAP32[((HEAP32[($6 + 4 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0; + HEAP32[($7 + 132 | 0) >> 2] = 0; + __stack_pointer = $6 + 16 | 0; + return $7 | 0; + } + + function btActionInterface__btActionInterface_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 104404 + 8 | 0; + return $4 | 0; + } + + function btCharacterController__setUp_28btVector3_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4 = 0, $8 = 0, $10 = 0, $32 = 0, $42 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + $8 = (HEAP32[($4 + 12 | 0) >> 2] | 0) + 40 | 0; + i64toi32_i32$2 = HEAP32[($4 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $32 = i64toi32_i32$0; + i64toi32_i32$0 = $8; + HEAP32[i64toi32_i32$0 >> 2] = $32; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $10 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $10 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $42 = i64toi32_i32$1; + i64toi32_i32$1 = $8 + $10 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $42; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + } + + function btCharacterController__setMaxSlope_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + HEAPF32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + return; + } + + function btCharacterController___btCharacterController_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + HEAP32[$4 >> 2] = 104076 + 8 | 0; + btAlignedObjectArray_btPersistentManifold_____btAlignedObjectArray_28_29($4 + 112 | 0 | 0) | 0; + btActionInterface___btActionInterface_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btActionInterface___btActionInterface_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[($3 + 12 | 0) >> 2] | 0 | 0; + } + + function btCharacterController___btCharacterController_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function btCharacterController__updateAction_28btCollisionWorld__2c_20float_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = Math_fround($2); + var $5 = 0, $6 = 0; + $5 = __stack_pointer - 16 | 0; + __stack_pointer = $5; + HEAP32[($5 + 12 | 0) >> 2] = $0; + HEAP32[($5 + 8 | 0) >> 2] = $1; + HEAPF32[($5 + 4 | 0) >> 2] = $2; + $6 = HEAP32[($5 + 12 | 0) >> 2] | 0; + label$1 : { + if (!((HEAPU8[($6 + 62 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$5 >> 2] = 0; + label$2 : { + label$3 : while (1) { + if (!((HEAP32[$5 >> 2] | 0 | 0) < (4 | 0) & 1 | 0)) { + break label$2 + } + btCharacterController__recoverFromPenetration_28_29($6 | 0) | 0; + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + } + __stack_pointer = $5 + 16 | 0; + return; + } + + function btCharacterController__getPosition_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $7 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $7 = btTransform__getOrigin_28_29(btCollisionObject__getWorldTransform_28_29(HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $7 | 0; + } + + function btCapsuleCharacterController__btCapsuleCharacterController_28btCollisionWorld__2c_20btCapsuleCharacterControllerDesc__2c_20void__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $6 = 0, $7 = 0, $21 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btCharacterController__btCharacterController_28btCollisionWorld__2c_20btCharacterControllerDesc__2c_20void__29($7 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6 >> 2] | 0 | 0) | 0; + HEAP32[$7 >> 2] = 104108 + 8 | 0; + HEAPF32[($7 + 152 | 0) >> 2] = Math_fround(.5); + HEAPF32[($7 + 156 | 0) >> 2] = Math_fround(1.0); + HEAPF32[($7 + 152 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($6 + 4 | 0) >> 2] | 0) + 52 | 0) >> 2]); + HEAPF32[($7 + 156 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($6 + 4 | 0) >> 2] | 0) + 56 | 0) >> 2]); + $21 = btCollisionObject__operator_20new_28unsigned_20long_29(348 | 0) | 0; + btPairCachingGhostObject__btPairCachingGhostObject_28_29($21 | 0) | 0; + HEAP32[($7 + 4 | 0) >> 2] = $21; + btCollisionObject__setCollisionFlags_28int_29(HEAP32[($7 + 4 | 0) >> 2] | 0 | 0, 4 | 0); + btTransform__setOrigin_28btVector3_20const__29(btCollisionObject__getWorldTransform_28_29(HEAP32[($7 + 4 | 0) >> 2] | 0 | 0) | 0 | 0, (HEAP32[($6 + 4 | 0) >> 2] | 0) + 28 | 0 | 0); + btCollisionObject__setUserPointer_28void__29(HEAP32[($7 + 4 | 0) >> 2] | 0 | 0, $7 | 0); + btCapsuleCharacterController__ResetShape_28_29($7 | 0); + __stack_pointer = $6 + 16 | 0; + return $7 | 0; + } + + function btCollisionObject__setUserPointer_28void__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[((HEAP32[($4 + 12 | 0) >> 2] | 0) + 256 | 0) >> 2] = HEAP32[($4 + 8 | 0) >> 2] | 0; + return; + } + + function btCapsuleCharacterController__ResetShape_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0, $13 = 0, $24 = 0, $49 = 0, wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $3 = __stack_pointer - 32 | 0; + __stack_pointer = $3; + HEAP32[($3 + 28 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 28 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$2 + } + $13 = btCapsuleShape__operator_20new_28unsigned_20long_29(64 | 0) | 0; + btCapsuleShape__btCapsuleShape_28float_2c_20float_29($13 | 0, Math_fround(Math_fround(HEAPF32[($4 + 152 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($4 + 156 | 0) >> 2]))) | 0; + HEAP32[($4 + 8 | 0) >> 2] = $13; + break label$1; + } + btCapsuleShape__updateProp_28float_2c_20float_2c_20int_29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4 + 152 | 0) >> 2])), Math_fround(Math_fround(+Math_fround(HEAPF32[($4 + 156 | 0) >> 2]) * .5)), 1 | 0); + } + $24 = HEAP32[($4 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$24 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($24, HEAP32[($4 + 8 | 0) >> 2] | 0); + (wasm2js_i32$0 = $3, wasm2js_f32$0 = Math_fround(FUNCTION_TABLE[HEAP32[((HEAP32[$4 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($4))), HEAPF32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_f32$0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 12 | 0 | 0, $4 + 152 | 0 | 0, $3 + 8 | 0 | 0, $4 + 152 | 0 | 0) | 0; + label$3 : { + label$4 : { + if ((HEAP32[($4 + 104 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$4 + } + $49 = btBoxShape__operator_20new_28unsigned_20long_29(64 | 0) | 0; + btBoxShape__btBoxShape_28btVector3_20const__29($49 | 0, $3 + 12 | 0 | 0) | 0; + HEAP32[($4 + 104 | 0) >> 2] = $49; + break label$3; + } + btBoxShape__setUnscaledHalfExtents_28btVector3_20const__29(HEAP32[($4 + 104 | 0) >> 2] | 0 | 0, $3 + 12 | 0 | 0); + } + __stack_pointer = $3 + 32 | 0; + return; + } + + function btCapsuleCharacterController__getFullHalfHeight_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + return Math_fround(Math_fround(Math_fround(Math_fround(HEAPF32[($4 + 156 | 0) >> 2]) * Math_fround(.5)) + Math_fround(HEAPF32[($4 + 152 | 0) >> 2]))); + } + + function btCapsuleCharacterController__setRadius_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAPF32[($5 + 152 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + btCapsuleCharacterController__ResetShape_28_29($5 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCapsuleCharacterController__setHeight_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAPF32[($5 + 156 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + btCapsuleCharacterController__ResetShape_28_29($5 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btBoxCharacterController__btBoxCharacterController_28btCollisionWorld__2c_20btBoxCharacterControllerDesc__2c_20void__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $7 = 0, $6 = 0, $24 = 0; + $6 = __stack_pointer - 16 | 0; + __stack_pointer = $6; + HEAP32[($6 + 12 | 0) >> 2] = $0; + HEAP32[($6 + 8 | 0) >> 2] = $1; + HEAP32[($6 + 4 | 0) >> 2] = $2; + HEAP32[$6 >> 2] = $3; + $7 = HEAP32[($6 + 12 | 0) >> 2] | 0; + btCharacterController__btCharacterController_28btCollisionWorld__2c_20btCharacterControllerDesc__2c_20void__29($7 | 0, HEAP32[($6 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6 >> 2] | 0 | 0) | 0; + HEAP32[$7 >> 2] = 104140 + 8 | 0; + HEAPF32[($7 + 152 | 0) >> 2] = Math_fround(.5); + HEAPF32[($7 + 156 | 0) >> 2] = Math_fround(.5); + HEAPF32[($7 + 160 | 0) >> 2] = Math_fround(.5); + HEAPF32[($7 + 156 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($6 + 4 | 0) >> 2] | 0) + 56 | 0) >> 2]); + HEAPF32[($7 + 152 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($6 + 4 | 0) >> 2] | 0) + 52 | 0) >> 2]); + HEAPF32[($7 + 160 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($6 + 4 | 0) >> 2] | 0) + 60 | 0) >> 2]); + $24 = btCollisionObject__operator_20new_28unsigned_20long_29(348 | 0) | 0; + btPairCachingGhostObject__btPairCachingGhostObject_28_29($24 | 0) | 0; + HEAP32[($7 + 4 | 0) >> 2] = $24; + btCollisionObject__setCollisionFlags_28int_29(HEAP32[($7 + 4 | 0) >> 2] | 0 | 0, 4 | 0); + btTransform__setOrigin_28btVector3_20const__29(btCollisionObject__getWorldTransform_28_29(HEAP32[($7 + 4 | 0) >> 2] | 0 | 0) | 0 | 0, (HEAP32[($6 + 4 | 0) >> 2] | 0) + 28 | 0 | 0); + btCollisionObject__setUserPointer_28void__29(HEAP32[($7 + 4 | 0) >> 2] | 0 | 0, $7 | 0); + btBoxCharacterController__ResetShape_28_29($7 | 0); + __stack_pointer = $6 + 16 | 0; + return $7 | 0; + } + + function btBoxCharacterController__ResetShape_28_29($0) { + $0 = $0 | 0; + var $4 = 0, $3 = 0, $22 = 0, $30 = 0; + $3 = __stack_pointer - 32 | 0; + __stack_pointer = $3; + HEAP32[($3 + 28 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 28 | 0) >> 2] | 0; + btVector3__btVector3_28float_20const__2c_20float_20const__2c_20float_20const__29($3 + 12 | 0 | 0, $4 + 156 | 0 | 0, $4 + 152 | 0 | 0, $4 + 160 | 0 | 0) | 0; + label$1 : { + label$2 : { + if ((HEAP32[($4 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$2 + } + $22 = btBoxShape__operator_20new_28unsigned_20long_29(64 | 0) | 0; + btBoxShape__btBoxShape_28btVector3_20const__29($22 | 0, $3 + 12 | 0 | 0) | 0; + HEAP32[($4 + 8 | 0) >> 2] = $22; + break label$1; + } + btBoxShape__setUnscaledHalfExtents_28btVector3_20const__29(HEAP32[($4 + 8 | 0) >> 2] | 0 | 0, $3 + 12 | 0 | 0); + } + $30 = HEAP32[($4 + 4 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$30 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0]($30, HEAP32[($4 + 8 | 0) >> 2] | 0); + __stack_pointer = $3 + 32 | 0; + return; + } + + function btBoxCharacterController__getFullHalfHeight_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $9 = Math_fround(0); + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $9 = Math_fround(HEAPF32[(btVector3__y_28_29_20const(btBoxShape__getHalfExtentsWithoutMargin_28_29_20const(HEAP32[($3 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) | 0) >> 2]); + __stack_pointer = $3 + 16 | 0; + return Math_fround($9); + } + + function btBoxCharacterController__setHalfHeight_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAPF32[($5 + 152 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + btBoxCharacterController__ResetShape_28_29($5 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btBoxCharacterController__setHalfSideExtent_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAPF32[($5 + 156 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + btBoxCharacterController__ResetShape_28_29($5 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btBoxCharacterController__setHalfForwardExtent_28float_29($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + var $4 = 0, $5 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAPF32[($4 + 8 | 0) >> 2] = $1; + $5 = HEAP32[($4 + 12 | 0) >> 2] | 0; + HEAPF32[($5 + 160 | 0) >> 2] = Math_fround(HEAPF32[($4 + 8 | 0) >> 2]); + btBoxCharacterController__ResetShape_28_29($5 | 0); + __stack_pointer = $4 + 16 | 0; + return; + } + + function btCharacterController__debugDraw_28btIDebugDraw__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $4 = 0; + $4 = __stack_pointer - 16 | 0; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $1; + return; + } + + function btCharacterController__getType_28_29($0) { + $0 = $0 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + HEAP32[($3 + 12 | 0) >> 2] = $0; + return HEAP32[((HEAP32[($3 + 12 | 0) >> 2] | 0) + 56 | 0) >> 2] | 0 | 0; + } + + function btCapsuleCharacterController___btCapsuleCharacterController_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCharacterController___btCharacterController_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btCapsuleCharacterController___btCapsuleCharacterController_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCapsuleCharacterController___btCapsuleCharacterController_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btBoxCharacterController___btBoxCharacterController_28_29($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btCharacterController___btCharacterController_28_29($4 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + return $4 | 0; + } + + function btBoxCharacterController___btBoxCharacterController_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btBoxCharacterController___btBoxCharacterController_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btKinematicClosestNotMeConvexResultCallback___btKinematicClosestNotMeConvexResultCallback_28_29_1($0) { + $0 = $0 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + HEAP32[($3 + 12 | 0) >> 2] = $0; + $4 = HEAP32[($3 + 12 | 0) >> 2] | 0; + btKinematicClosestNotMeConvexResultCallback___btKinematicClosestNotMeConvexResultCallback_28_29($4 | 0) | 0; + operator_20delete_28void__29($4 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + + function btKinematicClosestNotMeConvexResultCallback__addSingleResult_28btCollisionWorld__LocalConvexResult__2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $7 = 0, $34 = 0, $35 = 0, $50 = 0, $147 = 0, $151 = 0, $181 = 0, $185 = 0, $62 = Math_fround(0), wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + $5 = __stack_pointer - 48 | 0; + __stack_pointer = $5; + HEAP32[($5 + 40 | 0) >> 2] = $0; + HEAP32[($5 + 36 | 0) >> 2] = $1; + HEAP8[($5 + 35 | 0) >> 0] = $2; + $7 = HEAP32[($5 + 40 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[(HEAP32[($5 + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (HEAP32[($7 + 88 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAPF32[($5 + 44 | 0) >> 2] = Math_fround(1.0); + break label$1; + } + label$3 : { + if ((btCollisionObject__hasContactResponse_28_29_20const(HEAP32[(HEAP32[($5 + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0) & 1 | 0) { + break label$3 + } + HEAPF32[($5 + 44 | 0) >> 2] = Math_fround(1.0); + break label$1; + } + HEAP32[($7 + 84 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($5 + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + btVector3__btVector3_28_29($5 + 16 | 0 | 0) | 0; + label$4 : { + label$5 : { + if (!((HEAPU8[($5 + 35 | 0) >> 0] | 0) & 1 | 0)) { + break label$5 + } + $34 = (HEAP32[($5 + 36 | 0) >> 2] | 0) + 8 | 0; + $35 = 8; + i64toi32_i32$2 = $34 + $35 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $147 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 16 | 0) + $35 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $147; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $34; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $151 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 16 | 0) >> 2] = $151; + HEAP32[($5 + 20 | 0) >> 2] = i64toi32_i32$0; + break label$4; + } + operator__28btMatrix3x3_20const__2c_20btVector3_20const__29($5 | 0, btTransform__getBasis_28_29_20const(btCollisionObject__getWorldTransform_28_29_20const(HEAP32[(HEAP32[($5 + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0, (HEAP32[($5 + 36 | 0) >> 2] | 0) + 8 | 0 | 0); + $50 = 8; + i64toi32_i32$2 = $5 + $50 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $181 = i64toi32_i32$0; + i64toi32_i32$0 = ($5 + 16 | 0) + $50 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $181; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $5; + i64toi32_i32$1 = HEAP32[$5 >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5 + 4 | 0) >> 2] | 0; + $185 = i64toi32_i32$1; + i64toi32_i32$1 = $5; + HEAP32[($5 + 16 | 0) >> 2] = $185; + HEAP32[($5 + 20 | 0) >> 2] = i64toi32_i32$0; + } + (wasm2js_i32$0 = $5, wasm2js_f32$0 = Math_fround(btCollisionWorld__ClosestConvexResultCallback__addSingleResult_28btCollisionWorld__LocalConvexResult__2c_20bool_29($7 | 0, HEAP32[($5 + 36 | 0) >> 2] | 0 | 0, (HEAPU8[($5 + 35 | 0) >> 0] | 0) & 1 | 0 | 0))), HEAPF32[(wasm2js_i32$0 + 44 | 0) >> 2] = wasm2js_f32$0; + } + $62 = Math_fround(HEAPF32[($5 + 44 | 0) >> 2]); + __stack_pointer = $5 + 48 | 0; + return Math_fround($62); + } + + function btActionInterface___btActionInterface_28_29_1($0) { + $0 = $0 | 0; + HEAP32[((__stack_pointer - 16 | 0) + 12 | 0) >> 2] = $0; + wasm2js_trap(); + } + + function _GLOBAL__sub_I_btCharacterController_cpp() { + __cxx_global_var_init_83(); + __cxx_global_var_init_1_1(); + return; + } + + function __getTypeName($0) { + $0 = $0 | 0; + return strdup(HEAP32[($0 + 4 | 0) >> 2] | 0 | 0) | 0 | 0; + } + + function _embind_initialize_bindings() { + var $0 = 0; + label$1 : { + $0 = HEAP32[(0 + 116240 | 0) >> 2] | 0; + if (!$0) { + break label$1 + } + label$2 : while (1) { + FUNCTION_TABLE[HEAP32[$0 >> 2] | 0 | 0](); + $0 = HEAP32[($0 + 4 | 0) >> 2] | 0; + if ($0) { + continue label$2 + } + break label$2; + }; + } + } + + function _embind_register_bindings($0) { + $0 = $0 | 0; + HEAP32[($0 + 4 | 0) >> 2] = HEAP32[(0 + 116240 | 0) >> 2] | 0; + HEAP32[(0 + 116240 | 0) >> 2] = $0; + } + + function embind_init_builtin_28_29() { + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + _embind_register_void(109656 | 0, 82765 | 0); + _embind_register_bool(109680 | 0, 77266 | 0, 1 | 0, 1 | 0, 0 | 0); + _embind_register_integer(109692 | 0, 71260 | 0, 1 | 0, -128 | 0, 127 | 0); + _embind_register_integer(109716 | 0, 71253 | 0, 1 | 0, -128 | 0, 127 | 0); + _embind_register_integer(109704 | 0, 71251 | 0, 1 | 0, 0 | 0, 255 | 0); + _embind_register_integer(109728 | 0, 67507 | 0, 2 | 0, -32768 | 0, 32767 | 0); + _embind_register_integer(109740 | 0, 67498 | 0, 2 | 0, 0 | 0, 65535 | 0); + _embind_register_integer(109752 | 0, 67790 | 0, 4 | 0, -2147483648 | 0, 2147483647 | 0); + _embind_register_integer(109764 | 0, 67781 | 0, 4 | 0, 0 | 0, -1 | 0); + _embind_register_integer(109776 | 0, 80490 | 0, 4 | 0, -2147483648 | 0, 2147483647 | 0); + _embind_register_integer(109788 | 0, 80481 | 0, 4 | 0, 0 | 0, -1 | 0); + i64toi32_i32$0 = -2147483648; + i64toi32_i32$1 = 2147483647; + legalfunc$_embind_register_bigint(109800 | 0, 68987 | 0, 8 | 0, 0 | 0, i64toi32_i32$0 | 0, -1 | 0, i64toi32_i32$1 | 0); + i64toi32_i32$1 = 0; + i64toi32_i32$0 = -1; + legalfunc$_embind_register_bigint(109812 | 0, 68986 | 0, 8 | 0, 0 | 0, i64toi32_i32$1 | 0, -1 | 0, i64toi32_i32$0 | 0); + _embind_register_float(109824 | 0, 68953 | 0, 4 | 0); + _embind_register_float(109836 | 0, 81899 | 0, 8 | 0); + _embind_register_std_string(111324 | 0, 80521 | 0); + _embind_register_std_string(104492 | 0, 85168 | 0); + _embind_register_std_wstring(104564 | 0, 4 | 0, 80495 | 0); + _embind_register_std_wstring(104640 | 0, 2 | 0, 80533 | 0); + _embind_register_std_wstring(104716 | 0, 4 | 0, 80548 | 0); + _embind_register_emval(110808 | 0, 77294 | 0); + _embind_register_memory_view(104756 | 0, 0 | 0, 85099 | 0); + _embind_register_memory_view(104796 | 0, 0 | 0, 85201 | 0); + _embind_register_memory_view(104836 | 0, 1 | 0, 85129 | 0); + _embind_register_memory_view(104876 | 0, 2 | 0, 84664 | 0); + _embind_register_memory_view(104916 | 0, 3 | 0, 84695 | 0); + _embind_register_memory_view(104956 | 0, 4 | 0, 84735 | 0); + _embind_register_memory_view(104996 | 0, 5 | 0, 84764 | 0); + _embind_register_memory_view(105036 | 0, 4 | 0, 85238 | 0); + _embind_register_memory_view(105076 | 0, 5 | 0, 85268 | 0); + _embind_register_memory_view(104796 | 0, 0 | 0, 84866 | 0); + _embind_register_memory_view(104836 | 0, 1 | 0, 84833 | 0); + _embind_register_memory_view(104876 | 0, 2 | 0, 84932 | 0); + _embind_register_memory_view(104916 | 0, 3 | 0, 84898 | 0); + _embind_register_memory_view(104956 | 0, 4 | 0, 85066 | 0); + _embind_register_memory_view(104996 | 0, 5 | 0, 85032 | 0); + _embind_register_memory_view(105116 | 0, 8 | 0, 84999 | 0); + _embind_register_memory_view(105156 | 0, 9 | 0, 84965 | 0); + _embind_register_memory_view(105196 | 0, 6 | 0, 84802 | 0); + _embind_register_memory_view(105236 | 0, 7 | 0, 85307 | 0); + } + + function _GLOBAL__sub_I_bind_cpp() { + HEAP32[(0 + 116244 | 0) >> 2] = 1217; + HEAP32[(0 + 116248 | 0) >> 2] = 0; + embind_init_builtin_28_29(); + HEAP32[(0 + 116248 | 0) >> 2] = HEAP32[(0 + 116240 | 0) >> 2] | 0; + HEAP32[(0 + 116240 | 0) >> 2] = 116244; + } + + function __cxa_atexit($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + return 0 | 0; + } + + function acosf($0) { + $0 = Math_fround($0); + var $3 = Math_fround(0), $2 = 0, $1 = 0, $4 = Math_fround(0); + label$1 : { + $1 = (wasm2js_scratch_store_f32($0), wasm2js_scratch_load_i32(2)); + $2 = $1 & 2147483647 | 0; + if ($2 >>> 0 < 1065353216 >>> 0) { + break label$1 + } + label$2 : { + if (($2 | 0) != (1065353216 | 0)) { + break label$2 + } + return Math_fround(($1 | 0) > (-1 | 0) ? Math_fround(0.0) : Math_fround(3.141592502593994)); + } + return Math_fround(Math_fround(Math_fround(0.0) / Math_fround($0 - $0))); + } + label$3 : { + label$4 : { + if ($2 >>> 0 > 1056964607 >>> 0) { + break label$4 + } + $3 = Math_fround(1.570796251296997); + if ($2 >>> 0 < 847249409 >>> 0) { + break label$3 + } + return Math_fround(Math_fround(Math_fround(Math_fround(Math_fround(7.549789415861596e-08) - Math_fround($0 * Math_fround(R(Math_fround(Math_fround($0 * $0)))))) - $0) + Math_fround(1.570796251296997))); + } + label$5 : { + if (($1 | 0) > (-1 | 0)) { + break label$5 + } + $0 = Math_fround(Math_fround($0 + Math_fround(1.0)) * Math_fround(.5)); + $3 = Math_fround(sqrtf(Math_fround($0))); + $0 = Math_fround(Math_fround(1.570796251296997) - Math_fround($3 + Math_fround(Math_fround($3 * Math_fround(R(Math_fround($0)))) + Math_fround(-7.549789415861596e-08)))); + return Math_fround(Math_fround($0 + $0)); + } + $3 = Math_fround(Math_fround(Math_fround(1.0) - $0) * Math_fround(.5)); + $4 = Math_fround(sqrtf(Math_fround($3))); + $0 = (wasm2js_scratch_store_i32(2, (wasm2js_scratch_store_f32($4), wasm2js_scratch_load_i32(2)) & -4096 | 0), wasm2js_scratch_load_f32()); + $0 = Math_fround(Math_fround(Math_fround($4 * Math_fround(R(Math_fround($3)))) + Math_fround(Math_fround($3 - Math_fround($0 * $0)) / Math_fround($4 + $0))) + $0); + $3 = Math_fround($0 + $0); + } + return Math_fround($3); + } + + function R($0) { + $0 = Math_fround($0); + return Math_fround(Math_fround(Math_fround(Math_fround(Math_fround($0 * Math_fround(Math_fround($0 * Math_fround(-.008656363002955914)) + Math_fround(-.04274342209100723))) + Math_fround(.16666586697101593)) * $0) / Math_fround(Math_fround($0 * Math_fround(-.7066296339035034)) + Math_fround(1.0)))); + } + + function asinf($0) { + $0 = Math_fround($0); + var $3 = 0.0, $2 = 0, $1 = 0; + label$1 : { + $1 = (wasm2js_scratch_store_f32($0), wasm2js_scratch_load_i32(2)); + $2 = $1 & 2147483647 | 0; + if ($2 >>> 0 < 1065353216 >>> 0) { + break label$1 + } + label$2 : { + if (($2 | 0) != (1065353216 | 0)) { + break label$2 + } + return Math_fround(Math_fround(+$0 * 1.5707963267948966 + 7.52316384526264e-37)); + } + return Math_fround(Math_fround(Math_fround(0.0) / Math_fround($0 - $0))); + } + label$3 : { + label$4 : { + if ($2 >>> 0 > 1056964607 >>> 0) { + break label$4 + } + if (($2 + -8388608 | 0) >>> 0 < 956301312 >>> 0) { + break label$3 + } + return Math_fround(Math_fround(Math_fround($0 * Math_fround(R_1(Math_fround(Math_fround($0 * $0))))) + $0)); + } + $0 = Math_fround(Math_fround(Math_fround(1.0) - Math_fround(fabsf(Math_fround($0)))) * Math_fround(.5)); + $3 = +sqrt(+(+$0)); + $3 = $3 + $3 * +Math_fround(R_1(Math_fround($0))); + $0 = Math_fround(1.5707963267948966 - ($3 + $3)); + $0 = ($1 | 0) < (0 | 0) ? Math_fround(-$0) : $0; + } + return Math_fround($0); + } + + function R_1($0) { + $0 = Math_fround($0); + return Math_fround(Math_fround(Math_fround(Math_fround(Math_fround($0 * Math_fround(Math_fround($0 * Math_fround(-.008656363002955914)) + Math_fround(-.04274342209100723))) + Math_fround(.16666586697101593)) * $0) / Math_fround(Math_fround($0 * Math_fround(-.7066296339035034)) + Math_fround(1.0)))); + } + + function atan2f($0, $1) { + $0 = Math_fround($0); + $1 = Math_fround($1); + var $2 = 0, $4 = 0, $6 = Math_fround(0), $5 = 0, $3 = 0; + label$1 : { + label$2 : { + if (((__FLOAT_BITS(Math_fround($1)) | 0) & 2147483647 | 0) >>> 0 > 2139095040 >>> 0) { + break label$2 + } + if (((__FLOAT_BITS(Math_fround($0)) | 0) & 2147483647 | 0) >>> 0 < 2139095041 >>> 0) { + break label$1 + } + } + return Math_fround(Math_fround($0 + $1)); + } + label$3 : { + $2 = (wasm2js_scratch_store_f32($1), wasm2js_scratch_load_i32(2)); + if (($2 | 0) != (1065353216 | 0)) { + break label$3 + } + return Math_fround(Math_fround(atanf(Math_fround($0)))); + } + $3 = ($2 >>> 30 | 0) & 2 | 0; + $4 = (wasm2js_scratch_store_f32($0), wasm2js_scratch_load_i32(2)); + $5 = $3 | ($4 >>> 31 | 0) | 0; + label$4 : { + label$5 : { + label$6 : { + $4 = $4 & 2147483647 | 0; + if ($4) { + break label$6 + } + $6 = $0; + label$7 : { + switch ($5 | 0) { + case 2: + return Math_fround(Math_fround(3.1415927410125732)); + case 3: + break label$7; + default: + break label$5; + }; + } + return Math_fround(Math_fround(-3.1415927410125732)); + } + label$9 : { + $2 = $2 & 2147483647 | 0; + if (($2 | 0) == (2139095040 | 0)) { + break label$9 + } + label$10 : { + if ($2) { + break label$10 + } + return Math_fround((wasm2js_scratch_store_i32(2, (wasm2js_scratch_store_f32(Math_fround(1.5707963705062866)), wasm2js_scratch_load_i32(2)) & 2147483647 | 0 | ((wasm2js_scratch_store_f32($0), wasm2js_scratch_load_i32(2)) & -2147483648 | 0) | 0), wasm2js_scratch_load_f32())); + } + label$11 : { + label$12 : { + if (($4 | 0) == (2139095040 | 0)) { + break label$12 + } + if (($2 + 218103808 | 0) >>> 0 >= $4 >>> 0) { + break label$11 + } + } + return Math_fround((wasm2js_scratch_store_i32(2, (wasm2js_scratch_store_f32(Math_fround(1.5707963705062866)), wasm2js_scratch_load_i32(2)) & 2147483647 | 0 | ((wasm2js_scratch_store_f32($0), wasm2js_scratch_load_i32(2)) & -2147483648 | 0) | 0), wasm2js_scratch_load_f32())); + } + label$13 : { + label$14 : { + if (!$3) { + break label$14 + } + $6 = Math_fround(0.0); + if (($4 + 218103808 | 0) >>> 0 < $2 >>> 0) { + break label$13 + } + } + $6 = Math_fround(atanf(Math_fround(Math_fround(fabsf(Math_fround(Math_fround($0 / $1))))))); + } + label$15 : { + switch ($5 | 0) { + case 1: + return Math_fround(Math_fround(-$6)); + case 2: + return Math_fround(Math_fround(Math_fround(3.1415927410125732) - Math_fround($6 + Math_fround(8.742277657347586e-08)))); + case 0: + break label$5; + default: + break label$15; + }; + } + return Math_fround(Math_fround(Math_fround($6 + Math_fround(8.742277657347586e-08)) + Math_fround(-3.1415927410125732))); + } + if (($4 | 0) == (2139095040 | 0)) { + break label$4 + } + $6 = Math_fround(HEAPF32[(($5 << 2 | 0) + 105260 | 0) >> 2]); + } + return Math_fround($6); + } + return Math_fround(Math_fround(HEAPF32[(($5 << 2 | 0) + 105244 | 0) >> 2])); + } + + function __FLOAT_BITS($0) { + $0 = Math_fround($0); + return (wasm2js_scratch_store_f32($0), wasm2js_scratch_load_i32(2)) | 0; + } + + function atanf($0) { + $0 = Math_fround($0); + var $2 = 0, $5 = Math_fround(0), $3 = 0, $4 = Math_fround(0), $1 = 0, $6 = Math_fround(0); + label$1 : { + $1 = (wasm2js_scratch_store_f32($0), wasm2js_scratch_load_i32(2)); + $2 = $1 & 2147483647 | 0; + if ($2 >>> 0 < 1283457024 >>> 0) { + break label$1 + } + return Math_fround(((__FLOAT_BITS_1(Math_fround($0)) | 0) & 2147483647 | 0) >>> 0 > 2139095040 >>> 0 ? $0 : (wasm2js_scratch_store_i32(2, (wasm2js_scratch_store_f32(Math_fround(1.570796251296997)), wasm2js_scratch_load_i32(2)) & 2147483647 | 0 | ((wasm2js_scratch_store_f32($0), wasm2js_scratch_load_i32(2)) & -2147483648 | 0) | 0), wasm2js_scratch_load_f32())); + } + label$2 : { + label$3 : { + label$4 : { + if ($2 >>> 0 > 1054867455 >>> 0) { + break label$4 + } + $3 = -1; + if ($2 >>> 0 >= 964689920 >>> 0) { + break label$3 + } + break label$2; + } + $0 = Math_fround(fabsf(Math_fround($0))); + label$5 : { + if ($2 >>> 0 > 1066926079 >>> 0) { + break label$5 + } + label$6 : { + if ($2 >>> 0 > 1060110335 >>> 0) { + break label$6 + } + $0 = Math_fround(Math_fround(Math_fround($0 + $0) + Math_fround(-1.0)) / Math_fround($0 + Math_fround(2.0))); + $3 = 0; + break label$3; + } + $0 = Math_fround(Math_fround($0 + Math_fround(-1.0)) / Math_fround($0 + Math_fround(1.0))); + $3 = 1; + break label$3; + } + label$7 : { + if ($2 >>> 0 > 1075576831 >>> 0) { + break label$7 + } + $0 = Math_fround(Math_fround($0 + Math_fround(-1.5)) / Math_fround(Math_fround($0 * Math_fround(1.5)) + Math_fround(1.0))); + $3 = 2; + break label$3; + } + $0 = Math_fround(Math_fround(-1.0) / $0); + $3 = 3; + } + $4 = Math_fround($0 * $0); + $5 = Math_fround($4 * $4); + $6 = Math_fround($5 * Math_fround(Math_fround($5 * Math_fround(-.106480173766613)) + Math_fround(-.19999158382415771))); + $5 = Math_fround($4 * Math_fround(Math_fround($5 * Math_fround(Math_fround($5 * Math_fround(.06168760731816292)) + Math_fround(.14253635704517365))) + Math_fround(.333333283662796))); + label$8 : { + if ($2 >>> 0 > 1054867455 >>> 0) { + break label$8 + } + return Math_fround(Math_fround($0 - Math_fround($0 * Math_fround($6 + $5)))); + } + $2 = $3 << 2 | 0; + $0 = Math_fround(Math_fround(HEAPF32[($2 + 105280 | 0) >> 2]) - Math_fround(Math_fround(Math_fround($0 * Math_fround($6 + $5)) - Math_fround(HEAPF32[($2 + 105296 | 0) >> 2])) - $0)); + $0 = ($1 | 0) < (0 | 0) ? Math_fround(-$0) : $0; + } + return Math_fround($0); + } + + function __FLOAT_BITS_1($0) { + $0 = Math_fround($0); + return (wasm2js_scratch_store_f32($0), wasm2js_scratch_load_i32(2)) | 0; + } + + function __cosdf($0) { + $0 = +$0; + var $1 = 0.0; + $0 = $0 * $0; + $1 = $0 * $0; + return Math_fround(Math_fround($0 * $1 * ($0 * 2.439044879627741e-05 + -.001388676377460993) + ($1 * .04166662332373906 + ($0 * -.499999997251031 + 1.0)))); + } + + function __sindf($0) { + $0 = +$0; + var $1 = 0.0, $2 = 0.0; + $1 = $0 * $0; + $2 = $1 * $0; + return Math_fround(Math_fround($2 * ($1 * $1) * ($1 * 2.718311493989822e-06 + -1.9839334836096632e-04) + ($2 * ($1 * .008333329385889463 + -.16666666641626524) + $0))); + } + + function __rem_pio2_large($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $12 = 0.0, $11 = 0, $6 = 0, $5 = 0, $19 = 0.0, $14 = 0, $15 = 0, $8 = 0, $9 = 0, $22 = 0, $10 = 0, $20 = 0, $13 = 0, $23 = 0.0, $7 = 0, $17 = 0, $21 = 0, $16 = 0, $18 = 0, $205 = 0, $208 = 0, $520 = 0.0, $558 = 0.0; + $5 = __stack_pointer - 560 | 0; + __stack_pointer = $5; + $6 = ($2 + -3 | 0 | 0) / (24 | 0) | 0; + $7 = ($6 | 0) > (0 | 0) ? $6 : 0; + $8 = Math_imul($7, -24) + $2 | 0; + label$1 : { + $9 = HEAP32[(($4 << 2 | 0) + 105312 | 0) >> 2] | 0; + $10 = $3 + -1 | 0; + if (($9 + $10 | 0 | 0) < (0 | 0)) { + break label$1 + } + $11 = $9 + $3 | 0; + $2 = $7 - $10 | 0; + $6 = 0; + label$2 : while (1) { + label$3 : { + label$4 : { + if (($2 | 0) >= (0 | 0)) { + break label$4 + } + $12 = 0.0; + break label$3; + } + $12 = +(HEAP32[(($2 << 2 | 0) + 105328 | 0) >> 2] | 0 | 0); + } + HEAPF64[(($5 + 320 | 0) + ($6 << 3 | 0) | 0) >> 3] = $12; + $2 = $2 + 1 | 0; + $6 = $6 + 1 | 0; + if (($6 | 0) != ($11 | 0)) { + continue label$2 + } + break label$2; + }; + } + $13 = $8 + -24 | 0; + $11 = 0; + $14 = ($9 | 0) > (0 | 0) ? $9 : 0; + $15 = ($3 | 0) < (1 | 0); + label$5 : while (1) { + label$6 : { + label$7 : { + if (!$15) { + break label$7 + } + $12 = 0.0; + break label$6; + } + $6 = $11 + $10 | 0; + $2 = 0; + $12 = 0.0; + label$8 : while (1) { + $12 = +HEAPF64[($0 + ($2 << 3 | 0) | 0) >> 3] * +HEAPF64[(($5 + 320 | 0) + (($6 - $2 | 0) << 3 | 0) | 0) >> 3] + $12; + $2 = $2 + 1 | 0; + if (($2 | 0) != ($3 | 0)) { + continue label$8 + } + break label$8; + }; + } + HEAPF64[($5 + ($11 << 3 | 0) | 0) >> 3] = $12; + $2 = ($11 | 0) == ($14 | 0); + $11 = $11 + 1 | 0; + if (!$2) { + continue label$5 + } + break label$5; + }; + $16 = 47 - $8 | 0; + $17 = 48 - $8 | 0; + $18 = $8 + -25 | 0; + $11 = $9; + label$9 : { + label$10 : while (1) { + $12 = +HEAPF64[($5 + ($11 << 3 | 0) | 0) >> 3]; + $2 = 0; + $6 = $11; + label$11 : { + $10 = ($11 | 0) < (1 | 0); + if ($10) { + break label$11 + } + label$12 : while (1) { + label$13 : { + label$14 : { + $19 = $12 * 5.9604644775390625e-08; + if (!(Math_abs($19) < 2147483648.0)) { + break label$14 + } + $15 = ~~$19; + break label$13; + } + $15 = -2147483648; + } + $14 = ($5 + 480 | 0) + ($2 << 2 | 0) | 0; + label$15 : { + label$16 : { + $19 = +($15 | 0); + $12 = $19 * -16777216.0 + $12; + if (!(Math_abs($12) < 2147483648.0)) { + break label$16 + } + $15 = ~~$12; + break label$15; + } + $15 = -2147483648; + } + HEAP32[$14 >> 2] = $15; + $6 = $6 + -1 | 0; + $12 = +HEAPF64[($5 + ($6 << 3 | 0) | 0) >> 3] + $19; + $2 = $2 + 1 | 0; + if (($2 | 0) != ($11 | 0)) { + continue label$12 + } + break label$12; + }; + } + $12 = +scalbn(+$12, $13 | 0); + label$17 : { + label$18 : { + $12 = $12 + +floor(+($12 * .125)) * -8.0; + if (!(Math_abs($12) < 2147483648.0)) { + break label$18 + } + $20 = ~~$12; + break label$17; + } + $20 = -2147483648; + } + $12 = $12 - +($20 | 0); + label$19 : { + label$20 : { + label$21 : { + label$22 : { + label$23 : { + $21 = ($13 | 0) < (1 | 0); + if ($21) { + break label$23 + } + $2 = (($11 << 2 | 0) + ($5 + 480 | 0) | 0) + -4 | 0; + $205 = $2; + $2 = HEAP32[$2 >> 2] | 0; + $208 = $2; + $2 = $2 >> $17 | 0; + $6 = $208 - ($2 << $17 | 0) | 0; + HEAP32[$205 >> 2] = $6; + $22 = $6 >> $16 | 0; + $20 = $2 + $20 | 0; + break label$22; + } + if ($13) { + break label$21 + } + $22 = (HEAP32[((($11 << 2 | 0) + ($5 + 480 | 0) | 0) + -4 | 0) >> 2] | 0) >> 23 | 0; + } + if (($22 | 0) < (1 | 0)) { + break label$19 + } + break label$20; + } + $22 = 2; + if ($12 >= .5) { + break label$20 + } + $22 = 0; + break label$19; + } + $2 = 0; + $15 = 0; + label$24 : { + if ($10) { + break label$24 + } + label$25 : while (1) { + $10 = ($5 + 480 | 0) + ($2 << 2 | 0) | 0; + $6 = HEAP32[$10 >> 2] | 0; + $14 = 16777215; + label$26 : { + label$27 : { + if ($15) { + break label$27 + } + $14 = 16777216; + if ($6) { + break label$27 + } + $15 = 0; + break label$26; + } + HEAP32[$10 >> 2] = $14 - $6 | 0; + $15 = 1; + } + $2 = $2 + 1 | 0; + if (($2 | 0) != ($11 | 0)) { + continue label$25 + } + break label$25; + }; + } + label$28 : { + if ($21) { + break label$28 + } + $2 = 8388607; + label$29 : { + switch ($18 | 0) { + case 1: + $2 = 4194303; + break; + case 0: + break label$29; + default: + break label$28; + }; + } + $6 = (($11 << 2 | 0) + ($5 + 480 | 0) | 0) + -4 | 0; + HEAP32[$6 >> 2] = (HEAP32[$6 >> 2] | 0) & $2 | 0; + } + $20 = $20 + 1 | 0; + if (($22 | 0) != (2 | 0)) { + break label$19 + } + $12 = 1.0 - $12; + $22 = 2; + if (!$15) { + break label$19 + } + $12 = $12 - +scalbn(+(1.0), $13 | 0); + } + label$31 : { + if ($12 != 0.0) { + break label$31 + } + $6 = 0; + $2 = $11; + label$32 : { + if (($2 | 0) <= ($9 | 0)) { + break label$32 + } + label$33 : while (1) { + $2 = $2 + -1 | 0; + $6 = HEAP32[(($5 + 480 | 0) + ($2 << 2 | 0) | 0) >> 2] | 0 | $6 | 0; + if (($2 | 0) > ($9 | 0)) { + continue label$33 + } + break label$33; + }; + if (!$6) { + break label$32 + } + $8 = $13; + label$34 : while (1) { + $8 = $8 + -24 | 0; + $11 = $11 + -1 | 0; + if (!(HEAP32[(($5 + 480 | 0) + ($11 << 2 | 0) | 0) >> 2] | 0)) { + continue label$34 + } + break label$9; + }; + } + $2 = 1; + label$35 : while (1) { + $6 = $2; + $2 = $2 + 1 | 0; + if (!(HEAP32[(($5 + 480 | 0) + (($9 - $6 | 0) << 2 | 0) | 0) >> 2] | 0)) { + continue label$35 + } + break label$35; + }; + $14 = $6 + $11 | 0; + label$36 : while (1) { + $6 = $11 + $3 | 0; + $11 = $11 + 1 | 0; + HEAPF64[(($5 + 320 | 0) + ($6 << 3 | 0) | 0) >> 3] = +(HEAP32[((($11 + $7 | 0) << 2 | 0) + 105328 | 0) >> 2] | 0 | 0); + $2 = 0; + $12 = 0.0; + label$37 : { + if (($3 | 0) < (1 | 0)) { + break label$37 + } + label$38 : while (1) { + $12 = +HEAPF64[($0 + ($2 << 3 | 0) | 0) >> 3] * +HEAPF64[(($5 + 320 | 0) + (($6 - $2 | 0) << 3 | 0) | 0) >> 3] + $12; + $2 = $2 + 1 | 0; + if (($2 | 0) != ($3 | 0)) { + continue label$38 + } + break label$38; + }; + } + HEAPF64[($5 + ($11 << 3 | 0) | 0) >> 3] = $12; + if (($11 | 0) < ($14 | 0)) { + continue label$36 + } + break label$36; + }; + $11 = $14; + continue label$10; + } + break label$10; + }; + label$39 : { + label$40 : { + $12 = +scalbn(+$12, 24 - $8 | 0 | 0); + if (!($12 >= 16777216.0)) { + break label$40 + } + $3 = $11 << 2 | 0; + label$41 : { + label$42 : { + $19 = $12 * 5.9604644775390625e-08; + if (!(Math_abs($19) < 2147483648.0)) { + break label$42 + } + $2 = ~~$19; + break label$41; + } + $2 = -2147483648; + } + $3 = ($5 + 480 | 0) + $3 | 0; + label$43 : { + label$44 : { + $12 = +($2 | 0) * -16777216.0 + $12; + if (!(Math_abs($12) < 2147483648.0)) { + break label$44 + } + $6 = ~~$12; + break label$43; + } + $6 = -2147483648; + } + HEAP32[$3 >> 2] = $6; + $11 = $11 + 1 | 0; + break label$39; + } + label$45 : { + label$46 : { + if (!(Math_abs($12) < 2147483648.0)) { + break label$46 + } + $2 = ~~$12; + break label$45; + } + $2 = -2147483648; + } + $8 = $13; + } + HEAP32[(($5 + 480 | 0) + ($11 << 2 | 0) | 0) >> 2] = $2; + } + $12 = +scalbn(+(1.0), $8 | 0); + label$47 : { + if (($11 | 0) <= (-1 | 0)) { + break label$47 + } + $3 = $11; + label$48 : while (1) { + $2 = $3; + HEAPF64[($5 + ($2 << 3 | 0) | 0) >> 3] = $12 * +(HEAP32[(($5 + 480 | 0) + ($2 << 2 | 0) | 0) >> 2] | 0 | 0); + $3 = $2 + -1 | 0; + $12 = $12 * 5.9604644775390625e-08; + if ($2) { + continue label$48 + } + break label$48; + }; + if (($11 | 0) <= (-1 | 0)) { + break label$47 + } + $6 = $11; + label$49 : while (1) { + $12 = 0.0; + $2 = 0; + label$50 : { + $14 = $11 - $6 | 0; + $0 = ($9 | 0) < ($14 | 0) ? $9 : $14; + if (($0 | 0) < (0 | 0)) { + break label$50 + } + label$51 : while (1) { + $12 = +HEAPF64[(($2 << 3 | 0) + 108096 | 0) >> 3] * +HEAPF64[($5 + (($2 + $6 | 0) << 3 | 0) | 0) >> 3] + $12; + $3 = ($2 | 0) != ($0 | 0); + $2 = $2 + 1 | 0; + if ($3) { + continue label$51 + } + break label$51; + }; + } + HEAPF64[(($5 + 160 | 0) + ($14 << 3 | 0) | 0) >> 3] = $12; + $2 = ($6 | 0) > (0 | 0); + $6 = $6 + -1 | 0; + if ($2) { + continue label$49 + } + break label$49; + }; + } + label$52 : { + label$53 : { + label$54 : { + switch ($4 | 0) { + case 3: + $23 = 0.0; + label$57 : { + if (($11 | 0) < (1 | 0)) { + break label$57 + } + $12 = +HEAPF64[(($5 + 160 | 0) + ($11 << 3 | 0) | 0) >> 3]; + $2 = $11; + label$58 : while (1) { + $3 = $2 + -1 | 0; + $6 = ($5 + 160 | 0) + ($3 << 3 | 0) | 0; + $19 = +HEAPF64[$6 >> 3]; + $520 = $19; + $19 = $19 + $12; + HEAPF64[(($5 + 160 | 0) + ($2 << 3 | 0) | 0) >> 3] = $12 + ($520 - $19); + HEAPF64[$6 >> 3] = $19; + $6 = $2 >>> 0 > 1 >>> 0; + $12 = $19; + $2 = $3; + if ($6) { + continue label$58 + } + break label$58; + }; + if (($11 | 0) < (2 | 0)) { + break label$57 + } + $12 = +HEAPF64[(($5 + 160 | 0) + ($11 << 3 | 0) | 0) >> 3]; + $2 = $11; + label$59 : while (1) { + $3 = $2 + -1 | 0; + $6 = ($5 + 160 | 0) + ($3 << 3 | 0) | 0; + $19 = +HEAPF64[$6 >> 3]; + $558 = $19; + $19 = $19 + $12; + HEAPF64[(($5 + 160 | 0) + ($2 << 3 | 0) | 0) >> 3] = $12 + ($558 - $19); + HEAPF64[$6 >> 3] = $19; + $6 = $2 >>> 0 > 2 >>> 0; + $12 = $19; + $2 = $3; + if ($6) { + continue label$59 + } + break label$59; + }; + $23 = 0.0; + if (($11 | 0) <= (1 | 0)) { + break label$57 + } + label$60 : while (1) { + $23 = $23 + +HEAPF64[(($5 + 160 | 0) + ($11 << 3 | 0) | 0) >> 3]; + $2 = ($11 | 0) > (2 | 0); + $11 = $11 + -1 | 0; + if ($2) { + continue label$60 + } + break label$60; + }; + } + $12 = +HEAPF64[($5 + 160 | 0) >> 3]; + if ($22) { + break label$53 + } + HEAPF64[$1 >> 3] = $12; + $12 = +HEAPF64[($5 + 168 | 0) >> 3]; + HEAPF64[($1 + 16 | 0) >> 3] = $23; + HEAPF64[($1 + 8 | 0) >> 3] = $12; + break label$52; + case 0: + $12 = 0.0; + label$61 : { + if (($11 | 0) < (0 | 0)) { + break label$61 + } + label$62 : while (1) { + $2 = $11; + $11 = $2 + -1 | 0; + $12 = $12 + +HEAPF64[(($5 + 160 | 0) + ($2 << 3 | 0) | 0) >> 3]; + if ($2) { + continue label$62 + } + break label$62; + }; + } + HEAPF64[$1 >> 3] = $22 ? -$12 : $12; + break label$52; + case 1: + case 2: + break label$54; + default: + break label$52; + }; + } + $12 = 0.0; + label$63 : { + if (($11 | 0) < (0 | 0)) { + break label$63 + } + $3 = $11; + label$64 : while (1) { + $2 = $3; + $3 = $2 + -1 | 0; + $12 = $12 + +HEAPF64[(($5 + 160 | 0) + ($2 << 3 | 0) | 0) >> 3]; + if ($2) { + continue label$64 + } + break label$64; + }; + } + HEAPF64[$1 >> 3] = $22 ? -$12 : $12; + $12 = +HEAPF64[($5 + 160 | 0) >> 3] - $12; + $2 = 1; + label$65 : { + if (($11 | 0) < (1 | 0)) { + break label$65 + } + label$66 : while (1) { + $12 = $12 + +HEAPF64[(($5 + 160 | 0) + ($2 << 3 | 0) | 0) >> 3]; + $3 = ($2 | 0) != ($11 | 0); + $2 = $2 + 1 | 0; + if ($3) { + continue label$66 + } + break label$66; + }; + } + HEAPF64[($1 + 8 | 0) >> 3] = $22 ? -$12 : $12; + break label$52; + } + HEAPF64[$1 >> 3] = -$12; + $12 = +HEAPF64[($5 + 168 | 0) >> 3]; + HEAPF64[($1 + 16 | 0) >> 3] = -$23; + HEAPF64[($1 + 8 | 0) >> 3] = -$12; + } + __stack_pointer = $5 + 560 | 0; + return $20 & 7 | 0 | 0; + } + + function __rem_pio2f($0, $1) { + $0 = Math_fround($0); + $1 = $1 | 0; + var $4 = 0, $6 = 0.0, $2 = 0, $3 = 0, $5 = 0.0, $7 = 0.0, $8 = 0; + $2 = __stack_pointer - 16 | 0; + __stack_pointer = $2; + label$1 : { + label$2 : { + $3 = (wasm2js_scratch_store_f32($0), wasm2js_scratch_load_i32(2)); + $4 = $3 & 2147483647 | 0; + if ($4 >>> 0 > 1305022426 >>> 0) { + break label$2 + } + $5 = +$0; + $6 = $5 * .6366197723675814 + 6755399441055744.0 + -6755399441055744.0; + $7 = $5 + $6 * -1.5707963109016418 + $6 * -1.5893254773528196e-08; + HEAPF64[$1 >> 3] = $7; + $3 = $7 < -.7853981852531433; + label$3 : { + label$4 : { + if (!(Math_abs($6) < 2147483648.0)) { + break label$4 + } + $4 = ~~$6; + break label$3; + } + $4 = -2147483648; + } + label$5 : { + if (!$3) { + break label$5 + } + $6 = $6 + -1.0; + HEAPF64[$1 >> 3] = $5 + $6 * -1.5707963109016418 + $6 * -1.5893254773528196e-08; + $4 = $4 + -1 | 0; + break label$1; + } + if (!($7 > .7853981852531433)) { + break label$1 + } + $6 = $6 + 1.0; + HEAPF64[$1 >> 3] = $5 + $6 * -1.5707963109016418 + $6 * -1.5893254773528196e-08; + $4 = $4 + 1 | 0; + break label$1; + } + label$6 : { + if ($4 >>> 0 < 2139095040 >>> 0) { + break label$6 + } + HEAPF64[$1 >> 3] = +Math_fround($0 - $0); + $4 = 0; + break label$1; + } + $8 = ($4 >>> 23 | 0) + -150 | 0; + HEAPF64[($2 + 8 | 0) >> 3] = +(wasm2js_scratch_store_i32(2, $4 - ($8 << 23 | 0) | 0), wasm2js_scratch_load_f32()); + $4 = __rem_pio2_large($2 + 8 | 0 | 0, $2 | 0, $8 | 0, 1 | 0, 0 | 0) | 0; + $6 = +HEAPF64[$2 >> 3]; + label$7 : { + if (($3 | 0) > (-1 | 0)) { + break label$7 + } + HEAPF64[$1 >> 3] = -$6; + $4 = 0 - $4 | 0; + break label$1; + } + HEAPF64[$1 >> 3] = $6; + } + __stack_pointer = $2 + 16 | 0; + return $4 | 0; + } + + function cosf($0) { + $0 = Math_fround($0); + var $4 = Math_fround(0), $1 = 0, $3 = 0, $2 = 0, $5 = 0.0; + $1 = __stack_pointer - 16 | 0; + __stack_pointer = $1; + label$1 : { + label$2 : { + $2 = (wasm2js_scratch_store_f32($0), wasm2js_scratch_load_i32(2)); + $3 = $2 & 2147483647 | 0; + if ($3 >>> 0 > 1061752794 >>> 0) { + break label$2 + } + $4 = Math_fround(1.0); + if ($3 >>> 0 < 964689920 >>> 0) { + break label$1 + } + $4 = Math_fround(__cosdf(+(+$0))); + break label$1; + } + label$3 : { + if ($3 >>> 0 > 1081824209 >>> 0) { + break label$3 + } + label$4 : { + if ($3 >>> 0 < 1075235812 >>> 0) { + break label$4 + } + $4 = Math_fround(-Math_fround(__cosdf(+((($2 | 0) < (0 | 0) ? 3.141592653589793 : -3.141592653589793) + +$0)))); + break label$1; + } + $5 = +$0; + label$5 : { + if (($2 | 0) > (-1 | 0)) { + break label$5 + } + $4 = Math_fround(__sindf(+($5 + 1.5707963267948966))); + break label$1; + } + $4 = Math_fround(__sindf(+(1.5707963267948966 - $5))); + break label$1; + } + label$6 : { + if ($3 >>> 0 > 1088565717 >>> 0) { + break label$6 + } + label$7 : { + if ($3 >>> 0 < 1085271520 >>> 0) { + break label$7 + } + $4 = Math_fround(__cosdf(+((($2 | 0) < (0 | 0) ? 6.283185307179586 : -6.283185307179586) + +$0))); + break label$1; + } + label$8 : { + if (($2 | 0) > (-1 | 0)) { + break label$8 + } + $4 = Math_fround(__sindf(+(-4.71238898038469 - +$0))); + break label$1; + } + $4 = Math_fround(__sindf(+(+$0 + -4.71238898038469))); + break label$1; + } + label$9 : { + if ($3 >>> 0 < 2139095040 >>> 0) { + break label$9 + } + $4 = Math_fround($0 - $0); + break label$1; + } + label$10 : { + switch ((__rem_pio2f(Math_fround($0), $1 + 8 | 0 | 0) | 0) & 3 | 0 | 0) { + case 0: + $4 = Math_fround(__cosdf(+(+HEAPF64[($1 + 8 | 0) >> 3]))); + break label$1; + case 1: + $4 = Math_fround(__sindf(+-+HEAPF64[($1 + 8 | 0) >> 3])); + break label$1; + case 2: + $4 = Math_fround(-Math_fround(__cosdf(+(+HEAPF64[($1 + 8 | 0) >> 3])))); + break label$1; + default: + break label$10; + }; + } + $4 = Math_fround(__sindf(+(+HEAPF64[($1 + 8 | 0) >> 3]))); + } + __stack_pointer = $1 + 16 | 0; + return Math_fround($4); + } + + function __memcpy($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $4 = 0, $3 = 0, $5 = 0; + label$1 : { + if ($2 >>> 0 < 512 >>> 0) { + break label$1 + } + emscripten_memcpy_big($0 | 0, $1 | 0, $2 | 0); + return $0 | 0; + } + $3 = $0 + $2 | 0; + label$2 : { + label$3 : { + if (($1 ^ $0 | 0) & 3 | 0) { + break label$3 + } + label$4 : { + label$5 : { + if ($0 & 3 | 0) { + break label$5 + } + $2 = $0; + break label$4; + } + label$6 : { + if ($2) { + break label$6 + } + $2 = $0; + break label$4; + } + $2 = $0; + label$7 : while (1) { + HEAP8[$2 >> 0] = HEAPU8[$1 >> 0] | 0; + $1 = $1 + 1 | 0; + $2 = $2 + 1 | 0; + if (!($2 & 3 | 0)) { + break label$4 + } + if ($2 >>> 0 < $3 >>> 0) { + continue label$7 + } + break label$7; + }; + } + label$8 : { + $4 = $3 & -4 | 0; + if ($4 >>> 0 < 64 >>> 0) { + break label$8 + } + $5 = $4 + -64 | 0; + if ($2 >>> 0 > $5 >>> 0) { + break label$8 + } + label$9 : while (1) { + HEAP32[$2 >> 2] = HEAP32[$1 >> 2] | 0; + HEAP32[($2 + 4 | 0) >> 2] = HEAP32[($1 + 4 | 0) >> 2] | 0; + HEAP32[($2 + 8 | 0) >> 2] = HEAP32[($1 + 8 | 0) >> 2] | 0; + HEAP32[($2 + 12 | 0) >> 2] = HEAP32[($1 + 12 | 0) >> 2] | 0; + HEAP32[($2 + 16 | 0) >> 2] = HEAP32[($1 + 16 | 0) >> 2] | 0; + HEAP32[($2 + 20 | 0) >> 2] = HEAP32[($1 + 20 | 0) >> 2] | 0; + HEAP32[($2 + 24 | 0) >> 2] = HEAP32[($1 + 24 | 0) >> 2] | 0; + HEAP32[($2 + 28 | 0) >> 2] = HEAP32[($1 + 28 | 0) >> 2] | 0; + HEAP32[($2 + 32 | 0) >> 2] = HEAP32[($1 + 32 | 0) >> 2] | 0; + HEAP32[($2 + 36 | 0) >> 2] = HEAP32[($1 + 36 | 0) >> 2] | 0; + HEAP32[($2 + 40 | 0) >> 2] = HEAP32[($1 + 40 | 0) >> 2] | 0; + HEAP32[($2 + 44 | 0) >> 2] = HEAP32[($1 + 44 | 0) >> 2] | 0; + HEAP32[($2 + 48 | 0) >> 2] = HEAP32[($1 + 48 | 0) >> 2] | 0; + HEAP32[($2 + 52 | 0) >> 2] = HEAP32[($1 + 52 | 0) >> 2] | 0; + HEAP32[($2 + 56 | 0) >> 2] = HEAP32[($1 + 56 | 0) >> 2] | 0; + HEAP32[($2 + 60 | 0) >> 2] = HEAP32[($1 + 60 | 0) >> 2] | 0; + $1 = $1 + 64 | 0; + $2 = $2 + 64 | 0; + if ($2 >>> 0 <= $5 >>> 0) { + continue label$9 + } + break label$9; + }; + } + if ($2 >>> 0 >= $4 >>> 0) { + break label$2 + } + label$10 : while (1) { + HEAP32[$2 >> 2] = HEAP32[$1 >> 2] | 0; + $1 = $1 + 4 | 0; + $2 = $2 + 4 | 0; + if ($2 >>> 0 < $4 >>> 0) { + continue label$10 + } + break label$2; + }; + } + label$11 : { + if ($3 >>> 0 >= 4 >>> 0) { + break label$11 + } + $2 = $0; + break label$2; + } + label$12 : { + $4 = $3 + -4 | 0; + if ($4 >>> 0 >= $0 >>> 0) { + break label$12 + } + $2 = $0; + break label$2; + } + $2 = $0; + label$13 : while (1) { + HEAP8[$2 >> 0] = HEAPU8[$1 >> 0] | 0; + HEAP8[($2 + 1 | 0) >> 0] = HEAPU8[($1 + 1 | 0) >> 0] | 0; + HEAP8[($2 + 2 | 0) >> 0] = HEAPU8[($1 + 2 | 0) >> 0] | 0; + HEAP8[($2 + 3 | 0) >> 0] = HEAPU8[($1 + 3 | 0) >> 0] | 0; + $1 = $1 + 4 | 0; + $2 = $2 + 4 | 0; + if ($2 >>> 0 <= $4 >>> 0) { + continue label$13 + } + break label$13; + }; + } + label$14 : { + if ($2 >>> 0 >= $3 >>> 0) { + break label$14 + } + label$15 : while (1) { + HEAP8[$2 >> 0] = HEAPU8[$1 >> 0] | 0; + $1 = $1 + 1 | 0; + $2 = $2 + 1 | 0; + if (($2 | 0) != ($3 | 0)) { + continue label$15 + } + break label$15; + }; + } + return $0 | 0; + } + + function __memset($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $3 = 0, i64toi32_i32$0 = 0, $4 = 0, i64toi32_i32$1 = 0, $6 = 0, $5 = 0, $6$hi = 0; + label$1 : { + if (!$2) { + break label$1 + } + HEAP8[$0 >> 0] = $1; + $3 = $2 + $0 | 0; + HEAP8[($3 + -1 | 0) >> 0] = $1; + if ($2 >>> 0 < 3 >>> 0) { + break label$1 + } + HEAP8[($0 + 2 | 0) >> 0] = $1; + HEAP8[($0 + 1 | 0) >> 0] = $1; + HEAP8[($3 + -3 | 0) >> 0] = $1; + HEAP8[($3 + -2 | 0) >> 0] = $1; + if ($2 >>> 0 < 7 >>> 0) { + break label$1 + } + HEAP8[($0 + 3 | 0) >> 0] = $1; + HEAP8[($3 + -4 | 0) >> 0] = $1; + if ($2 >>> 0 < 9 >>> 0) { + break label$1 + } + $4 = (0 - $0 | 0) & 3 | 0; + $3 = $0 + $4 | 0; + $1 = Math_imul($1 & 255 | 0, 16843009); + HEAP32[$3 >> 2] = $1; + $4 = ($2 - $4 | 0) & -4 | 0; + $2 = $3 + $4 | 0; + HEAP32[($2 + -4 | 0) >> 2] = $1; + if ($4 >>> 0 < 9 >>> 0) { + break label$1 + } + HEAP32[($3 + 8 | 0) >> 2] = $1; + HEAP32[($3 + 4 | 0) >> 2] = $1; + HEAP32[($2 + -8 | 0) >> 2] = $1; + HEAP32[($2 + -12 | 0) >> 2] = $1; + if ($4 >>> 0 < 25 >>> 0) { + break label$1 + } + HEAP32[($3 + 24 | 0) >> 2] = $1; + HEAP32[($3 + 20 | 0) >> 2] = $1; + HEAP32[($3 + 16 | 0) >> 2] = $1; + HEAP32[($3 + 12 | 0) >> 2] = $1; + HEAP32[($2 + -16 | 0) >> 2] = $1; + HEAP32[($2 + -20 | 0) >> 2] = $1; + HEAP32[($2 + -24 | 0) >> 2] = $1; + HEAP32[($2 + -28 | 0) >> 2] = $1; + $5 = $3 & 4 | 0 | 24 | 0; + $2 = $4 - $5 | 0; + if ($2 >>> 0 < 32 >>> 0) { + break label$1 + } + i64toi32_i32$0 = 0; + i64toi32_i32$1 = 1; + i64toi32_i32$1 = __wasm_i64_mul($1 | 0, i64toi32_i32$0 | 0, 1 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $6 = i64toi32_i32$1; + $6$hi = i64toi32_i32$0; + $1 = $3 + $5 | 0; + label$2 : while (1) { + i64toi32_i32$0 = $6$hi; + i64toi32_i32$1 = $1; + HEAP32[($1 + 24 | 0) >> 2] = $6; + HEAP32[($1 + 28 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $1; + HEAP32[($1 + 16 | 0) >> 2] = $6; + HEAP32[($1 + 20 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $1; + HEAP32[($1 + 8 | 0) >> 2] = $6; + HEAP32[($1 + 12 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $1; + HEAP32[$1 >> 2] = $6; + HEAP32[($1 + 4 | 0) >> 2] = i64toi32_i32$0; + $1 = $1 + 32 | 0; + $2 = $2 + -32 | 0; + if ($2 >>> 0 > 31 >>> 0) { + continue label$2 + } + break label$2; + }; + } + return $0 | 0; + } + + function __errno_location() { + return 116252 | 0; + } + + function fabsf($0) { + $0 = Math_fround($0); + return Math_fround(Math_fround(Math_abs($0))); + } + + function floor($0) { + $0 = +$0; + return +Math_floor($0); + } + + function fmodf($0, $1) { + $0 = Math_fround($0); + $1 = Math_fround($1); + var $3 = 0, $6 = 0, $4 = 0, $7 = 0, $2 = 0, $5 = 0; + label$1 : { + label$2 : { + $2 = (wasm2js_scratch_store_f32($1), wasm2js_scratch_load_i32(2)); + $3 = $2 << 1 | 0; + if (!$3) { + break label$2 + } + $4 = __FLOAT_BITS_2(Math_fround($1)) | 0; + $5 = (wasm2js_scratch_store_f32($0), wasm2js_scratch_load_i32(2)); + $6 = ($5 >>> 23 | 0) & 255 | 0; + if (($6 | 0) == (255 | 0)) { + break label$2 + } + if (($4 & 2147483647 | 0) >>> 0 < 2139095041 >>> 0) { + break label$1 + } + } + $1 = Math_fround($0 * $1); + return Math_fround(Math_fround($1 / $1)); + } + label$3 : { + $4 = $5 << 1 | 0; + if ($4 >>> 0 > $3 >>> 0) { + break label$3 + } + return Math_fround(($4 | 0) == ($3 | 0) ? Math_fround($0 * Math_fround(0.0)) : $0); + } + $4 = ($2 >>> 23 | 0) & 255 | 0; + label$4 : { + label$5 : { + if ($6) { + break label$5 + } + $6 = 0; + label$6 : { + $3 = $5 << 9 | 0; + if (($3 | 0) < (0 | 0)) { + break label$6 + } + label$7 : while (1) { + $6 = $6 + -1 | 0; + $3 = $3 << 1 | 0; + if (($3 | 0) > (-1 | 0)) { + continue label$7 + } + break label$7; + }; + } + $3 = $5 << (1 - $6 | 0) | 0; + break label$4; + } + $3 = $5 & 8388607 | 0 | 8388608 | 0; + } + label$8 : { + label$9 : { + if ($4) { + break label$9 + } + $4 = 0; + label$10 : { + $7 = $2 << 9 | 0; + if (($7 | 0) < (0 | 0)) { + break label$10 + } + label$11 : while (1) { + $4 = $4 + -1 | 0; + $7 = $7 << 1 | 0; + if (($7 | 0) > (-1 | 0)) { + continue label$11 + } + break label$11; + }; + } + $2 = $2 << (1 - $4 | 0) | 0; + break label$8; + } + $2 = $2 & 8388607 | 0 | 8388608 | 0; + } + label$12 : { + if (($6 | 0) <= ($4 | 0)) { + break label$12 + } + label$13 : while (1) { + label$14 : { + $7 = $3 - $2 | 0; + if (($7 | 0) < (0 | 0)) { + break label$14 + } + $3 = $7; + if ($3) { + break label$14 + } + return Math_fround(Math_fround($0 * Math_fround(0.0))); + } + $3 = $3 << 1 | 0; + $6 = $6 + -1 | 0; + if (($6 | 0) > ($4 | 0)) { + continue label$13 + } + break label$13; + }; + $6 = $4; + } + label$15 : { + $4 = $3 - $2 | 0; + if (($4 | 0) < (0 | 0)) { + break label$15 + } + $3 = $4; + if ($3) { + break label$15 + } + return Math_fround(Math_fround($0 * Math_fround(0.0))); + } + label$16 : { + label$17 : { + if ($3 >>> 0 <= 8388607 >>> 0) { + break label$17 + } + $7 = $3; + break label$16; + } + label$18 : while (1) { + $6 = $6 + -1 | 0; + $4 = $3 >>> 0 < 4194304 >>> 0; + $7 = $3 << 1 | 0; + $3 = $7; + if ($4) { + continue label$18 + } + break label$18; + }; + } + $3 = $5 & -2147483648 | 0; + label$19 : { + label$20 : { + if (($6 | 0) < (1 | 0)) { + break label$20 + } + $6 = $7 + -8388608 | 0 | ($6 << 23 | 0) | 0; + break label$19; + } + $6 = $7 >>> (1 - $6 | 0) | 0; + } + return Math_fround((wasm2js_scratch_store_i32(2, $6 | $3 | 0), wasm2js_scratch_load_f32())); + } + + function __FLOAT_BITS_2($0) { + $0 = Math_fround($0); + return (wasm2js_scratch_store_f32($0), wasm2js_scratch_load_i32(2)) | 0; + } + + function __math_invalidf($0) { + $0 = Math_fround($0); + $0 = Math_fround($0 - $0); + return Math_fround(Math_fround($0 / $0)); + } + + function __math_xflowf($0, $1) { + $0 = $0 | 0; + $1 = Math_fround($1); + return Math_fround(Math_fround(Math_fround(fp_barrierf(Math_fround($0 ? Math_fround(-$1) : $1))) * $1)); + } + + function fp_barrierf($0) { + $0 = Math_fround($0); + var $1 = 0; + $1 = __stack_pointer - 16 | 0; + HEAPF32[($1 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[($1 + 12 | 0) >> 2])); + } + + function __math_oflowf($0) { + $0 = $0 | 0; + return Math_fround(Math_fround(__math_xflowf($0 | 0, Math_fround(Math_fround(1584563250285286751870879.0e5))))); + } + + function __math_uflowf($0) { + $0 = $0 | 0; + return Math_fround(Math_fround(__math_xflowf($0 | 0, Math_fround(Math_fround(2.524354896707238e-29))))); + } + + function powf($0, $1) { + $0 = Math_fround($0); + $1 = Math_fround($1); + var $4 = 0, $3 = 0, $6 = Math_fround(0), $2 = 0, $5 = 0, $7 = 0.0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0; + $2 = (wasm2js_scratch_store_f32($1), wasm2js_scratch_load_i32(2)); + $3 = zeroinfnan($2 | 0) | 0; + label$1 : { + label$2 : { + label$3 : { + label$4 : { + label$5 : { + $4 = (wasm2js_scratch_store_f32($0), wasm2js_scratch_load_i32(2)); + if (($4 + -2139095040 | 0) >>> 0 < -2130706432 >>> 0) { + break label$5 + } + $5 = 0; + if ($3) { + break label$4 + } + break label$2; + } + if (!$3) { + break label$3 + } + } + $6 = Math_fround(1.0); + if (($4 | 0) == (1065353216 | 0)) { + break label$1 + } + $3 = $2 << 1 | 0; + if (!$3) { + break label$1 + } + label$6 : { + label$7 : { + $4 = $4 << 1 | 0; + if ($4 >>> 0 > -16777216 >>> 0) { + break label$7 + } + if ($3 >>> 0 < -16777215 >>> 0) { + break label$6 + } + } + return Math_fround(Math_fround($0 + $1)); + } + if (($4 | 0) == (2130706432 | 0)) { + break label$1 + } + return Math_fround($4 >>> 0 > 2130706431 >>> 0 ^ ($2 | 0) > (-1 | 0) | 0 ? Math_fround(0.0) : Math_fround($1 * $1)); + } + label$8 : { + if (!(zeroinfnan($4 | 0) | 0)) { + break label$8 + } + $6 = Math_fround($0 * $0); + label$9 : { + if (($4 | 0) > (-1 | 0)) { + break label$9 + } + $6 = (checkint($2 | 0) | 0 | 0) == (1 | 0) ? Math_fround(-$6) : $6; + } + if (($2 | 0) > (-1 | 0)) { + break label$1 + } + return Math_fround(Math_fround(fp_barrierf_1(Math_fround(Math_fround(Math_fround(1.0) / $6))))); + } + $5 = 0; + label$10 : { + if (($4 | 0) > (-1 | 0)) { + break label$10 + } + label$11 : { + $3 = checkint($2 | 0) | 0; + if ($3) { + break label$11 + } + return Math_fround(Math_fround(__math_invalidf(Math_fround($0)))); + } + $4 = $4 & 2147483647 | 0; + $5 = (($3 | 0) == (1 | 0)) << 16 | 0; + } + if ($4 >>> 0 > 8388607 >>> 0) { + break label$2 + } + $4 = ((wasm2js_scratch_store_f32(Math_fround($0 * Math_fround(8388608.0))), wasm2js_scratch_load_i32(2)) & 2147483647 | 0) + -192937984 | 0; + } + label$12 : { + $7 = +log2_inline($4 | 0) * +$1; + wasm2js_scratch_store_f64(+$7); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$2 = wasm2js_scratch_load_i32(0 | 0) | 0; + i64toi32_i32$1 = 2147450880; + i64toi32_i32$3 = 0; + i64toi32_i32$1 = i64toi32_i32$0 & i64toi32_i32$1 | 0; + i64toi32_i32$0 = i64toi32_i32$2 & i64toi32_i32$3 | 0; + i64toi32_i32$2 = 1079967744; + i64toi32_i32$3 = 1; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$2 >>> 0 | ((i64toi32_i32$1 | 0) == (i64toi32_i32$2 | 0) & i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0 | 0) | 0) { + break label$12 + } + label$13 : { + if (!($7 > 127.99999995700433)) { + break label$13 + } + return Math_fround(Math_fround(__math_oflowf($5 | 0))); + } + if (!($7 <= -150.0)) { + break label$12 + } + return Math_fround(Math_fround(__math_uflowf($5 | 0))); + } + $6 = Math_fround(exp2_inline(+$7, $5 | 0)); + } + return Math_fround($6); + } + + function zeroinfnan($0) { + $0 = $0 | 0; + return (($0 << 1 | 0) + 16777216 | 0) >>> 0 < 16777217 >>> 0 | 0; + } + + function checkint($0) { + $0 = $0 | 0; + var $2 = 0, $1 = 0; + $1 = 0; + label$1 : { + $2 = ($0 >>> 23 | 0) & 255 | 0; + if ($2 >>> 0 < 127 >>> 0) { + break label$1 + } + $1 = 2; + if ($2 >>> 0 > 150 >>> 0) { + break label$1 + } + $1 = 0; + $2 = 1 << (150 - $2 | 0) | 0; + if (($2 + -1 | 0) & $0 | 0) { + break label$1 + } + $1 = $2 & $0 | 0 ? 1 : 2; + } + return $1 | 0; + } + + function fp_barrierf_1($0) { + $0 = Math_fround($0); + var $1 = 0; + $1 = __stack_pointer - 16 | 0; + HEAPF32[($1 + 12 | 0) >> 2] = $0; + return Math_fround(Math_fround(HEAPF32[($1 + 12 | 0) >> 2])); + } + + function log2_inline($0) { + $0 = $0 | 0; + var $2 = 0.0, $1 = 0, $3 = 0.0, $12 = 0.0; + $1 = $0 + -1060306944 | 0; + $12 = +(wasm2js_scratch_store_i32(2, $0 - ($1 & -8388608 | 0) | 0), wasm2js_scratch_load_f32()); + $0 = ($1 >>> 15 | 0) & 240 | 0; + $2 = $12 * +HEAPF64[($0 + 108488 | 0) >> 3] + -1.0; + $3 = $2 * $2; + return +((+HEAPF64[(0 + 108744 | 0) >> 3] * $2 + +HEAPF64[(0 + 108752 | 0) >> 3]) * ($3 * $3) + ((+HEAPF64[(0 + 108760 | 0) >> 3] * $2 + +HEAPF64[(0 + 108768 | 0) >> 3]) * $3 + (+HEAPF64[(0 + 108776 | 0) >> 3] * $2 + (+HEAPF64[($0 + 108496 | 0) >> 3] + +($1 >> 23 | 0 | 0))))); + } + + function exp2_inline($0, $1) { + $0 = +$0; + $1 = $1 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, i64toi32_i32$5 = 0, i64toi32_i32$4 = 0, $2 = 0.0, $3 = 0.0, $4 = 0, $4$hi = 0, $17 = 0, $27 = 0.0, $32$hi = 0, $34$hi = 0, $40 = 0, $40$hi = 0; + $2 = +HEAPF64[(0 + 108416 | 0) >> 3]; + $3 = $2 + $0; + $0 = $0 - ($3 - $2); + $27 = (+HEAPF64[(0 + 108424 | 0) >> 3] * $0 + +HEAPF64[(0 + 108432 | 0) >> 3]) * ($0 * $0) + (+HEAPF64[(0 + 108440 | 0) >> 3] * $0 + 1.0); + wasm2js_scratch_store_f64(+$3); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + $4 = wasm2js_scratch_load_i32(0 | 0) | 0; + $4$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $32$hi = i64toi32_i32$0; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$2 = $4; + i64toi32_i32$1 = $32$hi; + i64toi32_i32$3 = $1; + i64toi32_i32$4 = i64toi32_i32$2 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$0 + i64toi32_i32$1 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + i64toi32_i32$0 = i64toi32_i32$4; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 47; + i64toi32_i32$1 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$0 << i64toi32_i32$1 | 0; + $17 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$1 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$1 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$1 | 0) | 0; + $17 = i64toi32_i32$0 << i64toi32_i32$1 | 0; + } + $34$hi = i64toi32_i32$2; + i64toi32_i32$2 = $4$hi; + i64toi32_i32$5 = (($4 & 31 | 0) << 3 | 0) + 108160 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $40 = i64toi32_i32$2; + $40$hi = i64toi32_i32$0; + i64toi32_i32$0 = $34$hi; + i64toi32_i32$5 = $17; + i64toi32_i32$2 = $40$hi; + i64toi32_i32$3 = $40; + i64toi32_i32$1 = i64toi32_i32$5 + i64toi32_i32$3 | 0; + i64toi32_i32$4 = i64toi32_i32$0 + i64toi32_i32$2 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + wasm2js_scratch_store_i32(0 | 0, i64toi32_i32$1 | 0); + wasm2js_scratch_store_i32(1 | 0, i64toi32_i32$4 | 0); + return Math_fround(Math_fround($27 * +wasm2js_scratch_load_f64())); + } + + function printf($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $2 = 0; + $2 = __stack_pointer - 16 | 0; + __stack_pointer = $2; + HEAP32[($2 + 12 | 0) >> 2] = $1; + $1 = vfprintf(112856 | 0, $0 | 0, $1 | 0) | 0; + __stack_pointer = $2 + 16 | 0; + return $1 | 0; + } + + function scalbn($0, $1) { + $0 = +$0; + $1 = $1 | 0; + var i64toi32_i32$4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8 = 0, $32 = 0.0, i64toi32_i32$0 = 0; + label$1 : { + label$2 : { + if (($1 | 0) < (1024 | 0)) { + break label$2 + } + $0 = $0 * 8988465674311579538646525.0e283; + label$3 : { + if ($1 >>> 0 >= 2047 >>> 0) { + break label$3 + } + $1 = $1 + -1023 | 0; + break label$1; + } + $0 = $0 * 8988465674311579538646525.0e283; + $1 = (($1 | 0) < (3069 | 0) ? $1 : 3069) + -2046 | 0; + break label$1; + } + if (($1 | 0) > (-1023 | 0)) { + break label$1 + } + $0 = $0 * 2.004168360008973e-292; + label$4 : { + if ($1 >>> 0 <= -1992 >>> 0) { + break label$4 + } + $1 = $1 + 969 | 0; + break label$1; + } + $0 = $0 * 2.004168360008973e-292; + $1 = (($1 | 0) > (-2960 | 0) ? $1 : -2960) + 1938 | 0; + } + $32 = $0; + i64toi32_i32$0 = 0; + i64toi32_i32$2 = $1 + 1023 | 0; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 52; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $8 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0; + $8 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + } + wasm2js_scratch_store_i32(0 | 0, $8 | 0); + wasm2js_scratch_store_i32(1 | 0, i64toi32_i32$1 | 0); + return +($32 * +wasm2js_scratch_load_f64()); + } + + function sinf($0) { + $0 = Math_fround($0); + var $1 = 0, $3 = 0, $4 = 0.0, $2 = 0; + $1 = __stack_pointer - 16 | 0; + __stack_pointer = $1; + label$1 : { + label$2 : { + $2 = (wasm2js_scratch_store_f32($0), wasm2js_scratch_load_i32(2)); + $3 = $2 & 2147483647 | 0; + if ($3 >>> 0 > 1061752794 >>> 0) { + break label$2 + } + if ($3 >>> 0 < 964689920 >>> 0) { + break label$1 + } + $0 = Math_fround(__sindf(+(+$0))); + break label$1; + } + label$3 : { + if ($3 >>> 0 > 1081824209 >>> 0) { + break label$3 + } + $4 = +$0; + label$4 : { + if ($3 >>> 0 > 1075235811 >>> 0) { + break label$4 + } + label$5 : { + if (($2 | 0) > (-1 | 0)) { + break label$5 + } + $0 = Math_fround(-Math_fround(__cosdf(+($4 + 1.5707963267948966)))); + break label$1; + } + $0 = Math_fround(__cosdf(+($4 + -1.5707963267948966))); + break label$1; + } + $0 = Math_fround(__sindf(+-((($2 | 0) > (-1 | 0) ? -3.141592653589793 : 3.141592653589793) + $4))); + break label$1; + } + label$6 : { + if ($3 >>> 0 > 1088565717 >>> 0) { + break label$6 + } + label$7 : { + if ($3 >>> 0 > 1085271519 >>> 0) { + break label$7 + } + $4 = +$0; + label$8 : { + if (($2 | 0) > (-1 | 0)) { + break label$8 + } + $0 = Math_fround(__cosdf(+($4 + 4.71238898038469))); + break label$1; + } + $0 = Math_fround(-Math_fround(__cosdf(+($4 + -4.71238898038469)))); + break label$1; + } + $0 = Math_fround(__sindf(+((($2 | 0) < (0 | 0) ? 6.283185307179586 : -6.283185307179586) + +$0))); + break label$1; + } + label$9 : { + if ($3 >>> 0 < 2139095040 >>> 0) { + break label$9 + } + $0 = Math_fround($0 - $0); + break label$1; + } + label$10 : { + switch ((__rem_pio2f(Math_fround($0), $1 + 8 | 0 | 0) | 0) & 3 | 0 | 0) { + case 0: + $0 = Math_fround(__sindf(+(+HEAPF64[($1 + 8 | 0) >> 3]))); + break label$1; + case 1: + $0 = Math_fround(__cosdf(+(+HEAPF64[($1 + 8 | 0) >> 3]))); + break label$1; + case 2: + $0 = Math_fround(__sindf(+-+HEAPF64[($1 + 8 | 0) >> 3])); + break label$1; + default: + break label$10; + }; + } + $0 = Math_fround(-Math_fround(__cosdf(+(+HEAPF64[($1 + 8 | 0) >> 3])))); + } + __stack_pointer = $1 + 16 | 0; + return Math_fround($0); + } + + function sqrt($0) { + $0 = +$0; + return +Math_sqrt($0); + } + + function sqrtf($0) { + $0 = Math_fround($0); + return Math_fround(Math_fround(Math_sqrt($0))); + } + + function __stdio_write($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $4 = 0, $3 = 0, $5 = 0, $8 = 0, $6 = 0, $7 = 0, $9 = 0; + $3 = __stack_pointer - 32 | 0; + __stack_pointer = $3; + $4 = HEAP32[($0 + 28 | 0) >> 2] | 0; + HEAP32[($3 + 16 | 0) >> 2] = $4; + $5 = HEAP32[($0 + 20 | 0) >> 2] | 0; + HEAP32[($3 + 28 | 0) >> 2] = $2; + HEAP32[($3 + 24 | 0) >> 2] = $1; + $1 = $5 - $4 | 0; + HEAP32[($3 + 20 | 0) >> 2] = $1; + $6 = $1 + $2 | 0; + $4 = $3 + 16 | 0; + $7 = 2; + label$1 : { + label$2 : { + label$3 : { + label$4 : { + label$5 : { + if (!(__wasi_syscall_ret(__wasi_fd_write(HEAP32[($0 + 60 | 0) >> 2] | 0 | 0, $3 + 16 | 0 | 0, 2 | 0, $3 + 12 | 0 | 0) | 0 | 0) | 0)) { + break label$5 + } + $5 = $4; + break label$4; + } + label$6 : while (1) { + $1 = HEAP32[($3 + 12 | 0) >> 2] | 0; + if (($6 | 0) == ($1 | 0)) { + break label$3 + } + label$7 : { + if (($1 | 0) > (-1 | 0)) { + break label$7 + } + $5 = $4; + break label$2; + } + $8 = HEAP32[($4 + 4 | 0) >> 2] | 0; + $9 = $1 >>> 0 > $8 >>> 0; + $5 = $4 + ($9 << 3 | 0) | 0; + $8 = $1 - ($9 ? $8 : 0) | 0; + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + $8 | 0; + $4 = $4 + ($9 ? 12 : 4) | 0; + HEAP32[$4 >> 2] = (HEAP32[$4 >> 2] | 0) - $8 | 0; + $6 = $6 - $1 | 0; + $4 = $5; + $7 = $7 - $9 | 0; + if (!(__wasi_syscall_ret(__wasi_fd_write(HEAP32[($0 + 60 | 0) >> 2] | 0 | 0, $4 | 0, $7 | 0, $3 + 12 | 0 | 0) | 0 | 0) | 0)) { + continue label$6 + } + break label$6; + }; + } + if (($6 | 0) != (-1 | 0)) { + break label$2 + } + } + $1 = HEAP32[($0 + 44 | 0) >> 2] | 0; + HEAP32[($0 + 28 | 0) >> 2] = $1; + HEAP32[($0 + 20 | 0) >> 2] = $1; + HEAP32[($0 + 16 | 0) >> 2] = $1 + (HEAP32[($0 + 48 | 0) >> 2] | 0) | 0; + $1 = $2; + break label$1; + } + $1 = 0; + HEAP32[($0 + 28 | 0) >> 2] = 0; + HEAP32[($0 + 16 | 0) >> 2] = 0; + HEAP32[($0 + 20 | 0) >> 2] = 0; + HEAP32[$0 >> 2] = HEAP32[$0 >> 2] | 0 | 32 | 0; + if (($7 | 0) == (2 | 0)) { + break label$1 + } + $1 = $2 - (HEAP32[($5 + 4 | 0) >> 2] | 0) | 0; + } + __stack_pointer = $3 + 32 | 0; + return $1 | 0; + } + + function __emscripten_stdout_close($0) { + $0 = $0 | 0; + return 0 | 0; + } + + function __emscripten_stdout_seek($0, $1, $1$hi, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $1$hi = $1$hi | 0; + $2 = $2 | 0; + i64toi32_i32$HIGH_BITS = 0; + return 0 | 0; + } + + function strcmp($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $3 = 0, $2 = 0; + $2 = HEAPU8[$1 >> 0] | 0; + label$1 : { + $3 = HEAPU8[$0 >> 0] | 0; + if (!$3) { + break label$1 + } + if (($3 | 0) != ($2 & 255 | 0 | 0)) { + break label$1 + } + label$2 : while (1) { + $2 = HEAPU8[($1 + 1 | 0) >> 0] | 0; + $3 = HEAPU8[($0 + 1 | 0) >> 0] | 0; + if (!$3) { + break label$1 + } + $1 = $1 + 1 | 0; + $0 = $0 + 1 | 0; + if (($3 | 0) == ($2 & 255 | 0 | 0)) { + continue label$2 + } + break label$2; + }; + } + return $3 - ($2 & 255 | 0) | 0 | 0; + } + + function strdup($0) { + $0 = $0 | 0; + var $1 = 0, $2 = 0; + label$1 : { + $1 = (strlen($0 | 0) | 0) + 1 | 0; + $2 = dlmalloc($1 | 0) | 0; + if ($2) { + break label$1 + } + return 0 | 0; + } + return __memcpy($2 | 0, $0 | 0, $1 | 0) | 0 | 0; + } + + function strlen($0) { + $0 = $0 | 0; + var $1 = 0, $2 = 0, $3 = 0; + $1 = $0; + label$1 : { + label$2 : { + if (!($1 & 3 | 0)) { + break label$2 + } + label$3 : { + if (HEAPU8[$0 >> 0] | 0) { + break label$3 + } + return $0 - $0 | 0 | 0; + } + $1 = $0; + label$4 : while (1) { + $1 = $1 + 1 | 0; + if (!($1 & 3 | 0)) { + break label$2 + } + if (HEAPU8[$1 >> 0] | 0) { + continue label$4 + } + break label$1; + }; + } + label$5 : while (1) { + $2 = $1; + $1 = $1 + 4 | 0; + $3 = HEAP32[$2 >> 2] | 0; + if (!((($3 ^ -1 | 0) & ($3 + -16843009 | 0) | 0) & -2139062144 | 0)) { + continue label$5 + } + break label$5; + }; + label$6 : while (1) { + $1 = $2; + $2 = $1 + 1 | 0; + if (HEAPU8[$1 >> 0] | 0) { + continue label$6 + } + break label$6; + }; + } + return $1 - $0 | 0 | 0; + } + + function __lockfile($0) { + $0 = $0 | 0; + return 1 | 0; + } + + function __unlockfile($0) { + $0 = $0 | 0; + } + + function emscripten_futex_wake($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + return 0 | 0; + } + + function __lock($0) { + $0 = $0 | 0; + } + + function __unlock($0) { + $0 = $0 | 0; + } + + function __ofl_lock() { + __lock(117288 | 0); + return 117292 | 0; + } + + function __ofl_unlock() { + __unlock(117288 | 0); + } + + function __towrite($0) { + $0 = $0 | 0; + var $1 = 0; + $1 = HEAP32[($0 + 72 | 0) >> 2] | 0; + HEAP32[($0 + 72 | 0) >> 2] = $1 + -1 | 0 | $1 | 0; + label$1 : { + $1 = HEAP32[$0 >> 2] | 0; + if (!($1 & 8 | 0)) { + break label$1 + } + HEAP32[$0 >> 2] = $1 | 32 | 0; + return -1 | 0; + } + HEAP32[($0 + 4 | 0) >> 2] = 0; + HEAP32[($0 + 8 | 0) >> 2] = 0; + $1 = HEAP32[($0 + 44 | 0) >> 2] | 0; + HEAP32[($0 + 28 | 0) >> 2] = $1; + HEAP32[($0 + 20 | 0) >> 2] = $1; + HEAP32[($0 + 16 | 0) >> 2] = $1 + (HEAP32[($0 + 48 | 0) >> 2] | 0) | 0; + return 0 | 0; + } + + function isdigit($0) { + $0 = $0 | 0; + return ($0 + -48 | 0) >>> 0 < 10 >>> 0 | 0; + } + + function memchr($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $3 = 0, $4 = 0; + $3 = ($2 | 0) != (0 | 0); + label$1 : { + label$2 : { + label$3 : { + if (!($0 & 3 | 0)) { + break label$3 + } + if (!$2) { + break label$3 + } + $4 = $1 & 255 | 0; + label$4 : while (1) { + if ((HEAPU8[$0 >> 0] | 0 | 0) == ($4 | 0)) { + break label$2 + } + $2 = $2 + -1 | 0; + $3 = ($2 | 0) != (0 | 0); + $0 = $0 + 1 | 0; + if (!($0 & 3 | 0)) { + break label$3 + } + if ($2) { + continue label$4 + } + break label$4; + }; + } + if (!$3) { + break label$1 + } + label$5 : { + if ((HEAPU8[$0 >> 0] | 0 | 0) == ($1 & 255 | 0 | 0)) { + break label$5 + } + if ($2 >>> 0 < 4 >>> 0) { + break label$5 + } + $4 = Math_imul($1 & 255 | 0, 16843009); + label$6 : while (1) { + $3 = (HEAP32[$0 >> 2] | 0) ^ $4 | 0; + if ((($3 ^ -1 | 0) & ($3 + -16843009 | 0) | 0) & -2139062144 | 0) { + break label$2 + } + $0 = $0 + 4 | 0; + $2 = $2 + -4 | 0; + if ($2 >>> 0 > 3 >>> 0) { + continue label$6 + } + break label$6; + }; + } + if (!$2) { + break label$1 + } + } + $3 = $1 & 255 | 0; + label$7 : while (1) { + label$8 : { + if ((HEAPU8[$0 >> 0] | 0 | 0) != ($3 | 0)) { + break label$8 + } + return $0 | 0; + } + $0 = $0 + 1 | 0; + $2 = $2 + -1 | 0; + if ($2) { + continue label$7 + } + break label$7; + }; + } + return 0 | 0; + } + + function strnlen($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $2 = 0; + $2 = memchr($0 | 0, 0 | 0, $1 | 0) | 0; + return ($2 ? $2 - $0 | 0 : $1) | 0; + } + + function frexp($0, $1) { + $0 = +$0; + $1 = $1 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $3 = 0, i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, $2 = 0, $10 = 0, $2$hi = 0; + label$1 : { + wasm2js_scratch_store_f64(+$0); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + $2 = wasm2js_scratch_load_i32(0 | 0) | 0; + $2$hi = i64toi32_i32$0; + i64toi32_i32$2 = $2; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 52; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $10 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $10 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; + } + $3 = $10 & 2047 | 0; + if (($3 | 0) == (2047 | 0)) { + break label$1 + } + label$2 : { + if ($3) { + break label$2 + } + label$3 : { + label$4 : { + if ($0 != 0.0) { + break label$4 + } + $3 = 0; + break label$3; + } + $0 = +frexp(+($0 * 18446744073709551615.0), $1 | 0); + $3 = (HEAP32[$1 >> 2] | 0) + -64 | 0; + } + HEAP32[$1 >> 2] = $3; + return +$0; + } + HEAP32[$1 >> 2] = $3 + -1022 | 0; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$0 = $2; + i64toi32_i32$2 = -2146435073; + i64toi32_i32$3 = -1; + i64toi32_i32$2 = i64toi32_i32$1 & i64toi32_i32$2 | 0; + i64toi32_i32$1 = i64toi32_i32$0 & i64toi32_i32$3 | 0; + i64toi32_i32$0 = 1071644672; + i64toi32_i32$3 = 0; + i64toi32_i32$0 = i64toi32_i32$2 | i64toi32_i32$0 | 0; + wasm2js_scratch_store_i32(0 | 0, i64toi32_i32$1 | i64toi32_i32$3 | 0 | 0); + wasm2js_scratch_store_i32(1 | 0, i64toi32_i32$0 | 0); + $0 = +wasm2js_scratch_load_f64(); + } + return +$0; + } + + function __fwritex($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $3 = 0, $4 = 0, $5 = 0; + label$1 : { + label$2 : { + $3 = HEAP32[($2 + 16 | 0) >> 2] | 0; + if ($3) { + break label$2 + } + $4 = 0; + if (__towrite($2 | 0) | 0) { + break label$1 + } + $3 = HEAP32[($2 + 16 | 0) >> 2] | 0; + } + label$3 : { + $5 = HEAP32[($2 + 20 | 0) >> 2] | 0; + if (($3 - $5 | 0) >>> 0 >= $1 >>> 0) { + break label$3 + } + return FUNCTION_TABLE[HEAP32[($2 + 36 | 0) >> 2] | 0 | 0]($2, $0, $1) | 0 | 0; + } + label$4 : { + label$5 : { + if ((HEAP32[($2 + 80 | 0) >> 2] | 0 | 0) >= (0 | 0)) { + break label$5 + } + $3 = 0; + break label$4; + } + $4 = $1; + label$6 : while (1) { + label$7 : { + $3 = $4; + if ($3) { + break label$7 + } + $3 = 0; + break label$4; + } + $4 = $3 + -1 | 0; + if ((HEAPU8[($0 + $4 | 0) >> 0] | 0 | 0) != (10 | 0)) { + continue label$6 + } + break label$6; + }; + $4 = FUNCTION_TABLE[HEAP32[($2 + 36 | 0) >> 2] | 0 | 0]($2, $0, $3) | 0; + if ($4 >>> 0 < $3 >>> 0) { + break label$1 + } + $0 = $0 + $3 | 0; + $1 = $1 - $3 | 0; + $5 = HEAP32[($2 + 20 | 0) >> 2] | 0; + } + __memcpy($5 | 0, $0 | 0, $1 | 0) | 0; + HEAP32[($2 + 20 | 0) >> 2] = (HEAP32[($2 + 20 | 0) >> 2] | 0) + $1 | 0; + $4 = $3 + $1 | 0; + } + return $4 | 0; + } + + function fwrite($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $4 = 0, $5 = 0; + $4 = Math_imul($2, $1); + label$1 : { + label$2 : { + if ((HEAP32[($3 + 76 | 0) >> 2] | 0 | 0) > (-1 | 0)) { + break label$2 + } + $0 = __fwritex($0 | 0, $4 | 0, $3 | 0) | 0; + break label$1; + } + $5 = __lockfile($3 | 0) | 0; + $0 = __fwritex($0 | 0, $4 | 0, $3 | 0) | 0; + if (!$5) { + break label$1 + } + __unlockfile($3 | 0); + } + label$3 : { + if (($0 | 0) != ($4 | 0)) { + break label$3 + } + return ($1 ? $2 : 0) | 0; + } + return ($0 >>> 0) / ($1 >>> 0) | 0 | 0; + } + + function __vfprintf_internal($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $5 = 0, i64toi32_i32$0 = 0, $8 = 0, $6 = 0, $7 = 0; + $5 = __stack_pointer - 208 | 0; + __stack_pointer = $5; + HEAP32[($5 + 204 | 0) >> 2] = $2; + $6 = 0; + __memset($5 + 160 | 0 | 0, 0 | 0, 40 | 0) | 0; + HEAP32[($5 + 200 | 0) >> 2] = HEAP32[($5 + 204 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if ((printf_core(0 | 0, $1 | 0, $5 + 200 | 0 | 0, $5 + 80 | 0 | 0, $5 + 160 | 0 | 0, $3 | 0, $4 | 0) | 0 | 0) >= (0 | 0)) { + break label$2 + } + $4 = -1; + break label$1; + } + label$3 : { + if ((HEAP32[($0 + 76 | 0) >> 2] | 0 | 0) < (0 | 0)) { + break label$3 + } + $6 = __lockfile($0 | 0) | 0; + } + $7 = HEAP32[$0 >> 2] | 0; + label$4 : { + if ((HEAP32[($0 + 72 | 0) >> 2] | 0 | 0) > (0 | 0)) { + break label$4 + } + HEAP32[$0 >> 2] = $7 & -33 | 0; + } + label$5 : { + label$6 : { + label$7 : { + label$8 : { + if (HEAP32[($0 + 48 | 0) >> 2] | 0) { + break label$8 + } + HEAP32[($0 + 48 | 0) >> 2] = 80; + HEAP32[($0 + 28 | 0) >> 2] = 0; + i64toi32_i32$0 = 0; + HEAP32[($0 + 16 | 0) >> 2] = 0; + HEAP32[($0 + 20 | 0) >> 2] = i64toi32_i32$0; + $8 = HEAP32[($0 + 44 | 0) >> 2] | 0; + HEAP32[($0 + 44 | 0) >> 2] = $5; + break label$7; + } + $8 = 0; + if (HEAP32[($0 + 16 | 0) >> 2] | 0) { + break label$6 + } + } + $2 = -1; + if (__towrite($0 | 0) | 0) { + break label$5 + } + } + $2 = printf_core($0 | 0, $1 | 0, $5 + 200 | 0 | 0, $5 + 80 | 0 | 0, $5 + 160 | 0 | 0, $3 | 0, $4 | 0) | 0; + } + $4 = $7 & 32 | 0; + label$9 : { + if (!$8) { + break label$9 + } + FUNCTION_TABLE[HEAP32[($0 + 36 | 0) >> 2] | 0 | 0]($0, 0, 0) | 0; + HEAP32[($0 + 48 | 0) >> 2] = 0; + HEAP32[($0 + 44 | 0) >> 2] = $8; + HEAP32[($0 + 28 | 0) >> 2] = 0; + $3 = HEAP32[($0 + 20 | 0) >> 2] | 0; + i64toi32_i32$0 = 0; + HEAP32[($0 + 16 | 0) >> 2] = 0; + HEAP32[($0 + 20 | 0) >> 2] = i64toi32_i32$0; + $2 = $3 ? $2 : -1; + } + $3 = HEAP32[$0 >> 2] | 0; + HEAP32[$0 >> 2] = $3 | $4 | 0; + $4 = $3 & 32 | 0 ? -1 : $2; + if (!$6) { + break label$1 + } + __unlockfile($0 | 0); + } + __stack_pointer = $5 + 208 | 0; + return $4 | 0; + } + + function printf_core($0, $1, $2, $3, $4, $5, $6) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + $6 = $6 | 0; + var $12 = 0, $7 = 0, $15 = 0, $20 = 0, i64toi32_i32$1 = 0, $17 = 0, $18 = 0, $14 = 0, $13 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, $11 = 0, $16 = 0, $19 = 0, $22 = 0, i64toi32_i32$3 = 0, i64toi32_i32$5 = 0, $9 = 0, $24 = 0, $10 = 0, $25 = 0, $25$hi = 0, $21 = 0, $23 = 0, $33 = 0, $34 = 0, $35 = 0, $8 = 0, $272 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $7 = __stack_pointer - 80 | 0; + __stack_pointer = $7; + HEAP32[($7 + 76 | 0) >> 2] = $1; + $8 = $7 + 55 | 0; + $9 = $7 + 56 | 0; + $10 = 0; + $11 = 0; + $12 = 0; + label$1 : { + label$2 : { + label$3 : { + label$4 : { + label$5 : while (1) { + $13 = $1; + if (($12 | 0) > ($11 ^ 2147483647 | 0 | 0)) { + break label$4 + } + $11 = $12 + $11 | 0; + $12 = $13; + label$6 : { + label$7 : { + label$8 : { + label$9 : { + label$10 : { + $14 = HEAPU8[$12 >> 0] | 0; + if (!$14) { + break label$10 + } + label$11 : while (1) { + label$12 : { + label$13 : { + label$14 : { + $14 = $14 & 255 | 0; + if ($14) { + break label$14 + } + $1 = $12; + break label$13; + } + if (($14 | 0) != (37 | 0)) { + break label$12 + } + $14 = $12; + label$15 : while (1) { + label$16 : { + if ((HEAPU8[($14 + 1 | 0) >> 0] | 0 | 0) == (37 | 0)) { + break label$16 + } + $1 = $14; + break label$13; + } + $12 = $12 + 1 | 0; + $15 = HEAPU8[($14 + 2 | 0) >> 0] | 0; + $1 = $14 + 2 | 0; + $14 = $1; + if (($15 | 0) == (37 | 0)) { + continue label$15 + } + break label$15; + }; + } + $12 = $12 - $13 | 0; + $14 = $11 ^ 2147483647 | 0; + if (($12 | 0) > ($14 | 0)) { + break label$4 + } + label$17 : { + if (!$0) { + break label$17 + } + out($0 | 0, $13 | 0, $12 | 0); + } + if ($12) { + continue label$5 + } + HEAP32[($7 + 76 | 0) >> 2] = $1; + $12 = $1 + 1 | 0; + $16 = -1; + label$18 : { + if (!(isdigit(HEAP8[($1 + 1 | 0) >> 0] | 0 | 0) | 0)) { + break label$18 + } + if ((HEAPU8[($1 + 2 | 0) >> 0] | 0 | 0) != (36 | 0)) { + break label$18 + } + $12 = $1 + 3 | 0; + $16 = (HEAP8[($1 + 1 | 0) >> 0] | 0) + -48 | 0; + $10 = 1; + } + HEAP32[($7 + 76 | 0) >> 2] = $12; + $17 = 0; + label$19 : { + label$20 : { + $18 = HEAP8[$12 >> 0] | 0; + $1 = $18 + -32 | 0; + if ($1 >>> 0 <= 31 >>> 0) { + break label$20 + } + $15 = $12; + break label$19; + } + $17 = 0; + $15 = $12; + $1 = 1 << $1 | 0; + if (!($1 & 75913 | 0)) { + break label$19 + } + label$21 : while (1) { + $15 = $12 + 1 | 0; + HEAP32[($7 + 76 | 0) >> 2] = $15; + $17 = $1 | $17 | 0; + $18 = HEAP8[($12 + 1 | 0) >> 0] | 0; + $1 = $18 + -32 | 0; + if ($1 >>> 0 >= 32 >>> 0) { + break label$19 + } + $12 = $15; + $1 = 1 << $1 | 0; + if ($1 & 75913 | 0) { + continue label$21 + } + break label$21; + }; + } + label$22 : { + label$23 : { + if (($18 | 0) != (42 | 0)) { + break label$23 + } + label$24 : { + label$25 : { + if (!(isdigit(HEAP8[($15 + 1 | 0) >> 0] | 0 | 0) | 0)) { + break label$25 + } + if ((HEAPU8[($15 + 2 | 0) >> 0] | 0 | 0) != (36 | 0)) { + break label$25 + } + HEAP32[((((HEAP8[($15 + 1 | 0) >> 0] | 0) << 2 | 0) + $4 | 0) + -192 | 0) >> 2] = 10; + $18 = $15 + 3 | 0; + $19 = HEAP32[((((HEAP8[($15 + 1 | 0) >> 0] | 0) << 3 | 0) + $3 | 0) + -384 | 0) >> 2] | 0; + $10 = 1; + break label$24; + } + if ($10) { + break label$9 + } + $18 = $15 + 1 | 0; + label$26 : { + if ($0) { + break label$26 + } + HEAP32[($7 + 76 | 0) >> 2] = $18; + $10 = 0; + $19 = 0; + break label$22; + } + $12 = HEAP32[$2 >> 2] | 0; + HEAP32[$2 >> 2] = $12 + 4 | 0; + $19 = HEAP32[$12 >> 2] | 0; + $10 = 0; + } + HEAP32[($7 + 76 | 0) >> 2] = $18; + if (($19 | 0) > (-1 | 0)) { + break label$22 + } + $19 = 0 - $19 | 0; + $17 = $17 | 8192 | 0; + break label$22; + } + $19 = getint($7 + 76 | 0 | 0) | 0; + if (($19 | 0) < (0 | 0)) { + break label$4 + } + $18 = HEAP32[($7 + 76 | 0) >> 2] | 0; + } + $12 = 0; + $20 = -1; + label$27 : { + label$28 : { + if ((HEAPU8[$18 >> 0] | 0 | 0) == (46 | 0)) { + break label$28 + } + $1 = $18; + $21 = 0; + break label$27; + } + label$29 : { + if ((HEAPU8[($18 + 1 | 0) >> 0] | 0 | 0) != (42 | 0)) { + break label$29 + } + label$30 : { + label$31 : { + if (!(isdigit(HEAP8[($18 + 2 | 0) >> 0] | 0 | 0) | 0)) { + break label$31 + } + if ((HEAPU8[($18 + 3 | 0) >> 0] | 0 | 0) != (36 | 0)) { + break label$31 + } + HEAP32[((((HEAP8[($18 + 2 | 0) >> 0] | 0) << 2 | 0) + $4 | 0) + -192 | 0) >> 2] = 10; + $1 = $18 + 4 | 0; + $20 = HEAP32[((((HEAP8[($18 + 2 | 0) >> 0] | 0) << 3 | 0) + $3 | 0) + -384 | 0) >> 2] | 0; + break label$30; + } + if ($10) { + break label$9 + } + $1 = $18 + 2 | 0; + label$32 : { + if ($0) { + break label$32 + } + $20 = 0; + break label$30; + } + $15 = HEAP32[$2 >> 2] | 0; + HEAP32[$2 >> 2] = $15 + 4 | 0; + $20 = HEAP32[$15 >> 2] | 0; + } + HEAP32[($7 + 76 | 0) >> 2] = $1; + $21 = ($20 ^ -1 | 0) >>> 31 | 0; + break label$27; + } + HEAP32[($7 + 76 | 0) >> 2] = $18 + 1 | 0; + $21 = 1; + $20 = getint($7 + 76 | 0 | 0) | 0; + $1 = HEAP32[($7 + 76 | 0) >> 2] | 0; + } + label$33 : while (1) { + $15 = $12; + $22 = 28; + $18 = $1; + $12 = HEAP8[$18 >> 0] | 0; + if (($12 + -123 | 0) >>> 0 < -58 >>> 0) { + break label$3 + } + $1 = $18 + 1 | 0; + $12 = HEAPU8[(($12 + Math_imul($15, 58) | 0) + 108719 | 0) >> 0] | 0; + if (($12 + -1 | 0) >>> 0 < 8 >>> 0) { + continue label$33 + } + break label$33; + }; + HEAP32[($7 + 76 | 0) >> 2] = $1; + label$34 : { + label$35 : { + label$36 : { + if (($12 | 0) == (27 | 0)) { + break label$36 + } + if (!$12) { + break label$3 + } + label$37 : { + if (($16 | 0) < (0 | 0)) { + break label$37 + } + HEAP32[($4 + ($16 << 2 | 0) | 0) >> 2] = $12; + i64toi32_i32$2 = $3 + ($16 << 3 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $272 = i64toi32_i32$0; + i64toi32_i32$0 = $7; + HEAP32[($7 + 64 | 0) >> 2] = $272; + HEAP32[($7 + 68 | 0) >> 2] = i64toi32_i32$1; + break label$35; + } + if (!$0) { + break label$6 + } + pop_arg($7 + 64 | 0 | 0, $12 | 0, $2 | 0, $6 | 0); + break label$34; + } + if (($16 | 0) > (-1 | 0)) { + break label$3 + } + } + $12 = 0; + if (!$0) { + continue label$5 + } + } + $23 = $17 & -65537 | 0; + $17 = $17 & 8192 | 0 ? $23 : $17; + $16 = 0; + $24 = 66643; + $22 = $9; + label$38 : { + label$39 : { + label$40 : { + label$41 : { + label$42 : { + label$43 : { + label$44 : { + label$45 : { + label$46 : { + label$47 : { + label$48 : { + label$49 : { + label$50 : { + label$51 : { + label$52 : { + label$53 : { + $12 = HEAP8[$18 >> 0] | 0; + $12 = $15 ? (($12 & 15 | 0 | 0) == (3 | 0) ? $12 & -33 | 0 : $12) : $12; + switch ($12 + -88 | 0 | 0) { + case 11: + break label$38; + case 9: + case 13: + case 14: + case 15: + break label$39; + case 27: + break label$44; + case 12: + case 17: + break label$47; + case 23: + break label$48; + case 0: + case 32: + break label$49; + case 24: + break label$50; + case 22: + break label$51; + case 29: + break label$52; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 10: + case 16: + case 18: + case 19: + case 20: + case 21: + case 25: + case 26: + case 28: + case 30: + case 31: + break label$7; + default: + break label$53; + }; + } + $22 = $9; + label$54 : { + switch ($12 + -65 | 0 | 0) { + case 0: + case 4: + case 5: + case 6: + break label$39; + case 2: + break label$42; + case 1: + case 3: + break label$7; + default: + break label$54; + }; + } + if (($12 | 0) == (83 | 0)) { + break label$43 + } + break label$8; + } + $16 = 0; + $24 = 66643; + i64toi32_i32$2 = $7; + i64toi32_i32$1 = HEAP32[($7 + 64 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($7 + 68 | 0) >> 2] | 0; + $25 = i64toi32_i32$1; + $25$hi = i64toi32_i32$0; + break label$46; + } + $12 = 0; + label$55 : { + switch ($15 & 255 | 0 | 0) { + case 0: + HEAP32[(HEAP32[($7 + 64 | 0) >> 2] | 0) >> 2] = $11; + continue label$5; + case 1: + HEAP32[(HEAP32[($7 + 64 | 0) >> 2] | 0) >> 2] = $11; + continue label$5; + case 2: + i64toi32_i32$1 = $11; + i64toi32_i32$0 = i64toi32_i32$1 >> 31 | 0; + i64toi32_i32$1 = HEAP32[($7 + 64 | 0) >> 2] | 0; + HEAP32[i64toi32_i32$1 >> 2] = $11; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + continue label$5; + case 3: + HEAP16[(HEAP32[($7 + 64 | 0) >> 2] | 0) >> 1] = $11; + continue label$5; + case 4: + HEAP8[(HEAP32[($7 + 64 | 0) >> 2] | 0) >> 0] = $11; + continue label$5; + case 6: + HEAP32[(HEAP32[($7 + 64 | 0) >> 2] | 0) >> 2] = $11; + continue label$5; + case 7: + break label$55; + default: + continue label$5; + }; + } + i64toi32_i32$1 = $11; + i64toi32_i32$0 = i64toi32_i32$1 >> 31 | 0; + i64toi32_i32$1 = HEAP32[($7 + 64 | 0) >> 2] | 0; + HEAP32[i64toi32_i32$1 >> 2] = $11; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + continue label$5; + } + $20 = $20 >>> 0 > 8 >>> 0 ? $20 : 8; + $17 = $17 | 8 | 0; + $12 = 120; + } + i64toi32_i32$2 = $7; + i64toi32_i32$0 = HEAP32[($7 + 64 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7 + 68 | 0) >> 2] | 0; + $13 = fmt_x(i64toi32_i32$0 | 0, i64toi32_i32$1 | 0, $9 | 0, $12 & 32 | 0 | 0) | 0; + $16 = 0; + $24 = 66643; + i64toi32_i32$2 = $7; + i64toi32_i32$1 = HEAP32[($7 + 64 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($7 + 68 | 0) >> 2] | 0; + if (!(i64toi32_i32$1 | i64toi32_i32$0 | 0)) { + break label$45 + } + if (!($17 & 8 | 0)) { + break label$45 + } + $24 = ($12 >>> 4 | 0) + 66643 | 0; + $16 = 2; + break label$45; + } + $16 = 0; + $24 = 66643; + i64toi32_i32$2 = $7; + i64toi32_i32$0 = HEAP32[($7 + 64 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7 + 68 | 0) >> 2] | 0; + $13 = fmt_o(i64toi32_i32$0 | 0, i64toi32_i32$1 | 0, $9 | 0) | 0; + if (!($17 & 8 | 0)) { + break label$45 + } + $12 = $9 - $13 | 0; + $20 = ($20 | 0) > ($12 | 0) ? $20 : $12 + 1 | 0; + break label$45; + } + label$62 : { + i64toi32_i32$2 = $7; + i64toi32_i32$1 = HEAP32[($7 + 64 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($7 + 68 | 0) >> 2] | 0; + $25 = i64toi32_i32$1; + $25$hi = i64toi32_i32$0; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$1 = -1; + i64toi32_i32$3 = -1; + if ((i64toi32_i32$0 | 0) > (i64toi32_i32$1 | 0)) { + $33 = 1 + } else { + if ((i64toi32_i32$0 | 0) >= (i64toi32_i32$1 | 0)) { + if (i64toi32_i32$2 >>> 0 <= i64toi32_i32$3 >>> 0) { + $34 = 0 + } else { + $34 = 1 + } + $35 = $34; + } else { + $35 = 0 + } + $33 = $35; + } + if ($33) { + break label$62 + } + i64toi32_i32$2 = $25$hi; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 0; + i64toi32_i32$0 = $25$hi; + i64toi32_i32$1 = $25; + i64toi32_i32$5 = (i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0) + i64toi32_i32$0 | 0; + i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0; + $25 = i64toi32_i32$3 - i64toi32_i32$1 | 0; + $25$hi = i64toi32_i32$5; + i64toi32_i32$3 = $7; + HEAP32[($7 + 64 | 0) >> 2] = $25; + HEAP32[($7 + 68 | 0) >> 2] = i64toi32_i32$5; + $16 = 1; + $24 = 66643; + break label$46; + } + label$63 : { + if (!($17 & 2048 | 0)) { + break label$63 + } + $16 = 1; + $24 = 66644; + break label$46; + } + $16 = $17 & 1 | 0; + $24 = $16 ? 66645 : 66643; + } + i64toi32_i32$5 = $25$hi; + $13 = fmt_u($25 | 0, i64toi32_i32$5 | 0, $9 | 0) | 0; + } + label$64 : { + if (!$21) { + break label$64 + } + if (($20 | 0) < (0 | 0)) { + break label$4 + } + } + $17 = $21 ? $17 & -65537 | 0 : $17; + label$65 : { + i64toi32_i32$2 = $7; + i64toi32_i32$5 = HEAP32[($7 + 64 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($7 + 68 | 0) >> 2] | 0; + $25 = i64toi32_i32$5; + $25$hi = i64toi32_i32$3; + i64toi32_i32$2 = i64toi32_i32$5; + i64toi32_i32$5 = 0; + i64toi32_i32$1 = 0; + if ((i64toi32_i32$2 | 0) != (i64toi32_i32$1 | 0) | (i64toi32_i32$3 | 0) != (i64toi32_i32$5 | 0) | 0) { + break label$65 + } + if ($20) { + break label$65 + } + $13 = $9; + $22 = $13; + $20 = 0; + break label$7; + } + i64toi32_i32$2 = $25$hi; + $12 = ($9 - $13 | 0) + !($25 | i64toi32_i32$2 | 0) | 0; + $20 = ($20 | 0) > ($12 | 0) ? $20 : $12; + break label$8; + } + $12 = HEAP32[($7 + 64 | 0) >> 2] | 0; + $13 = $12 ? $12 : 86327; + $12 = strnlen($13 | 0, ($20 >>> 0 < 2147483647 >>> 0 ? $20 : 2147483647) | 0) | 0; + $22 = $13 + $12 | 0; + label$66 : { + if (($20 | 0) <= (-1 | 0)) { + break label$66 + } + $17 = $23; + $20 = $12; + break label$7; + } + $17 = $23; + $20 = $12; + if (HEAPU8[$22 >> 0] | 0) { + break label$4 + } + break label$7; + } + label$67 : { + if (!$20) { + break label$67 + } + $14 = HEAP32[($7 + 64 | 0) >> 2] | 0; + break label$41; + } + $12 = 0; + pad($0 | 0, 32 | 0, $19 | 0, 0 | 0, $17 | 0); + break label$40; + } + HEAP32[($7 + 12 | 0) >> 2] = 0; + i64toi32_i32$1 = $7; + i64toi32_i32$2 = HEAP32[($7 + 64 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($7 + 68 | 0) >> 2] | 0; + HEAP32[($7 + 8 | 0) >> 2] = i64toi32_i32$2; + HEAP32[($7 + 64 | 0) >> 2] = $7 + 8 | 0; + $14 = $7 + 8 | 0; + $20 = -1; + } + $12 = 0; + label$68 : { + label$69 : while (1) { + $15 = HEAP32[$14 >> 2] | 0; + if (!$15) { + break label$68 + } + label$70 : { + $15 = wctomb($7 + 4 | 0 | 0, $15 | 0) | 0; + $13 = ($15 | 0) < (0 | 0); + if ($13) { + break label$70 + } + if ($15 >>> 0 > ($20 - $12 | 0) >>> 0) { + break label$70 + } + $14 = $14 + 4 | 0; + $12 = $15 + $12 | 0; + if ($20 >>> 0 > $12 >>> 0) { + continue label$69 + } + break label$68; + } + break label$69; + }; + if ($13) { + break label$2 + } + } + $22 = 61; + if (($12 | 0) < (0 | 0)) { + break label$3 + } + pad($0 | 0, 32 | 0, $19 | 0, $12 | 0, $17 | 0); + label$71 : { + if ($12) { + break label$71 + } + $12 = 0; + break label$40; + } + $15 = 0; + $14 = HEAP32[($7 + 64 | 0) >> 2] | 0; + label$72 : while (1) { + $13 = HEAP32[$14 >> 2] | 0; + if (!$13) { + break label$40 + } + $13 = wctomb($7 + 4 | 0 | 0, $13 | 0) | 0; + $15 = $13 + $15 | 0; + if ($15 >>> 0 > $12 >>> 0) { + break label$40 + } + out($0 | 0, $7 + 4 | 0 | 0, $13 | 0); + $14 = $14 + 4 | 0; + if ($15 >>> 0 < $12 >>> 0) { + continue label$72 + } + break label$72; + }; + } + pad($0 | 0, 32 | 0, $19 | 0, $12 | 0, $17 ^ 8192 | 0 | 0); + $12 = ($19 | 0) > ($12 | 0) ? $19 : $12; + continue label$5; + } + label$73 : { + if (!$21) { + break label$73 + } + if (($20 | 0) < (0 | 0)) { + break label$4 + } + } + $22 = 61; + $12 = FUNCTION_TABLE[$5 | 0]($0, +HEAPF64[($7 + 64 | 0) >> 3], $19, $20, $17, $12) | 0; + if (($12 | 0) >= (0 | 0)) { + continue label$5 + } + break label$3; + } + i64toi32_i32$1 = $7; + i64toi32_i32$3 = HEAP32[($7 + 64 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($7 + 68 | 0) >> 2] | 0; + HEAP8[($7 + 55 | 0) >> 0] = i64toi32_i32$3; + $20 = 1; + $13 = $8; + $22 = $9; + $17 = $23; + break label$7; + } + $14 = HEAPU8[($12 + 1 | 0) >> 0] | 0; + $12 = $12 + 1 | 0; + continue label$11; + }; + } + if ($0) { + break label$1 + } + if (!$10) { + break label$6 + } + $12 = 1; + label$74 : { + label$75 : while (1) { + $14 = HEAP32[($4 + ($12 << 2 | 0) | 0) >> 2] | 0; + if (!$14) { + break label$74 + } + pop_arg($3 + ($12 << 3 | 0) | 0 | 0, $14 | 0, $2 | 0, $6 | 0); + $11 = 1; + $12 = $12 + 1 | 0; + if (($12 | 0) != (10 | 0)) { + continue label$75 + } + break label$1; + }; + } + $11 = 1; + if ($12 >>> 0 >= 10 >>> 0) { + break label$1 + } + label$76 : while (1) { + if (HEAP32[($4 + ($12 << 2 | 0) | 0) >> 2] | 0) { + break label$9 + } + $11 = 1; + $12 = $12 + 1 | 0; + if (($12 | 0) == (10 | 0)) { + break label$1 + } + continue label$76; + }; + } + $22 = 28; + break label$3; + } + $22 = $9; + } + $18 = $22 - $13 | 0; + $20 = ($20 | 0) > ($18 | 0) ? $20 : $18; + if (($20 | 0) > ($16 ^ 2147483647 | 0 | 0)) { + break label$4 + } + $22 = 61; + $15 = $16 + $20 | 0; + $12 = ($19 | 0) > ($15 | 0) ? $19 : $15; + if (($12 | 0) > ($14 | 0)) { + break label$3 + } + pad($0 | 0, 32 | 0, $12 | 0, $15 | 0, $17 | 0); + out($0 | 0, $24 | 0, $16 | 0); + pad($0 | 0, 48 | 0, $12 | 0, $15 | 0, $17 ^ 65536 | 0 | 0); + pad($0 | 0, 48 | 0, $20 | 0, $18 | 0, 0 | 0); + out($0 | 0, $13 | 0, $18 | 0); + pad($0 | 0, 32 | 0, $12 | 0, $15 | 0, $17 ^ 8192 | 0 | 0); + continue label$5; + } + break label$5; + }; + $11 = 0; + break label$1; + } + $22 = 61; + } + (wasm2js_i32$0 = __errno_location() | 0, wasm2js_i32$1 = $22), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + } + $11 = -1; + } + __stack_pointer = $7 + 80 | 0; + return $11 | 0; + } + + function out($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + label$1 : { + if ((HEAPU8[$0 >> 0] | 0) & 32 | 0) { + break label$1 + } + __fwritex($1 | 0, $2 | 0, $0 | 0) | 0; + } + } + + function getint($0) { + $0 = $0 | 0; + var $1 = 0, $3 = 0, $2 = 0; + $1 = 0; + label$1 : { + if (isdigit(HEAP8[(HEAP32[$0 >> 2] | 0) >> 0] | 0 | 0) | 0) { + break label$1 + } + return 0 | 0; + } + label$2 : while (1) { + $2 = HEAP32[$0 >> 2] | 0; + $3 = -1; + label$3 : { + if ($1 >>> 0 > 214748364 >>> 0) { + break label$3 + } + $3 = (HEAP8[$2 >> 0] | 0) + -48 | 0; + $1 = Math_imul($1, 10); + $3 = ($3 | 0) > ($1 ^ 2147483647 | 0 | 0) ? -1 : $3 + $1 | 0; + } + HEAP32[$0 >> 2] = $2 + 1 | 0; + $1 = $3; + if (isdigit(HEAP8[($2 + 1 | 0) >> 0] | 0 | 0) | 0) { + continue label$2 + } + break label$2; + }; + return $3 | 0; + } + + function pop_arg($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $21 = 0, $29 = 0, $37 = 0, $45 = 0, $55 = 0, $63 = 0, $71 = 0, $79 = 0, $87 = 0, $97 = 0, $105 = 0, $115 = 0, $125 = 0, $133 = 0, $141 = 0; + label$1 : { + switch ($1 + -9 | 0 | 0) { + case 0: + $1 = HEAP32[$2 >> 2] | 0; + HEAP32[$2 >> 2] = $1 + 4 | 0; + HEAP32[$0 >> 2] = HEAP32[$1 >> 2] | 0; + return; + case 1: + $1 = HEAP32[$2 >> 2] | 0; + HEAP32[$2 >> 2] = $1 + 4 | 0; + i64toi32_i32$0 = HEAP32[$1 >> 2] | 0; + i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0; + $21 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $21; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + return; + case 2: + $1 = HEAP32[$2 >> 2] | 0; + HEAP32[$2 >> 2] = $1 + 4 | 0; + i64toi32_i32$1 = HEAP32[$1 >> 2] | 0; + i64toi32_i32$0 = 0; + $29 = i64toi32_i32$1; + i64toi32_i32$1 = $0; + HEAP32[i64toi32_i32$1 >> 2] = $29; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + case 4: + $1 = HEAP32[$2 >> 2] | 0; + HEAP32[$2 >> 2] = $1 + 4 | 0; + i64toi32_i32$0 = HEAP32[$1 >> 2] | 0; + i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0; + $37 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $37; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + return; + case 5: + $1 = HEAP32[$2 >> 2] | 0; + HEAP32[$2 >> 2] = $1 + 4 | 0; + i64toi32_i32$1 = HEAP32[$1 >> 2] | 0; + i64toi32_i32$0 = 0; + $45 = i64toi32_i32$1; + i64toi32_i32$1 = $0; + HEAP32[i64toi32_i32$1 >> 2] = $45; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + case 3: + $1 = ((HEAP32[$2 >> 2] | 0) + 7 | 0) & -8 | 0; + HEAP32[$2 >> 2] = $1 + 8 | 0; + i64toi32_i32$0 = HEAP32[$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[($1 + 4 | 0) >> 2] | 0; + $55 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $55; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + return; + case 6: + $1 = HEAP32[$2 >> 2] | 0; + HEAP32[$2 >> 2] = $1 + 4 | 0; + i64toi32_i32$1 = HEAP16[$1 >> 1] | 0; + i64toi32_i32$0 = i64toi32_i32$1 >> 31 | 0; + $63 = i64toi32_i32$1; + i64toi32_i32$1 = $0; + HEAP32[i64toi32_i32$1 >> 2] = $63; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + case 7: + $1 = HEAP32[$2 >> 2] | 0; + HEAP32[$2 >> 2] = $1 + 4 | 0; + i64toi32_i32$0 = HEAPU16[$1 >> 1] | 0; + i64toi32_i32$1 = 0; + $71 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $71; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + return; + case 8: + $1 = HEAP32[$2 >> 2] | 0; + HEAP32[$2 >> 2] = $1 + 4 | 0; + i64toi32_i32$1 = HEAP8[$1 >> 0] | 0; + i64toi32_i32$0 = i64toi32_i32$1 >> 31 | 0; + $79 = i64toi32_i32$1; + i64toi32_i32$1 = $0; + HEAP32[i64toi32_i32$1 >> 2] = $79; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + case 9: + $1 = HEAP32[$2 >> 2] | 0; + HEAP32[$2 >> 2] = $1 + 4 | 0; + i64toi32_i32$0 = HEAPU8[$1 >> 0] | 0; + i64toi32_i32$1 = 0; + $87 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $87; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + return; + case 10: + $1 = ((HEAP32[$2 >> 2] | 0) + 7 | 0) & -8 | 0; + HEAP32[$2 >> 2] = $1 + 8 | 0; + i64toi32_i32$1 = HEAP32[$1 >> 2] | 0; + i64toi32_i32$0 = HEAP32[($1 + 4 | 0) >> 2] | 0; + $97 = i64toi32_i32$1; + i64toi32_i32$1 = $0; + HEAP32[i64toi32_i32$1 >> 2] = $97; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + case 11: + $1 = HEAP32[$2 >> 2] | 0; + HEAP32[$2 >> 2] = $1 + 4 | 0; + i64toi32_i32$0 = HEAP32[$1 >> 2] | 0; + i64toi32_i32$1 = 0; + $105 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $105; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + return; + case 12: + $1 = ((HEAP32[$2 >> 2] | 0) + 7 | 0) & -8 | 0; + HEAP32[$2 >> 2] = $1 + 8 | 0; + i64toi32_i32$1 = HEAP32[$1 >> 2] | 0; + i64toi32_i32$0 = HEAP32[($1 + 4 | 0) >> 2] | 0; + $115 = i64toi32_i32$1; + i64toi32_i32$1 = $0; + HEAP32[i64toi32_i32$1 >> 2] = $115; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + case 13: + $1 = ((HEAP32[$2 >> 2] | 0) + 7 | 0) & -8 | 0; + HEAP32[$2 >> 2] = $1 + 8 | 0; + i64toi32_i32$0 = HEAP32[$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[($1 + 4 | 0) >> 2] | 0; + $125 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $125; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + return; + case 14: + $1 = HEAP32[$2 >> 2] | 0; + HEAP32[$2 >> 2] = $1 + 4 | 0; + i64toi32_i32$1 = HEAP32[$1 >> 2] | 0; + i64toi32_i32$0 = i64toi32_i32$1 >> 31 | 0; + $133 = i64toi32_i32$1; + i64toi32_i32$1 = $0; + HEAP32[i64toi32_i32$1 >> 2] = $133; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + case 15: + $1 = HEAP32[$2 >> 2] | 0; + HEAP32[$2 >> 2] = $1 + 4 | 0; + i64toi32_i32$0 = HEAP32[$1 >> 2] | 0; + i64toi32_i32$1 = 0; + $141 = i64toi32_i32$0; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $141; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + return; + case 16: + $1 = ((HEAP32[$2 >> 2] | 0) + 7 | 0) & -8 | 0; + HEAP32[$2 >> 2] = $1 + 8 | 0; + HEAPF64[$0 >> 3] = +HEAPF64[$1 >> 3]; + return; + case 17: + FUNCTION_TABLE[$3 | 0]($0, $2); + break; + default: + break label$1; + }; + } + } + + function fmt_x($0, $0$hi, $1, $2) { + $0 = $0 | 0; + $0$hi = $0$hi | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $10 = 0, $3 = 0; + label$1 : { + i64toi32_i32$0 = $0$hi; + if (!($0 | i64toi32_i32$0 | 0)) { + break label$1 + } + label$2 : while (1) { + $1 = $1 + -1 | 0; + i64toi32_i32$0 = $0$hi; + HEAP8[$1 >> 0] = HEAPU8[(($0 & 15 | 0) + 109248 | 0) >> 0] | 0 | $2 | 0; + i64toi32_i32$2 = $0; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 15; + $3 = i64toi32_i32$0 >>> 0 > i64toi32_i32$1 >>> 0 | ((i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) & i64toi32_i32$2 >>> 0 > i64toi32_i32$3 >>> 0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$3 = $0; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = 4; + i64toi32_i32$4 = i64toi32_i32$1 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$1 & 63 | 0) >>> 0) { + i64toi32_i32$0 = 0; + $10 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$0 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $10 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0; + } + $0 = $10; + $0$hi = i64toi32_i32$0; + if ($3) { + continue label$2 + } + break label$2; + }; + } + return $1 | 0; + } + + function fmt_o($0, $0$hi, $1) { + $0 = $0 | 0; + $0$hi = $0$hi | 0; + $1 = $1 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $9 = 0, $2 = 0; + label$1 : { + i64toi32_i32$0 = $0$hi; + if (!($0 | i64toi32_i32$0 | 0)) { + break label$1 + } + label$2 : while (1) { + $1 = $1 + -1 | 0; + i64toi32_i32$0 = $0$hi; + HEAP8[$1 >> 0] = $0 & 7 | 0 | 48 | 0; + i64toi32_i32$2 = $0; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 7; + $2 = i64toi32_i32$0 >>> 0 > i64toi32_i32$1 >>> 0 | ((i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) & i64toi32_i32$2 >>> 0 > i64toi32_i32$3 >>> 0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$3 = $0; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = 3; + i64toi32_i32$4 = i64toi32_i32$1 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$1 & 63 | 0) >>> 0) { + i64toi32_i32$0 = 0; + $9 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$0 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $9 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0; + } + $0 = $9; + $0$hi = i64toi32_i32$0; + if ($2) { + continue label$2 + } + break label$2; + }; + } + return $1 | 0; + } + + function fmt_u($0, $0$hi, $1) { + $0 = $0 | 0; + $0$hi = $0$hi | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $3 = 0, i64toi32_i32$3 = 0, $2 = 0, i64toi32_i32$5 = 0, $2$hi = 0, $4 = 0, $16 = 0, $16$hi = 0, $5 = 0; + label$1 : { + label$2 : { + i64toi32_i32$0 = $0$hi; + i64toi32_i32$2 = $0; + i64toi32_i32$1 = 1; + i64toi32_i32$3 = 0; + if (i64toi32_i32$0 >>> 0 > i64toi32_i32$1 >>> 0 | ((i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) & i64toi32_i32$2 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { + break label$2 + } + i64toi32_i32$2 = $0$hi; + $2 = $0; + $2$hi = i64toi32_i32$2; + break label$1; + } + label$3 : while (1) { + $1 = $1 + -1 | 0; + i64toi32_i32$2 = $0$hi; + i64toi32_i32$0 = 0; + i64toi32_i32$0 = __wasm_i64_udiv($0 | 0, i64toi32_i32$2 | 0, 10 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $2 = i64toi32_i32$0; + $2$hi = i64toi32_i32$2; + i64toi32_i32$0 = 0; + i64toi32_i32$0 = __wasm_i64_mul($2 | 0, i64toi32_i32$2 | 0, 10 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $16 = i64toi32_i32$0; + $16$hi = i64toi32_i32$2; + i64toi32_i32$2 = $0$hi; + i64toi32_i32$3 = $0; + i64toi32_i32$0 = $16$hi; + i64toi32_i32$1 = $16; + i64toi32_i32$5 = ($0 >>> 0 < i64toi32_i32$1 >>> 0) + i64toi32_i32$0 | 0; + i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0; + HEAP8[$1 >> 0] = $0 - i64toi32_i32$1 | 0 | 48 | 0; + i64toi32_i32$5 = i64toi32_i32$2; + i64toi32_i32$5 = i64toi32_i32$2; + i64toi32_i32$2 = $0; + i64toi32_i32$3 = 9; + i64toi32_i32$1 = -1; + $3 = $0$hi >>> 0 > i64toi32_i32$3 >>> 0 | (($0$hi | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$2 >>> 0 > i64toi32_i32$1 >>> 0 | 0) | 0; + i64toi32_i32$2 = $2$hi; + $0 = $2; + $0$hi = i64toi32_i32$2; + if ($3) { + continue label$3 + } + break label$3; + }; + } + label$4 : { + i64toi32_i32$2 = $2$hi; + $3 = $2; + if (!$3) { + break label$4 + } + label$5 : while (1) { + $1 = $1 + -1 | 0; + $4 = ($3 >>> 0) / (10 >>> 0) | 0; + HEAP8[$1 >> 0] = $3 - Math_imul($4, 10) | 0 | 48 | 0; + $5 = $3 >>> 0 > 9 >>> 0; + $3 = $4; + if ($5) { + continue label$5 + } + break label$5; + }; + } + return $1 | 0; + } + + function pad($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $5 = 0; + $5 = __stack_pointer - 256 | 0; + __stack_pointer = $5; + label$1 : { + if (($2 | 0) <= ($3 | 0)) { + break label$1 + } + if ($4 & 73728 | 0) { + break label$1 + } + $3 = $2 - $3 | 0; + $2 = $3 >>> 0 < 256 >>> 0; + __memset($5 | 0, $1 & 255 | 0 | 0, ($2 ? $3 : 256) | 0) | 0; + label$2 : { + if ($2) { + break label$2 + } + label$3 : while (1) { + out($0 | 0, $5 | 0, 256 | 0); + $3 = $3 + -256 | 0; + if ($3 >>> 0 > 255 >>> 0) { + continue label$3 + } + break label$3; + }; + } + out($0 | 0, $5 | 0, $3 | 0); + } + __stack_pointer = $5 + 256 | 0; + } + + function vfprintf($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + return __vfprintf_internal($0 | 0, $1 | 0, $2 | 0, 1221 | 0, 1222 | 0) | 0 | 0; + } + + function fmt_fp($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = +$1; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $11 = 0, $12 = 0, $13 = 0, $19 = 0, $23 = 0, $6 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $16 = 0, i64toi32_i32$4 = 0, $24 = 0, $25 = 0, i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$5 = 0, $18 = 0, $21 = 0, $9 = 0, $26 = 0.0, $8 = 0, $14 = 0, $8$hi = 0, $15 = 0, $17 = 0, $10 = 0, $22 = 0, $7 = 0, $45 = 0, $46 = 0, $47 = 0, $20$hi = 0, $48 = 0, $20 = 0, $167 = 0, $169$hi = 0, $171$hi = 0, $173 = 0, $173$hi = 0, $175$hi = 0, $179 = 0, $179$hi = 0, $388 = 0.0, $852 = 0; + $6 = __stack_pointer - 560 | 0; + __stack_pointer = $6; + $7 = 0; + HEAP32[($6 + 44 | 0) >> 2] = 0; + label$1 : { + label$2 : { + i64toi32_i32$0 = __DOUBLE_BITS(+$1) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $8 = i64toi32_i32$0; + $8$hi = i64toi32_i32$1; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$0 = -1; + i64toi32_i32$3 = -1; + if ((i64toi32_i32$1 | 0) > (i64toi32_i32$0 | 0)) { + $45 = 1 + } else { + if ((i64toi32_i32$1 | 0) >= (i64toi32_i32$0 | 0)) { + if (i64toi32_i32$2 >>> 0 <= i64toi32_i32$3 >>> 0) { + $46 = 0 + } else { + $46 = 1 + } + $47 = $46; + } else { + $47 = 0 + } + $45 = $47; + } + if ($45) { + break label$2 + } + $9 = 1; + $10 = 66653; + $1 = -$1; + i64toi32_i32$2 = __DOUBLE_BITS(+$1) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $8 = i64toi32_i32$2; + $8$hi = i64toi32_i32$1; + break label$1; + } + label$3 : { + if (!($4 & 2048 | 0)) { + break label$3 + } + $9 = 1; + $10 = 66656; + break label$1; + } + $9 = $4 & 1 | 0; + $10 = $9 ? 66659 : 66654; + $7 = !$9; + } + label$4 : { + label$5 : { + i64toi32_i32$1 = $8$hi; + i64toi32_i32$3 = $8; + i64toi32_i32$2 = 2146435072; + i64toi32_i32$0 = 0; + i64toi32_i32$2 = i64toi32_i32$1 & i64toi32_i32$2 | 0; + i64toi32_i32$1 = i64toi32_i32$3 & i64toi32_i32$0 | 0; + i64toi32_i32$3 = 2146435072; + i64toi32_i32$0 = 0; + if ((i64toi32_i32$1 | 0) != (i64toi32_i32$0 | 0) | (i64toi32_i32$2 | 0) != (i64toi32_i32$3 | 0) | 0) { + break label$5 + } + $11 = $9 + 3 | 0; + pad($0 | 0, 32 | 0, $2 | 0, $11 | 0, $4 & -65537 | 0 | 0); + out($0 | 0, $10 | 0, $9 | 0); + $12 = $5 & 32 | 0; + out($0 | 0, ($1 != $1 ? ($12 ? 77003 : 84282) : $12 ? 80768 : 84403) | 0, 3 | 0); + pad($0 | 0, 32 | 0, $2 | 0, $11 | 0, $4 ^ 8192 | 0 | 0); + $13 = ($11 | 0) > ($2 | 0) ? $11 : $2; + break label$4; + } + $14 = $6 + 16 | 0; + label$6 : { + label$7 : { + label$8 : { + label$9 : { + $1 = +frexp(+$1, $6 + 44 | 0 | 0); + $1 = $1 + $1; + if ($1 == 0.0) { + break label$9 + } + $11 = HEAP32[($6 + 44 | 0) >> 2] | 0; + HEAP32[($6 + 44 | 0) >> 2] = $11 + -1 | 0; + $15 = $5 | 32 | 0; + if (($15 | 0) != (97 | 0)) { + break label$8 + } + break label$6; + } + $15 = $5 | 32 | 0; + if (($15 | 0) == (97 | 0)) { + break label$6 + } + $16 = ($3 | 0) < (0 | 0) ? 6 : $3; + $17 = HEAP32[($6 + 44 | 0) >> 2] | 0; + break label$7; + } + $17 = $11 + -29 | 0; + HEAP32[($6 + 44 | 0) >> 2] = $17; + $16 = ($3 | 0) < (0 | 0) ? 6 : $3; + $1 = $1 * 268435456.0; + } + $18 = ($6 + 48 | 0) + (($17 | 0) < (0 | 0) ? 0 : 288) | 0; + $12 = $18; + label$10 : while (1) { + label$11 : { + label$12 : { + if (!($1 < 4294967296.0 & $1 >= 0.0 | 0)) { + break label$12 + } + $11 = ~~$1 >>> 0; + break label$11; + } + $11 = 0; + } + HEAP32[$12 >> 2] = $11; + $12 = $12 + 4 | 0; + $1 = ($1 - +($11 >>> 0)) * 1.0e9; + if ($1 != 0.0) { + continue label$10 + } + break label$10; + }; + label$13 : { + label$14 : { + if (($17 | 0) >= (1 | 0)) { + break label$14 + } + $3 = $17; + $11 = $12; + $19 = $18; + break label$13; + } + $19 = $18; + $3 = $17; + label$15 : while (1) { + $3 = ($3 | 0) < (29 | 0) ? $3 : 29; + label$16 : { + $11 = $12 + -4 | 0; + if ($11 >>> 0 < $19 >>> 0) { + break label$16 + } + i64toi32_i32$1 = 0; + $20 = $3; + $20$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $8 = 0; + $8$hi = i64toi32_i32$1; + label$17 : while (1) { + $167 = $11; + i64toi32_i32$0 = $11; + i64toi32_i32$1 = HEAP32[$11 >> 2] | 0; + i64toi32_i32$2 = 0; + $169$hi = i64toi32_i32$2; + i64toi32_i32$2 = $20$hi; + i64toi32_i32$2 = $169$hi; + i64toi32_i32$0 = i64toi32_i32$1; + i64toi32_i32$1 = $20$hi; + i64toi32_i32$3 = $20; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + $48 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0; + $48 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + } + $171$hi = i64toi32_i32$1; + i64toi32_i32$1 = $8$hi; + i64toi32_i32$2 = $8; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = -1; + i64toi32_i32$0 = i64toi32_i32$1 & i64toi32_i32$0 | 0; + $173 = i64toi32_i32$2 & i64toi32_i32$3 | 0; + $173$hi = i64toi32_i32$0; + i64toi32_i32$0 = $171$hi; + i64toi32_i32$1 = $48; + i64toi32_i32$2 = $173$hi; + i64toi32_i32$3 = $173; + i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$0 + i64toi32_i32$2 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $8 = i64toi32_i32$4; + $8$hi = i64toi32_i32$5; + $175$hi = i64toi32_i32$5; + i64toi32_i32$1 = 0; + i64toi32_i32$1 = __wasm_i64_udiv(i64toi32_i32$4 | 0, i64toi32_i32$5 | 0, 1e9 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$5 = i64toi32_i32$HIGH_BITS; + $8 = i64toi32_i32$1; + $8$hi = i64toi32_i32$5; + i64toi32_i32$1 = 0; + i64toi32_i32$1 = __wasm_i64_mul($8 | 0, i64toi32_i32$5 | 0, 1e9 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$5 = i64toi32_i32$HIGH_BITS; + $179 = i64toi32_i32$1; + $179$hi = i64toi32_i32$5; + i64toi32_i32$5 = $175$hi; + i64toi32_i32$0 = i64toi32_i32$4; + i64toi32_i32$1 = $179$hi; + i64toi32_i32$3 = $179; + i64toi32_i32$2 = i64toi32_i32$0 - i64toi32_i32$3 | 0; + i64toi32_i32$4 = (i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0) + i64toi32_i32$1 | 0; + i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0; + HEAP32[$167 >> 2] = i64toi32_i32$2; + $11 = $11 + -4 | 0; + if ($11 >>> 0 >= $19 >>> 0) { + continue label$17 + } + break label$17; + }; + i64toi32_i32$4 = $8$hi; + $11 = $8; + if (!$11) { + break label$16 + } + $19 = $19 + -4 | 0; + HEAP32[$19 >> 2] = $11; + } + label$18 : { + label$19 : while (1) { + $11 = $12; + if ($11 >>> 0 <= $19 >>> 0) { + break label$18 + } + $12 = $11 + -4 | 0; + if (!(HEAP32[$12 >> 2] | 0)) { + continue label$19 + } + break label$19; + }; + } + $3 = (HEAP32[($6 + 44 | 0) >> 2] | 0) - $3 | 0; + HEAP32[($6 + 44 | 0) >> 2] = $3; + $12 = $11; + if (($3 | 0) > (0 | 0)) { + continue label$15 + } + break label$15; + }; + } + label$20 : { + if (($3 | 0) > (-1 | 0)) { + break label$20 + } + $21 = ((($16 + 25 | 0) >>> 0) / (9 >>> 0) | 0) + 1 | 0; + $22 = ($15 | 0) == (102 | 0); + label$21 : while (1) { + $12 = 0 - $3 | 0; + $23 = ($12 | 0) < (9 | 0) ? $12 : 9; + label$22 : { + label$23 : { + if ($19 >>> 0 < $11 >>> 0) { + break label$23 + } + $12 = HEAP32[$19 >> 2] | 0; + break label$22; + } + $24 = 1e9 >>> $23 | 0; + $25 = (-1 << $23 | 0) ^ -1 | 0; + $3 = 0; + $12 = $19; + label$24 : while (1) { + $13 = HEAP32[$12 >> 2] | 0; + HEAP32[$12 >> 2] = ($13 >>> $23 | 0) + $3 | 0; + $3 = Math_imul($13 & $25 | 0, $24); + $12 = $12 + 4 | 0; + if ($12 >>> 0 < $11 >>> 0) { + continue label$24 + } + break label$24; + }; + $12 = HEAP32[$19 >> 2] | 0; + if (!$3) { + break label$22 + } + HEAP32[$11 >> 2] = $3; + $11 = $11 + 4 | 0; + } + $3 = (HEAP32[($6 + 44 | 0) >> 2] | 0) + $23 | 0; + HEAP32[($6 + 44 | 0) >> 2] = $3; + $19 = $19 + (!$12 << 2 | 0) | 0; + $12 = $22 ? $18 : $19; + $11 = (($11 - $12 | 0) >> 2 | 0 | 0) > ($21 | 0) ? $12 + ($21 << 2 | 0) | 0 : $11; + if (($3 | 0) < (0 | 0)) { + continue label$21 + } + break label$21; + }; + } + $3 = 0; + label$25 : { + if ($19 >>> 0 >= $11 >>> 0) { + break label$25 + } + $3 = Math_imul(($18 - $19 | 0) >> 2 | 0, 9); + $12 = 10; + $13 = HEAP32[$19 >> 2] | 0; + if ($13 >>> 0 < 10 >>> 0) { + break label$25 + } + label$26 : while (1) { + $3 = $3 + 1 | 0; + $12 = Math_imul($12, 10); + if ($13 >>> 0 >= $12 >>> 0) { + continue label$26 + } + break label$26; + }; + } + label$27 : { + $12 = ($16 - (($15 | 0) == (102 | 0) ? 0 : $3) | 0) - (($16 | 0) != (0 | 0) & ($15 | 0) == (103 | 0) | 0) | 0; + if (($12 | 0) >= (Math_imul(($11 - $18 | 0) >> 2 | 0, 9) + -9 | 0 | 0)) { + break label$27 + } + $13 = $12 + 9216 | 0; + $24 = ($13 | 0) / (9 | 0) | 0; + $23 = (($24 << 2 | 0) + (($6 + 48 | 0) + (($17 | 0) < (0 | 0) ? 4 : 292) | 0) | 0) + -4096 | 0; + $12 = 10; + label$28 : { + $13 = $13 - Math_imul($24, 9) | 0; + if (($13 | 0) > (7 | 0)) { + break label$28 + } + label$29 : while (1) { + $12 = Math_imul($12, 10); + $13 = $13 + 1 | 0; + if (($13 | 0) != (8 | 0)) { + continue label$29 + } + break label$29; + }; + } + $25 = $23 + 4 | 0; + label$30 : { + label$31 : { + $13 = HEAP32[$23 >> 2] | 0; + $21 = ($13 >>> 0) / ($12 >>> 0) | 0; + $24 = $13 - Math_imul($21, $12) | 0; + if ($24) { + break label$31 + } + if (($25 | 0) == ($11 | 0)) { + break label$30 + } + } + label$32 : { + label$33 : { + if ($21 & 1 | 0) { + break label$33 + } + $1 = 9007199254740992.0; + if (($12 | 0) != (1e9 | 0)) { + break label$32 + } + if ($23 >>> 0 <= $19 >>> 0) { + break label$32 + } + if (!((HEAPU8[($23 + -4 | 0) >> 0] | 0) & 1 | 0)) { + break label$32 + } + } + $1 = 9007199254740994.0; + } + $388 = ($25 | 0) == ($11 | 0) ? 1.0 : 1.5; + $25 = $12 >>> 1 | 0; + $26 = $24 >>> 0 < $25 >>> 0 ? .5 : ($24 | 0) == ($25 | 0) ? $388 : 1.5; + label$34 : { + if ($7) { + break label$34 + } + if ((HEAPU8[$10 >> 0] | 0 | 0) != (45 | 0)) { + break label$34 + } + $26 = -$26; + $1 = -$1; + } + $13 = $13 - $24 | 0; + HEAP32[$23 >> 2] = $13; + if ($1 + $26 == $1) { + break label$30 + } + $12 = $13 + $12 | 0; + HEAP32[$23 >> 2] = $12; + label$35 : { + if ($12 >>> 0 < 1e9 >>> 0) { + break label$35 + } + label$36 : while (1) { + HEAP32[$23 >> 2] = 0; + label$37 : { + $23 = $23 + -4 | 0; + if ($23 >>> 0 >= $19 >>> 0) { + break label$37 + } + $19 = $19 + -4 | 0; + HEAP32[$19 >> 2] = 0; + } + $12 = (HEAP32[$23 >> 2] | 0) + 1 | 0; + HEAP32[$23 >> 2] = $12; + if ($12 >>> 0 > 999999999 >>> 0) { + continue label$36 + } + break label$36; + }; + } + $3 = Math_imul(($18 - $19 | 0) >> 2 | 0, 9); + $12 = 10; + $13 = HEAP32[$19 >> 2] | 0; + if ($13 >>> 0 < 10 >>> 0) { + break label$30 + } + label$38 : while (1) { + $3 = $3 + 1 | 0; + $12 = Math_imul($12, 10); + if ($13 >>> 0 >= $12 >>> 0) { + continue label$38 + } + break label$38; + }; + } + $12 = $23 + 4 | 0; + $11 = $11 >>> 0 > $12 >>> 0 ? $12 : $11; + } + label$39 : { + label$40 : while (1) { + $12 = $11; + $13 = $11 >>> 0 <= $19 >>> 0; + if ($13) { + break label$39 + } + $11 = $12 + -4 | 0; + if (!(HEAP32[$11 >> 2] | 0)) { + continue label$40 + } + break label$40; + }; + } + label$41 : { + label$42 : { + if (($15 | 0) == (103 | 0)) { + break label$42 + } + $23 = $4 & 8 | 0; + break label$41; + } + $11 = $16 ? $16 : 1; + $23 = ($11 | 0) > ($3 | 0) & ($3 | 0) > (-5 | 0) | 0; + $16 = ($23 ? $3 ^ -1 | 0 : -1) + $11 | 0; + $5 = ($23 ? -1 : -2) + $5 | 0; + $23 = $4 & 8 | 0; + if ($23) { + break label$41 + } + $11 = -9; + label$43 : { + if ($13) { + break label$43 + } + $23 = HEAP32[($12 + -4 | 0) >> 2] | 0; + if (!$23) { + break label$43 + } + $13 = 10; + $11 = 0; + if (($23 >>> 0) % (10 >>> 0) | 0) { + break label$43 + } + label$44 : while (1) { + $24 = $11; + $11 = $11 + 1 | 0; + $13 = Math_imul($13, 10); + if (!(($23 >>> 0) % ($13 >>> 0) | 0)) { + continue label$44 + } + break label$44; + }; + $11 = $24 ^ -1 | 0; + } + $13 = Math_imul(($12 - $18 | 0) >> 2 | 0, 9); + label$45 : { + if (($5 & -33 | 0 | 0) != (70 | 0)) { + break label$45 + } + $23 = 0; + $11 = ($13 + $11 | 0) + -9 | 0; + $11 = ($11 | 0) > (0 | 0) ? $11 : 0; + $16 = ($16 | 0) < ($11 | 0) ? $16 : $11; + break label$41; + } + $23 = 0; + $11 = (($3 + $13 | 0) + $11 | 0) + -9 | 0; + $11 = ($11 | 0) > (0 | 0) ? $11 : 0; + $16 = ($16 | 0) < ($11 | 0) ? $16 : $11; + } + $13 = -1; + $24 = $16 | $23 | 0; + if (($16 | 0) > (($24 ? 2147483645 : 2147483646) | 0)) { + break label$4 + } + $25 = ($16 + (($24 | 0) != (0 | 0)) | 0) + 1 | 0; + label$46 : { + label$47 : { + $22 = $5 & -33 | 0; + if (($22 | 0) != (70 | 0)) { + break label$47 + } + if (($3 | 0) > ($25 ^ 2147483647 | 0 | 0)) { + break label$4 + } + $11 = ($3 | 0) > (0 | 0) ? $3 : 0; + break label$46; + } + label$48 : { + $11 = $3 >> 31 | 0; + i64toi32_i32$4 = 0; + $11 = fmt_u(($3 ^ $11 | 0) - $11 | 0 | 0, i64toi32_i32$4 | 0, $14 | 0) | 0; + if (($14 - $11 | 0 | 0) > (1 | 0)) { + break label$48 + } + label$49 : while (1) { + $11 = $11 + -1 | 0; + HEAP8[$11 >> 0] = 48; + if (($14 - $11 | 0 | 0) < (2 | 0)) { + continue label$49 + } + break label$49; + }; + } + $21 = $11 + -2 | 0; + HEAP8[$21 >> 0] = $5; + $13 = -1; + HEAP8[($11 + -1 | 0) >> 0] = ($3 | 0) < (0 | 0) ? 45 : 43; + $11 = $14 - $21 | 0; + if (($11 | 0) > ($25 ^ 2147483647 | 0 | 0)) { + break label$4 + } + } + $13 = -1; + $11 = $11 + $25 | 0; + if (($11 | 0) > ($9 ^ 2147483647 | 0 | 0)) { + break label$4 + } + $25 = $11 + $9 | 0; + pad($0 | 0, 32 | 0, $2 | 0, $25 | 0, $4 | 0); + out($0 | 0, $10 | 0, $9 | 0); + pad($0 | 0, 48 | 0, $2 | 0, $25 | 0, $4 ^ 65536 | 0 | 0); + label$50 : { + label$51 : { + label$52 : { + label$53 : { + if (($22 | 0) != (70 | 0)) { + break label$53 + } + $23 = $6 + 16 | 0 | 8 | 0; + $3 = $6 + 16 | 0 | 9 | 0; + $13 = $19 >>> 0 > $18 >>> 0 ? $18 : $19; + $19 = $13; + label$54 : while (1) { + i64toi32_i32$5 = $19; + i64toi32_i32$4 = HEAP32[$19 >> 2] | 0; + i64toi32_i32$0 = 0; + $11 = fmt_u(i64toi32_i32$4 | 0, i64toi32_i32$0 | 0, $3 | 0) | 0; + label$55 : { + label$56 : { + if (($19 | 0) == ($13 | 0)) { + break label$56 + } + if ($11 >>> 0 <= ($6 + 16 | 0) >>> 0) { + break label$55 + } + label$57 : while (1) { + $11 = $11 + -1 | 0; + HEAP8[$11 >> 0] = 48; + if ($11 >>> 0 > ($6 + 16 | 0) >>> 0) { + continue label$57 + } + break label$55; + }; + } + if (($11 | 0) != ($3 | 0)) { + break label$55 + } + HEAP8[($6 + 24 | 0) >> 0] = 48; + $11 = $23; + } + out($0 | 0, $11 | 0, $3 - $11 | 0 | 0); + $19 = $19 + 4 | 0; + if ($19 >>> 0 <= $18 >>> 0) { + continue label$54 + } + break label$54; + }; + label$58 : { + if (!$24) { + break label$58 + } + out($0 | 0, 86179 | 0, 1 | 0); + } + if ($19 >>> 0 >= $12 >>> 0) { + break label$52 + } + if (($16 | 0) < (1 | 0)) { + break label$52 + } + label$59 : while (1) { + label$60 : { + i64toi32_i32$5 = $19; + i64toi32_i32$0 = HEAP32[$19 >> 2] | 0; + i64toi32_i32$4 = 0; + $11 = fmt_u(i64toi32_i32$0 | 0, i64toi32_i32$4 | 0, $3 | 0) | 0; + if ($11 >>> 0 <= ($6 + 16 | 0) >>> 0) { + break label$60 + } + label$61 : while (1) { + $11 = $11 + -1 | 0; + HEAP8[$11 >> 0] = 48; + if ($11 >>> 0 > ($6 + 16 | 0) >>> 0) { + continue label$61 + } + break label$61; + }; + } + out($0 | 0, $11 | 0, (($16 | 0) < (9 | 0) ? $16 : 9) | 0); + $11 = $16 + -9 | 0; + $19 = $19 + 4 | 0; + if ($19 >>> 0 >= $12 >>> 0) { + break label$51 + } + $13 = ($16 | 0) > (9 | 0); + $16 = $11; + if ($13) { + continue label$59 + } + break label$51; + }; + } + label$62 : { + if (($16 | 0) < (0 | 0)) { + break label$62 + } + $24 = $12 >>> 0 > $19 >>> 0 ? $12 : $19 + 4 | 0; + $18 = $6 + 16 | 0 | 8 | 0; + $3 = $6 + 16 | 0 | 9 | 0; + $12 = $19; + label$63 : while (1) { + label$64 : { + i64toi32_i32$5 = $12; + i64toi32_i32$4 = HEAP32[$12 >> 2] | 0; + i64toi32_i32$0 = 0; + $11 = fmt_u(i64toi32_i32$4 | 0, i64toi32_i32$0 | 0, $3 | 0) | 0; + if (($11 | 0) != ($3 | 0)) { + break label$64 + } + HEAP8[($6 + 24 | 0) >> 0] = 48; + $11 = $18; + } + label$65 : { + label$66 : { + if (($12 | 0) == ($19 | 0)) { + break label$66 + } + if ($11 >>> 0 <= ($6 + 16 | 0) >>> 0) { + break label$65 + } + label$67 : while (1) { + $11 = $11 + -1 | 0; + HEAP8[$11 >> 0] = 48; + if ($11 >>> 0 > ($6 + 16 | 0) >>> 0) { + continue label$67 + } + break label$65; + }; + } + out($0 | 0, $11 | 0, 1 | 0); + $11 = $11 + 1 | 0; + if (!($16 | $23 | 0)) { + break label$65 + } + out($0 | 0, 86179 | 0, 1 | 0); + } + $13 = $3 - $11 | 0; + out($0 | 0, $11 | 0, (($16 | 0) < ($13 | 0) ? $16 : $13) | 0); + $16 = $16 - $13 | 0; + $12 = $12 + 4 | 0; + if ($12 >>> 0 >= $24 >>> 0) { + break label$62 + } + if (($16 | 0) > (-1 | 0)) { + continue label$63 + } + break label$63; + }; + } + pad($0 | 0, 48 | 0, $16 + 18 | 0 | 0, 18 | 0, 0 | 0); + out($0 | 0, $21 | 0, $14 - $21 | 0 | 0); + break label$50; + } + $11 = $16; + } + pad($0 | 0, 48 | 0, $11 + 9 | 0 | 0, 9 | 0, 0 | 0); + } + pad($0 | 0, 32 | 0, $2 | 0, $25 | 0, $4 ^ 8192 | 0 | 0); + $13 = ($25 | 0) > ($2 | 0) ? $25 : $2; + break label$4; + } + $25 = $10 + ((($5 << 26 | 0) >> 31 | 0) & 9 | 0) | 0; + label$68 : { + if ($3 >>> 0 > 11 >>> 0) { + break label$68 + } + $11 = 12 - $3 | 0; + $26 = 16.0; + label$69 : while (1) { + $26 = $26 * 16.0; + $11 = $11 + -1 | 0; + if ($11) { + continue label$69 + } + break label$69; + }; + label$70 : { + if ((HEAPU8[$25 >> 0] | 0 | 0) != (45 | 0)) { + break label$70 + } + $1 = -($26 + (-$1 - $26)); + break label$68; + } + $1 = $1 + $26 - $26; + } + label$71 : { + $11 = HEAP32[($6 + 44 | 0) >> 2] | 0; + $852 = $11; + $11 = $11 >> 31 | 0; + i64toi32_i32$0 = 0; + $11 = fmt_u(($852 ^ $11 | 0) - $11 | 0 | 0, i64toi32_i32$0 | 0, $14 | 0) | 0; + if (($11 | 0) != ($14 | 0)) { + break label$71 + } + HEAP8[($6 + 15 | 0) >> 0] = 48; + $11 = $6 + 15 | 0; + } + $23 = $9 | 2 | 0; + $19 = $5 & 32 | 0; + $12 = HEAP32[($6 + 44 | 0) >> 2] | 0; + $24 = $11 + -2 | 0; + HEAP8[$24 >> 0] = $5 + 15 | 0; + HEAP8[($11 + -1 | 0) >> 0] = ($12 | 0) < (0 | 0) ? 45 : 43; + $13 = $4 & 8 | 0; + $12 = $6 + 16 | 0; + label$72 : while (1) { + $11 = $12; + label$73 : { + label$74 : { + if (!(Math_abs($1) < 2147483648.0)) { + break label$74 + } + $12 = ~~$1; + break label$73; + } + $12 = -2147483648; + } + HEAP8[$11 >> 0] = HEAPU8[($12 + 109248 | 0) >> 0] | 0 | $19 | 0; + $1 = ($1 - +($12 | 0)) * 16.0; + label$75 : { + $12 = $11 + 1 | 0; + if (($12 - ($6 + 16 | 0) | 0 | 0) != (1 | 0)) { + break label$75 + } + label$76 : { + if ($13) { + break label$76 + } + if (($3 | 0) > (0 | 0)) { + break label$76 + } + if ($1 == 0.0) { + break label$75 + } + } + HEAP8[($11 + 1 | 0) >> 0] = 46; + $12 = $11 + 2 | 0; + } + if ($1 != 0.0) { + continue label$72 + } + break label$72; + }; + $13 = -1; + $19 = $14 - $24 | 0; + $21 = $23 + $19 | 0; + if ((2147483645 - $21 | 0 | 0) < ($3 | 0)) { + break label$4 + } + $11 = $12 - ($6 + 16 | 0) | 0; + $3 = $3 ? (($11 + -2 | 0 | 0) < ($3 | 0) ? $3 + 2 | 0 : $11) : $11; + $12 = $21 + $3 | 0; + pad($0 | 0, 32 | 0, $2 | 0, $12 | 0, $4 | 0); + out($0 | 0, $25 | 0, $23 | 0); + pad($0 | 0, 48 | 0, $2 | 0, $12 | 0, $4 ^ 65536 | 0 | 0); + out($0 | 0, $6 + 16 | 0 | 0, $11 | 0); + pad($0 | 0, 48 | 0, $3 - $11 | 0 | 0, 0 | 0, 0 | 0); + out($0 | 0, $24 | 0, $19 | 0); + pad($0 | 0, 32 | 0, $2 | 0, $12 | 0, $4 ^ 8192 | 0 | 0); + $13 = ($12 | 0) > ($2 | 0) ? $12 : $2; + } + __stack_pointer = $6 + 560 | 0; + return $13 | 0; + } + + function pop_arg_long_double($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $2 = 0, $12 = 0, $12$hi = 0, $15 = 0, $15$hi = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; + $2 = ((HEAP32[$1 >> 2] | 0) + 7 | 0) & -8 | 0; + HEAP32[$1 >> 2] = $2 + 16 | 0; + i64toi32_i32$2 = $2; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $12 = i64toi32_i32$0; + $12$hi = i64toi32_i32$1; + i64toi32_i32$2 = i64toi32_i32$2 + 8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $15 = i64toi32_i32$1; + $15$hi = i64toi32_i32$0; + i64toi32_i32$0 = $12$hi; + i64toi32_i32$1 = $15$hi; + (wasm2js_i32$0 = $0, wasm2js_f64$0 = +__trunctfdf2($12 | 0, i64toi32_i32$0 | 0, $15 | 0, i64toi32_i32$1 | 0)), HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; + } + + function __DOUBLE_BITS($0) { + $0 = +$0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+$0); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; + i64toi32_i32$HIGH_BITS = i64toi32_i32$0; + return i64toi32_i32$1 | 0; + } + + function __wasi_syscall_ret($0) { + $0 = $0 | 0; + var wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + label$1 : { + if ($0) { + break label$1 + } + return 0 | 0; + } + (wasm2js_i32$0 = __errno_location() | 0, wasm2js_i32$1 = $0), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + return -1 | 0; + } + + function __syscall_getpid() { + return 42 | 0; + } + + function getpid() { + return __syscall_getpid() | 0 | 0; + } + + function __get_tp() { + return 117352 | 0; + } + + function init_pthread_self() { + var wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + HEAP32[(0 + 117448 | 0) >> 2] = 117328; + (wasm2js_i32$0 = 0, wasm2js_i32$1 = getpid() | 0), HEAP32[(wasm2js_i32$0 + 117376 | 0) >> 2] = wasm2js_i32$1; + } + + function wcrtomb($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $3 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $3 = 1; + label$1 : { + label$2 : { + if (!$0) { + break label$2 + } + if ($1 >>> 0 <= 127 >>> 0) { + break label$1 + } + label$3 : { + label$4 : { + if (HEAP32[(HEAP32[((__get_tp() | 0) + 96 | 0) >> 2] | 0) >> 2] | 0) { + break label$4 + } + if (($1 & -128 | 0 | 0) == (57216 | 0)) { + break label$1 + } + (wasm2js_i32$0 = __errno_location() | 0, wasm2js_i32$1 = 25), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + break label$3; + } + label$5 : { + if ($1 >>> 0 > 2047 >>> 0) { + break label$5 + } + HEAP8[($0 + 1 | 0) >> 0] = $1 & 63 | 0 | 128 | 0; + HEAP8[$0 >> 0] = $1 >>> 6 | 0 | 192 | 0; + return 2 | 0; + } + label$6 : { + label$7 : { + if ($1 >>> 0 < 55296 >>> 0) { + break label$7 + } + if (($1 & -8192 | 0 | 0) != (57344 | 0)) { + break label$6 + } + } + HEAP8[($0 + 2 | 0) >> 0] = $1 & 63 | 0 | 128 | 0; + HEAP8[$0 >> 0] = $1 >>> 12 | 0 | 224 | 0; + HEAP8[($0 + 1 | 0) >> 0] = ($1 >>> 6 | 0) & 63 | 0 | 128 | 0; + return 3 | 0; + } + label$8 : { + if (($1 + -65536 | 0) >>> 0 > 1048575 >>> 0) { + break label$8 + } + HEAP8[($0 + 3 | 0) >> 0] = $1 & 63 | 0 | 128 | 0; + HEAP8[$0 >> 0] = $1 >>> 18 | 0 | 240 | 0; + HEAP8[($0 + 2 | 0) >> 0] = ($1 >>> 6 | 0) & 63 | 0 | 128 | 0; + HEAP8[($0 + 1 | 0) >> 0] = ($1 >>> 12 | 0) & 63 | 0 | 128 | 0; + return 4 | 0; + } + (wasm2js_i32$0 = __errno_location() | 0, wasm2js_i32$1 = 25), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + } + $3 = -1; + } + return $3 | 0; + } + HEAP8[$0 >> 0] = $1; + return 1 | 0; + } + + function wctomb($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + label$1 : { + if ($0) { + break label$1 + } + return 0 | 0; + } + return wcrtomb($0 | 0, $1 | 0, 0 | 0) | 0 | 0; + } + + function emscripten_get_heap_size() { + return __wasm_memory_size() << 16 | 0 | 0; + } + + function sbrk($0) { + $0 = $0 | 0; + var $1 = 0, $2 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $1 = HEAP32[(0 + 113004 | 0) >> 2] | 0; + $2 = ($0 + 7 | 0) & -8 | 0; + $0 = $1 + $2 | 0; + label$1 : { + label$2 : { + if (!$2) { + break label$2 + } + if ($0 >>> 0 <= $1 >>> 0) { + break label$1 + } + } + label$3 : { + if ($0 >>> 0 <= (emscripten_get_heap_size() | 0) >>> 0) { + break label$3 + } + if (!(emscripten_resize_heap($0 | 0) | 0)) { + break label$1 + } + } + HEAP32[(0 + 113004 | 0) >> 2] = $0; + return $1 | 0; + } + (wasm2js_i32$0 = __errno_location() | 0, wasm2js_i32$1 = 48), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + return -1 | 0; + } + + function dlmalloc($0) { + $0 = $0 | 0; + var $4 = 0, $7 = 0, $5 = 0, $8 = 0, $3 = 0, $2 = 0, $11 = 0, $6 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $9 = 0, i64toi32_i32$2 = 0, $10 = 0, $1 = 0, $79 = 0, $191 = 0, $945 = 0, $947 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $1 = __stack_pointer - 16 | 0; + __stack_pointer = $1; + label$1 : { + label$2 : { + label$3 : { + label$4 : { + label$5 : { + label$6 : { + label$7 : { + label$8 : { + label$9 : { + label$10 : { + label$11 : { + label$12 : { + label$13 : { + label$14 : { + label$15 : { + if ($0 >>> 0 > 244 >>> 0) { + break label$15 + } + label$16 : { + $2 = HEAP32[(0 + 117484 | 0) >> 2] | 0; + $3 = $0 >>> 0 < 11 >>> 0 ? 16 : ($0 + 11 | 0) & -8 | 0; + $4 = $3 >>> 3 | 0; + $0 = $2 >>> $4 | 0; + if (!($0 & 3 | 0)) { + break label$16 + } + label$17 : { + label$18 : { + $5 = (($0 ^ -1 | 0) & 1 | 0) + $4 | 0; + $4 = $5 << 3 | 0; + $0 = $4 + 117524 | 0; + $4 = HEAP32[($4 + 117532 | 0) >> 2] | 0; + $3 = HEAP32[($4 + 8 | 0) >> 2] | 0; + if (($0 | 0) != ($3 | 0)) { + break label$18 + } + (wasm2js_i32$0 = 0, wasm2js_i32$1 = $2 & (__wasm_rotl_i32(-2 | 0, $5 | 0) | 0) | 0), HEAP32[(wasm2js_i32$0 + 117484 | 0) >> 2] = wasm2js_i32$1; + break label$17; + } + HEAP32[($3 + 12 | 0) >> 2] = $0; + HEAP32[($0 + 8 | 0) >> 2] = $3; + } + $0 = $4 + 8 | 0; + $5 = $5 << 3 | 0; + HEAP32[($4 + 4 | 0) >> 2] = $5 | 3 | 0; + $4 = $4 + $5 | 0; + HEAP32[($4 + 4 | 0) >> 2] = HEAP32[($4 + 4 | 0) >> 2] | 0 | 1 | 0; + break label$1; + } + $6 = HEAP32[(0 + 117492 | 0) >> 2] | 0; + if ($3 >>> 0 <= $6 >>> 0) { + break label$14 + } + label$19 : { + if (!$0) { + break label$19 + } + label$20 : { + label$21 : { + $79 = $0 << $4 | 0; + $0 = 2 << $4 | 0; + $0 = $79 & ($0 | (0 - $0 | 0) | 0) | 0; + $4 = __wasm_ctz_i32($0 & (0 - $0 | 0) | 0 | 0) | 0; + $0 = $4 << 3 | 0; + $5 = $0 + 117524 | 0; + $0 = HEAP32[($0 + 117532 | 0) >> 2] | 0; + $7 = HEAP32[($0 + 8 | 0) >> 2] | 0; + if (($5 | 0) != ($7 | 0)) { + break label$21 + } + $2 = $2 & (__wasm_rotl_i32(-2 | 0, $4 | 0) | 0) | 0; + HEAP32[(0 + 117484 | 0) >> 2] = $2; + break label$20; + } + HEAP32[($7 + 12 | 0) >> 2] = $5; + HEAP32[($5 + 8 | 0) >> 2] = $7; + } + HEAP32[($0 + 4 | 0) >> 2] = $3 | 3 | 0; + $7 = $0 + $3 | 0; + $4 = $4 << 3 | 0; + $5 = $4 - $3 | 0; + HEAP32[($7 + 4 | 0) >> 2] = $5 | 1 | 0; + HEAP32[($0 + $4 | 0) >> 2] = $5; + label$22 : { + if (!$6) { + break label$22 + } + $3 = ($6 & -8 | 0) + 117524 | 0; + $4 = HEAP32[(0 + 117504 | 0) >> 2] | 0; + label$23 : { + label$24 : { + $8 = 1 << ($6 >>> 3 | 0) | 0; + if ($2 & $8 | 0) { + break label$24 + } + HEAP32[(0 + 117484 | 0) >> 2] = $2 | $8 | 0; + $8 = $3; + break label$23; + } + $8 = HEAP32[($3 + 8 | 0) >> 2] | 0; + } + HEAP32[($3 + 8 | 0) >> 2] = $4; + HEAP32[($8 + 12 | 0) >> 2] = $4; + HEAP32[($4 + 12 | 0) >> 2] = $3; + HEAP32[($4 + 8 | 0) >> 2] = $8; + } + $0 = $0 + 8 | 0; + HEAP32[(0 + 117504 | 0) >> 2] = $7; + HEAP32[(0 + 117492 | 0) >> 2] = $5; + break label$1; + } + $9 = HEAP32[(0 + 117488 | 0) >> 2] | 0; + if (!$9) { + break label$14 + } + $7 = HEAP32[(((__wasm_ctz_i32($9 & (0 - $9 | 0) | 0 | 0) | 0) << 2 | 0) + 117788 | 0) >> 2] | 0; + $4 = ((HEAP32[($7 + 4 | 0) >> 2] | 0) & -8 | 0) - $3 | 0; + $5 = $7; + label$25 : { + label$26 : while (1) { + label$27 : { + $0 = HEAP32[($5 + 16 | 0) >> 2] | 0; + if ($0) { + break label$27 + } + $0 = HEAP32[($5 + 20 | 0) >> 2] | 0; + if (!$0) { + break label$25 + } + } + $5 = ((HEAP32[($0 + 4 | 0) >> 2] | 0) & -8 | 0) - $3 | 0; + $191 = $5; + $5 = $5 >>> 0 < $4 >>> 0; + $4 = $5 ? $191 : $4; + $7 = $5 ? $0 : $7; + $5 = $0; + continue label$26; + }; + } + $10 = HEAP32[($7 + 24 | 0) >> 2] | 0; + label$28 : { + $8 = HEAP32[($7 + 12 | 0) >> 2] | 0; + if (($8 | 0) == ($7 | 0)) { + break label$28 + } + $0 = HEAP32[($7 + 8 | 0) >> 2] | 0; + HEAP32[(0 + 117500 | 0) >> 2] | 0; + HEAP32[($0 + 12 | 0) >> 2] = $8; + HEAP32[($8 + 8 | 0) >> 2] = $0; + break label$2; + } + label$29 : { + $5 = $7 + 20 | 0; + $0 = HEAP32[$5 >> 2] | 0; + if ($0) { + break label$29 + } + $0 = HEAP32[($7 + 16 | 0) >> 2] | 0; + if (!$0) { + break label$13 + } + $5 = $7 + 16 | 0; + } + label$30 : while (1) { + $11 = $5; + $8 = $0; + $5 = $0 + 20 | 0; + $0 = HEAP32[$5 >> 2] | 0; + if ($0) { + continue label$30 + } + $5 = $8 + 16 | 0; + $0 = HEAP32[($8 + 16 | 0) >> 2] | 0; + if ($0) { + continue label$30 + } + break label$30; + }; + HEAP32[$11 >> 2] = 0; + break label$2; + } + $3 = -1; + if ($0 >>> 0 > -65 >>> 0) { + break label$14 + } + $0 = $0 + 11 | 0; + $3 = $0 & -8 | 0; + $6 = HEAP32[(0 + 117488 | 0) >> 2] | 0; + if (!$6) { + break label$14 + } + $11 = 0; + label$31 : { + if ($3 >>> 0 < 256 >>> 0) { + break label$31 + } + $11 = 31; + if ($3 >>> 0 > 16777215 >>> 0) { + break label$31 + } + $0 = Math_clz32($0 >>> 8 | 0); + $11 = ((($3 >>> (38 - $0 | 0) | 0) & 1 | 0) - ($0 << 1 | 0) | 0) + 62 | 0; + } + $4 = 0 - $3 | 0; + label$32 : { + label$33 : { + label$34 : { + label$35 : { + $5 = HEAP32[(($11 << 2 | 0) + 117788 | 0) >> 2] | 0; + if ($5) { + break label$35 + } + $0 = 0; + $8 = 0; + break label$34; + } + $0 = 0; + $7 = $3 << (($11 | 0) == (31 | 0) ? 0 : 25 - ($11 >>> 1 | 0) | 0) | 0; + $8 = 0; + label$36 : while (1) { + label$37 : { + $2 = ((HEAP32[($5 + 4 | 0) >> 2] | 0) & -8 | 0) - $3 | 0; + if ($2 >>> 0 >= $4 >>> 0) { + break label$37 + } + $4 = $2; + $8 = $5; + if ($4) { + break label$37 + } + $4 = 0; + $8 = $5; + $0 = $5; + break label$33; + } + $2 = HEAP32[($5 + 20 | 0) >> 2] | 0; + $5 = HEAP32[(($5 + (($7 >>> 29 | 0) & 4 | 0) | 0) + 16 | 0) >> 2] | 0; + $0 = $2 ? (($2 | 0) == ($5 | 0) ? $0 : $2) : $0; + $7 = $7 << 1 | 0; + if ($5) { + continue label$36 + } + break label$36; + }; + } + label$38 : { + if ($0 | $8 | 0) { + break label$38 + } + $8 = 0; + $0 = 2 << $11 | 0; + $0 = ($0 | (0 - $0 | 0) | 0) & $6 | 0; + if (!$0) { + break label$14 + } + $0 = HEAP32[(((__wasm_ctz_i32($0 & (0 - $0 | 0) | 0 | 0) | 0) << 2 | 0) + 117788 | 0) >> 2] | 0; + } + if (!$0) { + break label$32 + } + } + label$39 : while (1) { + $2 = ((HEAP32[($0 + 4 | 0) >> 2] | 0) & -8 | 0) - $3 | 0; + $7 = $2 >>> 0 < $4 >>> 0; + label$40 : { + $5 = HEAP32[($0 + 16 | 0) >> 2] | 0; + if ($5) { + break label$40 + } + $5 = HEAP32[($0 + 20 | 0) >> 2] | 0; + } + $4 = $7 ? $2 : $4; + $8 = $7 ? $0 : $8; + $0 = $5; + if ($0) { + continue label$39 + } + break label$39; + }; + } + if (!$8) { + break label$14 + } + if ($4 >>> 0 >= ((HEAP32[(0 + 117492 | 0) >> 2] | 0) - $3 | 0) >>> 0) { + break label$14 + } + $11 = HEAP32[($8 + 24 | 0) >> 2] | 0; + label$41 : { + $7 = HEAP32[($8 + 12 | 0) >> 2] | 0; + if (($7 | 0) == ($8 | 0)) { + break label$41 + } + $0 = HEAP32[($8 + 8 | 0) >> 2] | 0; + HEAP32[(0 + 117500 | 0) >> 2] | 0; + HEAP32[($0 + 12 | 0) >> 2] = $7; + HEAP32[($7 + 8 | 0) >> 2] = $0; + break label$3; + } + label$42 : { + $5 = $8 + 20 | 0; + $0 = HEAP32[$5 >> 2] | 0; + if ($0) { + break label$42 + } + $0 = HEAP32[($8 + 16 | 0) >> 2] | 0; + if (!$0) { + break label$12 + } + $5 = $8 + 16 | 0; + } + label$43 : while (1) { + $2 = $5; + $7 = $0; + $5 = $0 + 20 | 0; + $0 = HEAP32[$5 >> 2] | 0; + if ($0) { + continue label$43 + } + $5 = $7 + 16 | 0; + $0 = HEAP32[($7 + 16 | 0) >> 2] | 0; + if ($0) { + continue label$43 + } + break label$43; + }; + HEAP32[$2 >> 2] = 0; + break label$3; + } + label$44 : { + $0 = HEAP32[(0 + 117492 | 0) >> 2] | 0; + if ($0 >>> 0 < $3 >>> 0) { + break label$44 + } + $4 = HEAP32[(0 + 117504 | 0) >> 2] | 0; + label$45 : { + label$46 : { + $5 = $0 - $3 | 0; + if ($5 >>> 0 < 16 >>> 0) { + break label$46 + } + $7 = $4 + $3 | 0; + HEAP32[($7 + 4 | 0) >> 2] = $5 | 1 | 0; + HEAP32[($4 + $0 | 0) >> 2] = $5; + HEAP32[($4 + 4 | 0) >> 2] = $3 | 3 | 0; + break label$45; + } + HEAP32[($4 + 4 | 0) >> 2] = $0 | 3 | 0; + $0 = $4 + $0 | 0; + HEAP32[($0 + 4 | 0) >> 2] = HEAP32[($0 + 4 | 0) >> 2] | 0 | 1 | 0; + $7 = 0; + $5 = 0; + } + HEAP32[(0 + 117492 | 0) >> 2] = $5; + HEAP32[(0 + 117504 | 0) >> 2] = $7; + $0 = $4 + 8 | 0; + break label$1; + } + label$47 : { + $7 = HEAP32[(0 + 117496 | 0) >> 2] | 0; + if ($7 >>> 0 <= $3 >>> 0) { + break label$47 + } + $4 = $7 - $3 | 0; + HEAP32[(0 + 117496 | 0) >> 2] = $4; + $0 = HEAP32[(0 + 117508 | 0) >> 2] | 0; + $5 = $0 + $3 | 0; + HEAP32[(0 + 117508 | 0) >> 2] = $5; + HEAP32[($5 + 4 | 0) >> 2] = $4 | 1 | 0; + HEAP32[($0 + 4 | 0) >> 2] = $3 | 3 | 0; + $0 = $0 + 8 | 0; + break label$1; + } + label$48 : { + label$49 : { + if (!(HEAP32[(0 + 117956 | 0) >> 2] | 0)) { + break label$49 + } + $4 = HEAP32[(0 + 117964 | 0) >> 2] | 0; + break label$48; + } + i64toi32_i32$1 = 0; + i64toi32_i32$0 = -1; + HEAP32[(i64toi32_i32$1 + 117968 | 0) >> 2] = -1; + HEAP32[(i64toi32_i32$1 + 117972 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = 0; + i64toi32_i32$0 = 4096; + HEAP32[(i64toi32_i32$1 + 117960 | 0) >> 2] = 4096; + HEAP32[(i64toi32_i32$1 + 117964 | 0) >> 2] = i64toi32_i32$0; + HEAP32[(0 + 117956 | 0) >> 2] = (($1 + 12 | 0) & -16 | 0) ^ 1431655768 | 0; + HEAP32[(0 + 117976 | 0) >> 2] = 0; + HEAP32[(0 + 117928 | 0) >> 2] = 0; + $4 = 4096; + } + $0 = 0; + $6 = $3 + 47 | 0; + $2 = $4 + $6 | 0; + $11 = 0 - $4 | 0; + $8 = $2 & $11 | 0; + if ($8 >>> 0 <= $3 >>> 0) { + break label$1 + } + $0 = 0; + label$50 : { + $4 = HEAP32[(0 + 117924 | 0) >> 2] | 0; + if (!$4) { + break label$50 + } + $5 = HEAP32[(0 + 117916 | 0) >> 2] | 0; + $9 = $5 + $8 | 0; + if ($9 >>> 0 <= $5 >>> 0) { + break label$1 + } + if ($9 >>> 0 > $4 >>> 0) { + break label$1 + } + } + label$51 : { + label$52 : { + if ((HEAPU8[(0 + 117928 | 0) >> 0] | 0) & 4 | 0) { + break label$52 + } + label$53 : { + label$54 : { + label$55 : { + label$56 : { + label$57 : { + $4 = HEAP32[(0 + 117508 | 0) >> 2] | 0; + if (!$4) { + break label$57 + } + $0 = 117932; + label$58 : while (1) { + label$59 : { + $5 = HEAP32[$0 >> 2] | 0; + if ($5 >>> 0 > $4 >>> 0) { + break label$59 + } + if (($5 + (HEAP32[($0 + 4 | 0) >> 2] | 0) | 0) >>> 0 > $4 >>> 0) { + break label$56 + } + } + $0 = HEAP32[($0 + 8 | 0) >> 2] | 0; + if ($0) { + continue label$58 + } + break label$58; + }; + } + $7 = sbrk(0 | 0) | 0; + if (($7 | 0) == (-1 | 0)) { + break label$53 + } + $2 = $8; + label$60 : { + $0 = HEAP32[(0 + 117960 | 0) >> 2] | 0; + $4 = $0 + -1 | 0; + if (!($4 & $7 | 0)) { + break label$60 + } + $2 = ($8 - $7 | 0) + (($4 + $7 | 0) & (0 - $0 | 0) | 0) | 0; + } + if ($2 >>> 0 <= $3 >>> 0) { + break label$53 + } + label$61 : { + $0 = HEAP32[(0 + 117924 | 0) >> 2] | 0; + if (!$0) { + break label$61 + } + $4 = HEAP32[(0 + 117916 | 0) >> 2] | 0; + $5 = $4 + $2 | 0; + if ($5 >>> 0 <= $4 >>> 0) { + break label$53 + } + if ($5 >>> 0 > $0 >>> 0) { + break label$53 + } + } + $0 = sbrk($2 | 0) | 0; + if (($0 | 0) != ($7 | 0)) { + break label$55 + } + break label$51; + } + $2 = ($2 - $7 | 0) & $11 | 0; + $7 = sbrk($2 | 0) | 0; + if (($7 | 0) == ((HEAP32[$0 >> 2] | 0) + (HEAP32[($0 + 4 | 0) >> 2] | 0) | 0 | 0)) { + break label$54 + } + $0 = $7; + } + if (($0 | 0) == (-1 | 0)) { + break label$53 + } + label$62 : { + if (($3 + 48 | 0) >>> 0 > $2 >>> 0) { + break label$62 + } + $7 = $0; + break label$51; + } + $4 = HEAP32[(0 + 117964 | 0) >> 2] | 0; + $4 = (($6 - $2 | 0) + $4 | 0) & (0 - $4 | 0) | 0; + if ((sbrk($4 | 0) | 0 | 0) == (-1 | 0)) { + break label$53 + } + $2 = $4 + $2 | 0; + $7 = $0; + break label$51; + } + if (($7 | 0) != (-1 | 0)) { + break label$51 + } + } + HEAP32[(0 + 117928 | 0) >> 2] = HEAP32[(0 + 117928 | 0) >> 2] | 0 | 4 | 0; + } + $7 = sbrk($8 | 0) | 0; + $0 = sbrk(0 | 0) | 0; + if (($7 | 0) == (-1 | 0)) { + break label$9 + } + if (($0 | 0) == (-1 | 0)) { + break label$9 + } + if ($7 >>> 0 >= $0 >>> 0) { + break label$9 + } + $2 = $0 - $7 | 0; + if ($2 >>> 0 <= ($3 + 40 | 0) >>> 0) { + break label$9 + } + } + $0 = (HEAP32[(0 + 117916 | 0) >> 2] | 0) + $2 | 0; + HEAP32[(0 + 117916 | 0) >> 2] = $0; + label$63 : { + if ($0 >>> 0 <= (HEAP32[(0 + 117920 | 0) >> 2] | 0) >>> 0) { + break label$63 + } + HEAP32[(0 + 117920 | 0) >> 2] = $0; + } + label$64 : { + label$65 : { + $4 = HEAP32[(0 + 117508 | 0) >> 2] | 0; + if (!$4) { + break label$65 + } + $0 = 117932; + label$66 : while (1) { + $5 = HEAP32[$0 >> 2] | 0; + $8 = HEAP32[($0 + 4 | 0) >> 2] | 0; + if (($7 | 0) == ($5 + $8 | 0 | 0)) { + break label$64 + } + $0 = HEAP32[($0 + 8 | 0) >> 2] | 0; + if ($0) { + continue label$66 + } + break label$11; + }; + } + label$67 : { + label$68 : { + $0 = HEAP32[(0 + 117500 | 0) >> 2] | 0; + if (!$0) { + break label$68 + } + if ($7 >>> 0 >= $0 >>> 0) { + break label$67 + } + } + HEAP32[(0 + 117500 | 0) >> 2] = $7; + } + $0 = 0; + HEAP32[(0 + 117936 | 0) >> 2] = $2; + HEAP32[(0 + 117932 | 0) >> 2] = $7; + HEAP32[(0 + 117516 | 0) >> 2] = -1; + HEAP32[(0 + 117520 | 0) >> 2] = HEAP32[(0 + 117956 | 0) >> 2] | 0; + HEAP32[(0 + 117944 | 0) >> 2] = 0; + label$69 : while (1) { + $4 = $0 << 3 | 0; + $5 = $4 + 117524 | 0; + HEAP32[($4 + 117532 | 0) >> 2] = $5; + HEAP32[($4 + 117536 | 0) >> 2] = $5; + $0 = $0 + 1 | 0; + if (($0 | 0) != (32 | 0)) { + continue label$69 + } + break label$69; + }; + $0 = $2 + -40 | 0; + $4 = ($7 + 8 | 0) & 7 | 0 ? (-8 - $7 | 0) & 7 | 0 : 0; + $5 = $0 - $4 | 0; + HEAP32[(0 + 117496 | 0) >> 2] = $5; + $4 = $7 + $4 | 0; + HEAP32[(0 + 117508 | 0) >> 2] = $4; + HEAP32[($4 + 4 | 0) >> 2] = $5 | 1 | 0; + HEAP32[(($7 + $0 | 0) + 4 | 0) >> 2] = 40; + HEAP32[(0 + 117512 | 0) >> 2] = HEAP32[(0 + 117972 | 0) >> 2] | 0; + break label$10; + } + if ($4 >>> 0 >= $7 >>> 0) { + break label$11 + } + if ($4 >>> 0 < $5 >>> 0) { + break label$11 + } + if ((HEAP32[($0 + 12 | 0) >> 2] | 0) & 8 | 0) { + break label$11 + } + HEAP32[($0 + 4 | 0) >> 2] = $8 + $2 | 0; + $0 = ($4 + 8 | 0) & 7 | 0 ? (-8 - $4 | 0) & 7 | 0 : 0; + $5 = $4 + $0 | 0; + HEAP32[(0 + 117508 | 0) >> 2] = $5; + $7 = (HEAP32[(0 + 117496 | 0) >> 2] | 0) + $2 | 0; + $0 = $7 - $0 | 0; + HEAP32[(0 + 117496 | 0) >> 2] = $0; + HEAP32[($5 + 4 | 0) >> 2] = $0 | 1 | 0; + HEAP32[(($4 + $7 | 0) + 4 | 0) >> 2] = 40; + HEAP32[(0 + 117512 | 0) >> 2] = HEAP32[(0 + 117972 | 0) >> 2] | 0; + break label$10; + } + $8 = 0; + break label$2; + } + $7 = 0; + break label$3; + } + label$70 : { + $8 = HEAP32[(0 + 117500 | 0) >> 2] | 0; + if ($7 >>> 0 >= $8 >>> 0) { + break label$70 + } + HEAP32[(0 + 117500 | 0) >> 2] = $7; + $8 = $7; + } + $5 = $7 + $2 | 0; + $0 = 117932; + label$71 : { + label$72 : { + label$73 : { + label$74 : { + label$75 : while (1) { + if ((HEAP32[$0 >> 2] | 0 | 0) == ($5 | 0)) { + break label$74 + } + $0 = HEAP32[($0 + 8 | 0) >> 2] | 0; + if ($0) { + continue label$75 + } + break label$73; + }; + } + if (!((HEAPU8[($0 + 12 | 0) >> 0] | 0) & 8 | 0)) { + break label$72 + } + } + $0 = 117932; + label$76 : while (1) { + label$77 : { + $5 = HEAP32[$0 >> 2] | 0; + if ($5 >>> 0 > $4 >>> 0) { + break label$77 + } + $5 = $5 + (HEAP32[($0 + 4 | 0) >> 2] | 0) | 0; + if ($5 >>> 0 > $4 >>> 0) { + break label$71 + } + } + $0 = HEAP32[($0 + 8 | 0) >> 2] | 0; + continue label$76; + }; + } + HEAP32[$0 >> 2] = $7; + HEAP32[($0 + 4 | 0) >> 2] = (HEAP32[($0 + 4 | 0) >> 2] | 0) + $2 | 0; + $11 = $7 + (($7 + 8 | 0) & 7 | 0 ? (-8 - $7 | 0) & 7 | 0 : 0) | 0; + HEAP32[($11 + 4 | 0) >> 2] = $3 | 3 | 0; + $2 = $5 + (($5 + 8 | 0) & 7 | 0 ? (-8 - $5 | 0) & 7 | 0 : 0) | 0; + $3 = $11 + $3 | 0; + $0 = $2 - $3 | 0; + label$78 : { + if (($2 | 0) != ($4 | 0)) { + break label$78 + } + HEAP32[(0 + 117508 | 0) >> 2] = $3; + $0 = (HEAP32[(0 + 117496 | 0) >> 2] | 0) + $0 | 0; + HEAP32[(0 + 117496 | 0) >> 2] = $0; + HEAP32[($3 + 4 | 0) >> 2] = $0 | 1 | 0; + break label$4; + } + label$79 : { + if (($2 | 0) != (HEAP32[(0 + 117504 | 0) >> 2] | 0 | 0)) { + break label$79 + } + HEAP32[(0 + 117504 | 0) >> 2] = $3; + $0 = (HEAP32[(0 + 117492 | 0) >> 2] | 0) + $0 | 0; + HEAP32[(0 + 117492 | 0) >> 2] = $0; + HEAP32[($3 + 4 | 0) >> 2] = $0 | 1 | 0; + HEAP32[($3 + $0 | 0) >> 2] = $0; + break label$4; + } + $4 = HEAP32[($2 + 4 | 0) >> 2] | 0; + if (($4 & 3 | 0 | 0) != (1 | 0)) { + break label$5 + } + $6 = $4 & -8 | 0; + label$80 : { + if ($4 >>> 0 > 255 >>> 0) { + break label$80 + } + $5 = HEAP32[($2 + 8 | 0) >> 2] | 0; + $8 = $4 >>> 3 | 0; + $7 = ($8 << 3 | 0) + 117524 | 0; + label$81 : { + $4 = HEAP32[($2 + 12 | 0) >> 2] | 0; + if (($4 | 0) != ($5 | 0)) { + break label$81 + } + (wasm2js_i32$0 = 0, wasm2js_i32$1 = (HEAP32[(0 + 117484 | 0) >> 2] | 0) & (__wasm_rotl_i32(-2 | 0, $8 | 0) | 0) | 0), HEAP32[(wasm2js_i32$0 + 117484 | 0) >> 2] = wasm2js_i32$1; + break label$6; + } + HEAP32[($5 + 12 | 0) >> 2] = $4; + HEAP32[($4 + 8 | 0) >> 2] = $5; + break label$6; + } + $9 = HEAP32[($2 + 24 | 0) >> 2] | 0; + label$82 : { + $7 = HEAP32[($2 + 12 | 0) >> 2] | 0; + if (($7 | 0) == ($2 | 0)) { + break label$82 + } + $4 = HEAP32[($2 + 8 | 0) >> 2] | 0; + HEAP32[($4 + 12 | 0) >> 2] = $7; + HEAP32[($7 + 8 | 0) >> 2] = $4; + break label$7; + } + label$83 : { + $5 = $2 + 20 | 0; + $4 = HEAP32[$5 >> 2] | 0; + if ($4) { + break label$83 + } + $4 = HEAP32[($2 + 16 | 0) >> 2] | 0; + if (!$4) { + break label$8 + } + $5 = $2 + 16 | 0; + } + label$84 : while (1) { + $8 = $5; + $7 = $4; + $5 = $4 + 20 | 0; + $4 = HEAP32[$5 >> 2] | 0; + if ($4) { + continue label$84 + } + $5 = $7 + 16 | 0; + $4 = HEAP32[($7 + 16 | 0) >> 2] | 0; + if ($4) { + continue label$84 + } + break label$84; + }; + HEAP32[$8 >> 2] = 0; + break label$7; + } + $0 = $2 + -40 | 0; + $8 = ($7 + 8 | 0) & 7 | 0 ? (-8 - $7 | 0) & 7 | 0 : 0; + $11 = $0 - $8 | 0; + HEAP32[(0 + 117496 | 0) >> 2] = $11; + $8 = $7 + $8 | 0; + HEAP32[(0 + 117508 | 0) >> 2] = $8; + HEAP32[($8 + 4 | 0) >> 2] = $11 | 1 | 0; + HEAP32[(($7 + $0 | 0) + 4 | 0) >> 2] = 40; + HEAP32[(0 + 117512 | 0) >> 2] = HEAP32[(0 + 117972 | 0) >> 2] | 0; + $0 = ($5 + (($5 + -39 | 0) & 7 | 0 ? (39 - $5 | 0) & 7 | 0 : 0) | 0) + -47 | 0; + $8 = $0 >>> 0 < ($4 + 16 | 0) >>> 0 ? $4 : $0; + HEAP32[($8 + 4 | 0) >> 2] = 27; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 117940 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 117944 | 0) >> 2] | 0; + $945 = i64toi32_i32$0; + i64toi32_i32$0 = $8 + 16 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $945; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 117932 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 117936 | 0) >> 2] | 0; + $947 = i64toi32_i32$1; + i64toi32_i32$1 = $8; + HEAP32[($8 + 8 | 0) >> 2] = $947; + HEAP32[($8 + 12 | 0) >> 2] = i64toi32_i32$0; + HEAP32[(0 + 117940 | 0) >> 2] = $8 + 8 | 0; + HEAP32[(0 + 117936 | 0) >> 2] = $2; + HEAP32[(0 + 117932 | 0) >> 2] = $7; + HEAP32[(0 + 117944 | 0) >> 2] = 0; + $0 = $8 + 24 | 0; + label$85 : while (1) { + HEAP32[($0 + 4 | 0) >> 2] = 7; + $7 = $0 + 8 | 0; + $0 = $0 + 4 | 0; + if ($7 >>> 0 < $5 >>> 0) { + continue label$85 + } + break label$85; + }; + if (($8 | 0) == ($4 | 0)) { + break label$10 + } + HEAP32[($8 + 4 | 0) >> 2] = (HEAP32[($8 + 4 | 0) >> 2] | 0) & -2 | 0; + $7 = $8 - $4 | 0; + HEAP32[($4 + 4 | 0) >> 2] = $7 | 1 | 0; + HEAP32[$8 >> 2] = $7; + label$86 : { + if ($7 >>> 0 > 255 >>> 0) { + break label$86 + } + $0 = ($7 & -8 | 0) + 117524 | 0; + label$87 : { + label$88 : { + $5 = HEAP32[(0 + 117484 | 0) >> 2] | 0; + $7 = 1 << ($7 >>> 3 | 0) | 0; + if ($5 & $7 | 0) { + break label$88 + } + HEAP32[(0 + 117484 | 0) >> 2] = $5 | $7 | 0; + $5 = $0; + break label$87; + } + $5 = HEAP32[($0 + 8 | 0) >> 2] | 0; + } + HEAP32[($0 + 8 | 0) >> 2] = $4; + HEAP32[($5 + 12 | 0) >> 2] = $4; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $5; + break label$10; + } + $0 = 31; + label$89 : { + if ($7 >>> 0 > 16777215 >>> 0) { + break label$89 + } + $0 = Math_clz32($7 >>> 8 | 0); + $0 = ((($7 >>> (38 - $0 | 0) | 0) & 1 | 0) - ($0 << 1 | 0) | 0) + 62 | 0; + } + HEAP32[($4 + 28 | 0) >> 2] = $0; + i64toi32_i32$1 = $4; + i64toi32_i32$0 = 0; + HEAP32[($4 + 16 | 0) >> 2] = 0; + HEAP32[($4 + 20 | 0) >> 2] = i64toi32_i32$0; + $5 = ($0 << 2 | 0) + 117788 | 0; + label$90 : { + label$91 : { + label$92 : { + $8 = HEAP32[(0 + 117488 | 0) >> 2] | 0; + $2 = 1 << $0 | 0; + if ($8 & $2 | 0) { + break label$92 + } + HEAP32[(0 + 117488 | 0) >> 2] = $8 | $2 | 0; + HEAP32[$5 >> 2] = $4; + HEAP32[($4 + 24 | 0) >> 2] = $5; + break label$91; + } + $0 = $7 << (($0 | 0) == (31 | 0) ? 0 : 25 - ($0 >>> 1 | 0) | 0) | 0; + $8 = HEAP32[$5 >> 2] | 0; + label$93 : while (1) { + $5 = $8; + if (((HEAP32[($5 + 4 | 0) >> 2] | 0) & -8 | 0 | 0) == ($7 | 0)) { + break label$90 + } + $8 = $0 >>> 29 | 0; + $0 = $0 << 1 | 0; + $2 = ($5 + ($8 & 4 | 0) | 0) + 16 | 0; + $8 = HEAP32[$2 >> 2] | 0; + if ($8) { + continue label$93 + } + break label$93; + }; + HEAP32[$2 >> 2] = $4; + HEAP32[($4 + 24 | 0) >> 2] = $5; + } + HEAP32[($4 + 12 | 0) >> 2] = $4; + HEAP32[($4 + 8 | 0) >> 2] = $4; + break label$10; + } + $0 = HEAP32[($5 + 8 | 0) >> 2] | 0; + HEAP32[($0 + 12 | 0) >> 2] = $4; + HEAP32[($5 + 8 | 0) >> 2] = $4; + HEAP32[($4 + 24 | 0) >> 2] = 0; + HEAP32[($4 + 12 | 0) >> 2] = $5; + HEAP32[($4 + 8 | 0) >> 2] = $0; + } + $0 = HEAP32[(0 + 117496 | 0) >> 2] | 0; + if ($0 >>> 0 <= $3 >>> 0) { + break label$9 + } + $4 = $0 - $3 | 0; + HEAP32[(0 + 117496 | 0) >> 2] = $4; + $0 = HEAP32[(0 + 117508 | 0) >> 2] | 0; + $5 = $0 + $3 | 0; + HEAP32[(0 + 117508 | 0) >> 2] = $5; + HEAP32[($5 + 4 | 0) >> 2] = $4 | 1 | 0; + HEAP32[($0 + 4 | 0) >> 2] = $3 | 3 | 0; + $0 = $0 + 8 | 0; + break label$1; + } + (wasm2js_i32$0 = __errno_location() | 0, wasm2js_i32$1 = 48), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + $0 = 0; + break label$1; + } + $7 = 0; + } + if (!$9) { + break label$6 + } + label$94 : { + label$95 : { + $5 = HEAP32[($2 + 28 | 0) >> 2] | 0; + $4 = ($5 << 2 | 0) + 117788 | 0; + if (($2 | 0) != (HEAP32[$4 >> 2] | 0 | 0)) { + break label$95 + } + HEAP32[$4 >> 2] = $7; + if ($7) { + break label$94 + } + (wasm2js_i32$0 = 0, wasm2js_i32$1 = (HEAP32[(0 + 117488 | 0) >> 2] | 0) & (__wasm_rotl_i32(-2 | 0, $5 | 0) | 0) | 0), HEAP32[(wasm2js_i32$0 + 117488 | 0) >> 2] = wasm2js_i32$1; + break label$6; + } + HEAP32[($9 + ((HEAP32[($9 + 16 | 0) >> 2] | 0 | 0) == ($2 | 0) ? 16 : 20) | 0) >> 2] = $7; + if (!$7) { + break label$6 + } + } + HEAP32[($7 + 24 | 0) >> 2] = $9; + label$96 : { + $4 = HEAP32[($2 + 16 | 0) >> 2] | 0; + if (!$4) { + break label$96 + } + HEAP32[($7 + 16 | 0) >> 2] = $4; + HEAP32[($4 + 24 | 0) >> 2] = $7; + } + $4 = HEAP32[($2 + 20 | 0) >> 2] | 0; + if (!$4) { + break label$6 + } + HEAP32[($7 + 20 | 0) >> 2] = $4; + HEAP32[($4 + 24 | 0) >> 2] = $7; + } + $0 = $6 + $0 | 0; + $2 = $2 + $6 | 0; + $4 = HEAP32[($2 + 4 | 0) >> 2] | 0; + } + HEAP32[($2 + 4 | 0) >> 2] = $4 & -2 | 0; + HEAP32[($3 + 4 | 0) >> 2] = $0 | 1 | 0; + HEAP32[($3 + $0 | 0) >> 2] = $0; + label$97 : { + if ($0 >>> 0 > 255 >>> 0) { + break label$97 + } + $4 = ($0 & -8 | 0) + 117524 | 0; + label$98 : { + label$99 : { + $5 = HEAP32[(0 + 117484 | 0) >> 2] | 0; + $0 = 1 << ($0 >>> 3 | 0) | 0; + if ($5 & $0 | 0) { + break label$99 + } + HEAP32[(0 + 117484 | 0) >> 2] = $5 | $0 | 0; + $0 = $4; + break label$98; + } + $0 = HEAP32[($4 + 8 | 0) >> 2] | 0; + } + HEAP32[($4 + 8 | 0) >> 2] = $3; + HEAP32[($0 + 12 | 0) >> 2] = $3; + HEAP32[($3 + 12 | 0) >> 2] = $4; + HEAP32[($3 + 8 | 0) >> 2] = $0; + break label$4; + } + $4 = 31; + label$100 : { + if ($0 >>> 0 > 16777215 >>> 0) { + break label$100 + } + $4 = Math_clz32($0 >>> 8 | 0); + $4 = ((($0 >>> (38 - $4 | 0) | 0) & 1 | 0) - ($4 << 1 | 0) | 0) + 62 | 0; + } + HEAP32[($3 + 28 | 0) >> 2] = $4; + i64toi32_i32$1 = $3; + i64toi32_i32$0 = 0; + HEAP32[($3 + 16 | 0) >> 2] = 0; + HEAP32[($3 + 20 | 0) >> 2] = i64toi32_i32$0; + $5 = ($4 << 2 | 0) + 117788 | 0; + label$101 : { + label$102 : { + label$103 : { + $7 = HEAP32[(0 + 117488 | 0) >> 2] | 0; + $8 = 1 << $4 | 0; + if ($7 & $8 | 0) { + break label$103 + } + HEAP32[(0 + 117488 | 0) >> 2] = $7 | $8 | 0; + HEAP32[$5 >> 2] = $3; + HEAP32[($3 + 24 | 0) >> 2] = $5; + break label$102; + } + $4 = $0 << (($4 | 0) == (31 | 0) ? 0 : 25 - ($4 >>> 1 | 0) | 0) | 0; + $7 = HEAP32[$5 >> 2] | 0; + label$104 : while (1) { + $5 = $7; + if (((HEAP32[($7 + 4 | 0) >> 2] | 0) & -8 | 0 | 0) == ($0 | 0)) { + break label$101 + } + $7 = $4 >>> 29 | 0; + $4 = $4 << 1 | 0; + $8 = ($5 + ($7 & 4 | 0) | 0) + 16 | 0; + $7 = HEAP32[$8 >> 2] | 0; + if ($7) { + continue label$104 + } + break label$104; + }; + HEAP32[$8 >> 2] = $3; + HEAP32[($3 + 24 | 0) >> 2] = $5; + } + HEAP32[($3 + 12 | 0) >> 2] = $3; + HEAP32[($3 + 8 | 0) >> 2] = $3; + break label$4; + } + $0 = HEAP32[($5 + 8 | 0) >> 2] | 0; + HEAP32[($0 + 12 | 0) >> 2] = $3; + HEAP32[($5 + 8 | 0) >> 2] = $3; + HEAP32[($3 + 24 | 0) >> 2] = 0; + HEAP32[($3 + 12 | 0) >> 2] = $5; + HEAP32[($3 + 8 | 0) >> 2] = $0; + } + $0 = $11 + 8 | 0; + break label$1; + } + label$105 : { + if (!$11) { + break label$105 + } + label$106 : { + label$107 : { + $5 = HEAP32[($8 + 28 | 0) >> 2] | 0; + $0 = ($5 << 2 | 0) + 117788 | 0; + if (($8 | 0) != (HEAP32[$0 >> 2] | 0 | 0)) { + break label$107 + } + HEAP32[$0 >> 2] = $7; + if ($7) { + break label$106 + } + $6 = $6 & (__wasm_rotl_i32(-2 | 0, $5 | 0) | 0) | 0; + HEAP32[(0 + 117488 | 0) >> 2] = $6; + break label$105; + } + HEAP32[($11 + ((HEAP32[($11 + 16 | 0) >> 2] | 0 | 0) == ($8 | 0) ? 16 : 20) | 0) >> 2] = $7; + if (!$7) { + break label$105 + } + } + HEAP32[($7 + 24 | 0) >> 2] = $11; + label$108 : { + $0 = HEAP32[($8 + 16 | 0) >> 2] | 0; + if (!$0) { + break label$108 + } + HEAP32[($7 + 16 | 0) >> 2] = $0; + HEAP32[($0 + 24 | 0) >> 2] = $7; + } + $0 = HEAP32[($8 + 20 | 0) >> 2] | 0; + if (!$0) { + break label$105 + } + HEAP32[($7 + 20 | 0) >> 2] = $0; + HEAP32[($0 + 24 | 0) >> 2] = $7; + } + label$109 : { + label$110 : { + if ($4 >>> 0 > 15 >>> 0) { + break label$110 + } + $0 = $4 + $3 | 0; + HEAP32[($8 + 4 | 0) >> 2] = $0 | 3 | 0; + $0 = $8 + $0 | 0; + HEAP32[($0 + 4 | 0) >> 2] = HEAP32[($0 + 4 | 0) >> 2] | 0 | 1 | 0; + break label$109; + } + HEAP32[($8 + 4 | 0) >> 2] = $3 | 3 | 0; + $7 = $8 + $3 | 0; + HEAP32[($7 + 4 | 0) >> 2] = $4 | 1 | 0; + HEAP32[($7 + $4 | 0) >> 2] = $4; + label$111 : { + if ($4 >>> 0 > 255 >>> 0) { + break label$111 + } + $0 = ($4 & -8 | 0) + 117524 | 0; + label$112 : { + label$113 : { + $5 = HEAP32[(0 + 117484 | 0) >> 2] | 0; + $4 = 1 << ($4 >>> 3 | 0) | 0; + if ($5 & $4 | 0) { + break label$113 + } + HEAP32[(0 + 117484 | 0) >> 2] = $5 | $4 | 0; + $4 = $0; + break label$112; + } + $4 = HEAP32[($0 + 8 | 0) >> 2] | 0; + } + HEAP32[($0 + 8 | 0) >> 2] = $7; + HEAP32[($4 + 12 | 0) >> 2] = $7; + HEAP32[($7 + 12 | 0) >> 2] = $0; + HEAP32[($7 + 8 | 0) >> 2] = $4; + break label$109; + } + $0 = 31; + label$114 : { + if ($4 >>> 0 > 16777215 >>> 0) { + break label$114 + } + $0 = Math_clz32($4 >>> 8 | 0); + $0 = ((($4 >>> (38 - $0 | 0) | 0) & 1 | 0) - ($0 << 1 | 0) | 0) + 62 | 0; + } + HEAP32[($7 + 28 | 0) >> 2] = $0; + i64toi32_i32$1 = $7; + i64toi32_i32$0 = 0; + HEAP32[($7 + 16 | 0) >> 2] = 0; + HEAP32[($7 + 20 | 0) >> 2] = i64toi32_i32$0; + $5 = ($0 << 2 | 0) + 117788 | 0; + label$115 : { + label$116 : { + label$117 : { + $3 = 1 << $0 | 0; + if ($6 & $3 | 0) { + break label$117 + } + HEAP32[(0 + 117488 | 0) >> 2] = $6 | $3 | 0; + HEAP32[$5 >> 2] = $7; + HEAP32[($7 + 24 | 0) >> 2] = $5; + break label$116; + } + $0 = $4 << (($0 | 0) == (31 | 0) ? 0 : 25 - ($0 >>> 1 | 0) | 0) | 0; + $3 = HEAP32[$5 >> 2] | 0; + label$118 : while (1) { + $5 = $3; + if (((HEAP32[($5 + 4 | 0) >> 2] | 0) & -8 | 0 | 0) == ($4 | 0)) { + break label$115 + } + $3 = $0 >>> 29 | 0; + $0 = $0 << 1 | 0; + $2 = ($5 + ($3 & 4 | 0) | 0) + 16 | 0; + $3 = HEAP32[$2 >> 2] | 0; + if ($3) { + continue label$118 + } + break label$118; + }; + HEAP32[$2 >> 2] = $7; + HEAP32[($7 + 24 | 0) >> 2] = $5; + } + HEAP32[($7 + 12 | 0) >> 2] = $7; + HEAP32[($7 + 8 | 0) >> 2] = $7; + break label$109; + } + $0 = HEAP32[($5 + 8 | 0) >> 2] | 0; + HEAP32[($0 + 12 | 0) >> 2] = $7; + HEAP32[($5 + 8 | 0) >> 2] = $7; + HEAP32[($7 + 24 | 0) >> 2] = 0; + HEAP32[($7 + 12 | 0) >> 2] = $5; + HEAP32[($7 + 8 | 0) >> 2] = $0; + } + $0 = $8 + 8 | 0; + break label$1; + } + label$119 : { + if (!$10) { + break label$119 + } + label$120 : { + label$121 : { + $5 = HEAP32[($7 + 28 | 0) >> 2] | 0; + $0 = ($5 << 2 | 0) + 117788 | 0; + if (($7 | 0) != (HEAP32[$0 >> 2] | 0 | 0)) { + break label$121 + } + HEAP32[$0 >> 2] = $8; + if ($8) { + break label$120 + } + (wasm2js_i32$0 = 0, wasm2js_i32$1 = $9 & (__wasm_rotl_i32(-2 | 0, $5 | 0) | 0) | 0), HEAP32[(wasm2js_i32$0 + 117488 | 0) >> 2] = wasm2js_i32$1; + break label$119; + } + HEAP32[($10 + ((HEAP32[($10 + 16 | 0) >> 2] | 0 | 0) == ($7 | 0) ? 16 : 20) | 0) >> 2] = $8; + if (!$8) { + break label$119 + } + } + HEAP32[($8 + 24 | 0) >> 2] = $10; + label$122 : { + $0 = HEAP32[($7 + 16 | 0) >> 2] | 0; + if (!$0) { + break label$122 + } + HEAP32[($8 + 16 | 0) >> 2] = $0; + HEAP32[($0 + 24 | 0) >> 2] = $8; + } + $0 = HEAP32[($7 + 20 | 0) >> 2] | 0; + if (!$0) { + break label$119 + } + HEAP32[($8 + 20 | 0) >> 2] = $0; + HEAP32[($0 + 24 | 0) >> 2] = $8; + } + label$123 : { + label$124 : { + if ($4 >>> 0 > 15 >>> 0) { + break label$124 + } + $0 = $4 + $3 | 0; + HEAP32[($7 + 4 | 0) >> 2] = $0 | 3 | 0; + $0 = $7 + $0 | 0; + HEAP32[($0 + 4 | 0) >> 2] = HEAP32[($0 + 4 | 0) >> 2] | 0 | 1 | 0; + break label$123; + } + HEAP32[($7 + 4 | 0) >> 2] = $3 | 3 | 0; + $5 = $7 + $3 | 0; + HEAP32[($5 + 4 | 0) >> 2] = $4 | 1 | 0; + HEAP32[($5 + $4 | 0) >> 2] = $4; + label$125 : { + if (!$6) { + break label$125 + } + $3 = ($6 & -8 | 0) + 117524 | 0; + $0 = HEAP32[(0 + 117504 | 0) >> 2] | 0; + label$126 : { + label$127 : { + $8 = 1 << ($6 >>> 3 | 0) | 0; + if ($8 & $2 | 0) { + break label$127 + } + HEAP32[(0 + 117484 | 0) >> 2] = $8 | $2 | 0; + $8 = $3; + break label$126; + } + $8 = HEAP32[($3 + 8 | 0) >> 2] | 0; + } + HEAP32[($3 + 8 | 0) >> 2] = $0; + HEAP32[($8 + 12 | 0) >> 2] = $0; + HEAP32[($0 + 12 | 0) >> 2] = $3; + HEAP32[($0 + 8 | 0) >> 2] = $8; + } + HEAP32[(0 + 117504 | 0) >> 2] = $5; + HEAP32[(0 + 117492 | 0) >> 2] = $4; + } + $0 = $7 + 8 | 0; + } + __stack_pointer = $1 + 16 | 0; + return $0 | 0; + } + + function dlfree($0) { + $0 = $0 | 0; + var $2 = 0, $1 = 0, $6 = 0, $4 = 0, $3 = 0, $5 = 0, $7 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + label$1 : { + if (!$0) { + break label$1 + } + $1 = $0 + -8 | 0; + $2 = HEAP32[($0 + -4 | 0) >> 2] | 0; + $0 = $2 & -8 | 0; + $3 = $1 + $0 | 0; + label$2 : { + if ($2 & 1 | 0) { + break label$2 + } + if (!($2 & 3 | 0)) { + break label$1 + } + $2 = HEAP32[$1 >> 2] | 0; + $1 = $1 - $2 | 0; + $4 = HEAP32[(0 + 117500 | 0) >> 2] | 0; + if ($1 >>> 0 < $4 >>> 0) { + break label$1 + } + $0 = $2 + $0 | 0; + label$3 : { + label$4 : { + label$5 : { + if (($1 | 0) == (HEAP32[(0 + 117504 | 0) >> 2] | 0 | 0)) { + break label$5 + } + label$6 : { + if ($2 >>> 0 > 255 >>> 0) { + break label$6 + } + $4 = HEAP32[($1 + 8 | 0) >> 2] | 0; + $5 = $2 >>> 3 | 0; + $6 = ($5 << 3 | 0) + 117524 | 0; + label$7 : { + $2 = HEAP32[($1 + 12 | 0) >> 2] | 0; + if (($2 | 0) != ($4 | 0)) { + break label$7 + } + (wasm2js_i32$0 = 0, wasm2js_i32$1 = (HEAP32[(0 + 117484 | 0) >> 2] | 0) & (__wasm_rotl_i32(-2 | 0, $5 | 0) | 0) | 0), HEAP32[(wasm2js_i32$0 + 117484 | 0) >> 2] = wasm2js_i32$1; + break label$2; + } + HEAP32[($4 + 12 | 0) >> 2] = $2; + HEAP32[($2 + 8 | 0) >> 2] = $4; + break label$2; + } + $7 = HEAP32[($1 + 24 | 0) >> 2] | 0; + label$8 : { + $6 = HEAP32[($1 + 12 | 0) >> 2] | 0; + if (($6 | 0) == ($1 | 0)) { + break label$8 + } + $2 = HEAP32[($1 + 8 | 0) >> 2] | 0; + HEAP32[($2 + 12 | 0) >> 2] = $6; + HEAP32[($6 + 8 | 0) >> 2] = $2; + break label$3; + } + label$9 : { + $4 = $1 + 20 | 0; + $2 = HEAP32[$4 >> 2] | 0; + if ($2) { + break label$9 + } + $2 = HEAP32[($1 + 16 | 0) >> 2] | 0; + if (!$2) { + break label$4 + } + $4 = $1 + 16 | 0; + } + label$10 : while (1) { + $5 = $4; + $6 = $2; + $4 = $2 + 20 | 0; + $2 = HEAP32[$4 >> 2] | 0; + if ($2) { + continue label$10 + } + $4 = $6 + 16 | 0; + $2 = HEAP32[($6 + 16 | 0) >> 2] | 0; + if ($2) { + continue label$10 + } + break label$10; + }; + HEAP32[$5 >> 2] = 0; + break label$3; + } + $2 = HEAP32[($3 + 4 | 0) >> 2] | 0; + if (($2 & 3 | 0 | 0) != (3 | 0)) { + break label$2 + } + HEAP32[(0 + 117492 | 0) >> 2] = $0; + HEAP32[($3 + 4 | 0) >> 2] = $2 & -2 | 0; + HEAP32[($1 + 4 | 0) >> 2] = $0 | 1 | 0; + HEAP32[$3 >> 2] = $0; + return; + } + $6 = 0; + } + if (!$7) { + break label$2 + } + label$11 : { + label$12 : { + $4 = HEAP32[($1 + 28 | 0) >> 2] | 0; + $2 = ($4 << 2 | 0) + 117788 | 0; + if (($1 | 0) != (HEAP32[$2 >> 2] | 0 | 0)) { + break label$12 + } + HEAP32[$2 >> 2] = $6; + if ($6) { + break label$11 + } + (wasm2js_i32$0 = 0, wasm2js_i32$1 = (HEAP32[(0 + 117488 | 0) >> 2] | 0) & (__wasm_rotl_i32(-2 | 0, $4 | 0) | 0) | 0), HEAP32[(wasm2js_i32$0 + 117488 | 0) >> 2] = wasm2js_i32$1; + break label$2; + } + HEAP32[($7 + ((HEAP32[($7 + 16 | 0) >> 2] | 0 | 0) == ($1 | 0) ? 16 : 20) | 0) >> 2] = $6; + if (!$6) { + break label$2 + } + } + HEAP32[($6 + 24 | 0) >> 2] = $7; + label$13 : { + $2 = HEAP32[($1 + 16 | 0) >> 2] | 0; + if (!$2) { + break label$13 + } + HEAP32[($6 + 16 | 0) >> 2] = $2; + HEAP32[($2 + 24 | 0) >> 2] = $6; + } + $2 = HEAP32[($1 + 20 | 0) >> 2] | 0; + if (!$2) { + break label$2 + } + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($2 + 24 | 0) >> 2] = $6; + } + if ($1 >>> 0 >= $3 >>> 0) { + break label$1 + } + $2 = HEAP32[($3 + 4 | 0) >> 2] | 0; + if (!($2 & 1 | 0)) { + break label$1 + } + label$14 : { + label$15 : { + label$16 : { + label$17 : { + label$18 : { + if ($2 & 2 | 0) { + break label$18 + } + label$19 : { + if (($3 | 0) != (HEAP32[(0 + 117508 | 0) >> 2] | 0 | 0)) { + break label$19 + } + HEAP32[(0 + 117508 | 0) >> 2] = $1; + $0 = (HEAP32[(0 + 117496 | 0) >> 2] | 0) + $0 | 0; + HEAP32[(0 + 117496 | 0) >> 2] = $0; + HEAP32[($1 + 4 | 0) >> 2] = $0 | 1 | 0; + if (($1 | 0) != (HEAP32[(0 + 117504 | 0) >> 2] | 0 | 0)) { + break label$1 + } + HEAP32[(0 + 117492 | 0) >> 2] = 0; + HEAP32[(0 + 117504 | 0) >> 2] = 0; + return; + } + label$20 : { + if (($3 | 0) != (HEAP32[(0 + 117504 | 0) >> 2] | 0 | 0)) { + break label$20 + } + HEAP32[(0 + 117504 | 0) >> 2] = $1; + $0 = (HEAP32[(0 + 117492 | 0) >> 2] | 0) + $0 | 0; + HEAP32[(0 + 117492 | 0) >> 2] = $0; + HEAP32[($1 + 4 | 0) >> 2] = $0 | 1 | 0; + HEAP32[($1 + $0 | 0) >> 2] = $0; + return; + } + $0 = ($2 & -8 | 0) + $0 | 0; + label$21 : { + if ($2 >>> 0 > 255 >>> 0) { + break label$21 + } + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + $5 = $2 >>> 3 | 0; + $6 = ($5 << 3 | 0) + 117524 | 0; + label$22 : { + $2 = HEAP32[($3 + 12 | 0) >> 2] | 0; + if (($2 | 0) != ($4 | 0)) { + break label$22 + } + (wasm2js_i32$0 = 0, wasm2js_i32$1 = (HEAP32[(0 + 117484 | 0) >> 2] | 0) & (__wasm_rotl_i32(-2 | 0, $5 | 0) | 0) | 0), HEAP32[(wasm2js_i32$0 + 117484 | 0) >> 2] = wasm2js_i32$1; + break label$15; + } + HEAP32[($4 + 12 | 0) >> 2] = $2; + HEAP32[($2 + 8 | 0) >> 2] = $4; + break label$15; + } + $7 = HEAP32[($3 + 24 | 0) >> 2] | 0; + label$23 : { + $6 = HEAP32[($3 + 12 | 0) >> 2] | 0; + if (($6 | 0) == ($3 | 0)) { + break label$23 + } + $2 = HEAP32[($3 + 8 | 0) >> 2] | 0; + HEAP32[(0 + 117500 | 0) >> 2] | 0; + HEAP32[($2 + 12 | 0) >> 2] = $6; + HEAP32[($6 + 8 | 0) >> 2] = $2; + break label$16; + } + label$24 : { + $4 = $3 + 20 | 0; + $2 = HEAP32[$4 >> 2] | 0; + if ($2) { + break label$24 + } + $2 = HEAP32[($3 + 16 | 0) >> 2] | 0; + if (!$2) { + break label$17 + } + $4 = $3 + 16 | 0; + } + label$25 : while (1) { + $5 = $4; + $6 = $2; + $4 = $2 + 20 | 0; + $2 = HEAP32[$4 >> 2] | 0; + if ($2) { + continue label$25 + } + $4 = $6 + 16 | 0; + $2 = HEAP32[($6 + 16 | 0) >> 2] | 0; + if ($2) { + continue label$25 + } + break label$25; + }; + HEAP32[$5 >> 2] = 0; + break label$16; + } + HEAP32[($3 + 4 | 0) >> 2] = $2 & -2 | 0; + HEAP32[($1 + 4 | 0) >> 2] = $0 | 1 | 0; + HEAP32[($1 + $0 | 0) >> 2] = $0; + break label$14; + } + $6 = 0; + } + if (!$7) { + break label$15 + } + label$26 : { + label$27 : { + $4 = HEAP32[($3 + 28 | 0) >> 2] | 0; + $2 = ($4 << 2 | 0) + 117788 | 0; + if (($3 | 0) != (HEAP32[$2 >> 2] | 0 | 0)) { + break label$27 + } + HEAP32[$2 >> 2] = $6; + if ($6) { + break label$26 + } + (wasm2js_i32$0 = 0, wasm2js_i32$1 = (HEAP32[(0 + 117488 | 0) >> 2] | 0) & (__wasm_rotl_i32(-2 | 0, $4 | 0) | 0) | 0), HEAP32[(wasm2js_i32$0 + 117488 | 0) >> 2] = wasm2js_i32$1; + break label$15; + } + HEAP32[($7 + ((HEAP32[($7 + 16 | 0) >> 2] | 0 | 0) == ($3 | 0) ? 16 : 20) | 0) >> 2] = $6; + if (!$6) { + break label$15 + } + } + HEAP32[($6 + 24 | 0) >> 2] = $7; + label$28 : { + $2 = HEAP32[($3 + 16 | 0) >> 2] | 0; + if (!$2) { + break label$28 + } + HEAP32[($6 + 16 | 0) >> 2] = $2; + HEAP32[($2 + 24 | 0) >> 2] = $6; + } + $2 = HEAP32[($3 + 20 | 0) >> 2] | 0; + if (!$2) { + break label$15 + } + HEAP32[($6 + 20 | 0) >> 2] = $2; + HEAP32[($2 + 24 | 0) >> 2] = $6; + } + HEAP32[($1 + 4 | 0) >> 2] = $0 | 1 | 0; + HEAP32[($1 + $0 | 0) >> 2] = $0; + if (($1 | 0) != (HEAP32[(0 + 117504 | 0) >> 2] | 0 | 0)) { + break label$14 + } + HEAP32[(0 + 117492 | 0) >> 2] = $0; + return; + } + label$29 : { + if ($0 >>> 0 > 255 >>> 0) { + break label$29 + } + $2 = ($0 & -8 | 0) + 117524 | 0; + label$30 : { + label$31 : { + $4 = HEAP32[(0 + 117484 | 0) >> 2] | 0; + $0 = 1 << ($0 >>> 3 | 0) | 0; + if ($4 & $0 | 0) { + break label$31 + } + HEAP32[(0 + 117484 | 0) >> 2] = $4 | $0 | 0; + $0 = $2; + break label$30; + } + $0 = HEAP32[($2 + 8 | 0) >> 2] | 0; + } + HEAP32[($2 + 8 | 0) >> 2] = $1; + HEAP32[($0 + 12 | 0) >> 2] = $1; + HEAP32[($1 + 12 | 0) >> 2] = $2; + HEAP32[($1 + 8 | 0) >> 2] = $0; + return; + } + $2 = 31; + label$32 : { + if ($0 >>> 0 > 16777215 >>> 0) { + break label$32 + } + $2 = Math_clz32($0 >>> 8 | 0); + $2 = ((($0 >>> (38 - $2 | 0) | 0) & 1 | 0) - ($2 << 1 | 0) | 0) + 62 | 0; + } + HEAP32[($1 + 28 | 0) >> 2] = $2; + HEAP32[($1 + 16 | 0) >> 2] = 0; + HEAP32[($1 + 20 | 0) >> 2] = 0; + $4 = ($2 << 2 | 0) + 117788 | 0; + label$33 : { + label$34 : { + label$35 : { + label$36 : { + $6 = HEAP32[(0 + 117488 | 0) >> 2] | 0; + $3 = 1 << $2 | 0; + if ($6 & $3 | 0) { + break label$36 + } + HEAP32[(0 + 117488 | 0) >> 2] = $6 | $3 | 0; + HEAP32[$4 >> 2] = $1; + HEAP32[($1 + 24 | 0) >> 2] = $4; + break label$35; + } + $2 = $0 << (($2 | 0) == (31 | 0) ? 0 : 25 - ($2 >>> 1 | 0) | 0) | 0; + $6 = HEAP32[$4 >> 2] | 0; + label$37 : while (1) { + $4 = $6; + if (((HEAP32[($6 + 4 | 0) >> 2] | 0) & -8 | 0 | 0) == ($0 | 0)) { + break label$34 + } + $6 = $2 >>> 29 | 0; + $2 = $2 << 1 | 0; + $3 = ($4 + ($6 & 4 | 0) | 0) + 16 | 0; + $6 = HEAP32[$3 >> 2] | 0; + if ($6) { + continue label$37 + } + break label$37; + }; + HEAP32[$3 >> 2] = $1; + HEAP32[($1 + 24 | 0) >> 2] = $4; + } + HEAP32[($1 + 12 | 0) >> 2] = $1; + HEAP32[($1 + 8 | 0) >> 2] = $1; + break label$33; + } + $0 = HEAP32[($4 + 8 | 0) >> 2] | 0; + HEAP32[($0 + 12 | 0) >> 2] = $1; + HEAP32[($4 + 8 | 0) >> 2] = $1; + HEAP32[($1 + 24 | 0) >> 2] = 0; + HEAP32[($1 + 12 | 0) >> 2] = $4; + HEAP32[($1 + 8 | 0) >> 2] = $0; + } + $1 = (HEAP32[(0 + 117516 | 0) >> 2] | 0) + -1 | 0; + HEAP32[(0 + 117516 | 0) >> 2] = $1 ? $1 : -1; + } + } + + function internal_memalign($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $2 = 0, $3 = 0, $6 = 0, $4 = 0, $5 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $2 = 16; + label$1 : { + label$2 : { + $3 = $0 >>> 0 > 16 >>> 0 ? $0 : 16; + if ($3 & ($3 + -1 | 0) | 0) { + break label$2 + } + $0 = $3; + break label$1; + } + label$3 : while (1) { + $0 = $2; + $2 = $0 << 1 | 0; + if ($0 >>> 0 < $3 >>> 0) { + continue label$3 + } + break label$3; + }; + } + label$4 : { + if ((-64 - $0 | 0) >>> 0 > $1 >>> 0) { + break label$4 + } + (wasm2js_i32$0 = __errno_location() | 0, wasm2js_i32$1 = 48), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + return 0 | 0; + } + label$5 : { + $1 = $1 >>> 0 < 11 >>> 0 ? 16 : ($1 + 11 | 0) & -8 | 0; + $2 = dlmalloc(($1 + $0 | 0) + 12 | 0 | 0) | 0; + if ($2) { + break label$5 + } + return 0 | 0; + } + $3 = $2 + -8 | 0; + label$6 : { + label$7 : { + if (($0 + -1 | 0) & $2 | 0) { + break label$7 + } + $0 = $3; + break label$6; + } + $4 = $2 + -4 | 0; + $5 = HEAP32[$4 >> 2] | 0; + $2 = ((($2 + $0 | 0) + -1 | 0) & (0 - $0 | 0) | 0) + -8 | 0; + $0 = $2 + (($2 - $3 | 0) >>> 0 > 15 >>> 0 ? 0 : $0) | 0; + $2 = $0 - $3 | 0; + $6 = ($5 & -8 | 0) - $2 | 0; + label$8 : { + if ($5 & 3 | 0) { + break label$8 + } + $3 = HEAP32[$3 >> 2] | 0; + HEAP32[($0 + 4 | 0) >> 2] = $6; + HEAP32[$0 >> 2] = $3 + $2 | 0; + break label$6; + } + HEAP32[($0 + 4 | 0) >> 2] = $6 | ((HEAP32[($0 + 4 | 0) >> 2] | 0) & 1 | 0) | 0 | 2 | 0; + $6 = $0 + $6 | 0; + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($6 + 4 | 0) >> 2] | 0 | 1 | 0; + HEAP32[$4 >> 2] = $2 | ((HEAP32[$4 >> 2] | 0) & 1 | 0) | 0 | 2 | 0; + $6 = $3 + $2 | 0; + HEAP32[($6 + 4 | 0) >> 2] = HEAP32[($6 + 4 | 0) >> 2] | 0 | 1 | 0; + dispose_chunk($3 | 0, $2 | 0); + } + label$9 : { + $2 = HEAP32[($0 + 4 | 0) >> 2] | 0; + if (!($2 & 3 | 0)) { + break label$9 + } + $3 = $2 & -8 | 0; + if ($3 >>> 0 <= ($1 + 16 | 0) >>> 0) { + break label$9 + } + HEAP32[($0 + 4 | 0) >> 2] = $1 | ($2 & 1 | 0) | 0 | 2 | 0; + $2 = $0 + $1 | 0; + $1 = $3 - $1 | 0; + HEAP32[($2 + 4 | 0) >> 2] = $1 | 3 | 0; + $3 = $0 + $3 | 0; + HEAP32[($3 + 4 | 0) >> 2] = HEAP32[($3 + 4 | 0) >> 2] | 0 | 1 | 0; + dispose_chunk($2 | 0, $1 | 0); + } + return $0 + 8 | 0 | 0; + } + + function dlposix_memalign($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $3 = 0, $4 = 0; + label$1 : { + label$2 : { + label$3 : { + if (($1 | 0) != (8 | 0)) { + break label$3 + } + $1 = dlmalloc($2 | 0) | 0; + break label$2; + } + $3 = 28; + if ($1 >>> 0 < 4 >>> 0) { + break label$1 + } + if ($1 & 3 | 0) { + break label$1 + } + $4 = $1 >>> 2 | 0; + if ($4 & ($4 + -1 | 0) | 0) { + break label$1 + } + $3 = 48; + if ((-64 - $1 | 0) >>> 0 < $2 >>> 0) { + break label$1 + } + $1 = internal_memalign(($1 >>> 0 > 16 >>> 0 ? $1 : 16) | 0, $2 | 0) | 0; + } + label$4 : { + if ($1) { + break label$4 + } + return 48 | 0; + } + HEAP32[$0 >> 2] = $1; + $3 = 0; + } + return $3 | 0; + } + + function dispose_chunk($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $3 = 0, $6 = 0, $4 = 0, $2 = 0, $5 = 0, $7 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $2 = $0 + $1 | 0; + label$1 : { + label$2 : { + $3 = HEAP32[($0 + 4 | 0) >> 2] | 0; + if ($3 & 1 | 0) { + break label$2 + } + if (!($3 & 3 | 0)) { + break label$1 + } + $3 = HEAP32[$0 >> 2] | 0; + $1 = $3 + $1 | 0; + label$3 : { + label$4 : { + label$5 : { + label$6 : { + $0 = $0 - $3 | 0; + if (($0 | 0) == (HEAP32[(0 + 117504 | 0) >> 2] | 0 | 0)) { + break label$6 + } + label$7 : { + if ($3 >>> 0 > 255 >>> 0) { + break label$7 + } + $4 = HEAP32[($0 + 8 | 0) >> 2] | 0; + $5 = $3 >>> 3 | 0; + $6 = ($5 << 3 | 0) + 117524 | 0; + $3 = HEAP32[($0 + 12 | 0) >> 2] | 0; + if (($3 | 0) != ($4 | 0)) { + break label$5 + } + (wasm2js_i32$0 = 0, wasm2js_i32$1 = (HEAP32[(0 + 117484 | 0) >> 2] | 0) & (__wasm_rotl_i32(-2 | 0, $5 | 0) | 0) | 0), HEAP32[(wasm2js_i32$0 + 117484 | 0) >> 2] = wasm2js_i32$1; + break label$2; + } + $7 = HEAP32[($0 + 24 | 0) >> 2] | 0; + label$8 : { + $6 = HEAP32[($0 + 12 | 0) >> 2] | 0; + if (($6 | 0) == ($0 | 0)) { + break label$8 + } + $3 = HEAP32[($0 + 8 | 0) >> 2] | 0; + HEAP32[(0 + 117500 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $6; + HEAP32[($6 + 8 | 0) >> 2] = $3; + break label$3; + } + label$9 : { + $4 = $0 + 20 | 0; + $3 = HEAP32[$4 >> 2] | 0; + if ($3) { + break label$9 + } + $3 = HEAP32[($0 + 16 | 0) >> 2] | 0; + if (!$3) { + break label$4 + } + $4 = $0 + 16 | 0; + } + label$10 : while (1) { + $5 = $4; + $6 = $3; + $4 = $3 + 20 | 0; + $3 = HEAP32[$4 >> 2] | 0; + if ($3) { + continue label$10 + } + $4 = $6 + 16 | 0; + $3 = HEAP32[($6 + 16 | 0) >> 2] | 0; + if ($3) { + continue label$10 + } + break label$10; + }; + HEAP32[$5 >> 2] = 0; + break label$3; + } + $3 = HEAP32[($2 + 4 | 0) >> 2] | 0; + if (($3 & 3 | 0 | 0) != (3 | 0)) { + break label$2 + } + HEAP32[(0 + 117492 | 0) >> 2] = $1; + HEAP32[($2 + 4 | 0) >> 2] = $3 & -2 | 0; + HEAP32[($0 + 4 | 0) >> 2] = $1 | 1 | 0; + HEAP32[$2 >> 2] = $1; + return; + } + HEAP32[($4 + 12 | 0) >> 2] = $3; + HEAP32[($3 + 8 | 0) >> 2] = $4; + break label$2; + } + $6 = 0; + } + if (!$7) { + break label$2 + } + label$11 : { + label$12 : { + $4 = HEAP32[($0 + 28 | 0) >> 2] | 0; + $3 = ($4 << 2 | 0) + 117788 | 0; + if (($0 | 0) != (HEAP32[$3 >> 2] | 0 | 0)) { + break label$12 + } + HEAP32[$3 >> 2] = $6; + if ($6) { + break label$11 + } + (wasm2js_i32$0 = 0, wasm2js_i32$1 = (HEAP32[(0 + 117488 | 0) >> 2] | 0) & (__wasm_rotl_i32(-2 | 0, $4 | 0) | 0) | 0), HEAP32[(wasm2js_i32$0 + 117488 | 0) >> 2] = wasm2js_i32$1; + break label$2; + } + HEAP32[($7 + ((HEAP32[($7 + 16 | 0) >> 2] | 0 | 0) == ($0 | 0) ? 16 : 20) | 0) >> 2] = $6; + if (!$6) { + break label$2 + } + } + HEAP32[($6 + 24 | 0) >> 2] = $7; + label$13 : { + $3 = HEAP32[($0 + 16 | 0) >> 2] | 0; + if (!$3) { + break label$13 + } + HEAP32[($6 + 16 | 0) >> 2] = $3; + HEAP32[($3 + 24 | 0) >> 2] = $6; + } + $3 = HEAP32[($0 + 20 | 0) >> 2] | 0; + if (!$3) { + break label$2 + } + HEAP32[($6 + 20 | 0) >> 2] = $3; + HEAP32[($3 + 24 | 0) >> 2] = $6; + } + label$14 : { + label$15 : { + label$16 : { + label$17 : { + label$18 : { + $3 = HEAP32[($2 + 4 | 0) >> 2] | 0; + if ($3 & 2 | 0) { + break label$18 + } + label$19 : { + if (($2 | 0) != (HEAP32[(0 + 117508 | 0) >> 2] | 0 | 0)) { + break label$19 + } + HEAP32[(0 + 117508 | 0) >> 2] = $0; + $1 = (HEAP32[(0 + 117496 | 0) >> 2] | 0) + $1 | 0; + HEAP32[(0 + 117496 | 0) >> 2] = $1; + HEAP32[($0 + 4 | 0) >> 2] = $1 | 1 | 0; + if (($0 | 0) != (HEAP32[(0 + 117504 | 0) >> 2] | 0 | 0)) { + break label$1 + } + HEAP32[(0 + 117492 | 0) >> 2] = 0; + HEAP32[(0 + 117504 | 0) >> 2] = 0; + return; + } + label$20 : { + if (($2 | 0) != (HEAP32[(0 + 117504 | 0) >> 2] | 0 | 0)) { + break label$20 + } + HEAP32[(0 + 117504 | 0) >> 2] = $0; + $1 = (HEAP32[(0 + 117492 | 0) >> 2] | 0) + $1 | 0; + HEAP32[(0 + 117492 | 0) >> 2] = $1; + HEAP32[($0 + 4 | 0) >> 2] = $1 | 1 | 0; + HEAP32[($0 + $1 | 0) >> 2] = $1; + return; + } + $1 = ($3 & -8 | 0) + $1 | 0; + label$21 : { + if ($3 >>> 0 > 255 >>> 0) { + break label$21 + } + $4 = HEAP32[($2 + 8 | 0) >> 2] | 0; + $5 = $3 >>> 3 | 0; + $6 = ($5 << 3 | 0) + 117524 | 0; + label$22 : { + $3 = HEAP32[($2 + 12 | 0) >> 2] | 0; + if (($3 | 0) != ($4 | 0)) { + break label$22 + } + (wasm2js_i32$0 = 0, wasm2js_i32$1 = (HEAP32[(0 + 117484 | 0) >> 2] | 0) & (__wasm_rotl_i32(-2 | 0, $5 | 0) | 0) | 0), HEAP32[(wasm2js_i32$0 + 117484 | 0) >> 2] = wasm2js_i32$1; + break label$15; + } + HEAP32[($4 + 12 | 0) >> 2] = $3; + HEAP32[($3 + 8 | 0) >> 2] = $4; + break label$15; + } + $7 = HEAP32[($2 + 24 | 0) >> 2] | 0; + label$23 : { + $6 = HEAP32[($2 + 12 | 0) >> 2] | 0; + if (($6 | 0) == ($2 | 0)) { + break label$23 + } + $3 = HEAP32[($2 + 8 | 0) >> 2] | 0; + HEAP32[(0 + 117500 | 0) >> 2] | 0; + HEAP32[($3 + 12 | 0) >> 2] = $6; + HEAP32[($6 + 8 | 0) >> 2] = $3; + break label$16; + } + label$24 : { + $4 = $2 + 20 | 0; + $3 = HEAP32[$4 >> 2] | 0; + if ($3) { + break label$24 + } + $3 = HEAP32[($2 + 16 | 0) >> 2] | 0; + if (!$3) { + break label$17 + } + $4 = $2 + 16 | 0; + } + label$25 : while (1) { + $5 = $4; + $6 = $3; + $4 = $3 + 20 | 0; + $3 = HEAP32[$4 >> 2] | 0; + if ($3) { + continue label$25 + } + $4 = $6 + 16 | 0; + $3 = HEAP32[($6 + 16 | 0) >> 2] | 0; + if ($3) { + continue label$25 + } + break label$25; + }; + HEAP32[$5 >> 2] = 0; + break label$16; + } + HEAP32[($2 + 4 | 0) >> 2] = $3 & -2 | 0; + HEAP32[($0 + 4 | 0) >> 2] = $1 | 1 | 0; + HEAP32[($0 + $1 | 0) >> 2] = $1; + break label$14; + } + $6 = 0; + } + if (!$7) { + break label$15 + } + label$26 : { + label$27 : { + $4 = HEAP32[($2 + 28 | 0) >> 2] | 0; + $3 = ($4 << 2 | 0) + 117788 | 0; + if (($2 | 0) != (HEAP32[$3 >> 2] | 0 | 0)) { + break label$27 + } + HEAP32[$3 >> 2] = $6; + if ($6) { + break label$26 + } + (wasm2js_i32$0 = 0, wasm2js_i32$1 = (HEAP32[(0 + 117488 | 0) >> 2] | 0) & (__wasm_rotl_i32(-2 | 0, $4 | 0) | 0) | 0), HEAP32[(wasm2js_i32$0 + 117488 | 0) >> 2] = wasm2js_i32$1; + break label$15; + } + HEAP32[($7 + ((HEAP32[($7 + 16 | 0) >> 2] | 0 | 0) == ($2 | 0) ? 16 : 20) | 0) >> 2] = $6; + if (!$6) { + break label$15 + } + } + HEAP32[($6 + 24 | 0) >> 2] = $7; + label$28 : { + $3 = HEAP32[($2 + 16 | 0) >> 2] | 0; + if (!$3) { + break label$28 + } + HEAP32[($6 + 16 | 0) >> 2] = $3; + HEAP32[($3 + 24 | 0) >> 2] = $6; + } + $3 = HEAP32[($2 + 20 | 0) >> 2] | 0; + if (!$3) { + break label$15 + } + HEAP32[($6 + 20 | 0) >> 2] = $3; + HEAP32[($3 + 24 | 0) >> 2] = $6; + } + HEAP32[($0 + 4 | 0) >> 2] = $1 | 1 | 0; + HEAP32[($0 + $1 | 0) >> 2] = $1; + if (($0 | 0) != (HEAP32[(0 + 117504 | 0) >> 2] | 0 | 0)) { + break label$14 + } + HEAP32[(0 + 117492 | 0) >> 2] = $1; + return; + } + label$29 : { + if ($1 >>> 0 > 255 >>> 0) { + break label$29 + } + $3 = ($1 & -8 | 0) + 117524 | 0; + label$30 : { + label$31 : { + $4 = HEAP32[(0 + 117484 | 0) >> 2] | 0; + $1 = 1 << ($1 >>> 3 | 0) | 0; + if ($4 & $1 | 0) { + break label$31 + } + HEAP32[(0 + 117484 | 0) >> 2] = $4 | $1 | 0; + $1 = $3; + break label$30; + } + $1 = HEAP32[($3 + 8 | 0) >> 2] | 0; + } + HEAP32[($3 + 8 | 0) >> 2] = $0; + HEAP32[($1 + 12 | 0) >> 2] = $0; + HEAP32[($0 + 12 | 0) >> 2] = $3; + HEAP32[($0 + 8 | 0) >> 2] = $1; + return; + } + $3 = 31; + label$32 : { + if ($1 >>> 0 > 16777215 >>> 0) { + break label$32 + } + $3 = Math_clz32($1 >>> 8 | 0); + $3 = ((($1 >>> (38 - $3 | 0) | 0) & 1 | 0) - ($3 << 1 | 0) | 0) + 62 | 0; + } + HEAP32[($0 + 28 | 0) >> 2] = $3; + HEAP32[($0 + 16 | 0) >> 2] = 0; + HEAP32[($0 + 20 | 0) >> 2] = 0; + $4 = ($3 << 2 | 0) + 117788 | 0; + label$33 : { + label$34 : { + label$35 : { + $6 = HEAP32[(0 + 117488 | 0) >> 2] | 0; + $2 = 1 << $3 | 0; + if ($6 & $2 | 0) { + break label$35 + } + HEAP32[(0 + 117488 | 0) >> 2] = $6 | $2 | 0; + HEAP32[$4 >> 2] = $0; + HEAP32[($0 + 24 | 0) >> 2] = $4; + break label$34; + } + $3 = $1 << (($3 | 0) == (31 | 0) ? 0 : 25 - ($3 >>> 1 | 0) | 0) | 0; + $6 = HEAP32[$4 >> 2] | 0; + label$36 : while (1) { + $4 = $6; + if (((HEAP32[($6 + 4 | 0) >> 2] | 0) & -8 | 0 | 0) == ($1 | 0)) { + break label$33 + } + $6 = $3 >>> 29 | 0; + $3 = $3 << 1 | 0; + $2 = ($4 + ($6 & 4 | 0) | 0) + 16 | 0; + $6 = HEAP32[$2 >> 2] | 0; + if ($6) { + continue label$36 + } + break label$36; + }; + HEAP32[$2 >> 2] = $0; + HEAP32[($0 + 24 | 0) >> 2] = $4; + } + HEAP32[($0 + 12 | 0) >> 2] = $0; + HEAP32[($0 + 8 | 0) >> 2] = $0; + return; + } + $1 = HEAP32[($4 + 8 | 0) >> 2] | 0; + HEAP32[($1 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $0; + HEAP32[($0 + 24 | 0) >> 2] = 0; + HEAP32[($0 + 12 | 0) >> 2] = $4; + HEAP32[($0 + 8 | 0) >> 2] = $1; + } + } + + function __ashlti3($0, $1, $1$hi, $2, $2$hi, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $1$hi = $1$hi | 0; + $2 = $2 | 0; + $2$hi = $2$hi | 0; + $3 = $3 | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, $4$hi = 0, $18 = 0, $20 = 0, $21 = 0, $22 = 0, $11$hi = 0, $18$hi = 0, $19 = 0, $19$hi = 0, $4 = 0, $24$hi = 0; + label$1 : { + label$2 : { + if (!($3 & 64 | 0)) { + break label$2 + } + i64toi32_i32$0 = $1$hi; + i64toi32_i32$0 = 0; + $11$hi = i64toi32_i32$0; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$2 = $1; + i64toi32_i32$1 = $11$hi; + i64toi32_i32$3 = $3 + -64 | 0; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $18 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0; + $18 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + } + $2 = $18; + $2$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $1 = 0; + $1$hi = i64toi32_i32$1; + break label$1; + } + if (!$3) { + break label$1 + } + i64toi32_i32$1 = $1$hi; + i64toi32_i32$1 = 0; + $18$hi = i64toi32_i32$1; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$0 = $1; + i64toi32_i32$2 = $18$hi; + i64toi32_i32$3 = 64 - $3 | 0; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $20 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $20 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0; + } + $19 = $20; + $19$hi = i64toi32_i32$2; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$2 = 0; + $4 = $3; + $4$hi = i64toi32_i32$2; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$1 = $2; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$3 = $3; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0; + $21 = 0; + } else { + i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0; + $21 = i64toi32_i32$1 << i64toi32_i32$4 | 0; + } + $24$hi = i64toi32_i32$0; + i64toi32_i32$0 = $19$hi; + i64toi32_i32$2 = $19; + i64toi32_i32$1 = $24$hi; + i64toi32_i32$3 = $21; + i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0; + $2 = i64toi32_i32$2 | i64toi32_i32$3 | 0; + $2$hi = i64toi32_i32$1; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$0 = $1; + i64toi32_i32$2 = $4$hi; + i64toi32_i32$3 = $4; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + $22 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0; + $22 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + } + $1 = $22; + $1$hi = i64toi32_i32$2; + } + i64toi32_i32$2 = $1$hi; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$2; + i64toi32_i32$2 = $2$hi; + HEAP32[(i64toi32_i32$0 + 8 | 0) >> 2] = $2; + HEAP32[(i64toi32_i32$0 + 12 | 0) >> 2] = i64toi32_i32$2; + } + + function __lshrti3($0, $1, $1$hi, $2, $2$hi, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $1$hi = $1$hi | 0; + $2 = $2 | 0; + $2$hi = $2$hi | 0; + $3 = $3 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $4$hi = 0, $18 = 0, $20 = 0, $21 = 0, $22 = 0, $11$hi = 0, $18$hi = 0, $19 = 0, $19$hi = 0, $4 = 0, $24$hi = 0; + label$1 : { + label$2 : { + if (!($3 & 64 | 0)) { + break label$2 + } + i64toi32_i32$0 = $2$hi; + i64toi32_i32$0 = 0; + $11$hi = i64toi32_i32$0; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$2 = $2; + i64toi32_i32$1 = $11$hi; + i64toi32_i32$3 = $3 + -64 | 0; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $18 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $18 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; + } + $1 = $18; + $1$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $2 = 0; + $2$hi = i64toi32_i32$1; + break label$1; + } + if (!$3) { + break label$1 + } + i64toi32_i32$1 = $2$hi; + i64toi32_i32$1 = 0; + $18$hi = i64toi32_i32$1; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$0 = $2; + i64toi32_i32$2 = $18$hi; + i64toi32_i32$3 = 64 - $3 | 0; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + $20 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0; + $20 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + } + $19 = $20; + $19$hi = i64toi32_i32$2; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$2 = 0; + $4 = $3; + $4$hi = i64toi32_i32$2; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$1 = $1; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$3 = $3; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$0 = 0; + $21 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$0 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $21 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0; + } + $24$hi = i64toi32_i32$0; + i64toi32_i32$0 = $19$hi; + i64toi32_i32$2 = $19; + i64toi32_i32$1 = $24$hi; + i64toi32_i32$3 = $21; + i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0; + $1 = i64toi32_i32$2 | i64toi32_i32$3 | 0; + $1$hi = i64toi32_i32$1; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$0 = $2; + i64toi32_i32$2 = $4$hi; + i64toi32_i32$3 = $4; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $22 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $22 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0; + } + $2 = $22; + $2$hi = i64toi32_i32$2; + } + i64toi32_i32$2 = $1$hi; + i64toi32_i32$0 = $0; + HEAP32[i64toi32_i32$0 >> 2] = $1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$2; + i64toi32_i32$2 = $2$hi; + HEAP32[(i64toi32_i32$0 + 8 | 0) >> 2] = $2; + HEAP32[(i64toi32_i32$0 + 12 | 0) >> 2] = i64toi32_i32$2; + } + + function __trunctfdf2($0, $0$hi, $1, $1$hi) { + $0 = $0 | 0; + $0$hi = $0$hi | 0; + $1 = $1 | 0; + $1$hi = $1$hi | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$5 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, $3 = 0, $3$hi = 0, $4$hi = 0, $4 = 0, $2 = 0, $5 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $12 = 0, $12$hi = 0, $14$hi = 0, $17 = 0, $17$hi = 0, $19$hi = 0, $33 = 0, $33$hi = 0, $36 = 0, $38 = 0, $43 = 0, $43$hi = 0, $45$hi = 0, $73 = 0, $73$hi = 0, $77$hi = 0, $80 = 0, $80$hi = 0, $82 = 0, $82$hi = 0, $86 = 0, $86$hi = 0, $88 = 0, $89$hi = 0, $98$hi = 0, $105 = 0, $105$hi = 0; + $2 = __stack_pointer - 32 | 0; + __stack_pointer = $2; + label$1 : { + label$2 : { + i64toi32_i32$0 = $1$hi; + i64toi32_i32$2 = $1; + i64toi32_i32$1 = 2147483647; + i64toi32_i32$3 = -1; + i64toi32_i32$1 = i64toi32_i32$0 & i64toi32_i32$1 | 0; + $3 = i64toi32_i32$2 & i64toi32_i32$3 | 0; + $3$hi = i64toi32_i32$1; + i64toi32_i32$0 = $3; + i64toi32_i32$2 = -1006698496; + i64toi32_i32$3 = 0; + i64toi32_i32$4 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$1 + i64toi32_i32$2 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $12 = i64toi32_i32$4; + $12$hi = i64toi32_i32$5; + i64toi32_i32$5 = $3$hi; + i64toi32_i32$1 = $3; + i64toi32_i32$0 = -1140785152; + i64toi32_i32$3 = 0; + i64toi32_i32$2 = i64toi32_i32$1 + i64toi32_i32$3 | 0; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$0 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $14$hi = i64toi32_i32$4; + i64toi32_i32$4 = $12$hi; + i64toi32_i32$5 = $12; + i64toi32_i32$1 = $14$hi; + i64toi32_i32$3 = i64toi32_i32$2; + if (i64toi32_i32$4 >>> 0 > i64toi32_i32$1 >>> 0 | ((i64toi32_i32$4 | 0) == (i64toi32_i32$1 | 0) & i64toi32_i32$5 >>> 0 >= i64toi32_i32$2 >>> 0 | 0) | 0) { + break label$2 + } + i64toi32_i32$5 = $0$hi; + i64toi32_i32$3 = $0; + i64toi32_i32$4 = 0; + i64toi32_i32$1 = 60; + i64toi32_i32$0 = i64toi32_i32$1 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$1 & 63 | 0) >>> 0) { + i64toi32_i32$4 = 0; + $44 = i64toi32_i32$5 >>> i64toi32_i32$0 | 0; + } else { + i64toi32_i32$4 = i64toi32_i32$5 >>> i64toi32_i32$0 | 0; + $44 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$0 | 0) | 0; + } + $17 = $44; + $17$hi = i64toi32_i32$4; + i64toi32_i32$4 = $1$hi; + i64toi32_i32$5 = $1; + i64toi32_i32$3 = 0; + i64toi32_i32$1 = 4; + i64toi32_i32$0 = i64toi32_i32$1 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$1 & 63 | 0) >>> 0) { + i64toi32_i32$3 = i64toi32_i32$5 << i64toi32_i32$0 | 0; + $45 = 0; + } else { + i64toi32_i32$3 = ((1 << i64toi32_i32$0 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$0 | 0) | 0) | 0 | (i64toi32_i32$4 << i64toi32_i32$0 | 0) | 0; + $45 = i64toi32_i32$5 << i64toi32_i32$0 | 0; + } + $19$hi = i64toi32_i32$3; + i64toi32_i32$3 = $17$hi; + i64toi32_i32$4 = $17; + i64toi32_i32$5 = $19$hi; + i64toi32_i32$1 = $45; + i64toi32_i32$5 = i64toi32_i32$3 | i64toi32_i32$5 | 0; + $3 = i64toi32_i32$4 | i64toi32_i32$1 | 0; + $3$hi = i64toi32_i32$5; + label$3 : { + i64toi32_i32$5 = $0$hi; + i64toi32_i32$3 = $0; + i64toi32_i32$4 = 268435455; + i64toi32_i32$1 = -1; + i64toi32_i32$4 = i64toi32_i32$5 & i64toi32_i32$4 | 0; + $0 = i64toi32_i32$3 & i64toi32_i32$1 | 0; + $0$hi = i64toi32_i32$4; + i64toi32_i32$5 = $0; + i64toi32_i32$3 = 134217728; + i64toi32_i32$1 = 1; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0 | ((i64toi32_i32$4 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$5 >>> 0 < i64toi32_i32$1 >>> 0 | 0) | 0) { + break label$3 + } + i64toi32_i32$5 = $3$hi; + i64toi32_i32$1 = $3; + i64toi32_i32$4 = 1073741824; + i64toi32_i32$3 = 1; + i64toi32_i32$0 = i64toi32_i32$1 + i64toi32_i32$3 | 0; + i64toi32_i32$2 = i64toi32_i32$5 + i64toi32_i32$4 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $4 = i64toi32_i32$0; + $4$hi = i64toi32_i32$2; + break label$1; + } + i64toi32_i32$2 = $3$hi; + i64toi32_i32$5 = $3; + i64toi32_i32$1 = 1073741824; + i64toi32_i32$3 = 0; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$3 | 0; + i64toi32_i32$0 = i64toi32_i32$2 + i64toi32_i32$1 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + $4 = i64toi32_i32$4; + $4$hi = i64toi32_i32$0; + i64toi32_i32$0 = $0$hi; + i64toi32_i32$2 = $0; + i64toi32_i32$5 = 134217728; + i64toi32_i32$3 = 0; + if ((i64toi32_i32$2 | 0) != (i64toi32_i32$3 | 0) | (i64toi32_i32$0 | 0) != (i64toi32_i32$5 | 0) | 0) { + break label$1 + } + i64toi32_i32$2 = $4$hi; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$3 = $3; + i64toi32_i32$0 = 0; + i64toi32_i32$5 = 1; + i64toi32_i32$0 = i64toi32_i32$2 & i64toi32_i32$0 | 0; + $33 = i64toi32_i32$3 & i64toi32_i32$5 | 0; + $33$hi = i64toi32_i32$0; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$2 = $4; + i64toi32_i32$3 = $33$hi; + i64toi32_i32$5 = $33; + i64toi32_i32$1 = i64toi32_i32$2 + i64toi32_i32$5 | 0; + i64toi32_i32$4 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $4 = i64toi32_i32$1; + $4$hi = i64toi32_i32$4; + break label$1; + } + label$4 : { + i64toi32_i32$4 = $0$hi; + $36 = !($0 | i64toi32_i32$4 | 0); + i64toi32_i32$4 = $3$hi; + i64toi32_i32$0 = $3; + i64toi32_i32$2 = 2147418112; + i64toi32_i32$5 = 0; + $38 = i64toi32_i32$4 >>> 0 < i64toi32_i32$2 >>> 0 | ((i64toi32_i32$4 | 0) == (i64toi32_i32$2 | 0) & i64toi32_i32$0 >>> 0 < i64toi32_i32$5 >>> 0 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$4; + i64toi32_i32$5 = $3; + i64toi32_i32$4 = 2147418112; + i64toi32_i32$2 = 0; + if ((i64toi32_i32$5 | 0) == (i64toi32_i32$2 | 0) & (i64toi32_i32$0 | 0) == (i64toi32_i32$4 | 0) | 0 ? $36 : $38) { + break label$4 + } + i64toi32_i32$5 = $0$hi; + i64toi32_i32$2 = $0; + i64toi32_i32$0 = 0; + i64toi32_i32$4 = 60; + i64toi32_i32$3 = i64toi32_i32$4 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$4 & 63 | 0) >>> 0) { + i64toi32_i32$0 = 0; + $46 = i64toi32_i32$5 >>> i64toi32_i32$3 | 0; + } else { + i64toi32_i32$0 = i64toi32_i32$5 >>> i64toi32_i32$3 | 0; + $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$3 | 0) | 0; + } + $43 = $46; + $43$hi = i64toi32_i32$0; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$5 = $1; + i64toi32_i32$2 = 0; + i64toi32_i32$4 = 4; + i64toi32_i32$3 = i64toi32_i32$4 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$4 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$3 | 0; + $47 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$3 | 0) | 0; + $47 = i64toi32_i32$5 << i64toi32_i32$3 | 0; + } + $45$hi = i64toi32_i32$2; + i64toi32_i32$2 = $43$hi; + i64toi32_i32$0 = $43; + i64toi32_i32$5 = $45$hi; + i64toi32_i32$4 = $47; + i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0; + i64toi32_i32$2 = i64toi32_i32$0 | i64toi32_i32$4 | 0; + i64toi32_i32$0 = 524287; + i64toi32_i32$4 = -1; + i64toi32_i32$0 = i64toi32_i32$5 & i64toi32_i32$0 | 0; + i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$4 | 0; + i64toi32_i32$2 = 2146959360; + i64toi32_i32$4 = 0; + i64toi32_i32$2 = i64toi32_i32$0 | i64toi32_i32$2 | 0; + $4 = i64toi32_i32$5 | i64toi32_i32$4 | 0; + $4$hi = i64toi32_i32$2; + break label$1; + } + i64toi32_i32$2 = 2146435072; + $4 = 0; + $4$hi = i64toi32_i32$2; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$0 = $3; + i64toi32_i32$5 = 1140785151; + i64toi32_i32$4 = -1; + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$5 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$5 | 0) & i64toi32_i32$0 >>> 0 > i64toi32_i32$4 >>> 0 | 0) | 0) { + break label$1 + } + i64toi32_i32$0 = 0; + $4 = 0; + $4$hi = i64toi32_i32$0; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$4 = $3; + i64toi32_i32$2 = 0; + i64toi32_i32$5 = 48; + i64toi32_i32$3 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $48 = i64toi32_i32$0 >>> i64toi32_i32$3 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$3 | 0; + $48 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$4 >>> i64toi32_i32$3 | 0) | 0; + } + $5 = $48; + if ($5 >>> 0 < 15249 >>> 0) { + break label$1 + } + i64toi32_i32$2 = $0$hi; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$0 = $1; + i64toi32_i32$4 = 65535; + i64toi32_i32$5 = -1; + i64toi32_i32$4 = i64toi32_i32$2 & i64toi32_i32$4 | 0; + i64toi32_i32$2 = i64toi32_i32$0 & i64toi32_i32$5 | 0; + i64toi32_i32$0 = 65536; + i64toi32_i32$5 = 0; + i64toi32_i32$0 = i64toi32_i32$4 | i64toi32_i32$0 | 0; + $3 = i64toi32_i32$2 | i64toi32_i32$5 | 0; + $3$hi = i64toi32_i32$0; + i64toi32_i32$0 = $0$hi; + i64toi32_i32$2 = $3$hi; + __ashlti3($2 + 16 | 0 | 0, $0 | 0, i64toi32_i32$0 | 0, $3 | 0, i64toi32_i32$2 | 0, $5 + -15233 | 0 | 0); + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$0 = $3$hi; + __lshrti3($2 | 0, $0 | 0, i64toi32_i32$2 | 0, $3 | 0, i64toi32_i32$0 | 0, 15361 - $5 | 0 | 0); + i64toi32_i32$4 = $2; + i64toi32_i32$0 = HEAP32[i64toi32_i32$4 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$4 + 4 | 0) >> 2] | 0; + $3 = i64toi32_i32$0; + $3$hi = i64toi32_i32$2; + i64toi32_i32$4 = i64toi32_i32$0; + i64toi32_i32$0 = 0; + i64toi32_i32$5 = 60; + i64toi32_i32$3 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$0 = 0; + $49 = i64toi32_i32$2 >>> i64toi32_i32$3 | 0; + } else { + i64toi32_i32$0 = i64toi32_i32$2 >>> i64toi32_i32$3 | 0; + $49 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$4 >>> i64toi32_i32$3 | 0) | 0; + } + $73 = $49; + $73$hi = i64toi32_i32$0; + i64toi32_i32$2 = $2 + 8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$0 = 0; + i64toi32_i32$5 = 4; + i64toi32_i32$3 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$0 = i64toi32_i32$2 << i64toi32_i32$3 | 0; + $50 = 0; + } else { + i64toi32_i32$0 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$4 << i64toi32_i32$3 | 0) | 0; + $50 = i64toi32_i32$2 << i64toi32_i32$3 | 0; + } + $77$hi = i64toi32_i32$0; + i64toi32_i32$0 = $73$hi; + i64toi32_i32$4 = $73; + i64toi32_i32$2 = $77$hi; + i64toi32_i32$5 = $50; + i64toi32_i32$2 = i64toi32_i32$0 | i64toi32_i32$2 | 0; + $4 = i64toi32_i32$4 | i64toi32_i32$5 | 0; + $4$hi = i64toi32_i32$2; + label$5 : { + i64toi32_i32$2 = $3$hi; + i64toi32_i32$0 = $3; + i64toi32_i32$4 = 268435455; + i64toi32_i32$5 = -1; + i64toi32_i32$4 = i64toi32_i32$2 & i64toi32_i32$4 | 0; + $80 = i64toi32_i32$0 & i64toi32_i32$5 | 0; + $80$hi = i64toi32_i32$4; + i64toi32_i32$2 = $2; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$2 + 16 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 20 | 0) >> 2] | 0; + $82 = i64toi32_i32$4; + $82$hi = i64toi32_i32$0; + i64toi32_i32$2 = (i64toi32_i32$2 + 16 | 0) + 8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $86 = i64toi32_i32$0; + $86$hi = i64toi32_i32$4; + i64toi32_i32$4 = $82$hi; + i64toi32_i32$2 = $82; + i64toi32_i32$0 = $86$hi; + i64toi32_i32$5 = $86; + i64toi32_i32$0 = i64toi32_i32$4 | i64toi32_i32$0 | 0; + i64toi32_i32$4 = i64toi32_i32$2 | i64toi32_i32$5 | 0; + i64toi32_i32$2 = 0; + i64toi32_i32$5 = 0; + $88 = (i64toi32_i32$4 | 0) != (i64toi32_i32$5 | 0) | (i64toi32_i32$0 | 0) != (i64toi32_i32$2 | 0) | 0; + i64toi32_i32$4 = 0; + $89$hi = i64toi32_i32$4; + i64toi32_i32$4 = $80$hi; + i64toi32_i32$5 = $80; + i64toi32_i32$0 = $89$hi; + i64toi32_i32$2 = $88; + i64toi32_i32$0 = i64toi32_i32$4 | i64toi32_i32$0 | 0; + $3 = i64toi32_i32$5 | i64toi32_i32$2 | 0; + $3$hi = i64toi32_i32$0; + i64toi32_i32$4 = $3; + i64toi32_i32$5 = 134217728; + i64toi32_i32$2 = 1; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$5 >>> 0 | ((i64toi32_i32$0 | 0) == (i64toi32_i32$5 | 0) & i64toi32_i32$4 >>> 0 < i64toi32_i32$2 >>> 0 | 0) | 0) { + break label$5 + } + i64toi32_i32$4 = $4$hi; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = 0; + i64toi32_i32$5 = 1; + i64toi32_i32$3 = i64toi32_i32$2 + i64toi32_i32$5 | 0; + i64toi32_i32$1 = i64toi32_i32$4 + i64toi32_i32$0 | 0; + if (i64toi32_i32$3 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + $4 = i64toi32_i32$3; + $4$hi = i64toi32_i32$1; + break label$1; + } + i64toi32_i32$1 = $3$hi; + i64toi32_i32$4 = $3; + i64toi32_i32$2 = 134217728; + i64toi32_i32$5 = 0; + if ((i64toi32_i32$4 | 0) != (i64toi32_i32$5 | 0) | (i64toi32_i32$1 | 0) != (i64toi32_i32$2 | 0) | 0) { + break label$1 + } + i64toi32_i32$4 = $4$hi; + i64toi32_i32$5 = $4; + i64toi32_i32$1 = 0; + i64toi32_i32$2 = 1; + i64toi32_i32$1 = i64toi32_i32$4 & i64toi32_i32$1 | 0; + $98$hi = i64toi32_i32$1; + i64toi32_i32$1 = i64toi32_i32$4; + i64toi32_i32$1 = $98$hi; + i64toi32_i32$4 = i64toi32_i32$5 & i64toi32_i32$2 | 0; + i64toi32_i32$5 = $4$hi; + i64toi32_i32$2 = $4; + i64toi32_i32$0 = i64toi32_i32$4 + i64toi32_i32$2 | 0; + i64toi32_i32$3 = i64toi32_i32$1 + i64toi32_i32$5 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$2 >>> 0) { + i64toi32_i32$3 = i64toi32_i32$3 + 1 | 0 + } + $4 = i64toi32_i32$0; + $4$hi = i64toi32_i32$3; + } + __stack_pointer = $2 + 32 | 0; + i64toi32_i32$3 = $4$hi; + i64toi32_i32$3 = $1$hi; + i64toi32_i32$1 = $1; + i64toi32_i32$4 = -2147483648; + i64toi32_i32$2 = 0; + i64toi32_i32$4 = i64toi32_i32$3 & i64toi32_i32$4 | 0; + $105 = i64toi32_i32$1 & i64toi32_i32$2 | 0; + $105$hi = i64toi32_i32$4; + i64toi32_i32$4 = $4$hi; + i64toi32_i32$3 = $4; + i64toi32_i32$1 = $105$hi; + i64toi32_i32$2 = $105; + i64toi32_i32$1 = i64toi32_i32$4 | i64toi32_i32$1 | 0; + wasm2js_scratch_store_i32(0 | 0, i64toi32_i32$3 | i64toi32_i32$2 | 0 | 0); + wasm2js_scratch_store_i32(1 | 0, i64toi32_i32$1 | 0); + return +(+wasm2js_scratch_load_f64()); + } + + function aligned_alloc($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $2 = 0, $3 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0; + $2 = __stack_pointer - 16 | 0; + __stack_pointer = $2; + $3 = 0; + label$1 : { + if ($0 & 3 | 0) { + break label$1 + } + if (($1 >>> 0) % ($0 >>> 0) | 0) { + break label$1 + } + $0 = dlposix_memalign($2 + 12 | 0 | 0, $0 | 0, $1 | 0) | 0; + $3 = (wasm2js_i32$0 = 0, wasm2js_i32$1 = HEAP32[($2 + 12 | 0) >> 2] | 0, wasm2js_i32$2 = $0, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); + } + __stack_pointer = $2 + 16 | 0; + return $3 | 0; + } + + function operator_20new_28unsigned_20long_29($0) { + $0 = $0 | 0; + var $1 = 0; + $1 = $0 >>> 0 > 1 >>> 0 ? $0 : 1; + label$1 : { + label$2 : while (1) { + $0 = dlmalloc($1 | 0) | 0; + if ($0) { + break label$1 + } + label$3 : { + $0 = std__get_new_handler_28_29() | 0; + if (!$0) { + break label$3 + } + FUNCTION_TABLE[$0 | 0](); + continue label$2; + } + break label$2; + }; + abort(); + wasm2js_trap(); + } + return $0 | 0; + } + + function operator_20delete_28void__29($0) { + $0 = $0 | 0; + dlfree($0 | 0); + } + + function operator_20new_28unsigned_20long_2c_20std__align_val_t_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $3 = 0, $2 = 0; + $2 = $1 >>> 0 > 4 >>> 0 ? $1 : 4; + $0 = $0 >>> 0 > 1 >>> 0 ? $0 : 1; + label$1 : { + label$2 : while (1) { + $3 = std____2____libcpp_aligned_alloc_5babi_v160004_5d_28unsigned_20long_2c_20unsigned_20long_29($2 | 0, $0 | 0) | 0; + if ($3) { + break label$1 + } + $1 = std__get_new_handler_28_29() | 0; + if (!$1) { + break label$1 + } + FUNCTION_TABLE[$1 | 0](); + continue label$2; + }; + } + return $3 | 0; + } + + function std____2____libcpp_aligned_alloc_5babi_v160004_5d_28unsigned_20long_2c_20unsigned_20long_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $2 = 0; + $2 = (($0 + $1 | 0) + -1 | 0) & (0 - $0 | 0) | 0; + return aligned_alloc($0 | 0, ($2 >>> 0 > $1 >>> 0 ? $2 : $1) | 0) | 0 | 0; + } + + function operator_20delete_28void__2c_20std__align_val_t_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + std____2____libcpp_aligned_free_5babi_v160004_5d_28void__29($0 | 0); + } + + function std____2____libcpp_aligned_free_5babi_v160004_5d_28void__29($0) { + $0 = $0 | 0; + dlfree($0 | 0); + } + + function __overflow($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $3 = 0, $2 = 0, $4 = 0; + $2 = __stack_pointer - 16 | 0; + __stack_pointer = $2; + HEAP8[($2 + 15 | 0) >> 0] = $1; + label$1 : { + label$2 : { + $3 = HEAP32[($0 + 16 | 0) >> 2] | 0; + if ($3) { + break label$2 + } + $3 = -1; + if (__towrite($0 | 0) | 0) { + break label$1 + } + $3 = HEAP32[($0 + 16 | 0) >> 2] | 0; + } + label$3 : { + $4 = HEAP32[($0 + 20 | 0) >> 2] | 0; + if (($4 | 0) == ($3 | 0)) { + break label$3 + } + $3 = $1 & 255 | 0; + if ((HEAP32[($0 + 80 | 0) >> 2] | 0 | 0) == ($3 | 0)) { + break label$3 + } + HEAP32[($0 + 20 | 0) >> 2] = $4 + 1 | 0; + HEAP8[$4 >> 0] = $1; + break label$1; + } + $3 = -1; + if ((FUNCTION_TABLE[HEAP32[($0 + 36 | 0) >> 2] | 0 | 0]($0, $2 + 15 | 0, 1) | 0 | 0) != (1 | 0)) { + break label$1 + } + $3 = HEAPU8[($2 + 15 | 0) >> 0] | 0; + } + __stack_pointer = $2 + 16 | 0; + return $3 | 0; + } + + function memmove($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $3 = 0, $4 = 0; + label$1 : { + if (($0 | 0) == ($1 | 0)) { + break label$1 + } + label$2 : { + $3 = $0 + $2 | 0; + if (($1 - $3 | 0) >>> 0 > (0 - ($2 << 1 | 0) | 0) >>> 0) { + break label$2 + } + return __memcpy($0 | 0, $1 | 0, $2 | 0) | 0 | 0; + } + $4 = ($1 ^ $0 | 0) & 3 | 0; + label$3 : { + label$4 : { + label$5 : { + if ($0 >>> 0 >= $1 >>> 0) { + break label$5 + } + label$6 : { + if (!$4) { + break label$6 + } + $3 = $0; + break label$3; + } + label$7 : { + if ($0 & 3 | 0) { + break label$7 + } + $3 = $0; + break label$4; + } + $3 = $0; + label$8 : while (1) { + if (!$2) { + break label$1 + } + HEAP8[$3 >> 0] = HEAPU8[$1 >> 0] | 0; + $1 = $1 + 1 | 0; + $2 = $2 + -1 | 0; + $3 = $3 + 1 | 0; + if (!($3 & 3 | 0)) { + break label$4 + } + continue label$8; + }; + } + label$9 : { + if ($4) { + break label$9 + } + label$10 : { + if (!($3 & 3 | 0)) { + break label$10 + } + label$11 : while (1) { + if (!$2) { + break label$1 + } + $2 = $2 + -1 | 0; + $3 = $0 + $2 | 0; + HEAP8[$3 >> 0] = HEAPU8[($1 + $2 | 0) >> 0] | 0; + if ($3 & 3 | 0) { + continue label$11 + } + break label$11; + }; + } + if ($2 >>> 0 <= 3 >>> 0) { + break label$9 + } + label$12 : while (1) { + $2 = $2 + -4 | 0; + HEAP32[($0 + $2 | 0) >> 2] = HEAP32[($1 + $2 | 0) >> 2] | 0; + if ($2 >>> 0 > 3 >>> 0) { + continue label$12 + } + break label$12; + }; + } + if (!$2) { + break label$1 + } + label$13 : while (1) { + $2 = $2 + -1 | 0; + HEAP8[($0 + $2 | 0) >> 0] = HEAPU8[($1 + $2 | 0) >> 0] | 0; + if ($2) { + continue label$13 + } + break label$1; + }; + } + if ($2 >>> 0 <= 3 >>> 0) { + break label$3 + } + label$14 : while (1) { + HEAP32[$3 >> 2] = HEAP32[$1 >> 2] | 0; + $1 = $1 + 4 | 0; + $3 = $3 + 4 | 0; + $2 = $2 + -4 | 0; + if ($2 >>> 0 > 3 >>> 0) { + continue label$14 + } + break label$14; + }; + } + if (!$2) { + break label$1 + } + label$15 : while (1) { + HEAP8[$3 >> 0] = HEAPU8[$1 >> 0] | 0; + $3 = $3 + 1 | 0; + $1 = $1 + 1 | 0; + $2 = $2 + -1 | 0; + if ($2) { + continue label$15 + } + break label$15; + }; + } + return $0 | 0; + } + + function dummy($0) { + $0 = $0 | 0; + return $0 | 0; + } + + function __stdio_close($0) { + $0 = $0 | 0; + return __wasi_fd_close(dummy(HEAP32[($0 + 60 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0; + } + + function __lseek($0, $1, $1$hi, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $1$hi = $1$hi | 0; + $2 = $2 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, $3 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + i64toi32_i32$0 = $1$hi; + $2 = __wasi_syscall_ret(legalfunc$__wasi_fd_seek($0 | 0, $1 | 0, i64toi32_i32$0 | 0, $2 & 255 | 0 | 0, $3 + 8 | 0 | 0) | 0 | 0) | 0; + i64toi32_i32$2 = $3; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 12 | 0) >> 2] | 0; + $1 = i64toi32_i32$0; + $1$hi = i64toi32_i32$1; + __stack_pointer = i64toi32_i32$2 + 16 | 0; + i64toi32_i32$1 = -1; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$3 = $2 ? -1 : $1; + i64toi32_i32$2 = $2 ? i64toi32_i32$1 : i64toi32_i32$0; + i64toi32_i32$HIGH_BITS = i64toi32_i32$2; + return i64toi32_i32$3 | 0; + } + + function __stdio_seek($0, $1, $1$hi, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $1$hi = $1$hi | 0; + $2 = $2 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$0 = __lseek(HEAP32[($0 + 60 | 0) >> 2] | 0 | 0, $1 | 0, i64toi32_i32$0 | 0, $2 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + i64toi32_i32$HIGH_BITS = i64toi32_i32$1; + return i64toi32_i32$0 | 0; + } + + function char__20std____2____to_address_5babi_v160004_5d_char__28char__29($0) { + $0 = $0 | 0; + return $0 | 0; + } + + function std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______get_long_cap_5babi_v160004_5d_28_29_20const($0) { + $0 = $0 | 0; + return (HEAP32[((std____2____compressed_pair_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______rep_2c_20std____2__allocator_char____first_5babi_v160004_5d_28_29_20const($0 | 0) | 0) + 8 | 0) >> 2] | 0) & 2147483647 | 0 | 0; + } + + function std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______get_long_pointer_5babi_v160004_5d_28_29($0) { + $0 = $0 | 0; + return HEAP32[(std____2____compressed_pair_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______rep_2c_20std____2__allocator_char____first_5babi_v160004_5d_28_29($0 | 0) | 0) >> 2] | 0 | 0; + } + + function std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______get_short_pointer_5babi_v160004_5d_28_29($0) { + $0 = $0 | 0; + return std____2__pointer_traits_char____pointer_to_5babi_v160004_5d_28char__29(std____2____compressed_pair_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______rep_2c_20std____2__allocator_char____first_5babi_v160004_5d_28_29($0 | 0) | 0 | 0) | 0 | 0; + } + + function std____2__char_traits_char___assign_28char__2c_20char_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + HEAP8[$0 >> 0] = HEAPU8[$1 >> 0] | 0; + } + + function std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____max_size_5babi_v160004_5d_28_29_20const($0) { + $0 = $0 | 0; + $0 = unsigned_20long_20std____2__allocator_traits_std____2__allocator_char____max_size_5babi_v160004_5d_std____2__allocator_char__2c_20void_2c_20void__28std____2__allocator_char__20const__29(std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______alloc_5babi_v160004_5d_28_29_20const($0 | 0) | 0 | 0) | 0; + return ($0 >>> ($0 >>> 0 > ((std____2__numeric_limits_unsigned_20long___max_5babi_v160004_5d_28_29() | 0) >>> 1 | 0) >>> 0) | 0) + -16 | 0 | 0; + } + + function std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______recommend_5babi_v160004_5d_28unsigned_20long_29($0) { + $0 = $0 | 0; + var $1 = 0, $7 = 0; + $1 = 10; + label$1 : { + if ($0 >>> 0 < 11 >>> 0) { + break label$1 + } + $0 = unsigned_20long_20std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______align_it_5babi_v160004_5d_16ul__28unsigned_20long_29($0 + 1 | 0 | 0) | 0; + $7 = $0; + $0 = $0 + -1 | 0; + $1 = ($0 | 0) == (11 | 0) ? $7 : $0; + } + return $1 | 0; + } + + function std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______alloc_5babi_v160004_5d_28_29($0) { + $0 = $0 | 0; + return std____2____compressed_pair_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______rep_2c_20std____2__allocator_char____second_5babi_v160004_5d_28_29($0 | 0) | 0 | 0; + } + + function std____2____allocation_result_std____2__allocator_traits_std____2__allocator_char____pointer__20std____2____allocate_at_least_5babi_v160004_5d_std____2__allocator_char___28std____2__allocator_char___2c_20unsigned_20long_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $1 = std____2__allocator_char___allocate_5babi_v160004_5d_28unsigned_20long_29($1 | 0, $2 | 0) | 0; + HEAP32[($0 + 4 | 0) >> 2] = $2; + HEAP32[$0 >> 2] = $1; + } + + function std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______begin_lifetime_5babi_v160004_5d_28char__2c_20unsigned_20long_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + } + + function std____2__char_traits_char___copy_28char__2c_20char_20const__2c_20unsigned_20long_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + std____2__enable_if___is_cpp17_random_access_iterator_char_20const____value_2c_20char____type_20std____2__copy_n_5babi_v160004_5d_char_20const__2c_20unsigned_20long_2c_20char___28char_20const__2c_20unsigned_20long_2c_20char__29($1 | 0, $2 | 0, $0 | 0) | 0; + return $0 | 0; + } + + function std____2__allocator_traits_std____2__allocator_char____deallocate_5babi_v160004_5d_28std____2__allocator_char___2c_20char__2c_20unsigned_20long_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + std____2__allocator_char___deallocate_5babi_v160004_5d_28char__2c_20unsigned_20long_29($0 | 0, $1 | 0, $2 | 0); + } + + function std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______set_long_pointer_5babi_v160004_5d_28char__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + (wasm2js_i32$0 = std____2____compressed_pair_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______rep_2c_20std____2__allocator_char____first_5babi_v160004_5d_28_29($0 | 0) | 0, wasm2js_i32$1 = $1), HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + } + + function std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______set_long_cap_5babi_v160004_5d_28unsigned_20long_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $2 = 0; + $2 = std____2____compressed_pair_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______rep_2c_20std____2__allocator_char____first_5babi_v160004_5d_28_29($0 | 0) | 0; + HEAP32[($2 + 8 | 0) >> 2] = (HEAP32[($2 + 8 | 0) >> 2] | 0) & -2147483648 | 0 | ($1 & 2147483647 | 0) | 0; + $0 = std____2____compressed_pair_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______rep_2c_20std____2__allocator_char____first_5babi_v160004_5d_28_29($0 | 0) | 0; + HEAP32[($0 + 8 | 0) >> 2] = HEAP32[($0 + 8 | 0) >> 2] | 0 | -2147483648 | 0; + } + + function std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______set_long_size_5babi_v160004_5d_28unsigned_20long_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + (wasm2js_i32$0 = std____2____compressed_pair_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______rep_2c_20std____2__allocator_char____first_5babi_v160004_5d_28_29($0 | 0) | 0, wasm2js_i32$1 = $1), HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + } + + function std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______throw_length_error_5babi_v160004_5d_28_29_20const($0) { + $0 = $0 | 0; + std____2____throw_length_error_5babi_v160004_5d_28char_20const__29(80508 | 0); + wasm2js_trap(); + } + + function std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______fits_in_sso_5babi_v160004_5d_28unsigned_20long_29($0) { + $0 = $0 | 0; + return $0 >>> 0 < 11 >>> 0 | 0; + } + + function std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______set_short_size_5babi_v160004_5d_28unsigned_20long_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $2 = 0; + $2 = std____2____compressed_pair_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______rep_2c_20std____2__allocator_char____first_5babi_v160004_5d_28_29($0 | 0) | 0; + HEAP8[($2 + 11 | 0) >> 0] = (HEAPU8[($2 + 11 | 0) >> 0] | 0) & 128 | 0 | $1 | 0; + $0 = std____2____compressed_pair_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______rep_2c_20std____2__allocator_char____first_5babi_v160004_5d_28_29($0 | 0) | 0; + HEAP8[($0 + 11 | 0) >> 0] = (HEAPU8[($0 + 11 | 0) >> 0] | 0) & 127 | 0; + } + + function std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______alloc_5babi_v160004_5d_28_29_20const($0) { + $0 = $0 | 0; + return std____2____compressed_pair_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______rep_2c_20std____2__allocator_char____second_5babi_v160004_5d_28_29_20const($0 | 0) | 0 | 0; + } + + function unsigned_20long_20std____2__allocator_traits_std____2__allocator_char____max_size_5babi_v160004_5d_std____2__allocator_char__2c_20void_2c_20void__28std____2__allocator_char__20const__29($0) { + $0 = $0 | 0; + return std____2__numeric_limits_unsigned_20long___max_5babi_v160004_5d_28_29() | 0 | 0; + } + + function std____2__numeric_limits_unsigned_20long___max_5babi_v160004_5d_28_29() { + return std____2____libcpp_numeric_limits_unsigned_20long_2c_20true___max_5babi_v160004_5d_28_29() | 0 | 0; + } + + function std____2____throw_length_error_5babi_v160004_5d_28char_20const__29($0) { + $0 = $0 | 0; + abort(); + wasm2js_trap(); + } + + function std____2____compressed_pair_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______rep_2c_20std____2__allocator_char____first_5babi_v160004_5d_28_29($0) { + $0 = $0 | 0; + return std____2____compressed_pair_elem_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______rep_2c_200_2c_20false_____get_5babi_v160004_5d_28_29($0 | 0) | 0 | 0; + } + + function std____2__pointer_traits_char____pointer_to_5babi_v160004_5d_28char__29($0) { + $0 = $0 | 0; + return $0 | 0; + } + + function std____2__allocator_char___allocate_5babi_v160004_5d_28unsigned_20long_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + label$1 : { + if ((unsigned_20long_20std____2__allocator_traits_std____2__allocator_char____max_size_5babi_v160004_5d_std____2__allocator_char__2c_20void_2c_20void__28std____2__allocator_char__20const__29($0 | 0) | 0) >>> 0 >= $1 >>> 0) { + break label$1 + } + std____throw_bad_array_new_length_5babi_v160004_5d_28_29(); + wasm2js_trap(); + } + return std____2____libcpp_allocate_5babi_v160004_5d_28unsigned_20long_2c_20unsigned_20long_29($1 | 0, 1 | 0) | 0 | 0; + } + + function std____2____compressed_pair_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______rep_2c_20std____2__allocator_char____second_5babi_v160004_5d_28_29($0) { + $0 = $0 | 0; + return std____2____compressed_pair_elem_std____2__allocator_char__2c_201_2c_20true_____get_5babi_v160004_5d_28_29($0 | 0) | 0 | 0; + } + + function unsigned_20long_20std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______align_it_5babi_v160004_5d_16ul__28unsigned_20long_29($0) { + $0 = $0 | 0; + return ($0 + 15 | 0) & -16 | 0 | 0; + } + + function std____2__enable_if___is_cpp17_random_access_iterator_char_20const____value_2c_20char____type_20std____2__copy_n_5babi_v160004_5d_char_20const__2c_20unsigned_20long_2c_20char___28char_20const__2c_20unsigned_20long_2c_20char__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + return char__20std____2__copy_5babi_v160004_5d_char_20const__2c_20char___28char_20const__2c_20char_20const__2c_20char__29($0 | 0, $0 + $1 | 0 | 0, $2 | 0) | 0 | 0; + } + + function std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char_____basic_string_28_29($0) { + $0 = $0 | 0; + void_20std____2____debug_db_erase_c_5babi_v160004_5d_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____28std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____29($0 | 0); + label$1 : { + if (!(std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______is_long_5babi_v160004_5d_28_29_20const($0 | 0) | 0)) { + break label$1 + } + std____2__allocator_traits_std____2__allocator_char____deallocate_5babi_v160004_5d_28std____2__allocator_char___2c_20char__2c_20unsigned_20long_29(std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______alloc_5babi_v160004_5d_28_29($0 | 0) | 0 | 0, std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______get_long_pointer_5babi_v160004_5d_28_29($0 | 0) | 0 | 0, std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______get_long_cap_5babi_v160004_5d_28_29_20const($0 | 0) | 0 | 0); + } + return $0 | 0; + } + + function void_20std____2____debug_db_erase_c_5babi_v160004_5d_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____28std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____29($0) { + $0 = $0 | 0; + } + + function std____2__allocator_char___deallocate_5babi_v160004_5d_28char__2c_20unsigned_20long_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + std____2____libcpp_deallocate_5babi_v160004_5d_28void__2c_20unsigned_20long_2c_20unsigned_20long_29($1 | 0, $2 | 0, 1 | 0); + } + + function std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______init_28char_20const__2c_20unsigned_20long_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + label$1 : { + if ((std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char____max_size_5babi_v160004_5d_28_29_20const($0 | 0) | 0) >>> 0 < $2 >>> 0) { + break label$1 + } + label$2 : { + label$3 : { + if (!(std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______fits_in_sso_5babi_v160004_5d_28unsigned_20long_29($2 | 0) | 0)) { + break label$3 + } + std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______set_short_size_5babi_v160004_5d_28unsigned_20long_29($0 | 0, $2 | 0); + $4 = std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______get_short_pointer_5babi_v160004_5d_28_29($0 | 0) | 0; + break label$2; + } + std____2____allocation_result_std____2__allocator_traits_std____2__allocator_char____pointer__20std____2____allocate_at_least_5babi_v160004_5d_std____2__allocator_char___28std____2__allocator_char___2c_20unsigned_20long_29($3 + 8 | 0 | 0, std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______alloc_5babi_v160004_5d_28_29($0 | 0) | 0 | 0, (std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______recommend_5babi_v160004_5d_28unsigned_20long_29($2 | 0) | 0) + 1 | 0 | 0); + $4 = HEAP32[($3 + 8 | 0) >> 2] | 0; + std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______begin_lifetime_5babi_v160004_5d_28char__2c_20unsigned_20long_29($4 | 0, HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______set_long_pointer_5babi_v160004_5d_28char__29($0 | 0, $4 | 0); + std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______set_long_cap_5babi_v160004_5d_28unsigned_20long_29($0 | 0, HEAP32[($3 + 12 | 0) >> 2] | 0 | 0); + std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______set_long_size_5babi_v160004_5d_28unsigned_20long_29($0 | 0, $2 | 0); + } + std____2__char_traits_char___copy_28char__2c_20char_20const__2c_20unsigned_20long_29(char__20std____2____to_address_5babi_v160004_5d_char__28char__29($4 | 0) | 0 | 0, $1 | 0, $2 | 0) | 0; + HEAP8[($3 + 7 | 0) >> 0] = 0; + std____2__char_traits_char___assign_28char__2c_20char_20const__29($4 + $2 | 0 | 0, $3 + 7 | 0 | 0); + __stack_pointer = $3 + 16 | 0; + return; + } + std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______throw_length_error_5babi_v160004_5d_28_29_20const($0 | 0); + wasm2js_trap(); + } + + function std____2____compressed_pair_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______rep_2c_20std____2__allocator_char____second_5babi_v160004_5d_28_29_20const($0) { + $0 = $0 | 0; + return std____2____compressed_pair_elem_std____2__allocator_char__2c_201_2c_20true_____get_5babi_v160004_5d_28_29_20const($0 | 0) | 0 | 0; + } + + function std____2____libcpp_numeric_limits_unsigned_20long_2c_20true___max_5babi_v160004_5d_28_29() { + return -1 | 0; + } + + function std____2____compressed_pair_elem_std____2__allocator_char__2c_201_2c_20true_____get_5babi_v160004_5d_28_29_20const($0) { + $0 = $0 | 0; + return $0 | 0; + } + + function std____2____compressed_pair_elem_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char______rep_2c_200_2c_20false_____get_5babi_v160004_5d_28_29($0) { + $0 = $0 | 0; + return $0 | 0; + } + + function std____throw_bad_array_new_length_5babi_v160004_5d_28_29() { + abort(); + wasm2js_trap(); + } + + function std____2____libcpp_allocate_5babi_v160004_5d_28unsigned_20long_2c_20unsigned_20long_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + label$1 : { + if (!(std____2____is_overaligned_for_new_5babi_v160004_5d_28unsigned_20long_29($1 | 0) | 0)) { + break label$1 + } + return void__20std____2____libcpp_operator_new_5babi_v160004_5d_unsigned_20long_2c_20std__align_val_t__28unsigned_20long_2c_20std__align_val_t_29($0 | 0, $1 | 0) | 0 | 0; + } + return void__20std____2____libcpp_operator_new_5babi_v160004_5d_unsigned_20long__28unsigned_20long_29($0 | 0) | 0 | 0; + } + + function std____2____is_overaligned_for_new_5babi_v160004_5d_28unsigned_20long_29($0) { + $0 = $0 | 0; + return $0 >>> 0 > 8 >>> 0 | 0; + } + + function void__20std____2____libcpp_operator_new_5babi_v160004_5d_unsigned_20long_2c_20std__align_val_t__28unsigned_20long_2c_20std__align_val_t_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + return operator_20new_28unsigned_20long_2c_20std__align_val_t_29($0 | 0, $1 | 0) | 0 | 0; + } + + function void__20std____2____libcpp_operator_new_5babi_v160004_5d_unsigned_20long__28unsigned_20long_29($0) { + $0 = $0 | 0; + return operator_20new_28unsigned_20long_29($0 | 0) | 0 | 0; + } + + function std____2____compressed_pair_elem_std____2__allocator_char__2c_201_2c_20true_____get_5babi_v160004_5d_28_29($0) { + $0 = $0 | 0; + return $0 | 0; + } + + function char__20std____2__copy_5babi_v160004_5d_char_20const__2c_20char___28char_20const__2c_20char_20const__2c_20char__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $3 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + std____2__pair_char_20const__2c_20char___20std____2____copy_5babi_v160004_5d_std____2___ClassicAlgPolicy_2c_20char_20const__2c_20char_20const__2c_20char___28char_20const__2c_20char_20const__2c_20char__29($3 + 8 | 0 | 0, $0 | 0, $1 | 0, $2 | 0); + $2 = HEAP32[($3 + 12 | 0) >> 2] | 0; + __stack_pointer = $3 + 16 | 0; + return $2 | 0; + } + + function std____2__pair_char_20const__2c_20char___20std____2____copy_5babi_v160004_5d_std____2___ClassicAlgPolicy_2c_20char_20const__2c_20char_20const__2c_20char___28char_20const__2c_20char_20const__2c_20char__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + std____2__pair_char_20const__2c_20char___20std____2____dispatch_copy_or_move_5babi_v160004_5d_std____2___ClassicAlgPolicy_2c_20std____2____copy_loop_std____2___ClassicAlgPolicy__2c_20std____2____copy_trivial_2c_20char_20const__2c_20char_20const__2c_20char___28char_20const__2c_20char_20const__2c_20char__29($0 | 0, $1 | 0, $2 | 0, $3 | 0); + } + + function std____2__pair_char_20const__2c_20char___20std____2____dispatch_copy_or_move_5babi_v160004_5d_std____2___ClassicAlgPolicy_2c_20std____2____copy_loop_std____2___ClassicAlgPolicy__2c_20std____2____copy_trivial_2c_20char_20const__2c_20char_20const__2c_20char___28char_20const__2c_20char_20const__2c_20char__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + std____2__pair_char_20const__2c_20char___20std____2____unwrap_and_dispatch_5babi_v160004_5d_std____2____overload_std____2____copy_loop_std____2___ClassicAlgPolicy__2c_20std____2____copy_trivial__2c_20char_20const__2c_20char_20const__2c_20char__2c_200__28char_20const__2c_20char_20const__2c_20char__29($0 | 0, $1 | 0, $2 | 0, $3 | 0); + } + + function std____2__pair_char_20const__2c_20char___20std____2____unwrap_and_dispatch_5babi_v160004_5d_std____2____overload_std____2____copy_loop_std____2___ClassicAlgPolicy__2c_20std____2____copy_trivial__2c_20char_20const__2c_20char_20const__2c_20char__2c_200__28char_20const__2c_20char_20const__2c_20char__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $4 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 32 | 0; + __stack_pointer = $4; + auto_20std____2____unwrap_range_5babi_v160004_5d_char_20const__2c_20char_20const___28char_20const__2c_20char_20const__29($4 + 24 | 0 | 0, $1 | 0, $2 | 0); + std____2__pair_char_20const__2c_20char___20std____2____copy_trivial__operator_28_29_5babi_v160004_5d_char_20const_2c_20char_2c_200__28char_20const__2c_20char_20const__2c_20char__29_20const($4 + 16 | 0 | 0, $4 + 12 | 0 | 0, HEAP32[($4 + 24 | 0) >> 2] | 0 | 0, HEAP32[($4 + 28 | 0) >> 2] | 0 | 0, decltype_28std____2____unwrap_iter_impl_char__2c_20true_____unwrap_28std__declval_char___28_29_29_29_20std____2____unwrap_iter_5babi_v160004_5d_char__2c_20std____2____unwrap_iter_impl_char__2c_20true__2c_200__28char__29($3 | 0) | 0 | 0); + (wasm2js_i32$0 = $4, wasm2js_i32$1 = char_20const__20std____2____rewrap_range_5babi_v160004_5d_char_20const__2c_20char_20const__2c_20char_20const___28char_20const__2c_20char_20const__29($1 | 0, HEAP32[($4 + 16 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = char__20std____2____rewrap_iter_5babi_v160004_5d_char__2c_20char__2c_20std____2____unwrap_iter_impl_char__2c_20true___28char__2c_20char__29($3 | 0, HEAP32[($4 + 20 | 0) >> 2] | 0 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + std____2__pair_std____2____unwrap_ref_decay_char_20const____type_2c_20std____2____unwrap_ref_decay_char____type__20std____2__make_pair_5babi_v160004_5d_char_20const__2c_20char___28char_20const____2c_20char____29($0 | 0, $4 + 12 | 0 | 0, $4 + 8 | 0 | 0); + __stack_pointer = $4 + 32 | 0; + } + + function auto_20std____2____unwrap_range_5babi_v160004_5d_char_20const__2c_20char_20const___28char_20const__2c_20char_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + std____2____unwrap_range_impl_char_20const__2c_20char_20const______unwrap_5babi_v160004_5d_28char_20const__2c_20char_20const__29($0 | 0, $1 | 0, $2 | 0); + } + + function decltype_28std____2____unwrap_iter_impl_char__2c_20true_____unwrap_28std__declval_char___28_29_29_29_20std____2____unwrap_iter_5babi_v160004_5d_char__2c_20std____2____unwrap_iter_impl_char__2c_20true__2c_200__28char__29($0) { + $0 = $0 | 0; + return std____2____unwrap_iter_impl_char__2c_20true_____unwrap_5babi_v160004_5d_28char__29($0 | 0) | 0 | 0; + } + + function std____2__pair_char_20const__2c_20char___20std____2____copy_trivial__operator_28_29_5babi_v160004_5d_char_20const_2c_20char_2c_200__28char_20const__2c_20char_20const__2c_20char__29_20const($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + std____2__pair_char_20const__2c_20char___20std____2____copy_trivial_impl_5babi_v160004_5d_char_20const_2c_20char__28char_20const__2c_20char_20const__2c_20char__29($0 | 0, $2 | 0, $3 | 0, $4 | 0); + } + + function char_20const__20std____2____rewrap_range_5babi_v160004_5d_char_20const__2c_20char_20const__2c_20char_20const___28char_20const__2c_20char_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + return std____2____unwrap_range_impl_char_20const__2c_20char_20const______rewrap_5babi_v160004_5d_28char_20const__2c_20char_20const__29($0 | 0, $1 | 0) | 0 | 0; + } + + function char__20std____2____rewrap_iter_5babi_v160004_5d_char__2c_20char__2c_20std____2____unwrap_iter_impl_char__2c_20true___28char__2c_20char__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + return std____2____unwrap_iter_impl_char__2c_20true_____rewrap_5babi_v160004_5d_28char__2c_20char__29($0 | 0, $1 | 0) | 0 | 0; + } + + function std____2__pair_std____2____unwrap_ref_decay_char_20const____type_2c_20std____2____unwrap_ref_decay_char____type__20std____2__make_pair_5babi_v160004_5d_char_20const__2c_20char___28char_20const____2c_20char____29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + std____2__pair_char_20const__2c_20char____pair_5babi_v160004_5d_char_20const__2c_20char__2c_20_28void__290__28char_20const____2c_20char____29($0 | 0, $1 | 0, $2 | 0) | 0; + } + + function std____2____unwrap_range_impl_char_20const__2c_20char_20const______unwrap_5babi_v160004_5d_28char_20const__2c_20char_20const__29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $3 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $3 = __stack_pointer - 16 | 0; + __stack_pointer = $3; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = decltype_28std____2____unwrap_iter_impl_char_20const__2c_20true_____unwrap_28std__declval_char_20const___28_29_29_29_20std____2____unwrap_iter_5babi_v160004_5d_char_20const__2c_20std____2____unwrap_iter_impl_char_20const__2c_20true__2c_200__28char_20const__29($1 | 0) | 0), HEAP32[(wasm2js_i32$0 + 12 | 0) >> 2] = wasm2js_i32$1; + (wasm2js_i32$0 = $3, wasm2js_i32$1 = decltype_28std____2____unwrap_iter_impl_char_20const__2c_20true_____unwrap_28std__declval_char_20const___28_29_29_29_20std____2____unwrap_iter_5babi_v160004_5d_char_20const__2c_20std____2____unwrap_iter_impl_char_20const__2c_20true__2c_200__28char_20const__29($2 | 0) | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + std____2__pair_char_20const__2c_20char_20const____pair_5babi_v160004_5d_char_20const__2c_20char_20const__2c_20_28void__290__28char_20const____2c_20char_20const____29($0 | 0, $3 + 12 | 0 | 0, $3 + 8 | 0 | 0) | 0; + __stack_pointer = $3 + 16 | 0; + } + + function std____2__pair_char_20const__2c_20char___20std____2____copy_trivial_impl_5babi_v160004_5d_char_20const_2c_20char__28char_20const__2c_20char_20const__2c_20char__29($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $4 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + $4 = __stack_pointer - 16 | 0; + __stack_pointer = $4; + HEAP32[($4 + 12 | 0) >> 2] = $2; + $2 = $2 - $1 | 0; + (wasm2js_i32$0 = $4, wasm2js_i32$1 = (memmove($3 | 0, $1 | 0, $2 | 0) | 0) + $2 | 0), HEAP32[(wasm2js_i32$0 + 8 | 0) >> 2] = wasm2js_i32$1; + std____2__pair_std____2____unwrap_ref_decay_char_20const_____type_2c_20std____2____unwrap_ref_decay_char____type__20std____2__make_pair_5babi_v160004_5d_char_20const___2c_20char___28char_20const___2c_20char____29($0 | 0, $4 + 12 | 0 | 0, $4 + 8 | 0 | 0); + __stack_pointer = $4 + 16 | 0; + } + + function std____2____unwrap_iter_impl_char__2c_20true_____unwrap_5babi_v160004_5d_28char__29($0) { + $0 = $0 | 0; + return char__20std____2____to_address_5babi_v160004_5d_char__28char__29($0 | 0) | 0 | 0; + } + + function std____2__pair_char_20const__2c_20char____pair_5babi_v160004_5d_char_20const__2c_20char__2c_20_28void__290__28char_20const____2c_20char____29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + HEAP32[$0 >> 2] = HEAP32[$1 >> 2] | 0; + HEAP32[($0 + 4 | 0) >> 2] = HEAP32[$2 >> 2] | 0; + return $0 | 0; + } + + function std____2____unwrap_range_impl_char_20const__2c_20char_20const______rewrap_5babi_v160004_5d_28char_20const__2c_20char_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + return char_20const__20std____2____rewrap_iter_5babi_v160004_5d_char_20const__2c_20char_20const__2c_20std____2____unwrap_iter_impl_char_20const__2c_20true___28char_20const__2c_20char_20const__29($0 | 0, $1 | 0) | 0 | 0; + } + + function std____2____unwrap_iter_impl_char__2c_20true_____rewrap_5babi_v160004_5d_28char__2c_20char__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + return $0 + ($1 - (char__20std____2____to_address_5babi_v160004_5d_char__28char__29($0 | 0) | 0) | 0) | 0 | 0; + } + + function decltype_28std____2____unwrap_iter_impl_char_20const__2c_20true_____unwrap_28std__declval_char_20const___28_29_29_29_20std____2____unwrap_iter_5babi_v160004_5d_char_20const__2c_20std____2____unwrap_iter_impl_char_20const__2c_20true__2c_200__28char_20const__29($0) { + $0 = $0 | 0; + return std____2____unwrap_iter_impl_char_20const__2c_20true_____unwrap_5babi_v160004_5d_28char_20const__29($0 | 0) | 0 | 0; + } + + function std____2__pair_char_20const__2c_20char_20const____pair_5babi_v160004_5d_char_20const__2c_20char_20const__2c_20_28void__290__28char_20const____2c_20char_20const____29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + HEAP32[$0 >> 2] = HEAP32[$1 >> 2] | 0; + HEAP32[($0 + 4 | 0) >> 2] = HEAP32[$2 >> 2] | 0; + return $0 | 0; + } + + function std____2____unwrap_iter_impl_char_20const__2c_20true_____unwrap_5babi_v160004_5d_28char_20const__29($0) { + $0 = $0 | 0; + return char_20const__20std____2____to_address_5babi_v160004_5d_char_20const__28char_20const__29($0 | 0) | 0 | 0; + } + + function std____2__pair_std____2____unwrap_ref_decay_char_20const_____type_2c_20std____2____unwrap_ref_decay_char____type__20std____2__make_pair_5babi_v160004_5d_char_20const___2c_20char___28char_20const___2c_20char____29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + std____2__pair_char_20const__2c_20char____pair_5babi_v160004_5d_char_20const___2c_20char__2c_20_28void__290__28char_20const___2c_20char____29($0 | 0, $1 | 0, $2 | 0) | 0; + } + + function std____2__pair_char_20const__2c_20char____pair_5babi_v160004_5d_char_20const___2c_20char__2c_20_28void__290__28char_20const___2c_20char____29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + HEAP32[$0 >> 2] = HEAP32[$1 >> 2] | 0; + HEAP32[($0 + 4 | 0) >> 2] = HEAP32[$2 >> 2] | 0; + return $0 | 0; + } + + function char_20const__20std____2____rewrap_iter_5babi_v160004_5d_char_20const__2c_20char_20const__2c_20std____2____unwrap_iter_impl_char_20const__2c_20true___28char_20const__2c_20char_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + return std____2____unwrap_iter_impl_char_20const__2c_20true_____rewrap_5babi_v160004_5d_28char_20const__2c_20char_20const__29($0 | 0, $1 | 0) | 0 | 0; + } + + function std____2____unwrap_iter_impl_char_20const__2c_20true_____rewrap_5babi_v160004_5d_28char_20const__2c_20char_20const__29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + return $0 + ($1 - (char_20const__20std____2____to_address_5babi_v160004_5d_char_20const__28char_20const__29($0 | 0) | 0) | 0) | 0 | 0; + } + + function std____2____libcpp_deallocate_5babi_v160004_5d_28void__2c_20unsigned_20long_2c_20unsigned_20long_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + label$1 : { + if (!(std____2____is_overaligned_for_new_5babi_v160004_5d_28unsigned_20long_29($2 | 0) | 0)) { + break label$1 + } + void_20std____2____do_deallocate_handle_size_5babi_v160004_5d_std__align_val_t__28void__2c_20unsigned_20long_2c_20std__align_val_t_29($0 | 0, $1 | 0, $2 | 0); + return; + } + void_20std____2____do_deallocate_handle_size_5babi_v160004_5d___28void__2c_20unsigned_20long_29($0 | 0, $1 | 0); + } + + function void_20std____2____do_deallocate_handle_size_5babi_v160004_5d_std__align_val_t__28void__2c_20unsigned_20long_2c_20std__align_val_t_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + void_20std____2____libcpp_operator_delete_5babi_v160004_5d_void__2c_20std__align_val_t__28void__2c_20std__align_val_t_29($0 | 0, $2 | 0); + } + + function void_20std____2____do_deallocate_handle_size_5babi_v160004_5d___28void__2c_20unsigned_20long_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + void_20std____2____libcpp_operator_delete_5babi_v160004_5d_void___28void__29($0 | 0); + } + + function void_20std____2____libcpp_operator_delete_5babi_v160004_5d_void__2c_20std__align_val_t__28void__2c_20std__align_val_t_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + operator_20delete_28void__2c_20std__align_val_t_29($0 | 0, $1 | 0); + } + + function void_20std____2____libcpp_operator_delete_5babi_v160004_5d_void___28void__29($0) { + $0 = $0 | 0; + operator_20delete_28void__29($0 | 0); + } + + function fputc($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + return do_putc($0 | 0, $1 | 0) | 0 | 0; + } + + function do_putc($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $2 = 0, $3 = 0; + label$1 : { + label$2 : { + $2 = HEAP32[($1 + 76 | 0) >> 2] | 0; + if (($2 | 0) < (0 | 0)) { + break label$2 + } + if (!$2) { + break label$1 + } + if (($2 & -1073741825 | 0 | 0) != (HEAP32[((__get_tp() | 0) + 24 | 0) >> 2] | 0 | 0)) { + break label$1 + } + } + label$3 : { + $2 = $0 & 255 | 0; + if (($2 | 0) == (HEAP32[($1 + 80 | 0) >> 2] | 0 | 0)) { + break label$3 + } + $3 = HEAP32[($1 + 20 | 0) >> 2] | 0; + if (($3 | 0) == (HEAP32[($1 + 16 | 0) >> 2] | 0 | 0)) { + break label$3 + } + HEAP32[($1 + 20 | 0) >> 2] = $3 + 1 | 0; + HEAP8[$3 >> 0] = $0; + return $2 | 0; + } + return __overflow($1 | 0, $2 | 0) | 0 | 0; + } + return locking_putc($0 | 0, $1 | 0) | 0 | 0; + } + + function locking_putc($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $3 = 0, $2 = 0, $4 = 0; + label$1 : { + $2 = $1 + 76 | 0; + if (!(a_cas($2 | 0) | 0)) { + break label$1 + } + __lockfile($1 | 0) | 0; + } + label$2 : { + label$3 : { + $3 = $0 & 255 | 0; + if (($3 | 0) == (HEAP32[($1 + 80 | 0) >> 2] | 0 | 0)) { + break label$3 + } + $4 = HEAP32[($1 + 20 | 0) >> 2] | 0; + if (($4 | 0) == (HEAP32[($1 + 16 | 0) >> 2] | 0 | 0)) { + break label$3 + } + HEAP32[($1 + 20 | 0) >> 2] = $4 + 1 | 0; + HEAP8[$4 >> 0] = $0; + break label$2; + } + $3 = __overflow($1 | 0, $3 | 0) | 0; + } + label$4 : { + if (!((a_swap($2 | 0) | 0) & 1073741824 | 0)) { + break label$4 + } + __wake($2 | 0); + } + return $3 | 0; + } + + function a_cas($0) { + $0 = $0 | 0; + var $1 = 0; + $1 = HEAP32[$0 >> 2] | 0; + HEAP32[$0 >> 2] = $1 ? $1 : 1073741823; + return $1 | 0; + } + + function a_swap($0) { + $0 = $0 | 0; + var $1 = 0; + $1 = HEAP32[$0 >> 2] | 0; + HEAP32[$0 >> 2] = 0; + return $1 | 0; + } + + function __wake($0) { + $0 = $0 | 0; + emscripten_futex_wake($0 | 0, 1 | 0) | 0; + } + + function abort_message($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $3 = 0, $2 = 0; + $2 = __stack_pointer - 16 | 0; + __stack_pointer = $2; + $3 = HEAP32[(0 + 109264 | 0) >> 2] | 0; + fwrite(88317 | 0, 11 | 0, 1 | 0, $3 | 0) | 0; + HEAP32[($2 + 12 | 0) >> 2] = $1; + vfprintf($3 | 0, $0 | 0, $1 | 0) | 0; + fputc(10 | 0, $3 | 0) | 0; + abort(); + wasm2js_trap(); + } + + function void_20_28_std____2___28anonymous_20namespace_29____libcpp_atomic_load_5babi_v160004_5d_void_20_28__29_28_29__28void_20_28__20const__29_28_29_2c_20int_29_29_28_29($0) { + $0 = $0 | 0; + return HEAP32[$0 >> 2] | 0 | 0; + } + + function std__get_new_handler_28_29() { + return void_20_28_std____2___28anonymous_20namespace_29____libcpp_atomic_load_5babi_v160004_5d_void_20_28__29_28_29__28void_20_28__20const__29_28_29_2c_20int_29_29_28_29(117988 | 0) | 0 | 0; + } + + function __cxa_pure_virtual() { + abort_message(88287 | 0, 0 | 0); + wasm2js_trap(); + } + + function __cxxabiv1____shim_type_info_____shim_type_info_28_29($0) { + $0 = $0 | 0; + return std__type_info___type_info_28_29($0 | 0) | 0 | 0; + } + + function __cxxabiv1____shim_type_info__noop1_28_29_20const($0) { + $0 = $0 | 0; + } + + function __cxxabiv1____shim_type_info__noop2_28_29_20const($0) { + $0 = $0 | 0; + } + + function __cxxabiv1____fundamental_type_info_____fundamental_type_info_28_29($0) { + $0 = $0 | 0; + operator_20delete_28void__29(__cxxabiv1____shim_type_info_____shim_type_info_28_29($0 | 0) | 0 | 0); + } + + function __cxxabiv1____class_type_info_____class_type_info_28_29($0) { + $0 = $0 | 0; + operator_20delete_28void__29(__cxxabiv1____shim_type_info_____shim_type_info_28_29($0 | 0) | 0 | 0); + } + + function __cxxabiv1____si_class_type_info_____si_class_type_info_28_29($0) { + $0 = $0 | 0; + operator_20delete_28void__29(__cxxabiv1____shim_type_info_____shim_type_info_28_29($0 | 0) | 0 | 0); + } + + function __cxxabiv1____vmi_class_type_info_____vmi_class_type_info_28_29($0) { + $0 = $0 | 0; + operator_20delete_28void__29(__cxxabiv1____shim_type_info_____shim_type_info_28_29($0 | 0) | 0 | 0); + } + + function __cxxabiv1____pointer_type_info_____pointer_type_info_28_29($0) { + $0 = $0 | 0; + operator_20delete_28void__29(__cxxabiv1____shim_type_info_____shim_type_info_28_29($0 | 0) | 0 | 0); + } + + function __cxxabiv1____fundamental_type_info__can_catch_28__cxxabiv1____shim_type_info_20const__2c_20void___29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + return is_equal_28std__type_info_20const__2c_20std__type_info_20const__2c_20bool_29($0 | 0, $1 | 0, 0 | 0) | 0 | 0; + } + + function is_equal_28std__type_info_20const__2c_20std__type_info_20const__2c_20bool_29($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + label$1 : { + if ($2) { + break label$1 + } + return (HEAP32[($0 + 4 | 0) >> 2] | 0 | 0) == (HEAP32[($1 + 4 | 0) >> 2] | 0 | 0) | 0; + } + label$2 : { + if (($0 | 0) != ($1 | 0)) { + break label$2 + } + return 1 | 0; + } + return !(strcmp(std__type_info__name_5babi_v160004_5d_28_29_20const($0 | 0) | 0 | 0, std__type_info__name_5babi_v160004_5d_28_29_20const($1 | 0) | 0 | 0) | 0) | 0; + } + + function std__type_info__name_5babi_v160004_5d_28_29_20const($0) { + $0 = $0 | 0; + return HEAP32[($0 + 4 | 0) >> 2] | 0 | 0; + } + + function __cxxabiv1____class_type_info__can_catch_28__cxxabiv1____shim_type_info_20const__2c_20void___29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $3 = 0, $4 = 0; + $3 = __stack_pointer - 64 | 0; + __stack_pointer = $3; + $4 = 1; + label$1 : { + if (is_equal_28std__type_info_20const__2c_20std__type_info_20const__2c_20bool_29($0 | 0, $1 | 0, 0 | 0) | 0) { + break label$1 + } + $4 = 0; + if (!$1) { + break label$1 + } + $4 = 0; + $1 = __dynamic_cast($1 | 0, 109304 | 0, 109352 | 0, 0 | 0) | 0; + if (!$1) { + break label$1 + } + __memset($3 + 12 | 0 | 0, 0 | 0, 52 | 0) | 0; + HEAP32[($3 + 56 | 0) >> 2] = 1; + HEAP32[($3 + 20 | 0) >> 2] = -1; + HEAP32[($3 + 16 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = $1; + FUNCTION_TABLE[HEAP32[((HEAP32[$1 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($1, $3 + 8 | 0, HEAP32[$2 >> 2] | 0, 1); + label$2 : { + $4 = HEAP32[($3 + 32 | 0) >> 2] | 0; + if (($4 | 0) != (1 | 0)) { + break label$2 + } + HEAP32[$2 >> 2] = HEAP32[($3 + 24 | 0) >> 2] | 0; + } + $4 = ($4 | 0) == (1 | 0); + } + __stack_pointer = $3 + 64 | 0; + return $4 | 0; + } + + function __dynamic_cast($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $6 = 0, $5 = 0, $9 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0, wasm2js_i32$4 = 0, wasm2js_i32$5 = 0, wasm2js_i32$6 = 0, wasm2js_i32$7 = 0, wasm2js_i32$8 = 0; + $4 = __stack_pointer - 64 | 0; + __stack_pointer = $4; + $5 = HEAP32[$0 >> 2] | 0; + $6 = HEAP32[($5 + -4 | 0) >> 2] | 0; + $5 = HEAP32[($5 + -8 | 0) >> 2] | 0; + i64toi32_i32$1 = $4 + 32 | 0; + i64toi32_i32$0 = 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $4 + 40 | 0; + i64toi32_i32$0 = 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $4 + 48 | 0; + i64toi32_i32$0 = 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $4 + 55 | 0; + i64toi32_i32$0 = 0; + $9 = 0; + HEAP8[i64toi32_i32$1 >> 0] = $9; + HEAP8[(i64toi32_i32$1 + 1 | 0) >> 0] = $9 >>> 8 | 0; + HEAP8[(i64toi32_i32$1 + 2 | 0) >> 0] = $9 >>> 16 | 0; + HEAP8[(i64toi32_i32$1 + 3 | 0) >> 0] = $9 >>> 24 | 0; + HEAP8[(i64toi32_i32$1 + 4 | 0) >> 0] = i64toi32_i32$0; + HEAP8[(i64toi32_i32$1 + 5 | 0) >> 0] = i64toi32_i32$0 >>> 8 | 0; + HEAP8[(i64toi32_i32$1 + 6 | 0) >> 0] = i64toi32_i32$0 >>> 16 | 0; + HEAP8[(i64toi32_i32$1 + 7 | 0) >> 0] = i64toi32_i32$0 >>> 24 | 0; + i64toi32_i32$1 = $4; + i64toi32_i32$0 = 0; + HEAP32[($4 + 24 | 0) >> 2] = 0; + HEAP32[($4 + 28 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4 + 20 | 0) >> 2] = $3; + HEAP32[($4 + 16 | 0) >> 2] = $1; + HEAP32[($4 + 12 | 0) >> 2] = $0; + HEAP32[($4 + 8 | 0) >> 2] = $2; + $0 = $0 + $5 | 0; + $3 = 0; + label$1 : { + label$2 : { + if (!(is_equal_28std__type_info_20const__2c_20std__type_info_20const__2c_20bool_29($6 | 0, $2 | 0, 0 | 0) | 0)) { + break label$2 + } + HEAP32[($4 + 56 | 0) >> 2] = 1; + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($6, $4 + 8 | 0, $0, $0, 1, 0); + $3 = (HEAP32[($4 + 32 | 0) >> 2] | 0 | 0) == (1 | 0) ? $0 : 0; + break label$1; + } + FUNCTION_TABLE[HEAP32[((HEAP32[$6 >> 2] | 0) + 24 | 0) >> 2] | 0 | 0]($6, $4 + 8 | 0, $0, 1, 0); + label$3 : { + switch (HEAP32[($4 + 44 | 0) >> 2] | 0 | 0) { + case 0: + $3 = (wasm2js_i32$0 = (wasm2js_i32$3 = (wasm2js_i32$6 = HEAP32[($4 + 28 | 0) >> 2] | 0, wasm2js_i32$7 = 0, wasm2js_i32$8 = (HEAP32[($4 + 40 | 0) >> 2] | 0 | 0) == (1 | 0), wasm2js_i32$8 ? wasm2js_i32$6 : wasm2js_i32$7), wasm2js_i32$4 = 0, wasm2js_i32$5 = (HEAP32[($4 + 36 | 0) >> 2] | 0 | 0) == (1 | 0), wasm2js_i32$5 ? wasm2js_i32$3 : wasm2js_i32$4), wasm2js_i32$1 = 0, wasm2js_i32$2 = (HEAP32[($4 + 48 | 0) >> 2] | 0 | 0) == (1 | 0), wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); + break label$1; + case 1: + break label$3; + default: + break label$1; + }; + } + label$5 : { + if ((HEAP32[($4 + 32 | 0) >> 2] | 0 | 0) == (1 | 0)) { + break label$5 + } + if (HEAP32[($4 + 48 | 0) >> 2] | 0) { + break label$1 + } + if ((HEAP32[($4 + 36 | 0) >> 2] | 0 | 0) != (1 | 0)) { + break label$1 + } + if ((HEAP32[($4 + 40 | 0) >> 2] | 0 | 0) != (1 | 0)) { + break label$1 + } + } + $3 = HEAP32[($4 + 24 | 0) >> 2] | 0; + } + __stack_pointer = $4 + 64 | 0; + return $3 | 0; + } + + function __cxxabiv1____class_type_info__process_found_base_class_28__cxxabiv1____dynamic_cast_info__2c_20void__2c_20int_29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $4 = 0; + label$1 : { + $4 = HEAP32[($1 + 16 | 0) >> 2] | 0; + if ($4) { + break label$1 + } + HEAP32[($1 + 36 | 0) >> 2] = 1; + HEAP32[($1 + 24 | 0) >> 2] = $3; + HEAP32[($1 + 16 | 0) >> 2] = $2; + return; + } + label$2 : { + label$3 : { + if (($4 | 0) != ($2 | 0)) { + break label$3 + } + if ((HEAP32[($1 + 24 | 0) >> 2] | 0 | 0) != (2 | 0)) { + break label$2 + } + HEAP32[($1 + 24 | 0) >> 2] = $3; + return; + } + HEAP8[($1 + 54 | 0) >> 0] = 1; + HEAP32[($1 + 24 | 0) >> 2] = 2; + HEAP32[($1 + 36 | 0) >> 2] = (HEAP32[($1 + 36 | 0) >> 2] | 0) + 1 | 0; + } + } + + function __cxxabiv1____class_type_info__has_unambiguous_public_base_28__cxxabiv1____dynamic_cast_info__2c_20void__2c_20int_29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + label$1 : { + if (!(is_equal_28std__type_info_20const__2c_20std__type_info_20const__2c_20bool_29($0 | 0, HEAP32[($1 + 8 | 0) >> 2] | 0 | 0, 0 | 0) | 0)) { + break label$1 + } + __cxxabiv1____class_type_info__process_found_base_class_28__cxxabiv1____dynamic_cast_info__2c_20void__2c_20int_29_20const($1 | 0, $1 | 0, $2 | 0, $3 | 0); + } + } + + function __cxxabiv1____si_class_type_info__has_unambiguous_public_base_28__cxxabiv1____dynamic_cast_info__2c_20void__2c_20int_29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + label$1 : { + if (!(is_equal_28std__type_info_20const__2c_20std__type_info_20const__2c_20bool_29($0 | 0, HEAP32[($1 + 8 | 0) >> 2] | 0 | 0, 0 | 0) | 0)) { + break label$1 + } + __cxxabiv1____class_type_info__process_found_base_class_28__cxxabiv1____dynamic_cast_info__2c_20void__2c_20int_29_20const($1 | 0, $1 | 0, $2 | 0, $3 | 0); + return; + } + $0 = HEAP32[($0 + 8 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$0 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($0, $1, $2, $3); + } + + function __cxxabiv1____base_class_type_info__has_unambiguous_public_base_28__cxxabiv1____dynamic_cast_info__2c_20void__2c_20int_29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $5 = 0, $4 = 0; + $4 = HEAP32[($0 + 4 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if ($2) { + break label$2 + } + $5 = 0; + break label$1; + } + $5 = $4 >> 8 | 0; + if (!($4 & 1 | 0)) { + break label$1 + } + $5 = update_offset_to_base_28char_20const__2c_20long_29(HEAP32[$2 >> 2] | 0 | 0, $5 | 0) | 0; + } + $0 = HEAP32[$0 >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$0 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($0, $1, $2 + $5 | 0, $4 & 2 | 0 ? $3 : 2); + } + + function update_offset_to_base_28char_20const__2c_20long_29($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + return HEAP32[($0 + $1 | 0) >> 2] | 0 | 0; + } + + function __cxxabiv1____vmi_class_type_info__has_unambiguous_public_base_28__cxxabiv1____dynamic_cast_info__2c_20void__2c_20int_29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $4 = 0, $5 = 0; + label$1 : { + if (!(is_equal_28std__type_info_20const__2c_20std__type_info_20const__2c_20bool_29($0 | 0, HEAP32[($1 + 8 | 0) >> 2] | 0 | 0, 0 | 0) | 0)) { + break label$1 + } + __cxxabiv1____class_type_info__process_found_base_class_28__cxxabiv1____dynamic_cast_info__2c_20void__2c_20int_29_20const($0 | 0, $1 | 0, $2 | 0, $3 | 0); + return; + } + $4 = HEAP32[($0 + 12 | 0) >> 2] | 0; + $5 = $0 + 16 | 0; + __cxxabiv1____base_class_type_info__has_unambiguous_public_base_28__cxxabiv1____dynamic_cast_info__2c_20void__2c_20int_29_20const($5 | 0, $1 | 0, $2 | 0, $3 | 0); + label$2 : { + $0 = $0 + 24 | 0; + $4 = $5 + ($4 << 3 | 0) | 0; + if ($0 >>> 0 >= $4 >>> 0) { + break label$2 + } + label$3 : while (1) { + __cxxabiv1____base_class_type_info__has_unambiguous_public_base_28__cxxabiv1____dynamic_cast_info__2c_20void__2c_20int_29_20const($0 | 0, $1 | 0, $2 | 0, $3 | 0); + if (HEAPU8[($1 + 54 | 0) >> 0] | 0) { + break label$2 + } + $0 = $0 + 8 | 0; + if ($0 >>> 0 < $4 >>> 0) { + continue label$3 + } + break label$3; + }; + } + } + + function __cxxabiv1____pbase_type_info__can_catch_28__cxxabiv1____shim_type_info_20const__2c_20void___29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $3 = 0, $4 = 0; + $3 = 1; + label$1 : { + label$2 : { + if ((HEAPU8[($0 + 8 | 0) >> 0] | 0) & 24 | 0) { + break label$2 + } + $3 = 0; + if (!$1) { + break label$1 + } + $4 = __dynamic_cast($1 | 0, 109304 | 0, 109400 | 0, 0 | 0) | 0; + if (!$4) { + break label$1 + } + $3 = ((HEAPU8[($4 + 8 | 0) >> 0] | 0) & 24 | 0 | 0) != (0 | 0); + } + $3 = is_equal_28std__type_info_20const__2c_20std__type_info_20const__2c_20bool_29($0 | 0, $1 | 0, $3 | 0) | 0; + } + return $3 | 0; + } + + function __cxxabiv1____pointer_type_info__can_catch_28__cxxabiv1____shim_type_info_20const__2c_20void___29_20const($0, $1, $2) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + var $4 = 0, $3 = 0, $5 = 0, $6 = 0; + $3 = __stack_pointer - 64 | 0; + __stack_pointer = $3; + label$1 : { + label$2 : { + if (!(is_equal_28std__type_info_20const__2c_20std__type_info_20const__2c_20bool_29($1 | 0, 109668 | 0, 0 | 0) | 0)) { + break label$2 + } + HEAP32[$2 >> 2] = 0; + $4 = 1; + break label$1; + } + label$3 : { + if (!(__cxxabiv1____pbase_type_info__can_catch_28__cxxabiv1____shim_type_info_20const__2c_20void___29_20const($0 | 0, $1 | 0, $1 | 0) | 0)) { + break label$3 + } + $4 = 1; + $1 = HEAP32[$2 >> 2] | 0; + if (!$1) { + break label$1 + } + HEAP32[$2 >> 2] = HEAP32[$1 >> 2] | 0; + break label$1; + } + label$4 : { + if (!$1) { + break label$4 + } + $4 = 0; + $1 = __dynamic_cast($1 | 0, 109304 | 0, 109448 | 0, 0 | 0) | 0; + if (!$1) { + break label$1 + } + label$5 : { + $5 = HEAP32[$2 >> 2] | 0; + if (!$5) { + break label$5 + } + HEAP32[$2 >> 2] = HEAP32[$5 >> 2] | 0; + } + $5 = HEAP32[($1 + 8 | 0) >> 2] | 0; + $6 = HEAP32[($0 + 8 | 0) >> 2] | 0; + if (($5 & ($6 ^ -1 | 0) | 0) & 7 | 0) { + break label$1 + } + if ((($5 ^ -1 | 0) & $6 | 0) & 96 | 0) { + break label$1 + } + $4 = 1; + if (is_equal_28std__type_info_20const__2c_20std__type_info_20const__2c_20bool_29(HEAP32[($0 + 12 | 0) >> 2] | 0 | 0, HEAP32[($1 + 12 | 0) >> 2] | 0 | 0, 0 | 0) | 0) { + break label$1 + } + label$6 : { + if (!(is_equal_28std__type_info_20const__2c_20std__type_info_20const__2c_20bool_29(HEAP32[($0 + 12 | 0) >> 2] | 0 | 0, 109656 | 0, 0 | 0) | 0)) { + break label$6 + } + $1 = HEAP32[($1 + 12 | 0) >> 2] | 0; + if (!$1) { + break label$1 + } + $4 = !(__dynamic_cast($1 | 0, 109304 | 0, 109500 | 0, 0 | 0) | 0); + break label$1; + } + $5 = HEAP32[($0 + 12 | 0) >> 2] | 0; + if (!$5) { + break label$4 + } + $4 = 0; + label$7 : { + $6 = __dynamic_cast($5 | 0, 109304 | 0, 109448 | 0, 0 | 0) | 0; + if (!$6) { + break label$7 + } + if (!((HEAPU8[($0 + 8 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + $4 = __cxxabiv1____pointer_type_info__can_catch_nested_28__cxxabiv1____shim_type_info_20const__29_20const($6 | 0, HEAP32[($1 + 12 | 0) >> 2] | 0 | 0) | 0; + break label$1; + } + $4 = 0; + label$8 : { + $6 = __dynamic_cast($5 | 0, 109304 | 0, 109560 | 0, 0 | 0) | 0; + if (!$6) { + break label$8 + } + if (!((HEAPU8[($0 + 8 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + $4 = __cxxabiv1____pointer_to_member_type_info__can_catch_nested_28__cxxabiv1____shim_type_info_20const__29_20const($6 | 0, HEAP32[($1 + 12 | 0) >> 2] | 0 | 0) | 0; + break label$1; + } + $4 = 0; + $0 = __dynamic_cast($5 | 0, 109304 | 0, 109352 | 0, 0 | 0) | 0; + if (!$0) { + break label$1 + } + $1 = HEAP32[($1 + 12 | 0) >> 2] | 0; + if (!$1) { + break label$1 + } + $4 = 0; + $1 = __dynamic_cast($1 | 0, 109304 | 0, 109352 | 0, 0 | 0) | 0; + if (!$1) { + break label$1 + } + __memset($3 + 12 | 0 | 0, 0 | 0, 52 | 0) | 0; + HEAP32[($3 + 56 | 0) >> 2] = 1; + HEAP32[($3 + 20 | 0) >> 2] = -1; + HEAP32[($3 + 16 | 0) >> 2] = $0; + HEAP32[($3 + 8 | 0) >> 2] = $1; + FUNCTION_TABLE[HEAP32[((HEAP32[$1 >> 2] | 0) + 28 | 0) >> 2] | 0 | 0]($1, $3 + 8 | 0, HEAP32[$2 >> 2] | 0, 1); + label$9 : { + $1 = HEAP32[($3 + 32 | 0) >> 2] | 0; + if (($1 | 0) != (1 | 0)) { + break label$9 + } + if (!(HEAP32[$2 >> 2] | 0)) { + break label$9 + } + HEAP32[$2 >> 2] = HEAP32[($3 + 24 | 0) >> 2] | 0; + } + $4 = ($1 | 0) == (1 | 0); + break label$1; + } + $4 = 0; + } + __stack_pointer = $3 + 64 | 0; + return $4 | 0; + } + + function __cxxabiv1____pointer_type_info__can_catch_nested_28__cxxabiv1____shim_type_info_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $2 = 0, $3 = 0; + label$1 : { + label$2 : while (1) { + label$3 : { + if ($1) { + break label$3 + } + return 0 | 0; + } + $2 = 0; + $1 = __dynamic_cast($1 | 0, 109304 | 0, 109448 | 0, 0 | 0) | 0; + if (!$1) { + break label$1 + } + if ((HEAP32[($1 + 8 | 0) >> 2] | 0) & ((HEAP32[($0 + 8 | 0) >> 2] | 0) ^ -1 | 0) | 0) { + break label$1 + } + label$4 : { + if (!(is_equal_28std__type_info_20const__2c_20std__type_info_20const__2c_20bool_29(HEAP32[($0 + 12 | 0) >> 2] | 0 | 0, HEAP32[($1 + 12 | 0) >> 2] | 0 | 0, 0 | 0) | 0)) { + break label$4 + } + return 1 | 0; + } + if (!((HEAPU8[($0 + 8 | 0) >> 0] | 0) & 1 | 0)) { + break label$1 + } + $3 = HEAP32[($0 + 12 | 0) >> 2] | 0; + if (!$3) { + break label$1 + } + label$5 : { + $0 = __dynamic_cast($3 | 0, 109304 | 0, 109448 | 0, 0 | 0) | 0; + if (!$0) { + break label$5 + } + $1 = HEAP32[($1 + 12 | 0) >> 2] | 0; + continue label$2; + } + break label$2; + }; + $2 = 0; + $0 = __dynamic_cast($3 | 0, 109304 | 0, 109560 | 0, 0 | 0) | 0; + if (!$0) { + break label$1 + } + $2 = __cxxabiv1____pointer_to_member_type_info__can_catch_nested_28__cxxabiv1____shim_type_info_20const__29_20const($0 | 0, HEAP32[($1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + return $2 | 0; + } + + function __cxxabiv1____pointer_to_member_type_info__can_catch_nested_28__cxxabiv1____shim_type_info_20const__29_20const($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; + var $2 = 0; + $2 = 0; + label$1 : { + if (!$1) { + break label$1 + } + $1 = __dynamic_cast($1 | 0, 109304 | 0, 109560 | 0, 0 | 0) | 0; + if (!$1) { + break label$1 + } + if ((HEAP32[($1 + 8 | 0) >> 2] | 0) & ((HEAP32[($0 + 8 | 0) >> 2] | 0) ^ -1 | 0) | 0) { + break label$1 + } + $2 = 0; + if (!(is_equal_28std__type_info_20const__2c_20std__type_info_20const__2c_20bool_29(HEAP32[($0 + 12 | 0) >> 2] | 0 | 0, HEAP32[($1 + 12 | 0) >> 2] | 0 | 0, 0 | 0) | 0)) { + break label$1 + } + $2 = is_equal_28std__type_info_20const__2c_20std__type_info_20const__2c_20bool_29(HEAP32[($0 + 16 | 0) >> 2] | 0 | 0, HEAP32[($1 + 16 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + } + return $2 | 0; + } + + function __cxxabiv1____class_type_info__process_static_type_above_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20void_20const__2c_20int_29_20const($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + HEAP8[($1 + 53 | 0) >> 0] = 1; + label$1 : { + if ((HEAP32[($1 + 4 | 0) >> 2] | 0 | 0) != ($3 | 0)) { + break label$1 + } + HEAP8[($1 + 52 | 0) >> 0] = 1; + label$2 : { + label$3 : { + $3 = HEAP32[($1 + 16 | 0) >> 2] | 0; + if ($3) { + break label$3 + } + HEAP32[($1 + 36 | 0) >> 2] = 1; + HEAP32[($1 + 24 | 0) >> 2] = $4; + HEAP32[($1 + 16 | 0) >> 2] = $2; + if (($4 | 0) != (1 | 0)) { + break label$1 + } + if ((HEAP32[($1 + 48 | 0) >> 2] | 0 | 0) == (1 | 0)) { + break label$2 + } + break label$1; + } + label$4 : { + if (($3 | 0) != ($2 | 0)) { + break label$4 + } + label$5 : { + $3 = HEAP32[($1 + 24 | 0) >> 2] | 0; + if (($3 | 0) != (2 | 0)) { + break label$5 + } + HEAP32[($1 + 24 | 0) >> 2] = $4; + $3 = $4; + } + if ((HEAP32[($1 + 48 | 0) >> 2] | 0 | 0) != (1 | 0)) { + break label$1 + } + if (($3 | 0) == (1 | 0)) { + break label$2 + } + break label$1; + } + HEAP32[($1 + 36 | 0) >> 2] = (HEAP32[($1 + 36 | 0) >> 2] | 0) + 1 | 0; + } + HEAP8[($1 + 54 | 0) >> 0] = 1; + } + } + + function __cxxabiv1____class_type_info__process_static_type_below_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20int_29_20const($0, $1, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + label$1 : { + if ((HEAP32[($1 + 4 | 0) >> 2] | 0 | 0) != ($2 | 0)) { + break label$1 + } + if ((HEAP32[($1 + 28 | 0) >> 2] | 0 | 0) == (1 | 0)) { + break label$1 + } + HEAP32[($1 + 28 | 0) >> 2] = $3; + } + } + + function __cxxabiv1____vmi_class_type_info__search_below_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20int_2c_20bool_29_20const($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $5 = 0, $8 = 0, $6 = 0, $7 = 0; + label$1 : { + if (!(is_equal_28std__type_info_20const__2c_20std__type_info_20const__2c_20bool_29($0 | 0, HEAP32[($1 + 8 | 0) >> 2] | 0 | 0, $4 | 0) | 0)) { + break label$1 + } + __cxxabiv1____class_type_info__process_static_type_below_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20int_29_20const($1 | 0, $1 | 0, $2 | 0, $3 | 0); + return; + } + label$2 : { + label$3 : { + if (!(is_equal_28std__type_info_20const__2c_20std__type_info_20const__2c_20bool_29($0 | 0, HEAP32[$1 >> 2] | 0 | 0, $4 | 0) | 0)) { + break label$3 + } + label$4 : { + label$5 : { + if ((HEAP32[($1 + 16 | 0) >> 2] | 0 | 0) == ($2 | 0)) { + break label$5 + } + if ((HEAP32[($1 + 20 | 0) >> 2] | 0 | 0) != ($2 | 0)) { + break label$4 + } + } + if (($3 | 0) != (1 | 0)) { + break label$2 + } + HEAP32[($1 + 32 | 0) >> 2] = 1; + return; + } + HEAP32[($1 + 32 | 0) >> 2] = $3; + label$6 : { + if ((HEAP32[($1 + 44 | 0) >> 2] | 0 | 0) == (4 | 0)) { + break label$6 + } + $5 = $0 + 16 | 0; + $3 = $5 + ((HEAP32[($0 + 12 | 0) >> 2] | 0) << 3 | 0) | 0; + $6 = 0; + $7 = 0; + label$7 : { + label$8 : { + label$9 : { + label$10 : while (1) { + if ($5 >>> 0 >= $3 >>> 0) { + break label$9 + } + HEAP16[($1 + 52 | 0) >> 1] = 0; + __cxxabiv1____base_class_type_info__search_above_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20void_20const__2c_20int_2c_20bool_29_20const($5 | 0, $1 | 0, $2 | 0, $2 | 0, 1 | 0, $4 | 0); + if (HEAPU8[($1 + 54 | 0) >> 0] | 0) { + break label$9 + } + label$11 : { + if (!(HEAPU8[($1 + 53 | 0) >> 0] | 0)) { + break label$11 + } + label$12 : { + if (!(HEAPU8[($1 + 52 | 0) >> 0] | 0)) { + break label$12 + } + $8 = 1; + if ((HEAP32[($1 + 24 | 0) >> 2] | 0 | 0) == (1 | 0)) { + break label$8 + } + $6 = 1; + $7 = 1; + $8 = 1; + if ((HEAPU8[($0 + 8 | 0) >> 0] | 0) & 2 | 0) { + break label$11 + } + break label$8; + } + $6 = 1; + $8 = $7; + if (!((HEAPU8[($0 + 8 | 0) >> 0] | 0) & 1 | 0)) { + break label$8 + } + } + $5 = $5 + 8 | 0; + continue label$10; + }; + } + $5 = 4; + $8 = $7; + if (!($6 & 1 | 0)) { + break label$7 + } + } + $5 = 3; + } + HEAP32[($1 + 44 | 0) >> 2] = $5; + if ($8 & 1 | 0) { + break label$2 + } + } + HEAP32[($1 + 20 | 0) >> 2] = $2; + HEAP32[($1 + 40 | 0) >> 2] = (HEAP32[($1 + 40 | 0) >> 2] | 0) + 1 | 0; + if ((HEAP32[($1 + 36 | 0) >> 2] | 0 | 0) != (1 | 0)) { + break label$2 + } + if ((HEAP32[($1 + 24 | 0) >> 2] | 0 | 0) != (2 | 0)) { + break label$2 + } + HEAP8[($1 + 54 | 0) >> 0] = 1; + return; + } + $8 = HEAP32[($0 + 12 | 0) >> 2] | 0; + $6 = $0 + 16 | 0; + __cxxabiv1____base_class_type_info__search_below_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20int_2c_20bool_29_20const($6 | 0, $1 | 0, $2 | 0, $3 | 0, $4 | 0); + $5 = $0 + 24 | 0; + $8 = $6 + ($8 << 3 | 0) | 0; + if ($5 >>> 0 >= $8 >>> 0) { + break label$2 + } + label$13 : { + label$14 : { + $0 = HEAP32[($0 + 8 | 0) >> 2] | 0; + if ($0 & 2 | 0) { + break label$14 + } + if ((HEAP32[($1 + 36 | 0) >> 2] | 0 | 0) != (1 | 0)) { + break label$13 + } + } + label$15 : while (1) { + if (HEAPU8[($1 + 54 | 0) >> 0] | 0) { + break label$2 + } + __cxxabiv1____base_class_type_info__search_below_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20int_2c_20bool_29_20const($5 | 0, $1 | 0, $2 | 0, $3 | 0, $4 | 0); + $5 = $5 + 8 | 0; + if ($5 >>> 0 < $8 >>> 0) { + continue label$15 + } + break label$2; + }; + } + label$16 : { + if ($0 & 1 | 0) { + break label$16 + } + label$17 : while (1) { + if (HEAPU8[($1 + 54 | 0) >> 0] | 0) { + break label$2 + } + if ((HEAP32[($1 + 36 | 0) >> 2] | 0 | 0) == (1 | 0)) { + break label$2 + } + __cxxabiv1____base_class_type_info__search_below_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20int_2c_20bool_29_20const($5 | 0, $1 | 0, $2 | 0, $3 | 0, $4 | 0); + $5 = $5 + 8 | 0; + if ($5 >>> 0 < $8 >>> 0) { + continue label$17 + } + break label$2; + }; + } + label$18 : while (1) { + if (HEAPU8[($1 + 54 | 0) >> 0] | 0) { + break label$2 + } + label$19 : { + if ((HEAP32[($1 + 36 | 0) >> 2] | 0 | 0) != (1 | 0)) { + break label$19 + } + if ((HEAP32[($1 + 24 | 0) >> 2] | 0 | 0) == (1 | 0)) { + break label$2 + } + } + __cxxabiv1____base_class_type_info__search_below_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20int_2c_20bool_29_20const($5 | 0, $1 | 0, $2 | 0, $3 | 0, $4 | 0); + $5 = $5 + 8 | 0; + if ($5 >>> 0 < $8 >>> 0) { + continue label$18 + } + break label$18; + }; + } + } + + function __cxxabiv1____base_class_type_info__search_above_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20void_20const__2c_20int_2c_20bool_29_20const($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $6 = 0, $7 = 0; + $6 = HEAP32[($0 + 4 | 0) >> 2] | 0; + $7 = $6 >> 8 | 0; + label$1 : { + if (!($6 & 1 | 0)) { + break label$1 + } + $7 = update_offset_to_base_28char_20const__2c_20long_29(HEAP32[$3 >> 2] | 0 | 0, $7 | 0) | 0; + } + $0 = HEAP32[$0 >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$0 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($0, $1, $2, $3 + $7 | 0, $6 & 2 | 0 ? $4 : 2, $5); + } + + function __cxxabiv1____base_class_type_info__search_below_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20int_2c_20bool_29_20const($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var $5 = 0, $6 = 0; + $5 = HEAP32[($0 + 4 | 0) >> 2] | 0; + $6 = $5 >> 8 | 0; + label$1 : { + if (!($5 & 1 | 0)) { + break label$1 + } + $6 = update_offset_to_base_28char_20const__2c_20long_29(HEAP32[$2 >> 2] | 0 | 0, $6 | 0) | 0; + } + $0 = HEAP32[$0 >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$0 >> 2] | 0) + 24 | 0) >> 2] | 0 | 0]($0, $1, $2 + $6 | 0, $5 & 2 | 0 ? $3 : 2, $4); + } + + function __cxxabiv1____si_class_type_info__search_below_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20int_2c_20bool_29_20const($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + label$1 : { + if (!(is_equal_28std__type_info_20const__2c_20std__type_info_20const__2c_20bool_29($0 | 0, HEAP32[($1 + 8 | 0) >> 2] | 0 | 0, $4 | 0) | 0)) { + break label$1 + } + __cxxabiv1____class_type_info__process_static_type_below_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20int_29_20const($1 | 0, $1 | 0, $2 | 0, $3 | 0); + return; + } + label$2 : { + label$3 : { + if (!(is_equal_28std__type_info_20const__2c_20std__type_info_20const__2c_20bool_29($0 | 0, HEAP32[$1 >> 2] | 0 | 0, $4 | 0) | 0)) { + break label$3 + } + label$4 : { + label$5 : { + if ((HEAP32[($1 + 16 | 0) >> 2] | 0 | 0) == ($2 | 0)) { + break label$5 + } + if ((HEAP32[($1 + 20 | 0) >> 2] | 0 | 0) != ($2 | 0)) { + break label$4 + } + } + if (($3 | 0) != (1 | 0)) { + break label$2 + } + HEAP32[($1 + 32 | 0) >> 2] = 1; + return; + } + HEAP32[($1 + 32 | 0) >> 2] = $3; + label$6 : { + if ((HEAP32[($1 + 44 | 0) >> 2] | 0 | 0) == (4 | 0)) { + break label$6 + } + HEAP16[($1 + 52 | 0) >> 1] = 0; + $0 = HEAP32[($0 + 8 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$0 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($0, $1, $2, $2, 1, $4); + label$7 : { + if (!(HEAPU8[($1 + 53 | 0) >> 0] | 0)) { + break label$7 + } + HEAP32[($1 + 44 | 0) >> 2] = 3; + if (!(HEAPU8[($1 + 52 | 0) >> 0] | 0)) { + break label$6 + } + break label$2; + } + HEAP32[($1 + 44 | 0) >> 2] = 4; + } + HEAP32[($1 + 20 | 0) >> 2] = $2; + HEAP32[($1 + 40 | 0) >> 2] = (HEAP32[($1 + 40 | 0) >> 2] | 0) + 1 | 0; + if ((HEAP32[($1 + 36 | 0) >> 2] | 0 | 0) != (1 | 0)) { + break label$2 + } + if ((HEAP32[($1 + 24 | 0) >> 2] | 0 | 0) != (2 | 0)) { + break label$2 + } + HEAP8[($1 + 54 | 0) >> 0] = 1; + return; + } + $0 = HEAP32[($0 + 8 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$0 >> 2] | 0) + 24 | 0) >> 2] | 0 | 0]($0, $1, $2, $3, $4); + } + } + + function __cxxabiv1____class_type_info__search_below_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20int_2c_20bool_29_20const($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + label$1 : { + if (!(is_equal_28std__type_info_20const__2c_20std__type_info_20const__2c_20bool_29($0 | 0, HEAP32[($1 + 8 | 0) >> 2] | 0 | 0, $4 | 0) | 0)) { + break label$1 + } + __cxxabiv1____class_type_info__process_static_type_below_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20int_29_20const($1 | 0, $1 | 0, $2 | 0, $3 | 0); + return; + } + label$2 : { + if (!(is_equal_28std__type_info_20const__2c_20std__type_info_20const__2c_20bool_29($0 | 0, HEAP32[$1 >> 2] | 0 | 0, $4 | 0) | 0)) { + break label$2 + } + label$3 : { + label$4 : { + if ((HEAP32[($1 + 16 | 0) >> 2] | 0 | 0) == ($2 | 0)) { + break label$4 + } + if ((HEAP32[($1 + 20 | 0) >> 2] | 0 | 0) != ($2 | 0)) { + break label$3 + } + } + if (($3 | 0) != (1 | 0)) { + break label$2 + } + HEAP32[($1 + 32 | 0) >> 2] = 1; + return; + } + HEAP32[($1 + 20 | 0) >> 2] = $2; + HEAP32[($1 + 32 | 0) >> 2] = $3; + HEAP32[($1 + 40 | 0) >> 2] = (HEAP32[($1 + 40 | 0) >> 2] | 0) + 1 | 0; + label$5 : { + if ((HEAP32[($1 + 36 | 0) >> 2] | 0 | 0) != (1 | 0)) { + break label$5 + } + if ((HEAP32[($1 + 24 | 0) >> 2] | 0 | 0) != (2 | 0)) { + break label$5 + } + HEAP8[($1 + 54 | 0) >> 0] = 1; + } + HEAP32[($1 + 44 | 0) >> 2] = 4; + } + } + + function __cxxabiv1____vmi_class_type_info__search_above_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20void_20const__2c_20int_2c_20bool_29_20const($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + var $6 = 0, $8 = 0, $7 = 0, $10 = 0, $12 = 0, $11 = 0, $9 = 0; + label$1 : { + if (!(is_equal_28std__type_info_20const__2c_20std__type_info_20const__2c_20bool_29($0 | 0, HEAP32[($1 + 8 | 0) >> 2] | 0 | 0, $5 | 0) | 0)) { + break label$1 + } + __cxxabiv1____class_type_info__process_static_type_above_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20void_20const__2c_20int_29_20const($1 | 0, $1 | 0, $2 | 0, $3 | 0, $4 | 0); + return; + } + $6 = HEAPU8[($1 + 53 | 0) >> 0] | 0; + $7 = HEAP32[($0 + 12 | 0) >> 2] | 0; + HEAP8[($1 + 53 | 0) >> 0] = 0; + $8 = HEAPU8[($1 + 52 | 0) >> 0] | 0; + HEAP8[($1 + 52 | 0) >> 0] = 0; + $9 = $0 + 16 | 0; + __cxxabiv1____base_class_type_info__search_above_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20void_20const__2c_20int_2c_20bool_29_20const($9 | 0, $1 | 0, $2 | 0, $3 | 0, $4 | 0, $5 | 0); + $10 = HEAPU8[($1 + 53 | 0) >> 0] | 0; + $11 = $6 | $10 | 0; + $12 = HEAPU8[($1 + 52 | 0) >> 0] | 0; + $8 = $8 | $12 | 0; + label$2 : { + $6 = $0 + 24 | 0; + $7 = $9 + ($7 << 3 | 0) | 0; + if ($6 >>> 0 >= $7 >>> 0) { + break label$2 + } + label$3 : while (1) { + if (HEAPU8[($1 + 54 | 0) >> 0] | 0) { + break label$2 + } + label$4 : { + label$5 : { + if (!($12 & 255 | 0)) { + break label$5 + } + if ((HEAP32[($1 + 24 | 0) >> 2] | 0 | 0) == (1 | 0)) { + break label$2 + } + if ((HEAPU8[($0 + 8 | 0) >> 0] | 0) & 2 | 0) { + break label$4 + } + break label$2; + } + if (!($10 & 255 | 0)) { + break label$4 + } + if (!((HEAPU8[($0 + 8 | 0) >> 0] | 0) & 1 | 0)) { + break label$2 + } + } + HEAP16[($1 + 52 | 0) >> 1] = 0; + __cxxabiv1____base_class_type_info__search_above_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20void_20const__2c_20int_2c_20bool_29_20const($6 | 0, $1 | 0, $2 | 0, $3 | 0, $4 | 0, $5 | 0); + $10 = HEAPU8[($1 + 53 | 0) >> 0] | 0; + $11 = $10 | $11 | 0; + $12 = HEAPU8[($1 + 52 | 0) >> 0] | 0; + $8 = $12 | $8 | 0; + $6 = $6 + 8 | 0; + if ($6 >>> 0 < $7 >>> 0) { + continue label$3 + } + break label$3; + }; + } + HEAP8[($1 + 53 | 0) >> 0] = ($11 & 255 | 0 | 0) != (0 | 0); + HEAP8[($1 + 52 | 0) >> 0] = ($8 & 255 | 0 | 0) != (0 | 0); + } + + function __cxxabiv1____si_class_type_info__search_above_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20void_20const__2c_20int_2c_20bool_29_20const($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + label$1 : { + if (!(is_equal_28std__type_info_20const__2c_20std__type_info_20const__2c_20bool_29($0 | 0, HEAP32[($1 + 8 | 0) >> 2] | 0 | 0, $5 | 0) | 0)) { + break label$1 + } + __cxxabiv1____class_type_info__process_static_type_above_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20void_20const__2c_20int_29_20const($1 | 0, $1 | 0, $2 | 0, $3 | 0, $4 | 0); + return; + } + $0 = HEAP32[($0 + 8 | 0) >> 2] | 0; + FUNCTION_TABLE[HEAP32[((HEAP32[$0 >> 2] | 0) + 20 | 0) >> 2] | 0 | 0]($0, $1, $2, $3, $4, $5); + } + + function __cxxabiv1____class_type_info__search_above_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20void_20const__2c_20int_2c_20bool_29_20const($0, $1, $2, $3, $4, $5) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + $5 = $5 | 0; + label$1 : { + if (!(is_equal_28std__type_info_20const__2c_20std__type_info_20const__2c_20bool_29($0 | 0, HEAP32[($1 + 8 | 0) >> 2] | 0 | 0, $5 | 0) | 0)) { + break label$1 + } + __cxxabiv1____class_type_info__process_static_type_above_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20void_20const__2c_20int_29_20const($1 | 0, $1 | 0, $2 | 0, $3 | 0, $4 | 0); + } + } + + function std__type_info___type_info_28_29($0) { + $0 = $0 | 0; + return $0 | 0; + } + + function emscripten_stack_init() { + __stack_base = 65536; + __stack_end = (0 + 15 | 0) & -16 | 0; + } + + function emscripten_stack_get_free() { + return __stack_pointer - __stack_end | 0 | 0; + } + + function emscripten_stack_get_base() { + return __stack_base | 0; + } + + function emscripten_stack_get_end() { + return __stack_end | 0; + } + + function stackSave() { + return __stack_pointer | 0; + } + + function stackRestore($0) { + $0 = $0 | 0; + __stack_pointer = $0; + } + + function stackAlloc($0) { + $0 = $0 | 0; + var $1 = 0; + $1 = (__stack_pointer - $0 | 0) & -16 | 0; + __stack_pointer = $1; + return $1 | 0; + } + + function emscripten_stack_get_current() { + return __stack_pointer | 0; + } + + function setTempRet0($0) { + $0 = $0 | 0; + tempRet0 = $0; + } + + function fflush($0) { + $0 = $0 | 0; + var $1 = 0, i64toi32_i32$1 = 0, $2 = 0, i64toi32_i32$0 = 0, $3 = 0; + label$1 : { + if ($0) { + break label$1 + } + $1 = 0; + label$2 : { + if (!(HEAP32[(0 + 113e3 | 0) >> 2] | 0)) { + break label$2 + } + $1 = fflush(HEAP32[(0 + 113e3 | 0) >> 2] | 0 | 0) | 0; + } + label$3 : { + if (!(HEAP32[(0 + 113152 | 0) >> 2] | 0)) { + break label$3 + } + $1 = fflush(HEAP32[(0 + 113152 | 0) >> 2] | 0 | 0) | 0 | $1 | 0; + } + label$4 : { + $0 = HEAP32[(__ofl_lock() | 0) >> 2] | 0; + if (!$0) { + break label$4 + } + label$5 : while (1) { + $2 = 0; + label$6 : { + if ((HEAP32[($0 + 76 | 0) >> 2] | 0 | 0) < (0 | 0)) { + break label$6 + } + $2 = __lockfile($0 | 0) | 0; + } + label$7 : { + if ((HEAP32[($0 + 20 | 0) >> 2] | 0 | 0) == (HEAP32[($0 + 28 | 0) >> 2] | 0 | 0)) { + break label$7 + } + $1 = fflush($0 | 0) | 0 | $1 | 0; + } + label$8 : { + if (!$2) { + break label$8 + } + __unlockfile($0 | 0); + } + $0 = HEAP32[($0 + 56 | 0) >> 2] | 0; + if ($0) { + continue label$5 + } + break label$5; + }; + } + __ofl_unlock(); + return $1 | 0; + } + $2 = 0; + label$9 : { + if ((HEAP32[($0 + 76 | 0) >> 2] | 0 | 0) < (0 | 0)) { + break label$9 + } + $2 = __lockfile($0 | 0) | 0; + } + label$10 : { + label$11 : { + label$12 : { + if ((HEAP32[($0 + 20 | 0) >> 2] | 0 | 0) == (HEAP32[($0 + 28 | 0) >> 2] | 0 | 0)) { + break label$12 + } + FUNCTION_TABLE[HEAP32[($0 + 36 | 0) >> 2] | 0 | 0]($0, 0, 0) | 0; + if (HEAP32[($0 + 20 | 0) >> 2] | 0) { + break label$12 + } + $1 = -1; + if ($2) { + break label$11 + } + break label$10; + } + label$13 : { + $1 = HEAP32[($0 + 4 | 0) >> 2] | 0; + $3 = HEAP32[($0 + 8 | 0) >> 2] | 0; + if (($1 | 0) == ($3 | 0)) { + break label$13 + } + i64toi32_i32$1 = $1 - $3 | 0; + i64toi32_i32$0 = i64toi32_i32$1 >> 31 | 0; + i64toi32_i32$0 = FUNCTION_TABLE[HEAP32[($0 + 40 | 0) >> 2] | 0 | 0]($0, i64toi32_i32$1, i64toi32_i32$0, 1) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + } + $1 = 0; + HEAP32[($0 + 28 | 0) >> 2] = 0; + i64toi32_i32$0 = $0; + i64toi32_i32$1 = 0; + HEAP32[($0 + 16 | 0) >> 2] = 0; + HEAP32[($0 + 20 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$0 = $0; + i64toi32_i32$1 = 0; + HEAP32[($0 + 4 | 0) >> 2] = 0; + HEAP32[($0 + 8 | 0) >> 2] = i64toi32_i32$1; + if (!$2) { + break label$10 + } + } + __unlockfile($0 | 0); + } + return $1 | 0; + } + + function dynCall_jiji(fptr, $0, $1, $1$hi, $2) { + fptr = fptr | 0; + $0 = $0 | 0; + $1 = $1 | 0; + $1$hi = $1$hi | 0; + $2 = $2 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$0 = FUNCTION_TABLE[fptr | 0]($0, $1, i64toi32_i32$0, $2) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + i64toi32_i32$HIGH_BITS = i64toi32_i32$1; + return i64toi32_i32$0 | 0; + } + + function legalstub$dynCall_jiji($0, $1, $2, $3, $4) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $4 = $4 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $17 = 0, $18 = 0, $6 = 0, $7 = 0, $9 = 0, $9$hi = 0, $12$hi = 0, $5 = 0, $5$hi = 0; + $6 = $0; + $7 = $1; + i64toi32_i32$0 = 0; + $9 = $2; + $9$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + i64toi32_i32$2 = $3; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $17 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0; + $17 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + } + $12$hi = i64toi32_i32$1; + i64toi32_i32$1 = $9$hi; + i64toi32_i32$0 = $9; + i64toi32_i32$2 = $12$hi; + i64toi32_i32$3 = $17; + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + i64toi32_i32$2 = dynCall_jiji($6 | 0, $7 | 0, i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0, $4 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $5 = i64toi32_i32$2; + $5$hi = i64toi32_i32$0; + i64toi32_i32$1 = i64toi32_i32$2; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $18 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $18 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0; + } + setTempRet0($18 | 0); + i64toi32_i32$2 = $5$hi; + return $5 | 0; + } + + function legalfunc$_embind_register_bigint($0, $1, $2, $3, $3$hi, $4, $4$hi) { + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + $3$hi = $3$hi | 0; + $4 = $4 | 0; + $4$hi = $4$hi | 0; + var i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, i64toi32_i32$2 = 0, $18 = 0, $19 = 0, $5 = 0, $6 = 0, $7 = 0, $9 = 0, $12 = 0, $14 = 0; + $5 = $0; + $6 = $1; + $7 = $2; + i64toi32_i32$0 = $3$hi; + $9 = $3; + i64toi32_i32$2 = $3; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $18 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $18 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; + } + $12 = $18; + i64toi32_i32$1 = $4$hi; + $14 = $4; + i64toi32_i32$0 = $4; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $19 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $19 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0; + } + legalimport$_embind_register_bigint($5 | 0, $6 | 0, $7 | 0, $9 | 0, $12 | 0, $14 | 0, $19 | 0); + } + + function legalfunc$__wasi_fd_seek($0, $1, $1$hi, $2, $3) { + $0 = $0 | 0; + $1 = $1 | 0; + $1$hi = $1$hi | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $12 = 0, $4 = 0, $6 = 0, i64toi32_i32$2 = 0; + $4 = $0; + i64toi32_i32$0 = $1$hi; + $6 = $1; + i64toi32_i32$2 = $1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $12 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $12 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; + } + return legalimport$__wasi_fd_seek($4 | 0, $6 | 0, $12 | 0, $2 | 0, $3 | 0) | 0 | 0; + } + + function _ZN17compiler_builtins3int3mul3Mul3mul17h070e9a1c69faec5bE(var$0, var$0$hi, var$1, var$1$hi) { + var$0 = var$0 | 0; + var$0$hi = var$0$hi | 0; + var$1 = var$1 | 0; + var$1$hi = var$1$hi | 0; + var i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, var$2 = 0, i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, var$3 = 0, var$4 = 0, var$5 = 0, $21 = 0, $22 = 0, var$6 = 0, $24 = 0, $17 = 0, $18 = 0, $23 = 0, $29 = 0, $45 = 0, $56$hi = 0, $62$hi = 0; + i64toi32_i32$0 = var$1$hi; + var$2 = var$1; + var$4 = var$2 >>> 16 | 0; + i64toi32_i32$0 = var$0$hi; + var$3 = var$0; + var$5 = var$3 >>> 16 | 0; + $17 = Math_imul(var$4, var$5); + $18 = var$2; + i64toi32_i32$2 = var$3; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $21 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $21 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; + } + $23 = $17 + Math_imul($18, $21) | 0; + i64toi32_i32$1 = var$1$hi; + i64toi32_i32$0 = var$1; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $22 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $22 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0; + } + $29 = $23 + Math_imul($22, var$3) | 0; + var$2 = var$2 & 65535 | 0; + var$3 = var$3 & 65535 | 0; + var$6 = Math_imul(var$2, var$3); + var$2 = (var$6 >>> 16 | 0) + Math_imul(var$2, var$5) | 0; + $45 = $29 + (var$2 >>> 16 | 0) | 0; + var$2 = (var$2 & 65535 | 0) + Math_imul(var$4, var$3) | 0; + i64toi32_i32$2 = 0; + i64toi32_i32$1 = $45 + (var$2 >>> 16 | 0) | 0; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0; + $24 = 0; + } else { + i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0; + $24 = i64toi32_i32$1 << i64toi32_i32$4 | 0; + } + $56$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $62$hi = i64toi32_i32$0; + i64toi32_i32$0 = $56$hi; + i64toi32_i32$2 = $24; + i64toi32_i32$1 = $62$hi; + i64toi32_i32$3 = var$2 << 16 | 0 | (var$6 & 65535 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0; + i64toi32_i32$2 = i64toi32_i32$2 | i64toi32_i32$3 | 0; + i64toi32_i32$HIGH_BITS = i64toi32_i32$1; + return i64toi32_i32$2 | 0; + } + + function _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0, var$0$hi, var$1, var$1$hi) { + var$0 = var$0 | 0; + var$0$hi = var$0$hi | 0; + var$1 = var$1 | 0; + var$1$hi = var$1$hi | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$3 = 0, var$4 = 0, var$5 = 0, var$5$hi = 0, var$6 = 0, var$6$hi = 0, i64toi32_i32$6 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, var$8$hi = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, var$7$hi = 0, $49 = 0, $63$hi = 0, $65 = 0, $65$hi = 0, $120$hi = 0, $129$hi = 0, $134$hi = 0, var$8 = 0, $140 = 0, $140$hi = 0, $142$hi = 0, $144 = 0, $144$hi = 0, $151 = 0, $151$hi = 0, $154$hi = 0, var$7 = 0, $165$hi = 0; + label$1 : { + label$2 : { + label$3 : { + label$4 : { + label$5 : { + label$6 : { + label$7 : { + label$8 : { + label$9 : { + label$10 : { + label$11 : { + i64toi32_i32$0 = var$0$hi; + i64toi32_i32$2 = var$0; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $37 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $37 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; + } + var$2 = $37; + if (var$2) { + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + if (!var$3) { + break label$11 + } + i64toi32_i32$1 = var$1$hi; + i64toi32_i32$0 = var$1; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $38 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $38 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0; + } + var$4 = $38; + if (!var$4) { + break label$9 + } + var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; + if (var$2 >>> 0 <= 31 >>> 0) { + break label$8 + } + break label$2; + } + i64toi32_i32$2 = var$1$hi; + i64toi32_i32$1 = var$1; + i64toi32_i32$0 = 1; + i64toi32_i32$3 = 0; + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { + break label$2 + } + i64toi32_i32$1 = var$0$hi; + var$2 = var$0; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; + i64toi32_i32$1 = 0; + __wasm_intrinsics_temp_i64 = var$0 - Math_imul(var$2, var$3) | 0; + __wasm_intrinsics_temp_i64$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + i64toi32_i32$2 = var$2; + i64toi32_i32$HIGH_BITS = i64toi32_i32$1; + return i64toi32_i32$2 | 0; + } + i64toi32_i32$2 = var$1$hi; + i64toi32_i32$3 = var$1; + i64toi32_i32$1 = 0; + i64toi32_i32$0 = 32; + i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $39 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $39 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0; + } + var$3 = $39; + i64toi32_i32$1 = var$0$hi; + if (!var$0) { + break label$7 + } + if (!var$3) { + break label$6 + } + var$4 = var$3 + -1 | 0; + if (var$4 & var$3 | 0) { + break label$6 + } + i64toi32_i32$1 = 0; + i64toi32_i32$2 = var$4 & var$2 | 0; + i64toi32_i32$3 = 0; + i64toi32_i32$0 = 32; + i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $40 = 0; + } else { + i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0; + $40 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + } + $63$hi = i64toi32_i32$3; + i64toi32_i32$3 = var$0$hi; + i64toi32_i32$1 = var$0; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = -1; + i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; + $65 = i64toi32_i32$1 & i64toi32_i32$0 | 0; + $65$hi = i64toi32_i32$2; + i64toi32_i32$2 = $63$hi; + i64toi32_i32$3 = $40; + i64toi32_i32$1 = $65$hi; + i64toi32_i32$0 = $65; + i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0; + __wasm_intrinsics_temp_i64 = i64toi32_i32$3 | i64toi32_i32$0 | 0; + __wasm_intrinsics_temp_i64$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0; + i64toi32_i32$HIGH_BITS = i64toi32_i32$1; + return i64toi32_i32$3 | 0; + } + } + var$4 = var$3 + -1 | 0; + if (!(var$4 & var$3 | 0)) { + break label$5 + } + var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0; + var$3 = 0 - var$2 | 0; + break label$3; + } + var$3 = 63 - var$2 | 0; + var$2 = var$2 + 1 | 0; + break label$3; + } + var$4 = (var$2 >>> 0) / (var$3 >>> 0) | 0; + i64toi32_i32$3 = 0; + i64toi32_i32$2 = var$2 - Math_imul(var$4, var$3) | 0; + i64toi32_i32$1 = 0; + i64toi32_i32$0 = 32; + i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $41 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0; + $41 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + } + __wasm_intrinsics_temp_i64 = $41; + __wasm_intrinsics_temp_i64$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + i64toi32_i32$2 = var$4; + i64toi32_i32$HIGH_BITS = i64toi32_i32$1; + return i64toi32_i32$2 | 0; + } + var$2 = Math_clz32(var$3) - Math_clz32(var$2) | 0; + if (var$2 >>> 0 < 31 >>> 0) { + break label$4 + } + break label$2; + } + i64toi32_i32$2 = var$0$hi; + i64toi32_i32$2 = 0; + __wasm_intrinsics_temp_i64 = var$4 & var$0 | 0; + __wasm_intrinsics_temp_i64$hi = i64toi32_i32$2; + if ((var$3 | 0) == (1 | 0)) { + break label$1 + } + i64toi32_i32$2 = var$0$hi; + i64toi32_i32$2 = 0; + $120$hi = i64toi32_i32$2; + i64toi32_i32$2 = var$0$hi; + i64toi32_i32$3 = var$0; + i64toi32_i32$1 = $120$hi; + i64toi32_i32$0 = __wasm_ctz_i32(var$3 | 0) | 0; + i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $42 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $42 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0; + } + i64toi32_i32$3 = $42; + i64toi32_i32$HIGH_BITS = i64toi32_i32$1; + return i64toi32_i32$3 | 0; + } + var$3 = 63 - var$2 | 0; + var$2 = var$2 + 1 | 0; + } + i64toi32_i32$3 = var$0$hi; + i64toi32_i32$3 = 0; + $129$hi = i64toi32_i32$3; + i64toi32_i32$3 = var$0$hi; + i64toi32_i32$2 = var$0; + i64toi32_i32$1 = $129$hi; + i64toi32_i32$0 = var$2 & 63 | 0; + i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $43 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; + $43 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; + } + var$5 = $43; + var$5$hi = i64toi32_i32$1; + i64toi32_i32$1 = var$0$hi; + i64toi32_i32$1 = 0; + $134$hi = i64toi32_i32$1; + i64toi32_i32$1 = var$0$hi; + i64toi32_i32$3 = var$0; + i64toi32_i32$2 = $134$hi; + i64toi32_i32$0 = var$3 & 63 | 0; + i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$3 << i64toi32_i32$4 | 0; + $44 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0; + $44 = i64toi32_i32$3 << i64toi32_i32$4 | 0; + } + var$0 = $44; + var$0$hi = i64toi32_i32$2; + label$13 : { + if (var$2) { + i64toi32_i32$2 = var$1$hi; + i64toi32_i32$1 = var$1; + i64toi32_i32$3 = -1; + i64toi32_i32$0 = -1; + i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0; + i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + var$8 = i64toi32_i32$4; + var$8$hi = i64toi32_i32$5; + label$15 : while (1) { + i64toi32_i32$5 = var$5$hi; + i64toi32_i32$2 = var$5; + i64toi32_i32$1 = 0; + i64toi32_i32$0 = 1; + i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0; + $45 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0; + $45 = i64toi32_i32$2 << i64toi32_i32$3 | 0; + } + $140 = $45; + $140$hi = i64toi32_i32$1; + i64toi32_i32$1 = var$0$hi; + i64toi32_i32$5 = var$0; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = 63; + i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $46 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; + $46 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0; + } + $142$hi = i64toi32_i32$2; + i64toi32_i32$2 = $140$hi; + i64toi32_i32$1 = $140; + i64toi32_i32$5 = $142$hi; + i64toi32_i32$0 = $46; + i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0; + var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0; + var$5$hi = i64toi32_i32$5; + $144 = var$5; + $144$hi = i64toi32_i32$5; + i64toi32_i32$5 = var$8$hi; + i64toi32_i32$5 = var$5$hi; + i64toi32_i32$5 = var$8$hi; + i64toi32_i32$2 = var$8; + i64toi32_i32$1 = var$5$hi; + i64toi32_i32$0 = var$5; + i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0; + i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0; + i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0; + i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0; + i64toi32_i32$5 = i64toi32_i32$3; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = 63; + i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0; + $47 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; + $47 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0; + } + var$6 = $47; + var$6$hi = i64toi32_i32$2; + i64toi32_i32$2 = var$1$hi; + i64toi32_i32$2 = var$6$hi; + i64toi32_i32$4 = var$6; + i64toi32_i32$5 = var$1$hi; + i64toi32_i32$0 = var$1; + i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0; + $151 = i64toi32_i32$4 & i64toi32_i32$0 | 0; + $151$hi = i64toi32_i32$5; + i64toi32_i32$5 = $144$hi; + i64toi32_i32$2 = $144; + i64toi32_i32$4 = $151$hi; + i64toi32_i32$0 = $151; + i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0; + i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0; + i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0; + i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0; + var$5 = i64toi32_i32$1; + var$5$hi = i64toi32_i32$3; + i64toi32_i32$3 = var$0$hi; + i64toi32_i32$5 = var$0; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = 1; + i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $48 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0; + $48 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + } + $154$hi = i64toi32_i32$2; + i64toi32_i32$2 = var$7$hi; + i64toi32_i32$2 = $154$hi; + i64toi32_i32$3 = $48; + i64toi32_i32$5 = var$7$hi; + i64toi32_i32$0 = var$7; + i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0; + var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0; + var$0$hi = i64toi32_i32$5; + i64toi32_i32$5 = var$6$hi; + i64toi32_i32$2 = var$6; + i64toi32_i32$3 = 0; + i64toi32_i32$0 = 1; + i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0; + var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0; + var$6$hi = i64toi32_i32$3; + var$7 = var$6; + var$7$hi = i64toi32_i32$3; + var$2 = var$2 + -1 | 0; + if (var$2) { + continue label$15 + } + break label$15; + }; + break label$13; + } + } + i64toi32_i32$3 = var$5$hi; + __wasm_intrinsics_temp_i64 = var$5; + __wasm_intrinsics_temp_i64$hi = i64toi32_i32$3; + i64toi32_i32$3 = var$0$hi; + i64toi32_i32$5 = var$0; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = 1; + i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $49 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0; + $49 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + } + $165$hi = i64toi32_i32$2; + i64toi32_i32$2 = var$6$hi; + i64toi32_i32$2 = $165$hi; + i64toi32_i32$3 = $49; + i64toi32_i32$5 = var$6$hi; + i64toi32_i32$0 = var$6; + i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0; + i64toi32_i32$3 = i64toi32_i32$3 | i64toi32_i32$0 | 0; + i64toi32_i32$HIGH_BITS = i64toi32_i32$5; + return i64toi32_i32$3 | 0; + } + i64toi32_i32$3 = var$0$hi; + __wasm_intrinsics_temp_i64 = var$0; + __wasm_intrinsics_temp_i64$hi = i64toi32_i32$3; + i64toi32_i32$3 = 0; + var$0 = 0; + var$0$hi = i64toi32_i32$3; + } + i64toi32_i32$3 = var$0$hi; + i64toi32_i32$5 = var$0; + i64toi32_i32$HIGH_BITS = i64toi32_i32$3; + return i64toi32_i32$5 | 0; + } + + function __wasm_ctz_i32(var$0) { + var$0 = var$0 | 0; + if (var$0) { + return 31 - Math_clz32((var$0 + -1 | 0) ^ var$0 | 0) | 0 | 0 + } + return 32 | 0; + } + + function __wasm_i64_mul(var$0, var$0$hi, var$1, var$1$hi) { + var$0 = var$0 | 0; + var$0$hi = var$0$hi | 0; + var$1 = var$1 | 0; + var$1$hi = var$1$hi | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + i64toi32_i32$0 = var$0$hi; + i64toi32_i32$0 = var$1$hi; + i64toi32_i32$0 = var$0$hi; + i64toi32_i32$1 = var$1$hi; + i64toi32_i32$1 = _ZN17compiler_builtins3int3mul3Mul3mul17h070e9a1c69faec5bE(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + i64toi32_i32$HIGH_BITS = i64toi32_i32$0; + return i64toi32_i32$1 | 0; + } + + function __wasm_i64_udiv(var$0, var$0$hi, var$1, var$1$hi) { + var$0 = var$0 | 0; + var$0$hi = var$0$hi | 0; + var$1 = var$1 | 0; + var$1$hi = var$1$hi | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + i64toi32_i32$0 = var$0$hi; + i64toi32_i32$0 = var$1$hi; + i64toi32_i32$0 = var$0$hi; + i64toi32_i32$1 = var$1$hi; + i64toi32_i32$1 = _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + i64toi32_i32$HIGH_BITS = i64toi32_i32$0; + return i64toi32_i32$1 | 0; + } + + function __wasm_rotl_i32(var$0, var$1) { + var$0 = var$0 | 0; + var$1 = var$1 | 0; + var var$2 = 0; + var$2 = var$1 & 31 | 0; + var$1 = (0 - var$1 | 0) & 31 | 0; + return ((-1 >>> var$2 | 0) & var$0 | 0) << var$2 | 0 | (((-1 << var$1 | 0) & var$0 | 0) >>> var$1 | 0) | 0 | 0; + } + + // EMSCRIPTEN_END_FUNCS +; + bufferView = HEAPU8; + initActiveSegments(imports); + var FUNCTION_TABLE = Table([null, __cxx_global_array_dtor, __cxx_global_array_dtor_5, __cxx_global_array_dtor_6, __cxx_global_array_dtor_7, __cxx_global_array_dtor_8, __cxx_global_array_dtor_9, __cxx_global_array_dtor_10, embind_init_bullet_28_29, void_20const__20emscripten__internal__getActualType_btDebugDraw__28btDebugDraw__29, void_20emscripten__internal__raw_destructor_btDebugDraw__28btDebugDraw__29, void_20const__20emscripten__internal__getActualType_btDebugDrawWrapper__28btDebugDrawWrapper__29, void_20emscripten__internal__raw_destructor_btDebugDrawWrapper__28btDebugDrawWrapper__29, btDebugDrawWrapper__20emscripten__internal__wrapped_new_btDebugDrawWrapper__2c_20btDebugDrawWrapper_2c_20emscripten__val__28emscripten__val___29, emscripten__internal__Invoker_btDebugDrawWrapper__2c_20emscripten__val_____invoke_28btDebugDrawWrapper__20_28__29_28emscripten__val___29_2c_20emscripten___EM_VAL__29, emscripten__val_20emscripten__internal__wrapped_extend_btDebugDrawWrapper__28std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const__29, emscripten__internal__Invoker_emscripten__val_2c_20std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const____invoke_28emscripten__val_20_28__29_28std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const__29_2c_20emscripten__internal__BindingType_std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___2c_20void____unnamed___2c_20emscripten___EM_VAL__29, void_20const__20emscripten__internal__getActualType_btControllerHitReport__28btControllerHitReport__29, void_20emscripten__internal__raw_destructor_btControllerHitReport__28btControllerHitReport__29, void_20const__20emscripten__internal__getActualType_btControllerHitReportWrapper__28btControllerHitReportWrapper__29, void_20emscripten__internal__raw_destructor_btControllerHitReportWrapper__28btControllerHitReportWrapper__29, btControllerHitReportWrapper__20emscripten__internal__wrapped_new_btControllerHitReportWrapper__2c_20btControllerHitReportWrapper_2c_20emscripten__val__28emscripten__val___29, emscripten__internal__Invoker_btControllerHitReportWrapper__2c_20emscripten__val_____invoke_28btControllerHitReportWrapper__20_28__29_28emscripten__val___29_2c_20emscripten___EM_VAL__29, emscripten__val_20emscripten__internal__wrapped_extend_btControllerHitReportWrapper__28std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const__29, void_20const__20emscripten__internal__getActualType_cc__ccMotionState__28cc__ccMotionState__29, void_20emscripten__internal__raw_destructor_cc__ccMotionState__28cc__ccMotionState__29, void_20const__20emscripten__internal__getActualType_ccMotionStateWrapper__28ccMotionStateWrapper__29, void_20emscripten__internal__raw_destructor_ccMotionStateWrapper__28ccMotionStateWrapper__29, ccMotionStateWrapper__20emscripten__internal__wrapped_new_ccMotionStateWrapper__2c_20ccMotionStateWrapper_2c_20emscripten__val__28emscripten__val___29, emscripten__internal__Invoker_ccMotionStateWrapper__2c_20emscripten__val_____invoke_28ccMotionStateWrapper__20_28__29_28emscripten__val___29_2c_20emscripten___EM_VAL__29, emscripten__val_20emscripten__internal__wrapped_extend_ccMotionStateWrapper__28std____2__basic_string_char_2c_20std____2__char_traits_char__2c_20std____2__allocator_char___20const__2c_20emscripten__val_20const__29, _malloc_28int_29, _free_28int_29, _read_f32_28int_29, _write_f32_28int_2c_20float_29, _safe_delete_28int_2c_20int_29, Vec3_new_28float_2c_20float_2c_20float_29, Vec3_x_28int_29, Vec3_y_28int_29, Vec3_z_28int_29, Vec3_set_28int_2c_20float_2c_20float_2c_20float_29, Quat_new_28float_2c_20float_2c_20float_2c_20float_29, Quat_x_28int_29, Quat_y_28int_29, Quat_z_28int_29, Quat_w_28int_29, Quat_set_28int_2c_20float_2c_20float_2c_20float_2c_20float_29, Transform_new_28_29, Transform_setIdentity_28int_29, Transform_setRotation_28int_2c_20int_29, Transform_getOrigin_28int_29, Transform_getRotation_28int_2c_20int_29, Transform_getRotationAndOrigin_28int_2c_20int_29, MotionState_getWorldTransform, MotionState_setWorldTransform, ccMotionState_setup, int_array_size_28int_29, int_array_at_28int_2c_20int_29, Vec3_array_at_28int_2c_20int_29, TypedConstraint_getFixedBody_28_29, TypedConstraint_getDbgDrawSize_28int_29, TypedConstraint_setDbgDrawSize_28int_2c_20float_29, TypedConstraint_setMaxImpulseThreshold_28int_2c_20float_29, HingeConstraint_new_28int_2c_20int_2c_20int_2c_20int_29, HingeConstraint_setFrames_28int_2c_20int_2c_20int_29, HingeConstraint_setLimit_28int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float_29, HingeConstraint_enableMotor_28int_2c_20bool_29, HingeConstraint_setAngularOnly_28int_2c_20bool_29, HingeConstraint_setMaxMotorImpulse_28int_2c_20float_29, HingeConstraint_setMotorTarget_28int_2c_20float_2c_20float_29, HingeConstraint_setMotorVelocity_28int_2c_20float_29, P2PConstraint_new_28int_2c_20int_2c_20int_2c_20int_29, P2PConstraint_setPivotA_28int_2c_20int_29, P2PConstraint_setPivotB_28int_2c_20int_29, FixedConstraint_new_28int_2c_20int_2c_20int_2c_20int_29, FixedConstraint_setFrames_28int_2c_20int_2c_20int_29, Generic6DofSpring2Constraint_new_28int_2c_20int_2c_20int_2c_20int_2c_20int_29, Generic6DofSpring2Constraint_setFrames_28int_2c_20int_2c_20int_29, Generic6DofSpring2Constraint_setLimit_28int_2c_20int_2c_20float_2c_20float_29, Generic6DofSpring2Constraint_enableSpring_28int_2c_20int_2c_20bool_29, Generic6DofSpring2Constraint_setStiffness_28int_2c_20int_2c_20float_29, Generic6DofSpring2Constraint_setDamping_28int_2c_20int_2c_20float_29, Generic6DofSpring2Constraint_setBounce_28int_2c_20int_2c_20float_29, Generic6DofSpring2Constraint_setEquilibriumPoint_28int_2c_20int_2c_20float_29, Generic6DofSpring2Constraint_enableMotor_28int_2c_20int_2c_20bool_29, Generic6DofSpring2Constraint_setMaxMotorForce_28int_2c_20int_2c_20float_29, Generic6DofSpring2Constraint_setTargetVelocity_28int_2c_20int_2c_20float_29, Generic6DofSpring2Constraint_setServo_28int_2c_20int_2c_20bool_29, Generic6DofSpring2Constraint_setServoTarget_28int_2c_20int_2c_20float_29, CollisionShape_isCompound_28int_29, CollisionShape_setLocalScaling_28int_2c_20int_29, CollisionShape_calculateLocalInertia_28int_2c_20float_2c_20int_29, CollisionShape_getAabb_28int_2c_20int_2c_20int_2c_20int_29, CollisionShape_setMargin_28int_2c_20float_29, CollisionShape_setMaterial_28int_2c_20int_29, CollisionShape_setUserPointer_28int_2c_20int_29, EmptyShape_static_28_29, ConvexInternalShape_getImplicitShapeDimensions_28int_29, BoxShape_new_28int_29, BoxShape_setUnscaledHalfExtents_28int_2c_20int_29, SphereShape_new_28float_29, SphereShape_setUnscaledRadius_28int_2c_20float_29, CylinderShape_new_28int_29, CylinderShape_updateProp_28int_2c_20float_2c_20float_2c_20int_29, CapsuleShape_new_28float_2c_20float_29, CapsuleShape_updateProp_28int_2c_20float_2c_20float_2c_20int_29, ConeShape_new_28float_2c_20float_29, ConeShape_setRadius_28int_2c_20float_29, ConeShape_setHeight_28int_2c_20float_29, ConeShape_setConeUpIndex_28int_2c_20int_29, StaticPlaneShape_new_28int_2c_20float_29, StaticPlaneShape_getPlaneNormal_28int_29, StaticPlaneShape_setPlaneConstant_28int_2c_20float_29, TerrainShape_new_28int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29, TriangleMesh_new_28_29, TriangleMesh_addTriangle_28int_2c_20int_2c_20int_2c_20int_2c_20bool_29, BvhTriangleMeshShape_new_28int_2c_20bool_2c_20bool_29, BvhTriangleMeshShape_getOptimizedBvh_28int_29, BvhTriangleMeshShape_setOptimizedBvh_28int_2c_20int_2c_20float_2c_20float_2c_20float_29, ScaledBvhTriangleMeshShape_new_28int_2c_20float_2c_20float_2c_20float_29, ConvexTriangleMeshShape_new_28int_29, SimplexShape_new_28_29, SimplexShape_addVertex_28int_2c_20int_29, ccCompoundShape_new_28_29, CompoundShape_getNumChildShapes_28int_29, CompoundShape_addChildShape_28int_2c_20int_2c_20int_29, CompoundShape_getChildShape_28int_2c_20int_29, CompoundShape_removeChildShape_28int_2c_20int_29, CompoundShape_updateChildTransform_28int_2c_20int_2c_20int_2c_20bool_29, CollisionObject_new_28_29, CollisionObject_getCollisionShape_28int_29, CollisionObject_setCollisionShape_28int_2c_20int_29, CollisionObject_setContactProcessingThreshold_28int_2c_20int_29, CollisionObject_isSleeping_28int_29, CollisionObject_getActivationState_28int_29, CollisionObject_forceActivationState_28int_2c_20int_29, CollisionObject_activate_28int_2c_20bool_29, CollisionObject_isActive_28int_29, CollisionObject_isKinematicObject_28int_29, CollisionObject_isStaticObject_28int_29, CollisionObject_isStaticOrKinematicObject_28int_29, CollisionObject_getWorldTransform_28int_29, CollisionObject_setCollisionFlags_28int_2c_20int_29, CollisionObject_getCollisionFlags_28int_29, CollisionObject_setCcdMotionThreshold_28int_2c_20float_29, CollisionObject_setCcdSweptSphereRadius_28int_2c_20float_29, CollisionObject_setUserIndex_28int_2c_20int_29, CollisionObject_getUserIndex_28int_29, CollisionObject_setMaterial_28int_2c_20float_2c_20float_2c_20float_2c_20float_29, CollisionObject_setIgnoreCollisionCheck_28int_2c_20int_2c_20bool_29, RigidBody_new_28float_2c_20int_29, RigidBody_getFlags_28int_29, RigidBody_setFlags_28int_2c_20int_29, RigidBody_setGravity_28int_2c_20int_29, RigidBody_setDamping_28int_2c_20float_2c_20float_29, RigidBody_setMass_28int_2c_20float_29, RigidBody_setMassProps_28int_2c_20float_2c_20int_29, RigidBody_setLinearFactor_28int_2c_20int_29, RigidBody_setAngularFactor_28int_2c_20int_29, RigidBody_setLinearVelocity_28int_2c_20int_29, RigidBody_getLinearVelocity_28int_29, RigidBody_setAngularVelocity_28int_2c_20int_29, RigidBody_getAngularVelocity_28int_29, RigidBody_clearState_28int_29, RigidBody_clearForces_28int_29, RigidBody_wantsSleeping_28int_29, RigidBody_setSleepingThresholds_28int_2c_20float_2c_20float_29, RigidBody_getLinearSleepingThreshold_28int_29, RigidBody_getMotionState_28int_29, RigidBody_applyTorque_28int_2c_20int_29, RigidBody_applyForce_28int_2c_20int_2c_20int_29, RigidBody_applyImpulse_28int_2c_20int_2c_20int_29, RigidBody_getWorldTransform_28int_2c_20int_29, DefaultCollisionConfiguration_static_28_29, CollisionDispatcher_new_28_29, Dispatcher_getNumManifolds_28int_29, Dispatcher_getManifoldByIndexInternal_28int_2c_20int_29, ManifoldPoint_getShape0_28int_29, ManifoldPoint_getShape1_28int_29, ManifoldPoint_get_m_index0_28int_29, ManifoldPoint_get_m_index1_28int_29, PersistentManifold_getBody0_28int_29, PersistentManifold_getBody1_28int_29, PersistentManifold_getNumContacts_28int_29, PersistentManifold_getContactPoint_28int_2c_20int_29, ManifoldPoint_get_m_localPointA_28int_29, ManifoldPoint_get_m_localPointB_28int_29, ManifoldPoint_get_m_positionWorldOnA_28int_29, ManifoldPoint_get_m_positionWorldOnB_28int_29, ManifoldPoint_get_m_normalWorldOnB_28int_29, DbvtBroadphase_new_28_29, SequentialImpulseConstraintSolver_new_28_29, CollisionWorld_addCollisionObject_28int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int_29, CollisionWorld_removeCollisionObject_28int_2c_20int_29, CollisionWorld_rayTest_28int_2c_20int_2c_20int_2c_20int_29, CollisionWorld_convexSweepTest_28int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float_29, CollisionWorld_setDebugDrawer_28int_2c_20int_29, CollisionWorld_debugDrawWorld_28int_29, ccDiscreteDynamicsWorld_new_28int_2c_20int_2c_20int_29, ccDiscreteDynamicsWorld_setAllowSleep_28int_2c_20bool_29, DynamicsWorld_setGravity_28int_2c_20int_29, DynamicsWorld_stepSimulation_28int_2c_20float_2c_20int_2c_20float_29, DynamicsWorld_addRigidBody_28int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int_29, DynamicsWorld_removeRigidBody_28int_2c_20int_29, DynamicsWorld_addConstraint_28int_2c_20int_2c_20bool_29, DynamicsWorld_removeConstraint_28int_2c_20int_29, DynamicsWorld_addAction_28int_2c_20int_29, DynamicsWorld_removeAction_28int_2c_20int_29, DebugDraw_setDebugMode_28int_2c_20int_29, DebugDraw_getDebugMode_28int_29, DebugDraw_setActiveObjectColor_28int_2c_20float_2c_20float_2c_20float_29, DebugDraw_setDeactiveObjectColor_28int_2c_20float_2c_20float_2c_20float_29, DebugDraw_setWantsDeactivationObjectColor_28int_2c_20float_2c_20float_2c_20float_29, DebugDraw_setDisabledDeactivationObjectColor_28int_2c_20float_2c_20float_2c_20float_29, DebugDraw_setDisabledSimulationObjectColor_28int_2c_20float_2c_20float_2c_20float_29, DebugDraw_setAABBColor_28int_2c_20float_2c_20float_2c_20float_29, DebugDraw_setContactPointColor_28int_2c_20float_2c_20float_2c_20float_29, DebugDraw_setConstraintLimitColor_28int_2c_20float_2c_20float_2c_20float_29, RayCallback_hasHit_28int_29, ConvexCallback_hasHit_28int_29, ccAllRayCallback_static_28_29, ccAllRayCallback_setFlags_28int_2c_20int_29, ccAllRayCallback_reset_28int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29, ccAllRayCallback_getHitPointWorld_28int_29, ccAllRayCallback_getHitNormalWorld_28int_29, ccAllRayCallback_getCollisionShapePtrs_28int_29, ccClosestRayCallback_static_28_29, ccClosestRayCallback_setFlags_28int_2c_20int_29, ccClosestRayCallback_reset_28int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29, ccClosestRayCallback_getHitPointWorld_28int_29, ccClosestRayCallback_getHitNormalWorld_28int_29, ccClosestRayCallback_getCollisionShapePtr_28int_29, ccAllConvexCallback_static_28_29, ccAllConvexCallback_reset_28int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29, ccAllConvexCallback_getHitPointWorld_28int_29, ccAllConvexCallback_getHitNormalWorld_28int_29, ccAllConvexCallback_getCollisionShapePtrs_28int_29, ccClosestConvexCallback_static_28_29, ccClosestConvexCallback_reset_28int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29, ccClosestConvexCallback_getHitPointWorld_28int_29, ccClosestConvexCallback_getHitNormalWorld_28int_29, ccClosestConvexCallback_getCollisionShapePtr_28int_29, ccMaterial_new_28_29, ccMaterial_set_28int_2c_20float_2c_20float_2c_20float_2c_20float_29, CharacterController_getGhostObject, CharacterController_getCollisionShape, ControllerHit_getHitWorldPos, ControllerHit_getHitWorldNormal, ControllerHit_getHitMotionDir, ControllerHit_getHitMotionLength, ControllerShapeHit_getHitShape, ControllerShapeHit_getHitCollisionObject, CharacterController_move, CharacterController_getPosition, CharacterController_setContactOffset, CharacterController_setStepOffset, CharacterController_setSlopeLimit, CharacterController_setCollision, CharacterController_setOverlapRecovery, CapsuleCharacterControllerDesc_new, CapsuleCharacterController_new, CapsuleCharacterController_setRadius, CapsuleCharacterController_setHeight, BoxCharacterControllerDesc_new, BoxCharacterController_new, BoxCharacterController_setHalfHeight, BoxCharacterController_setHalfSideExtent, BoxCharacterController_setHalfForwardExtent, emscripten__internal__MethodInvoker_void_20_28btIDebugDraw____29_28_29_2c_20void_2c_20btIDebugDraw____invoke_28void_20_28btIDebugDraw____20const__29_28_29_2c_20btIDebugDraw__29, emscripten__internal__MethodInvoker_void_20_28btDebugDraw____29_28int_2c_20int_2c_20int_29_2c_20void_2c_20btDebugDraw__2c_20int_2c_20int_2c_20int___invoke_28void_20_28btDebugDraw____20const__29_28int_2c_20int_2c_20int_29_2c_20btDebugDraw__2c_20int_2c_20int_2c_20int_29, btDebugDraw__20emscripten__base_btDebugDraw___convertPointer_btDebugDrawWrapper_2c_20btDebugDraw__28btDebugDrawWrapper__29, btDebugDrawWrapper__20emscripten__base_btDebugDraw___convertPointer_btDebugDraw_2c_20btDebugDrawWrapper__28btDebugDraw__29, emscripten__class__btDebugDraw_2c_20emscripten__internal__NoBaseClass__20const__20emscripten__class__btDebugDraw_2c_20emscripten__internal__NoBaseClass___allow_subclass_btDebugDrawWrapper__28char_20const__2c_20emscripten__constructor___29_20const___lambda__28btDebugDrawWrapper__29____invoke_28btDebugDrawWrapper__29, emscripten__internal__FunctionInvoker_void_20_28__29_28btDebugDrawWrapper__29_2c_20void_2c_20btDebugDrawWrapper____invoke_28void_20_28___29_28btDebugDrawWrapper__29_2c_20btDebugDrawWrapper__29, emscripten__internal__MethodInvoker_void_20_28btControllerHitReport____29_28int_2c_20int_29_2c_20void_2c_20btControllerHitReport__2c_20int_2c_20int___invoke_28void_20_28btControllerHitReport____20const__29_28int_2c_20int_29_2c_20btControllerHitReport__2c_20int_2c_20int_29, btControllerHitReport__20emscripten__base_btControllerHitReport___convertPointer_btControllerHitReportWrapper_2c_20btControllerHitReport__28btControllerHitReportWrapper__29, btControllerHitReportWrapper__20emscripten__base_btControllerHitReport___convertPointer_btControllerHitReport_2c_20btControllerHitReportWrapper__28btControllerHitReport__29, emscripten__class__btControllerHitReport_2c_20emscripten__internal__NoBaseClass__20const__20emscripten__class__btControllerHitReport_2c_20emscripten__internal__NoBaseClass___allow_subclass_btControllerHitReportWrapper__28char_20const__2c_20emscripten__constructor___29_20const___lambda__28btControllerHitReportWrapper__29____invoke_28btControllerHitReportWrapper__29, emscripten__internal__FunctionInvoker_void_20_28__29_28btControllerHitReportWrapper__29_2c_20void_2c_20btControllerHitReportWrapper____invoke_28void_20_28___29_28btControllerHitReportWrapper__29_2c_20btControllerHitReportWrapper__29, emscripten__internal__MethodInvoker_void_20_28cc__ccMotionState____29_28int_29_2c_20void_2c_20cc__ccMotionState__2c_20int___invoke_28void_20_28cc__ccMotionState____20const__29_28int_29_2c_20cc__ccMotionState__2c_20int_29, cc__ccMotionState__20emscripten__base_cc__ccMotionState___convertPointer_ccMotionStateWrapper_2c_20cc__ccMotionState__28ccMotionStateWrapper__29, ccMotionStateWrapper__20emscripten__base_cc__ccMotionState___convertPointer_cc__ccMotionState_2c_20ccMotionStateWrapper__28cc__ccMotionState__29, emscripten__class__cc__ccMotionState_2c_20emscripten__internal__NoBaseClass__20const__20emscripten__class__cc__ccMotionState_2c_20emscripten__internal__NoBaseClass___allow_subclass_ccMotionStateWrapper__28char_20const__2c_20emscripten__constructor___29_20const___lambda__28ccMotionStateWrapper__29____invoke_28ccMotionStateWrapper__29, emscripten__internal__FunctionInvoker_void_20_28__29_28ccMotionStateWrapper__29_2c_20void_2c_20ccMotionStateWrapper____invoke_28void_20_28___29_28ccMotionStateWrapper__29_2c_20ccMotionStateWrapper__29, emscripten__internal__Invoker_int_2c_20int___invoke_28int_20_28__29_28int_29_2c_20int_29, emscripten__internal__Invoker_void_2c_20int___invoke_28void_20_28__29_28int_29_2c_20int_29, emscripten__internal__Invoker_float_2c_20int___invoke_28float_20_28__29_28int_29_2c_20int_29, emscripten__internal__Invoker_void_2c_20int_2c_20float___invoke_28void_20_28__29_28int_2c_20float_29_2c_20int_2c_20float_29, emscripten__internal__Invoker_void_2c_20int_2c_20int___invoke_28void_20_28__29_28int_2c_20int_29_2c_20int_2c_20int_29, emscripten__internal__Invoker_int_2c_20float_2c_20float_2c_20float___invoke_28int_20_28__29_28float_2c_20float_2c_20float_29_2c_20float_2c_20float_2c_20float_29, emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20float_2c_20float___invoke_28void_20_28__29_28int_2c_20float_2c_20float_2c_20float_29_2c_20int_2c_20float_2c_20float_2c_20float_29, emscripten__internal__Invoker_int_2c_20float_2c_20float_2c_20float_2c_20float___invoke_28int_20_28__29_28float_2c_20float_2c_20float_2c_20float_29_2c_20float_2c_20float_2c_20float_2c_20float_29, emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float___invoke_28void_20_28__29_28int_2c_20float_2c_20float_2c_20float_2c_20float_29_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_29, emscripten__internal__Invoker_int___invoke_28int_20_28__29_28_29_29, emscripten__internal__Invoker_int_2c_20int_2c_20int___invoke_28int_20_28__29_28int_2c_20int_29_2c_20int_2c_20int_29, emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20int___invoke_28void_20_28__29_28int_2c_20int_2c_20int_29_2c_20int_2c_20int_2c_20int_29, emscripten__internal__Invoker_int_2c_20int_2c_20int_2c_20int_2c_20int___invoke_28int_20_28__29_28int_2c_20int_2c_20int_2c_20int_29_2c_20int_2c_20int_2c_20int_2c_20int_29, emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float___invoke_28void_20_28__29_28int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float_29_2c_20int_2c_20float_2c_20float_2c_20float_2c_20float_2c_20float_29, emscripten__internal__Invoker_void_2c_20int_2c_20bool___invoke_28void_20_28__29_28int_2c_20bool_29_2c_20int_2c_20bool_29, emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20float___invoke_28void_20_28__29_28int_2c_20float_2c_20float_29_2c_20int_2c_20float_2c_20float_29, emscripten__internal__Invoker_int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int___invoke_28int_20_28__29_28int_2c_20int_2c_20int_2c_20int_2c_20int_29_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_29, emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20float_2c_20float___invoke_28void_20_28__29_28int_2c_20int_2c_20float_2c_20float_29_2c_20int_2c_20int_2c_20float_2c_20float_29, emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20bool___invoke_28void_20_28__29_28int_2c_20int_2c_20bool_29_2c_20int_2c_20int_2c_20bool_29, emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20float___invoke_28void_20_28__29_28int_2c_20int_2c_20float_29_2c_20int_2c_20int_2c_20float_29, emscripten__internal__Invoker_bool_2c_20int___invoke_28bool_20_28__29_28int_29_2c_20int_29, emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20int___invoke_28void_20_28__29_28int_2c_20float_2c_20int_29_2c_20int_2c_20float_2c_20int_29, emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20int_2c_20int___invoke_28void_20_28__29_28int_2c_20int_2c_20int_2c_20int_29_2c_20int_2c_20int_2c_20int_2c_20int_29, emscripten__internal__Invoker_int_2c_20float___invoke_28int_20_28__29_28float_29_2c_20float_29, emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20float_2c_20int___invoke_28void_20_28__29_28int_2c_20float_2c_20float_2c_20int_29_2c_20int_2c_20float_2c_20float_2c_20int_29, emscripten__internal__Invoker_int_2c_20float_2c_20float___invoke_28int_20_28__29_28float_2c_20float_29_2c_20float_2c_20float_29, emscripten__internal__Invoker_int_2c_20int_2c_20float___invoke_28int_20_28__29_28int_2c_20float_29_2c_20int_2c_20float_29, emscripten__internal__Invoker_int_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float___invoke_28int_20_28__29_28int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29, emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20bool___invoke_28void_20_28__29_28int_2c_20int_2c_20int_2c_20int_2c_20bool_29_2c_20int_2c_20int_2c_20int_2c_20int_2c_20bool_29, emscripten__internal__Invoker_int_2c_20int_2c_20bool_2c_20bool___invoke_28int_20_28__29_28int_2c_20bool_2c_20bool_29_2c_20int_2c_20bool_2c_20bool_29, emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float___invoke_28void_20_28__29_28int_2c_20int_2c_20float_2c_20float_2c_20float_29_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29, emscripten__internal__Invoker_int_2c_20int_2c_20float_2c_20float_2c_20float___invoke_28int_20_28__29_28int_2c_20float_2c_20float_2c_20float_29_2c_20int_2c_20float_2c_20float_2c_20float_29, emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20int_2c_20bool___invoke_28void_20_28__29_28int_2c_20int_2c_20int_2c_20bool_29_2c_20int_2c_20int_2c_20int_2c_20bool_29, emscripten__internal__Invoker_int_2c_20float_2c_20int___invoke_28int_20_28__29_28float_2c_20int_29_2c_20float_2c_20int_29, emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int___invoke_28void_20_28__29_28int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int_29_2c_20int_2c_20int_2c_20unsigned_20int_2c_20unsigned_20int_29, emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float___invoke_28void_20_28__29_28int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float_29_2c_20int_2c_20int_2c_20int_2c_20int_2c_20int_2c_20float_29, emscripten__internal__Invoker_int_2c_20int_2c_20int_2c_20int___invoke_28int_20_28__29_28int_2c_20int_2c_20int_29_2c_20int_2c_20int_2c_20int_29, emscripten__internal__Invoker_void_2c_20int_2c_20float_2c_20int_2c_20float___invoke_28void_20_28__29_28int_2c_20float_2c_20int_2c_20float_29_2c_20int_2c_20float_2c_20int_2c_20float_29, emscripten__internal__Invoker_void_2c_20int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool___invoke_28void_20_28__29_28int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29_2c_20int_2c_20int_2c_20int_2c_20unsigned_20int_2c_20bool_29, emscripten__internal__Invoker_int_2c_20int_2c_20int_2c_20float_2c_20float___invoke_28int_20_28__29_28int_2c_20int_2c_20float_2c_20float_29_2c_20int_2c_20int_2c_20float_2c_20float_29, emscripten__internal__Invoker_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float___invoke_28int_20_28__29_28float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_29_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_29, emscripten__internal__Invoker_int_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float___invoke_28int_20_28__29_28float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29_2c_20float_2c_20float_2c_20float_2c_20int_2c_20int_2c_20int_2c_20float_2c_20float_2c_20float_29, cc__ccClosestRayResultCallback___ccClosestRayResultCallback_28_29, cc__ccClosestRayResultCallback___ccClosestRayResultCallback_28_29_1, cc__ccClosestRayResultCallback__needsCollision_28btBroadphaseProxy__29_20const, cc__ccClosestRayResultCallback__addSingleResult_28btCollisionWorld__LocalRayResult__2c_20bool_29, btCollisionWorld__ClosestRayResultCallback___ClosestRayResultCallback_28_29, btCollisionWorld__ClosestRayResultCallback___ClosestRayResultCallback_28_29_1, btCollisionWorld__RayResultCallback__needsCollision_28btBroadphaseProxy__29_20const, btCollisionWorld__ClosestRayResultCallback__addSingleResult_28btCollisionWorld__LocalRayResult__2c_20bool_29, btCollisionWorld__RayResultCallback___RayResultCallback_28_29, btCollisionWorld__RayResultCallback___RayResultCallback_28_29_1, __cxa_pure_virtual, cc__ccAllHitsRayResultCallback___ccAllHitsRayResultCallback_28_29, cc__ccAllHitsRayResultCallback___ccAllHitsRayResultCallback_28_29_1, cc__ccAllHitsRayResultCallback__needsCollision_28btBroadphaseProxy__29_20const, cc__ccAllHitsRayResultCallback__addSingleResult_28btCollisionWorld__LocalRayResult__2c_20bool_29, btCollisionWorld__AllHitsRayResultCallback___AllHitsRayResultCallback_28_29, btCollisionWorld__AllHitsRayResultCallback___AllHitsRayResultCallback_28_29_1, btCollisionWorld__AllHitsRayResultCallback__addSingleResult_28btCollisionWorld__LocalRayResult__2c_20bool_29, cc__ccClosestConvexResultCallback___ccClosestConvexResultCallback_28_29, cc__ccClosestConvexResultCallback___ccClosestConvexResultCallback_28_29_1, cc__ccClosestConvexResultCallback__needsCollision_28btBroadphaseProxy__29_20const, cc__ccClosestConvexResultCallback__addSingleResult_28btCollisionWorld__LocalConvexResult__2c_20bool_29, btCollisionWorld__ClosestConvexResultCallback___ClosestConvexResultCallback_28_29, btCollisionWorld__ClosestConvexResultCallback___ClosestConvexResultCallback_28_29_1, btCollisionWorld__ConvexResultCallback__needsCollision_28btBroadphaseProxy__29_20const, btCollisionWorld__ClosestConvexResultCallback__addSingleResult_28btCollisionWorld__LocalConvexResult__2c_20bool_29, btCollisionWorld__ConvexResultCallback___ConvexResultCallback_28_29, btCollisionWorld__ConvexResultCallback___ConvexResultCallback_28_29_1, cc__ccAllHitsConvexResultCallback___ccAllHitsConvexResultCallback_28_29, cc__ccAllHitsConvexResultCallback___ccAllHitsConvexResultCallback_28_29_1, cc__ccAllHitsConvexResultCallback__needsCollision_28btBroadphaseProxy__29_20const, cc__ccAllHitsConvexResultCallback__addSingleResult_28btCollisionWorld__LocalConvexResult__2c_20bool_29, btCollisionWorld__AllHitsConvexResultCallback___AllHitsConvexResultCallback_28_29, btCollisionWorld__AllHitsConvexResultCallback___AllHitsConvexResultCallback_28_29_1, btCollisionWorld__AllHitsConvexResultCallback__addSingleResult_28btCollisionWorld__LocalConvexResult__2c_20bool_29, cc__ccCompoundShape___ccCompoundShape_28_29, cc__ccCompoundShape___ccCompoundShape_28_29_1, btCompoundShape__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const, btCollisionShape__getBoundingSphere_28btVector3__2c_20float__29_20const, btCollisionShape__getAngularMotionDisc_28_29_20const, btCollisionShape__getContactBreakingThreshold_28float_29_20const, btCompoundShape__setLocalScaling_28btVector3_20const__29, btCompoundShape__getLocalScaling_28_29_20const, btCompoundShape__calculateLocalInertia_28float_2c_20btVector3__29_20const, btCompoundShape__getName_28_29_20const, btCollisionShape__getAnisotropicRollingFrictionDirection_28_29_20const, btCompoundShape__setMargin_28float_29, btCompoundShape__getMargin_28_29_20const, btCompoundShape__calculateSerializeBufferSize_28_29_20const, btCompoundShape__serialize_28void__2c_20btSerializer__29_20const, btCollisionShape__serializeSingleShape_28btSerializer__29_20const, btCompoundShape__removeChildShape_28btCollisionShape__29, btCompoundShape__recalculateLocalAabb_28_29, btMotionState___btMotionState_28_29, btMotionState___btMotionState_28_29_1, btDebugDrawWrapper___btDebugDrawWrapper_28_29, btDebugDrawWrapper___btDebugDrawWrapper_28_29_1, btDebugDraw__getDefaultColors_28_29_20const, btDebugDraw__setDefaultColors_28btIDebugDraw__DefaultColors_20const__29, btDebugDraw__drawLine_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29, btIDebugDraw__drawLine_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29, btIDebugDraw__drawSphere_28float_2c_20btTransform_20const__2c_20btVector3_20const__29, btIDebugDraw__drawSphere_28btVector3_20const__2c_20float_2c_20btVector3_20const__29, btIDebugDraw__drawTriangle_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_29, btIDebugDraw__drawTriangle_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_29, btDebugDraw__drawContactPoint_28btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20int_2c_20btVector3_20const__29, btDebugDraw__reportErrorWarning_28char_20const__29, btDebugDraw__draw3dText_28btVector3_20const__2c_20char_20const__29, btDebugDraw__setDebugMode_28int_29, btDebugDraw__getDebugMode_28_29_20const, btIDebugDraw__drawAabb_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29, btIDebugDraw__drawTransform_28btTransform_20const__2c_20float_29, btIDebugDraw__drawArc_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20float_2c_20float_2c_20float_2c_20btVector3_20const__2c_20bool_2c_20float_29, btIDebugDraw__drawSpherePatch_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20float_2c_20float_2c_20float_2c_20float_2c_20btVector3_20const__2c_20float_2c_20bool_29, btIDebugDraw__drawBox_28btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29, btIDebugDraw__drawBox_28btVector3_20const__2c_20btVector3_20const__2c_20btTransform_20const__2c_20btVector3_20const__29, btIDebugDraw__drawCapsule_28float_2c_20float_2c_20int_2c_20btTransform_20const__2c_20btVector3_20const__29, btIDebugDraw__drawCylinder_28float_2c_20float_2c_20int_2c_20btTransform_20const__2c_20btVector3_20const__29, btIDebugDraw__drawCone_28float_2c_20float_2c_20int_2c_20btTransform_20const__2c_20btVector3_20const__29, btIDebugDraw__drawPlane_28btVector3_20const__2c_20float_2c_20btTransform_20const__2c_20btVector3_20const__29, btDebugDrawWrapper__clearLines_28_29, btDebugDrawWrapper__flushLines_28_29, btDebugDrawWrapper__onDebugDrawLine_28int_2c_20int_2c_20int_29, emscripten__wrapper_btDebugDraw____wrapper_28_29, emscripten__wrapper_btDebugDraw____wrapper_28_29_1, btIDebugDraw__clearLines_28_29, btIDebugDraw__flushLines_28_29, btDebugDraw___btDebugDraw_28_29, btDebugDraw___btDebugDraw_28_29_1, btIDebugDraw___btIDebugDraw_28_29, btIDebugDraw___btIDebugDraw_28_29_1, btIDebugDraw__getDefaultColors_28_29_20const, btIDebugDraw__setDefaultColors_28btIDebugDraw__DefaultColors_20const__29, btControllerHitReport__onShapeHit_28btControllerShapeHit_20const__29, btControllerHitReport__onControllerHit_28btControllersHit_20const__29, btControllerHitReportWrapper___btControllerHitReportWrapper_28_29, btControllerHitReportWrapper___btControllerHitReportWrapper_28_29_1, btControllerHitReportWrapper__onShapeHitExt_28int_2c_20int_29, emscripten__wrapper_btControllerHitReport____wrapper_28_29, emscripten__wrapper_btControllerHitReport____wrapper_28_29_1, btControllerHitReport___btControllerHitReport_28_29, btControllerHitReport___btControllerHitReport_28_29_1, btUserControllerHitReport___btUserControllerHitReport_28_29, btUserControllerHitReport___btUserControllerHitReport_28_29_1, ccMotionStateWrapper___ccMotionStateWrapper_28_29, ccMotionStateWrapper___ccMotionStateWrapper_28_29_1, cc__ccMotionState__getWorldTransform_28btTransform__29_20const, cc__ccMotionState__setWorldTransform_28btTransform_20const__29, ccMotionStateWrapper__syncPhysicsToGraphics_28int_29, emscripten__wrapper_cc__ccMotionState____wrapper_28_29, emscripten__wrapper_cc__ccMotionState____wrapper_28_29_1, cc__ccMotionState___ccMotionState_28_29, cc__ccMotionState___ccMotionState_28_29_1, btAlignedAllocDefault_28unsigned_20long_2c_20int_29, btAlignedFreeDefault_28void__29, btAllocDefault_28unsigned_20long_29, btFreeDefault_28void__29, btDbvtBroadphase___btDbvtBroadphase_28_29, btDbvtBroadphase___btDbvtBroadphase_28_29_1, btDbvtBroadphase__createProxy_28btVector3_20const__2c_20btVector3_20const__2c_20int_2c_20void__2c_20int_2c_20int_2c_20btDispatcher__29, btDbvtBroadphase__destroyProxy_28btBroadphaseProxy__2c_20btDispatcher__29, btDbvtBroadphase__setAabb_28btBroadphaseProxy__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btDispatcher__29, btDbvtBroadphase__getAabb_28btBroadphaseProxy__2c_20btVector3__2c_20btVector3__29_20const, btDbvtBroadphase__rayTest_28btVector3_20const__2c_20btVector3_20const__2c_20btBroadphaseRayCallback__2c_20btVector3_20const__2c_20btVector3_20const__29, btDbvtBroadphase__aabbTest_28btVector3_20const__2c_20btVector3_20const__2c_20btBroadphaseAabbCallback__29, btDbvtBroadphase__calculateOverlappingPairs_28btDispatcher__29, btDbvtBroadphase__getOverlappingPairCache_28_29, btDbvtBroadphase__getOverlappingPairCache_28_29_20const, btDbvtBroadphase__getBroadphaseAabb_28btVector3__2c_20btVector3__29_20const, btDbvtBroadphase__resetPool_28btDispatcher__29, btDbvtBroadphase__printStats_28_29, btBroadphaseInterface___btBroadphaseInterface_28_29, btBroadphaseInterface___btBroadphaseInterface_28_29_1, btBroadphaseInterface__resetPool_28btDispatcher__29, btDbvtTreeCollider___btDbvtTreeCollider_28_29, btDbvtTreeCollider___btDbvtTreeCollider_28_29_1, btDbvtTreeCollider__Process_28btDbvtNode_20const__2c_20btDbvtNode_20const__29, btDbvtTreeCollider__Process_28btDbvtNode_20const__29, btDbvt__ICollide__Process_28btDbvtNode_20const__2c_20float_29, btDbvt__ICollide__Descent_28btDbvtNode_20const__29, btDbvt__ICollide__AllLeaves_28btDbvtNode_20const__29, btDbvt__ICollide___ICollide_28_29, btDbvt__ICollide___ICollide_28_29_1, btDbvt__ICollide__Process_28btDbvtNode_20const__2c_20btDbvtNode_20const__29, btDbvt__ICollide__Process_28btDbvtNode_20const__29, BroadphaseRayTester___BroadphaseRayTester_28_29, BroadphaseRayTester___BroadphaseRayTester_28_29_1, BroadphaseRayTester__Process_28btDbvtNode_20const__29, BroadphaseAabbTester___BroadphaseAabbTester_28_29, BroadphaseAabbTester___BroadphaseAabbTester_28_29_1, BroadphaseAabbTester__Process_28btDbvtNode_20const__29, btEnterProfileZoneDefault_28char_20const__29, btLeaveProfileZoneDefault_28_29, btHashedOverlappingPairCache___btHashedOverlappingPairCache_28_29, btHashedOverlappingPairCache___btHashedOverlappingPairCache_28_29_1, btHashedOverlappingPairCache__addOverlappingPair_28btBroadphaseProxy__2c_20btBroadphaseProxy__29, btHashedOverlappingPairCache__removeOverlappingPair_28btBroadphaseProxy__2c_20btBroadphaseProxy__2c_20btDispatcher__29, btHashedOverlappingPairCache__removeOverlappingPairsContainingProxy_28btBroadphaseProxy__2c_20btDispatcher__29, btHashedOverlappingPairCache__getOverlappingPairArrayPtr_28_29, btHashedOverlappingPairCache__getOverlappingPairArrayPtr_28_29_20const, btHashedOverlappingPairCache__getOverlappingPairArray_28_29, btHashedOverlappingPairCache__cleanOverlappingPair_28btBroadphasePair__2c_20btDispatcher__29, btHashedOverlappingPairCache__getNumOverlappingPairs_28_29_20const, btHashedOverlappingPairCache__cleanProxyFromPairs_28btBroadphaseProxy__2c_20btDispatcher__29, btHashedOverlappingPairCache__setOverlapFilterCallback_28btOverlapFilterCallback__29, btHashedOverlappingPairCache__processAllOverlappingPairs_28btOverlapCallback__2c_20btDispatcher__29, btHashedOverlappingPairCache__findPair_28btBroadphaseProxy__2c_20btBroadphaseProxy__29, btHashedOverlappingPairCache__hasDeferredRemoval_28_29, btHashedOverlappingPairCache__setInternalGhostPairCallback_28btOverlappingPairCallback__29, btHashedOverlappingPairCache__sortOverlappingPairs_28btDispatcher__29, btOverlappingPairCache___btOverlappingPairCache_28_29, btOverlappingPairCache___btOverlappingPairCache_28_29_1, btOverlappingPairCallback___btOverlappingPairCallback_28_29, btOverlappingPairCallback___btOverlappingPairCallback_28_29_1, btHashedOverlappingPairCache__cleanProxyFromPairs_28btBroadphaseProxy__2c_20btDispatcher__29__CleanPairCallback___CleanPairCallback_28_29, btHashedOverlappingPairCache__cleanProxyFromPairs_28btBroadphaseProxy__2c_20btDispatcher__29__CleanPairCallback___CleanPairCallback_28_29_1, btHashedOverlappingPairCache__cleanProxyFromPairs_28btBroadphaseProxy__2c_20btDispatcher__29__CleanPairCallback__processOverlap_28btBroadphasePair__29, btOverlapCallback___btOverlapCallback_28_29, btOverlapCallback___btOverlapCallback_28_29_1, btHashedOverlappingPairCache__removeOverlappingPairsContainingProxy_28btBroadphaseProxy__2c_20btDispatcher__29__RemovePairCallback___RemovePairCallback_28_29, btHashedOverlappingPairCache__removeOverlappingPairsContainingProxy_28btBroadphaseProxy__2c_20btDispatcher__29__RemovePairCallback___RemovePairCallback_28_29_1, btHashedOverlappingPairCache__removeOverlappingPairsContainingProxy_28btBroadphaseProxy__2c_20btDispatcher__29__RemovePairCallback__processOverlap_28btBroadphasePair__29, btDispatcher___btDispatcher_28_29, btDispatcher___btDispatcher_28_29_1, btCollisionDispatcher__defaultNearCallback_28btBroadphasePair__2c_20btCollisionDispatcher__2c_20btDispatcherInfo_20const__29, btCollisionDispatcher___btCollisionDispatcher_28_29, btCollisionDispatcher___btCollisionDispatcher_28_29_1, btCollisionDispatcher__findAlgorithm_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btPersistentManifold__2c_20ebtDispatcherQueryType_29, btCollisionDispatcher__getNewManifold_28btCollisionObject_20const__2c_20btCollisionObject_20const__29, btCollisionDispatcher__releaseManifold_28btPersistentManifold__29, btCollisionDispatcher__clearManifold_28btPersistentManifold__29, btCollisionDispatcher__needsCollision_28btCollisionObject_20const__2c_20btCollisionObject_20const__29, btCollisionDispatcher__needsResponse_28btCollisionObject_20const__2c_20btCollisionObject_20const__29, btCollisionDispatcher__dispatchAllCollisionPairs_28btOverlappingPairCache__2c_20btDispatcherInfo_20const__2c_20btDispatcher__29, btCollisionDispatcher__getNumManifolds_28_29_20const, btCollisionDispatcher__getManifoldByIndexInternal_28int_29, btCollisionDispatcher__getInternalManifoldPointer_28_29, btCollisionDispatcher__getInternalManifoldPool_28_29, btCollisionDispatcher__getInternalManifoldPool_28_29_20const, btCollisionDispatcher__allocateCollisionAlgorithm_28int_29, btCollisionDispatcher__freeCollisionAlgorithm_28void__29, btDiscreteCollisionDetectorInterface__Result___Result_28_29, btDiscreteCollisionDetectorInterface__Result___Result_28_29_1, btCollisionPairCallback___btCollisionPairCallback_28_29, btCollisionPairCallback___btCollisionPairCallback_28_29_1, btCollisionPairCallback__processOverlap_28btBroadphasePair__29, btCollisionObject___btCollisionObject_28_29, btCollisionObject___btCollisionObject_28_29_1, btCollisionObject__setCollisionShape_28btCollisionShape__29, btCollisionObject__checkCollideWithOverride_28btCollisionObject_20const__29_20const, btCollisionObject__calculateSerializeBufferSize_28_29_20const, btCollisionObject__serialize_28void__2c_20btSerializer__29_20const, btCollisionObject__serializeSingleObject_28btSerializer__29_20const, btCollisionWorld___btCollisionWorld_28_29, btCollisionWorld___btCollisionWorld_28_29_1, btCollisionWorld__updateAabbs_28_29, btCollisionWorld__computeOverlappingPairs_28_29, btCollisionWorld__setDebugDrawer_28btIDebugDraw__29, btCollisionWorld__getDebugDrawer_28_29, btCollisionWorld__debugDrawWorld_28_29, btCollisionWorld__debugDrawObject_28btTransform_20const__2c_20btCollisionShape_20const__2c_20btVector3_20const__29, btCollisionWorld__rayTest_28btVector3_20const__2c_20btVector3_20const__2c_20btCollisionWorld__RayResultCallback__29_20const, btCollisionWorld__addCollisionObject_28btCollisionObject__2c_20int_2c_20int_29, btCollisionWorld__removeCollisionObject_28btCollisionObject__29, btCollisionWorld__performDiscreteCollisionDetection_28_29, btCollisionWorld__serialize_28btSerializer__29, btConvexCast__CastResult__DebugDraw_28float_29, btConvexCast__CastResult__drawCoordSystem_28btTransform_20const__29, btConvexCast__CastResult__reportFailure_28int_2c_20int_29, btConvexCast__CastResult___CastResult_28_29, btConvexCast__CastResult___CastResult_28_29_1, btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__BridgeTriangleRaycastCallback___BridgeTriangleRaycastCallback_28_29, btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__BridgeTriangleRaycastCallback___BridgeTriangleRaycastCallback_28_29_1, btTriangleRaycastCallback__processTriangle_28btVector3__2c_20int_2c_20int_29, btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__BridgeTriangleRaycastCallback__reportHit_28btVector3_20const__2c_20float_2c_20int_2c_20int_29, btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__RayTester___RayTester_28_29, btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__RayTester___RayTester_28_29_1, btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__RayTester__Process_28btDbvtNode_20const__29, btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__LocalInfoAdder2___LocalInfoAdder2_28_29, btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__LocalInfoAdder2___LocalInfoAdder2_28_29_1, btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__LocalInfoAdder2__needsCollision_28btBroadphaseProxy__29_20const, btCollisionWorld__rayTestSingleInternal_28btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__RayResultCallback__29__LocalInfoAdder2__addSingleResult_28btCollisionWorld__LocalRayResult__2c_20bool_29, btConvexPenetrationDepthSolver___btConvexPenetrationDepthSolver_28_29, btConvexPenetrationDepthSolver___btConvexPenetrationDepthSolver_28_29_1, btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__BridgeTriangleConvexcastCallback___BridgeTriangleConvexcastCallback_28_29, btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__BridgeTriangleConvexcastCallback___BridgeTriangleConvexcastCallback_28_29_2, btTriangleConvexcastCallback__processTriangle_28btVector3__2c_20int_2c_20int_29, btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__BridgeTriangleConvexcastCallback__reportHit_28btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20int_2c_20int_29, btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__BridgeTriangleConvexcastCallback___BridgeTriangleConvexcastCallback_28_29_1, btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__BridgeTriangleConvexcastCallback___BridgeTriangleConvexcastCallback_28_29_3, btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__BridgeTriangleConvexcastCallback__reportHit_28btVector3_20const__2c_20btVector3_20const__2c_20float_2c_20int_2c_20int_29_1, btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__btCompoundLeafCallback___btCompoundLeafCallback_28_29, btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__btCompoundLeafCallback___btCompoundLeafCallback_28_29_1, btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__btCompoundLeafCallback__Process_28btDbvtNode_20const__29, btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__btCompoundLeafCallback__ProcessChild_28int_2c_20btTransform_20const__2c_20btCollisionShape_20const__29__LocalInfoAdder___LocalInfoAdder_28_29, btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__btCompoundLeafCallback__ProcessChild_28int_2c_20btTransform_20const__2c_20btCollisionShape_20const__29__LocalInfoAdder___LocalInfoAdder_28_29_1, btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__btCompoundLeafCallback__ProcessChild_28int_2c_20btTransform_20const__2c_20btCollisionShape_20const__29__LocalInfoAdder__needsCollision_28btBroadphaseProxy__29_20const, btCollisionWorld__objectQuerySingleInternal_28btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionWorld__ConvexResultCallback__2c_20float_29__btCompoundLeafCallback__ProcessChild_28int_2c_20btTransform_20const__2c_20btCollisionShape_20const__29__LocalInfoAdder__addSingleResult_28btCollisionWorld__LocalConvexResult__2c_20bool_29, btSingleRayCallback___btSingleRayCallback_28_29, btSingleRayCallback___btSingleRayCallback_28_29_1, btSingleRayCallback__process_28btBroadphaseProxy_20const__29, btBroadphaseRayCallback___btBroadphaseRayCallback_28_29, btBroadphaseRayCallback___btBroadphaseRayCallback_28_29_1, btBroadphaseAabbCallback___btBroadphaseAabbCallback_28_29, btBroadphaseAabbCallback___btBroadphaseAabbCallback_28_29_1, btSingleSweepCallback___btSingleSweepCallback_28_29, btSingleSweepCallback___btSingleSweepCallback_28_29_1, btSingleSweepCallback__process_28btBroadphaseProxy_20const__29, DebugDrawcallback___DebugDrawcallback_28_29, DebugDrawcallback___DebugDrawcallback_28_29_1, DebugDrawcallback__processTriangle_28btVector3__2c_20int_2c_20int_29, DebugDrawcallback__internalProcessTriangleIndex_28btVector3__2c_20int_2c_20int_29, non_virtual_20thunk_20to_20DebugDrawcallback___DebugDrawcallback_28_29, non_virtual_20thunk_20to_20DebugDrawcallback___DebugDrawcallback_28_29_1, non_virtual_20thunk_20to_20DebugDrawcallback__internalProcessTriangleIndex_28btVector3__2c_20int_2c_20int_29, btCollisionAlgorithm___btCollisionAlgorithm_28_29_1, btCollisionAlgorithm___btCollisionAlgorithm_28_29, btActivatingCollisionAlgorithm___btActivatingCollisionAlgorithm_28_29, btActivatingCollisionAlgorithm___btActivatingCollisionAlgorithm_28_29_1, btConvexConvexAlgorithm__CreateFunc___CreateFunc_28_29, btConvexConvexAlgorithm___btConvexConvexAlgorithm_28_29, btConvexConvexAlgorithm__btConvexConvexAlgorithm_28btPersistentManifold__2c_20btCollisionAlgorithmConstructionInfo_20const__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btConvexPenetrationDepthSolver__2c_20int_2c_20int_29, btConvexConvexAlgorithm__CreateFunc___CreateFunc_28_29_1, btConvexConvexAlgorithm__CreateFunc__CreateCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29, btConvexConvexAlgorithm___btConvexConvexAlgorithm_28_29_1, btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29, btConvexConvexAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29, btConvexConvexAlgorithm__getAllContactManifolds_28btAlignedObjectArray_btPersistentManifold____29, btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btDummyResult___btDummyResult_28_29, btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btDummyResult___btDummyResult_28_29_1, btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btDummyResult__setShapeIdentifiersA_28int_2c_20int_29, btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btDummyResult__setShapeIdentifiersB_28int_2c_20int_29, btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btDummyResult__addContactPoint_28btVector3_20const__2c_20btVector3_20const__2c_20float_29, btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btWithoutMarginResult___btWithoutMarginResult_28_29, btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btWithoutMarginResult___btWithoutMarginResult_28_29_1, btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btWithoutMarginResult__setShapeIdentifiersA_28int_2c_20int_29, btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btWithoutMarginResult__setShapeIdentifiersB_28int_2c_20int_29, btConvexConvexAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__btWithoutMarginResult__addContactPoint_28btVector3_20const__2c_20btVector3_20const__2c_20float_29, btPerturbedContactResult___btPerturbedContactResult_28_29, btPerturbedContactResult___btPerturbedContactResult_28_29_1, btManifoldResult__setShapeIdentifiersA_28int_2c_20int_29, btManifoldResult__setShapeIdentifiersB_28int_2c_20int_29, btPerturbedContactResult__addContactPoint_28btVector3_20const__2c_20btVector3_20const__2c_20float_29, btConvexTriangleCallback__btConvexTriangleCallback_28btDispatcher__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20bool_29, btConvexTriangleCallback___btConvexTriangleCallback_28_29, btConvexConcaveCollisionAlgorithm___btConvexConcaveCollisionAlgorithm_28_29, btConvexConcaveCollisionAlgorithm___btConvexConcaveCollisionAlgorithm_28_29_1, btConvexConcaveCollisionAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29, btConvexConcaveCollisionAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29, btConvexConcaveCollisionAlgorithm__getAllContactManifolds_28btAlignedObjectArray_btPersistentManifold____29, btConvexTriangleCallback___btConvexTriangleCallback_28_29_1, btConvexTriangleCallback__processTriangle_28btVector3__2c_20int_2c_20int_29, btTriangleShape___btTriangleShape_28_29, btTriangleShape___btTriangleShape_28_29_1, btTriangleShape__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const, btConvexInternalShape__setLocalScaling_28btVector3_20const__29, btConvexInternalShape__getLocalScaling_28_29_20const, btTriangleShape__calculateLocalInertia_28float_2c_20btVector3__29_20const, btTriangleShape__getName_28_29_20const, btConvexInternalShape__setMargin_28float_29, btConvexInternalShape__getMargin_28_29_20const, btConvexInternalShape__calculateSerializeBufferSize_28_29_20const, btConvexInternalShape__serialize_28void__2c_20btSerializer__29_20const, btConvexInternalShape__localGetSupportingVertex_28btVector3_20const__29_20const, btTriangleShape__localGetSupportingVertexWithoutMargin_28btVector3_20const__29_20const, btConvexShape__project_28btTransform_20const__2c_20btVector3_20const__2c_20float__2c_20float__2c_20btVector3__2c_20btVector3__29_20const, btTriangleShape__batchedUnitVectorGetSupportingVertexWithoutMargin_28btVector3_20const__2c_20btVector3__2c_20int_29_20const, btConvexInternalShape__getAabbSlow_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const, btTriangleShape__getNumPreferredPenetrationDirections_28_29_20const, btTriangleShape__getPreferredPenetrationDirection_28int_2c_20btVector3__29_20const, btPolyhedralConvexShape__initializePolyhedralFeatures_28int_29, btTriangleShape__getNumVertices_28_29_20const, btTriangleShape__getNumEdges_28_29_20const, btTriangleShape__getEdge_28int_2c_20btVector3__2c_20btVector3__29_20const, btTriangleShape__getVertex_28int_2c_20btVector3__29_20const, btTriangleShape__getNumPlanes_28_29_20const, btTriangleShape__getPlane_28btVector3__2c_20btVector3__2c_20int_29_20const, btTriangleShape__isInside_28btVector3_20const__2c_20float_29_20const, btTriangleShape__getPlaneEquation_28int_2c_20btVector3__2c_20btVector3__29_20const, btConvexConcaveCollisionAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__LocalTriangleSphereCastCallback___LocalTriangleSphereCastCallback_28_29, btConvexConcaveCollisionAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__LocalTriangleSphereCastCallback___LocalTriangleSphereCastCallback_28_29_1, btConvexConcaveCollisionAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29__LocalTriangleSphereCastCallback__processTriangle_28btVector3__2c_20int_2c_20int_29, btCompoundCollisionAlgorithm___btCompoundCollisionAlgorithm_28_29, btCompoundCollisionAlgorithm___btCompoundCollisionAlgorithm_28_29_1, btCompoundCollisionAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29, btCompoundCollisionAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29, btCompoundCollisionAlgorithm__getAllContactManifolds_28btAlignedObjectArray_btPersistentManifold____29, btCompoundLeafCallback___btCompoundLeafCallback_28_29, btCompoundLeafCallback___btCompoundLeafCallback_28_29_1, btCompoundLeafCallback__Process_28btDbvtNode_20const__29, btCompoundCompoundCollisionAlgorithm___btCompoundCompoundCollisionAlgorithm_28_29, btCompoundCompoundCollisionAlgorithm___btCompoundCompoundCollisionAlgorithm_28_29_1, btCompoundCompoundCollisionAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29, btCompoundCompoundCollisionAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29, btCompoundCompoundCollisionAlgorithm__getAllContactManifolds_28btAlignedObjectArray_btPersistentManifold____29, btCompoundCompoundLeafCallback___btCompoundCompoundLeafCallback_28_29, btCompoundCompoundLeafCallback___btCompoundCompoundLeafCallback_28_29_1, btCompoundCompoundLeafCallback__Process_28btDbvtNode_20const__2c_20btDbvtNode_20const__29, btBoxBoxDetector___btBoxBoxDetector_28_29_1, btBoxBoxDetector___btBoxBoxDetector_28_29, btBoxBoxDetector__getClosestPoints_28btDiscreteCollisionDetectorInterface__ClosestPointInput_20const__2c_20btDiscreteCollisionDetectorInterface__Result__2c_20btIDebugDraw__2c_20bool_29, btDiscreteCollisionDetectorInterface___btDiscreteCollisionDetectorInterface_28_29, btDiscreteCollisionDetectorInterface___btDiscreteCollisionDetectorInterface_28_29_1, btBoxBoxCollisionAlgorithm___btBoxBoxCollisionAlgorithm_28_29, btBoxBoxCollisionAlgorithm___btBoxBoxCollisionAlgorithm_28_29_1, btBoxBoxCollisionAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29, btBoxBoxCollisionAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29, btBoxBoxCollisionAlgorithm__getAllContactManifolds_28btAlignedObjectArray_btPersistentManifold____29, btConvexPlaneCollisionAlgorithm___btConvexPlaneCollisionAlgorithm_28_29, btConvexPlaneCollisionAlgorithm___btConvexPlaneCollisionAlgorithm_28_29_1, btConvexPlaneCollisionAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29, btConvexPlaneCollisionAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29, btConvexPlaneCollisionAlgorithm__getAllContactManifolds_28btAlignedObjectArray_btPersistentManifold____29, btDefaultCollisionConfiguration___btDefaultCollisionConfiguration_28_29, btDefaultCollisionConfiguration___btDefaultCollisionConfiguration_28_29_1, btDefaultCollisionConfiguration__getPersistentManifoldPool_28_29, btDefaultCollisionConfiguration__getCollisionAlgorithmPool_28_29, btDefaultCollisionConfiguration__getCollisionAlgorithmCreateFunc_28int_2c_20int_29, btDefaultCollisionConfiguration__getClosestPointsAlgorithmCreateFunc_28int_2c_20int_29, btCollisionConfiguration___btCollisionConfiguration_28_29, btCollisionConfiguration___btCollisionConfiguration_28_29_1, btConvexConcaveCollisionAlgorithm__CreateFunc___CreateFunc_28_29, btConvexConcaveCollisionAlgorithm__CreateFunc___CreateFunc_28_29_1, btConvexConcaveCollisionAlgorithm__CreateFunc__CreateCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29, btCollisionAlgorithmCreateFunc___btCollisionAlgorithmCreateFunc_28_29, btCollisionAlgorithmCreateFunc___btCollisionAlgorithmCreateFunc_28_29_1, btCollisionAlgorithmCreateFunc__CreateCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29, btConvexConcaveCollisionAlgorithm__SwappedCreateFunc___SwappedCreateFunc_28_29, btConvexConcaveCollisionAlgorithm__SwappedCreateFunc___SwappedCreateFunc_28_29_1, btConvexConcaveCollisionAlgorithm__SwappedCreateFunc__CreateCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29, btCompoundCollisionAlgorithm__CreateFunc___CreateFunc_28_29, btCompoundCollisionAlgorithm__CreateFunc___CreateFunc_28_29_1, btCompoundCollisionAlgorithm__CreateFunc__CreateCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29, btCompoundCompoundCollisionAlgorithm__CreateFunc___CreateFunc_28_29, btCompoundCompoundCollisionAlgorithm__CreateFunc___CreateFunc_28_29_1, btCompoundCompoundCollisionAlgorithm__CreateFunc__CreateCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29, btCompoundCollisionAlgorithm__SwappedCreateFunc___SwappedCreateFunc_28_29, btCompoundCollisionAlgorithm__SwappedCreateFunc___SwappedCreateFunc_28_29_1, btCompoundCollisionAlgorithm__SwappedCreateFunc__CreateCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29, btEmptyAlgorithm__CreateFunc___CreateFunc_28_29, btEmptyAlgorithm__CreateFunc___CreateFunc_28_29_1, btEmptyAlgorithm__CreateFunc__CreateCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29, btSphereSphereCollisionAlgorithm__CreateFunc___CreateFunc_28_29, btSphereSphereCollisionAlgorithm__CreateFunc___CreateFunc_28_29_1, btSphereSphereCollisionAlgorithm__CreateFunc__CreateCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29, btSphereTriangleCollisionAlgorithm__CreateFunc___CreateFunc_28_29, btSphereTriangleCollisionAlgorithm__CreateFunc___CreateFunc_28_29_1, btSphereTriangleCollisionAlgorithm__CreateFunc__CreateCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29, btBoxBoxCollisionAlgorithm__CreateFunc___CreateFunc_28_29, btBoxBoxCollisionAlgorithm__CreateFunc___CreateFunc_28_29_1, btBoxBoxCollisionAlgorithm__CreateFunc__CreateCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29, btConvexPlaneCollisionAlgorithm__CreateFunc___CreateFunc_28_29, btConvexPlaneCollisionAlgorithm__CreateFunc___CreateFunc_28_29_1, btConvexPlaneCollisionAlgorithm__CreateFunc__CreateCollisionAlgorithm_28btCollisionAlgorithmConstructionInfo__2c_20btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__29, btEmptyAlgorithm___btEmptyAlgorithm_28_29, btEmptyAlgorithm___btEmptyAlgorithm_28_29_1, btEmptyAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29, btEmptyAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29, btEmptyAlgorithm__getAllContactManifolds_28btAlignedObjectArray_btPersistentManifold____29, btHashedSimplePairCache___btHashedSimplePairCache_28_29, btHashedSimplePairCache___btHashedSimplePairCache_28_29_1, btHashedSimplePairCache__removeOverlappingPair_28int_2c_20int_29, btHashedSimplePairCache__addOverlappingPair_28int_2c_20int_29, btHashedSimplePairCache__getOverlappingPairArrayPtr_28_29, btManifoldResult___btManifoldResult_28_29, btManifoldResult___btManifoldResult_28_29_1, btManifoldResult__addContactPoint_28btVector3_20const__2c_20btVector3_20const__2c_20float_29, btSphereSphereCollisionAlgorithm___btSphereSphereCollisionAlgorithm_28_29, btSphereSphereCollisionAlgorithm___btSphereSphereCollisionAlgorithm_28_29_1, btSphereSphereCollisionAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29, btSphereSphereCollisionAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29, btSphereSphereCollisionAlgorithm__getAllContactManifolds_28btAlignedObjectArray_btPersistentManifold____29, btSphereTriangleCollisionAlgorithm___btSphereTriangleCollisionAlgorithm_28_29, btSphereTriangleCollisionAlgorithm___btSphereTriangleCollisionAlgorithm_28_29_1, btSphereTriangleCollisionAlgorithm__processCollision_28btCollisionObjectWrapper_20const__2c_20btCollisionObjectWrapper_20const__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29, btSphereTriangleCollisionAlgorithm__calculateTimeOfImpact_28btCollisionObject__2c_20btCollisionObject__2c_20btDispatcherInfo_20const__2c_20btManifoldResult__29, btSphereTriangleCollisionAlgorithm__getAllContactManifolds_28btAlignedObjectArray_btPersistentManifold____29, SphereTriangleDetector___SphereTriangleDetector_28_29, SphereTriangleDetector___SphereTriangleDetector_28_29_1, SphereTriangleDetector__getClosestPoints_28btDiscreteCollisionDetectorInterface__ClosestPointInput_20const__2c_20btDiscreteCollisionDetectorInterface__Result__2c_20btIDebugDraw__2c_20bool_29, btBoxShape___btBoxShape_28_29, btBoxShape___btBoxShape_28_29_1, btBoxShape__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const, btBoxShape__setLocalScaling_28btVector3_20const__29, btBoxShape__calculateLocalInertia_28float_2c_20btVector3__29_20const, btBoxShape__getName_28_29_20const, btBoxShape__setMargin_28float_29, btBoxShape__localGetSupportingVertex_28btVector3_20const__29_20const, btBoxShape__localGetSupportingVertexWithoutMargin_28btVector3_20const__29_20const, btBoxShape__batchedUnitVectorGetSupportingVertexWithoutMargin_28btVector3_20const__2c_20btVector3__2c_20int_29_20const, btBoxShape__getNumPreferredPenetrationDirections_28_29_20const, btBoxShape__getPreferredPenetrationDirection_28int_2c_20btVector3__29_20const, btBoxShape__getNumVertices_28_29_20const, btBoxShape__getNumEdges_28_29_20const, btBoxShape__getEdge_28int_2c_20btVector3__2c_20btVector3__29_20const, btBoxShape__getVertex_28int_2c_20btVector3__29_20const, btBoxShape__getNumPlanes_28_29_20const, btBoxShape__getPlane_28btVector3__2c_20btVector3__2c_20int_29_20const, btBoxShape__isInside_28btVector3_20const__2c_20float_29_20const, btBoxShape__getPlaneEquation_28btVector4__2c_20int_29_20const, btQuantizedBvh___btQuantizedBvh_28_29, btQuantizedBvh__btQuantizedBvh_28_29, btQuantizedBvh___btQuantizedBvh_28_29_1, btQuantizedBvh__serialize_28void__2c_20unsigned_20int_2c_20bool_29_20const, btQuantizedBvh__calculateSerializeBufferSizeNew_28_29_20const, btQuantizedBvh__serialize_28void__2c_20btSerializer__29_20const, btQuantizedBvh__deSerializeFloat_28btQuantizedBvhFloatData__29, btQuantizedBvh__deSerializeDouble_28btQuantizedBvhDoubleData__29, btBvhTriangleMeshShape___btBvhTriangleMeshShape_28_29, btBvhTriangleMeshShape___btBvhTriangleMeshShape_28_29_1, btTriangleMeshShape__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const, btBvhTriangleMeshShape__setLocalScaling_28btVector3_20const__29, btTriangleMeshShape__getLocalScaling_28_29_20const, btTriangleMeshShape__calculateLocalInertia_28float_2c_20btVector3__29_20const, btBvhTriangleMeshShape__getName_28_29_20const, btConcaveShape__setMargin_28float_29, btConcaveShape__getMargin_28_29_20const, btBvhTriangleMeshShape__calculateSerializeBufferSize_28_29_20const, btBvhTriangleMeshShape__serialize_28void__2c_20btSerializer__29_20const, btBvhTriangleMeshShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const, btTriangleMeshShape__localGetSupportingVertex_28btVector3_20const__29_20const, btTriangleMeshShape__localGetSupportingVertexWithoutMargin_28btVector3_20const__29_20const, btBvhTriangleMeshShape__serializeSingleBvh_28btSerializer__29_20const, btBvhTriangleMeshShape__serializeSingleTriangleInfoMap_28btSerializer__29_20const, btBvhTriangleMeshShape__performRaycast_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29__MyNodeOverlapCallback___MyNodeOverlapCallback_28_29, btBvhTriangleMeshShape__performRaycast_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29__MyNodeOverlapCallback___MyNodeOverlapCallback_28_29_1, btBvhTriangleMeshShape__performRaycast_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29__MyNodeOverlapCallback__processNode_28int_2c_20int_29, btNodeOverlapCallback___btNodeOverlapCallback_28_29, btNodeOverlapCallback___btNodeOverlapCallback_28_29_1, btBvhTriangleMeshShape__performConvexcast_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29__MyNodeOverlapCallback___MyNodeOverlapCallback_28_29, btBvhTriangleMeshShape__performConvexcast_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29__MyNodeOverlapCallback___MyNodeOverlapCallback_28_29_1, btBvhTriangleMeshShape__performConvexcast_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__2c_20btVector3_20const__29__MyNodeOverlapCallback__processNode_28int_2c_20int_29, btBvhTriangleMeshShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const__MyNodeOverlapCallback___MyNodeOverlapCallback_28_29, btBvhTriangleMeshShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const__MyNodeOverlapCallback___MyNodeOverlapCallback_28_29_1, btBvhTriangleMeshShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const__MyNodeOverlapCallback__processNode_28int_2c_20int_29, btCapsuleShape___btCapsuleShape_28_29, btCapsuleShape___btCapsuleShape_28_29_1, btCapsuleShape__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const, btCapsuleShape__setLocalScaling_28btVector3_20const__29, btCapsuleShape__calculateLocalInertia_28float_2c_20btVector3__29_20const, btCapsuleShape__getName_28_29_20const, btCapsuleShape__getAnisotropicRollingFrictionDirection_28_29_20const, btCapsuleShape__setMargin_28float_29, btCapsuleShape__calculateSerializeBufferSize_28_29_20const, btCapsuleShape__serialize_28void__2c_20btSerializer__29_20const, btCapsuleShape__localGetSupportingVertexWithoutMargin_28btVector3_20const__29_20const, btCapsuleShape__batchedUnitVectorGetSupportingVertexWithoutMargin_28btVector3_20const__2c_20btVector3__2c_20int_29_20const, btConvexInternalShape__getNumPreferredPenetrationDirections_28_29_20const, btConvexInternalShape__getPreferredPenetrationDirection_28int_2c_20btVector3__29_20const, btCollisionShape___btCollisionShape_28_29, btCollisionShape___btCollisionShape_28_29_1, btCollisionShape__calculateSerializeBufferSize_28_29_20const, btCollisionShape__serialize_28void__2c_20btSerializer__29_20const, btCompoundShape___btCompoundShape_28_29, btCompoundShape___btCompoundShape_28_29_1, btConeShape___btConeShape_28_29, btConeShape___btConeShape_28_29_1, btConvexInternalShape__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const, btConeShape__setLocalScaling_28btVector3_20const__29, btConeShape__calculateLocalInertia_28float_2c_20btVector3__29_20const, btConeShape__getName_28_29_20const, btConeShape__getAnisotropicRollingFrictionDirection_28_29_20const, btConeShape__calculateSerializeBufferSize_28_29_20const, btConeShape__serialize_28void__2c_20btSerializer__29_20const, btConeShape__localGetSupportingVertex_28btVector3_20const__29_20const, btConeShape__localGetSupportingVertexWithoutMargin_28btVector3_20const__29_20const, btConeShape__batchedUnitVectorGetSupportingVertexWithoutMargin_28btVector3_20const__2c_20btVector3__2c_20int_29_20const, btConvexInternalShape___btConvexInternalShape_28_29, btConvexInternalShape___btConvexInternalShape_28_29_1, btConvexShape___btConvexShape_28_29, btConvexShape___btConvexShape_28_29_1, btConvexTriangleMeshShape___btConvexTriangleMeshShape_28_29, btConvexTriangleMeshShape___btConvexTriangleMeshShape_28_29_1, btPolyhedralConvexAabbCachingShape__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const, btConvexTriangleMeshShape__setLocalScaling_28btVector3_20const__29, btConvexTriangleMeshShape__getLocalScaling_28_29_20const, btPolyhedralConvexShape__calculateLocalInertia_28float_2c_20btVector3__29_20const, btConvexTriangleMeshShape__getName_28_29_20const, btConvexTriangleMeshShape__localGetSupportingVertex_28btVector3_20const__29_20const, btConvexTriangleMeshShape__localGetSupportingVertexWithoutMargin_28btVector3_20const__29_20const, btConvexTriangleMeshShape__batchedUnitVectorGetSupportingVertexWithoutMargin_28btVector3_20const__2c_20btVector3__2c_20int_29_20const, btConvexTriangleMeshShape__getNumVertices_28_29_20const, btConvexTriangleMeshShape__getNumEdges_28_29_20const, btConvexTriangleMeshShape__getEdge_28int_2c_20btVector3__2c_20btVector3__29_20const, btConvexTriangleMeshShape__getVertex_28int_2c_20btVector3__29_20const, btConvexTriangleMeshShape__getNumPlanes_28_29_20const, btConvexTriangleMeshShape__getPlane_28btVector3__2c_20btVector3__2c_20int_29_20const, btConvexTriangleMeshShape__isInside_28btVector3_20const__2c_20float_29_20const, LocalSupportVertexCallback___LocalSupportVertexCallback_28_29, LocalSupportVertexCallback___LocalSupportVertexCallback_28_29_1, LocalSupportVertexCallback__internalProcessTriangleIndex_28btVector3__2c_20int_2c_20int_29, btCylinderShape___btCylinderShape_28_29, btCylinderShape___btCylinderShape_28_29_1, btCylinderShape__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const, btCylinderShape__setLocalScaling_28btVector3_20const__29, btCylinderShape__calculateLocalInertia_28float_2c_20btVector3__29_20const, btCylinderShape__getName_28_29_20const, btCylinderShape__getAnisotropicRollingFrictionDirection_28_29_20const, btCylinderShape__setMargin_28float_29, btCylinderShape__calculateSerializeBufferSize_28_29_20const, btCylinderShape__serialize_28void__2c_20btSerializer__29_20const, btCylinderShape__localGetSupportingVertex_28btVector3_20const__29_20const, btCylinderShape__localGetSupportingVertexWithoutMargin_28btVector3_20const__29_20const, btCylinderShape__batchedUnitVectorGetSupportingVertexWithoutMargin_28btVector3_20const__2c_20btVector3__2c_20int_29_20const, btCylinderShape__getRadius_28_29_20const, btConcaveShape___btConcaveShape_28_29, btConcaveShape___btConcaveShape_28_29_1, btEmptyShape___btEmptyShape_28_29, btEmptyShape___btEmptyShape_28_29_1, btEmptyShape__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const, btEmptyShape__setLocalScaling_28btVector3_20const__29, btEmptyShape__getLocalScaling_28_29_20const, btEmptyShape__calculateLocalInertia_28float_2c_20btVector3__29_20const, btEmptyShape__getName_28_29_20const, btEmptyShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const, btHeightfieldTerrainShape___btHeightfieldTerrainShape_28_29, btHeightfieldTerrainShape___btHeightfieldTerrainShape_28_29_1, btHeightfieldTerrainShape__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const, btHeightfieldTerrainShape__setLocalScaling_28btVector3_20const__29, btHeightfieldTerrainShape__getLocalScaling_28_29_20const, btHeightfieldTerrainShape__calculateLocalInertia_28float_2c_20btVector3__29_20const, btHeightfieldTerrainShape__getName_28_29_20const, btHeightfieldTerrainShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const, btHeightfieldTerrainShape__getRawHeightFieldValue_28int_2c_20int_29_20const, btOptimizedBvh___btOptimizedBvh_28_29, btOptimizedBvh___btOptimizedBvh_28_29_1, btOptimizedBvh__serializeInPlace_28void__2c_20unsigned_20int_2c_20bool_29_20const, btOptimizedBvh__build_28btStridingMeshInterface__2c_20bool_2c_20btVector3_20const__2c_20btVector3_20const__29__QuantizedNodeTriangleCallback___QuantizedNodeTriangleCallback_28_29, btOptimizedBvh__build_28btStridingMeshInterface__2c_20bool_2c_20btVector3_20const__2c_20btVector3_20const__29__QuantizedNodeTriangleCallback___QuantizedNodeTriangleCallback_28_29_1, btOptimizedBvh__build_28btStridingMeshInterface__2c_20bool_2c_20btVector3_20const__2c_20btVector3_20const__29__QuantizedNodeTriangleCallback__internalProcessTriangleIndex_28btVector3__2c_20int_2c_20int_29, btOptimizedBvh__build_28btStridingMeshInterface__2c_20bool_2c_20btVector3_20const__2c_20btVector3_20const__29__NodeTriangleCallback___NodeTriangleCallback_28_29, btOptimizedBvh__build_28btStridingMeshInterface__2c_20bool_2c_20btVector3_20const__2c_20btVector3_20const__29__NodeTriangleCallback___NodeTriangleCallback_28_29_1, btOptimizedBvh__build_28btStridingMeshInterface__2c_20bool_2c_20btVector3_20const__2c_20btVector3_20const__29__NodeTriangleCallback__internalProcessTriangleIndex_28btVector3__2c_20int_2c_20int_29, btConvexPolyhedron___btConvexPolyhedron_28_29, btConvexPolyhedron___btConvexPolyhedron_28_29_1, btPolyhedralConvexShape___btPolyhedralConvexShape_28_29, btPolyhedralConvexShape___btPolyhedralConvexShape_28_29_1, btPolyhedralConvexShape__localGetSupportingVertexWithoutMargin_28btVector3_20const__29_20const, btPolyhedralConvexShape__batchedUnitVectorGetSupportingVertexWithoutMargin_28btVector3_20const__2c_20btVector3__2c_20int_29_20const, btPolyhedralConvexAabbCachingShape___btPolyhedralConvexAabbCachingShape_28_29, btPolyhedralConvexAabbCachingShape___btPolyhedralConvexAabbCachingShape_28_29_1, btPolyhedralConvexAabbCachingShape__setLocalScaling_28btVector3_20const__29, btScaledBvhTriangleMeshShape___btScaledBvhTriangleMeshShape_28_29, btScaledBvhTriangleMeshShape___btScaledBvhTriangleMeshShape_28_29_1, btScaledBvhTriangleMeshShape__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const, btScaledBvhTriangleMeshShape__setLocalScaling_28btVector3_20const__29, btScaledBvhTriangleMeshShape__getLocalScaling_28_29_20const, btScaledBvhTriangleMeshShape__calculateLocalInertia_28float_2c_20btVector3__29_20const, btScaledBvhTriangleMeshShape__getName_28_29_20const, btScaledBvhTriangleMeshShape__calculateSerializeBufferSize_28_29_20const, btScaledBvhTriangleMeshShape__serialize_28void__2c_20btSerializer__29_20const, btScaledBvhTriangleMeshShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const, btScaledTriangleCallback___btScaledTriangleCallback_28_29, btScaledTriangleCallback___btScaledTriangleCallback_28_29_1, btScaledTriangleCallback__processTriangle_28btVector3__2c_20int_2c_20int_29, btSphereShape___btSphereShape_28_29, btSphereShape___btSphereShape_28_29_1, btSphereShape__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const, btSphereShape__calculateLocalInertia_28float_2c_20btVector3__29_20const, btSphereShape__getName_28_29_20const, btSphereShape__setMargin_28float_29, btSphereShape__getMargin_28_29_20const, btSphereShape__localGetSupportingVertex_28btVector3_20const__29_20const, btSphereShape__localGetSupportingVertexWithoutMargin_28btVector3_20const__29_20const, btSphereShape__batchedUnitVectorGetSupportingVertexWithoutMargin_28btVector3_20const__2c_20btVector3__2c_20int_29_20const, btStaticPlaneShape___btStaticPlaneShape_28_29, btStaticPlaneShape___btStaticPlaneShape_28_29_1, btStaticPlaneShape__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const, btStaticPlaneShape__setLocalScaling_28btVector3_20const__29, btStaticPlaneShape__getLocalScaling_28_29_20const, btStaticPlaneShape__calculateLocalInertia_28float_2c_20btVector3__29_20const, btStaticPlaneShape__getName_28_29_20const, btStaticPlaneShape__calculateSerializeBufferSize_28_29_20const, btStaticPlaneShape__serialize_28void__2c_20btSerializer__29_20const, btStaticPlaneShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const, btBU_Simplex1to4___btBU_Simplex1to4_28_29, btBU_Simplex1to4___btBU_Simplex1to4_28_29_1, btBU_Simplex1to4__getAabb_28btTransform_20const__2c_20btVector3__2c_20btVector3__29_20const, btBU_Simplex1to4__getName_28_29_20const, btBU_Simplex1to4__getNumVertices_28_29_20const, btBU_Simplex1to4__getNumEdges_28_29_20const, btBU_Simplex1to4__getEdge_28int_2c_20btVector3__2c_20btVector3__29_20const, btBU_Simplex1to4__getVertex_28int_2c_20btVector3__29_20const, btBU_Simplex1to4__getNumPlanes_28_29_20const, btBU_Simplex1to4__getPlane_28btVector3__2c_20btVector3__2c_20int_29_20const, btBU_Simplex1to4__isInside_28btVector3_20const__2c_20float_29_20const, btBU_Simplex1to4__getIndex_28int_29_20const, btTriangleCallback___btTriangleCallback_28_29, btTriangleCallback___btTriangleCallback_28_29_1, btInternalTriangleIndexCallback___btInternalTriangleIndexCallback_28_29, btInternalTriangleIndexCallback___btInternalTriangleIndexCallback_28_29_1, btStridingMeshInterface___btStridingMeshInterface_28_29, btStridingMeshInterface___btStridingMeshInterface_28_29_1, btStridingMeshInterface__InternalProcessAllTriangles_28btInternalTriangleIndexCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const, btStridingMeshInterface__hasPremadeAabb_28_29_20const, btStridingMeshInterface__setPremadeAabb_28btVector3_20const__2c_20btVector3_20const__29_20const, btStridingMeshInterface__getPremadeAabb_28btVector3__2c_20btVector3__29_20const, btStridingMeshInterface__calculateSerializeBufferSize_28_29_20const, btStridingMeshInterface__serialize_28void__2c_20btSerializer__29_20const, btTriangleIndexVertexArray___btTriangleIndexVertexArray_28_29, btTriangleIndexVertexArray___btTriangleIndexVertexArray_28_29_1, btTriangleIndexVertexArray__getLockedVertexIndexBase_28unsigned_20char___2c_20int__2c_20PHY_ScalarType__2c_20int__2c_20unsigned_20char___2c_20int__2c_20int__2c_20PHY_ScalarType__2c_20int_29, btTriangleIndexVertexArray__getLockedReadOnlyVertexIndexBase_28unsigned_20char_20const___2c_20int__2c_20PHY_ScalarType__2c_20int__2c_20unsigned_20char_20const___2c_20int__2c_20int__2c_20PHY_ScalarType__2c_20int_29_20const, btTriangleIndexVertexArray__unLockVertexBase_28int_29, btTriangleIndexVertexArray__unLockReadOnlyVertexBase_28int_29_20const, btTriangleIndexVertexArray__getNumSubParts_28_29_20const, btTriangleIndexVertexArray__preallocateVertices_28int_29, btTriangleIndexVertexArray__preallocateIndices_28int_29, btTriangleIndexVertexArray__hasPremadeAabb_28_29_20const, btTriangleIndexVertexArray__setPremadeAabb_28btVector3_20const__2c_20btVector3_20const__29_20const, btTriangleIndexVertexArray__getPremadeAabb_28btVector3__2c_20btVector3__29_20const, btTriangleMesh___btTriangleMesh_28_29, btTriangleMesh___btTriangleMesh_28_29_1, btTriangleMesh__preallocateVertices_28int_29, btTriangleMesh__preallocateIndices_28int_29, btTriangleMeshShape___btTriangleMeshShape_28_29, btTriangleMeshShape___btTriangleMeshShape_28_29_1, btTriangleMeshShape__setLocalScaling_28btVector3_20const__29, btTriangleMeshShape__getName_28_29_20const, btTriangleMeshShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const, btTriangleMeshShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const__FilteredCallback___FilteredCallback_28_29, btTriangleMeshShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const__FilteredCallback___FilteredCallback_28_29_1, btTriangleMeshShape__processAllTriangles_28btTriangleCallback__2c_20btVector3_20const__2c_20btVector3_20const__29_20const__FilteredCallback__internalProcessTriangleIndex_28btVector3__2c_20int_2c_20int_29, SupportVertexCallback___SupportVertexCallback_28_29, SupportVertexCallback___SupportVertexCallback_28_29_1, SupportVertexCallback__processTriangle_28btVector3__2c_20int_2c_20int_29, btContinuousConvexCollision___btContinuousConvexCollision_28_29, btContinuousConvexCollision___btContinuousConvexCollision_28_29_1, btContinuousConvexCollision__calcTimeOfImpact_28btTransform_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btConvexCast__CastResult__29, btPointCollector___btPointCollector_28_29, btPointCollector___btPointCollector_28_29_1, btPointCollector__setShapeIdentifiersA_28int_2c_20int_29, btPointCollector__setShapeIdentifiersB_28int_2c_20int_29, btPointCollector__addContactPoint_28btVector3_20const__2c_20btVector3_20const__2c_20float_29, btConvexCast___btConvexCast_28_29, btConvexCast___btConvexCast_28_29_1, btGjkConvexCast___btGjkConvexCast_28_29, btGjkConvexCast___btGjkConvexCast_28_29_1, btGjkConvexCast__calcTimeOfImpact_28btTransform_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btConvexCast__CastResult__29, btConvexShape__localGetSupportVertexNonVirtual_28btVector3_20const__29_20const, btConvexShape__localGetSupportVertexWithoutMarginNonVirtual_28btVector3_20const__29_20const, btGjkEpaPenetrationDepthSolver___btGjkEpaPenetrationDepthSolver_28_29, btGjkEpaPenetrationDepthSolver___btGjkEpaPenetrationDepthSolver_28_29_1, btGjkEpaPenetrationDepthSolver__calcPenDepth_28btVoronoiSimplexSolver__2c_20btConvexShape_20const__2c_20btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3__2c_20btVector3__2c_20btVector3__2c_20btIDebugDraw__29, btGjkPairDetector___btGjkPairDetector_28_29, btGjkPairDetector___btGjkPairDetector_28_29_1, btGjkPairDetector__getClosestPoints_28btDiscreteCollisionDetectorInterface__ClosestPointInput_20const__2c_20btDiscreteCollisionDetectorInterface__Result__2c_20btIDebugDraw__2c_20bool_29, btMinkowskiPenetrationDepthSolver___btMinkowskiPenetrationDepthSolver_28_29, btMinkowskiPenetrationDepthSolver___btMinkowskiPenetrationDepthSolver_28_29_1, btMinkowskiPenetrationDepthSolver__calcPenDepth_28btVoronoiSimplexSolver__2c_20btConvexShape_20const__2c_20btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3__2c_20btVector3__2c_20btVector3__2c_20btIDebugDraw__29, btMinkowskiPenetrationDepthSolver__calcPenDepth_28btVoronoiSimplexSolver__2c_20btConvexShape_20const__2c_20btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3__2c_20btVector3__2c_20btVector3__2c_20btIDebugDraw__29__btIntermediateResult___btIntermediateResult_28_29, btMinkowskiPenetrationDepthSolver__calcPenDepth_28btVoronoiSimplexSolver__2c_20btConvexShape_20const__2c_20btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3__2c_20btVector3__2c_20btVector3__2c_20btIDebugDraw__29__btIntermediateResult___btIntermediateResult_28_29_1, btMinkowskiPenetrationDepthSolver__calcPenDepth_28btVoronoiSimplexSolver__2c_20btConvexShape_20const__2c_20btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3__2c_20btVector3__2c_20btVector3__2c_20btIDebugDraw__29__btIntermediateResult__setShapeIdentifiersA_28int_2c_20int_29, btMinkowskiPenetrationDepthSolver__calcPenDepth_28btVoronoiSimplexSolver__2c_20btConvexShape_20const__2c_20btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3__2c_20btVector3__2c_20btVector3__2c_20btIDebugDraw__29__btIntermediateResult__setShapeIdentifiersB_28int_2c_20int_29, btMinkowskiPenetrationDepthSolver__calcPenDepth_28btVoronoiSimplexSolver__2c_20btConvexShape_20const__2c_20btConvexShape_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btVector3__2c_20btVector3__2c_20btVector3__2c_20btIDebugDraw__29__btIntermediateResult__addContactPoint_28btVector3_20const__2c_20btVector3_20const__2c_20float_29, btTriangleRaycastCallback___btTriangleRaycastCallback_28_29, btTriangleRaycastCallback___btTriangleRaycastCallback_28_29_1, btTriangleConvexcastCallback___btTriangleConvexcastCallback_28_29, btTriangleConvexcastCallback___btTriangleConvexcastCallback_28_29_1, btSubsimplexConvexCast___btSubsimplexConvexCast_28_29, btSubsimplexConvexCast___btSubsimplexConvexCast_28_29_1, btSubsimplexConvexCast__calcTimeOfImpact_28btTransform_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btTransform_20const__2c_20btConvexCast__CastResult__29, btFixedConstraint___btFixedConstraint_28_29, btFixedConstraint___btFixedConstraint_28_29_1, btGeneric6DofSpring2Constraint__buildJacobian_28_29, btTypedConstraint__setupSolverConstraint_28btAlignedObjectArray_btSolverConstraint___2c_20int_2c_20int_2c_20float_29, btGeneric6DofSpring2Constraint__getInfo1_28btTypedConstraint__btConstraintInfo1__29, btGeneric6DofSpring2Constraint__getInfo2_28btTypedConstraint__btConstraintInfo2__29, btTypedConstraint__solveConstraintObsolete_28btSolverBody__2c_20btSolverBody__2c_20float_29, btGeneric6DofSpring2Constraint__setParam_28int_2c_20float_2c_20int_29, btGeneric6DofSpring2Constraint__getParam_28int_2c_20int_29_20const, btGeneric6DofSpring2Constraint__calculateSerializeBufferSize_28_29_20const, btGeneric6DofSpring2Constraint__serialize_28void__2c_20btSerializer__29_20const, btGeneric6DofSpring2Constraint___btGeneric6DofSpring2Constraint_28_29, btGeneric6DofSpring2Constraint___btGeneric6DofSpring2Constraint_28_29_1, btHingeConstraint___btHingeConstraint_28_29, btHingeConstraint___btHingeConstraint_28_29_1, btHingeConstraint__buildJacobian_28_29, btHingeConstraint__getInfo1_28btTypedConstraint__btConstraintInfo1__29, btHingeConstraint__getInfo2_28btTypedConstraint__btConstraintInfo2__29, btHingeConstraint__setParam_28int_2c_20float_2c_20int_29, btHingeConstraint__getParam_28int_2c_20int_29_20const, btHingeConstraint__calculateSerializeBufferSize_28_29_20const, btHingeConstraint__serialize_28void__2c_20btSerializer__29_20const, btHingeConstraint__getFlags_28_29_20const, btPoint2PointConstraint___btPoint2PointConstraint_28_29, btPoint2PointConstraint___btPoint2PointConstraint_28_29_1, btPoint2PointConstraint__buildJacobian_28_29, btPoint2PointConstraint__getInfo1_28btTypedConstraint__btConstraintInfo1__29, btPoint2PointConstraint__getInfo2_28btTypedConstraint__btConstraintInfo2__29, btPoint2PointConstraint__setParam_28int_2c_20float_2c_20int_29, btPoint2PointConstraint__getParam_28int_2c_20int_29_20const, btPoint2PointConstraint__calculateSerializeBufferSize_28_29_20const, btPoint2PointConstraint__serialize_28void__2c_20btSerializer__29_20const, btPoint2PointConstraint__getFlags_28_29_20const, gResolveSingleConstraintRowGeneric_scalar_reference_28btSolverBody__2c_20btSolverBody__2c_20btSolverConstraint_20const__29, gResolveSingleConstraintRowLowerLimit_scalar_reference_28btSolverBody__2c_20btSolverBody__2c_20btSolverConstraint_20const__29, gResolveSplitPenetrationImpulse_scalar_reference_28btSolverBody__2c_20btSolverBody__2c_20btSolverConstraint_20const__29, btSequentialImpulseConstraintSolver___btSequentialImpulseConstraintSolver_28_29, btSequentialImpulseConstraintSolver___btSequentialImpulseConstraintSolver_28_29_1, btConstraintSolver__prepareSolve_28int_2c_20int_29, btSequentialImpulseConstraintSolver__solveGroup_28btCollisionObject___2c_20int_2c_20btPersistentManifold___2c_20int_2c_20btTypedConstraint___2c_20int_2c_20btContactSolverInfo_20const__2c_20btIDebugDraw__2c_20btDispatcher__29, btConstraintSolver__allSolved_28btContactSolverInfo_20const__2c_20btIDebugDraw__29, btSequentialImpulseConstraintSolver__reset_28_29, btSequentialImpulseConstraintSolver__getSolverType_28_29_20const, btSequentialImpulseConstraintSolver__convertContacts_28btPersistentManifold___2c_20int_2c_20btContactSolverInfo_20const__29, btSequentialImpulseConstraintSolver__solveGroupCacheFriendlySplitImpulseIterations_28btCollisionObject___2c_20int_2c_20btPersistentManifold___2c_20int_2c_20btTypedConstraint___2c_20int_2c_20btContactSolverInfo_20const__2c_20btIDebugDraw__29, btSequentialImpulseConstraintSolver__solveGroupCacheFriendlyFinish_28btCollisionObject___2c_20int_2c_20btContactSolverInfo_20const__29, btSequentialImpulseConstraintSolver__solveSingleIteration_28int_2c_20btCollisionObject___2c_20int_2c_20btPersistentManifold___2c_20int_2c_20btTypedConstraint___2c_20int_2c_20btContactSolverInfo_20const__2c_20btIDebugDraw__29, btSequentialImpulseConstraintSolver__solveGroupCacheFriendlySetup_28btCollisionObject___2c_20int_2c_20btPersistentManifold___2c_20int_2c_20btTypedConstraint___2c_20int_2c_20btContactSolverInfo_20const__2c_20btIDebugDraw__29, btSequentialImpulseConstraintSolver__solveGroupCacheFriendlyIterations_28btCollisionObject___2c_20int_2c_20btPersistentManifold___2c_20int_2c_20btTypedConstraint___2c_20int_2c_20btContactSolverInfo_20const__2c_20btIDebugDraw__29, btConstraintSolver___btConstraintSolver_28_29, btConstraintSolver___btConstraintSolver_28_29_1, __cxx_global_array_dtor_1, btTypedConstraint___btTypedConstraint_28_29, btTypedConstraint___btTypedConstraint_28_29_1, btTypedConstraint__buildJacobian_28_29, btTypedConstraint__calculateSerializeBufferSize_28_29_20const, btTypedConstraint__serialize_28void__2c_20btSerializer__29_20const, btRigidBody___btRigidBody_28_29, btRigidBody___btRigidBody_28_29_1, btRigidBody__calculateSerializeBufferSize_28_29_20const, btRigidBody__serialize_28void__2c_20btSerializer__29_20const, btRigidBody__serializeSingleObject_28btSerializer__29_20const, btSimulationIslandManager___btSimulationIslandManager_28_29, btSimulationIslandManager___btSimulationIslandManager_28_29_1, btSimulationIslandManager__updateActivationState_28btCollisionWorld__2c_20btDispatcher__29, btSimulationIslandManager__storeIslandActivationState_28btCollisionWorld__29, btDiscreteDynamicsWorld___btDiscreteDynamicsWorld_28_29, btDiscreteDynamicsWorld___btDiscreteDynamicsWorld_28_29_1, btDiscreteDynamicsWorld__debugDrawWorld_28_29, btDiscreteDynamicsWorld__addCollisionObject_28btCollisionObject__2c_20int_2c_20int_29, btDiscreteDynamicsWorld__removeCollisionObject_28btCollisionObject__29, btDiscreteDynamicsWorld__serialize_28btSerializer__29, btDiscreteDynamicsWorld__stepSimulation_28float_2c_20int_2c_20float_29, btDiscreteDynamicsWorld__addConstraint_28btTypedConstraint__2c_20bool_29, btDiscreteDynamicsWorld__removeConstraint_28btTypedConstraint__29, btDiscreteDynamicsWorld__addAction_28btActionInterface__29, btDiscreteDynamicsWorld__removeAction_28btActionInterface__29, btDiscreteDynamicsWorld__setGravity_28btVector3_20const__29, btDiscreteDynamicsWorld__getGravity_28_29_20const, btDiscreteDynamicsWorld__synchronizeMotionStates_28_29, btDiscreteDynamicsWorld__addRigidBody_28btRigidBody__29, btDiscreteDynamicsWorld__addRigidBody_28btRigidBody__2c_20int_2c_20int_29, btDiscreteDynamicsWorld__removeRigidBody_28btRigidBody__29, btDiscreteDynamicsWorld__setConstraintSolver_28btConstraintSolver__29, btDiscreteDynamicsWorld__getConstraintSolver_28_29, btDiscreteDynamicsWorld__getNumConstraints_28_29_20const, btDiscreteDynamicsWorld__getConstraint_28int_29, btDiscreteDynamicsWorld__getConstraint_28int_29_20const, btDiscreteDynamicsWorld__getWorldType_28_29_20const, btDiscreteDynamicsWorld__clearForces_28_29, btDiscreteDynamicsWorld__addVehicle_28btActionInterface__29, btDiscreteDynamicsWorld__removeVehicle_28btActionInterface__29, btDiscreteDynamicsWorld__addCharacter_28btActionInterface__29, btDiscreteDynamicsWorld__removeCharacter_28btActionInterface__29, btDiscreteDynamicsWorld__predictUnconstraintMotion_28float_29, btDiscreteDynamicsWorld__integrateTransforms_28float_29, btDiscreteDynamicsWorld__calculateSimulationIslands_28_29, btDiscreteDynamicsWorld__solveConstraints_28btContactSolverInfo__29, btDiscreteDynamicsWorld__updateActivationState_28float_29, btDiscreteDynamicsWorld__internalSingleStepSimulation_28float_29, btDiscreteDynamicsWorld__createPredictiveContacts_28float_29, btDiscreteDynamicsWorld__saveKinematicState_28float_29, btDiscreteDynamicsWorld__debugDrawConstraint_28btTypedConstraint__29, btDiscreteDynamicsWorld__applyGravity_28_29, btDiscreteDynamicsWorld__setNumTasks_28int_29, btDiscreteDynamicsWorld__updateVehicles_28float_29, btDynamicsWorld___btDynamicsWorld_28_29, btDynamicsWorld___btDynamicsWorld_28_29_1, btDynamicsWorld__addConstraint_28btTypedConstraint__2c_20bool_29, btDynamicsWorld__removeConstraint_28btTypedConstraint__29, btDynamicsWorld__getNumConstraints_28_29_20const, btDynamicsWorld__getConstraint_28int_29, btDynamicsWorld__getConstraint_28int_29_20const, btDynamicsWorld__addVehicle_28btActionInterface__29, btDynamicsWorld__removeVehicle_28btActionInterface__29, btDynamicsWorld__addCharacter_28btActionInterface__29, btDynamicsWorld__removeCharacter_28btActionInterface__29, InplaceSolverIslandCallback___InplaceSolverIslandCallback_28_29, InplaceSolverIslandCallback___InplaceSolverIslandCallback_28_29_1, InplaceSolverIslandCallback__processIsland_28btCollisionObject___2c_20int_2c_20btPersistentManifold___2c_20int_2c_20int_29, btSimulationIslandManager__IslandCallback___IslandCallback_28_29, btSimulationIslandManager__IslandCallback___IslandCallback_28_29_1, btClosestNotMeConvexResultCallback___btClosestNotMeConvexResultCallback_28_29, btClosestNotMeConvexResultCallback___btClosestNotMeConvexResultCallback_28_29_1, btClosestNotMeConvexResultCallback__needsCollision_28btBroadphaseProxy__29_20const, btClosestNotMeConvexResultCallback__addSingleResult_28btCollisionWorld__LocalConvexResult__2c_20bool_29, cc__ccDiscreteDynamicsWorld___ccDiscreteDynamicsWorld_28_29, cc__ccDiscreteDynamicsWorld___ccDiscreteDynamicsWorld_28_29_1, cc__ccDiscreteDynamicsWorld__createPredictiveContacts_28float_29, cc__ccDiscreteDynamicsWorld__applyGravity_28_29, cc__ccOverlapFilterCallback___ccOverlapFilterCallback_28_29, cc__ccOverlapFilterCallback___ccOverlapFilterCallback_28_29_1, cc__ccOverlapFilterCallback__needBroadphaseCollision_28btBroadphaseProxy__2c_20btBroadphaseProxy__29_20const, btOverlapFilterCallback___btOverlapFilterCallback_28_29, btOverlapFilterCallback___btOverlapFilterCallback_28_29_1, btGhostPairCallback___btGhostPairCallback_28_29, btGhostPairCallback___btGhostPairCallback_28_29_1, btGhostPairCallback__addOverlappingPair_28btBroadphaseProxy__2c_20btBroadphaseProxy__29, btGhostPairCallback__removeOverlappingPair_28btBroadphaseProxy__2c_20btBroadphaseProxy__2c_20btDispatcher__29, btGhostPairCallback__removeOverlappingPairsContainingProxy_28btBroadphaseProxy__2c_20btDispatcher__29, cc__ccNotMeClosestConvexResultCallback___ccNotMeClosestConvexResultCallback_28_29, cc__ccNotMeClosestConvexResultCallback___ccNotMeClosestConvexResultCallback_28_29_1, cc__ccNotMeClosestConvexResultCallback__needsCollision_28btBroadphaseProxy__29_20const, cc__ccNotMeClosestConvexResultCallback__addSingleResult_28btCollisionWorld__LocalConvexResult__2c_20bool_29, btGhostObject___btGhostObject_28_29, btPairCachingGhostObject___btPairCachingGhostObject_28_29, btGhostObject___btGhostObject_28_29_1, btGhostObject__addOverlappingObjectInternal_28btBroadphaseProxy__2c_20btBroadphaseProxy__29, btGhostObject__removeOverlappingObjectInternal_28btBroadphaseProxy__2c_20btDispatcher__2c_20btBroadphaseProxy__29, btPairCachingGhostObject___btPairCachingGhostObject_28_29_1, btPairCachingGhostObject__addOverlappingObjectInternal_28btBroadphaseProxy__2c_20btBroadphaseProxy__29, btPairCachingGhostObject__removeOverlappingObjectInternal_28btBroadphaseProxy__2c_20btDispatcher__2c_20btBroadphaseProxy__29, __cxx_global_array_dtor_2, btCharacterController___btCharacterController_28_29, btCharacterController___btCharacterController_28_29_1, btCharacterController__updateAction_28btCollisionWorld__2c_20float_29, btCharacterController__debugDraw_28btIDebugDraw__29, btCharacterController__getType_28_29, btCapsuleCharacterController___btCapsuleCharacterController_28_29, btCapsuleCharacterController___btCapsuleCharacterController_28_29_1, btCapsuleCharacterController__getFullHalfHeight_28_29, btBoxCharacterController___btBoxCharacterController_28_29, btBoxCharacterController___btBoxCharacterController_28_29_1, btBoxCharacterController__getFullHalfHeight_28_29, btKinematicClosestNotMeConvexResultCallback___btKinematicClosestNotMeConvexResultCallback_28_29, btKinematicClosestNotMeConvexResultCallback___btKinematicClosestNotMeConvexResultCallback_28_29_1, btKinematicClosestNotMeConvexResultCallback__addSingleResult_28btCollisionWorld__LocalConvexResult__2c_20bool_29, btActionInterface___btActionInterface_28_29, btActionInterface___btActionInterface_28_29_1, embind_init_builtin_28_29, __emscripten_stdout_close, __stdio_write, __emscripten_stdout_seek, fmt_fp, pop_arg_long_double, __stdio_close, __stdio_seek, __cxxabiv1____shim_type_info_____shim_type_info_28_29, __cxxabiv1____fundamental_type_info_____fundamental_type_info_28_29, __cxxabiv1____shim_type_info__noop1_28_29_20const, __cxxabiv1____shim_type_info__noop2_28_29_20const, __cxxabiv1____fundamental_type_info__can_catch_28__cxxabiv1____shim_type_info_20const__2c_20void___29_20const, __cxxabiv1____class_type_info_____class_type_info_28_29, __cxxabiv1____class_type_info__can_catch_28__cxxabiv1____shim_type_info_20const__2c_20void___29_20const, __cxxabiv1____class_type_info__search_above_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20void_20const__2c_20int_2c_20bool_29_20const, __cxxabiv1____class_type_info__search_below_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20int_2c_20bool_29_20const, __cxxabiv1____class_type_info__has_unambiguous_public_base_28__cxxabiv1____dynamic_cast_info__2c_20void__2c_20int_29_20const, __cxxabiv1____si_class_type_info_____si_class_type_info_28_29, __cxxabiv1____si_class_type_info__search_above_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20void_20const__2c_20int_2c_20bool_29_20const, __cxxabiv1____si_class_type_info__search_below_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20int_2c_20bool_29_20const, __cxxabiv1____si_class_type_info__has_unambiguous_public_base_28__cxxabiv1____dynamic_cast_info__2c_20void__2c_20int_29_20const, __cxxabiv1____vmi_class_type_info_____vmi_class_type_info_28_29, __cxxabiv1____vmi_class_type_info__search_above_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20void_20const__2c_20int_2c_20bool_29_20const, __cxxabiv1____vmi_class_type_info__search_below_dst_28__cxxabiv1____dynamic_cast_info__2c_20void_20const__2c_20int_2c_20bool_29_20const, __cxxabiv1____vmi_class_type_info__has_unambiguous_public_base_28__cxxabiv1____dynamic_cast_info__2c_20void__2c_20int_29_20const, __cxxabiv1____pointer_type_info_____pointer_type_info_28_29, __cxxabiv1____pointer_type_info__can_catch_28__cxxabiv1____shim_type_info_20const__2c_20void___29_20const]); + function __wasm_memory_size() { + return buffer.byteLength / 65536 | 0; + } + + function __wasm_memory_grow(pagesToAdd) { + pagesToAdd = pagesToAdd | 0; + var oldPages = __wasm_memory_size() | 0; + var newPages = oldPages + pagesToAdd | 0; + if ((oldPages < newPages) && (newPages < 65536)) { + var newBuffer = new ArrayBuffer(Math_imul(newPages, 65536)); + var newHEAP8 = new Int8Array(newBuffer); + newHEAP8.set(HEAP8); + HEAP8 = new Int8Array(newBuffer); + HEAP16 = new Int16Array(newBuffer); + HEAP32 = new Int32Array(newBuffer); + HEAPU8 = new Uint8Array(newBuffer); + HEAPU16 = new Uint16Array(newBuffer); + HEAPU32 = new Uint32Array(newBuffer); + HEAPF32 = new Float32Array(newBuffer); + HEAPF64 = new Float64Array(newBuffer); + buffer = newBuffer; + memory.buffer = buffer; + bufferView = HEAPU8; + } + return oldPages; + } + + return { + "__wasm_call_ctors": __wasm_call_ctors, + "malloc": dlmalloc, + "free": dlfree, + "__indirect_function_table": FUNCTION_TABLE, + "__getTypeName": __getTypeName, + "_embind_initialize_bindings": _embind_initialize_bindings, + "__errno_location": __errno_location, + "fflush": fflush, + "emscripten_stack_init": emscripten_stack_init, + "emscripten_stack_get_free": emscripten_stack_get_free, + "emscripten_stack_get_base": emscripten_stack_get_base, + "emscripten_stack_get_end": emscripten_stack_get_end, + "stackSave": stackSave, + "stackRestore": stackRestore, + "stackAlloc": stackAlloc, + "emscripten_stack_get_current": emscripten_stack_get_current, + "dynCall_jiji": legalstub$dynCall_jiji + }; +} + + return asmFunc(info); +} + +)(info); + }, + + instantiate: /** @suppress{checkTypes} */ function(binary, info) { + return { + then: function(ok) { + var module = new WebAssembly.Module(binary); + ok({ + 'instance': new WebAssembly.Instance(module, info) + }); + // Emulate a simple WebAssembly.instantiate(..).then(()=>{}).catch(()=>{}) syntax. + return { catch: function() {} }; + } + }; + }, + + RuntimeError: Error +}; + +// We don't need to actually download a wasm binary, mark it as present but empty. +wasmBinary = []; + +// end include: wasm2js.js +if (typeof WebAssembly != 'object') { + abort('no native wasm support detected'); +} + +// Wasm globals + +var wasmMemory; + +//======================================== +// Runtime essentials +//======================================== + +// whether we are quitting the application. no code should run after this. +// set in exit() and abort() +var ABORT = false; + +// set by exit() and abort(). Passed to 'onExit' handler. +// NOTE: This is also used as the process return code code in shell environments +// but only when noExitRuntime is false. +var EXITSTATUS; + +/** @type {function(*, string=)} */ +function assert(condition, text) { + if (!condition) { + abort('Assertion failed' + (text ? ': ' + text : '')); + } +} + +// We used to include malloc/free by default in the past. Show a helpful error in +// builds with assertions. + +// Memory management + +var HEAP, +/** @type {!Int8Array} */ + HEAP8, +/** @type {!Uint8Array} */ + HEAPU8, +/** @type {!Int16Array} */ + HEAP16, +/** @type {!Uint16Array} */ + HEAPU16, +/** @type {!Int32Array} */ + HEAP32, +/** @type {!Uint32Array} */ + HEAPU32, +/** @type {!Float32Array} */ + HEAPF32, +/** @type {!Float64Array} */ + HEAPF64; + +function updateMemoryViews() { + var b = wasmMemory.buffer; + Module['HEAP8'] = HEAP8 = new Int8Array(b); + Module['HEAP16'] = HEAP16 = new Int16Array(b); + Module['HEAP32'] = HEAP32 = new Int32Array(b); + Module['HEAPU8'] = HEAPU8 = new Uint8Array(b); + Module['HEAPU16'] = HEAPU16 = new Uint16Array(b); + Module['HEAPU32'] = HEAPU32 = new Uint32Array(b); + Module['HEAPF32'] = HEAPF32 = new Float32Array(b); + Module['HEAPF64'] = HEAPF64 = new Float64Array(b); +} + +assert(!Module['STACK_SIZE'], 'STACK_SIZE can no longer be set at runtime. Use -sSTACK_SIZE at link time') + +assert(typeof Int32Array != 'undefined' && typeof Float64Array !== 'undefined' && Int32Array.prototype.subarray != undefined && Int32Array.prototype.set != undefined, + 'JS engine does not provide full typed array support'); + +// In non-standalone/normal mode, we create the memory here. +// include: runtime_init_memory.js +// Create the wasm memory. (Note: this only applies if IMPORTED_MEMORY is defined) + +var INITIAL_MEMORY = Module['INITIAL_MEMORY'] || 16777216;legacyModuleProp('INITIAL_MEMORY', 'INITIAL_MEMORY'); + +assert(INITIAL_MEMORY >= 65536, 'INITIAL_MEMORY should be larger than STACK_SIZE, was ' + INITIAL_MEMORY + '! (STACK_SIZE=' + 65536 + ')'); + +// check for full engine support (use string 'subarray' to avoid closure compiler confusion) + + if (Module['wasmMemory']) { + wasmMemory = Module['wasmMemory']; + } else + { + wasmMemory = new WebAssembly.Memory({ + 'initial': INITIAL_MEMORY / 65536, + // In theory we should not need to emit the maximum if we want "unlimited" + // or 4GB of memory, but VMs error on that atm, see + // https://github.com/emscripten-core/emscripten/issues/14130 + // And in the pthreads case we definitely need to emit a maximum. So + // always emit one. + 'maximum': 2147483648 / 65536 + }); + } + +updateMemoryViews(); + +// If the user provides an incorrect length, just use that length instead rather than providing the user to +// specifically provide the memory length with Module['INITIAL_MEMORY']. +INITIAL_MEMORY = wasmMemory.buffer.byteLength; +assert(INITIAL_MEMORY % 65536 === 0); + +// end include: runtime_init_memory.js + +// include: runtime_init_table.js +// In regular non-RELOCATABLE mode the table is exported +// from the wasm module and this will be assigned once +// the exports are available. +var wasmTable; + +// end include: runtime_init_table.js +// include: runtime_stack_check.js +// Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode. +function writeStackCookie() { + var max = _emscripten_stack_get_end(); + assert((max & 3) == 0); + // If the stack ends at address zero we write our cookies 4 bytes into the + // stack. This prevents interference with SAFE_HEAP and ASAN which also + // monitor writes to address zero. + if (max == 0) { + max += 4; + } + // The stack grow downwards towards _emscripten_stack_get_end. + // We write cookies to the final two words in the stack and detect if they are + // ever overwritten. + HEAPU32[((max)>>2)] = 0x02135467; + HEAPU32[(((max)+(4))>>2)] = 0x89BACDFE; + // Also test the global address 0 for integrity. + HEAPU32[((0)>>2)] = 1668509029; +} + +function checkStackCookie() { + if (ABORT) return; + var max = _emscripten_stack_get_end(); + // See writeStackCookie(). + if (max == 0) { + max += 4; + } + var cookie1 = HEAPU32[((max)>>2)]; + var cookie2 = HEAPU32[(((max)+(4))>>2)]; + if (cookie1 != 0x02135467 || cookie2 != 0x89BACDFE) { + abort(`Stack overflow! Stack cookie has been overwritten at ${ptrToString(max)}, expected hex dwords 0x89BACDFE and 0x2135467, but received ${ptrToString(cookie2)} ${ptrToString(cookie1)}`); + } + // Also test the global address 0 for integrity. + if (HEAPU32[((0)>>2)] != 0x63736d65 /* 'emsc' */) { + abort('Runtime error: The application has corrupted its heap memory area (address zero)!'); + } +} + +// end include: runtime_stack_check.js +// include: runtime_assertions.js +// Endianness check +(function() { + var h16 = new Int16Array(1); + var h8 = new Int8Array(h16.buffer); + h16[0] = 0x6373; + if (h8[0] !== 0x73 || h8[1] !== 0x63) throw 'Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)'; +})(); + +// end include: runtime_assertions.js +var __ATPRERUN__ = []; // functions called before the runtime is initialized +var __ATINIT__ = []; // functions called during startup +var __ATEXIT__ = []; // functions called during shutdown +var __ATPOSTRUN__ = []; // functions called after the main() is called + +var runtimeInitialized = false; + +var runtimeKeepaliveCounter = 0; + +function keepRuntimeAlive() { + return noExitRuntime || runtimeKeepaliveCounter > 0; +} + +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 initRuntime() { + assert(!runtimeInitialized); + runtimeInitialized = true; + + checkStackCookie(); + + + callRuntimeCallbacks(__ATINIT__); +} + +function postRun() { + checkStackCookie(); + + if (Module['postRun']) { + if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']]; + while (Module['postRun'].length) { + addOnPostRun(Module['postRun'].shift()); + } + } + + callRuntimeCallbacks(__ATPOSTRUN__); +} + +function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); +} + +function addOnInit(cb) { + __ATINIT__.unshift(cb); +} + +function addOnExit(cb) { +} + +function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); +} + +// include: runtime_math.js +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/fround + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32 + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc + +assert(Math.imul, 'This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); +assert(Math.fround, 'This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); +assert(Math.clz32, 'This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); +assert(Math.trunc, 'This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); + +// end include: runtime_math.js +// A counter of dependencies for calling run(). If we need to +// do asynchronous work before running, increment this and +// decrement it. Incrementing must happen in a place like +// Module.preRun (used by emcc to add file preloading). +// Note that you can add dependencies in preRun, even though +// it happens right before run - run will be postponed until +// the dependencies are met. +var runDependencies = 0; +var runDependencyWatcher = null; +var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled +var runDependencyTracking = {}; + +function getUniqueRunDependency(id) { + var orig = id; + while (1) { + if (!runDependencyTracking[id]) return id; + id = orig + Math.random(); + } +} + +function addRunDependency(id) { + runDependencies++; + + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } + + if (id) { + assert(!runDependencyTracking[id]); + runDependencyTracking[id] = 1; + if (runDependencyWatcher === null && typeof setInterval != 'undefined') { + // Check for missing dependencies every few seconds + runDependencyWatcher = setInterval(() => { + if (ABORT) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + return; + } + var shown = false; + for (var dep in runDependencyTracking) { + if (!shown) { + shown = true; + err('still waiting on run dependencies:'); + } + err('dependency: ' + dep); + } + if (shown) { + err('(end of list)'); + } + }, 10000); + } + } else { + err('warning: run dependency added without ID'); + } +} + +function removeRunDependency(id) { + runDependencies--; + + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } + + if (id) { + assert(runDependencyTracking[id]); + delete runDependencyTracking[id]; + } else { + err('warning: run dependency removed without ID'); + } + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); // can add another dependenciesFulfilled + } + } +} + +/** @param {string|number=} what */ +function abort(what) { + if (Module['onAbort']) { + Module['onAbort'](what); + } + + what = 'Aborted(' + what + ')'; + // TODO(sbc): Should we remove printing and leave it up to whoever + // catches the exception? + err(what); + + ABORT = true; + EXITSTATUS = 1; + + // Use a wasm runtime error, because a JS error might be seen as a foreign + // exception, which means we'd run destructors on it. We need the error to + // simply make the program stop. + // FIXME This approach does not work in Wasm EH because it currently does not assume + // all RuntimeErrors are from traps; it decides whether a RuntimeError is from + // a trap or not based on a hidden field within the object. So at the moment + // we don't have a way of throwing a wasm trap from JS. TODO Make a JS API that + // allows this in the wasm spec. + + // Suppress closure compiler warning here. Closure compiler's builtin extern + // defintion for WebAssembly.RuntimeError claims it takes no arguments even + // though it can. + // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure gets fixed. + /** @suppress {checkTypes} */ + var e = new WebAssembly.RuntimeError(what); + + readyPromiseReject(e); + // Throw the error whether or not MODULARIZE is set because abort is used + // in code paths apart from instantiation where an exception is expected + // to be thrown when abort is called. + throw e; +} + +// include: memoryprofiler.js +// end include: memoryprofiler.js +// show errors on likely calls to FS when it was not included +var FS = { + error: function() { + abort('Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -sFORCE_FILESYSTEM'); + }, + init: function() { FS.error() }, + createDataFile: function() { FS.error() }, + createPreloadedFile: function() { FS.error() }, + createLazyFile: function() { FS.error() }, + open: function() { FS.error() }, + mkdev: function() { FS.error() }, + registerDevice: function() { FS.error() }, + analyzePath: function() { FS.error() }, + + ErrnoError: function ErrnoError() { FS.error() }, +}; +Module['FS_createDataFile'] = FS.createDataFile; +Module['FS_createPreloadedFile'] = FS.createPreloadedFile; + +// include: URIUtils.js +// Prefix of data URIs emitted by SINGLE_FILE and related options. +var dataURIPrefix = 'data:application/octet-stream;base64,'; + +// Indicates whether filename is a base64 data URI. +function isDataURI(filename) { + // Prefix of data URIs emitted by SINGLE_FILE and related options. + return filename.startsWith(dataURIPrefix); +} + +// Indicates whether filename is delivered via file protocol (as opposed to http/https) +function isFileURI(filename) { + return filename.startsWith('file://'); +} + +// end include: URIUtils.js +/** @param {boolean=} fixedasm */ +function createExportWrapper(name, fixedasm) { + return function() { + var displayName = name; + var asm = fixedasm; + if (!fixedasm) { + asm = Module['asm']; + } + assert(runtimeInitialized, 'native function `' + displayName + '` called before runtime initialization'); + if (!asm[name]) { + assert(asm[name], 'exported native function `' + displayName + '` not found'); + } + return asm[name].apply(null, arguments); + }; +} + +// include: runtime_exceptions.js +// end include: runtime_exceptions.js +var wasmBinaryFile; + wasmBinaryFile = '<<< WASM_BINARY_FILE >>>'; + if (!isDataURI(wasmBinaryFile)) { + wasmBinaryFile = locateFile(wasmBinaryFile); + } + +function getBinary(file) { + try { + if (file == wasmBinaryFile && wasmBinary) { + return new Uint8Array(wasmBinary); + } + var binary = tryParseAsDataURI(file); + if (binary) { + return binary; + } + if (readBinary) { + return readBinary(file); + } + throw "both async and sync fetching of the wasm failed"; + } + catch (err) { + abort(err); + } +} + +function getBinaryPromise(binaryFile) { + // If we don't have the binary yet, try to load it asynchronously. + // Fetch has some additional restrictions over XHR, like it can't be used on a file:// url. + // See https://github.com/github/fetch/pull/92#issuecomment-140665932 + // Cordova or Electron apps are typically loaded from a file:// url. + // So use fetch if it is available and the url is not a file, otherwise fall back to XHR. + if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) { + if (typeof fetch == 'function' + ) { + return fetch(binaryFile, { credentials: 'same-origin' }).then((response) => { + if (!response['ok']) { + throw "failed to load wasm binary file at '" + binaryFile + "'"; + } + return response['arrayBuffer'](); + }).catch(() => getBinary(binaryFile)); + } + } + + // Otherwise, getBinary should be able to get it synchronously + return Promise.resolve().then(() => getBinary(binaryFile)); +} + +function instantiateArrayBuffer(binaryFile, imports, receiver) { + return getBinaryPromise(binaryFile).then((binary) => { + return WebAssembly.instantiate(binary, imports); + }).then((instance) => { + return instance; + }).then(receiver, (reason) => { + err('failed to asynchronously prepare wasm: ' + reason); + + // Warn on some common problems. + if (isFileURI(wasmBinaryFile)) { + err('warning: Loading from a file URI (' + wasmBinaryFile + ') is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing'); + } + abort(reason); + }); +} + +function instantiateAsync(binary, binaryFile, imports, callback) { + if (!binary && + typeof WebAssembly.instantiateStreaming == 'function' && + !isDataURI(binaryFile) && + typeof fetch == 'function') { + return fetch(binaryFile, { credentials: 'same-origin' }).then((response) => { + // Suppress closure warning here since the upstream definition for + // instantiateStreaming only allows Promise rather than + // an actual Response. + // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure is fixed. + /** @suppress {checkTypes} */ + var result = WebAssembly.instantiateStreaming(response, imports); + + return result.then( + callback, + function(reason) { + // We expect the most common failure cause to be a bad MIME type for the binary, + // in which case falling back to ArrayBuffer instantiation should work. + err('wasm streaming compile failed: ' + reason); + err('falling back to ArrayBuffer instantiation'); + return instantiateArrayBuffer(binaryFile, imports, callback); + }); + }); + } else { + return instantiateArrayBuffer(binaryFile, imports, callback); + } +} + +// Create the wasm instance. +// Receives the wasm imports, returns the exports. +function createWasm() { + // prepare imports + var info = { + 'env': wasmImports, + 'wasi_snapshot_preview1': wasmImports, + }; + // Load the wasm module and create an instance of using native support in the JS engine. + // handle a generated wasm instance, receiving its exports and + // performing other necessary setup + /** @param {WebAssembly.Module=} module*/ + function receiveInstance(instance, module) { + var exports = instance.exports; + + Module['asm'] = exports; + + wasmTable = Module['asm']['__indirect_function_table']; + assert(wasmTable, "table not found in wasm exports"); + + addOnInit(Module['asm']['__wasm_call_ctors']); + + removeRunDependency('wasm-instantiate'); + return exports; + } + // wait for the pthread pool (if any) + addRunDependency('wasm-instantiate'); + + // Prefer streaming instantiation if available. + // Async compilation can be confusing when an error on the page overwrites Module + // (for example, if the order of elements is wrong, and the one defining Module is + // later), so we save Module and check it later. + var trueModule = Module; + function receiveInstantiationResult(result) { + // 'result' is a ResultObject object which has both the module and instance. + // receiveInstance() will swap in the exports (to Module.asm) so they can be called + assert(Module === trueModule, 'the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?'); + trueModule = null; + // TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193, the above line no longer optimizes out down to the following line. + // When the regression is fixed, can restore the above PTHREADS-enabled path. + receiveInstance(result['instance']); + } + + // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback + // to manually instantiate the Wasm module themselves. This allows pages to + // run the instantiation parallel to any other async startup actions they are + // performing. + // Also pthreads and wasm workers initialize the wasm instance through this + // path. + if (Module['instantiateWasm']) { + + try { + return Module['instantiateWasm'](info, receiveInstance); + } catch(e) { + err('Module.instantiateWasm callback failed with error: ' + e); + // If instantiation fails, reject the module ready promise. + readyPromiseReject(e); + } + } + + // If instantiation fails, reject the module ready promise. + instantiateAsync(wasmBinary, wasmBinaryFile, info, receiveInstantiationResult).catch(readyPromiseReject); + return {}; // no exports yet; we'll fill them in later +} + +// Globals used by JS i64 conversions (see makeSetValue) +var tempDouble; +var tempI64; + +// include: runtime_debug.js +function legacyModuleProp(prop, newName) { + if (!Object.getOwnPropertyDescriptor(Module, prop)) { + Object.defineProperty(Module, prop, { + configurable: true, + get: function() { + abort('Module.' + prop + ' has been replaced with plain ' + newName + ' (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)'); + } + }); + } +} + +function ignoredModuleProp(prop) { + if (Object.getOwnPropertyDescriptor(Module, prop)) { + abort('`Module.' + prop + '` was supplied but `' + prop + '` not included in INCOMING_MODULE_JS_API'); + } +} + +// forcing the filesystem exports a few things by default +function isExportedByForceFilesystem(name) { + return name === 'FS_createPath' || + name === 'FS_createDataFile' || + name === 'FS_createPreloadedFile' || + name === 'FS_unlink' || + name === 'addRunDependency' || + // The old FS has some functionality that WasmFS lacks. + name === 'FS_createLazyFile' || + name === 'FS_createDevice' || + name === 'removeRunDependency'; +} + +function missingGlobal(sym, msg) { + if (typeof globalThis !== 'undefined') { + Object.defineProperty(globalThis, sym, { + configurable: true, + get: function() { + warnOnce('`' + sym + '` is not longer defined by emscripten. ' + msg); + return undefined; + } + }); + } +} + +missingGlobal('buffer', 'Please use HEAP8.buffer or wasmMemory.buffer'); + +function missingLibrarySymbol(sym) { + if (typeof globalThis !== 'undefined' && !Object.getOwnPropertyDescriptor(globalThis, sym)) { + Object.defineProperty(globalThis, sym, { + configurable: true, + get: function() { + // Can't `abort()` here because it would break code that does runtime + // checks. e.g. `if (typeof SDL === 'undefined')`. + var msg = '`' + sym + '` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line'; + // DEFAULT_LIBRARY_FUNCS_TO_INCLUDE requires the name as it appears in + // library.js, which means $name for a JS name with no prefix, or name + // for a JS name like _name. + var librarySymbol = sym; + if (!librarySymbol.startsWith('_')) { + librarySymbol = '$' + sym; + } + msg += " (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE=" + librarySymbol + ")"; + if (isExportedByForceFilesystem(sym)) { + msg += '. Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you'; + } + warnOnce(msg); + return undefined; + } + }); + } + // Any symbol that is not included from the JS libary is also (by definition) + // not exported on the Module object. + unexportedRuntimeSymbol(sym); +} + +function unexportedRuntimeSymbol(sym) { + if (!Object.getOwnPropertyDescriptor(Module, sym)) { + Object.defineProperty(Module, sym, { + configurable: true, + get: function() { + var msg = "'" + sym + "' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)"; + if (isExportedByForceFilesystem(sym)) { + msg += '. Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you'; + } + abort(msg); + } + }); + } +} + +// Used by XXXXX_DEBUG settings to output debug messages. +function dbg(text) { + // TODO(sbc): Make this configurable somehow. Its not always convenient for + // logging to show up as warnings. + console.warn.apply(console, arguments); +} + +// end include: runtime_debug.js +// === Body === + + +// end include: preamble.js + + /** @constructor */ + function ExitStatus(status) { + this.name = 'ExitStatus'; + this.message = `Program terminated with exit(${status})`; + this.status = status; + } + + function callRuntimeCallbacks(callbacks) { + while (callbacks.length > 0) { + // Pass the module as the first argument. + callbacks.shift()(Module); + } + } + + + /** + * @param {number} ptr + * @param {string} type + */ + function getValue(ptr, type = 'i8') { + if (type.endsWith('*')) type = '*'; + switch (type) { + case 'i1': return HEAP8[((ptr)>>0)]; + case 'i8': return HEAP8[((ptr)>>0)]; + case 'i16': return HEAP16[((ptr)>>1)]; + case 'i32': return HEAP32[((ptr)>>2)]; + case 'i64': abort('to do getValue(i64) use WASM_BIGINT'); + case 'float': return HEAPF32[((ptr)>>2)]; + case 'double': return HEAPF64[((ptr)>>3)]; + case '*': return HEAPU32[((ptr)>>2)]; + default: abort(`invalid type for getValue: ${type}`); + } + } + + function intArrayToString(array) { + var ret = []; + for (var i = 0; i < array.length; i++) { + var chr = array[i]; + if (chr > 0xFF) { + assert(false, `Character code ${chr} (${String.fromCharCode(chr)}) at offset ${i} not in 0x00-0xFF.`); + chr &= 0xFF; + } + ret.push(String.fromCharCode(chr)); + } + return ret.join(''); + } + + function ptrToString(ptr) { + assert(typeof ptr === 'number'); + return '0x' + ptr.toString(16).padStart(8, '0'); + } + + + /** + * @param {number} ptr + * @param {number} value + * @param {string} type + */ + function setValue(ptr, value, type = 'i8') { + if (type.endsWith('*')) type = '*'; + switch (type) { + case 'i1': HEAP8[((ptr)>>0)] = value; break; + case 'i8': HEAP8[((ptr)>>0)] = value; break; + case 'i16': HEAP16[((ptr)>>1)] = value; break; + case 'i32': HEAP32[((ptr)>>2)] = value; break; + case 'i64': abort('to do setValue(i64) use WASM_BIGINT'); + case 'float': HEAPF32[((ptr)>>2)] = value; break; + case 'double': HEAPF64[((ptr)>>3)] = value; break; + case '*': HEAPU32[((ptr)>>2)] = value; break; + default: abort(`invalid type for setValue: ${type}`); + } + } + + function warnOnce(text) { + if (!warnOnce.shown) warnOnce.shown = {}; + if (!warnOnce.shown[text]) { + warnOnce.shown[text] = 1; + err(text); + } + } + + var UTF8Decoder = typeof TextDecoder != 'undefined' ? new TextDecoder('utf8') : undefined; + + /** + * Given a pointer 'idx' to a null-terminated UTF8-encoded string in the given + * array that contains uint8 values, returns a copy of that string as a + * Javascript String object. + * heapOrArray is either a regular array, or a JavaScript typed array view. + * @param {number} idx + * @param {number=} maxBytesToRead + * @return {string} + */ + function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) { + var endIdx = idx + maxBytesToRead; + var endPtr = idx; + // TextDecoder needs to know the byte length in advance, it doesn't stop on + // null terminator by itself. Also, use the length info to avoid running tiny + // strings through TextDecoder, since .subarray() allocates garbage. + // (As a tiny code save trick, compare endPtr against endIdx using a negation, + // so that undefined means Infinity) + while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr; + + if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { + return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr)); + } + var str = ''; + // If building with TextDecoder, we have already computed the string length + // above, so test loop end condition against that + while (idx < endPtr) { + // For UTF8 byte structure, see: + // http://en.wikipedia.org/wiki/UTF-8#Description + // https://www.ietf.org/rfc/rfc2279.txt + // https://tools.ietf.org/html/rfc3629 + var u0 = heapOrArray[idx++]; + if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; } + var u1 = heapOrArray[idx++] & 63; + if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } + var u2 = heapOrArray[idx++] & 63; + if ((u0 & 0xF0) == 0xE0) { + u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; + } else { + if ((u0 & 0xF8) != 0xF0) warnOnce('Invalid UTF-8 leading byte ' + ptrToString(u0) + ' encountered when deserializing a UTF-8 string in wasm memory to a JS string!'); + u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heapOrArray[idx++] & 63); + } + + if (u0 < 0x10000) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 0x10000; + str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); + } + } + return str; + } + + + /** + * Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the + * emscripten HEAP, returns a copy of that string as a Javascript String object. + * + * @param {number} ptr + * @param {number=} maxBytesToRead - An optional length that specifies the + * maximum number of bytes to read. You can omit this parameter to scan the + * string until the first 0 byte. If maxBytesToRead is passed, and the string + * at [ptr, ptr+maxBytesToReadr[ contains a null byte in the middle, then the + * string will cut short at that byte index (i.e. maxBytesToRead will not + * produce a string of exact length [ptr, ptr+maxBytesToRead[) N.B. mixing + * frequent uses of UTF8ToString() with and without maxBytesToRead may throw + * JS JIT optimizations off, so it is worth to consider consistently using one + * @return {string} + */ + function UTF8ToString(ptr, maxBytesToRead) { + assert(typeof ptr == 'number'); + return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ''; + } + function ___assert_fail(condition, filename, line, func) { + abort(`Assertion failed: ${UTF8ToString(condition)}, at: ` + [filename ? UTF8ToString(filename) : 'unknown filename', line, func ? UTF8ToString(func) : 'unknown function']); + } + + var char_0 = 48; + + var char_9 = 57; + function makeLegalFunctionName(name) { + if (undefined === name) { + return '_unknown'; + } + name = name.replace(/[^a-zA-Z0-9_]/g, '$'); + var f = name.charCodeAt(0); + if (f >= char_0 && f <= char_9) { + return `_${name}`; + } + return name; + } + function createNamedFunction(name, body) { + name = makeLegalFunctionName(name); + // Use an abject with a computed property name to create a new function with + // a name specified at runtime, but without using `new Function` or `eval`. + return { + [name]: function() { + return body.apply(this, arguments); + } + }[name]; + } + + /** @constructor */ + function HandleAllocator() { + // Reserve slot 0 so that 0 is always an invalid handle + this.allocated = [undefined]; + this.freelist = []; + this.get = function(id) { + assert(this.allocated[id] !== undefined, `invalid handle: ${id}`); + return this.allocated[id]; + }; + this.has = function(id) { + return this.allocated[id] !== undefined; + }; + this.allocate = function(handle) { + var id = this.freelist.pop() || this.allocated.length; + this.allocated[id] = handle; + return id; + }; + this.free = function(id) { + assert(this.allocated[id] !== undefined); + // Set the slot to `undefined` rather than using `delete` here since + // apparently arrays with holes in them can be less efficient. + this.allocated[id] = undefined; + this.freelist.push(id); + }; + } + var emval_handles = new HandleAllocator();; + + function extendError(baseErrorType, errorName) { + var errorClass = createNamedFunction(errorName, function(message) { + this.name = errorName; + this.message = message; + + var stack = (new Error(message)).stack; + if (stack !== undefined) { + this.stack = this.toString() + '\n' + + stack.replace(/^Error(:[^\n]*)?\n/, ''); + } + }); + errorClass.prototype = Object.create(baseErrorType.prototype); + errorClass.prototype.constructor = errorClass; + errorClass.prototype.toString = function() { + if (this.message === undefined) { + return this.name; + } else { + return `${this.name}: ${this.message}`; + } + }; + + return errorClass; + } + var BindingError = undefined; + function throwBindingError(message) { + throw new BindingError(message); + } + + function count_emval_handles() { + var count = 0; + for (var i = emval_handles.reserved; i < emval_handles.allocated.length; ++i) { + if (emval_handles.allocated[i] !== undefined) { + ++count; + } + } + return count; + } + + function init_emval() { + // reserve some special values. These never get de-allocated. + // The HandleAllocator takes care of reserving zero. + emval_handles.allocated.push( + {value: undefined}, + {value: null}, + {value: true}, + {value: false}, + ); + emval_handles.reserved = emval_handles.allocated.length + Module['count_emval_handles'] = count_emval_handles; + } + var Emval = {toValue:(handle) => { + if (!handle) { + throwBindingError('Cannot use deleted val. handle = ' + handle); + } + return emval_handles.get(handle).value; + },toHandle:(value) => { + switch (value) { + case undefined: return 1; + case null: return 2; + case true: return 3; + case false: return 4; + default:{ + return emval_handles.allocate({refcount: 1, value: value}); + } + } + }}; + + var PureVirtualError = undefined; + + function embind_init_charCodes() { + var codes = new Array(256); + for (var i = 0; i < 256; ++i) { + codes[i] = String.fromCharCode(i); + } + embind_charCodes = codes; + } + var embind_charCodes = undefined; + function readLatin1String(ptr) { + var ret = ""; + var c = ptr; + while (HEAPU8[c]) { + ret += embind_charCodes[HEAPU8[c++]]; + } + return ret; + } + + function getInheritedInstanceCount() { + return Object.keys(registeredInstances).length; + } + + function getLiveInheritedInstances() { + var rv = []; + for (var k in registeredInstances) { + if (registeredInstances.hasOwnProperty(k)) { + rv.push(registeredInstances[k]); + } + } + return rv; + } + + var deletionQueue = []; + function flushPendingDeletes() { + while (deletionQueue.length) { + var obj = deletionQueue.pop(); + obj.$$.deleteScheduled = false; + obj['delete'](); + } + } + + var delayFunction = undefined; + + + function setDelayFunction(fn) { + delayFunction = fn; + if (deletionQueue.length && delayFunction) { + delayFunction(flushPendingDeletes); + } + } + function init_embind() { + Module['getInheritedInstanceCount'] = getInheritedInstanceCount; + Module['getLiveInheritedInstances'] = getLiveInheritedInstances; + Module['flushPendingDeletes'] = flushPendingDeletes; + Module['setDelayFunction'] = setDelayFunction; + } + var registeredInstances = {}; + + function getBasestPointer(class_, ptr) { + if (ptr === undefined) { + throwBindingError('ptr should not be undefined'); + } + while (class_.baseClass) { + ptr = class_.upcast(ptr); + class_ = class_.baseClass; + } + return ptr; + } + + function registerInheritedInstance(class_, ptr, instance) { + ptr = getBasestPointer(class_, ptr); + if (registeredInstances.hasOwnProperty(ptr)) { + throwBindingError(`Tried to register registered instance: ${ptr}`); + } else { + registeredInstances[ptr] = instance; + } + } + + var registeredTypes = {}; + + + + function getTypeName(type) { + var ptr = ___getTypeName(type); + var rv = readLatin1String(ptr); + _free(ptr); + return rv; + } + + function requireRegisteredType(rawType, humanName) { + var impl = registeredTypes[rawType]; + if (undefined === impl) { + throwBindingError(humanName + " has unknown type " + getTypeName(rawType)); + } + return impl; + } + + + + + function unregisterInheritedInstance(class_, ptr) { + ptr = getBasestPointer(class_, ptr); + if (registeredInstances.hasOwnProperty(ptr)) { + delete registeredInstances[ptr]; + } else { + throwBindingError(`Tried to unregister unregistered instance: ${ptr}`); + } + } + + function detachFinalizer(handle) {} + + var finalizationRegistry = false; + + + function runDestructor($$) { + if ($$.smartPtr) { + $$.smartPtrType.rawDestructor($$.smartPtr); + } else { + $$.ptrType.registeredClass.rawDestructor($$.ptr); + } + } + function releaseClassHandle($$) { + $$.count.value -= 1; + var toDelete = 0 === $$.count.value; + if (toDelete) { + runDestructor($$); + } + } + + function downcastPointer(ptr, ptrClass, desiredClass) { + if (ptrClass === desiredClass) { + return ptr; + } + if (undefined === desiredClass.baseClass) { + return null; // no conversion + } + + var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass); + if (rv === null) { + return null; + } + return desiredClass.downcast(rv); + } + + var registeredPointers = {}; + + + function getInheritedInstance(class_, ptr) { + ptr = getBasestPointer(class_, ptr); + return registeredInstances[ptr]; + } + + var InternalError = undefined; + function throwInternalError(message) { + throw new InternalError(message); + } + + function makeClassHandle(prototype, record) { + if (!record.ptrType || !record.ptr) { + throwInternalError('makeClassHandle requires ptr and ptrType'); + } + var hasSmartPtrType = !!record.smartPtrType; + var hasSmartPtr = !!record.smartPtr; + if (hasSmartPtrType !== hasSmartPtr) { + throwInternalError('Both smartPtrType and smartPtr must be specified'); + } + record.count = { value: 1 }; + return attachFinalizer(Object.create(prototype, { + $$: { + value: record, + }, + })); + } + function RegisteredPointer_fromWireType(ptr) { + // ptr is a raw pointer (or a raw smartpointer) + + // rawPointer is a maybe-null raw pointer + var rawPointer = this.getPointee(ptr); + if (!rawPointer) { + this.destructor(ptr); + return null; + } + + var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer); + if (undefined !== registeredInstance) { + // JS object has been neutered, time to repopulate it + if (0 === registeredInstance.$$.count.value) { + registeredInstance.$$.ptr = rawPointer; + registeredInstance.$$.smartPtr = ptr; + return registeredInstance['clone'](); + } else { + // else, just increment reference count on existing object + // it already has a reference to the smart pointer + var rv = registeredInstance['clone'](); + this.destructor(ptr); + return rv; + } + } + + function makeDefaultHandle() { + if (this.isSmartPointer) { + return makeClassHandle(this.registeredClass.instancePrototype, { + ptrType: this.pointeeType, + ptr: rawPointer, + smartPtrType: this, + smartPtr: ptr, + }); + } else { + return makeClassHandle(this.registeredClass.instancePrototype, { + ptrType: this, + ptr: ptr, + }); + } + } + + var actualType = this.registeredClass.getActualType(rawPointer); + var registeredPointerRecord = registeredPointers[actualType]; + if (!registeredPointerRecord) { + return makeDefaultHandle.call(this); + } + + var toType; + if (this.isConst) { + toType = registeredPointerRecord.constPointerType; + } else { + toType = registeredPointerRecord.pointerType; + } + var dp = downcastPointer( + rawPointer, + this.registeredClass, + toType.registeredClass); + if (dp === null) { + return makeDefaultHandle.call(this); + } + if (this.isSmartPointer) { + return makeClassHandle(toType.registeredClass.instancePrototype, { + ptrType: toType, + ptr: dp, + smartPtrType: this, + smartPtr: ptr, + }); + } else { + return makeClassHandle(toType.registeredClass.instancePrototype, { + ptrType: toType, + ptr: dp, + }); + } + } + function attachFinalizer(handle) { + if ('undefined' === typeof FinalizationRegistry) { + attachFinalizer = (handle) => handle; + return handle; + } + // If the running environment has a FinalizationRegistry (see + // https://github.com/tc39/proposal-weakrefs), then attach finalizers + // for class handles. We check for the presence of FinalizationRegistry + // at run-time, not build-time. + finalizationRegistry = new FinalizationRegistry((info) => { + console.warn(info.leakWarning.stack.replace(/^Error: /, '')); + releaseClassHandle(info.$$); + }); + attachFinalizer = (handle) => { + var $$ = handle.$$; + var hasSmartPtr = !!$$.smartPtr; + if (hasSmartPtr) { + // We should not call the destructor on raw pointers in case other code expects the pointee to live + var info = { $$: $$ }; + // Create a warning as an Error instance in advance so that we can store + // the current stacktrace and point to it when / if a leak is detected. + // This is more useful than the empty stacktrace of `FinalizationRegistry` + // callback. + var cls = $$.ptrType.registeredClass; + info.leakWarning = new Error(`Embind found a leaked C++ instance ${cls.name} <${ptrToString($$.ptr)}>.\n` + + "We'll free it automatically in this case, but this functionality is not reliable across various environments.\n" + + "Make sure to invoke .delete() manually once you're done with the instance instead.\n" + + "Originally allocated"); // `.stack` will add "at ..." after this sentence + if ('captureStackTrace' in Error) { + Error.captureStackTrace(info.leakWarning, RegisteredPointer_fromWireType); + } + finalizationRegistry.register(handle, info, handle); + } + return handle; + }; + detachFinalizer = (handle) => finalizationRegistry.unregister(handle); + return attachFinalizer(handle); + } + function __embind_create_inheriting_constructor(constructorName, wrapperType, properties) { + constructorName = readLatin1String(constructorName); + wrapperType = requireRegisteredType(wrapperType, 'wrapper'); + properties = Emval.toValue(properties); + + var arraySlice = [].slice; + + var registeredClass = wrapperType.registeredClass; + var wrapperPrototype = registeredClass.instancePrototype; + var baseClass = registeredClass.baseClass; + var baseClassPrototype = baseClass.instancePrototype; + var baseConstructor = registeredClass.baseClass.constructor; + var ctor = createNamedFunction(constructorName, function() { + registeredClass.baseClass.pureVirtualFunctions.forEach(function(name) { + if (this[name] === baseClassPrototype[name]) { + throw new PureVirtualError(`Pure virtual function ${name} must be implemented in JavaScript`); + } + }.bind(this)); + + Object.defineProperty(this, '__parent', { + value: wrapperPrototype + }); + this["__construct"].apply(this, arraySlice.call(arguments)); + }); + + // It's a little nasty that we're modifying the wrapper prototype here. + + wrapperPrototype["__construct"] = function __construct() { + if (this === wrapperPrototype) { + throwBindingError("Pass correct 'this' to __construct"); + } + + var inner = baseConstructor["implement"].apply( + undefined, + [this].concat(arraySlice.call(arguments))); + detachFinalizer(inner); + var $$ = inner.$$; + inner["notifyOnDestruction"](); + $$.preservePointerOnDelete = true; + Object.defineProperties(this, { $$: { + value: $$ + }}); + attachFinalizer(this); + registerInheritedInstance(registeredClass, $$.ptr, this); + }; + + wrapperPrototype["__destruct"] = function __destruct() { + if (this === wrapperPrototype) { + throwBindingError("Pass correct 'this' to __destruct"); + } + + detachFinalizer(this); + unregisterInheritedInstance(registeredClass, this.$$.ptr); + }; + + ctor.prototype = Object.create(wrapperPrototype); + for (var p in properties) { + ctor.prototype[p] = properties[p]; + } + return Emval.toHandle(ctor); + } + + function __embind_register_bigint(primitiveType, name, size, minRange, maxRange) {} + + function getShiftFromSize(size) { + switch (size) { + case 1: return 0; + case 2: return 1; + case 4: return 2; + case 8: return 3; + default: + throw new TypeError(`Unknown type size: ${size}`); + } + } + + + var awaitingDependencies = {}; + + + var typeDependencies = {}; + + + + + + function whenDependentTypesAreResolved(myTypes, dependentTypes, getTypeConverters) { + myTypes.forEach(function(type) { + typeDependencies[type] = dependentTypes; + }); + + function onComplete(typeConverters) { + var myTypeConverters = getTypeConverters(typeConverters); + if (myTypeConverters.length !== myTypes.length) { + throwInternalError('Mismatched type converter count'); + } + for (var i = 0; i < myTypes.length; ++i) { + registerType(myTypes[i], myTypeConverters[i]); + } + } + + var typeConverters = new Array(dependentTypes.length); + var unregisteredTypes = []; + var registered = 0; + dependentTypes.forEach((dt, i) => { + if (registeredTypes.hasOwnProperty(dt)) { + typeConverters[i] = registeredTypes[dt]; + } else { + unregisteredTypes.push(dt); + if (!awaitingDependencies.hasOwnProperty(dt)) { + awaitingDependencies[dt] = []; + } + awaitingDependencies[dt].push(() => { + typeConverters[i] = registeredTypes[dt]; + ++registered; + if (registered === unregisteredTypes.length) { + onComplete(typeConverters); + } + }); + } + }); + if (0 === unregisteredTypes.length) { + onComplete(typeConverters); + } + } + /** @param {Object=} options */ + function registerType(rawType, registeredInstance, options = {}) { + if (!('argPackAdvance' in registeredInstance)) { + throw new TypeError('registerType registeredInstance requires argPackAdvance'); + } + + var name = registeredInstance.name; + if (!rawType) { + throwBindingError(`type "${name}" must have a positive integer typeid pointer`); + } + if (registeredTypes.hasOwnProperty(rawType)) { + if (options.ignoreDuplicateRegistrations) { + return; + } else { + throwBindingError(`Cannot register type '${name}' twice`); + } + } + + registeredTypes[rawType] = registeredInstance; + delete typeDependencies[rawType]; + + if (awaitingDependencies.hasOwnProperty(rawType)) { + var callbacks = awaitingDependencies[rawType]; + delete awaitingDependencies[rawType]; + callbacks.forEach((cb) => cb()); + } + } + function __embind_register_bool(rawType, name, size, trueValue, falseValue) { + var shift = getShiftFromSize(size); + + name = readLatin1String(name); + registerType(rawType, { + name: name, + 'fromWireType': function(wt) { + // ambiguous emscripten ABI: sometimes return values are + // true or false, and sometimes integers (0 or 1) + return !!wt; + }, + 'toWireType': function(destructors, o) { + return o ? trueValue : falseValue; + }, + 'argPackAdvance': 8, + 'readValueFromPointer': function(pointer) { + // TODO: if heap is fixed (like in asm.js) this could be executed outside + var heap; + if (size === 1) { + heap = HEAP8; + } else if (size === 2) { + heap = HEAP16; + } else if (size === 4) { + heap = HEAP32; + } else { + throw new TypeError("Unknown boolean type size: " + name); + } + return this['fromWireType'](heap[pointer >> shift]); + }, + destructorFunction: null, // This type does not need a destructor + }); + } + + + function ClassHandle_isAliasOf(other) { + if (!(this instanceof ClassHandle)) { + return false; + } + if (!(other instanceof ClassHandle)) { + return false; + } + + var leftClass = this.$$.ptrType.registeredClass; + var left = this.$$.ptr; + var rightClass = other.$$.ptrType.registeredClass; + var right = other.$$.ptr; + + while (leftClass.baseClass) { + left = leftClass.upcast(left); + leftClass = leftClass.baseClass; + } + + while (rightClass.baseClass) { + right = rightClass.upcast(right); + rightClass = rightClass.baseClass; + } + + return leftClass === rightClass && left === right; + } + + function shallowCopyInternalPointer(o) { + return { + count: o.count, + deleteScheduled: o.deleteScheduled, + preservePointerOnDelete: o.preservePointerOnDelete, + ptr: o.ptr, + ptrType: o.ptrType, + smartPtr: o.smartPtr, + smartPtrType: o.smartPtrType, + }; + } + + function throwInstanceAlreadyDeleted(obj) { + function getInstanceTypeName(handle) { + return handle.$$.ptrType.registeredClass.name; + } + throwBindingError(getInstanceTypeName(obj) + ' instance already deleted'); + } + + function ClassHandle_clone() { + if (!this.$$.ptr) { + throwInstanceAlreadyDeleted(this); + } + + if (this.$$.preservePointerOnDelete) { + this.$$.count.value += 1; + return this; + } else { + var clone = attachFinalizer(Object.create(Object.getPrototypeOf(this), { + $$: { + value: shallowCopyInternalPointer(this.$$), + } + })); + + clone.$$.count.value += 1; + clone.$$.deleteScheduled = false; + return clone; + } + } + + + + + function ClassHandle_delete() { + if (!this.$$.ptr) { + throwInstanceAlreadyDeleted(this); + } + + if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { + throwBindingError('Object already scheduled for deletion'); + } + + detachFinalizer(this); + releaseClassHandle(this.$$); + + if (!this.$$.preservePointerOnDelete) { + this.$$.smartPtr = undefined; + this.$$.ptr = undefined; + } + } + + function ClassHandle_isDeleted() { + return !this.$$.ptr; + } + + + + function ClassHandle_deleteLater() { + if (!this.$$.ptr) { + throwInstanceAlreadyDeleted(this); + } + if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { + throwBindingError('Object already scheduled for deletion'); + } + deletionQueue.push(this); + if (deletionQueue.length === 1 && delayFunction) { + delayFunction(flushPendingDeletes); + } + this.$$.deleteScheduled = true; + return this; + } + function init_ClassHandle() { + ClassHandle.prototype['isAliasOf'] = ClassHandle_isAliasOf; + ClassHandle.prototype['clone'] = ClassHandle_clone; + ClassHandle.prototype['delete'] = ClassHandle_delete; + ClassHandle.prototype['isDeleted'] = ClassHandle_isDeleted; + ClassHandle.prototype['deleteLater'] = ClassHandle_deleteLater; + } + function ClassHandle() { + } + + + + function ensureOverloadTable(proto, methodName, humanName) { + if (undefined === proto[methodName].overloadTable) { + var prevFunc = proto[methodName]; + // Inject an overload resolver function that routes to the appropriate overload based on the number of arguments. + proto[methodName] = function() { + // TODO This check can be removed in -O3 level "unsafe" optimizations. + if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) { + throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${arguments.length}) - expects one of (${proto[methodName].overloadTable})!`); + } + return proto[methodName].overloadTable[arguments.length].apply(this, arguments); + }; + // Move the previous function into the overload table. + proto[methodName].overloadTable = []; + proto[methodName].overloadTable[prevFunc.argCount] = prevFunc; + } + } + + /** @param {number=} numArguments */ + function exposePublicSymbol(name, value, numArguments) { + if (Module.hasOwnProperty(name)) { + if (undefined === numArguments || (undefined !== Module[name].overloadTable && undefined !== Module[name].overloadTable[numArguments])) { + throwBindingError(`Cannot register public name '${name}' twice`); + } + + // We are exposing a function with the same name as an existing function. Create an overload table and a function selector + // that routes between the two. + ensureOverloadTable(Module, name, name); + if (Module.hasOwnProperty(numArguments)) { + throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`); + } + // Add the new function into the overload table. + Module[name].overloadTable[numArguments] = value; + } + else { + Module[name] = value; + if (undefined !== numArguments) { + Module[name].numArguments = numArguments; + } + } + } + + + + /** @constructor */ + function RegisteredClass(name, + constructor, + instancePrototype, + rawDestructor, + baseClass, + getActualType, + upcast, + downcast) { + this.name = name; + this.constructor = constructor; + this.instancePrototype = instancePrototype; + this.rawDestructor = rawDestructor; + this.baseClass = baseClass; + this.getActualType = getActualType; + this.upcast = upcast; + this.downcast = downcast; + this.pureVirtualFunctions = []; + } + + + function upcastPointer(ptr, ptrClass, desiredClass) { + while (ptrClass !== desiredClass) { + if (!ptrClass.upcast) { + throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`); + } + ptr = ptrClass.upcast(ptr); + ptrClass = ptrClass.baseClass; + } + return ptr; + } + function constNoSmartPtrRawPointerToWireType(destructors, handle) { + if (handle === null) { + if (this.isReference) { + throwBindingError(`null is not a valid ${this.name}`); + } + return 0; + } + + if (!handle.$$) { + throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`); + } + if (!handle.$$.ptr) { + throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`); + } + var handleClass = handle.$$.ptrType.registeredClass; + var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); + return ptr; + } + + + function genericPointerToWireType(destructors, handle) { + var ptr; + if (handle === null) { + if (this.isReference) { + throwBindingError(`null is not a valid ${this.name}`); + } + + if (this.isSmartPointer) { + ptr = this.rawConstructor(); + if (destructors !== null) { + destructors.push(this.rawDestructor, ptr); + } + return ptr; + } else { + return 0; + } + } + + if (!handle.$$) { + throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`); + } + if (!handle.$$.ptr) { + throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`); + } + if (!this.isConst && handle.$$.ptrType.isConst) { + throwBindingError(`Cannot convert argument of type ${(handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name)} to parameter type ${this.name}`); + } + var handleClass = handle.$$.ptrType.registeredClass; + ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); + + if (this.isSmartPointer) { + // TODO: this is not strictly true + // We could support BY_EMVAL conversions from raw pointers to smart pointers + // because the smart pointer can hold a reference to the handle + if (undefined === handle.$$.smartPtr) { + throwBindingError('Passing raw pointer to smart pointer is illegal'); + } + + switch (this.sharingPolicy) { + case 0: // NONE + // no upcasting + if (handle.$$.smartPtrType === this) { + ptr = handle.$$.smartPtr; + } else { + throwBindingError(`Cannot convert argument of type ${(handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name)} to parameter type ${this.name}`); + } + break; + + case 1: // INTRUSIVE + ptr = handle.$$.smartPtr; + break; + + case 2: // BY_EMVAL + if (handle.$$.smartPtrType === this) { + ptr = handle.$$.smartPtr; + } else { + var clonedHandle = handle['clone'](); + ptr = this.rawShare( + ptr, + Emval.toHandle(function() { + clonedHandle['delete'](); + }) + ); + if (destructors !== null) { + destructors.push(this.rawDestructor, ptr); + } + } + break; + + default: + throwBindingError('Unsupporting sharing policy'); + } + } + return ptr; + } + + + function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) { + if (handle === null) { + if (this.isReference) { + throwBindingError(`null is not a valid ${this.name}`); + } + return 0; + } + + if (!handle.$$) { + throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`); + } + if (!handle.$$.ptr) { + throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`); + } + if (handle.$$.ptrType.isConst) { + throwBindingError(`Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}`); + } + var handleClass = handle.$$.ptrType.registeredClass; + var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); + return ptr; + } + + function simpleReadValueFromPointer(pointer) { + return this['fromWireType'](HEAP32[((pointer)>>2)]); + } + + function RegisteredPointer_getPointee(ptr) { + if (this.rawGetPointee) { + ptr = this.rawGetPointee(ptr); + } + return ptr; + } + + function RegisteredPointer_destructor(ptr) { + if (this.rawDestructor) { + this.rawDestructor(ptr); + } + } + + function RegisteredPointer_deleteObject(handle) { + if (handle !== null) { + handle['delete'](); + } + } + + function init_RegisteredPointer() { + RegisteredPointer.prototype.getPointee = RegisteredPointer_getPointee; + RegisteredPointer.prototype.destructor = RegisteredPointer_destructor; + RegisteredPointer.prototype['argPackAdvance'] = 8; + RegisteredPointer.prototype['readValueFromPointer'] = simpleReadValueFromPointer; + RegisteredPointer.prototype['deleteObject'] = RegisteredPointer_deleteObject; + RegisteredPointer.prototype['fromWireType'] = RegisteredPointer_fromWireType; + } + /** @constructor + @param {*=} pointeeType, + @param {*=} sharingPolicy, + @param {*=} rawGetPointee, + @param {*=} rawConstructor, + @param {*=} rawShare, + @param {*=} rawDestructor, + */ + function RegisteredPointer( + name, + registeredClass, + isReference, + isConst, + + // smart pointer properties + isSmartPointer, + pointeeType, + sharingPolicy, + rawGetPointee, + rawConstructor, + rawShare, + rawDestructor + ) { + this.name = name; + this.registeredClass = registeredClass; + this.isReference = isReference; + this.isConst = isConst; + + // smart pointer properties + this.isSmartPointer = isSmartPointer; + this.pointeeType = pointeeType; + this.sharingPolicy = sharingPolicy; + this.rawGetPointee = rawGetPointee; + this.rawConstructor = rawConstructor; + this.rawShare = rawShare; + this.rawDestructor = rawDestructor; + + if (!isSmartPointer && registeredClass.baseClass === undefined) { + if (isConst) { + this['toWireType'] = constNoSmartPtrRawPointerToWireType; + this.destructorFunction = null; + } else { + this['toWireType'] = nonConstNoSmartPtrRawPointerToWireType; + this.destructorFunction = null; + } + } else { + this['toWireType'] = genericPointerToWireType; + // Here we must leave this.destructorFunction undefined, since whether genericPointerToWireType returns + // a pointer that needs to be freed up is runtime-dependent, and cannot be evaluated at registration time. + // TODO: Create an alternative mechanism that allows removing the use of var destructors = []; array in + // craftInvokerFunction altogether. + } + } + + /** @param {number=} numArguments */ + function replacePublicSymbol(name, value, numArguments) { + if (!Module.hasOwnProperty(name)) { + throwInternalError('Replacing nonexistant public symbol'); + } + // If there's an overload table for this symbol, replace the symbol in the overload table instead. + if (undefined !== Module[name].overloadTable && undefined !== numArguments) { + Module[name].overloadTable[numArguments] = value; + } + else { + Module[name] = value; + Module[name].argCount = numArguments; + } + } + + + + function dynCallLegacy(sig, ptr, args) { + assert(('dynCall_' + sig) in Module, `bad function pointer type - dynCall function not found for sig '${sig}'`); + if (args && args.length) { + // j (64-bit integer) must be passed in as two numbers [low 32, high 32]. + assert(args.length === sig.substring(1).replace(/j/g, '--').length); + } else { + assert(sig.length == 1); + } + var f = Module['dynCall_' + sig]; + return args && args.length ? f.apply(null, [ptr].concat(args)) : f.call(null, ptr); + } + + var wasmTableMirror = []; + + function getWasmTableEntry(funcPtr) { + var func = wasmTableMirror[funcPtr]; + if (!func) { + if (funcPtr >= wasmTableMirror.length) wasmTableMirror.length = funcPtr + 1; + wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr); + } + assert(wasmTable.get(funcPtr) == func, "JavaScript-side Wasm function table mirror is out of date!"); + return func; + } + + /** @param {Object=} args */ + function dynCall(sig, ptr, args) { + // Without WASM_BIGINT support we cannot directly call function with i64 as + // part of thier signature, so we rely the dynCall functions generated by + // wasm-emscripten-finalize + if (sig.includes('j')) { + return dynCallLegacy(sig, ptr, args); + } + assert(getWasmTableEntry(ptr), `missing table entry in dynCall: ${ptr}`); + var rtn = getWasmTableEntry(ptr).apply(null, args); + return rtn; + + } + + function getDynCaller(sig, ptr) { + assert(sig.includes('j') || sig.includes('p'), 'getDynCaller should only be called with i64 sigs') + var argCache = []; + return function() { + argCache.length = 0; + Object.assign(argCache, arguments); + return dynCall(sig, ptr, argCache); + }; + } + + + function embind__requireFunction(signature, rawFunction) { + signature = readLatin1String(signature); + + function makeDynCaller() { + if (signature.includes('j')) { + return getDynCaller(signature, rawFunction); + } + return getWasmTableEntry(rawFunction); + } + + var fp = makeDynCaller(); + if (typeof fp != "function") { + throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`); + } + return fp; + } + + + + var UnboundTypeError = undefined; + + function throwUnboundTypeError(message, types) { + var unboundTypes = []; + var seen = {}; + function visit(type) { + if (seen[type]) { + return; + } + if (registeredTypes[type]) { + return; + } + if (typeDependencies[type]) { + typeDependencies[type].forEach(visit); + return; + } + unboundTypes.push(type); + seen[type] = true; + } + types.forEach(visit); + + throw new UnboundTypeError(`${message}: ` + unboundTypes.map(getTypeName).join([', '])); + } + + function __embind_register_class(rawType, + rawPointerType, + rawConstPointerType, + baseClassRawType, + getActualTypeSignature, + getActualType, + upcastSignature, + upcast, + downcastSignature, + downcast, + name, + destructorSignature, + rawDestructor) { + name = readLatin1String(name); + getActualType = embind__requireFunction(getActualTypeSignature, getActualType); + if (upcast) { + upcast = embind__requireFunction(upcastSignature, upcast); + } + if (downcast) { + downcast = embind__requireFunction(downcastSignature, downcast); + } + rawDestructor = embind__requireFunction(destructorSignature, rawDestructor); + var legalFunctionName = makeLegalFunctionName(name); + + exposePublicSymbol(legalFunctionName, function() { + // this code cannot run if baseClassRawType is zero + throwUnboundTypeError(`Cannot construct ${name} due to unbound types`, [baseClassRawType]); + }); + + whenDependentTypesAreResolved( + [rawType, rawPointerType, rawConstPointerType], + baseClassRawType ? [baseClassRawType] : [], + function(base) { + base = base[0]; + + var baseClass; + var basePrototype; + if (baseClassRawType) { + baseClass = base.registeredClass; + basePrototype = baseClass.instancePrototype; + } else { + basePrototype = ClassHandle.prototype; + } + + var constructor = createNamedFunction(legalFunctionName, function() { + if (Object.getPrototypeOf(this) !== instancePrototype) { + throw new BindingError("Use 'new' to construct " + name); + } + if (undefined === registeredClass.constructor_body) { + throw new BindingError(name + " has no accessible constructor"); + } + var body = registeredClass.constructor_body[arguments.length]; + if (undefined === body) { + throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`); + } + return body.apply(this, arguments); + }); + + var instancePrototype = Object.create(basePrototype, { + constructor: { value: constructor }, + }); + + constructor.prototype = instancePrototype; + + var registeredClass = new RegisteredClass(name, + constructor, + instancePrototype, + rawDestructor, + baseClass, + getActualType, + upcast, + downcast); + + if (registeredClass.baseClass) { + // Keep track of class hierarchy. Used to allow sub-classes to inherit class functions. + if (registeredClass.baseClass.__derivedClasses === undefined) { + registeredClass.baseClass.__derivedClasses = []; + } + + registeredClass.baseClass.__derivedClasses.push(registeredClass); + } + + var referenceConverter = new RegisteredPointer(name, + registeredClass, + true, + false, + false); + + var pointerConverter = new RegisteredPointer(name + '*', + registeredClass, + false, + false, + false); + + var constPointerConverter = new RegisteredPointer(name + ' const*', + registeredClass, + false, + true, + false); + + registeredPointers[rawType] = { + pointerType: pointerConverter, + constPointerType: constPointerConverter + }; + + replacePublicSymbol(legalFunctionName, constructor); + + return [referenceConverter, pointerConverter, constPointerConverter]; + } + ); + } + + + function runDestructors(destructors) { + while (destructors.length) { + var ptr = destructors.pop(); + var del = destructors.pop(); + del(ptr); + } + } + + function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc, /** boolean= */ isAsync) { + // humanName: a human-readable string name for the function to be generated. + // argTypes: An array that contains the embind type objects for all types in the function signature. + // argTypes[0] is the type object for the function return value. + // argTypes[1] is the type object for function this object/class type, or null if not crafting an invoker for a class method. + // argTypes[2...] are the actual function parameters. + // classType: The embind type object for the class to be bound, or null if this is not a method of a class. + // cppInvokerFunc: JS Function object to the C++-side function that interops into C++ code. + // cppTargetFunc: Function pointer (an integer to FUNCTION_TABLE) to the target C++ function the cppInvokerFunc will end up calling. + // isAsync: Optional. If true, returns an async function. Async bindings are only supported with JSPI. + var argCount = argTypes.length; + + if (argCount < 2) { + throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!"); + } + + assert(!isAsync, 'Async bindings are only supported with JSPI.'); + + var isClassMethodFunc = (argTypes[1] !== null && classType !== null); + + // Free functions with signature "void function()" do not need an invoker that marshalls between wire types. + // TODO: This omits argument count check - enable only at -O3 or similar. + // if (ENABLE_UNSAFE_OPTS && argCount == 2 && argTypes[0].name == "void" && !isClassMethodFunc) { + // return FUNCTION_TABLE[fn]; + // } + + // Determine if we need to use a dynamic stack to store the destructors for the function parameters. + // TODO: Remove this completely once all function invokers are being dynamically generated. + var needsDestructorStack = false; + + for (var i = 1; i < argTypes.length; ++i) { // Skip return value at index 0 - it's not deleted here. + if (argTypes[i] !== null && argTypes[i].destructorFunction === undefined) { // The type does not define a destructor function - must use dynamic stack + needsDestructorStack = true; + break; + } + } + + var returns = (argTypes[0].name !== "void"); + + var expectedArgCount = argCount - 2; + var argsWired = new Array(expectedArgCount); + var invokerFuncArgs = []; + var destructors = []; + return function() { + if (arguments.length !== expectedArgCount) { + throwBindingError(`function ${humanName} called with ${arguments.length} arguments, expected ${expectedArgCount} args!`); + } + destructors.length = 0; + var thisWired; + invokerFuncArgs.length = isClassMethodFunc ? 2 : 1; + invokerFuncArgs[0] = cppTargetFunc; + if (isClassMethodFunc) { + thisWired = argTypes[1]['toWireType'](destructors, this); + invokerFuncArgs[1] = thisWired; + } + for (var i = 0; i < expectedArgCount; ++i) { + argsWired[i] = argTypes[i + 2]['toWireType'](destructors, arguments[i]); + invokerFuncArgs.push(argsWired[i]); + } + + var rv = cppInvokerFunc.apply(null, invokerFuncArgs); + + function onDone(rv) { + if (needsDestructorStack) { + runDestructors(destructors); + } else { + for (var i = isClassMethodFunc ? 1 : 2; i < argTypes.length; i++) { + var param = i === 1 ? thisWired : argsWired[i - 2]; + if (argTypes[i].destructorFunction !== null) { + argTypes[i].destructorFunction(param); + } + } + } + + if (returns) { + return argTypes[0]['fromWireType'](rv); + } + } + + return onDone(rv); + }; + } + + + function heap32VectorToArray(count, firstElement) { + var array = []; + for (var i = 0; i < count; i++) { + // TODO(https://github.com/emscripten-core/emscripten/issues/17310): + // Find a way to hoist the `>> 2` or `>> 3` out of this loop. + array.push(HEAPU32[(((firstElement)+(i * 4))>>2)]); + } + return array; + } + + + + + function __embind_register_class_class_function(rawClassType, + methodName, + argCount, + rawArgTypesAddr, + invokerSignature, + rawInvoker, + fn, + isAsync) { + var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); + methodName = readLatin1String(methodName); + rawInvoker = embind__requireFunction(invokerSignature, rawInvoker); + whenDependentTypesAreResolved([], [rawClassType], function(classType) { + classType = classType[0]; + var humanName = `${classType.name}.${methodName}`; + + function unboundTypesHandler() { + throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`, rawArgTypes); + } + + if (methodName.startsWith("@@")) { + methodName = Symbol[methodName.substring(2)]; + } + + var proto = classType.registeredClass.constructor; + if (undefined === proto[methodName]) { + // This is the first function to be registered with this name. + unboundTypesHandler.argCount = argCount-1; + proto[methodName] = unboundTypesHandler; + } else { + // There was an existing function with the same name registered. Set up + // a function overload routing table. + ensureOverloadTable(proto, methodName, humanName); + proto[methodName].overloadTable[argCount-1] = unboundTypesHandler; + } + + whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { + // Replace the initial unbound-types-handler stub with the proper + // function. If multiple overloads are registered, the function handlers + // go into an overload table. + var invokerArgsArray = [argTypes[0] /* return value */, null /* no class 'this'*/].concat(argTypes.slice(1) /* actual params */); + var func = craftInvokerFunction(humanName, invokerArgsArray, null /* no class 'this'*/, rawInvoker, fn, isAsync); + if (undefined === proto[methodName].overloadTable) { + func.argCount = argCount-1; + proto[methodName] = func; + } else { + proto[methodName].overloadTable[argCount-1] = func; + } + + if (classType.registeredClass.__derivedClasses) { + for (const derivedClass of classType.registeredClass.__derivedClasses) { + if (!derivedClass.constructor.hasOwnProperty(methodName)) { + // TODO: Add support for overloads + derivedClass.constructor[methodName] = func; + } + } + } + + return []; + }); + return []; + }); + } + + + + + + + function __embind_register_class_function(rawClassType, + methodName, + argCount, + rawArgTypesAddr, // [ReturnType, ThisType, Args...] + invokerSignature, + rawInvoker, + context, + isPureVirtual, + isAsync) { + var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); + methodName = readLatin1String(methodName); + rawInvoker = embind__requireFunction(invokerSignature, rawInvoker); + + whenDependentTypesAreResolved([], [rawClassType], function(classType) { + classType = classType[0]; + var humanName = `${classType.name}.${methodName}`; + + if (methodName.startsWith("@@")) { + methodName = Symbol[methodName.substring(2)]; + } + + if (isPureVirtual) { + classType.registeredClass.pureVirtualFunctions.push(methodName); + } + + function unboundTypesHandler() { + throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`, rawArgTypes); + } + + var proto = classType.registeredClass.instancePrototype; + var method = proto[methodName]; + if (undefined === method || (undefined === method.overloadTable && method.className !== classType.name && method.argCount === argCount - 2)) { + // This is the first overload to be registered, OR we are replacing a + // function in the base class with a function in the derived class. + unboundTypesHandler.argCount = argCount - 2; + unboundTypesHandler.className = classType.name; + proto[methodName] = unboundTypesHandler; + } else { + // There was an existing function with the same name registered. Set up + // a function overload routing table. + ensureOverloadTable(proto, methodName, humanName); + proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler; + } + + whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { + var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context, isAsync); + + // Replace the initial unbound-handler-stub function with the appropriate member function, now that all types + // are resolved. If multiple overloads are registered for this function, the function goes into an overload table. + if (undefined === proto[methodName].overloadTable) { + // Set argCount in case an overload is registered later + memberFunction.argCount = argCount - 2; + proto[methodName] = memberFunction; + } else { + proto[methodName].overloadTable[argCount - 2] = memberFunction; + } + + return []; + }); + return []; + }); + } + + function __emval_decref(handle) { + if (handle >= emval_handles.reserved && 0 === --emval_handles.get(handle).refcount) { + emval_handles.free(handle); + } + } + + + + + function __embind_register_emval(rawType, name) { + name = readLatin1String(name); + registerType(rawType, { + name: name, + 'fromWireType': function(handle) { + var rv = Emval.toValue(handle); + __emval_decref(handle); + return rv; + }, + 'toWireType': function(destructors, value) { + return Emval.toHandle(value); + }, + 'argPackAdvance': 8, + 'readValueFromPointer': simpleReadValueFromPointer, + destructorFunction: null, // This type does not need a destructor + + // TODO: do we need a deleteObject here? write a test where + // emval is passed into JS via an interface + }); + } + + function embindRepr(v) { + if (v === null) { + return 'null'; + } + var t = typeof v; + if (t === 'object' || t === 'array' || t === 'function') { + return v.toString(); + } else { + return '' + v; + } + } + + function floatReadValueFromPointer(name, shift) { + switch (shift) { + case 2: return function(pointer) { + return this['fromWireType'](HEAPF32[pointer >> 2]); + }; + case 3: return function(pointer) { + return this['fromWireType'](HEAPF64[pointer >> 3]); + }; + default: + throw new TypeError("Unknown float type: " + name); + } + } + + + + function __embind_register_float(rawType, name, size) { + var shift = getShiftFromSize(size); + name = readLatin1String(name); + registerType(rawType, { + name: name, + 'fromWireType': function(value) { + return value; + }, + 'toWireType': function(destructors, value) { + if (typeof value != "number" && typeof value != "boolean") { + throw new TypeError(`Cannot convert ${embindRepr(value)} to ${this.name}`); + } + // The VM will perform JS to Wasm value conversion, according to the spec: + // https://www.w3.org/TR/wasm-js-api-1/#towebassemblyvalue + return value; + }, + 'argPackAdvance': 8, + 'readValueFromPointer': floatReadValueFromPointer(name, shift), + destructorFunction: null, // This type does not need a destructor + }); + } + + + + + + + + + function __embind_register_function(name, argCount, rawArgTypesAddr, signature, rawInvoker, fn, isAsync) { + var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr); + name = readLatin1String(name); + + rawInvoker = embind__requireFunction(signature, rawInvoker); + + exposePublicSymbol(name, function() { + throwUnboundTypeError(`Cannot call ${name} due to unbound types`, argTypes); + }, argCount - 1); + + whenDependentTypesAreResolved([], argTypes, function(argTypes) { + var invokerArgsArray = [argTypes[0] /* return value */, null /* no class 'this'*/].concat(argTypes.slice(1) /* actual params */); + replacePublicSymbol(name, craftInvokerFunction(name, invokerArgsArray, null /* no class 'this'*/, rawInvoker, fn, isAsync), argCount - 1); + return []; + }); + } + + + + function integerReadValueFromPointer(name, shift, signed) { + // integers are quite common, so generate very specialized functions + switch (shift) { + case 0: return signed ? + function readS8FromPointer(pointer) { return HEAP8[pointer]; } : + function readU8FromPointer(pointer) { return HEAPU8[pointer]; }; + case 1: return signed ? + function readS16FromPointer(pointer) { return HEAP16[pointer >> 1]; } : + function readU16FromPointer(pointer) { return HEAPU16[pointer >> 1]; }; + case 2: return signed ? + function readS32FromPointer(pointer) { return HEAP32[pointer >> 2]; } : + function readU32FromPointer(pointer) { return HEAPU32[pointer >> 2]; }; + default: + throw new TypeError("Unknown integer type: " + name); + } + } + + + function __embind_register_integer(primitiveType, name, size, minRange, maxRange) { + name = readLatin1String(name); + // LLVM doesn't have signed and unsigned 32-bit types, so u32 literals come + // out as 'i32 -1'. Always treat those as max u32. + if (maxRange === -1) { + maxRange = 4294967295; + } + + var shift = getShiftFromSize(size); + + var fromWireType = (value) => value; + + if (minRange === 0) { + var bitshift = 32 - 8*size; + fromWireType = (value) => (value << bitshift) >>> bitshift; + } + + var isUnsignedType = (name.includes('unsigned')); + var checkAssertions = (value, toTypeName) => { + if (typeof value != "number" && typeof value != "boolean") { + throw new TypeError(`Cannot convert "${embindRepr(value)}" to ${toTypeName}`); + } + if (value < minRange || value > maxRange) { + throw new TypeError(`Passing a number "${embindRepr(value)}" from JS side to C/C++ side to an argument of type "${name}", which is outside the valid range [${minRange}, ${maxRange}]!`); + } + } + var toWireType; + if (isUnsignedType) { + toWireType = function(destructors, value) { + checkAssertions(value, this.name); + return value >>> 0; + } + } else { + toWireType = function(destructors, value) { + checkAssertions(value, this.name); + // The VM will perform JS to Wasm value conversion, according to the spec: + // https://www.w3.org/TR/wasm-js-api-1/#towebassemblyvalue + return value; + } + } + registerType(primitiveType, { + name: name, + 'fromWireType': fromWireType, + 'toWireType': toWireType, + 'argPackAdvance': 8, + 'readValueFromPointer': integerReadValueFromPointer(name, shift, minRange !== 0), + destructorFunction: null, // This type does not need a destructor + }); + } + + + function __embind_register_memory_view(rawType, dataTypeIndex, name) { + var typeMapping = [ + Int8Array, + Uint8Array, + Int16Array, + Uint16Array, + Int32Array, + Uint32Array, + Float32Array, + Float64Array, + ]; + + var TA = typeMapping[dataTypeIndex]; + + function decodeMemoryView(handle) { + handle = handle >> 2; + var heap = HEAPU32; + var size = heap[handle]; // in elements + var data = heap[handle + 1]; // byte offset into emscripten heap + return new TA(heap.buffer, data, size); + } + + name = readLatin1String(name); + registerType(rawType, { + name: name, + 'fromWireType': decodeMemoryView, + 'argPackAdvance': 8, + 'readValueFromPointer': decodeMemoryView, + }, { + ignoreDuplicateRegistrations: true, + }); + } + + + + + + function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { + assert(typeof str === 'string'); + // Parameter maxBytesToWrite is not optional. Negative values, 0, null, + // undefined and false each don't write out any bytes. + if (!(maxBytesToWrite > 0)) + return 0; + + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code + // unit, not a Unicode code point of the character! So decode + // UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description + // and https://www.ietf.org/rfc/rfc2279.txt + // and https://tools.ietf.org/html/rfc3629 + var u = str.charCodeAt(i); // possibly a lead surrogate + if (u >= 0xD800 && u <= 0xDFFF) { + var u1 = str.charCodeAt(++i); + u = 0x10000 + ((u & 0x3FF) << 10) | (u1 & 0x3FF); + } + if (u <= 0x7F) { + if (outIdx >= endIdx) break; + heap[outIdx++] = u; + } else if (u <= 0x7FF) { + if (outIdx + 1 >= endIdx) break; + heap[outIdx++] = 0xC0 | (u >> 6); + heap[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0xFFFF) { + if (outIdx + 2 >= endIdx) break; + heap[outIdx++] = 0xE0 | (u >> 12); + heap[outIdx++] = 0x80 | ((u >> 6) & 63); + heap[outIdx++] = 0x80 | (u & 63); + } else { + if (outIdx + 3 >= endIdx) break; + if (u > 0x10FFFF) warnOnce('Invalid Unicode code point ' + ptrToString(u) + ' encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF).'); + heap[outIdx++] = 0xF0 | (u >> 18); + heap[outIdx++] = 0x80 | ((u >> 12) & 63); + heap[outIdx++] = 0x80 | ((u >> 6) & 63); + heap[outIdx++] = 0x80 | (u & 63); + } + } + // Null-terminate the pointer to the buffer. + heap[outIdx] = 0; + return outIdx - startIdx; + } + function stringToUTF8(str, outPtr, maxBytesToWrite) { + assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite); + } + + function lengthBytesUTF8(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code + // unit, not a Unicode code point of the character! So decode + // UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var c = str.charCodeAt(i); // possibly a lead surrogate + if (c <= 0x7F) { + len++; + } else if (c <= 0x7FF) { + len += 2; + } else if (c >= 0xD800 && c <= 0xDFFF) { + len += 4; ++i; + } else { + len += 3; + } + } + return len; + } + + + + function __embind_register_std_string(rawType, name) { + name = readLatin1String(name); + var stdStringIsUTF8 + //process only std::string bindings with UTF8 support, in contrast to e.g. std::basic_string + = (name === "std::string"); + + registerType(rawType, { + name: name, + 'fromWireType': function(value) { + var length = HEAPU32[((value)>>2)]; + var payload = value + 4; + + var str; + if (stdStringIsUTF8) { + var decodeStartPtr = payload; + // Looping here to support possible embedded '0' bytes + for (var i = 0; i <= length; ++i) { + var currentBytePtr = payload + i; + if (i == length || HEAPU8[currentBytePtr] == 0) { + var maxRead = currentBytePtr - decodeStartPtr; + var stringSegment = UTF8ToString(decodeStartPtr, maxRead); + if (str === undefined) { + str = stringSegment; + } else { + str += String.fromCharCode(0); + str += stringSegment; + } + decodeStartPtr = currentBytePtr + 1; + } + } + } else { + var a = new Array(length); + for (var i = 0; i < length; ++i) { + a[i] = String.fromCharCode(HEAPU8[payload + i]); + } + str = a.join(''); + } + + _free(value); + + return str; + }, + 'toWireType': function(destructors, value) { + if (value instanceof ArrayBuffer) { + value = new Uint8Array(value); + } + + var length; + var valueIsOfTypeString = (typeof value == 'string'); + + if (!(valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array)) { + throwBindingError('Cannot pass non-string to std::string'); + } + if (stdStringIsUTF8 && valueIsOfTypeString) { + length = lengthBytesUTF8(value); + } else { + length = value.length; + } + + // assumes 4-byte alignment + var base = _malloc(4 + length + 1); + var ptr = base + 4; + HEAPU32[((base)>>2)] = length; + if (stdStringIsUTF8 && valueIsOfTypeString) { + stringToUTF8(value, ptr, length + 1); + } else { + if (valueIsOfTypeString) { + for (var i = 0; i < length; ++i) { + var charCode = value.charCodeAt(i); + if (charCode > 255) { + _free(ptr); + throwBindingError('String has UTF-16 code units that do not fit in 8 bits'); + } + HEAPU8[ptr + i] = charCode; + } + } else { + for (var i = 0; i < length; ++i) { + HEAPU8[ptr + i] = value[i]; + } + } + } + + if (destructors !== null) { + destructors.push(_free, base); + } + return base; + }, + 'argPackAdvance': 8, + 'readValueFromPointer': simpleReadValueFromPointer, + destructorFunction: function(ptr) { _free(ptr); }, + }); + } + + + + + var UTF16Decoder = typeof TextDecoder != 'undefined' ? new TextDecoder('utf-16le') : undefined;; + function UTF16ToString(ptr, maxBytesToRead) { + assert(ptr % 2 == 0, 'Pointer passed to UTF16ToString must be aligned to two bytes!'); + var endPtr = ptr; + // TextDecoder needs to know the byte length in advance, it doesn't stop on + // null terminator by itself. + // Also, use the length info to avoid running tiny strings through + // TextDecoder, since .subarray() allocates garbage. + var idx = endPtr >> 1; + var maxIdx = idx + maxBytesToRead / 2; + // If maxBytesToRead is not passed explicitly, it will be undefined, and this + // will always evaluate to true. This saves on code size. + while (!(idx >= maxIdx) && HEAPU16[idx]) ++idx; + endPtr = idx << 1; + + if (endPtr - ptr > 32 && UTF16Decoder) + return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr)); + + // Fallback: decode without UTF16Decoder + var str = ''; + + // If maxBytesToRead is not passed explicitly, it will be undefined, and the + // for-loop's condition will always evaluate to true. The loop is then + // terminated on the first null char. + for (var i = 0; !(i >= maxBytesToRead / 2); ++i) { + var codeUnit = HEAP16[(((ptr)+(i*2))>>1)]; + if (codeUnit == 0) break; + // fromCharCode constructs a character from a UTF-16 code unit, so we can + // pass the UTF16 string right through. + str += String.fromCharCode(codeUnit); + } + + return str; + } + + function stringToUTF16(str, outPtr, maxBytesToWrite) { + assert(outPtr % 2 == 0, 'Pointer passed to stringToUTF16 must be aligned to two bytes!'); + assert(typeof maxBytesToWrite == 'number', 'stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 0x7FFFFFFF; + } + if (maxBytesToWrite < 2) return 0; + maxBytesToWrite -= 2; // Null terminator. + var startPtr = outPtr; + var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length; + for (var i = 0; i < numCharsToWrite; ++i) { + // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP. + var codeUnit = str.charCodeAt(i); // possibly a lead surrogate + HEAP16[((outPtr)>>1)] = codeUnit; + outPtr += 2; + } + // Null-terminate the pointer to the HEAP. + HEAP16[((outPtr)>>1)] = 0; + return outPtr - startPtr; + } + + function lengthBytesUTF16(str) { + return str.length*2; + } + + function UTF32ToString(ptr, maxBytesToRead) { + assert(ptr % 4 == 0, 'Pointer passed to UTF32ToString must be aligned to four bytes!'); + var i = 0; + + var str = ''; + // If maxBytesToRead is not passed explicitly, it will be undefined, and this + // will always evaluate to true. This saves on code size. + while (!(i >= maxBytesToRead / 4)) { + var utf32 = HEAP32[(((ptr)+(i*4))>>2)]; + if (utf32 == 0) break; + ++i; + // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + if (utf32 >= 0x10000) { + var ch = utf32 - 0x10000; + str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); + } else { + str += String.fromCharCode(utf32); + } + } + return str; + } + + function stringToUTF32(str, outPtr, maxBytesToWrite) { + assert(outPtr % 4 == 0, 'Pointer passed to stringToUTF32 must be aligned to four bytes!'); + assert(typeof maxBytesToWrite == 'number', 'stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 0x7FFFFFFF; + } + if (maxBytesToWrite < 4) return 0; + var startPtr = outPtr; + var endPtr = startPtr + maxBytesToWrite - 4; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var codeUnit = str.charCodeAt(i); // possibly a lead surrogate + if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) { + var trailSurrogate = str.charCodeAt(++i); + codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF); + } + HEAP32[((outPtr)>>2)] = codeUnit; + outPtr += 4; + if (outPtr + 4 > endPtr) break; + } + // Null-terminate the pointer to the HEAP. + HEAP32[((outPtr)>>2)] = 0; + return outPtr - startPtr; + } + + function lengthBytesUTF32(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var codeUnit = str.charCodeAt(i); + if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate. + len += 4; + } + + return len; + } + function __embind_register_std_wstring(rawType, charSize, name) { + name = readLatin1String(name); + var decodeString, encodeString, getHeap, lengthBytesUTF, shift; + if (charSize === 2) { + decodeString = UTF16ToString; + encodeString = stringToUTF16; + lengthBytesUTF = lengthBytesUTF16; + getHeap = () => HEAPU16; + shift = 1; + } else if (charSize === 4) { + decodeString = UTF32ToString; + encodeString = stringToUTF32; + lengthBytesUTF = lengthBytesUTF32; + getHeap = () => HEAPU32; + shift = 2; + } + registerType(rawType, { + name: name, + 'fromWireType': function(value) { + // Code mostly taken from _embind_register_std_string fromWireType + var length = HEAPU32[value >> 2]; + var HEAP = getHeap(); + var str; + + var decodeStartPtr = value + 4; + // Looping here to support possible embedded '0' bytes + for (var i = 0; i <= length; ++i) { + var currentBytePtr = value + 4 + i * charSize; + if (i == length || HEAP[currentBytePtr >> shift] == 0) { + var maxReadBytes = currentBytePtr - decodeStartPtr; + var stringSegment = decodeString(decodeStartPtr, maxReadBytes); + if (str === undefined) { + str = stringSegment; + } else { + str += String.fromCharCode(0); + str += stringSegment; + } + decodeStartPtr = currentBytePtr + charSize; + } + } + + _free(value); + + return str; + }, + 'toWireType': function(destructors, value) { + if (!(typeof value == 'string')) { + throwBindingError(`Cannot pass non-string to C++ string type ${name}`); + } + + // assumes 4-byte alignment + var length = lengthBytesUTF(value); + var ptr = _malloc(4 + length + charSize); + HEAPU32[ptr >> 2] = length >> shift; + + encodeString(value, ptr + 4, length + charSize); + + if (destructors !== null) { + destructors.push(_free, ptr); + } + return ptr; + }, + 'argPackAdvance': 8, + 'readValueFromPointer': simpleReadValueFromPointer, + destructorFunction: function(ptr) { _free(ptr); }, + }); + } + + + function __embind_register_void(rawType, name) { + name = readLatin1String(name); + registerType(rawType, { + isVoid: true, // void return values can be optimized out sometimes + name: name, + 'argPackAdvance': 0, + 'fromWireType': function() { + return undefined; + }, + 'toWireType': function(destructors, o) { + // TODO: assert if anything else is given? + return undefined; + }, + }); + } + + function emval_allocateDestructors(destructorsRef) { + var destructors = []; + HEAPU32[((destructorsRef)>>2)] = Emval.toHandle(destructors); + return destructors; + } + + var emval_symbols = {}; + + function getStringOrSymbol(address) { + var symbol = emval_symbols[address]; + if (symbol === undefined) { + return readLatin1String(address); + } + return symbol; + } + + var emval_methodCallers = []; + + function __emval_call_void_method(caller, handle, methodName, args) { + caller = emval_methodCallers[caller]; + handle = Emval.toValue(handle); + methodName = getStringOrSymbol(methodName); + caller(handle, methodName, null, args); + } + + + function emval_addMethodCaller(caller) { + var id = emval_methodCallers.length; + emval_methodCallers.push(caller); + return id; + } + + function emval_lookupTypes(argCount, argTypes) { + var a = new Array(argCount); + for (var i = 0; i < argCount; ++i) { + a[i] = requireRegisteredType(HEAPU32[(((argTypes)+(i * 4))>>2)], + "parameter " + i); + } + return a; + } + + + var emval_registeredMethods = []; + function __emval_get_method_caller(argCount, argTypes) { + var types = emval_lookupTypes(argCount, argTypes); + var retType = types[0]; + var signatureName = retType.name + "_$" + types.slice(1).map(function (t) { return t.name; }).join("_") + "$"; + var returnId = emval_registeredMethods[signatureName]; + if (returnId !== undefined) { + return returnId; + } + + var argN = new Array(argCount - 1); + var invokerFunction = (handle, name, destructors, args) => { + var offset = 0; + for (var i = 0; i < argCount - 1; ++i) { + argN[i] = types[i + 1]['readValueFromPointer'](args + offset); + offset += types[i + 1]['argPackAdvance']; + } + var rv = handle[name].apply(handle, argN); + for (var i = 0; i < argCount - 1; ++i) { + if (types[i + 1].deleteObject) { + types[i + 1].deleteObject(argN[i]); + } + } + if (!retType.isVoid) { + return retType['toWireType'](destructors, rv); + } + }; + returnId = emval_addMethodCaller(invokerFunction); + emval_registeredMethods[signatureName] = returnId; + return returnId; + } + + function __emval_incref(handle) { + if (handle > 4) { + emval_handles.get(handle).refcount += 1; + } + } + + function _abort() { + abort('native code called abort()'); + } + + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.copyWithin(dest, src, src + num); + } + + function getHeapMax() { + // Stay one Wasm page short of 4GB: while e.g. Chrome is able to allocate + // full 4GB Wasm memories, the size will wrap back to 0 bytes in Wasm side + // for any code that deals with heap sizes, which would require special + // casing all heap size related code to treat 0 specially. + return 2147483648; + } + + function emscripten_realloc_buffer(size) { + var b = wasmMemory.buffer; + var pages = (size - b.byteLength + 65535) >>> 16; + try { + // round size grow request up to wasm page size (fixed 64KB per spec) + wasmMemory.grow(pages); // .grow() takes a delta compared to the previous size + updateMemoryViews(); + return 1 /*success*/; + } catch(e) { + err(`emscripten_realloc_buffer: Attempted to grow heap from ${b.byteLength} bytes to ${size} bytes, but got error: ${e}`); + } + // implicit 0 return to save code size (caller will cast "undefined" into 0 + // anyhow) + } + function _emscripten_resize_heap(requestedSize) { + var oldSize = HEAPU8.length; + requestedSize = requestedSize >>> 0; + // With multithreaded builds, races can happen (another thread might increase the size + // in between), so return a failure, and let the caller retry. + assert(requestedSize > oldSize); + + // Memory resize rules: + // 1. Always increase heap size to at least the requested size, rounded up + // to next page multiple. + // 2a. If MEMORY_GROWTH_LINEAR_STEP == -1, excessively resize the heap + // geometrically: increase the heap size according to + // MEMORY_GROWTH_GEOMETRIC_STEP factor (default +20%), At most + // overreserve by MEMORY_GROWTH_GEOMETRIC_CAP bytes (default 96MB). + // 2b. If MEMORY_GROWTH_LINEAR_STEP != -1, excessively resize the heap + // linearly: increase the heap size by at least + // MEMORY_GROWTH_LINEAR_STEP bytes. + // 3. Max size for the heap is capped at 2048MB-WASM_PAGE_SIZE, or by + // MAXIMUM_MEMORY, or by ASAN limit, depending on which is smallest + // 4. If we were unable to allocate as much memory, it may be due to + // over-eager decision to excessively reserve due to (3) above. + // Hence if an allocation fails, cut down on the amount of excess + // growth, in an attempt to succeed to perform a smaller allocation. + + // A limit is set for how much we can grow. We should not exceed that + // (the wasm binary specifies it, so if we tried, we'd fail anyhow). + var maxHeapSize = getHeapMax(); + if (requestedSize > maxHeapSize) { + err(`Cannot enlarge memory, asked to go up to ${requestedSize} bytes, but the limit is ${maxHeapSize} bytes!`); + return false; + } + + var alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple; + + // Loop through potential heap size increases. If we attempt a too eager + // reservation that fails, cut down on the attempted size and reserve a + // smaller bump instead. (max 3 times, chosen somewhat arbitrarily) + for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { + var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); // ensure geometric growth + // but limit overreserving (default to capping at +96MB overgrowth at most) + overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296 ); + + var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536)); + + var replacement = emscripten_realloc_buffer(newSize); + if (replacement) { + err('Warning: Enlarging memory arrays, this is not fast! ' + [oldSize, newSize]); + + return true; + } + } + err(`Failed to grow the heap from ${oldSize} bytes to ${newSize} bytes, not enough memory!`); + return false; + } + + var SYSCALLS = {varargs:undefined,get:function() { + assert(SYSCALLS.varargs != undefined); + SYSCALLS.varargs += 4; + var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)]; + return ret; + },getStr:function(ptr) { + var ret = UTF8ToString(ptr); + return ret; + }}; + function _fd_close(fd) { + abort('fd_close called without SYSCALLS_REQUIRE_FILESYSTEM'); + } + + function convertI32PairToI53Checked(lo, hi) { + assert(lo == (lo >>> 0) || lo == (lo|0)); // lo should either be a i32 or a u32 + assert(hi === (hi|0)); // hi should be a i32 + return ((hi + 0x200000) >>> 0 < 0x400001 - !!lo) ? (lo >>> 0) + hi * 4294967296 : NaN; + } + + + + + function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { + return 70; + } + + var printCharBuffers = [null,[],[]]; + + function printChar(stream, curr) { + var buffer = printCharBuffers[stream]; + assert(buffer); + if (curr === 0 || curr === 10) { + (stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0)); + buffer.length = 0; + } else { + buffer.push(curr); + } + } + + function flush_NO_FILESYSTEM() { + // flush anything remaining in the buffers during shutdown + _fflush(0); + if (printCharBuffers[1].length) printChar(1, 10); + if (printCharBuffers[2].length) printChar(2, 10); + } + + + function _fd_write(fd, iov, iovcnt, pnum) { + // hack to support printf in SYSCALLS_REQUIRE_FILESYSTEM=0 + var num = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAPU32[((iov)>>2)]; + var len = HEAPU32[(((iov)+(4))>>2)]; + iov += 8; + for (var j = 0; j < len; j++) { + printChar(fd, HEAPU8[ptr+j]); + } + num += len; + } + HEAPU32[((pnum)>>2)] = num; + return 0; + } +BindingError = Module['BindingError'] = extendError(Error, 'BindingError');; +init_emval();; +PureVirtualError = Module['PureVirtualError'] = extendError(Error, 'PureVirtualError');; +embind_init_charCodes(); +init_embind();; +InternalError = Module['InternalError'] = extendError(Error, 'InternalError');; +init_ClassHandle(); +init_RegisteredPointer(); +UnboundTypeError = Module['UnboundTypeError'] = extendError(Error, 'UnboundTypeError');; +// include: base64Utils.js +// Copied from https://github.com/strophe/strophejs/blob/e06d027/src/polyfills.js#L149 + +// This code was written by Tyler Akins and has been placed in the +// public domain. It would be nice if you left this header intact. +// Base64 code from Tyler Akins -- http://rumkin.com + +/** + * Decodes a base64 string. + * @param {string} input The string to decode. + */ +var decodeBase64 = typeof atob == 'function' ? atob : function (input) { + var keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; + + var output = ''; + var chr1, chr2, chr3; + var enc1, enc2, enc3, enc4; + var i = 0; + // remove all characters that are not A-Z, a-z, 0-9, +, /, or = + input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ''); + do { + enc1 = keyStr.indexOf(input.charAt(i++)); + enc2 = keyStr.indexOf(input.charAt(i++)); + enc3 = keyStr.indexOf(input.charAt(i++)); + enc4 = keyStr.indexOf(input.charAt(i++)); + + chr1 = (enc1 << 2) | (enc2 >> 4); + chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); + chr3 = ((enc3 & 3) << 6) | enc4; + + output = output + String.fromCharCode(chr1); + + if (enc3 !== 64) { + output = output + String.fromCharCode(chr2); + } + if (enc4 !== 64) { + output = output + String.fromCharCode(chr3); + } + } while (i < input.length); + return output; +}; + +// Converts a string of base64 into a byte array. +// Throws error on invalid input. +function intArrayFromBase64(s) { + + try { + var decoded = decodeBase64(s); + var bytes = new Uint8Array(decoded.length); + for (var i = 0 ; i < decoded.length ; ++i) { + bytes[i] = decoded.charCodeAt(i); + } + return bytes; + } catch (_) { + throw new Error('Converting base64 string to bytes failed.'); + } +} + +// If filename is a base64 data URI, parses and returns data (Buffer on node, +// Uint8Array otherwise). If filename is not a base64 data URI, returns undefined. +function tryParseAsDataURI(filename) { + if (!isDataURI(filename)) { + return; + } + + return intArrayFromBase64(filename.slice(dataURIPrefix.length)); +} + + +// end include: base64Utils.js +function checkIncomingModuleAPI() { + ignoredModuleProp('fetchSettings'); +} +var wasmImports = { + "__assert_fail": ___assert_fail, + "_embind_create_inheriting_constructor": __embind_create_inheriting_constructor, + "_embind_register_bigint": __embind_register_bigint, + "_embind_register_bool": __embind_register_bool, + "_embind_register_class": __embind_register_class, + "_embind_register_class_class_function": __embind_register_class_class_function, + "_embind_register_class_function": __embind_register_class_function, + "_embind_register_emval": __embind_register_emval, + "_embind_register_float": __embind_register_float, + "_embind_register_function": __embind_register_function, + "_embind_register_integer": __embind_register_integer, + "_embind_register_memory_view": __embind_register_memory_view, + "_embind_register_std_string": __embind_register_std_string, + "_embind_register_std_wstring": __embind_register_std_wstring, + "_embind_register_void": __embind_register_void, + "_emval_call_void_method": __emval_call_void_method, + "_emval_decref": __emval_decref, + "_emval_get_method_caller": __emval_get_method_caller, + "_emval_incref": __emval_incref, + "abort": _abort, + "emscripten_memcpy_big": _emscripten_memcpy_big, + "emscripten_resize_heap": _emscripten_resize_heap, + "fd_close": _fd_close, + "fd_seek": _fd_seek, + "fd_write": _fd_write, + "memory": wasmMemory +}; +var asm = createWasm(); +/** @type {function(...*):?} */ +var ___wasm_call_ctors = createExportWrapper("__wasm_call_ctors"); +/** @type {function(...*):?} */ +var _malloc = createExportWrapper("malloc"); +/** @type {function(...*):?} */ +var _free = createExportWrapper("free"); +/** @type {function(...*):?} */ +var ___getTypeName = createExportWrapper("__getTypeName"); +/** @type {function(...*):?} */ +var __embind_initialize_bindings = Module["__embind_initialize_bindings"] = createExportWrapper("_embind_initialize_bindings"); +/** @type {function(...*):?} */ +var ___errno_location = createExportWrapper("__errno_location"); +/** @type {function(...*):?} */ +var _fflush = Module["_fflush"] = createExportWrapper("fflush"); +/** @type {function(...*):?} */ +var _emscripten_stack_init = function() { + return (_emscripten_stack_init = Module["asm"]["emscripten_stack_init"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _emscripten_stack_get_free = function() { + return (_emscripten_stack_get_free = Module["asm"]["emscripten_stack_get_free"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _emscripten_stack_get_base = function() { + return (_emscripten_stack_get_base = Module["asm"]["emscripten_stack_get_base"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _emscripten_stack_get_end = function() { + return (_emscripten_stack_get_end = Module["asm"]["emscripten_stack_get_end"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var stackSave = createExportWrapper("stackSave"); +/** @type {function(...*):?} */ +var stackRestore = createExportWrapper("stackRestore"); +/** @type {function(...*):?} */ +var stackAlloc = createExportWrapper("stackAlloc"); +/** @type {function(...*):?} */ +var _emscripten_stack_get_current = function() { + return (_emscripten_stack_get_current = Module["asm"]["emscripten_stack_get_current"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var dynCall_jiji = Module["dynCall_jiji"] = createExportWrapper("dynCall_jiji"); + + +// include: postamble.js +// === Auto-generated postamble setup entry stuff === + +var missingLibrarySymbols = [ + 'zeroMemory', + 'exitJS', + 'isLeapYear', + 'ydayFromDate', + 'arraySum', + 'addDays', + 'setErrNo', + 'inetPton4', + 'inetNtop4', + 'inetPton6', + 'inetNtop6', + 'readSockaddr', + 'writeSockaddr', + 'getHostByName', + 'initRandomFill', + 'randomFill', + 'traverseStack', + 'getCallstack', + 'emscriptenLog', + 'convertPCtoSourceLocation', + 'readEmAsmArgs', + 'jstoi_q', + 'jstoi_s', + 'getExecutableName', + 'listenOnce', + 'autoResumeAudioContext', + 'handleException', + 'runtimeKeepalivePush', + 'runtimeKeepalivePop', + 'callUserCallback', + 'maybeExit', + 'safeSetTimeout', + 'asmjsMangle', + 'asyncLoad', + 'alignMemory', + 'mmapAlloc', + 'getNativeTypeSize', + 'STACK_SIZE', + 'STACK_ALIGN', + 'POINTER_SIZE', + 'ASSERTIONS', + 'writeI53ToI64', + 'writeI53ToI64Clamped', + 'writeI53ToI64Signaling', + 'writeI53ToU64Clamped', + 'writeI53ToU64Signaling', + 'readI53FromI64', + 'readI53FromU64', + 'convertI32PairToI53', + 'convertU32PairToI53', + 'getCFunc', + 'ccall', + 'cwrap', + 'uleb128Encode', + 'sigToWasmTypes', + 'generateFuncType', + 'convertJsFunctionToWasm', + 'getEmptyTableSlot', + 'updateTableMap', + 'getFunctionAddress', + 'addFunction', + 'removeFunction', + 'reallyNegative', + 'unSign', + 'strLen', + 'reSign', + 'formatString', + 'intArrayFromString', + 'AsciiToString', + 'stringToAscii', + 'stringToNewUTF8', + 'stringToUTF8OnStack', + 'writeArrayToMemory', + 'registerKeyEventCallback', + 'maybeCStringToJsString', + 'findEventTarget', + 'findCanvasEventTarget', + 'getBoundingClientRect', + 'fillMouseEventData', + 'registerMouseEventCallback', + 'registerWheelEventCallback', + 'registerUiEventCallback', + 'registerFocusEventCallback', + 'fillDeviceOrientationEventData', + 'registerDeviceOrientationEventCallback', + 'fillDeviceMotionEventData', + 'registerDeviceMotionEventCallback', + 'screenOrientation', + 'fillOrientationChangeEventData', + 'registerOrientationChangeEventCallback', + 'fillFullscreenChangeEventData', + 'registerFullscreenChangeEventCallback', + 'JSEvents_requestFullscreen', + 'JSEvents_resizeCanvasForFullscreen', + 'registerRestoreOldStyle', + 'hideEverythingExceptGivenElement', + 'restoreHiddenElements', + 'setLetterbox', + 'softFullscreenResizeWebGLRenderTarget', + 'doRequestFullscreen', + 'fillPointerlockChangeEventData', + 'registerPointerlockChangeEventCallback', + 'registerPointerlockErrorEventCallback', + 'requestPointerLock', + 'fillVisibilityChangeEventData', + 'registerVisibilityChangeEventCallback', + 'registerTouchEventCallback', + 'fillGamepadEventData', + 'registerGamepadEventCallback', + 'registerBeforeUnloadEventCallback', + 'fillBatteryEventData', + 'battery', + 'registerBatteryEventCallback', + 'setCanvasElementSize', + 'getCanvasElementSize', + 'demangle', + 'demangleAll', + 'jsStackTrace', + 'stackTrace', + 'getEnvStrings', + 'checkWasiClock', + 'wasiRightsToMuslOFlags', + 'wasiOFlagsToMuslOFlags', + 'createDyncallWrapper', + 'setImmediateWrapped', + 'clearImmediateWrapped', + 'polyfillSetImmediate', + 'getPromise', + 'makePromise', + 'idsToPromises', + 'makePromiseCallback', + 'setMainLoop', + 'getSocketFromFD', + 'getSocketAddress', + 'heapObjectForWebGLType', + 'heapAccessShiftForWebGLHeap', + 'webgl_enable_ANGLE_instanced_arrays', + 'webgl_enable_OES_vertex_array_object', + 'webgl_enable_WEBGL_draw_buffers', + 'webgl_enable_WEBGL_multi_draw', + 'emscriptenWebGLGet', + 'computeUnpackAlignedImageSize', + 'colorChannelsInGlTextureFormat', + 'emscriptenWebGLGetTexPixelData', + '__glGenObject', + 'emscriptenWebGLGetUniform', + 'webglGetUniformLocation', + 'webglPrepareUniformLocationsBeforeFirstUse', + 'webglGetLeftBracePos', + 'emscriptenWebGLGetVertexAttrib', + '__glGetActiveAttribOrUniform', + 'writeGLArray', + 'registerWebGlEventCallback', + 'runAndAbortIfError', + 'SDL_unicode', + 'SDL_ttfContext', + 'SDL_audio', + 'GLFW_Window', + 'ALLOC_NORMAL', + 'ALLOC_STACK', + 'allocate', + 'writeStringToMemory', + 'writeAsciiToMemory', + 'enumReadValueFromPointer', + 'validateThis', + 'craftEmvalAllocator', + 'emval_get_global', +]; +missingLibrarySymbols.forEach(missingLibrarySymbol) + +var unexportedSymbols = [ + 'run', + 'addOnPreRun', + 'addOnInit', + 'addOnPreMain', + 'addOnExit', + 'addOnPostRun', + 'addRunDependency', + 'removeRunDependency', + 'FS_createFolder', + 'FS_createPath', + 'FS_createDataFile', + 'FS_createLazyFile', + 'FS_createLink', + 'FS_createDevice', + 'FS_unlink', + 'out', + 'err', + 'callMain', + 'abort', + 'keepRuntimeAlive', + 'wasmMemory', + 'stackAlloc', + 'stackSave', + 'stackRestore', + 'getTempRet0', + 'setTempRet0', + 'writeStackCookie', + 'checkStackCookie', + 'intArrayFromBase64', + 'tryParseAsDataURI', + 'ptrToString', + 'getHeapMax', + 'emscripten_realloc_buffer', + 'ENV', + 'MONTH_DAYS_REGULAR', + 'MONTH_DAYS_LEAP', + 'MONTH_DAYS_REGULAR_CUMULATIVE', + 'MONTH_DAYS_LEAP_CUMULATIVE', + 'ERRNO_CODES', + 'ERRNO_MESSAGES', + 'DNS', + 'Protocols', + 'Sockets', + 'timers', + 'warnOnce', + 'UNWIND_CACHE', + 'readEmAsmArgsArray', + 'dynCallLegacy', + 'getDynCaller', + 'dynCall', + 'HandleAllocator', + 'convertI32PairToI53Checked', + 'freeTableIndexes', + 'functionsInTableMap', + 'setValue', + 'getValue', + 'PATH', + 'PATH_FS', + 'UTF8Decoder', + 'UTF8ArrayToString', + 'UTF8ToString', + 'stringToUTF8Array', + 'stringToUTF8', + 'lengthBytesUTF8', + 'intArrayToString', + 'UTF16Decoder', + 'UTF16ToString', + 'stringToUTF16', + 'lengthBytesUTF16', + 'UTF32ToString', + 'stringToUTF32', + 'lengthBytesUTF32', + 'JSEvents', + 'specialHTMLTargets', + 'currentFullscreenStrategy', + 'restoreOldWindowedStyle', + 'ExitStatus', + 'flush_NO_FILESYSTEM', + 'dlopenMissingError', + 'promiseMap', + 'Browser', + 'wget', + 'SYSCALLS', + 'tempFixedLengthArray', + 'miniTempWebGLFloatBuffers', + 'miniTempWebGLIntBuffers', + 'GL', + 'emscripten_webgl_power_preferences', + 'AL', + 'GLUT', + 'EGL', + 'GLEW', + 'IDBStore', + 'SDL', + 'SDL_gfx', + 'GLFW', + 'allocateUTF8', + 'allocateUTF8OnStack', + 'InternalError', + 'BindingError', + 'UnboundTypeError', + 'PureVirtualError', + 'init_embind', + 'throwInternalError', + 'throwBindingError', + 'throwUnboundTypeError', + 'ensureOverloadTable', + 'exposePublicSymbol', + 'replacePublicSymbol', + 'extendError', + 'createNamedFunction', + 'embindRepr', + 'registeredInstances', + 'getBasestPointer', + 'registerInheritedInstance', + 'unregisterInheritedInstance', + 'getInheritedInstance', + 'getInheritedInstanceCount', + 'getLiveInheritedInstances', + 'registeredTypes', + 'awaitingDependencies', + 'typeDependencies', + 'registeredPointers', + 'registerType', + 'whenDependentTypesAreResolved', + 'embind_charCodes', + 'embind_init_charCodes', + 'readLatin1String', + 'getTypeName', + 'heap32VectorToArray', + 'requireRegisteredType', + 'getShiftFromSize', + 'integerReadValueFromPointer', + 'floatReadValueFromPointer', + 'simpleReadValueFromPointer', + 'runDestructors', + 'craftInvokerFunction', + 'embind__requireFunction', + 'tupleRegistrations', + 'structRegistrations', + 'genericPointerToWireType', + 'constNoSmartPtrRawPointerToWireType', + 'nonConstNoSmartPtrRawPointerToWireType', + 'init_RegisteredPointer', + 'RegisteredPointer', + 'RegisteredPointer_getPointee', + 'RegisteredPointer_destructor', + 'RegisteredPointer_deleteObject', + 'RegisteredPointer_fromWireType', + 'runDestructor', + 'releaseClassHandle', + 'finalizationRegistry', + 'detachFinalizer_deps', + 'detachFinalizer', + 'attachFinalizer', + 'makeClassHandle', + 'init_ClassHandle', + 'ClassHandle', + 'ClassHandle_isAliasOf', + 'throwInstanceAlreadyDeleted', + 'ClassHandle_clone', + 'ClassHandle_delete', + 'deletionQueue', + 'ClassHandle_isDeleted', + 'ClassHandle_deleteLater', + 'flushPendingDeletes', + 'delayFunction', + 'setDelayFunction', + 'RegisteredClass', + 'shallowCopyInternalPointer', + 'downcastPointer', + 'upcastPointer', + 'char_0', + 'char_9', + 'makeLegalFunctionName', + 'emval_handles', + 'emval_symbols', + 'init_emval', + 'count_emval_handles', + 'getStringOrSymbol', + 'Emval', + 'emval_newers', + 'emval_lookupTypes', + 'emval_allocateDestructors', + 'emval_methodCallers', + 'emval_addMethodCaller', + 'emval_registeredMethods', +]; +unexportedSymbols.forEach(unexportedRuntimeSymbol); + + + +var calledRun; + +dependenciesFulfilled = function runCaller() { + // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) + if (!calledRun) run(); + if (!calledRun) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled +}; + +function stackCheckInit() { + // This is normally called automatically during __wasm_call_ctors but need to + // get these values before even running any of the ctors so we call it redundantly + // here. + _emscripten_stack_init(); + // TODO(sbc): Move writeStackCookie to native to to avoid this. + writeStackCookie(); +} + +function run() { + + if (runDependencies > 0) { + return; + } + + stackCheckInit(); + + preRun(); + + // a preRun added a dependency, run will be called later + if (runDependencies > 0) { + return; + } + + function doRun() { + // run may have just been called through dependencies being fulfilled just in this very frame, + // or while the async setStatus time below was happening + if (calledRun) return; + calledRun = true; + Module['calledRun'] = true; + + if (ABORT) return; + + initRuntime(); + + readyPromiseResolve(Module); + if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized'](); + + assert(!Module['_main'], 'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'); + + postRun(); + } + + if (Module['setStatus']) { + Module['setStatus']('Running...'); + setTimeout(function() { + setTimeout(function() { + Module['setStatus'](''); + }, 1); + doRun(); + }, 1); + } else + { + doRun(); + } + checkStackCookie(); +} + +function checkUnflushedContent() { + // Compiler settings do not allow exiting the runtime, so flushing + // the streams is not possible. but in ASSERTIONS mode we check + // if there was something to flush, and if so tell the user they + // should request that the runtime be exitable. + // Normally we would not even include flush() at all, but in ASSERTIONS + // builds we do so just for this check, and here we see if there is any + // content to flush, that is, we check if there would have been + // something a non-ASSERTIONS build would have not seen. + // How we flush the streams depends on whether we are in SYSCALLS_REQUIRE_FILESYSTEM=0 + // mode (which has its own special function for this; otherwise, all + // the code is inside libc) + var oldOut = out; + var oldErr = err; + var has = false; + out = err = (x) => { + has = true; + } + try { // it doesn't matter if it fails + flush_NO_FILESYSTEM(); + } catch(e) {} + out = oldOut; + err = oldErr; + if (has) { + warnOnce('stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.'); + warnOnce('(this may also be due to not including full filesystem support - try building with -sFORCE_FILESYSTEM)'); + } +} + +if (Module['preInit']) { + if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; + while (Module['preInit'].length > 0) { + Module['preInit'].pop()(); + } +} + +run(); + + +// end include: postamble.js + + + return Bullet.ready +} + +); +})(); +if (typeof exports === 'object' && typeof module === 'object') + module.exports = Bullet; +else if (typeof define === 'function' && define['amd']) + define([], function() { return Bullet; }); +else if (typeof exports === 'object') + exports["Bullet"] = Bullet; diff --git a/emscripten/bullet/bullet.debug.wasm.js b/emscripten/bullet/bullet.debug.wasm.js new file mode 100644 index 00000000..9f76722b --- /dev/null +++ b/emscripten/bullet/bullet.debug.wasm.js @@ -0,0 +1,3912 @@ + +var Bullet = (() => { + var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; + + return ( +function(Bullet = {}) { + +// include: shell.js +// The Module object: Our interface to the outside world. We import +// and export values on it. There are various ways Module can be used: +// 1. Not defined. We create it here +// 2. A function parameter, function(Module) { ..generated code.. } +// 3. pre-run appended it, var Module = {}; ..generated code.. +// 4. External script tag defines var Module. +// We need to check if Module already exists (e.g. case 3 above). +// Substitution will be replaced with actual code on later stage of the build, +// this way Closure Compiler will not mangle it (e.g. case 4. above). +// Note that if you want to run closure, and also to use Module +// after the generated code, you will need to define var Module = {}; +// before the code. Then that object will be used in the code, and you +// can continue to use Module afterwards as well. +var Module = typeof Bullet != 'undefined' ? Bullet : {}; + +// Set up the promise that indicates the Module is initialized +var readyPromiseResolve, readyPromiseReject; +Module['ready'] = new Promise((resolve, reject) => { + readyPromiseResolve = resolve; + readyPromiseReject = reject; +}); +["_main","__embind_initialize_bindings","_fflush","onRuntimeInitialized"].forEach((prop) => { + if (!Object.getOwnPropertyDescriptor(Module['ready'], prop)) { + Object.defineProperty(Module['ready'], prop, { + get: () => abort('You are getting ' + prop + ' on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js'), + set: () => abort('You are setting ' + prop + ' on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js'), + }); + } +}); + +// --pre-jses are emitted after the Module integration code, so that they can +// refer to Module (if they choose; they can also define Module) + + +// Sometimes an existing Module object exists with properties +// meant to overwrite the default module functionality. Here +// we collect those properties and reapply _after_ we configure +// the current environment's defaults to avoid having to be so +// defensive during initialization. +var moduleOverrides = Object.assign({}, Module); + +var arguments_ = []; +var thisProgram = './this.program'; +var quit_ = (status, toThrow) => { + throw toThrow; +}; + +// Determine the runtime environment we are in. You can customize this by +// setting the ENVIRONMENT setting at compile time (see settings.js). + +var ENVIRONMENT_IS_WEB = true; +var ENVIRONMENT_IS_WORKER = false; +var ENVIRONMENT_IS_NODE = false; +var ENVIRONMENT_IS_SHELL = false; + +if (Module['ENVIRONMENT']) { + throw new Error('Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)'); +} + +// `/` should be present at the end if `scriptDirectory` is not empty +var scriptDirectory = ''; +function locateFile(path) { + if (Module['locateFile']) { + return Module['locateFile'](path, scriptDirectory); + } + return scriptDirectory + path; +} + +// Hooks that are implemented differently in different runtime environments. +var read_, + readAsync, + readBinary, + setWindowTitle; + +if (ENVIRONMENT_IS_SHELL) { + + if ((typeof process == 'object' && typeof require === 'function') || typeof window == 'object' || typeof importScripts == 'function') throw new Error('not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)'); + + if (typeof read != 'undefined') { + read_ = (f) => { + return read(f); + }; + } + + readBinary = (f) => { + let data; + if (typeof readbuffer == 'function') { + return new Uint8Array(readbuffer(f)); + } + data = read(f, 'binary'); + assert(typeof data == 'object'); + return data; + }; + + readAsync = (f, onload, onerror) => { + setTimeout(() => onload(readBinary(f)), 0); + }; + + if (typeof clearTimeout == 'undefined') { + globalThis.clearTimeout = (id) => {}; + } + + if (typeof scriptArgs != 'undefined') { + arguments_ = scriptArgs; + } else if (typeof arguments != 'undefined') { + arguments_ = arguments; + } + + if (typeof quit == 'function') { + quit_ = (status, toThrow) => { + // Unlike node which has process.exitCode, d8 has no such mechanism. So we + // have no way to set the exit code and then let the program exit with + // that code when it naturally stops running (say, when all setTimeouts + // have completed). For that reason, we must call `quit` - the only way to + // set the exit code - but quit also halts immediately. To increase + // consistency with node (and the web) we schedule the actual quit call + // using a setTimeout to give the current stack and any exception handlers + // a chance to run. This enables features such as addOnPostRun (which + // expected to be able to run code after main returns). + setTimeout(() => { + if (!(toThrow instanceof ExitStatus)) { + let toLog = toThrow; + if (toThrow && typeof toThrow == 'object' && toThrow.stack) { + toLog = [toThrow, toThrow.stack]; + } + err(`exiting due to exception: ${toLog}`); + } + quit(status); + }); + throw toThrow; + }; + } + + if (typeof print != 'undefined') { + // Prefer to use print/printErr where they exist, as they usually work better. + if (typeof console == 'undefined') console = /** @type{!Console} */({}); + console.log = /** @type{!function(this:Console, ...*): undefined} */ (print); + console.warn = console.error = /** @type{!function(this:Console, ...*): undefined} */ (typeof printErr != 'undefined' ? printErr : print); + } + +} else + +// Note that this includes Node.js workers when relevant (pthreads is enabled). +// Node.js workers are detected as a combination of ENVIRONMENT_IS_WORKER and +// ENVIRONMENT_IS_NODE. +if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + if (ENVIRONMENT_IS_WORKER) { // Check worker, not web, since window could be polyfilled + scriptDirectory = self.location.href; + } else if (typeof document != 'undefined' && document.currentScript) { // web + scriptDirectory = document.currentScript.src; + } + // When MODULARIZE, this JS may be executed later, after document.currentScript + // is gone, so we saved it, and we use it here instead of any other info. + if (_scriptDir) { + scriptDirectory = _scriptDir; + } + // blob urls look like blob:http://site.com/etc/etc and we cannot infer anything from them. + // otherwise, slice off the final part of the url to find the script directory. + // if scriptDirectory does not contain a slash, lastIndexOf will return -1, + // and scriptDirectory will correctly be replaced with an empty string. + // If scriptDirectory contains a query (starting with ?) or a fragment (starting with #), + // they are removed because they could contain a slash. + if (scriptDirectory.indexOf('blob:') !== 0) { + scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf('/')+1); + } else { + scriptDirectory = ''; + } + + if (!(typeof window == 'object' || typeof importScripts == 'function')) throw new Error('not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)'); + + // Differentiate the Web Worker from the Node Worker case, as reading must + // be done differently. + { +// include: web_or_worker_shell_read.js +read_ = (url) => { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.send(null); + return xhr.responseText; + } + + if (ENVIRONMENT_IS_WORKER) { + readBinary = (url) => { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.responseType = 'arraybuffer'; + xhr.send(null); + return new Uint8Array(/** @type{!ArrayBuffer} */(xhr.response)); + }; + } + + readAsync = (url, onload, onerror) => { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, true); + xhr.responseType = 'arraybuffer'; + xhr.onload = () => { + if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 + onload(xhr.response); + return; + } + onerror(); + }; + xhr.onerror = onerror; + xhr.send(null); + } + +// end include: web_or_worker_shell_read.js + } + + setWindowTitle = (title) => document.title = title; +} else +{ + throw new Error('environment detection error'); +} + +var out = Module['print'] || console.log.bind(console); +var err = Module['printErr'] || console.error.bind(console); + +// Merge back in the overrides +Object.assign(Module, moduleOverrides); +// Free the object hierarchy contained in the overrides, this lets the GC +// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array. +moduleOverrides = null; +checkIncomingModuleAPI(); + +// Emit code to handle expected values on the Module object. This applies Module.x +// to the proper local x. This has two benefits: first, we only emit it if it is +// expected to arrive, and second, by using a local everywhere else that can be +// minified. + +if (Module['arguments']) arguments_ = Module['arguments'];legacyModuleProp('arguments', 'arguments_'); + +if (Module['thisProgram']) thisProgram = Module['thisProgram'];legacyModuleProp('thisProgram', 'thisProgram'); + +if (Module['quit']) quit_ = Module['quit'];legacyModuleProp('quit', 'quit_'); + +// perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message +// Assertions on removed incoming Module JS APIs. +assert(typeof Module['memoryInitializerPrefixURL'] == 'undefined', 'Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead'); +assert(typeof Module['pthreadMainPrefixURL'] == 'undefined', 'Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead'); +assert(typeof Module['cdInitializerPrefixURL'] == 'undefined', 'Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead'); +assert(typeof Module['filePackagePrefixURL'] == 'undefined', 'Module.filePackagePrefixURL option was removed, use Module.locateFile instead'); +assert(typeof Module['read'] == 'undefined', 'Module.read option was removed (modify read_ in JS)'); +assert(typeof Module['readAsync'] == 'undefined', 'Module.readAsync option was removed (modify readAsync in JS)'); +assert(typeof Module['readBinary'] == 'undefined', 'Module.readBinary option was removed (modify readBinary in JS)'); +assert(typeof Module['setWindowTitle'] == 'undefined', 'Module.setWindowTitle option was removed (modify setWindowTitle in JS)'); +assert(typeof Module['TOTAL_MEMORY'] == 'undefined', 'Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY'); +legacyModuleProp('read', 'read_'); +legacyModuleProp('readAsync', 'readAsync'); +legacyModuleProp('readBinary', 'readBinary'); +legacyModuleProp('setWindowTitle', 'setWindowTitle'); +var IDBFS = 'IDBFS is no longer included by default; build with -lidbfs.js'; +var PROXYFS = 'PROXYFS is no longer included by default; build with -lproxyfs.js'; +var WORKERFS = 'WORKERFS is no longer included by default; build with -lworkerfs.js'; +var NODEFS = 'NODEFS is no longer included by default; build with -lnodefs.js'; + +assert(!ENVIRONMENT_IS_WORKER, "worker environment detected but not enabled at build time. Add 'worker' to `-sENVIRONMENT` to enable."); + +assert(!ENVIRONMENT_IS_NODE, "node environment detected but not enabled at build time. Add 'node' to `-sENVIRONMENT` to enable."); + +assert(!ENVIRONMENT_IS_SHELL, "shell environment detected but not enabled at build time. Add 'shell' to `-sENVIRONMENT` to enable."); + + +// end include: shell.js +// include: preamble.js +// === Preamble library stuff === + +// Documentation for the public APIs defined in this file must be updated in: +// site/source/docs/api_reference/preamble.js.rst +// A prebuilt local version of the documentation is available at: +// site/build/text/docs/api_reference/preamble.js.txt +// You can also build docs locally as HTML or other formats in site/ +// An online HTML version (which may be of a different version of Emscripten) +// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html + +var wasmBinary; +if (Module['wasmBinary']) wasmBinary = Module['wasmBinary'];legacyModuleProp('wasmBinary', 'wasmBinary'); +var noExitRuntime = Module['noExitRuntime'] || true;legacyModuleProp('noExitRuntime', 'noExitRuntime'); + +if (typeof WebAssembly != 'object') { + abort('no native wasm support detected'); +} + +// Wasm globals + +var wasmMemory; + +//======================================== +// Runtime essentials +//======================================== + +// whether we are quitting the application. no code should run after this. +// set in exit() and abort() +var ABORT = false; + +// set by exit() and abort(). Passed to 'onExit' handler. +// NOTE: This is also used as the process return code code in shell environments +// but only when noExitRuntime is false. +var EXITSTATUS; + +/** @type {function(*, string=)} */ +function assert(condition, text) { + if (!condition) { + abort('Assertion failed' + (text ? ': ' + text : '')); + } +} + +// We used to include malloc/free by default in the past. Show a helpful error in +// builds with assertions. + +// Memory management + +var HEAP, +/** @type {!Int8Array} */ + HEAP8, +/** @type {!Uint8Array} */ + HEAPU8, +/** @type {!Int16Array} */ + HEAP16, +/** @type {!Uint16Array} */ + HEAPU16, +/** @type {!Int32Array} */ + HEAP32, +/** @type {!Uint32Array} */ + HEAPU32, +/** @type {!Float32Array} */ + HEAPF32, +/** @type {!Float64Array} */ + HEAPF64; + +function updateMemoryViews() { + var b = wasmMemory.buffer; + Module['HEAP8'] = HEAP8 = new Int8Array(b); + Module['HEAP16'] = HEAP16 = new Int16Array(b); + Module['HEAP32'] = HEAP32 = new Int32Array(b); + Module['HEAPU8'] = HEAPU8 = new Uint8Array(b); + Module['HEAPU16'] = HEAPU16 = new Uint16Array(b); + Module['HEAPU32'] = HEAPU32 = new Uint32Array(b); + Module['HEAPF32'] = HEAPF32 = new Float32Array(b); + Module['HEAPF64'] = HEAPF64 = new Float64Array(b); +} + +assert(!Module['STACK_SIZE'], 'STACK_SIZE can no longer be set at runtime. Use -sSTACK_SIZE at link time') + +assert(typeof Int32Array != 'undefined' && typeof Float64Array !== 'undefined' && Int32Array.prototype.subarray != undefined && Int32Array.prototype.set != undefined, + 'JS engine does not provide full typed array support'); + +// If memory is defined in wasm, the user can't provide it, or set INITIAL_MEMORY +assert(!Module['wasmMemory'], 'Use of `wasmMemory` detected. Use -sIMPORTED_MEMORY to define wasmMemory externally'); +assert(!Module['INITIAL_MEMORY'], 'Detected runtime INITIAL_MEMORY setting. Use -sIMPORTED_MEMORY to define wasmMemory dynamically'); + +// include: runtime_init_table.js +// In regular non-RELOCATABLE mode the table is exported +// from the wasm module and this will be assigned once +// the exports are available. +var wasmTable; + +// end include: runtime_init_table.js +// include: runtime_stack_check.js +// Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode. +function writeStackCookie() { + var max = _emscripten_stack_get_end(); + assert((max & 3) == 0); + // If the stack ends at address zero we write our cookies 4 bytes into the + // stack. This prevents interference with SAFE_HEAP and ASAN which also + // monitor writes to address zero. + if (max == 0) { + max += 4; + } + // The stack grow downwards towards _emscripten_stack_get_end. + // We write cookies to the final two words in the stack and detect if they are + // ever overwritten. + HEAPU32[((max)>>2)] = 0x02135467; + HEAPU32[(((max)+(4))>>2)] = 0x89BACDFE; + // Also test the global address 0 for integrity. + HEAPU32[((0)>>2)] = 1668509029; +} + +function checkStackCookie() { + if (ABORT) return; + var max = _emscripten_stack_get_end(); + // See writeStackCookie(). + if (max == 0) { + max += 4; + } + var cookie1 = HEAPU32[((max)>>2)]; + var cookie2 = HEAPU32[(((max)+(4))>>2)]; + if (cookie1 != 0x02135467 || cookie2 != 0x89BACDFE) { + abort(`Stack overflow! Stack cookie has been overwritten at ${ptrToString(max)}, expected hex dwords 0x89BACDFE and 0x2135467, but received ${ptrToString(cookie2)} ${ptrToString(cookie1)}`); + } + // Also test the global address 0 for integrity. + if (HEAPU32[((0)>>2)] != 0x63736d65 /* 'emsc' */) { + abort('Runtime error: The application has corrupted its heap memory area (address zero)!'); + } +} + +// end include: runtime_stack_check.js +// include: runtime_assertions.js +// Endianness check +(function() { + var h16 = new Int16Array(1); + var h8 = new Int8Array(h16.buffer); + h16[0] = 0x6373; + if (h8[0] !== 0x73 || h8[1] !== 0x63) throw 'Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)'; +})(); + +// end include: runtime_assertions.js +var __ATPRERUN__ = []; // functions called before the runtime is initialized +var __ATINIT__ = []; // functions called during startup +var __ATEXIT__ = []; // functions called during shutdown +var __ATPOSTRUN__ = []; // functions called after the main() is called + +var runtimeInitialized = false; + +var runtimeKeepaliveCounter = 0; + +function keepRuntimeAlive() { + return noExitRuntime || runtimeKeepaliveCounter > 0; +} + +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 initRuntime() { + assert(!runtimeInitialized); + runtimeInitialized = true; + + checkStackCookie(); + + + callRuntimeCallbacks(__ATINIT__); +} + +function postRun() { + checkStackCookie(); + + if (Module['postRun']) { + if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']]; + while (Module['postRun'].length) { + addOnPostRun(Module['postRun'].shift()); + } + } + + callRuntimeCallbacks(__ATPOSTRUN__); +} + +function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); +} + +function addOnInit(cb) { + __ATINIT__.unshift(cb); +} + +function addOnExit(cb) { +} + +function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); +} + +// include: runtime_math.js +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/fround + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32 + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc + +assert(Math.imul, 'This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); +assert(Math.fround, 'This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); +assert(Math.clz32, 'This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); +assert(Math.trunc, 'This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); + +// end include: runtime_math.js +// A counter of dependencies for calling run(). If we need to +// do asynchronous work before running, increment this and +// decrement it. Incrementing must happen in a place like +// Module.preRun (used by emcc to add file preloading). +// Note that you can add dependencies in preRun, even though +// it happens right before run - run will be postponed until +// the dependencies are met. +var runDependencies = 0; +var runDependencyWatcher = null; +var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled +var runDependencyTracking = {}; + +function getUniqueRunDependency(id) { + var orig = id; + while (1) { + if (!runDependencyTracking[id]) return id; + id = orig + Math.random(); + } +} + +function addRunDependency(id) { + runDependencies++; + + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } + + if (id) { + assert(!runDependencyTracking[id]); + runDependencyTracking[id] = 1; + if (runDependencyWatcher === null && typeof setInterval != 'undefined') { + // Check for missing dependencies every few seconds + runDependencyWatcher = setInterval(() => { + if (ABORT) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + return; + } + var shown = false; + for (var dep in runDependencyTracking) { + if (!shown) { + shown = true; + err('still waiting on run dependencies:'); + } + err('dependency: ' + dep); + } + if (shown) { + err('(end of list)'); + } + }, 10000); + } + } else { + err('warning: run dependency added without ID'); + } +} + +function removeRunDependency(id) { + runDependencies--; + + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } + + if (id) { + assert(runDependencyTracking[id]); + delete runDependencyTracking[id]; + } else { + err('warning: run dependency removed without ID'); + } + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); // can add another dependenciesFulfilled + } + } +} + +/** @param {string|number=} what */ +function abort(what) { + if (Module['onAbort']) { + Module['onAbort'](what); + } + + what = 'Aborted(' + what + ')'; + // TODO(sbc): Should we remove printing and leave it up to whoever + // catches the exception? + err(what); + + ABORT = true; + EXITSTATUS = 1; + + // Use a wasm runtime error, because a JS error might be seen as a foreign + // exception, which means we'd run destructors on it. We need the error to + // simply make the program stop. + // FIXME This approach does not work in Wasm EH because it currently does not assume + // all RuntimeErrors are from traps; it decides whether a RuntimeError is from + // a trap or not based on a hidden field within the object. So at the moment + // we don't have a way of throwing a wasm trap from JS. TODO Make a JS API that + // allows this in the wasm spec. + + // Suppress closure compiler warning here. Closure compiler's builtin extern + // defintion for WebAssembly.RuntimeError claims it takes no arguments even + // though it can. + // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure gets fixed. + /** @suppress {checkTypes} */ + var e = new WebAssembly.RuntimeError(what); + + readyPromiseReject(e); + // Throw the error whether or not MODULARIZE is set because abort is used + // in code paths apart from instantiation where an exception is expected + // to be thrown when abort is called. + throw e; +} + +// include: memoryprofiler.js +// end include: memoryprofiler.js +// show errors on likely calls to FS when it was not included +var FS = { + error: function() { + abort('Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -sFORCE_FILESYSTEM'); + }, + init: function() { FS.error() }, + createDataFile: function() { FS.error() }, + createPreloadedFile: function() { FS.error() }, + createLazyFile: function() { FS.error() }, + open: function() { FS.error() }, + mkdev: function() { FS.error() }, + registerDevice: function() { FS.error() }, + analyzePath: function() { FS.error() }, + + ErrnoError: function ErrnoError() { FS.error() }, +}; +Module['FS_createDataFile'] = FS.createDataFile; +Module['FS_createPreloadedFile'] = FS.createPreloadedFile; + +// include: URIUtils.js +// Prefix of data URIs emitted by SINGLE_FILE and related options. +var dataURIPrefix = 'data:application/octet-stream;base64,'; + +// Indicates whether filename is a base64 data URI. +function isDataURI(filename) { + // Prefix of data URIs emitted by SINGLE_FILE and related options. + return filename.startsWith(dataURIPrefix); +} + +// Indicates whether filename is delivered via file protocol (as opposed to http/https) +function isFileURI(filename) { + return filename.startsWith('file://'); +} + +// end include: URIUtils.js +/** @param {boolean=} fixedasm */ +function createExportWrapper(name, fixedasm) { + return function() { + var displayName = name; + var asm = fixedasm; + if (!fixedasm) { + asm = Module['asm']; + } + assert(runtimeInitialized, 'native function `' + displayName + '` called before runtime initialization'); + if (!asm[name]) { + assert(asm[name], 'exported native function `' + displayName + '` not found'); + } + return asm[name].apply(null, arguments); + }; +} + +// include: runtime_exceptions.js +// end include: runtime_exceptions.js +var wasmBinaryFile; + wasmBinaryFile = 'bullet.debug.wasm.wasm'; + if (!isDataURI(wasmBinaryFile)) { + wasmBinaryFile = locateFile(wasmBinaryFile); + } + +function getBinary(file) { + try { + if (file == wasmBinaryFile && wasmBinary) { + return new Uint8Array(wasmBinary); + } + if (readBinary) { + return readBinary(file); + } + throw "both async and sync fetching of the wasm failed"; + } + catch (err) { + abort(err); + } +} + +function getBinaryPromise(binaryFile) { + // If we don't have the binary yet, try to load it asynchronously. + // Fetch has some additional restrictions over XHR, like it can't be used on a file:// url. + // See https://github.com/github/fetch/pull/92#issuecomment-140665932 + // Cordova or Electron apps are typically loaded from a file:// url. + // So use fetch if it is available and the url is not a file, otherwise fall back to XHR. + if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) { + if (typeof fetch == 'function' + ) { + return fetch(binaryFile, { credentials: 'same-origin' }).then((response) => { + if (!response['ok']) { + throw "failed to load wasm binary file at '" + binaryFile + "'"; + } + return response['arrayBuffer'](); + }).catch(() => getBinary(binaryFile)); + } + } + + // Otherwise, getBinary should be able to get it synchronously + return Promise.resolve().then(() => getBinary(binaryFile)); +} + +function instantiateArrayBuffer(binaryFile, imports, receiver) { + return getBinaryPromise(binaryFile).then((binary) => { + return WebAssembly.instantiate(binary, imports); + }).then((instance) => { + return instance; + }).then(receiver, (reason) => { + err('failed to asynchronously prepare wasm: ' + reason); + + // Warn on some common problems. + if (isFileURI(wasmBinaryFile)) { + err('warning: Loading from a file URI (' + wasmBinaryFile + ') is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing'); + } + abort(reason); + }); +} + +function instantiateAsync(binary, binaryFile, imports, callback) { + if (!binary && + typeof WebAssembly.instantiateStreaming == 'function' && + !isDataURI(binaryFile) && + typeof fetch == 'function') { + return fetch(binaryFile, { credentials: 'same-origin' }).then((response) => { + // Suppress closure warning here since the upstream definition for + // instantiateStreaming only allows Promise rather than + // an actual Response. + // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure is fixed. + /** @suppress {checkTypes} */ + var result = WebAssembly.instantiateStreaming(response, imports); + + return result.then( + callback, + function(reason) { + // We expect the most common failure cause to be a bad MIME type for the binary, + // in which case falling back to ArrayBuffer instantiation should work. + err('wasm streaming compile failed: ' + reason); + err('falling back to ArrayBuffer instantiation'); + return instantiateArrayBuffer(binaryFile, imports, callback); + }); + }); + } else { + return instantiateArrayBuffer(binaryFile, imports, callback); + } +} + +// Create the wasm instance. +// Receives the wasm imports, returns the exports. +function createWasm() { + // prepare imports + var info = { + 'env': wasmImports, + 'wasi_snapshot_preview1': wasmImports, + }; + // Load the wasm module and create an instance of using native support in the JS engine. + // handle a generated wasm instance, receiving its exports and + // performing other necessary setup + /** @param {WebAssembly.Module=} module*/ + function receiveInstance(instance, module) { + var exports = instance.exports; + + Module['asm'] = exports; + + wasmMemory = Module['asm']['memory']; + assert(wasmMemory, "memory not found in wasm exports"); + // This assertion doesn't hold when emscripten is run in --post-link + // mode. + // TODO(sbc): Read INITIAL_MEMORY out of the wasm file in post-link mode. + //assert(wasmMemory.buffer.byteLength === 16777216); + updateMemoryViews(); + + wasmTable = Module['asm']['__indirect_function_table']; + assert(wasmTable, "table not found in wasm exports"); + + addOnInit(Module['asm']['__wasm_call_ctors']); + + removeRunDependency('wasm-instantiate'); + return exports; + } + // wait for the pthread pool (if any) + addRunDependency('wasm-instantiate'); + + // Prefer streaming instantiation if available. + // Async compilation can be confusing when an error on the page overwrites Module + // (for example, if the order of elements is wrong, and the one defining Module is + // later), so we save Module and check it later. + var trueModule = Module; + function receiveInstantiationResult(result) { + // 'result' is a ResultObject object which has both the module and instance. + // receiveInstance() will swap in the exports (to Module.asm) so they can be called + assert(Module === trueModule, 'the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?'); + trueModule = null; + // TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193, the above line no longer optimizes out down to the following line. + // When the regression is fixed, can restore the above PTHREADS-enabled path. + receiveInstance(result['instance']); + } + + // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback + // to manually instantiate the Wasm module themselves. This allows pages to + // run the instantiation parallel to any other async startup actions they are + // performing. + // Also pthreads and wasm workers initialize the wasm instance through this + // path. + if (Module['instantiateWasm']) { + + try { + return Module['instantiateWasm'](info, receiveInstance); + } catch(e) { + err('Module.instantiateWasm callback failed with error: ' + e); + // If instantiation fails, reject the module ready promise. + readyPromiseReject(e); + } + } + + // If instantiation fails, reject the module ready promise. + instantiateAsync(wasmBinary, wasmBinaryFile, info, receiveInstantiationResult).catch(readyPromiseReject); + return {}; // no exports yet; we'll fill them in later +} + +// Globals used by JS i64 conversions (see makeSetValue) +var tempDouble; +var tempI64; + +// include: runtime_debug.js +function legacyModuleProp(prop, newName) { + if (!Object.getOwnPropertyDescriptor(Module, prop)) { + Object.defineProperty(Module, prop, { + configurable: true, + get: function() { + abort('Module.' + prop + ' has been replaced with plain ' + newName + ' (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)'); + } + }); + } +} + +function ignoredModuleProp(prop) { + if (Object.getOwnPropertyDescriptor(Module, prop)) { + abort('`Module.' + prop + '` was supplied but `' + prop + '` not included in INCOMING_MODULE_JS_API'); + } +} + +// forcing the filesystem exports a few things by default +function isExportedByForceFilesystem(name) { + return name === 'FS_createPath' || + name === 'FS_createDataFile' || + name === 'FS_createPreloadedFile' || + name === 'FS_unlink' || + name === 'addRunDependency' || + // The old FS has some functionality that WasmFS lacks. + name === 'FS_createLazyFile' || + name === 'FS_createDevice' || + name === 'removeRunDependency'; +} + +function missingGlobal(sym, msg) { + if (typeof globalThis !== 'undefined') { + Object.defineProperty(globalThis, sym, { + configurable: true, + get: function() { + warnOnce('`' + sym + '` is not longer defined by emscripten. ' + msg); + return undefined; + } + }); + } +} + +missingGlobal('buffer', 'Please use HEAP8.buffer or wasmMemory.buffer'); + +function missingLibrarySymbol(sym) { + if (typeof globalThis !== 'undefined' && !Object.getOwnPropertyDescriptor(globalThis, sym)) { + Object.defineProperty(globalThis, sym, { + configurable: true, + get: function() { + // Can't `abort()` here because it would break code that does runtime + // checks. e.g. `if (typeof SDL === 'undefined')`. + var msg = '`' + sym + '` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line'; + // DEFAULT_LIBRARY_FUNCS_TO_INCLUDE requires the name as it appears in + // library.js, which means $name for a JS name with no prefix, or name + // for a JS name like _name. + var librarySymbol = sym; + if (!librarySymbol.startsWith('_')) { + librarySymbol = '$' + sym; + } + msg += " (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE=" + librarySymbol + ")"; + if (isExportedByForceFilesystem(sym)) { + msg += '. Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you'; + } + warnOnce(msg); + return undefined; + } + }); + } + // Any symbol that is not included from the JS libary is also (by definition) + // not exported on the Module object. + unexportedRuntimeSymbol(sym); +} + +function unexportedRuntimeSymbol(sym) { + if (!Object.getOwnPropertyDescriptor(Module, sym)) { + Object.defineProperty(Module, sym, { + configurable: true, + get: function() { + var msg = "'" + sym + "' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)"; + if (isExportedByForceFilesystem(sym)) { + msg += '. Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you'; + } + abort(msg); + } + }); + } +} + +// Used by XXXXX_DEBUG settings to output debug messages. +function dbg(text) { + // TODO(sbc): Make this configurable somehow. Its not always convenient for + // logging to show up as warnings. + console.warn.apply(console, arguments); +} + +// end include: runtime_debug.js +// === Body === + + +// end include: preamble.js + + /** @constructor */ + function ExitStatus(status) { + this.name = 'ExitStatus'; + this.message = `Program terminated with exit(${status})`; + this.status = status; + } + + function callRuntimeCallbacks(callbacks) { + while (callbacks.length > 0) { + // Pass the module as the first argument. + callbacks.shift()(Module); + } + } + + + /** + * @param {number} ptr + * @param {string} type + */ + function getValue(ptr, type = 'i8') { + if (type.endsWith('*')) type = '*'; + switch (type) { + case 'i1': return HEAP8[((ptr)>>0)]; + case 'i8': return HEAP8[((ptr)>>0)]; + case 'i16': return HEAP16[((ptr)>>1)]; + case 'i32': return HEAP32[((ptr)>>2)]; + case 'i64': abort('to do getValue(i64) use WASM_BIGINT'); + case 'float': return HEAPF32[((ptr)>>2)]; + case 'double': return HEAPF64[((ptr)>>3)]; + case '*': return HEAPU32[((ptr)>>2)]; + default: abort(`invalid type for getValue: ${type}`); + } + } + + function ptrToString(ptr) { + assert(typeof ptr === 'number'); + return '0x' + ptr.toString(16).padStart(8, '0'); + } + + + /** + * @param {number} ptr + * @param {number} value + * @param {string} type + */ + function setValue(ptr, value, type = 'i8') { + if (type.endsWith('*')) type = '*'; + switch (type) { + case 'i1': HEAP8[((ptr)>>0)] = value; break; + case 'i8': HEAP8[((ptr)>>0)] = value; break; + case 'i16': HEAP16[((ptr)>>1)] = value; break; + case 'i32': HEAP32[((ptr)>>2)] = value; break; + case 'i64': abort('to do setValue(i64) use WASM_BIGINT'); + case 'float': HEAPF32[((ptr)>>2)] = value; break; + case 'double': HEAPF64[((ptr)>>3)] = value; break; + case '*': HEAPU32[((ptr)>>2)] = value; break; + default: abort(`invalid type for setValue: ${type}`); + } + } + + function warnOnce(text) { + if (!warnOnce.shown) warnOnce.shown = {}; + if (!warnOnce.shown[text]) { + warnOnce.shown[text] = 1; + err(text); + } + } + + var UTF8Decoder = typeof TextDecoder != 'undefined' ? new TextDecoder('utf8') : undefined; + + /** + * Given a pointer 'idx' to a null-terminated UTF8-encoded string in the given + * array that contains uint8 values, returns a copy of that string as a + * Javascript String object. + * heapOrArray is either a regular array, or a JavaScript typed array view. + * @param {number} idx + * @param {number=} maxBytesToRead + * @return {string} + */ + function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) { + var endIdx = idx + maxBytesToRead; + var endPtr = idx; + // TextDecoder needs to know the byte length in advance, it doesn't stop on + // null terminator by itself. Also, use the length info to avoid running tiny + // strings through TextDecoder, since .subarray() allocates garbage. + // (As a tiny code save trick, compare endPtr against endIdx using a negation, + // so that undefined means Infinity) + while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr; + + if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { + return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr)); + } + var str = ''; + // If building with TextDecoder, we have already computed the string length + // above, so test loop end condition against that + while (idx < endPtr) { + // For UTF8 byte structure, see: + // http://en.wikipedia.org/wiki/UTF-8#Description + // https://www.ietf.org/rfc/rfc2279.txt + // https://tools.ietf.org/html/rfc3629 + var u0 = heapOrArray[idx++]; + if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; } + var u1 = heapOrArray[idx++] & 63; + if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } + var u2 = heapOrArray[idx++] & 63; + if ((u0 & 0xF0) == 0xE0) { + u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; + } else { + if ((u0 & 0xF8) != 0xF0) warnOnce('Invalid UTF-8 leading byte ' + ptrToString(u0) + ' encountered when deserializing a UTF-8 string in wasm memory to a JS string!'); + u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heapOrArray[idx++] & 63); + } + + if (u0 < 0x10000) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 0x10000; + str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); + } + } + return str; + } + + + /** + * Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the + * emscripten HEAP, returns a copy of that string as a Javascript String object. + * + * @param {number} ptr + * @param {number=} maxBytesToRead - An optional length that specifies the + * maximum number of bytes to read. You can omit this parameter to scan the + * string until the first 0 byte. If maxBytesToRead is passed, and the string + * at [ptr, ptr+maxBytesToReadr[ contains a null byte in the middle, then the + * string will cut short at that byte index (i.e. maxBytesToRead will not + * produce a string of exact length [ptr, ptr+maxBytesToRead[) N.B. mixing + * frequent uses of UTF8ToString() with and without maxBytesToRead may throw + * JS JIT optimizations off, so it is worth to consider consistently using one + * @return {string} + */ + function UTF8ToString(ptr, maxBytesToRead) { + assert(typeof ptr == 'number'); + return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ''; + } + function ___assert_fail(condition, filename, line, func) { + abort(`Assertion failed: ${UTF8ToString(condition)}, at: ` + [filename ? UTF8ToString(filename) : 'unknown filename', line, func ? UTF8ToString(func) : 'unknown function']); + } + + var char_0 = 48; + + var char_9 = 57; + function makeLegalFunctionName(name) { + if (undefined === name) { + return '_unknown'; + } + name = name.replace(/[^a-zA-Z0-9_]/g, '$'); + var f = name.charCodeAt(0); + if (f >= char_0 && f <= char_9) { + return `_${name}`; + } + return name; + } + function createNamedFunction(name, body) { + name = makeLegalFunctionName(name); + // Use an abject with a computed property name to create a new function with + // a name specified at runtime, but without using `new Function` or `eval`. + return { + [name]: function() { + return body.apply(this, arguments); + } + }[name]; + } + + /** @constructor */ + function HandleAllocator() { + // Reserve slot 0 so that 0 is always an invalid handle + this.allocated = [undefined]; + this.freelist = []; + this.get = function(id) { + assert(this.allocated[id] !== undefined, `invalid handle: ${id}`); + return this.allocated[id]; + }; + this.has = function(id) { + return this.allocated[id] !== undefined; + }; + this.allocate = function(handle) { + var id = this.freelist.pop() || this.allocated.length; + this.allocated[id] = handle; + return id; + }; + this.free = function(id) { + assert(this.allocated[id] !== undefined); + // Set the slot to `undefined` rather than using `delete` here since + // apparently arrays with holes in them can be less efficient. + this.allocated[id] = undefined; + this.freelist.push(id); + }; + } + var emval_handles = new HandleAllocator();; + + function extendError(baseErrorType, errorName) { + var errorClass = createNamedFunction(errorName, function(message) { + this.name = errorName; + this.message = message; + + var stack = (new Error(message)).stack; + if (stack !== undefined) { + this.stack = this.toString() + '\n' + + stack.replace(/^Error(:[^\n]*)?\n/, ''); + } + }); + errorClass.prototype = Object.create(baseErrorType.prototype); + errorClass.prototype.constructor = errorClass; + errorClass.prototype.toString = function() { + if (this.message === undefined) { + return this.name; + } else { + return `${this.name}: ${this.message}`; + } + }; + + return errorClass; + } + var BindingError = undefined; + function throwBindingError(message) { + throw new BindingError(message); + } + + function count_emval_handles() { + var count = 0; + for (var i = emval_handles.reserved; i < emval_handles.allocated.length; ++i) { + if (emval_handles.allocated[i] !== undefined) { + ++count; + } + } + return count; + } + + function init_emval() { + // reserve some special values. These never get de-allocated. + // The HandleAllocator takes care of reserving zero. + emval_handles.allocated.push( + {value: undefined}, + {value: null}, + {value: true}, + {value: false}, + ); + emval_handles.reserved = emval_handles.allocated.length + Module['count_emval_handles'] = count_emval_handles; + } + var Emval = {toValue:(handle) => { + if (!handle) { + throwBindingError('Cannot use deleted val. handle = ' + handle); + } + return emval_handles.get(handle).value; + },toHandle:(value) => { + switch (value) { + case undefined: return 1; + case null: return 2; + case true: return 3; + case false: return 4; + default:{ + return emval_handles.allocate({refcount: 1, value: value}); + } + } + }}; + + var PureVirtualError = undefined; + + function embind_init_charCodes() { + var codes = new Array(256); + for (var i = 0; i < 256; ++i) { + codes[i] = String.fromCharCode(i); + } + embind_charCodes = codes; + } + var embind_charCodes = undefined; + function readLatin1String(ptr) { + var ret = ""; + var c = ptr; + while (HEAPU8[c]) { + ret += embind_charCodes[HEAPU8[c++]]; + } + return ret; + } + + function getInheritedInstanceCount() { + return Object.keys(registeredInstances).length; + } + + function getLiveInheritedInstances() { + var rv = []; + for (var k in registeredInstances) { + if (registeredInstances.hasOwnProperty(k)) { + rv.push(registeredInstances[k]); + } + } + return rv; + } + + var deletionQueue = []; + function flushPendingDeletes() { + while (deletionQueue.length) { + var obj = deletionQueue.pop(); + obj.$$.deleteScheduled = false; + obj['delete'](); + } + } + + var delayFunction = undefined; + + + function setDelayFunction(fn) { + delayFunction = fn; + if (deletionQueue.length && delayFunction) { + delayFunction(flushPendingDeletes); + } + } + function init_embind() { + Module['getInheritedInstanceCount'] = getInheritedInstanceCount; + Module['getLiveInheritedInstances'] = getLiveInheritedInstances; + Module['flushPendingDeletes'] = flushPendingDeletes; + Module['setDelayFunction'] = setDelayFunction; + } + var registeredInstances = {}; + + function getBasestPointer(class_, ptr) { + if (ptr === undefined) { + throwBindingError('ptr should not be undefined'); + } + while (class_.baseClass) { + ptr = class_.upcast(ptr); + class_ = class_.baseClass; + } + return ptr; + } + + function registerInheritedInstance(class_, ptr, instance) { + ptr = getBasestPointer(class_, ptr); + if (registeredInstances.hasOwnProperty(ptr)) { + throwBindingError(`Tried to register registered instance: ${ptr}`); + } else { + registeredInstances[ptr] = instance; + } + } + + var registeredTypes = {}; + + + + function getTypeName(type) { + var ptr = ___getTypeName(type); + var rv = readLatin1String(ptr); + _free(ptr); + return rv; + } + + function requireRegisteredType(rawType, humanName) { + var impl = registeredTypes[rawType]; + if (undefined === impl) { + throwBindingError(humanName + " has unknown type " + getTypeName(rawType)); + } + return impl; + } + + + + + function unregisterInheritedInstance(class_, ptr) { + ptr = getBasestPointer(class_, ptr); + if (registeredInstances.hasOwnProperty(ptr)) { + delete registeredInstances[ptr]; + } else { + throwBindingError(`Tried to unregister unregistered instance: ${ptr}`); + } + } + + function detachFinalizer(handle) {} + + var finalizationRegistry = false; + + + function runDestructor($$) { + if ($$.smartPtr) { + $$.smartPtrType.rawDestructor($$.smartPtr); + } else { + $$.ptrType.registeredClass.rawDestructor($$.ptr); + } + } + function releaseClassHandle($$) { + $$.count.value -= 1; + var toDelete = 0 === $$.count.value; + if (toDelete) { + runDestructor($$); + } + } + + function downcastPointer(ptr, ptrClass, desiredClass) { + if (ptrClass === desiredClass) { + return ptr; + } + if (undefined === desiredClass.baseClass) { + return null; // no conversion + } + + var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass); + if (rv === null) { + return null; + } + return desiredClass.downcast(rv); + } + + var registeredPointers = {}; + + + function getInheritedInstance(class_, ptr) { + ptr = getBasestPointer(class_, ptr); + return registeredInstances[ptr]; + } + + var InternalError = undefined; + function throwInternalError(message) { + throw new InternalError(message); + } + + function makeClassHandle(prototype, record) { + if (!record.ptrType || !record.ptr) { + throwInternalError('makeClassHandle requires ptr and ptrType'); + } + var hasSmartPtrType = !!record.smartPtrType; + var hasSmartPtr = !!record.smartPtr; + if (hasSmartPtrType !== hasSmartPtr) { + throwInternalError('Both smartPtrType and smartPtr must be specified'); + } + record.count = { value: 1 }; + return attachFinalizer(Object.create(prototype, { + $$: { + value: record, + }, + })); + } + function RegisteredPointer_fromWireType(ptr) { + // ptr is a raw pointer (or a raw smartpointer) + + // rawPointer is a maybe-null raw pointer + var rawPointer = this.getPointee(ptr); + if (!rawPointer) { + this.destructor(ptr); + return null; + } + + var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer); + if (undefined !== registeredInstance) { + // JS object has been neutered, time to repopulate it + if (0 === registeredInstance.$$.count.value) { + registeredInstance.$$.ptr = rawPointer; + registeredInstance.$$.smartPtr = ptr; + return registeredInstance['clone'](); + } else { + // else, just increment reference count on existing object + // it already has a reference to the smart pointer + var rv = registeredInstance['clone'](); + this.destructor(ptr); + return rv; + } + } + + function makeDefaultHandle() { + if (this.isSmartPointer) { + return makeClassHandle(this.registeredClass.instancePrototype, { + ptrType: this.pointeeType, + ptr: rawPointer, + smartPtrType: this, + smartPtr: ptr, + }); + } else { + return makeClassHandle(this.registeredClass.instancePrototype, { + ptrType: this, + ptr: ptr, + }); + } + } + + var actualType = this.registeredClass.getActualType(rawPointer); + var registeredPointerRecord = registeredPointers[actualType]; + if (!registeredPointerRecord) { + return makeDefaultHandle.call(this); + } + + var toType; + if (this.isConst) { + toType = registeredPointerRecord.constPointerType; + } else { + toType = registeredPointerRecord.pointerType; + } + var dp = downcastPointer( + rawPointer, + this.registeredClass, + toType.registeredClass); + if (dp === null) { + return makeDefaultHandle.call(this); + } + if (this.isSmartPointer) { + return makeClassHandle(toType.registeredClass.instancePrototype, { + ptrType: toType, + ptr: dp, + smartPtrType: this, + smartPtr: ptr, + }); + } else { + return makeClassHandle(toType.registeredClass.instancePrototype, { + ptrType: toType, + ptr: dp, + }); + } + } + function attachFinalizer(handle) { + if ('undefined' === typeof FinalizationRegistry) { + attachFinalizer = (handle) => handle; + return handle; + } + // If the running environment has a FinalizationRegistry (see + // https://github.com/tc39/proposal-weakrefs), then attach finalizers + // for class handles. We check for the presence of FinalizationRegistry + // at run-time, not build-time. + finalizationRegistry = new FinalizationRegistry((info) => { + console.warn(info.leakWarning.stack.replace(/^Error: /, '')); + releaseClassHandle(info.$$); + }); + attachFinalizer = (handle) => { + var $$ = handle.$$; + var hasSmartPtr = !!$$.smartPtr; + if (hasSmartPtr) { + // We should not call the destructor on raw pointers in case other code expects the pointee to live + var info = { $$: $$ }; + // Create a warning as an Error instance in advance so that we can store + // the current stacktrace and point to it when / if a leak is detected. + // This is more useful than the empty stacktrace of `FinalizationRegistry` + // callback. + var cls = $$.ptrType.registeredClass; + info.leakWarning = new Error(`Embind found a leaked C++ instance ${cls.name} <${ptrToString($$.ptr)}>.\n` + + "We'll free it automatically in this case, but this functionality is not reliable across various environments.\n" + + "Make sure to invoke .delete() manually once you're done with the instance instead.\n" + + "Originally allocated"); // `.stack` will add "at ..." after this sentence + if ('captureStackTrace' in Error) { + Error.captureStackTrace(info.leakWarning, RegisteredPointer_fromWireType); + } + finalizationRegistry.register(handle, info, handle); + } + return handle; + }; + detachFinalizer = (handle) => finalizationRegistry.unregister(handle); + return attachFinalizer(handle); + } + function __embind_create_inheriting_constructor(constructorName, wrapperType, properties) { + constructorName = readLatin1String(constructorName); + wrapperType = requireRegisteredType(wrapperType, 'wrapper'); + properties = Emval.toValue(properties); + + var arraySlice = [].slice; + + var registeredClass = wrapperType.registeredClass; + var wrapperPrototype = registeredClass.instancePrototype; + var baseClass = registeredClass.baseClass; + var baseClassPrototype = baseClass.instancePrototype; + var baseConstructor = registeredClass.baseClass.constructor; + var ctor = createNamedFunction(constructorName, function() { + registeredClass.baseClass.pureVirtualFunctions.forEach(function(name) { + if (this[name] === baseClassPrototype[name]) { + throw new PureVirtualError(`Pure virtual function ${name} must be implemented in JavaScript`); + } + }.bind(this)); + + Object.defineProperty(this, '__parent', { + value: wrapperPrototype + }); + this["__construct"].apply(this, arraySlice.call(arguments)); + }); + + // It's a little nasty that we're modifying the wrapper prototype here. + + wrapperPrototype["__construct"] = function __construct() { + if (this === wrapperPrototype) { + throwBindingError("Pass correct 'this' to __construct"); + } + + var inner = baseConstructor["implement"].apply( + undefined, + [this].concat(arraySlice.call(arguments))); + detachFinalizer(inner); + var $$ = inner.$$; + inner["notifyOnDestruction"](); + $$.preservePointerOnDelete = true; + Object.defineProperties(this, { $$: { + value: $$ + }}); + attachFinalizer(this); + registerInheritedInstance(registeredClass, $$.ptr, this); + }; + + wrapperPrototype["__destruct"] = function __destruct() { + if (this === wrapperPrototype) { + throwBindingError("Pass correct 'this' to __destruct"); + } + + detachFinalizer(this); + unregisterInheritedInstance(registeredClass, this.$$.ptr); + }; + + ctor.prototype = Object.create(wrapperPrototype); + for (var p in properties) { + ctor.prototype[p] = properties[p]; + } + return Emval.toHandle(ctor); + } + + function __embind_register_bigint(primitiveType, name, size, minRange, maxRange) {} + + function getShiftFromSize(size) { + switch (size) { + case 1: return 0; + case 2: return 1; + case 4: return 2; + case 8: return 3; + default: + throw new TypeError(`Unknown type size: ${size}`); + } + } + + + var awaitingDependencies = {}; + + + var typeDependencies = {}; + + + + + + function whenDependentTypesAreResolved(myTypes, dependentTypes, getTypeConverters) { + myTypes.forEach(function(type) { + typeDependencies[type] = dependentTypes; + }); + + function onComplete(typeConverters) { + var myTypeConverters = getTypeConverters(typeConverters); + if (myTypeConverters.length !== myTypes.length) { + throwInternalError('Mismatched type converter count'); + } + for (var i = 0; i < myTypes.length; ++i) { + registerType(myTypes[i], myTypeConverters[i]); + } + } + + var typeConverters = new Array(dependentTypes.length); + var unregisteredTypes = []; + var registered = 0; + dependentTypes.forEach((dt, i) => { + if (registeredTypes.hasOwnProperty(dt)) { + typeConverters[i] = registeredTypes[dt]; + } else { + unregisteredTypes.push(dt); + if (!awaitingDependencies.hasOwnProperty(dt)) { + awaitingDependencies[dt] = []; + } + awaitingDependencies[dt].push(() => { + typeConverters[i] = registeredTypes[dt]; + ++registered; + if (registered === unregisteredTypes.length) { + onComplete(typeConverters); + } + }); + } + }); + if (0 === unregisteredTypes.length) { + onComplete(typeConverters); + } + } + /** @param {Object=} options */ + function registerType(rawType, registeredInstance, options = {}) { + if (!('argPackAdvance' in registeredInstance)) { + throw new TypeError('registerType registeredInstance requires argPackAdvance'); + } + + var name = registeredInstance.name; + if (!rawType) { + throwBindingError(`type "${name}" must have a positive integer typeid pointer`); + } + if (registeredTypes.hasOwnProperty(rawType)) { + if (options.ignoreDuplicateRegistrations) { + return; + } else { + throwBindingError(`Cannot register type '${name}' twice`); + } + } + + registeredTypes[rawType] = registeredInstance; + delete typeDependencies[rawType]; + + if (awaitingDependencies.hasOwnProperty(rawType)) { + var callbacks = awaitingDependencies[rawType]; + delete awaitingDependencies[rawType]; + callbacks.forEach((cb) => cb()); + } + } + function __embind_register_bool(rawType, name, size, trueValue, falseValue) { + var shift = getShiftFromSize(size); + + name = readLatin1String(name); + registerType(rawType, { + name: name, + 'fromWireType': function(wt) { + // ambiguous emscripten ABI: sometimes return values are + // true or false, and sometimes integers (0 or 1) + return !!wt; + }, + 'toWireType': function(destructors, o) { + return o ? trueValue : falseValue; + }, + 'argPackAdvance': 8, + 'readValueFromPointer': function(pointer) { + // TODO: if heap is fixed (like in asm.js) this could be executed outside + var heap; + if (size === 1) { + heap = HEAP8; + } else if (size === 2) { + heap = HEAP16; + } else if (size === 4) { + heap = HEAP32; + } else { + throw new TypeError("Unknown boolean type size: " + name); + } + return this['fromWireType'](heap[pointer >> shift]); + }, + destructorFunction: null, // This type does not need a destructor + }); + } + + + function ClassHandle_isAliasOf(other) { + if (!(this instanceof ClassHandle)) { + return false; + } + if (!(other instanceof ClassHandle)) { + return false; + } + + var leftClass = this.$$.ptrType.registeredClass; + var left = this.$$.ptr; + var rightClass = other.$$.ptrType.registeredClass; + var right = other.$$.ptr; + + while (leftClass.baseClass) { + left = leftClass.upcast(left); + leftClass = leftClass.baseClass; + } + + while (rightClass.baseClass) { + right = rightClass.upcast(right); + rightClass = rightClass.baseClass; + } + + return leftClass === rightClass && left === right; + } + + function shallowCopyInternalPointer(o) { + return { + count: o.count, + deleteScheduled: o.deleteScheduled, + preservePointerOnDelete: o.preservePointerOnDelete, + ptr: o.ptr, + ptrType: o.ptrType, + smartPtr: o.smartPtr, + smartPtrType: o.smartPtrType, + }; + } + + function throwInstanceAlreadyDeleted(obj) { + function getInstanceTypeName(handle) { + return handle.$$.ptrType.registeredClass.name; + } + throwBindingError(getInstanceTypeName(obj) + ' instance already deleted'); + } + + function ClassHandle_clone() { + if (!this.$$.ptr) { + throwInstanceAlreadyDeleted(this); + } + + if (this.$$.preservePointerOnDelete) { + this.$$.count.value += 1; + return this; + } else { + var clone = attachFinalizer(Object.create(Object.getPrototypeOf(this), { + $$: { + value: shallowCopyInternalPointer(this.$$), + } + })); + + clone.$$.count.value += 1; + clone.$$.deleteScheduled = false; + return clone; + } + } + + + + + function ClassHandle_delete() { + if (!this.$$.ptr) { + throwInstanceAlreadyDeleted(this); + } + + if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { + throwBindingError('Object already scheduled for deletion'); + } + + detachFinalizer(this); + releaseClassHandle(this.$$); + + if (!this.$$.preservePointerOnDelete) { + this.$$.smartPtr = undefined; + this.$$.ptr = undefined; + } + } + + function ClassHandle_isDeleted() { + return !this.$$.ptr; + } + + + + function ClassHandle_deleteLater() { + if (!this.$$.ptr) { + throwInstanceAlreadyDeleted(this); + } + if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { + throwBindingError('Object already scheduled for deletion'); + } + deletionQueue.push(this); + if (deletionQueue.length === 1 && delayFunction) { + delayFunction(flushPendingDeletes); + } + this.$$.deleteScheduled = true; + return this; + } + function init_ClassHandle() { + ClassHandle.prototype['isAliasOf'] = ClassHandle_isAliasOf; + ClassHandle.prototype['clone'] = ClassHandle_clone; + ClassHandle.prototype['delete'] = ClassHandle_delete; + ClassHandle.prototype['isDeleted'] = ClassHandle_isDeleted; + ClassHandle.prototype['deleteLater'] = ClassHandle_deleteLater; + } + function ClassHandle() { + } + + + + function ensureOverloadTable(proto, methodName, humanName) { + if (undefined === proto[methodName].overloadTable) { + var prevFunc = proto[methodName]; + // Inject an overload resolver function that routes to the appropriate overload based on the number of arguments. + proto[methodName] = function() { + // TODO This check can be removed in -O3 level "unsafe" optimizations. + if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) { + throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${arguments.length}) - expects one of (${proto[methodName].overloadTable})!`); + } + return proto[methodName].overloadTable[arguments.length].apply(this, arguments); + }; + // Move the previous function into the overload table. + proto[methodName].overloadTable = []; + proto[methodName].overloadTable[prevFunc.argCount] = prevFunc; + } + } + + /** @param {number=} numArguments */ + function exposePublicSymbol(name, value, numArguments) { + if (Module.hasOwnProperty(name)) { + if (undefined === numArguments || (undefined !== Module[name].overloadTable && undefined !== Module[name].overloadTable[numArguments])) { + throwBindingError(`Cannot register public name '${name}' twice`); + } + + // We are exposing a function with the same name as an existing function. Create an overload table and a function selector + // that routes between the two. + ensureOverloadTable(Module, name, name); + if (Module.hasOwnProperty(numArguments)) { + throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`); + } + // Add the new function into the overload table. + Module[name].overloadTable[numArguments] = value; + } + else { + Module[name] = value; + if (undefined !== numArguments) { + Module[name].numArguments = numArguments; + } + } + } + + + + /** @constructor */ + function RegisteredClass(name, + constructor, + instancePrototype, + rawDestructor, + baseClass, + getActualType, + upcast, + downcast) { + this.name = name; + this.constructor = constructor; + this.instancePrototype = instancePrototype; + this.rawDestructor = rawDestructor; + this.baseClass = baseClass; + this.getActualType = getActualType; + this.upcast = upcast; + this.downcast = downcast; + this.pureVirtualFunctions = []; + } + + + function upcastPointer(ptr, ptrClass, desiredClass) { + while (ptrClass !== desiredClass) { + if (!ptrClass.upcast) { + throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`); + } + ptr = ptrClass.upcast(ptr); + ptrClass = ptrClass.baseClass; + } + return ptr; + } + function constNoSmartPtrRawPointerToWireType(destructors, handle) { + if (handle === null) { + if (this.isReference) { + throwBindingError(`null is not a valid ${this.name}`); + } + return 0; + } + + if (!handle.$$) { + throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`); + } + if (!handle.$$.ptr) { + throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`); + } + var handleClass = handle.$$.ptrType.registeredClass; + var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); + return ptr; + } + + + function genericPointerToWireType(destructors, handle) { + var ptr; + if (handle === null) { + if (this.isReference) { + throwBindingError(`null is not a valid ${this.name}`); + } + + if (this.isSmartPointer) { + ptr = this.rawConstructor(); + if (destructors !== null) { + destructors.push(this.rawDestructor, ptr); + } + return ptr; + } else { + return 0; + } + } + + if (!handle.$$) { + throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`); + } + if (!handle.$$.ptr) { + throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`); + } + if (!this.isConst && handle.$$.ptrType.isConst) { + throwBindingError(`Cannot convert argument of type ${(handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name)} to parameter type ${this.name}`); + } + var handleClass = handle.$$.ptrType.registeredClass; + ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); + + if (this.isSmartPointer) { + // TODO: this is not strictly true + // We could support BY_EMVAL conversions from raw pointers to smart pointers + // because the smart pointer can hold a reference to the handle + if (undefined === handle.$$.smartPtr) { + throwBindingError('Passing raw pointer to smart pointer is illegal'); + } + + switch (this.sharingPolicy) { + case 0: // NONE + // no upcasting + if (handle.$$.smartPtrType === this) { + ptr = handle.$$.smartPtr; + } else { + throwBindingError(`Cannot convert argument of type ${(handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name)} to parameter type ${this.name}`); + } + break; + + case 1: // INTRUSIVE + ptr = handle.$$.smartPtr; + break; + + case 2: // BY_EMVAL + if (handle.$$.smartPtrType === this) { + ptr = handle.$$.smartPtr; + } else { + var clonedHandle = handle['clone'](); + ptr = this.rawShare( + ptr, + Emval.toHandle(function() { + clonedHandle['delete'](); + }) + ); + if (destructors !== null) { + destructors.push(this.rawDestructor, ptr); + } + } + break; + + default: + throwBindingError('Unsupporting sharing policy'); + } + } + return ptr; + } + + + function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) { + if (handle === null) { + if (this.isReference) { + throwBindingError(`null is not a valid ${this.name}`); + } + return 0; + } + + if (!handle.$$) { + throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`); + } + if (!handle.$$.ptr) { + throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`); + } + if (handle.$$.ptrType.isConst) { + throwBindingError(`Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}`); + } + var handleClass = handle.$$.ptrType.registeredClass; + var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); + return ptr; + } + + function simpleReadValueFromPointer(pointer) { + return this['fromWireType'](HEAP32[((pointer)>>2)]); + } + + function RegisteredPointer_getPointee(ptr) { + if (this.rawGetPointee) { + ptr = this.rawGetPointee(ptr); + } + return ptr; + } + + function RegisteredPointer_destructor(ptr) { + if (this.rawDestructor) { + this.rawDestructor(ptr); + } + } + + function RegisteredPointer_deleteObject(handle) { + if (handle !== null) { + handle['delete'](); + } + } + + function init_RegisteredPointer() { + RegisteredPointer.prototype.getPointee = RegisteredPointer_getPointee; + RegisteredPointer.prototype.destructor = RegisteredPointer_destructor; + RegisteredPointer.prototype['argPackAdvance'] = 8; + RegisteredPointer.prototype['readValueFromPointer'] = simpleReadValueFromPointer; + RegisteredPointer.prototype['deleteObject'] = RegisteredPointer_deleteObject; + RegisteredPointer.prototype['fromWireType'] = RegisteredPointer_fromWireType; + } + /** @constructor + @param {*=} pointeeType, + @param {*=} sharingPolicy, + @param {*=} rawGetPointee, + @param {*=} rawConstructor, + @param {*=} rawShare, + @param {*=} rawDestructor, + */ + function RegisteredPointer( + name, + registeredClass, + isReference, + isConst, + + // smart pointer properties + isSmartPointer, + pointeeType, + sharingPolicy, + rawGetPointee, + rawConstructor, + rawShare, + rawDestructor + ) { + this.name = name; + this.registeredClass = registeredClass; + this.isReference = isReference; + this.isConst = isConst; + + // smart pointer properties + this.isSmartPointer = isSmartPointer; + this.pointeeType = pointeeType; + this.sharingPolicy = sharingPolicy; + this.rawGetPointee = rawGetPointee; + this.rawConstructor = rawConstructor; + this.rawShare = rawShare; + this.rawDestructor = rawDestructor; + + if (!isSmartPointer && registeredClass.baseClass === undefined) { + if (isConst) { + this['toWireType'] = constNoSmartPtrRawPointerToWireType; + this.destructorFunction = null; + } else { + this['toWireType'] = nonConstNoSmartPtrRawPointerToWireType; + this.destructorFunction = null; + } + } else { + this['toWireType'] = genericPointerToWireType; + // Here we must leave this.destructorFunction undefined, since whether genericPointerToWireType returns + // a pointer that needs to be freed up is runtime-dependent, and cannot be evaluated at registration time. + // TODO: Create an alternative mechanism that allows removing the use of var destructors = []; array in + // craftInvokerFunction altogether. + } + } + + /** @param {number=} numArguments */ + function replacePublicSymbol(name, value, numArguments) { + if (!Module.hasOwnProperty(name)) { + throwInternalError('Replacing nonexistant public symbol'); + } + // If there's an overload table for this symbol, replace the symbol in the overload table instead. + if (undefined !== Module[name].overloadTable && undefined !== numArguments) { + Module[name].overloadTable[numArguments] = value; + } + else { + Module[name] = value; + Module[name].argCount = numArguments; + } + } + + + + function dynCallLegacy(sig, ptr, args) { + assert(('dynCall_' + sig) in Module, `bad function pointer type - dynCall function not found for sig '${sig}'`); + if (args && args.length) { + // j (64-bit integer) must be passed in as two numbers [low 32, high 32]. + assert(args.length === sig.substring(1).replace(/j/g, '--').length); + } else { + assert(sig.length == 1); + } + var f = Module['dynCall_' + sig]; + return args && args.length ? f.apply(null, [ptr].concat(args)) : f.call(null, ptr); + } + + var wasmTableMirror = []; + + function getWasmTableEntry(funcPtr) { + var func = wasmTableMirror[funcPtr]; + if (!func) { + if (funcPtr >= wasmTableMirror.length) wasmTableMirror.length = funcPtr + 1; + wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr); + } + assert(wasmTable.get(funcPtr) == func, "JavaScript-side Wasm function table mirror is out of date!"); + return func; + } + + /** @param {Object=} args */ + function dynCall(sig, ptr, args) { + // Without WASM_BIGINT support we cannot directly call function with i64 as + // part of thier signature, so we rely the dynCall functions generated by + // wasm-emscripten-finalize + if (sig.includes('j')) { + return dynCallLegacy(sig, ptr, args); + } + assert(getWasmTableEntry(ptr), `missing table entry in dynCall: ${ptr}`); + var rtn = getWasmTableEntry(ptr).apply(null, args); + return rtn; + + } + + function getDynCaller(sig, ptr) { + assert(sig.includes('j') || sig.includes('p'), 'getDynCaller should only be called with i64 sigs') + var argCache = []; + return function() { + argCache.length = 0; + Object.assign(argCache, arguments); + return dynCall(sig, ptr, argCache); + }; + } + + + function embind__requireFunction(signature, rawFunction) { + signature = readLatin1String(signature); + + function makeDynCaller() { + if (signature.includes('j')) { + return getDynCaller(signature, rawFunction); + } + return getWasmTableEntry(rawFunction); + } + + var fp = makeDynCaller(); + if (typeof fp != "function") { + throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`); + } + return fp; + } + + + + var UnboundTypeError = undefined; + + function throwUnboundTypeError(message, types) { + var unboundTypes = []; + var seen = {}; + function visit(type) { + if (seen[type]) { + return; + } + if (registeredTypes[type]) { + return; + } + if (typeDependencies[type]) { + typeDependencies[type].forEach(visit); + return; + } + unboundTypes.push(type); + seen[type] = true; + } + types.forEach(visit); + + throw new UnboundTypeError(`${message}: ` + unboundTypes.map(getTypeName).join([', '])); + } + + function __embind_register_class(rawType, + rawPointerType, + rawConstPointerType, + baseClassRawType, + getActualTypeSignature, + getActualType, + upcastSignature, + upcast, + downcastSignature, + downcast, + name, + destructorSignature, + rawDestructor) { + name = readLatin1String(name); + getActualType = embind__requireFunction(getActualTypeSignature, getActualType); + if (upcast) { + upcast = embind__requireFunction(upcastSignature, upcast); + } + if (downcast) { + downcast = embind__requireFunction(downcastSignature, downcast); + } + rawDestructor = embind__requireFunction(destructorSignature, rawDestructor); + var legalFunctionName = makeLegalFunctionName(name); + + exposePublicSymbol(legalFunctionName, function() { + // this code cannot run if baseClassRawType is zero + throwUnboundTypeError(`Cannot construct ${name} due to unbound types`, [baseClassRawType]); + }); + + whenDependentTypesAreResolved( + [rawType, rawPointerType, rawConstPointerType], + baseClassRawType ? [baseClassRawType] : [], + function(base) { + base = base[0]; + + var baseClass; + var basePrototype; + if (baseClassRawType) { + baseClass = base.registeredClass; + basePrototype = baseClass.instancePrototype; + } else { + basePrototype = ClassHandle.prototype; + } + + var constructor = createNamedFunction(legalFunctionName, function() { + if (Object.getPrototypeOf(this) !== instancePrototype) { + throw new BindingError("Use 'new' to construct " + name); + } + if (undefined === registeredClass.constructor_body) { + throw new BindingError(name + " has no accessible constructor"); + } + var body = registeredClass.constructor_body[arguments.length]; + if (undefined === body) { + throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`); + } + return body.apply(this, arguments); + }); + + var instancePrototype = Object.create(basePrototype, { + constructor: { value: constructor }, + }); + + constructor.prototype = instancePrototype; + + var registeredClass = new RegisteredClass(name, + constructor, + instancePrototype, + rawDestructor, + baseClass, + getActualType, + upcast, + downcast); + + if (registeredClass.baseClass) { + // Keep track of class hierarchy. Used to allow sub-classes to inherit class functions. + if (registeredClass.baseClass.__derivedClasses === undefined) { + registeredClass.baseClass.__derivedClasses = []; + } + + registeredClass.baseClass.__derivedClasses.push(registeredClass); + } + + var referenceConverter = new RegisteredPointer(name, + registeredClass, + true, + false, + false); + + var pointerConverter = new RegisteredPointer(name + '*', + registeredClass, + false, + false, + false); + + var constPointerConverter = new RegisteredPointer(name + ' const*', + registeredClass, + false, + true, + false); + + registeredPointers[rawType] = { + pointerType: pointerConverter, + constPointerType: constPointerConverter + }; + + replacePublicSymbol(legalFunctionName, constructor); + + return [referenceConverter, pointerConverter, constPointerConverter]; + } + ); + } + + + function runDestructors(destructors) { + while (destructors.length) { + var ptr = destructors.pop(); + var del = destructors.pop(); + del(ptr); + } + } + + function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc, /** boolean= */ isAsync) { + // humanName: a human-readable string name for the function to be generated. + // argTypes: An array that contains the embind type objects for all types in the function signature. + // argTypes[0] is the type object for the function return value. + // argTypes[1] is the type object for function this object/class type, or null if not crafting an invoker for a class method. + // argTypes[2...] are the actual function parameters. + // classType: The embind type object for the class to be bound, or null if this is not a method of a class. + // cppInvokerFunc: JS Function object to the C++-side function that interops into C++ code. + // cppTargetFunc: Function pointer (an integer to FUNCTION_TABLE) to the target C++ function the cppInvokerFunc will end up calling. + // isAsync: Optional. If true, returns an async function. Async bindings are only supported with JSPI. + var argCount = argTypes.length; + + if (argCount < 2) { + throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!"); + } + + assert(!isAsync, 'Async bindings are only supported with JSPI.'); + + var isClassMethodFunc = (argTypes[1] !== null && classType !== null); + + // Free functions with signature "void function()" do not need an invoker that marshalls between wire types. + // TODO: This omits argument count check - enable only at -O3 or similar. + // if (ENABLE_UNSAFE_OPTS && argCount == 2 && argTypes[0].name == "void" && !isClassMethodFunc) { + // return FUNCTION_TABLE[fn]; + // } + + // Determine if we need to use a dynamic stack to store the destructors for the function parameters. + // TODO: Remove this completely once all function invokers are being dynamically generated. + var needsDestructorStack = false; + + for (var i = 1; i < argTypes.length; ++i) { // Skip return value at index 0 - it's not deleted here. + if (argTypes[i] !== null && argTypes[i].destructorFunction === undefined) { // The type does not define a destructor function - must use dynamic stack + needsDestructorStack = true; + break; + } + } + + var returns = (argTypes[0].name !== "void"); + + var expectedArgCount = argCount - 2; + var argsWired = new Array(expectedArgCount); + var invokerFuncArgs = []; + var destructors = []; + return function() { + if (arguments.length !== expectedArgCount) { + throwBindingError(`function ${humanName} called with ${arguments.length} arguments, expected ${expectedArgCount} args!`); + } + destructors.length = 0; + var thisWired; + invokerFuncArgs.length = isClassMethodFunc ? 2 : 1; + invokerFuncArgs[0] = cppTargetFunc; + if (isClassMethodFunc) { + thisWired = argTypes[1]['toWireType'](destructors, this); + invokerFuncArgs[1] = thisWired; + } + for (var i = 0; i < expectedArgCount; ++i) { + argsWired[i] = argTypes[i + 2]['toWireType'](destructors, arguments[i]); + invokerFuncArgs.push(argsWired[i]); + } + + var rv = cppInvokerFunc.apply(null, invokerFuncArgs); + + function onDone(rv) { + if (needsDestructorStack) { + runDestructors(destructors); + } else { + for (var i = isClassMethodFunc ? 1 : 2; i < argTypes.length; i++) { + var param = i === 1 ? thisWired : argsWired[i - 2]; + if (argTypes[i].destructorFunction !== null) { + argTypes[i].destructorFunction(param); + } + } + } + + if (returns) { + return argTypes[0]['fromWireType'](rv); + } + } + + return onDone(rv); + }; + } + + + function heap32VectorToArray(count, firstElement) { + var array = []; + for (var i = 0; i < count; i++) { + // TODO(https://github.com/emscripten-core/emscripten/issues/17310): + // Find a way to hoist the `>> 2` or `>> 3` out of this loop. + array.push(HEAPU32[(((firstElement)+(i * 4))>>2)]); + } + return array; + } + + + + + function __embind_register_class_class_function(rawClassType, + methodName, + argCount, + rawArgTypesAddr, + invokerSignature, + rawInvoker, + fn, + isAsync) { + var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); + methodName = readLatin1String(methodName); + rawInvoker = embind__requireFunction(invokerSignature, rawInvoker); + whenDependentTypesAreResolved([], [rawClassType], function(classType) { + classType = classType[0]; + var humanName = `${classType.name}.${methodName}`; + + function unboundTypesHandler() { + throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`, rawArgTypes); + } + + if (methodName.startsWith("@@")) { + methodName = Symbol[methodName.substring(2)]; + } + + var proto = classType.registeredClass.constructor; + if (undefined === proto[methodName]) { + // This is the first function to be registered with this name. + unboundTypesHandler.argCount = argCount-1; + proto[methodName] = unboundTypesHandler; + } else { + // There was an existing function with the same name registered. Set up + // a function overload routing table. + ensureOverloadTable(proto, methodName, humanName); + proto[methodName].overloadTable[argCount-1] = unboundTypesHandler; + } + + whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { + // Replace the initial unbound-types-handler stub with the proper + // function. If multiple overloads are registered, the function handlers + // go into an overload table. + var invokerArgsArray = [argTypes[0] /* return value */, null /* no class 'this'*/].concat(argTypes.slice(1) /* actual params */); + var func = craftInvokerFunction(humanName, invokerArgsArray, null /* no class 'this'*/, rawInvoker, fn, isAsync); + if (undefined === proto[methodName].overloadTable) { + func.argCount = argCount-1; + proto[methodName] = func; + } else { + proto[methodName].overloadTable[argCount-1] = func; + } + + if (classType.registeredClass.__derivedClasses) { + for (const derivedClass of classType.registeredClass.__derivedClasses) { + if (!derivedClass.constructor.hasOwnProperty(methodName)) { + // TODO: Add support for overloads + derivedClass.constructor[methodName] = func; + } + } + } + + return []; + }); + return []; + }); + } + + + + + + + function __embind_register_class_function(rawClassType, + methodName, + argCount, + rawArgTypesAddr, // [ReturnType, ThisType, Args...] + invokerSignature, + rawInvoker, + context, + isPureVirtual, + isAsync) { + var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); + methodName = readLatin1String(methodName); + rawInvoker = embind__requireFunction(invokerSignature, rawInvoker); + + whenDependentTypesAreResolved([], [rawClassType], function(classType) { + classType = classType[0]; + var humanName = `${classType.name}.${methodName}`; + + if (methodName.startsWith("@@")) { + methodName = Symbol[methodName.substring(2)]; + } + + if (isPureVirtual) { + classType.registeredClass.pureVirtualFunctions.push(methodName); + } + + function unboundTypesHandler() { + throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`, rawArgTypes); + } + + var proto = classType.registeredClass.instancePrototype; + var method = proto[methodName]; + if (undefined === method || (undefined === method.overloadTable && method.className !== classType.name && method.argCount === argCount - 2)) { + // This is the first overload to be registered, OR we are replacing a + // function in the base class with a function in the derived class. + unboundTypesHandler.argCount = argCount - 2; + unboundTypesHandler.className = classType.name; + proto[methodName] = unboundTypesHandler; + } else { + // There was an existing function with the same name registered. Set up + // a function overload routing table. + ensureOverloadTable(proto, methodName, humanName); + proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler; + } + + whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { + var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context, isAsync); + + // Replace the initial unbound-handler-stub function with the appropriate member function, now that all types + // are resolved. If multiple overloads are registered for this function, the function goes into an overload table. + if (undefined === proto[methodName].overloadTable) { + // Set argCount in case an overload is registered later + memberFunction.argCount = argCount - 2; + proto[methodName] = memberFunction; + } else { + proto[methodName].overloadTable[argCount - 2] = memberFunction; + } + + return []; + }); + return []; + }); + } + + function __emval_decref(handle) { + if (handle >= emval_handles.reserved && 0 === --emval_handles.get(handle).refcount) { + emval_handles.free(handle); + } + } + + + + + function __embind_register_emval(rawType, name) { + name = readLatin1String(name); + registerType(rawType, { + name: name, + 'fromWireType': function(handle) { + var rv = Emval.toValue(handle); + __emval_decref(handle); + return rv; + }, + 'toWireType': function(destructors, value) { + return Emval.toHandle(value); + }, + 'argPackAdvance': 8, + 'readValueFromPointer': simpleReadValueFromPointer, + destructorFunction: null, // This type does not need a destructor + + // TODO: do we need a deleteObject here? write a test where + // emval is passed into JS via an interface + }); + } + + function embindRepr(v) { + if (v === null) { + return 'null'; + } + var t = typeof v; + if (t === 'object' || t === 'array' || t === 'function') { + return v.toString(); + } else { + return '' + v; + } + } + + function floatReadValueFromPointer(name, shift) { + switch (shift) { + case 2: return function(pointer) { + return this['fromWireType'](HEAPF32[pointer >> 2]); + }; + case 3: return function(pointer) { + return this['fromWireType'](HEAPF64[pointer >> 3]); + }; + default: + throw new TypeError("Unknown float type: " + name); + } + } + + + + function __embind_register_float(rawType, name, size) { + var shift = getShiftFromSize(size); + name = readLatin1String(name); + registerType(rawType, { + name: name, + 'fromWireType': function(value) { + return value; + }, + 'toWireType': function(destructors, value) { + if (typeof value != "number" && typeof value != "boolean") { + throw new TypeError(`Cannot convert ${embindRepr(value)} to ${this.name}`); + } + // The VM will perform JS to Wasm value conversion, according to the spec: + // https://www.w3.org/TR/wasm-js-api-1/#towebassemblyvalue + return value; + }, + 'argPackAdvance': 8, + 'readValueFromPointer': floatReadValueFromPointer(name, shift), + destructorFunction: null, // This type does not need a destructor + }); + } + + + + + + + + + function __embind_register_function(name, argCount, rawArgTypesAddr, signature, rawInvoker, fn, isAsync) { + var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr); + name = readLatin1String(name); + + rawInvoker = embind__requireFunction(signature, rawInvoker); + + exposePublicSymbol(name, function() { + throwUnboundTypeError(`Cannot call ${name} due to unbound types`, argTypes); + }, argCount - 1); + + whenDependentTypesAreResolved([], argTypes, function(argTypes) { + var invokerArgsArray = [argTypes[0] /* return value */, null /* no class 'this'*/].concat(argTypes.slice(1) /* actual params */); + replacePublicSymbol(name, craftInvokerFunction(name, invokerArgsArray, null /* no class 'this'*/, rawInvoker, fn, isAsync), argCount - 1); + return []; + }); + } + + + + function integerReadValueFromPointer(name, shift, signed) { + // integers are quite common, so generate very specialized functions + switch (shift) { + case 0: return signed ? + function readS8FromPointer(pointer) { return HEAP8[pointer]; } : + function readU8FromPointer(pointer) { return HEAPU8[pointer]; }; + case 1: return signed ? + function readS16FromPointer(pointer) { return HEAP16[pointer >> 1]; } : + function readU16FromPointer(pointer) { return HEAPU16[pointer >> 1]; }; + case 2: return signed ? + function readS32FromPointer(pointer) { return HEAP32[pointer >> 2]; } : + function readU32FromPointer(pointer) { return HEAPU32[pointer >> 2]; }; + default: + throw new TypeError("Unknown integer type: " + name); + } + } + + + function __embind_register_integer(primitiveType, name, size, minRange, maxRange) { + name = readLatin1String(name); + // LLVM doesn't have signed and unsigned 32-bit types, so u32 literals come + // out as 'i32 -1'. Always treat those as max u32. + if (maxRange === -1) { + maxRange = 4294967295; + } + + var shift = getShiftFromSize(size); + + var fromWireType = (value) => value; + + if (minRange === 0) { + var bitshift = 32 - 8*size; + fromWireType = (value) => (value << bitshift) >>> bitshift; + } + + var isUnsignedType = (name.includes('unsigned')); + var checkAssertions = (value, toTypeName) => { + if (typeof value != "number" && typeof value != "boolean") { + throw new TypeError(`Cannot convert "${embindRepr(value)}" to ${toTypeName}`); + } + if (value < minRange || value > maxRange) { + throw new TypeError(`Passing a number "${embindRepr(value)}" from JS side to C/C++ side to an argument of type "${name}", which is outside the valid range [${minRange}, ${maxRange}]!`); + } + } + var toWireType; + if (isUnsignedType) { + toWireType = function(destructors, value) { + checkAssertions(value, this.name); + return value >>> 0; + } + } else { + toWireType = function(destructors, value) { + checkAssertions(value, this.name); + // The VM will perform JS to Wasm value conversion, according to the spec: + // https://www.w3.org/TR/wasm-js-api-1/#towebassemblyvalue + return value; + } + } + registerType(primitiveType, { + name: name, + 'fromWireType': fromWireType, + 'toWireType': toWireType, + 'argPackAdvance': 8, + 'readValueFromPointer': integerReadValueFromPointer(name, shift, minRange !== 0), + destructorFunction: null, // This type does not need a destructor + }); + } + + + function __embind_register_memory_view(rawType, dataTypeIndex, name) { + var typeMapping = [ + Int8Array, + Uint8Array, + Int16Array, + Uint16Array, + Int32Array, + Uint32Array, + Float32Array, + Float64Array, + ]; + + var TA = typeMapping[dataTypeIndex]; + + function decodeMemoryView(handle) { + handle = handle >> 2; + var heap = HEAPU32; + var size = heap[handle]; // in elements + var data = heap[handle + 1]; // byte offset into emscripten heap + return new TA(heap.buffer, data, size); + } + + name = readLatin1String(name); + registerType(rawType, { + name: name, + 'fromWireType': decodeMemoryView, + 'argPackAdvance': 8, + 'readValueFromPointer': decodeMemoryView, + }, { + ignoreDuplicateRegistrations: true, + }); + } + + + + + + function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { + assert(typeof str === 'string'); + // Parameter maxBytesToWrite is not optional. Negative values, 0, null, + // undefined and false each don't write out any bytes. + if (!(maxBytesToWrite > 0)) + return 0; + + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code + // unit, not a Unicode code point of the character! So decode + // UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description + // and https://www.ietf.org/rfc/rfc2279.txt + // and https://tools.ietf.org/html/rfc3629 + var u = str.charCodeAt(i); // possibly a lead surrogate + if (u >= 0xD800 && u <= 0xDFFF) { + var u1 = str.charCodeAt(++i); + u = 0x10000 + ((u & 0x3FF) << 10) | (u1 & 0x3FF); + } + if (u <= 0x7F) { + if (outIdx >= endIdx) break; + heap[outIdx++] = u; + } else if (u <= 0x7FF) { + if (outIdx + 1 >= endIdx) break; + heap[outIdx++] = 0xC0 | (u >> 6); + heap[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0xFFFF) { + if (outIdx + 2 >= endIdx) break; + heap[outIdx++] = 0xE0 | (u >> 12); + heap[outIdx++] = 0x80 | ((u >> 6) & 63); + heap[outIdx++] = 0x80 | (u & 63); + } else { + if (outIdx + 3 >= endIdx) break; + if (u > 0x10FFFF) warnOnce('Invalid Unicode code point ' + ptrToString(u) + ' encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF).'); + heap[outIdx++] = 0xF0 | (u >> 18); + heap[outIdx++] = 0x80 | ((u >> 12) & 63); + heap[outIdx++] = 0x80 | ((u >> 6) & 63); + heap[outIdx++] = 0x80 | (u & 63); + } + } + // Null-terminate the pointer to the buffer. + heap[outIdx] = 0; + return outIdx - startIdx; + } + function stringToUTF8(str, outPtr, maxBytesToWrite) { + assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite); + } + + function lengthBytesUTF8(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code + // unit, not a Unicode code point of the character! So decode + // UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var c = str.charCodeAt(i); // possibly a lead surrogate + if (c <= 0x7F) { + len++; + } else if (c <= 0x7FF) { + len += 2; + } else if (c >= 0xD800 && c <= 0xDFFF) { + len += 4; ++i; + } else { + len += 3; + } + } + return len; + } + + + + function __embind_register_std_string(rawType, name) { + name = readLatin1String(name); + var stdStringIsUTF8 + //process only std::string bindings with UTF8 support, in contrast to e.g. std::basic_string + = (name === "std::string"); + + registerType(rawType, { + name: name, + 'fromWireType': function(value) { + var length = HEAPU32[((value)>>2)]; + var payload = value + 4; + + var str; + if (stdStringIsUTF8) { + var decodeStartPtr = payload; + // Looping here to support possible embedded '0' bytes + for (var i = 0; i <= length; ++i) { + var currentBytePtr = payload + i; + if (i == length || HEAPU8[currentBytePtr] == 0) { + var maxRead = currentBytePtr - decodeStartPtr; + var stringSegment = UTF8ToString(decodeStartPtr, maxRead); + if (str === undefined) { + str = stringSegment; + } else { + str += String.fromCharCode(0); + str += stringSegment; + } + decodeStartPtr = currentBytePtr + 1; + } + } + } else { + var a = new Array(length); + for (var i = 0; i < length; ++i) { + a[i] = String.fromCharCode(HEAPU8[payload + i]); + } + str = a.join(''); + } + + _free(value); + + return str; + }, + 'toWireType': function(destructors, value) { + if (value instanceof ArrayBuffer) { + value = new Uint8Array(value); + } + + var length; + var valueIsOfTypeString = (typeof value == 'string'); + + if (!(valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array)) { + throwBindingError('Cannot pass non-string to std::string'); + } + if (stdStringIsUTF8 && valueIsOfTypeString) { + length = lengthBytesUTF8(value); + } else { + length = value.length; + } + + // assumes 4-byte alignment + var base = _malloc(4 + length + 1); + var ptr = base + 4; + HEAPU32[((base)>>2)] = length; + if (stdStringIsUTF8 && valueIsOfTypeString) { + stringToUTF8(value, ptr, length + 1); + } else { + if (valueIsOfTypeString) { + for (var i = 0; i < length; ++i) { + var charCode = value.charCodeAt(i); + if (charCode > 255) { + _free(ptr); + throwBindingError('String has UTF-16 code units that do not fit in 8 bits'); + } + HEAPU8[ptr + i] = charCode; + } + } else { + for (var i = 0; i < length; ++i) { + HEAPU8[ptr + i] = value[i]; + } + } + } + + if (destructors !== null) { + destructors.push(_free, base); + } + return base; + }, + 'argPackAdvance': 8, + 'readValueFromPointer': simpleReadValueFromPointer, + destructorFunction: function(ptr) { _free(ptr); }, + }); + } + + + + + var UTF16Decoder = typeof TextDecoder != 'undefined' ? new TextDecoder('utf-16le') : undefined;; + function UTF16ToString(ptr, maxBytesToRead) { + assert(ptr % 2 == 0, 'Pointer passed to UTF16ToString must be aligned to two bytes!'); + var endPtr = ptr; + // TextDecoder needs to know the byte length in advance, it doesn't stop on + // null terminator by itself. + // Also, use the length info to avoid running tiny strings through + // TextDecoder, since .subarray() allocates garbage. + var idx = endPtr >> 1; + var maxIdx = idx + maxBytesToRead / 2; + // If maxBytesToRead is not passed explicitly, it will be undefined, and this + // will always evaluate to true. This saves on code size. + while (!(idx >= maxIdx) && HEAPU16[idx]) ++idx; + endPtr = idx << 1; + + if (endPtr - ptr > 32 && UTF16Decoder) + return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr)); + + // Fallback: decode without UTF16Decoder + var str = ''; + + // If maxBytesToRead is not passed explicitly, it will be undefined, and the + // for-loop's condition will always evaluate to true. The loop is then + // terminated on the first null char. + for (var i = 0; !(i >= maxBytesToRead / 2); ++i) { + var codeUnit = HEAP16[(((ptr)+(i*2))>>1)]; + if (codeUnit == 0) break; + // fromCharCode constructs a character from a UTF-16 code unit, so we can + // pass the UTF16 string right through. + str += String.fromCharCode(codeUnit); + } + + return str; + } + + function stringToUTF16(str, outPtr, maxBytesToWrite) { + assert(outPtr % 2 == 0, 'Pointer passed to stringToUTF16 must be aligned to two bytes!'); + assert(typeof maxBytesToWrite == 'number', 'stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 0x7FFFFFFF; + } + if (maxBytesToWrite < 2) return 0; + maxBytesToWrite -= 2; // Null terminator. + var startPtr = outPtr; + var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length; + for (var i = 0; i < numCharsToWrite; ++i) { + // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP. + var codeUnit = str.charCodeAt(i); // possibly a lead surrogate + HEAP16[((outPtr)>>1)] = codeUnit; + outPtr += 2; + } + // Null-terminate the pointer to the HEAP. + HEAP16[((outPtr)>>1)] = 0; + return outPtr - startPtr; + } + + function lengthBytesUTF16(str) { + return str.length*2; + } + + function UTF32ToString(ptr, maxBytesToRead) { + assert(ptr % 4 == 0, 'Pointer passed to UTF32ToString must be aligned to four bytes!'); + var i = 0; + + var str = ''; + // If maxBytesToRead is not passed explicitly, it will be undefined, and this + // will always evaluate to true. This saves on code size. + while (!(i >= maxBytesToRead / 4)) { + var utf32 = HEAP32[(((ptr)+(i*4))>>2)]; + if (utf32 == 0) break; + ++i; + // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + if (utf32 >= 0x10000) { + var ch = utf32 - 0x10000; + str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); + } else { + str += String.fromCharCode(utf32); + } + } + return str; + } + + function stringToUTF32(str, outPtr, maxBytesToWrite) { + assert(outPtr % 4 == 0, 'Pointer passed to stringToUTF32 must be aligned to four bytes!'); + assert(typeof maxBytesToWrite == 'number', 'stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 0x7FFFFFFF; + } + if (maxBytesToWrite < 4) return 0; + var startPtr = outPtr; + var endPtr = startPtr + maxBytesToWrite - 4; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var codeUnit = str.charCodeAt(i); // possibly a lead surrogate + if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) { + var trailSurrogate = str.charCodeAt(++i); + codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF); + } + HEAP32[((outPtr)>>2)] = codeUnit; + outPtr += 4; + if (outPtr + 4 > endPtr) break; + } + // Null-terminate the pointer to the HEAP. + HEAP32[((outPtr)>>2)] = 0; + return outPtr - startPtr; + } + + function lengthBytesUTF32(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var codeUnit = str.charCodeAt(i); + if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate. + len += 4; + } + + return len; + } + function __embind_register_std_wstring(rawType, charSize, name) { + name = readLatin1String(name); + var decodeString, encodeString, getHeap, lengthBytesUTF, shift; + if (charSize === 2) { + decodeString = UTF16ToString; + encodeString = stringToUTF16; + lengthBytesUTF = lengthBytesUTF16; + getHeap = () => HEAPU16; + shift = 1; + } else if (charSize === 4) { + decodeString = UTF32ToString; + encodeString = stringToUTF32; + lengthBytesUTF = lengthBytesUTF32; + getHeap = () => HEAPU32; + shift = 2; + } + registerType(rawType, { + name: name, + 'fromWireType': function(value) { + // Code mostly taken from _embind_register_std_string fromWireType + var length = HEAPU32[value >> 2]; + var HEAP = getHeap(); + var str; + + var decodeStartPtr = value + 4; + // Looping here to support possible embedded '0' bytes + for (var i = 0; i <= length; ++i) { + var currentBytePtr = value + 4 + i * charSize; + if (i == length || HEAP[currentBytePtr >> shift] == 0) { + var maxReadBytes = currentBytePtr - decodeStartPtr; + var stringSegment = decodeString(decodeStartPtr, maxReadBytes); + if (str === undefined) { + str = stringSegment; + } else { + str += String.fromCharCode(0); + str += stringSegment; + } + decodeStartPtr = currentBytePtr + charSize; + } + } + + _free(value); + + return str; + }, + 'toWireType': function(destructors, value) { + if (!(typeof value == 'string')) { + throwBindingError(`Cannot pass non-string to C++ string type ${name}`); + } + + // assumes 4-byte alignment + var length = lengthBytesUTF(value); + var ptr = _malloc(4 + length + charSize); + HEAPU32[ptr >> 2] = length >> shift; + + encodeString(value, ptr + 4, length + charSize); + + if (destructors !== null) { + destructors.push(_free, ptr); + } + return ptr; + }, + 'argPackAdvance': 8, + 'readValueFromPointer': simpleReadValueFromPointer, + destructorFunction: function(ptr) { _free(ptr); }, + }); + } + + + function __embind_register_void(rawType, name) { + name = readLatin1String(name); + registerType(rawType, { + isVoid: true, // void return values can be optimized out sometimes + name: name, + 'argPackAdvance': 0, + 'fromWireType': function() { + return undefined; + }, + 'toWireType': function(destructors, o) { + // TODO: assert if anything else is given? + return undefined; + }, + }); + } + + function emval_allocateDestructors(destructorsRef) { + var destructors = []; + HEAPU32[((destructorsRef)>>2)] = Emval.toHandle(destructors); + return destructors; + } + + var emval_symbols = {}; + + function getStringOrSymbol(address) { + var symbol = emval_symbols[address]; + if (symbol === undefined) { + return readLatin1String(address); + } + return symbol; + } + + var emval_methodCallers = []; + + function __emval_call_void_method(caller, handle, methodName, args) { + caller = emval_methodCallers[caller]; + handle = Emval.toValue(handle); + methodName = getStringOrSymbol(methodName); + caller(handle, methodName, null, args); + } + + + function emval_addMethodCaller(caller) { + var id = emval_methodCallers.length; + emval_methodCallers.push(caller); + return id; + } + + function emval_lookupTypes(argCount, argTypes) { + var a = new Array(argCount); + for (var i = 0; i < argCount; ++i) { + a[i] = requireRegisteredType(HEAPU32[(((argTypes)+(i * 4))>>2)], + "parameter " + i); + } + return a; + } + + + var emval_registeredMethods = []; + function __emval_get_method_caller(argCount, argTypes) { + var types = emval_lookupTypes(argCount, argTypes); + var retType = types[0]; + var signatureName = retType.name + "_$" + types.slice(1).map(function (t) { return t.name; }).join("_") + "$"; + var returnId = emval_registeredMethods[signatureName]; + if (returnId !== undefined) { + return returnId; + } + + var argN = new Array(argCount - 1); + var invokerFunction = (handle, name, destructors, args) => { + var offset = 0; + for (var i = 0; i < argCount - 1; ++i) { + argN[i] = types[i + 1]['readValueFromPointer'](args + offset); + offset += types[i + 1]['argPackAdvance']; + } + var rv = handle[name].apply(handle, argN); + for (var i = 0; i < argCount - 1; ++i) { + if (types[i + 1].deleteObject) { + types[i + 1].deleteObject(argN[i]); + } + } + if (!retType.isVoid) { + return retType['toWireType'](destructors, rv); + } + }; + returnId = emval_addMethodCaller(invokerFunction); + emval_registeredMethods[signatureName] = returnId; + return returnId; + } + + function __emval_incref(handle) { + if (handle > 4) { + emval_handles.get(handle).refcount += 1; + } + } + + function _abort() { + abort('native code called abort()'); + } + + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.copyWithin(dest, src, src + num); + } + + function getHeapMax() { + // Stay one Wasm page short of 4GB: while e.g. Chrome is able to allocate + // full 4GB Wasm memories, the size will wrap back to 0 bytes in Wasm side + // for any code that deals with heap sizes, which would require special + // casing all heap size related code to treat 0 specially. + return 2147483648; + } + + function emscripten_realloc_buffer(size) { + var b = wasmMemory.buffer; + var pages = (size - b.byteLength + 65535) >>> 16; + try { + // round size grow request up to wasm page size (fixed 64KB per spec) + wasmMemory.grow(pages); // .grow() takes a delta compared to the previous size + updateMemoryViews(); + return 1 /*success*/; + } catch(e) { + err(`emscripten_realloc_buffer: Attempted to grow heap from ${b.byteLength} bytes to ${size} bytes, but got error: ${e}`); + } + // implicit 0 return to save code size (caller will cast "undefined" into 0 + // anyhow) + } + function _emscripten_resize_heap(requestedSize) { + var oldSize = HEAPU8.length; + requestedSize = requestedSize >>> 0; + // With multithreaded builds, races can happen (another thread might increase the size + // in between), so return a failure, and let the caller retry. + assert(requestedSize > oldSize); + + // Memory resize rules: + // 1. Always increase heap size to at least the requested size, rounded up + // to next page multiple. + // 2a. If MEMORY_GROWTH_LINEAR_STEP == -1, excessively resize the heap + // geometrically: increase the heap size according to + // MEMORY_GROWTH_GEOMETRIC_STEP factor (default +20%), At most + // overreserve by MEMORY_GROWTH_GEOMETRIC_CAP bytes (default 96MB). + // 2b. If MEMORY_GROWTH_LINEAR_STEP != -1, excessively resize the heap + // linearly: increase the heap size by at least + // MEMORY_GROWTH_LINEAR_STEP bytes. + // 3. Max size for the heap is capped at 2048MB-WASM_PAGE_SIZE, or by + // MAXIMUM_MEMORY, or by ASAN limit, depending on which is smallest + // 4. If we were unable to allocate as much memory, it may be due to + // over-eager decision to excessively reserve due to (3) above. + // Hence if an allocation fails, cut down on the amount of excess + // growth, in an attempt to succeed to perform a smaller allocation. + + // A limit is set for how much we can grow. We should not exceed that + // (the wasm binary specifies it, so if we tried, we'd fail anyhow). + var maxHeapSize = getHeapMax(); + if (requestedSize > maxHeapSize) { + err(`Cannot enlarge memory, asked to go up to ${requestedSize} bytes, but the limit is ${maxHeapSize} bytes!`); + return false; + } + + var alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple; + + // Loop through potential heap size increases. If we attempt a too eager + // reservation that fails, cut down on the attempted size and reserve a + // smaller bump instead. (max 3 times, chosen somewhat arbitrarily) + for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { + var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); // ensure geometric growth + // but limit overreserving (default to capping at +96MB overgrowth at most) + overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296 ); + + var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536)); + + var replacement = emscripten_realloc_buffer(newSize); + if (replacement) { + + return true; + } + } + err(`Failed to grow the heap from ${oldSize} bytes to ${newSize} bytes, not enough memory!`); + return false; + } + + var SYSCALLS = {varargs:undefined,get:function() { + assert(SYSCALLS.varargs != undefined); + SYSCALLS.varargs += 4; + var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)]; + return ret; + },getStr:function(ptr) { + var ret = UTF8ToString(ptr); + return ret; + }}; + function _fd_close(fd) { + abort('fd_close called without SYSCALLS_REQUIRE_FILESYSTEM'); + } + + function convertI32PairToI53Checked(lo, hi) { + assert(lo == (lo >>> 0) || lo == (lo|0)); // lo should either be a i32 or a u32 + assert(hi === (hi|0)); // hi should be a i32 + return ((hi + 0x200000) >>> 0 < 0x400001 - !!lo) ? (lo >>> 0) + hi * 4294967296 : NaN; + } + + + + + function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { + return 70; + } + + var printCharBuffers = [null,[],[]]; + + function printChar(stream, curr) { + var buffer = printCharBuffers[stream]; + assert(buffer); + if (curr === 0 || curr === 10) { + (stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0)); + buffer.length = 0; + } else { + buffer.push(curr); + } + } + + function flush_NO_FILESYSTEM() { + // flush anything remaining in the buffers during shutdown + _fflush(0); + if (printCharBuffers[1].length) printChar(1, 10); + if (printCharBuffers[2].length) printChar(2, 10); + } + + + function _fd_write(fd, iov, iovcnt, pnum) { + // hack to support printf in SYSCALLS_REQUIRE_FILESYSTEM=0 + var num = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAPU32[((iov)>>2)]; + var len = HEAPU32[(((iov)+(4))>>2)]; + iov += 8; + for (var j = 0; j < len; j++) { + printChar(fd, HEAPU8[ptr+j]); + } + num += len; + } + HEAPU32[((pnum)>>2)] = num; + return 0; + } +BindingError = Module['BindingError'] = extendError(Error, 'BindingError');; +init_emval();; +PureVirtualError = Module['PureVirtualError'] = extendError(Error, 'PureVirtualError');; +embind_init_charCodes(); +init_embind();; +InternalError = Module['InternalError'] = extendError(Error, 'InternalError');; +init_ClassHandle(); +init_RegisteredPointer(); +UnboundTypeError = Module['UnboundTypeError'] = extendError(Error, 'UnboundTypeError');; +function checkIncomingModuleAPI() { + ignoredModuleProp('fetchSettings'); +} +var wasmImports = { + "__assert_fail": ___assert_fail, + "_embind_create_inheriting_constructor": __embind_create_inheriting_constructor, + "_embind_register_bigint": __embind_register_bigint, + "_embind_register_bool": __embind_register_bool, + "_embind_register_class": __embind_register_class, + "_embind_register_class_class_function": __embind_register_class_class_function, + "_embind_register_class_function": __embind_register_class_function, + "_embind_register_emval": __embind_register_emval, + "_embind_register_float": __embind_register_float, + "_embind_register_function": __embind_register_function, + "_embind_register_integer": __embind_register_integer, + "_embind_register_memory_view": __embind_register_memory_view, + "_embind_register_std_string": __embind_register_std_string, + "_embind_register_std_wstring": __embind_register_std_wstring, + "_embind_register_void": __embind_register_void, + "_emval_call_void_method": __emval_call_void_method, + "_emval_decref": __emval_decref, + "_emval_get_method_caller": __emval_get_method_caller, + "_emval_incref": __emval_incref, + "abort": _abort, + "emscripten_memcpy_big": _emscripten_memcpy_big, + "emscripten_resize_heap": _emscripten_resize_heap, + "fd_close": _fd_close, + "fd_seek": _fd_seek, + "fd_write": _fd_write +}; +var asm = createWasm(); +/** @type {function(...*):?} */ +var ___wasm_call_ctors = createExportWrapper("__wasm_call_ctors"); +/** @type {function(...*):?} */ +var _malloc = createExportWrapper("malloc"); +/** @type {function(...*):?} */ +var _free = createExportWrapper("free"); +/** @type {function(...*):?} */ +var ___getTypeName = createExportWrapper("__getTypeName"); +/** @type {function(...*):?} */ +var __embind_initialize_bindings = Module["__embind_initialize_bindings"] = createExportWrapper("_embind_initialize_bindings"); +/** @type {function(...*):?} */ +var ___errno_location = createExportWrapper("__errno_location"); +/** @type {function(...*):?} */ +var _fflush = Module["_fflush"] = createExportWrapper("fflush"); +/** @type {function(...*):?} */ +var _emscripten_stack_init = function() { + return (_emscripten_stack_init = Module["asm"]["emscripten_stack_init"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _emscripten_stack_get_free = function() { + return (_emscripten_stack_get_free = Module["asm"]["emscripten_stack_get_free"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _emscripten_stack_get_base = function() { + return (_emscripten_stack_get_base = Module["asm"]["emscripten_stack_get_base"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _emscripten_stack_get_end = function() { + return (_emscripten_stack_get_end = Module["asm"]["emscripten_stack_get_end"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var stackSave = createExportWrapper("stackSave"); +/** @type {function(...*):?} */ +var stackRestore = createExportWrapper("stackRestore"); +/** @type {function(...*):?} */ +var stackAlloc = createExportWrapper("stackAlloc"); +/** @type {function(...*):?} */ +var _emscripten_stack_get_current = function() { + return (_emscripten_stack_get_current = Module["asm"]["emscripten_stack_get_current"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var dynCall_jiji = Module["dynCall_jiji"] = createExportWrapper("dynCall_jiji"); + + +// include: postamble.js +// === Auto-generated postamble setup entry stuff === + +var missingLibrarySymbols = [ + 'zeroMemory', + 'exitJS', + 'isLeapYear', + 'ydayFromDate', + 'arraySum', + 'addDays', + 'setErrNo', + 'inetPton4', + 'inetNtop4', + 'inetPton6', + 'inetNtop6', + 'readSockaddr', + 'writeSockaddr', + 'getHostByName', + 'initRandomFill', + 'randomFill', + 'traverseStack', + 'getCallstack', + 'emscriptenLog', + 'convertPCtoSourceLocation', + 'readEmAsmArgs', + 'jstoi_q', + 'jstoi_s', + 'getExecutableName', + 'listenOnce', + 'autoResumeAudioContext', + 'handleException', + 'runtimeKeepalivePush', + 'runtimeKeepalivePop', + 'callUserCallback', + 'maybeExit', + 'safeSetTimeout', + 'asmjsMangle', + 'asyncLoad', + 'alignMemory', + 'mmapAlloc', + 'getNativeTypeSize', + 'STACK_SIZE', + 'STACK_ALIGN', + 'POINTER_SIZE', + 'ASSERTIONS', + 'writeI53ToI64', + 'writeI53ToI64Clamped', + 'writeI53ToI64Signaling', + 'writeI53ToU64Clamped', + 'writeI53ToU64Signaling', + 'readI53FromI64', + 'readI53FromU64', + 'convertI32PairToI53', + 'convertU32PairToI53', + 'getCFunc', + 'ccall', + 'cwrap', + 'uleb128Encode', + 'sigToWasmTypes', + 'generateFuncType', + 'convertJsFunctionToWasm', + 'getEmptyTableSlot', + 'updateTableMap', + 'getFunctionAddress', + 'addFunction', + 'removeFunction', + 'reallyNegative', + 'unSign', + 'strLen', + 'reSign', + 'formatString', + 'intArrayFromString', + 'intArrayToString', + 'AsciiToString', + 'stringToAscii', + 'stringToNewUTF8', + 'stringToUTF8OnStack', + 'writeArrayToMemory', + 'registerKeyEventCallback', + 'maybeCStringToJsString', + 'findEventTarget', + 'findCanvasEventTarget', + 'getBoundingClientRect', + 'fillMouseEventData', + 'registerMouseEventCallback', + 'registerWheelEventCallback', + 'registerUiEventCallback', + 'registerFocusEventCallback', + 'fillDeviceOrientationEventData', + 'registerDeviceOrientationEventCallback', + 'fillDeviceMotionEventData', + 'registerDeviceMotionEventCallback', + 'screenOrientation', + 'fillOrientationChangeEventData', + 'registerOrientationChangeEventCallback', + 'fillFullscreenChangeEventData', + 'registerFullscreenChangeEventCallback', + 'JSEvents_requestFullscreen', + 'JSEvents_resizeCanvasForFullscreen', + 'registerRestoreOldStyle', + 'hideEverythingExceptGivenElement', + 'restoreHiddenElements', + 'setLetterbox', + 'softFullscreenResizeWebGLRenderTarget', + 'doRequestFullscreen', + 'fillPointerlockChangeEventData', + 'registerPointerlockChangeEventCallback', + 'registerPointerlockErrorEventCallback', + 'requestPointerLock', + 'fillVisibilityChangeEventData', + 'registerVisibilityChangeEventCallback', + 'registerTouchEventCallback', + 'fillGamepadEventData', + 'registerGamepadEventCallback', + 'registerBeforeUnloadEventCallback', + 'fillBatteryEventData', + 'battery', + 'registerBatteryEventCallback', + 'setCanvasElementSize', + 'getCanvasElementSize', + 'demangle', + 'demangleAll', + 'jsStackTrace', + 'stackTrace', + 'getEnvStrings', + 'checkWasiClock', + 'wasiRightsToMuslOFlags', + 'wasiOFlagsToMuslOFlags', + 'createDyncallWrapper', + 'setImmediateWrapped', + 'clearImmediateWrapped', + 'polyfillSetImmediate', + 'getPromise', + 'makePromise', + 'idsToPromises', + 'makePromiseCallback', + 'setMainLoop', + 'getSocketFromFD', + 'getSocketAddress', + 'heapObjectForWebGLType', + 'heapAccessShiftForWebGLHeap', + 'webgl_enable_ANGLE_instanced_arrays', + 'webgl_enable_OES_vertex_array_object', + 'webgl_enable_WEBGL_draw_buffers', + 'webgl_enable_WEBGL_multi_draw', + 'emscriptenWebGLGet', + 'computeUnpackAlignedImageSize', + 'colorChannelsInGlTextureFormat', + 'emscriptenWebGLGetTexPixelData', + '__glGenObject', + 'emscriptenWebGLGetUniform', + 'webglGetUniformLocation', + 'webglPrepareUniformLocationsBeforeFirstUse', + 'webglGetLeftBracePos', + 'emscriptenWebGLGetVertexAttrib', + '__glGetActiveAttribOrUniform', + 'writeGLArray', + 'registerWebGlEventCallback', + 'runAndAbortIfError', + 'SDL_unicode', + 'SDL_ttfContext', + 'SDL_audio', + 'GLFW_Window', + 'ALLOC_NORMAL', + 'ALLOC_STACK', + 'allocate', + 'writeStringToMemory', + 'writeAsciiToMemory', + 'enumReadValueFromPointer', + 'validateThis', + 'craftEmvalAllocator', + 'emval_get_global', +]; +missingLibrarySymbols.forEach(missingLibrarySymbol) + +var unexportedSymbols = [ + 'run', + 'addOnPreRun', + 'addOnInit', + 'addOnPreMain', + 'addOnExit', + 'addOnPostRun', + 'addRunDependency', + 'removeRunDependency', + 'FS_createFolder', + 'FS_createPath', + 'FS_createDataFile', + 'FS_createLazyFile', + 'FS_createLink', + 'FS_createDevice', + 'FS_unlink', + 'out', + 'err', + 'callMain', + 'abort', + 'keepRuntimeAlive', + 'wasmMemory', + 'stackAlloc', + 'stackSave', + 'stackRestore', + 'getTempRet0', + 'setTempRet0', + 'writeStackCookie', + 'checkStackCookie', + 'ptrToString', + 'getHeapMax', + 'emscripten_realloc_buffer', + 'ENV', + 'MONTH_DAYS_REGULAR', + 'MONTH_DAYS_LEAP', + 'MONTH_DAYS_REGULAR_CUMULATIVE', + 'MONTH_DAYS_LEAP_CUMULATIVE', + 'ERRNO_CODES', + 'ERRNO_MESSAGES', + 'DNS', + 'Protocols', + 'Sockets', + 'timers', + 'warnOnce', + 'UNWIND_CACHE', + 'readEmAsmArgsArray', + 'dynCallLegacy', + 'getDynCaller', + 'dynCall', + 'HandleAllocator', + 'convertI32PairToI53Checked', + 'freeTableIndexes', + 'functionsInTableMap', + 'setValue', + 'getValue', + 'PATH', + 'PATH_FS', + 'UTF8Decoder', + 'UTF8ArrayToString', + 'UTF8ToString', + 'stringToUTF8Array', + 'stringToUTF8', + 'lengthBytesUTF8', + 'UTF16Decoder', + 'UTF16ToString', + 'stringToUTF16', + 'lengthBytesUTF16', + 'UTF32ToString', + 'stringToUTF32', + 'lengthBytesUTF32', + 'JSEvents', + 'specialHTMLTargets', + 'currentFullscreenStrategy', + 'restoreOldWindowedStyle', + 'ExitStatus', + 'flush_NO_FILESYSTEM', + 'dlopenMissingError', + 'promiseMap', + 'Browser', + 'wget', + 'SYSCALLS', + 'tempFixedLengthArray', + 'miniTempWebGLFloatBuffers', + 'miniTempWebGLIntBuffers', + 'GL', + 'emscripten_webgl_power_preferences', + 'AL', + 'GLUT', + 'EGL', + 'GLEW', + 'IDBStore', + 'SDL', + 'SDL_gfx', + 'GLFW', + 'allocateUTF8', + 'allocateUTF8OnStack', + 'InternalError', + 'BindingError', + 'UnboundTypeError', + 'PureVirtualError', + 'init_embind', + 'throwInternalError', + 'throwBindingError', + 'throwUnboundTypeError', + 'ensureOverloadTable', + 'exposePublicSymbol', + 'replacePublicSymbol', + 'extendError', + 'createNamedFunction', + 'embindRepr', + 'registeredInstances', + 'getBasestPointer', + 'registerInheritedInstance', + 'unregisterInheritedInstance', + 'getInheritedInstance', + 'getInheritedInstanceCount', + 'getLiveInheritedInstances', + 'registeredTypes', + 'awaitingDependencies', + 'typeDependencies', + 'registeredPointers', + 'registerType', + 'whenDependentTypesAreResolved', + 'embind_charCodes', + 'embind_init_charCodes', + 'readLatin1String', + 'getTypeName', + 'heap32VectorToArray', + 'requireRegisteredType', + 'getShiftFromSize', + 'integerReadValueFromPointer', + 'floatReadValueFromPointer', + 'simpleReadValueFromPointer', + 'runDestructors', + 'craftInvokerFunction', + 'embind__requireFunction', + 'tupleRegistrations', + 'structRegistrations', + 'genericPointerToWireType', + 'constNoSmartPtrRawPointerToWireType', + 'nonConstNoSmartPtrRawPointerToWireType', + 'init_RegisteredPointer', + 'RegisteredPointer', + 'RegisteredPointer_getPointee', + 'RegisteredPointer_destructor', + 'RegisteredPointer_deleteObject', + 'RegisteredPointer_fromWireType', + 'runDestructor', + 'releaseClassHandle', + 'finalizationRegistry', + 'detachFinalizer_deps', + 'detachFinalizer', + 'attachFinalizer', + 'makeClassHandle', + 'init_ClassHandle', + 'ClassHandle', + 'ClassHandle_isAliasOf', + 'throwInstanceAlreadyDeleted', + 'ClassHandle_clone', + 'ClassHandle_delete', + 'deletionQueue', + 'ClassHandle_isDeleted', + 'ClassHandle_deleteLater', + 'flushPendingDeletes', + 'delayFunction', + 'setDelayFunction', + 'RegisteredClass', + 'shallowCopyInternalPointer', + 'downcastPointer', + 'upcastPointer', + 'char_0', + 'char_9', + 'makeLegalFunctionName', + 'emval_handles', + 'emval_symbols', + 'init_emval', + 'count_emval_handles', + 'getStringOrSymbol', + 'Emval', + 'emval_newers', + 'emval_lookupTypes', + 'emval_allocateDestructors', + 'emval_methodCallers', + 'emval_addMethodCaller', + 'emval_registeredMethods', +]; +unexportedSymbols.forEach(unexportedRuntimeSymbol); + + + +var calledRun; + +dependenciesFulfilled = function runCaller() { + // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) + if (!calledRun) run(); + if (!calledRun) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled +}; + +function stackCheckInit() { + // This is normally called automatically during __wasm_call_ctors but need to + // get these values before even running any of the ctors so we call it redundantly + // here. + _emscripten_stack_init(); + // TODO(sbc): Move writeStackCookie to native to to avoid this. + writeStackCookie(); +} + +function run() { + + if (runDependencies > 0) { + return; + } + + stackCheckInit(); + + preRun(); + + // a preRun added a dependency, run will be called later + if (runDependencies > 0) { + return; + } + + function doRun() { + // run may have just been called through dependencies being fulfilled just in this very frame, + // or while the async setStatus time below was happening + if (calledRun) return; + calledRun = true; + Module['calledRun'] = true; + + if (ABORT) return; + + initRuntime(); + + readyPromiseResolve(Module); + if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized'](); + + assert(!Module['_main'], 'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'); + + postRun(); + } + + if (Module['setStatus']) { + Module['setStatus']('Running...'); + setTimeout(function() { + setTimeout(function() { + Module['setStatus'](''); + }, 1); + doRun(); + }, 1); + } else + { + doRun(); + } + checkStackCookie(); +} + +function checkUnflushedContent() { + // Compiler settings do not allow exiting the runtime, so flushing + // the streams is not possible. but in ASSERTIONS mode we check + // if there was something to flush, and if so tell the user they + // should request that the runtime be exitable. + // Normally we would not even include flush() at all, but in ASSERTIONS + // builds we do so just for this check, and here we see if there is any + // content to flush, that is, we check if there would have been + // something a non-ASSERTIONS build would have not seen. + // How we flush the streams depends on whether we are in SYSCALLS_REQUIRE_FILESYSTEM=0 + // mode (which has its own special function for this; otherwise, all + // the code is inside libc) + var oldOut = out; + var oldErr = err; + var has = false; + out = err = (x) => { + has = true; + } + try { // it doesn't matter if it fails + flush_NO_FILESYSTEM(); + } catch(e) {} + out = oldOut; + err = oldErr; + if (has) { + warnOnce('stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.'); + warnOnce('(this may also be due to not including full filesystem support - try building with -sFORCE_FILESYSTEM)'); + } +} + +if (Module['preInit']) { + if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; + while (Module['preInit'].length > 0) { + Module['preInit'].pop()(); + } +} + +run(); + + +// end include: postamble.js + + + return Bullet.ready +} + +); +})(); +if (typeof exports === 'object' && typeof module === 'object') + module.exports = Bullet; +else if (typeof define === 'function' && define['amd']) + define([], function() { return Bullet; }); +else if (typeof exports === 'object') + exports["Bullet"] = Bullet; diff --git a/emscripten/bullet/bullet.debug.wasm.wasm b/emscripten/bullet/bullet.debug.wasm.wasm new file mode 100644 index 00000000..a8b56c6a Binary files /dev/null and b/emscripten/bullet/bullet.debug.wasm.wasm differ diff --git a/emscripten/bullet/bullet.release.asm.js b/emscripten/bullet/bullet.release.asm.js new file mode 100644 index 00000000..8be8ac14 --- /dev/null +++ b/emscripten/bullet/bullet.release.asm.js @@ -0,0 +1,37 @@ + +var Bullet = (() => { + var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; + + return ( +function(Bullet = {}) { + +var Module=typeof Bullet!="undefined"?Bullet:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=true;var ENVIRONMENT_IS_WORKER=false;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts["initial"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=( +// EMSCRIPTEN_START_ASM +function instantiate(Da){function c(d){d.set=function(a,b){this[a]=b};d.get=function(a){return this[a]};return d}var e;var f=new Uint8Array(123);for(var a=25;a>=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]=="=")-(o[j-1]=="=");for(;a>4;if(i>2;if(i>2];if(c){ua[J[J[c>>2]>>2]](c)|0;c=J[a+60>>2];if(c){J[8457]=J[8457]+1;ua[J[8259]](c)}}J[8456]=J[8456]+1;c=ua[J[8258]](132,16)|0;H[c+20|0]=1;J[c>>2]=20812;J[c+16>>2]=0;H[c+40|0]=1;J[c+8>>2]=0;J[c+12>>2]=0;J[c+36>>2]=0;H[c+60|0]=1;J[c+28>>2]=0;J[c+32>>2]=0;J[c+56>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;J[a+60>>2]=c;J[d+184>>2]=0;J[d+176>>2]=0;J[d+180>>2]=0;H[d+188|0]=1;c=0;if((ua[J[J[a>>2]+96>>2]](a)|0)>0){w=J[d+176>>2];j=w-1|0;c=J[d+184>>2];n=K[d+188|0];e=J[d+180>>2];while(1){a:{if((e|0)!=(w|0)){break a}i=w?w<<1:1;if((i|0)<=(w|0)){break a}if(i){J[8456]=J[8456]+1;c=ua[J[8258]](i<<4,16)|0}else{c=0}b:{if((w|0)<=0){break b}s=0;e=0;if(f+j>>>0>=3){g=w&-4;x=0;while(1){o=e<<4;r=o+c|0;k=h+o|0;l=J[k+4>>2];J[r>>2]=J[k>>2];J[r+4>>2]=l;l=J[k+12>>2];J[r+8>>2]=J[k+8>>2];J[r+12>>2]=l;l=o|16;r=l+c|0;k=h+l|0;l=J[k+12>>2];J[r+8>>2]=J[k+8>>2];J[r+12>>2]=l;l=J[k+4>>2];J[r>>2]=J[k>>2];J[r+4>>2]=l;l=o|32;r=l+c|0;k=h+l|0;l=J[k+12>>2];J[r+8>>2]=J[k+8>>2];J[r+12>>2]=l;l=J[k+4>>2];J[r>>2]=J[k>>2];J[r+4>>2]=l;l=o|48;r=l+c|0;k=h+l|0;l=J[k+12>>2];J[r+8>>2]=J[k+8>>2];J[r+12>>2]=l;l=J[k+4>>2];J[r>>2]=J[k>>2];J[r+4>>2]=l;e=e+4|0;x=x+4|0;if((g|0)!=(x|0)){continue}break}}g=w&3;if(!g){break b}while(1){l=e<<4;r=l+c|0;k=h+l|0;l=J[k+4>>2];J[r>>2]=J[k>>2];J[r+4>>2]=l;l=J[k+12>>2];J[r+8>>2]=J[k+8>>2];J[r+12>>2]=l;e=e+1|0;s=s+1|0;if((g|0)!=(s|0)){continue}break}}if(!(h?!h|!n:1)){J[8457]=J[8457]+1;ua[J[8259]](h)}n=1;e=i}ua[J[J[a>>2]+108>>2]](a,f,(w<<4)+c|0);w=w+1|0;h=c;f=f+1|0;if((ua[J[J[a>>2]+96>>2]](a)|0)>(f|0)){continue}break}H[d+188|0]=n;J[d+180>>2]=e;J[d+176>>2]=w;J[d+184>>2]=c}H[d+148|0]=1;J[d+144>>2]=0;H[d+168|0]=1;J[d+136>>2]=0;J[d+140>>2]=0;J[d+164>>2]=0;J[d+156>>2]=0;J[d+160>>2]=0;J[d+124>>2]=0;H[d+128|0]=1;J[d+116>>2]=0;J[d+120>>2]=0;c:{d:{if(b){w=0;J[d+28>>2]=0;H[d+32|0]=1;J[d+20>>2]=0;J[d+24>>2]=0;c=0;z=J[d+176>>2];if((z|0)>0){while(1){b=c;c=c+1|0;if((z|0)>(c|0)){A=J[d+184>>2]+(b<<4)|0;b=c;while(1){f=b;b=b+1|0;if((z|0)>(b|0)){t=J[d+184>>2]+(f<<4)|0;f=b;while(1){V=N[A>>2];v=Q(N[t>>2]-V);h=J[d+184>>2];i=h+(f<<4)|0;O=N[A+4>>2];y=Q(N[i+4>>2]-O);u=Q(N[i>>2]-V);p=Q(N[t+4>>2]-O);E=Q(Q(v*y)-Q(u*p));B=N[A+8>>2];q=Q(N[i+8>>2]-B);I=Q(p*q);p=Q(N[t+8>>2]-B);y=Q(I-Q(y*p));u=Q(Q(p*u)-Q(q*v));q=Q(Q(E*E)+Q(Q(y*y)+Q(u*u)));j=q>Q(9999999747378752e-20);e:{if(!j){break e}p=Q(Q(1)/Q(Y(q)));D=Q(E*p);G=Q(u*p);v=Q(y*p);i=J[d+20>>2];if((i|0)>0){e=0;n=J[d+28>>2];if(Q(Q(D*N[n+8>>2])+Q(Q(v*N[n>>2])+Q(G*N[n+4>>2])))>Q(.9990000128746033)){break e}while(1){e=e+1|0;if((i|0)!=(e|0)){l=n+(e<<4)|0;if(!(Q(Q(D*N[l+8>>2])+Q(Q(v*N[l>>2])+Q(G*N[l+4>>2])))>Q(.9990000128746033))){continue}}break}if((e|0)<(i|0)){break e}}p=Q(Q(D*B)+Q(Q(v*V)+Q(G*O)));n=J[d+176>>2];if((n|0)>0){e=0;if(Q(Q(Q(Q(D*N[h+8>>2])+Q(Q(v*N[h>>2])+Q(G*N[h+4>>2])))-p)+Q(-.009999999776482582))>Q(0)){break e}while(1){e=e+1|0;if((n|0)!=(e|0)){l=h+(e<<4)|0;if(!(Q(Q(Q(Q(D*N[l+8>>2])+Q(Q(v*N[l>>2])+Q(G*N[l+4>>2])))-p)+Q(-.009999999776482582))>Q(0))){continue}}break}if((e|0)<(n|0)){break e}}p=Q(-p);f:{if(J[d+24>>2]!=(i|0)){break f}m=i?i<<1:1;if((m|0)<=(i|0)){break f}g:{if(!m){n=0;break g}J[8456]=J[8456]+1;n=ua[J[8258]](m<<4,16)|0;i=J[d+20>>2]}h:{if((i|0)<=0){break h}g=i&1;e=0;if((i|0)!=1){r=i&-2;i=0;while(1){k=e<<4;h=k+n|0;o=k+J[d+28>>2]|0;l=J[o+4>>2];J[h>>2]=J[o>>2];J[h+4>>2]=l;l=J[o+12>>2];J[h+8>>2]=J[o+8>>2];J[h+12>>2]=l;l=k|16;h=l+n|0;k=l+J[d+28>>2]|0;l=J[k+4>>2];J[h>>2]=J[k>>2];J[h+4>>2]=l;l=J[k+12>>2];J[h+8>>2]=J[k+8>>2];J[h+12>>2]=l;e=e+2|0;i=i+2|0;if((r|0)!=(i|0)){continue}break}}if(!g){break h}i=e<<4;l=i+n|0;e=i+J[d+28>>2]|0;i=J[e+4>>2];J[l>>2]=J[e>>2];J[l+4>>2]=i;i=J[e+12>>2];J[l+8>>2]=J[e+8>>2];J[l+12>>2]=i}i=J[d+28>>2];if(!(i?!i|!K[d+32|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](i)}J[d+28>>2]=n;H[d+32|0]=1;J[d+24>>2]=m;i=J[d+20>>2]}i=J[d+28>>2]+(i<<4)|0;N[i+12>>2]=p;N[i+8>>2]=D;N[i+4>>2]=G;N[i>>2]=v;J[d+20>>2]=J[d+20>>2]+1}i:{if(!j){break i}p=Q(Q(1)/Q(Y(q)));v=Q(p*Q(-E));u=Q(p*Q(-u));q=Q(p*Q(-y));i=J[d+20>>2];if((i|0)>0){e=0;n=J[d+28>>2];if(Q(Q(v*N[n+8>>2])+Q(Q(q*N[n>>2])+Q(u*N[n+4>>2])))>Q(.9990000128746033)){break i}while(1){e=e+1|0;if((i|0)!=(e|0)){l=n+(e<<4)|0;if(!(Q(Q(v*N[l+8>>2])+Q(Q(q*N[l>>2])+Q(u*N[l+4>>2])))>Q(.9990000128746033))){continue}}break}if((e|0)<(i|0)){break i}}p=Q(Q(v*N[A+8>>2])+Q(Q(q*N[A>>2])+Q(u*N[A+4>>2])));n=J[d+176>>2];if((n|0)>0){e=0;h=J[d+184>>2];if(Q(Q(Q(Q(v*N[h+8>>2])+Q(Q(q*N[h>>2])+Q(u*N[h+4>>2])))-p)+Q(-.009999999776482582))>Q(0)){break i}while(1){e=e+1|0;if((n|0)!=(e|0)){l=h+(e<<4)|0;if(!(Q(Q(Q(Q(v*N[l+8>>2])+Q(Q(q*N[l>>2])+Q(u*N[l+4>>2])))-p)+Q(-.009999999776482582))>Q(0))){continue}}break}if((e|0)<(n|0)){break i}}p=Q(-p);j:{if(J[d+24>>2]!=(i|0)){break j}o=i?i<<1:1;if((o|0)<=(i|0)){break j}k:{if(!o){n=0;break k}J[8456]=J[8456]+1;n=ua[J[8258]](o<<4,16)|0;i=J[d+20>>2]}l:{if((i|0)<=0){break l}g=i&1;e=0;if((i|0)!=1){r=i&-2;i=0;while(1){j=e<<4;h=j+n|0;k=j+J[d+28>>2]|0;l=J[k+4>>2];J[h>>2]=J[k>>2];J[h+4>>2]=l;l=J[k+12>>2];J[h+8>>2]=J[k+8>>2];J[h+12>>2]=l;l=j|16;h=l+n|0;j=l+J[d+28>>2]|0;l=J[j+4>>2];J[h>>2]=J[j>>2];J[h+4>>2]=l;l=J[j+12>>2];J[h+8>>2]=J[j+8>>2];J[h+12>>2]=l;e=e+2|0;i=i+2|0;if((r|0)!=(i|0)){continue}break}}if(!g){break l}i=e<<4;l=i+n|0;e=i+J[d+28>>2]|0;i=J[e+4>>2];J[l>>2]=J[e>>2];J[l+4>>2]=i;i=J[e+12>>2];J[l+8>>2]=J[e+8>>2];J[l+12>>2]=i}i=J[d+28>>2];if(!(i?!i|!K[d+32|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](i)}J[d+28>>2]=n;H[d+32|0]=1;J[d+24>>2]=o;i=J[d+20>>2]}i=J[d+28>>2]+(i<<4)|0;N[i+12>>2]=p;N[i+8>>2]=v;N[i+4>>2]=u;N[i>>2]=q;J[d+20>>2]=J[d+20>>2]+1}f=f+1|0;if((z|0)>(f|0)){continue}break}}if((b|0)!=(z|0)){continue}break}}if((c|0)!=(z|0)){continue}break}}J[d+104>>2]=0;H[d+108|0]=1;J[d+96>>2]=0;J[d+100>>2]=0;if(J[d+20>>2]<=0){break d}while(1){b=J[d+28>>2]+(w<<4)|0;J[d+80>>2]=J[b+8>>2];c=J[b+4>>2];J[d+72>>2]=J[b>>2];J[d+76>>2]=c;p=Q(N[b+12>>2]-Q(ua[J[J[a>>2]+48>>2]](a)));c=J[d+96>>2];m:{if((c|0)!=J[d+100>>2]){break m}g=c?c<<1:1;if((g|0)<=(c|0)){break m}n:{if(!g){h=0;break n}J[8456]=J[8456]+1;h=ua[J[8258]](g<<4,16)|0;c=J[d+96>>2]}o:{if((c|0)<=0){break o}e=0;if((c|0)!=1){l=c&-2;f=0;while(1){n=e<<4;i=n+h|0;r=n+J[d+104>>2]|0;b=J[r+4>>2];J[i>>2]=J[r>>2];J[i+4>>2]=b;b=J[r+12>>2];J[i+8>>2]=J[r+8>>2];J[i+12>>2]=b;b=n|16;i=b+h|0;n=b+J[d+104>>2]|0;b=J[n+4>>2];J[i>>2]=J[n>>2];J[i+4>>2]=b;b=J[n+12>>2];J[i+8>>2]=J[n+8>>2];J[i+12>>2]=b;e=e+2|0;f=f+2|0;if((l|0)!=(f|0)){continue}break}}if(!(c&1)){break o}b=e<<4;c=b+h|0;f=b+J[d+104>>2]|0;b=J[f+4>>2];J[c>>2]=J[f>>2];J[c+4>>2]=b;b=J[f+12>>2];J[c+8>>2]=J[f+8>>2];J[c+12>>2]=b}b=J[d+104>>2];if(!(b?!b|!K[d+108|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[d+104>>2]=h;H[d+108|0]=1;J[d+100>>2]=g;c=J[d+96>>2]}b=J[d+76>>2];c=J[d+104>>2]+(c<<4)|0;J[c>>2]=J[d+72>>2];J[c+4>>2]=b;b=J[d+80>>2];N[c+12>>2]=p;J[c+8>>2]=b;J[d+96>>2]=J[d+96>>2]+1;w=w+1|0;if((w|0)>2]){continue}break}break d}ee(d+112|0,c,J[d+176>>2]);break c}J[d+84>>2]=0;H[d+88|0]=1;J[d+76>>2]=0;J[d+80>>2]=0;c=0;t=J[d+96>>2];if((t|0)>0){while(1){b=c;c=c+1|0;if((t|0)>(c|0)){m=J[d+104>>2]+(b<<4)|0;b=c;while(1){f=b;b=b+1|0;if((t|0)>(b|0)){o=J[d+104>>2]+(f<<4)|0;f=b;while(1){W=N[o>>2];e=J[d+104>>2];i=e+(f<<4)|0;v=N[i+4>>2];y=N[i>>2];u=N[o+4>>2];I=Q(Q(W*v)-Q(y*u));q=N[i+8>>2];p=N[o+8>>2];D=Q(Q(u*q)-Q(v*p));G=Q(Q(p*y)-Q(q*W));p:{if(!(Q(Q(I*I)+Q(Q(D*D)+Q(G*G)))>Q(9999999747378752e-20))){break p}Z=N[m+4>>2];_=N[m>>2];E=Q(Q(y*Z)-Q(_*v));L=N[m+8>>2];V=Q(Q(v*L)-Q(Z*q));O=Q(Q(q*_)-Q(L*y));if(!(Q(Q(E*E)+Q(Q(V*V)+Q(O*O)))>Q(9999999747378752e-20))){break p}q=Q(Q(_*u)-Q(W*Z));B=Q(Q(Z*p)-Q(u*L));v=Q(Q(L*W)-Q(p*_));if(!(Q(Q(q*q)+Q(Q(B*B)+Q(v*v)))>Q(9999999747378752e-20))){break p}p=Q(Q(L*I)+Q(Q(_*D)+Q(Z*G)));if(!(Q(R(p))>Q(9.999999974752427e-7))){break p}y=Q(Q(-1)/p);u=N[i+12>>2];L=Q(q*u);q=N[m+12>>2];p=N[o+12>>2];E=Q(y*Q(L+Q(Q(I*q)+Q(E*p))));v=Q(y*Q(Q(v*u)+Q(Q(G*q)+Q(O*p))));p=Q(y*Q(Q(B*u)+Q(Q(D*q)+Q(V*p))));l=J[d+96>>2];if((l|0)>0){i=0;if(Q(Q(N[e+12>>2]+Q(Q(N[e+8>>2]*E)+Q(Q(N[e>>2]*p)+Q(v*N[e+4>>2]))))+Q(-.009999999776482582))>Q(0)){break p}while(1){i=i+1|0;if((l|0)!=(i|0)){n=e+(i<<4)|0;if(!(Q(Q(N[n+12>>2]+Q(Q(N[n+8>>2]*E)+Q(Q(N[n>>2]*p)+Q(v*N[n+4>>2]))))+Q(-.009999999776482582))>Q(0))){continue}}break}if((i|0)<(l|0)){break p}}e=J[d+76>>2];q:{if((e|0)!=J[d+80>>2]){break q}k=e?e<<1:1;if((k|0)<=(e|0)){break q}r:{if(!k){i=0;break r}J[8456]=J[8456]+1;i=ua[J[8258]](k<<4,16)|0;e=J[d+76>>2]}s:{if((e|0)<=0){break s}r=0;if((e|0)!=1){h=e&-2;x=0;while(1){g=r<<4;n=g+i|0;j=g+J[d+84>>2]|0;l=J[j+4>>2];J[n>>2]=J[j>>2];J[n+4>>2]=l;l=J[j+12>>2];J[n+8>>2]=J[j+8>>2];J[n+12>>2]=l;l=g|16;n=l+i|0;g=l+J[d+84>>2]|0;l=J[g+4>>2];J[n>>2]=J[g>>2];J[n+4>>2]=l;l=J[g+12>>2];J[n+8>>2]=J[g+8>>2];J[n+12>>2]=l;r=r+2|0;x=x+2|0;if((h|0)!=(x|0)){continue}break}}if(!(e&1)){break s}l=r<<4;n=l+i|0;e=l+J[d+84>>2]|0;l=J[e+4>>2];J[n>>2]=J[e>>2];J[n+4>>2]=l;l=J[e+12>>2];J[n+8>>2]=J[e+8>>2];J[n+12>>2]=l}l=J[d+84>>2];if(!(l?!l|!K[d+88|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](l)}J[d+84>>2]=i;H[d+88|0]=1;J[d+80>>2]=k;e=J[d+76>>2]}i=J[d+84>>2]+(e<<4)|0;J[i+12>>2]=0;N[i+8>>2]=E;N[i+4>>2]=v;N[i>>2]=p;J[d+76>>2]=J[d+76>>2]+1}f=f+1|0;if((t|0)>(f|0)){continue}break}}if((b|0)!=(t|0)){continue}break}}if((c|0)!=(t|0)){continue}break}}ee(d+112|0,J[d+84>>2],J[d+76>>2]);b=J[d+84>>2];if(!(b?!b|!K[d+88|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}b=J[d+104>>2];if(!(b?!b|!K[d+108|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}b=J[d+28>>2];if(!b|!K[d+32|0]){break c}if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}}t:{u:{l=J[d+156>>2];if((l|0)>=0){if(l){break u}J[d+32>>2]=0;J[d+36>>2]=0;J[d+48>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;H[d+32|0]=1;J[d+16>>2]=0;J[d+20>>2]=0;J[d+20>>2]=0;break t}J[d+32>>2]=0;J[d+36>>2]=0;J[d+48>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;H[d+32|0]=1;J[d+16>>2]=0;J[d+20>>2]=0;J[d+20>>2]=0;c=l;while(1){f=P(c,36);b=J[f+12>>2];if(!(b?!b|!K[f+16|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[f+12>>2]=0;H[f+16|0]=1;J[f+4>>2]=0;J[f+8>>2]=0;c=c+1|0;if(c){continue}break}break t}J[8456]=J[8456]+1;$=ua[J[8258]](l<<4,16)|0;J[d+32>>2]=0;J[d+36>>2]=0;e=0;J[d+48>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;H[d+32|0]=1;J[d+16>>2]=0;J[d+20>>2]=0;J[d+20>>2]=0;J[8456]=J[8456]+1;S=ua[J[8258]](P(l,36),16)|0;while(1){c=P(e,36)+S|0;Bc(c,d+16|0);b=J[d+48>>2];J[c+28>>2]=J[d+44>>2];J[c+32>>2]=b;b=J[d+40>>2];J[c+20>>2]=J[d+36>>2];J[c+24>>2]=b;e=e+1|0;if((l|0)!=(e|0)){continue}break}}b=J[d+28>>2];if(!(b?!b|!K[d+32|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}g=J[a+60>>2];h=J[g+8>>2];r=J[d+116>>2];if(!((h|0)>=(r|0)|(r|0)<=J[g+12>>2])){v:{if(!r){s=0;break v}J[8456]=J[8456]+1;s=ua[J[8258]](r<<4,16)|0;h=J[g+8>>2]}w:{if((h|0)<=0){break w}c=0;if((h|0)!=1){i=h&-2;x=0;while(1){n=c<<4;f=n+s|0;e=n+J[g+16>>2]|0;b=J[e+4>>2];J[f>>2]=J[e>>2];J[f+4>>2]=b;b=J[e+12>>2];J[f+8>>2]=J[e+8>>2];J[f+12>>2]=b;b=n|16;f=b+s|0;n=b+J[g+16>>2]|0;b=J[n+4>>2];J[f>>2]=J[n>>2];J[f+4>>2]=b;b=J[n+12>>2];J[f+8>>2]=J[n+8>>2];J[f+12>>2]=b;c=c+2|0;x=x+2|0;if((i|0)!=(x|0)){continue}break}}if(!(h&1)){break w}b=c<<4;c=b+s|0;f=b+J[g+16>>2]|0;b=J[f+4>>2];J[c>>2]=J[f>>2];J[c+4>>2]=b;b=J[f+12>>2];J[c+8>>2]=J[f+8>>2];J[c+12>>2]=b}b=J[g+16>>2];if(!(b?!b|!K[g+20|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[g+16>>2]=s;H[g+20|0]=1;J[g+12>>2]=r}J[g+8>>2]=r;x:{if((r|0)<=0){break x}e=0;if((r|0)!=1){f=r&-2;h=0;while(1){i=e<<4;c=i+J[J[a+60>>2]+16>>2]|0;n=i+J[d+124>>2]|0;b=J[n+4>>2];J[c>>2]=J[n>>2];J[c+4>>2]=b;b=J[n+12>>2];J[c+8>>2]=J[n+8>>2];J[c+12>>2]=b;b=i|16;c=b+J[J[a+60>>2]+16>>2]|0;i=b+J[d+124>>2]|0;b=J[i+4>>2];J[c>>2]=J[i>>2];J[c+4>>2]=b;b=J[i+12>>2];J[c+8>>2]=J[i+8>>2];J[c+12>>2]=b;e=e+2|0;h=h+2|0;if((f|0)!=(h|0)){continue}break}}if(!(r&1)){break x}b=e<<4;c=b+J[J[a+60>>2]+16>>2]|0;f=b+J[d+124>>2]|0;b=J[f+4>>2];J[c>>2]=J[f>>2];J[c+4>>2]=b;b=J[f+12>>2];J[c+8>>2]=J[f+8>>2];J[c+12>>2]=b}y:{z:{A:{B:{if((l|0)<=0){break B}h=0;while(1){m=P(h,36)+S|0;f=J[m+4>>2];n=0;g=J[d+144>>2]+P(J[J[d+164>>2]+(h<<2)>>2],12)|0;w=g;C:{while(1){r=J[(P(J[w+4>>2],12)+w|0)+8>>2];D:{if(J[m+8>>2]!=(f|0)){break D}j=f?f<<1:1;if((j|0)<=(f|0)){break D}E:{if(!j){c=0;break E}J[8456]=J[8456]+1;c=ua[J[8258]](j<<2,16)|0;f=J[m+4>>2]}o=J[m+12>>2];F:{G:{if((f|0)>0){s=0;e=0;if(f>>>0>=4){i=f&-4;C=0;while(1){k=e<<2;J[k+c>>2]=J[k+o>>2];b=k|4;J[b+c>>2]=J[b+o>>2];b=k|8;J[b+c>>2]=J[b+o>>2];b=k|12;J[b+c>>2]=J[b+o>>2];e=e+4|0;C=C+4|0;if((i|0)!=(C|0)){continue}break}}f=f&3;if(!f){break G}while(1){b=e<<2;J[b+c>>2]=J[b+o>>2];e=e+1|0;s=s+1|0;if((f|0)!=(s|0)){continue}break}break G}if(!o){break F}}if(o?K[m+16|0]:0){J[8457]=J[8457]+1;ua[J[8259]](o)}f=J[m+4>>2]}J[m+12>>2]=c;H[m+16|0]=1;J[m+8>>2]=j}J[J[m+12>>2]+(f<<2)>>2]=r;f=J[m+4>>2]+1|0;J[m+4>>2]=f;H:{if((n|0)<=1){b=J[d+124>>2];c=b+(r<<4)|0;B=N[c+8>>2];b=b+(J[w+8>>2]<<4)|0;v=N[b+8>>2];y=N[c>>2];u=N[b>>2];q=N[c+4>>2];p=N[b+4>>2];b=(d+16|0)+(n<<4)|0;J[b+12>>2]=0;v=Q(v-B);u=Q(u-y);p=Q(p-q);q=Q(Q(1)/Q(Y(Q(Q(v*v)+Q(Q(u*u)+Q(p*p))))));N[b+8>>2]=v*q;N[b+4>>2]=p*q;N[b>>2]=u*q;n=n+1|0;b=P(J[w+4>>2],12)+w|0;w=P(J[b>>2],12)+b|0;if((g|0)!=(w|0)){continue}if((n|0)==2){break H}b=(h<<4)+$|0;J[b>>2]=0;J[b+4>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;break C}n=2;b=P(J[w+4>>2],12)+w|0;w=P(J[b>>2],12)+b|0;if((g|0)!=(w|0)){continue}}break}O=N[d+20>>2];q=N[d+36>>2];B=N[d+32>>2];v=N[d+24>>2];y=N[d+16>>2];p=N[d+40>>2];b=(h<<4)+$|0;J[b+12>>2]=0;u=Q(Q(y*q)-Q(B*O));q=Q(Q(O*p)-Q(q*v));p=Q(Q(v*B)-Q(p*y));y=Q(Q(1)/Q(Y(Q(Q(u*u)+Q(Q(q*q)+Q(p*p))))));N[b+8>>2]=u*y;N[b+4>>2]=p*y;p=Q(q*y);N[b>>2]=p;N[m+20>>2]=p;N[m+24>>2]=N[b+4>>2];p=N[b+8>>2];J[m+32>>2]=1900671690;N[m+28>>2]=p}c=J[m+4>>2];I:{if((c|0)<=0){B=Q(1.0000000150474662e30);break I}f=c&1;b=(h<<4)+$|0;v=N[b+8>>2];y=N[b+4>>2];u=N[b>>2];r=J[J[a+60>>2]+16>>2];n=J[m+12>>2];J:{if((c|0)==1){B=Q(1.0000000150474662e30);e=0;break J}c=c&-2;B=Q(1.0000000150474662e30);e=0;s=0;while(1){b=e<<2;i=r+(J[n+(b|4)>>2]<<4)|0;q=Q(Q(N[i+8>>2]*v)+Q(Q(N[i>>2]*u)+Q(N[i+4>>2]*y)));b=r+(J[b+n>>2]<<4)|0;p=Q(Q(N[b+8>>2]*v)+Q(Q(N[b>>2]*u)+Q(N[b+4>>2]*y)));p=pq?q:p;e=e+2|0;s=s+2|0;if((c|0)!=(s|0)){continue}break}}if(!f){break I}b=r+(J[n+(e<<2)>>2]<<4)|0;p=Q(Q(N[b+8>>2]*v)+Q(Q(N[b>>2]*u)+Q(N[b+4>>2]*y)));B=p>2]=-B;h=h+1|0;if((l|0)!=(h|0)){continue}break}f=0;if((l|0)<=0){break B}r=0;b=0;while(1){K:{if((b|0)!=(f|0)){break K}b=f?f<<1:1;if(f>>>0>=b>>>0){b=f;break K}J[8456]=J[8456]+1;c=ua[J[8258]](b<<2,16)|0;L:{M:{if(f){s=0;e=0;if(f>>>0>=4){n=f&2147483644;x=0;while(1){h=e<<2;J[h+c>>2]=J[h+r>>2];i=h|4;J[i+c>>2]=J[i+r>>2];i=h|8;J[i+c>>2]=J[i+r>>2];i=h|12;J[i+c>>2]=J[i+r>>2];e=e+4|0;x=x+4|0;if((n|0)!=(x|0)){continue}break}}n=f&3;if(!n){break M}while(1){i=e<<2;J[i+c>>2]=J[i+r>>2];e=e+1|0;s=s+1|0;if((n|0)!=(s|0)){continue}break}break M}if(r){break M}b=1;break L}if(r){J[8457]=J[8457]+1;ua[J[8259]](r)}}r=c}J[(f<<2)+r>>2]=f;f=f+1|0;if((l|0)!=(f|0)){continue}break}i=l;while(1){c=i-1|0;b=J[(c<<2)+r>>2];J[8456]=J[8456]+1;n=ua[J[8258]](4,16)|0;J[n>>2]=b;N:{O:{if((i|0)<2){i=c;T=1;break O}b=P(b,36)+S|0;u=N[b+20>>2];q=N[b+28>>2];p=N[b+24>>2];e=i-2|0;b=1;i=c;T=1;while(1){h=e;k=J[(e<<2)+r>>2];c=P(k,36)+S|0;if(Q(Q(q*N[c+28>>2])+Q(Q(u*N[c+20>>2])+Q(p*N[c+24>>2])))>Q(.9990000128746033)){P:{Q:{if((b|0)!=(T|0)){break Q}f=b?b<<1:1;if((f|0)<=(b|0)){break Q}if(f){J[8456]=J[8456]+1;c=ua[J[8258]](f<<2,16)|0}else{c=0}R:{if((b|0)>0){s=0;e=0;if(b>>>0>=4){j=b&-4;w=0;while(1){o=e<<2;J[o+c>>2]=J[n+o>>2];g=o|4;J[g+c>>2]=J[g+n>>2];g=o|8;J[g+c>>2]=J[g+n>>2];g=o|12;J[g+c>>2]=J[g+n>>2];e=e+4|0;w=w+4|0;if((j|0)!=(w|0)){continue}break}}g=b&3;if(!g){break R}while(1){b=e<<2;J[b+c>>2]=J[b+n>>2];e=e+1|0;s=s+1|0;if((g|0)!=(s|0)){continue}break}break R}if(!n){break P}}if(n){J[8457]=J[8457]+1;ua[J[8259]](n)}break P}f=b;c=n}J[(T<<2)+c>>2]=k;T=T+1|0;e=0;S:{if((i|0)<=0){break S}while(1){b=(e<<2)+r|0;if((k|0)!=J[b>>2]){e=e+1|0;if((i|0)!=(e|0)){continue}break S}break}if((e|0)>=(i|0)){break S}e=b;i=i-1|0;b=(i<<2)+r|0;J[e>>2]=J[b>>2];J[b>>2]=k}n=c;b=f}e=h-1|0;if((h|0)>0){continue}break}T:{if((T|0)>1){c=0;J[d+104>>2]=0;H[d+108|0]=1;J[d+96>>2]=0;J[d+100>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;J[d>>2]=0;J[d+4>>2]=0;h=0;while(1){z=P(J[(h<<2)+n>>2],36)+S|0;q=N[z+28>>2];p=N[z+24>>2];N[d>>2]=N[z+20>>2]+N[d>>2];N[d+4>>2]=p+N[d+4>>2];N[d+8>>2]=q+N[d+8>>2];s=J[z+4>>2];if((s|0)>0){f=0;while(1){m=J[J[z+12>>2]+(f<<2)>>2];g=J[J[a+60>>2]+16>>2];U:{if((c|0)>0){e=0;b=J[d+104>>2];while(1){if((m|0)==J[(b+P(e,24)|0)+20>>2]){break U}e=e+1|0;if((e|0)!=(c|0)){continue}break}}e=g+(m<<4)|0;b=J[e+12>>2];J[d+24>>2]=J[e+8>>2];J[d+28>>2]=b;b=J[e+4>>2];J[d+16>>2]=J[e>>2];J[d+20>>2]=b;V:{if(J[d+100>>2]!=(c|0)){break V}o=c?c<<1:1;if((o|0)<=(c|0)){break V}W:{if(!o){s=0;break W}J[8456]=J[8456]+1;s=ua[J[8258]](P(o,24),16)|0;c=J[d+96>>2]}A=J[d+104>>2];X:{if((c|0)<=0){break X}C=0;e=0;if(c>>>0>=4){k=c&-4;b=0;while(1){g=P(e,24);j=g+s|0;t=g+A|0;g=J[t+4>>2];J[j>>2]=J[t>>2];J[j+4>>2]=g;g=J[t+20>>2];J[j+16>>2]=J[t+16>>2];J[j+20>>2]=g;g=J[t+12>>2];J[j+8>>2]=J[t+8>>2];J[j+12>>2]=g;g=P(e|1,24);j=g+s|0;t=g+A|0;g=J[t+20>>2];J[j+16>>2]=J[t+16>>2];J[j+20>>2]=g;g=J[t+12>>2];J[j+8>>2]=J[t+8>>2];J[j+12>>2]=g;g=J[t+4>>2];J[j>>2]=J[t>>2];J[j+4>>2]=g;g=P(e|2,24);j=g+s|0;t=g+A|0;g=J[t+20>>2];J[j+16>>2]=J[t+16>>2];J[j+20>>2]=g;g=J[t+12>>2];J[j+8>>2]=J[t+8>>2];J[j+12>>2]=g;g=J[t+4>>2];J[j>>2]=J[t>>2];J[j+4>>2]=g;g=P(e|3,24);j=g+s|0;t=g+A|0;g=J[t+20>>2];J[j+16>>2]=J[t+16>>2];J[j+20>>2]=g;g=J[t+12>>2];J[j+8>>2]=J[t+8>>2];J[j+12>>2]=g;g=J[t+4>>2];J[j>>2]=J[t>>2];J[j+4>>2]=g;e=e+4|0;b=b+4|0;if((k|0)!=(b|0)){continue}break}}j=c&3;if(!j){break X}while(1){b=P(e,24);g=b+s|0;k=b+A|0;b=J[k+4>>2];J[g>>2]=J[k>>2];J[g+4>>2]=b;b=J[k+20>>2];J[g+16>>2]=J[k+16>>2];J[g+20>>2]=b;b=J[k+12>>2];J[g+8>>2]=J[k+8>>2];J[g+12>>2]=b;e=e+1|0;C=C+1|0;if((j|0)!=(C|0)){continue}break}}if(!(!A|!K[d+108|0])){if(A){J[8457]=J[8457]+1;ua[J[8259]](A)}c=J[d+96>>2]}J[d+104>>2]=s;H[d+108|0]=1;J[d+100>>2]=o}b=J[d+20>>2];g=J[d+104>>2]+P(c,24)|0;c=g;J[c>>2]=J[d+16>>2];J[c+4>>2]=b;e=J[d+28>>2];c=J[d+24>>2];b=J[d+32>>2];J[g+20>>2]=m;J[g+16>>2]=b;J[g+8>>2]=c;J[g+12>>2]=e;c=J[d+96>>2]+1|0;J[d+96>>2]=c;s=J[z+4>>2]}f=f+1|0;if((s|0)>(f|0)){continue}break}}h=h+1|0;if((T|0)!=(h|0)){continue}break}break T}b=(T|0)!=1;T=1;if(b){break N}break O}J[d+28>>2]=0;H[d+32|0]=1;J[d+20>>2]=0;J[d+24>>2]=0;b=P(J[n>>2],36)+S|0;N[d+36>>2]=N[b+20>>2];N[d+40>>2]=N[b+24>>2];N[d+44>>2]=N[b+28>>2];N[d+48>>2]=N[b+32>>2];J[d+84>>2]=0;H[d+88|0]=1;J[d+76>>2]=0;J[d+80>>2]=0;u=N[d+8>>2];q=N[d>>2];p=N[d+4>>2];y=Q(Q(1)/Q(Y(Q(Q(u*u)+Q(Q(q*q)+Q(p*p))))));N[d+8>>2]=u*y;N[d+4>>2]=p*y;N[d>>2]=q*y;t=d+92|0;c=0;C=0;h=0;L=Q(0);W=Q(0);z=sa-32|0;sa=z;v=N[d+8>>2];Y:{if(Q(R(v))>Q(.7071067690849304)){q=N[d+4>>2];p=Q(Q(q*q)+Q(v*v));u=Q(Q(1)/Q(Y(p)));G=Q(p*u);p=N[d>>2];I=Q(u*Q(-v));E=Q(p*I);W=Q(q*u);p=Q(W*Q(-p));break Y}u=N[d>>2];q=N[d+4>>2];p=Q(Q(u*u)+Q(q*q));y=Q(Q(1)/Q(Y(p)));E=Q(p*y);I=Q(u*y);G=Q(I*Q(-v));L=Q(y*Q(-q));p=Q(v*L)}f=J[t+4>>2];Z:{if((f|0)>=2){while(1){g=J[t+12>>2];e=P(c,24);b=g+e|0;if(Q(Q(N[b+8>>2]*W)+Q(Q(N[b>>2]*L)+Q(I*N[b+4>>2])))>2]*W)+Q(Q(N[g>>2]*L)+Q(I*N[g+4>>2])))){f=J[g+20>>2];J[z+24>>2]=J[g+16>>2];J[z+28>>2]=f;f=J[g+12>>2];J[z+16>>2]=J[g+8>>2];J[z+20>>2]=f;f=J[g+4>>2];J[z+8>>2]=J[g>>2];J[z+12>>2]=f;f=J[b+4>>2];J[g>>2]=J[b>>2];J[g+4>>2]=f;f=J[b+12>>2];J[g+8>>2]=J[b+8>>2];J[g+12>>2]=f;f=J[b+20>>2];J[g+16>>2]=J[b+16>>2];J[g+20>>2]=f;b=J[z+12>>2];f=e+J[t+12>>2]|0;J[f>>2]=J[z+8>>2];J[f+4>>2]=b;b=J[z+28>>2];J[f+16>>2]=J[z+24>>2];J[f+20>>2]=b;b=J[z+20>>2];J[f+8>>2]=J[z+16>>2];J[f+12>>2]=b;f=J[t+4>>2]}c=c+1|0;if((f|0)>(c|0)){continue}break}e=J[t+12>>2];J[e+16>>2]=-246811958;if((f|0)>=2){O=N[e+8>>2];B=N[e+4>>2];v=N[e>>2];b=1;while(1){V=Q(0);c=e+P(b,24)|0;y=Q(N[c+8>>2]-O);u=Q(N[c>>2]-v);q=Q(N[c+4>>2]-B);D=Q(Q(E*y)+Q(Q(G*u)+Q(p*q)));u=Q(Q(W*y)+Q(Q(L*u)+Q(I*q)));if(!(Q(Q(D*D)+Q(u*u))=Q(0)?Q(Q(Q(Q(u-q)/Q(u+q))*Q(-.7853981852531433))+Q(.7853981852531433)):Q(Q(Q(Q(u+q)/Q(q-u))*Q(-.7853981852531433))+Q(2.356194496154785));V=D>2]=V;b=b+1|0;if((f|0)!=(b|0)){continue}break}}b=J[e+12>>2];J[z+16>>2]=J[e+8>>2];J[z+20>>2]=b;b=J[e+4>>2];J[z+8>>2]=J[e>>2];J[z+12>>2]=b;de(t,z+8|0,1,f-1|0);e=J[t+12>>2];b=J[d+76>>2];_:{if((b|0)!=J[d+80>>2]){break _}o=b?b<<1:1;if((o|0)<=(b|0)){break _}$:{if(!o){f=0;break $}J[8456]=J[8456]+1;f=ua[J[8258]](P(o,24),16)|0;b=J[d+76>>2]}aa:{if((b|0)<=0){break aa}c=0;if((b|0)!=1){k=b&-2;while(1){g=P(c,24);j=g+f|0;m=g+J[d+84>>2]|0;g=J[m+4>>2];J[j>>2]=J[m>>2];J[j+4>>2]=g;g=J[m+20>>2];J[j+16>>2]=J[m+16>>2];J[j+20>>2]=g;g=J[m+12>>2];J[j+8>>2]=J[m+8>>2];J[j+12>>2]=g;g=P(c|1,24);j=g+f|0;m=g+J[d+84>>2]|0;g=J[m+4>>2];J[j>>2]=J[m>>2];J[j+4>>2]=g;g=J[m+12>>2];J[j+8>>2]=J[m+8>>2];J[j+12>>2]=g;g=J[m+20>>2];J[j+16>>2]=J[m+16>>2];J[j+20>>2]=g;c=c+2|0;h=h+2|0;if((k|0)!=(h|0)){continue}break}}if(!(b&1)){break aa}b=P(c,24);c=b+f|0;h=b+J[d+84>>2]|0;b=J[h+4>>2];J[c>>2]=J[h>>2];J[c+4>>2]=b;b=J[h+20>>2];J[c+16>>2]=J[h+16>>2];J[c+20>>2]=b;b=J[h+12>>2];J[c+8>>2]=J[h+8>>2];J[c+12>>2]=b}b=J[d+84>>2];if(!(b?!b|!K[d+88|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[d+84>>2]=f;H[d+88|0]=1;J[d+80>>2]=o;b=J[d+76>>2]}c=J[d+84>>2]+P(b,24)|0;b=J[e+4>>2];J[c>>2]=J[e>>2];J[c+4>>2]=b;b=J[e+20>>2];J[c+16>>2]=J[e+16>>2];J[c+20>>2]=b;b=J[e+12>>2];J[c+8>>2]=J[e+8>>2];J[c+12>>2]=b;b=J[d+76>>2]+1|0;J[d+76>>2]=b;e=J[t+12>>2];ba:{if(J[d+80>>2]!=(b|0)){break ba}o=b?b<<1:1;if((o|0)<=(b|0)){break ba}ca:{if(!o){f=0;break ca}J[8456]=J[8456]+1;f=ua[J[8258]](P(o,24),16)|0;b=J[d+76>>2]}da:{if((b|0)<=0){break da}c=0;if((b|0)!=1){k=b&-2;h=0;while(1){g=P(c,24);j=g+f|0;m=g+J[d+84>>2]|0;g=J[m+4>>2];J[j>>2]=J[m>>2];J[j+4>>2]=g;g=J[m+20>>2];J[j+16>>2]=J[m+16>>2];J[j+20>>2]=g;g=J[m+12>>2];J[j+8>>2]=J[m+8>>2];J[j+12>>2]=g;g=P(c|1,24);j=g+f|0;m=g+J[d+84>>2]|0;g=J[m+4>>2];J[j>>2]=J[m>>2];J[j+4>>2]=g;g=J[m+12>>2];J[j+8>>2]=J[m+8>>2];J[j+12>>2]=g;g=J[m+20>>2];J[j+16>>2]=J[m+16>>2];J[j+20>>2]=g;c=c+2|0;h=h+2|0;if((k|0)!=(h|0)){continue}break}}if(!(b&1)){break da}b=P(c,24);c=b+f|0;h=b+J[d+84>>2]|0;b=J[h+4>>2];J[c>>2]=J[h>>2];J[c+4>>2]=b;b=J[h+20>>2];J[c+16>>2]=J[h+16>>2];J[c+20>>2]=b;b=J[h+12>>2];J[c+8>>2]=J[h+8>>2];J[c+12>>2]=b}b=J[d+84>>2];if(!(b?!b|!K[d+88|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[d+84>>2]=f;H[d+88|0]=1;J[d+80>>2]=o;b=J[d+76>>2]}c=J[d+84>>2]+P(b,24)|0;b=J[e+28>>2];J[c>>2]=J[e+24>>2];J[c+4>>2]=b;b=J[e+44>>2];J[c+16>>2]=J[e+40>>2];J[c+20>>2]=b;b=J[e+36>>2];J[c+8>>2]=J[e+32>>2];J[c+12>>2]=b;b=J[d+76>>2]+1|0;J[d+76>>2]=b;if(J[t+4>>2]==2){break Z}s=2;while(1){ea:{if((b|0)<2){break ea}e=J[t+12>>2]+P(s,24)|0;D=N[e+8>>2];G=N[e+4>>2];E=N[e>>2];V=N[d+8>>2];O=N[d+4>>2];B=N[d>>2];f=J[d+84>>2];c=b;while(1){b=P(c,24)+f|0;h=b-48|0;q=N[h>>2];b=b-24|0;v=Q(q-N[b>>2]);p=N[h+4>>2];y=Q(p-G);u=Q(q-E);p=Q(p-N[b+4>>2]);L=Q(Q(Q(v*y)-Q(u*p))*V);I=p;p=N[h+8>>2];q=Q(p-D);p=Q(p-N[b+8>>2]);if(Q(L+Q(Q(Q(Q(I*q)-Q(y*p))*B)+Q(O*Q(Q(p*u)-Q(q*v)))))>Q(0)){fa:{if(J[d+80>>2]!=(c|0)){break fa}j=c<<1;if((j|0)<=(c|0)){break fa}J[8456]=J[8456]+1;f=ua[J[8258]](P(c,48),16)|0;k=J[d+76>>2];ga:{if((k|0)<=0){break ga}c=0;if((k|0)!=1){g=k&-2;w=0;while(1){b=P(c,24);h=b+f|0;o=b+J[d+84>>2]|0;b=J[o+4>>2];J[h>>2]=J[o>>2];J[h+4>>2]=b;b=J[o+20>>2];J[h+16>>2]=J[o+16>>2];J[h+20>>2]=b;b=J[o+12>>2];J[h+8>>2]=J[o+8>>2];J[h+12>>2]=b;b=P(c|1,24);h=b+f|0;o=b+J[d+84>>2]|0;b=J[o+4>>2];J[h>>2]=J[o>>2];J[h+4>>2]=b;b=J[o+12>>2];J[h+8>>2]=J[o+8>>2];J[h+12>>2]=b;b=J[o+20>>2];J[h+16>>2]=J[o+16>>2];J[h+20>>2]=b;c=c+2|0;w=w+2|0;if((g|0)!=(w|0)){continue}break}}if(!(k&1)){break ga}b=P(c,24);c=b+f|0;h=b+J[d+84>>2]|0;b=J[h+4>>2];J[c>>2]=J[h>>2];J[c+4>>2]=b;b=J[h+20>>2];J[c+16>>2]=J[h+16>>2];J[c+20>>2]=b;b=J[h+12>>2];J[c+8>>2]=J[h+8>>2];J[c+12>>2]=b}b=J[d+84>>2];if(!(b?!b|!K[d+88|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[d+84>>2]=f;H[d+88|0]=1;J[d+80>>2]=j;c=J[d+76>>2]}b=J[e+4>>2];c=P(c,24)+f|0;J[c>>2]=J[e>>2];J[c+4>>2]=b;b=J[e+20>>2];J[c+16>>2]=J[e+16>>2];J[c+20>>2]=b;b=J[e+12>>2];J[c+8>>2]=J[e+8>>2];J[c+12>>2]=b;b=J[d+76>>2]+1|0;J[d+76>>2]=b;break ea}b=c-1|0;J[d+76>>2]=b;h=c>>>0>2;c=b;if(h){continue}break}}if((b|0)==1){b=J[t+12>>2]+P(s,24)|0;ha:{if(J[d+80>>2]!=1){f=J[d+84>>2];c=1;break ha}J[8456]=J[8456]+1;f=ua[J[8258]](48,16)|0;k=J[d+76>>2];ia:{if((k|0)<=0){break ia}c=0;if((k|0)!=1){j=k&-2;h=0;while(1){e=P(c,24);g=e+f|0;o=e+J[d+84>>2]|0;e=J[o+4>>2];J[g>>2]=J[o>>2];J[g+4>>2]=e;e=J[o+20>>2];J[g+16>>2]=J[o+16>>2];J[g+20>>2]=e;e=J[o+12>>2];J[g+8>>2]=J[o+8>>2];J[g+12>>2]=e;e=P(c|1,24);g=e+f|0;o=e+J[d+84>>2]|0;e=J[o+4>>2];J[g>>2]=J[o>>2];J[g+4>>2]=e;e=J[o+12>>2];J[g+8>>2]=J[o+8>>2];J[g+12>>2]=e;e=J[o+20>>2];J[g+16>>2]=J[o+16>>2];J[g+20>>2]=e;c=c+2|0;h=h+2|0;if((j|0)!=(h|0)){continue}break}}if(!(k&1)){break ia}c=P(c,24);e=c+f|0;h=c+J[d+84>>2]|0;c=J[h+4>>2];J[e>>2]=J[h>>2];J[e+4>>2]=c;c=J[h+20>>2];J[e+16>>2]=J[h+16>>2];J[e+20>>2]=c;c=J[h+12>>2];J[e+8>>2]=J[h+8>>2];J[e+12>>2]=c}c=J[d+84>>2];if(!(c?!c|!K[d+88|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}J[d+84>>2]=f;H[d+88|0]=1;J[d+80>>2]=2;c=J[d+76>>2]}f=P(c,24)+f|0;c=J[b+4>>2];J[f>>2]=J[b>>2];J[f+4>>2]=c;c=J[b+20>>2];J[f+16>>2]=J[b+16>>2];J[f+20>>2]=c;c=J[b+12>>2];J[f+8>>2]=J[b+8>>2];J[f+12>>2]=c;b=J[d+76>>2]+1|0;J[d+76>>2]=b}s=s+1|0;if((s|0)!=J[t+4>>2]){continue}break}break Z}if((f|0)!=1){break Z}b=J[d+76>>2];while(1){e=J[t+12>>2];ja:{if(J[d+80>>2]!=(b|0)){break ja}o=b?b<<1:1;if((o|0)<=(b|0)){break ja}ka:{if(!o){f=0;break ka}J[8456]=J[8456]+1;f=ua[J[8258]](P(o,24),16)|0;b=J[d+76>>2]}la:{if((b|0)<=0){break la}c=0;if((b|0)!=1){k=b&-2;h=0;while(1){g=P(c,24);j=g+f|0;m=g+J[d+84>>2]|0;g=J[m+4>>2];J[j>>2]=J[m>>2];J[j+4>>2]=g;g=J[m+20>>2];J[j+16>>2]=J[m+16>>2];J[j+20>>2]=g;g=J[m+12>>2];J[j+8>>2]=J[m+8>>2];J[j+12>>2]=g;g=P(c|1,24);j=g+f|0;m=g+J[d+84>>2]|0;g=J[m+4>>2];J[j>>2]=J[m>>2];J[j+4>>2]=g;g=J[m+12>>2];J[j+8>>2]=J[m+8>>2];J[j+12>>2]=g;g=J[m+20>>2];J[j+16>>2]=J[m+16>>2];J[j+20>>2]=g;c=c+2|0;h=h+2|0;if((k|0)!=(h|0)){continue}break}}if(!(b&1)){break la}b=P(c,24);c=b+f|0;h=b+J[d+84>>2]|0;b=J[h+4>>2];J[c>>2]=J[h>>2];J[c+4>>2]=b;b=J[h+20>>2];J[c+16>>2]=J[h+16>>2];J[c+20>>2]=b;b=J[h+12>>2];J[c+8>>2]=J[h+8>>2];J[c+12>>2]=b}b=J[d+84>>2];if(!(b?!b|!K[d+88|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[d+84>>2]=f;H[d+88|0]=1;J[d+80>>2]=o;b=J[d+76>>2]}c=J[d+84>>2]+P(b,24)|0;b=J[e+4>>2];J[c>>2]=J[e>>2];J[c+4>>2]=b;b=J[e+20>>2];J[c+16>>2]=J[e+16>>2];J[c+20>>2]=b;b=J[e+12>>2];J[c+8>>2]=J[e+8>>2];J[c+12>>2]=b;b=J[d+76>>2]+1|0;J[d+76>>2]=b;C=C+1|0;if((C|0)>2]){continue}break}}sa=z+32|0;ma:{if(J[d+76>>2]<=0){c=J[d+96>>2];break ma}b=0;x=J[d+20>>2];while(1){j=P(b,24);g=j+J[d+84>>2]|0;na:{if(J[d+24>>2]!=(x|0)){break na}o=x?x<<1:1;if((o|0)<=(x|0)){break na}oa:{if(!o){c=0;break oa}J[8456]=J[8456]+1;c=ua[J[8258]](o<<2,16)|0;x=J[d+20>>2]}t=J[d+28>>2];pa:{qa:{if((x|0)>0){k=x&3;s=0;e=0;if(x>>>0>=4){h=x&-4;x=0;while(1){m=e<<2;J[m+c>>2]=J[m+t>>2];f=m|4;J[f+c>>2]=J[f+t>>2];f=m|8;J[f+c>>2]=J[f+t>>2];f=m|12;J[f+c>>2]=J[f+t>>2];e=e+4|0;x=x+4|0;if((h|0)!=(x|0)){continue}break}}if(!k){break qa}while(1){f=e<<2;J[f+c>>2]=J[f+t>>2];e=e+1|0;s=s+1|0;if((k|0)!=(s|0)){continue}break}break qa}if(!t){break pa}}if(t?K[d+32|0]:0){J[8457]=J[8457]+1;ua[J[8259]](t)}x=J[d+20>>2]}J[d+28>>2]=c;H[d+32|0]=1;J[d+24>>2]=o}J[J[d+28>>2]+(x<<2)>>2]=J[g+20>>2];x=J[d+20>>2]+1|0;J[d+20>>2]=x;c=J[d+96>>2];ra:{if((c|0)<=0){break ra}g=J[(j+J[d+84>>2]|0)+20>>2];e=0;h=J[d+104>>2];while(1){f=h+P(e,24)|0;if((g|0)!=J[f+20>>2]){e=e+1|0;if((e|0)!=(c|0)){continue}break ra}break}J[f+20>>2]=-1}b=b+1|0;if((b|0)>2]){continue}break}}sa:{if((c|0)>0){w=0;g=J[d+104>>2];while(1){j=J[(g+P(w,24)|0)+20>>2];ta:{if((j|0)==-1|(l|0)<=0){break ta}h=0;if((T|0)>0){while(1){b=P(h,36)+S|0;e=0;ua:{while(1){if(J[(e<<2)+n>>2]==(h|0)){break ua}e=e+1|0;if((T|0)!=(e|0)){continue}break}f=J[b+4>>2];if((f|0)<=0){break ua}b=J[b+12>>2];e=0;while(1){if((j|0)!=J[b+(e<<2)>>2]){e=e+1|0;if((f|0)!=(e|0)){continue}break ua}break}b=1;break sa}h=h+1|0;if((l|0)!=(h|0)){continue}break ta}}while(1){va:{b=P(h,36)+S|0;f=J[b+4>>2];if((f|0)<=0){break va}b=J[b+12>>2];e=0;while(1){if((j|0)!=J[b+(e<<2)>>2]){e=e+1|0;if((f|0)!=(e|0)){continue}break va}break}b=1;break sa}h=h+1|0;if((l|0)!=(h|0)){continue}break}}w=w+1|0;if((w|0)!=(c|0)){continue}break}}k=J[a+60>>2];c=J[k+28>>2];if((c|0)==J[k+32>>2]){f=0;g=c?c<<1:1;if((g|0)>J[k+32>>2]){if(g){J[8456]=J[8456]+1;c=ua[J[8258]](P(g,36),16)|0}else{c=0}h=J[k+28>>2];wa:{if((h|0)<=0){break wa}while(1){b=P(f,36);j=b+c|0;b=b+J[k+36>>2]|0;Bc(j,b);e=J[b+32>>2];J[j+28>>2]=J[b+28>>2];J[j+32>>2]=e;e=J[b+24>>2];J[j+20>>2]=J[b+20>>2];J[j+24>>2]=e;f=f+1|0;if((h|0)!=(f|0)){continue}break}b=J[k+28>>2];if((b|0)<=0){break wa}f=0;while(1){h=J[k+36>>2]+P(f,36)|0;e=J[h+12>>2];if(!(e?!e|!K[h+16|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](e)}J[h+12>>2]=0;H[h+16|0]=1;J[h+4>>2]=0;J[h+8>>2]=0;f=f+1|0;if((b|0)!=(f|0)){continue}break}}b=J[k+36>>2];if(!(b?!b|!K[k+40|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[k+36>>2]=c;H[k+40|0]=1;J[k+32>>2]=g}c=J[k+28>>2]}c=J[k+36>>2]+P(c,36)|0;Bc(c,d+16|0);b=J[d+48>>2];J[c+28>>2]=J[d+44>>2];J[c+32>>2]=b;b=J[d+40>>2];J[c+20>>2]=J[d+36>>2];J[c+24>>2]=b;J[k+28>>2]=J[k+28>>2]+1;b=0}c=J[d+84>>2];if(!(c?!c|!K[d+88|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}c=J[d+28>>2];if(!(c?!c|!K[d+32|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}c=J[d+104>>2];if(!(c?!c|!K[d+108|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}if(!(b&(T|0)>0)){break N}}z=0;while(1){b=0;c=P(J[(z<<2)+n>>2],36)+S|0;U=J[c+4>>2];xa:{if((U|0)<=0){break xa}s=0;J[8456]=J[8456]+1;f=U<<2;b=ua[J[8258]](f,16)|0;k=Fa(b,0,f);j=J[c+12>>2];e=0;if(U>>>0>=4){h=U&-4;x=0;while(1){g=e<<2;J[g+k>>2]=J[g+j>>2];f=g|4;J[f+k>>2]=J[f+j>>2];f=g|8;J[f+k>>2]=J[f+j>>2];f=g|12;J[f+k>>2]=J[f+j>>2];e=e+4|0;x=x+4|0;if((h|0)!=(x|0)){continue}break}}h=U&3;if(!h){break xa}while(1){f=e<<2;J[f+k>>2]=J[f+j>>2];e=e+1|0;s=s+1|0;if((h|0)!=(s|0)){continue}break}}e=K[c+24|0]|K[c+25|0]<<8|(K[c+26|0]<<16|K[c+27|0]<<24);f=K[c+20|0]|K[c+21|0]<<8|(K[c+22|0]<<16|K[c+23|0]<<24);H[d+19|0]=f;H[d+20|0]=f>>>8;H[d+21|0]=f>>>16;H[d+22|0]=f>>>24;H[d+23|0]=e;H[d+24|0]=e>>>8;H[d+25|0]=e>>>16;H[d+26|0]=e>>>24;f=K[c+32|0]|K[c+33|0]<<8|(K[c+34|0]<<16|K[c+35|0]<<24);c=K[c+28|0]|K[c+29|0]<<8|(K[c+30|0]<<16|K[c+31|0]<<24);H[d+27|0]=c;H[d+28|0]=c>>>8;H[d+29|0]=c>>>16;H[d+30|0]=c>>>24;H[d+31|0]=f;H[d+32|0]=f>>>8;H[d+33|0]=f>>>16;H[d+34|0]=f>>>24;M=J[a+60>>2];h=J[M+28>>2];ya:{if((h|0)!=J[M+32>>2]){break ya}t=h?h<<1:1;if((t|0)<=(h|0)){break ya}za:{if(!t){m=0;break za}J[8456]=J[8456]+1;m=ua[J[8258]](P(t,36),16)|0;h=J[M+28>>2]}Aa:{if((h|0)<=0){break Aa}o=0;while(1){f=J[M+36>>2];c=P(o,36);F=c+m|0;J[F+12>>2]=0;H[F+16|0]=1;J[F+4>>2]=0;J[F+8>>2]=0;c=c+f|0;w=J[c+4>>2];Ba:{if((w|0)<=0){J[F+4>>2]=w;break Ba}J[8456]=J[8456]+1;j=w<<2;C=ua[J[8258]](j,16)|0;X=J[F+12>>2];k=J[F+4>>2];Ca:{Da:{if((k|0)>0){s=0;e=0;if(k>>>0>=4){g=k&-4;x=0;while(1){A=e<<2;J[A+C>>2]=J[A+X>>2];f=A|4;J[f+C>>2]=J[f+X>>2];f=A|8;J[f+C>>2]=J[f+X>>2];f=A|12;J[f+C>>2]=J[f+X>>2];e=e+4|0;x=x+4|0;if((g|0)!=(x|0)){continue}break}}g=k&3;if(g){while(1){f=e<<2;J[f+C>>2]=J[f+X>>2];e=e+1|0;s=s+1|0;if((g|0)!=(s|0)){continue}break}}if(K[F+16|0]){break Da}break Ca}if(!X|!K[F+16|0]){break Ca}}if(X){J[8457]=J[8457]+1;ua[J[8259]](X)}}J[F+12>>2]=C;H[F+16|0]=1;J[F+8>>2]=w;s=0;A=Fa(C,0,j);J[F+4>>2]=w;k=J[c+12>>2];e=0;if(w>>>0>=4){g=w&-4;x=0;while(1){j=e<<2;J[j+A>>2]=J[j+k>>2];f=j|4;J[f+A>>2]=J[f+k>>2];f=j|8;J[f+A>>2]=J[f+k>>2];f=j|12;J[f+A>>2]=J[f+k>>2];e=e+4|0;x=x+4|0;if((g|0)!=(x|0)){continue}break}}g=w&3;if(!g){break Ba}while(1){f=e<<2;J[f+A>>2]=J[f+k>>2];e=e+1|0;s=s+1|0;if((g|0)!=(s|0)){continue}break}}f=J[c+24>>2];J[F+20>>2]=J[c+20>>2];J[F+24>>2]=f;f=J[c+32>>2];J[F+28>>2]=J[c+28>>2];J[F+32>>2]=f;o=o+1|0;if((o|0)!=(h|0)){continue}break}c=0;f=J[M+28>>2];if((f|0)<=0){break Aa}while(1){h=J[M+36>>2]+P(c,36)|0;e=J[h+12>>2];if(!(e?!e|!K[h+16|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](e)}J[h+12>>2]=0;H[h+16|0]=1;J[h+4>>2]=0;J[h+8>>2]=0;c=c+1|0;if((f|0)!=(c|0)){continue}break}}c=J[M+36>>2];if(!(c?!c|!K[M+40|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}J[M+36>>2]=m;H[M+40|0]=1;J[M+32>>2]=t;h=J[M+28>>2]}m=J[M+36>>2]+P(h,36)|0;J[m+12>>2]=0;H[m+16|0]=1;J[m+4>>2]=0;J[m+8>>2]=0;Ea:{if((U|0)<=0){J[m+4>>2]=U;break Ea}J[8456]=J[8456]+1;h=U<<2;k=ua[J[8258]](h,16)|0;o=J[m+12>>2];g=J[m+4>>2];Fa:{Ga:{if((g|0)>0){s=0;e=0;if(g>>>0>=4){f=g&-4;x=0;while(1){j=e<<2;J[j+k>>2]=J[j+o>>2];c=j|4;J[c+k>>2]=J[c+o>>2];c=j|8;J[c+k>>2]=J[c+o>>2];c=j|12;J[c+k>>2]=J[c+o>>2];e=e+4|0;x=x+4|0;if((f|0)!=(x|0)){continue}break}}f=g&3;if(f){while(1){c=e<<2;J[c+k>>2]=J[c+o>>2];e=e+1|0;s=s+1|0;if((f|0)!=(s|0)){continue}break}}if(K[m+16|0]){break Ga}break Fa}if(!o|!K[m+16|0]){break Fa}}if(o){J[8457]=J[8457]+1;ua[J[8259]](o)}}J[m+12>>2]=k;H[m+16|0]=1;J[m+8>>2]=U;f=0;j=Fa(k,0,h);J[m+4>>2]=U;e=0;if(U>>>0>=4){h=U&-4;s=0;while(1){g=e<<2;J[g+j>>2]=J[b+g>>2];c=g|4;J[c+j>>2]=J[b+c>>2];c=g|8;J[c+j>>2]=J[b+c>>2];c=g|12;J[c+j>>2]=J[b+c>>2];e=e+4|0;s=s+4|0;if((h|0)!=(s|0)){continue}break}}h=U&3;if(!h){break Ea}while(1){c=e<<2;J[c+j>>2]=J[b+c>>2];e=e+1|0;f=f+1|0;if((h|0)!=(f|0)){continue}break}}f=K[d+23|0]|K[d+24|0]<<8|(K[d+25|0]<<16|K[d+26|0]<<24);c=K[d+19|0]|K[d+20|0]<<8|(K[d+21|0]<<16|K[d+22|0]<<24);H[m+20|0]=c;H[m+21|0]=c>>>8;H[m+22|0]=c>>>16;H[m+23|0]=c>>>24;H[m+24|0]=f;H[m+25|0]=f>>>8;H[m+26|0]=f>>>16;H[m+27|0]=f>>>24;f=K[d+31|0]|K[d+32|0]<<8|(K[d+33|0]<<16|K[d+34|0]<<24);c=K[d+27|0]|K[d+28|0]<<8|(K[d+29|0]<<16|K[d+30|0]<<24);H[m+28|0]=c;H[m+29|0]=c>>>8;H[m+30|0]=c>>>16;H[m+31|0]=c>>>24;H[m+32|0]=f;H[m+33|0]=f>>>8;H[m+34|0]=f>>>16;H[m+35|0]=f>>>24;J[M+28>>2]=J[M+28>>2]+1;if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}z=z+1|0;if((z|0)!=(T|0)){continue}break}}if(n){J[8457]=J[8457]+1;ua[J[8259]](n)}if(i){continue}break}ie(J[a+60>>2]);if(r){J[8457]=J[8457]+1;ua[J[8259]](r)}if((l|0)<=0){break A}c=0;while(1){b=P(c,36)+S|0;a=J[b+12>>2];if(!(a?!a|!K[b+16|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](a)}J[b+12>>2]=0;H[b+16|0]=1;J[b+4>>2]=0;J[b+8>>2]=0;c=c+1|0;if((l|0)!=(c|0)){continue}break}break z}ie(J[a+60>>2])}if(!S){break y}}if(S){J[8457]=J[8457]+1;ua[J[8259]](S)}}if($){J[8457]=J[8457]+1;ua[J[8259]]($)}a=J[d+164>>2];if(!(a?!a|!K[d+168|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](a)}J[d+164>>2]=0;H[d+168|0]=1;J[d+156>>2]=0;J[d+160>>2]=0;a=J[d+144>>2];if(!(a?!a|!K[d+148|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](a)}J[d+144>>2]=0;H[d+148|0]=1;J[d+136>>2]=0;J[d+140>>2]=0;a=J[d+124>>2];if(!(a?!a|!K[d+128|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](a)}a=J[d+184>>2];if(!(a?!a|!K[d+188|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](a)}sa=d+192|0;return 1}function Km(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=Q(0),h=0,i=0,j=Q(0),k=0,l=Q(0),m=Q(0),n=0,o=0,p=Q(0),q=0,r=0,s=Q(0),t=Q(0),u=0,v=0,w=Q(0),x=0,y=Q(0),z=0,A=0,B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=Q(0),I=Q(0),L=Q(0),M=Q(0),O=Q(0),S=Q(0),T=Q(0),U=Q(0),V=Q(0),W=Q(0),X=Q(0),Z=Q(0),_=Q(0),$=Q(0),aa=Q(0),ba=Q(0),ca=0,da=Q(0),ea=Q(0),fa=Q(0),ga=Q(0),ha=Q(0),ia=Q(0),ja=0,ka=Q(0),la=Q(0),ma=Q(0),na=Q(0),oa=Q(0),pa=0,qa=0,ra=Q(0),ta=Q(0),va=Q(0),wa=0;f=sa-928|0;sa=f;h=J[a+56>>2];if(!h){h=J[a+4>>2];h=ua[J[J[h>>2]+12>>2]](h,J[b+8>>2],J[c+8>>2])|0;H[a+52|0]=1;J[a+56>>2]=h}J[e+4>>2]=h;x=J[c+4>>2];a:{b:{c:{d:{z=J[b+4>>2];switch(J[z+4>>2]-8|0){case 0:break c;case 2:break d;default:break b}}e:{switch(J[x+4>>2]-8|0){case 2:d=z+36|0;a=J[z+60>>2];g=N[d+(a<<2)>>2];l=N[d+((a+2|0)%3<<2)>>2];k=x+36|0;d=J[x+60>>2];j=N[h+848>>2];g=Sc(f+432|0,f+8|0,g,l,N[k+(d<<2)>>2],N[k+((d+2|0)%3<<2)>>2],a,d,J[b+12>>2],J[c+12>>2],j);if(g>2]+16>>2]](e,f+432|0,f+8|0,g)}a=J[e+4>>2];if(!J[a+844>>2]){break a}c=J[a+836>>2];d=J[J[e+8>>2]+8>>2];b=(c|0)==(d|0);r=a;a=J[J[e+12>>2]+8>>2];Ua(r,(b?c:a)+4|0,(b?a:d)+4|0);break a;case 0:break e;default:break b}}d=z+36|0;a=J[z+60>>2];j=N[h+848>>2];g=Sc(f+432|0,f+8|0,N[d+(a<<2)>>2],N[d+((a+2|0)%3<<2)>>2],Q(0),Q(N[x+36>>2]*N[x+20>>2]),a,1,J[b+12>>2],J[c+12>>2],j);if(g>2]+16>>2]](e,f+432|0,f+8|0,g)}a=J[e+4>>2];if(!J[a+844>>2]){break a}c=J[a+836>>2];d=J[J[e+8>>2]+8>>2];b=(c|0)==(d|0);r=a;a=J[J[e+12>>2]+8>>2];Ua(r,(b?c:a)+4|0,(b?a:d)+4|0);break a}if(J[x+4>>2]!=10){break b}d=x+36|0;a=J[x+60>>2];j=N[h+848>>2];g=Sc(f+432|0,f+8|0,Q(0),Q(N[z+36>>2]*N[z+20>>2]),N[d+(a<<2)>>2],N[d+((a+2|0)%3<<2)>>2],1,a,J[b+12>>2],J[c+12>>2],j);if(g>2]+16>>2]](e,f+432|0,f+8|0,g)}a=J[e+4>>2];if(!J[a+844>>2]){break a}c=J[a+836>>2];d=J[J[e+8>>2]+8>>2];b=(c|0)==(d|0);r=a;a=J[J[e+12>>2]+8>>2];Ua(r,(b?c:a)+4|0,(b?a:d)+4|0);break a}J[f+920>>2]=1566444395;H[f+764|0]=0;J[f+740>>2]=953267991;r=sc(f+352|0,z,x,f+432|0,J[a+8>>2]);J[r+32>>2]=x;J[r+28>>2]=z;j=Q(Q(Q(Q(ua[J[J[z>>2]+48>>2]](z))+Q(ua[J[J[x>>2]+48>>2]](x)))+N[J[a+56>>2]+848>>2])+N[e+32>>2]);N[f+920>>2]=j*j;h=J[b+12>>2];k=J[h+12>>2];J[f+800>>2]=J[h+8>>2];J[f+804>>2]=k;k=J[h+4>>2];J[f+792>>2]=J[h>>2];J[f+796>>2]=k;k=J[h+28>>2];J[f+816>>2]=J[h+24>>2];J[f+820>>2]=k;k=J[h+20>>2];J[f+808>>2]=J[h+16>>2];J[f+812>>2]=k;k=J[h+44>>2];J[f+832>>2]=J[h+40>>2];J[f+836>>2]=k;k=J[h+36>>2];J[f+824>>2]=J[h+32>>2];J[f+828>>2]=k;k=J[h+60>>2];J[f+848>>2]=J[h+56>>2];J[f+852>>2]=k;k=J[h+52>>2];J[f+840>>2]=J[h+48>>2];J[f+844>>2]=k;h=J[c+12>>2];k=J[h+12>>2];J[f+864>>2]=J[h+8>>2];J[f+868>>2]=k;k=J[h+4>>2];J[f+856>>2]=J[h>>2];J[f+860>>2]=k;i=J[h+20>>2];k=f+872|0;J[k>>2]=J[h+16>>2];J[k+4>>2]=i;i=J[h+28>>2];J[f+880>>2]=J[h+24>>2];J[f+884>>2]=i;n=J[h+36>>2];i=f+888|0;J[i>>2]=J[h+32>>2];J[i+4>>2]=n;n=J[h+44>>2];J[f+896>>2]=J[h+40>>2];J[f+900>>2]=n;q=J[h+52>>2];n=f+904|0;J[n>>2]=J[h+48>>2];J[n+4>>2]=q;q=J[h+60>>2];J[f+912>>2]=J[h+56>>2];J[f+916>>2]=q;f:{q=J[z+4>>2];if((q|0)>6){break f}h=J[x+4>>2];if((h|0)>6){break f}J[f+348>>2]=15212;if(q){W=Q(ua[J[J[z>>2]+48>>2]](z));h=J[x+4>>2]}if(h){g=Q(ua[J[J[x>>2]+48>>2]](x))}H[f+44|0]=0;N[f+36>>2]=g;N[f+32>>2]=W;J[f+12>>2]=e;J[f+8>>2]=15444;if(!J[z+60>>2]){break f}if(J[x+60>>2]){I=N[J[a+56>>2]+848>>2];g:{h:{if(K[d+24|0]){W=Q(-1.0000000150474662e30);v=J[z+60>>2];u=J[x+60>>2];n=J[b+12>>2];q=J[c+12>>2];i=sa-96|0;sa=i;J[8759]=J[8759]+1;g=N[v+72>>2];j=N[v+64>>2];y=N[v+68>>2];l=N[u+72>>2];w=N[u+64>>2];C=N[u+68>>2];$=Q(Q(Q(Q(g*N[n+40>>2])+Q(Q(j*N[n+32>>2])+Q(y*N[n+36>>2])))+N[n+56>>2])-Q(Q(Q(l*N[q+40>>2])+Q(Q(w*N[q+32>>2])+Q(C*N[q+36>>2])))+N[q+56>>2]));aa=Q(Q(Q(Q(g*N[n+24>>2])+Q(Q(j*N[n+16>>2])+Q(y*N[n+20>>2])))+N[n+52>>2])-Q(Q(Q(l*N[q+24>>2])+Q(Q(w*N[q+16>>2])+Q(C*N[q+20>>2])))+N[q+52>>2]));ba=Q(Q(Q(Q(g*N[n+8>>2])+Q(Q(j*N[n>>2])+Q(y*N[n+4>>2])))+N[n+48>>2])-Q(Q(Q(l*N[q+8>>2])+Q(Q(w*N[q>>2])+Q(C*N[q+4>>2])))+N[q+48>>2]));j=Q(34028234663852886e22);i:{j:{h=J[v+28>>2];if((h|0)>0){while(1){d=J[v+36>>2]+P(A,36)|0;y=N[d+28>>2];l=N[d+20>>2];w=N[d+24>>2];C=N[n+8>>2];D=N[n>>2];F=N[n+4>>2];Z=N[n+24>>2];_=N[n+16>>2];G=N[n+20>>2];L=N[n+40>>2];M=N[n+32>>2];X=N[n+36>>2];J[i+12>>2]=0;g=Q(Q(L*y)+Q(Q(M*l)+Q(w*X)));N[i+8>>2]=g;p=Q(Q(Z*y)+Q(Q(_*l)+Q(w*G)));N[i+4>>2]=p;t=Q(Q(C*y)+Q(Q(D*l)+Q(w*F)));N[i>>2]=t;if(Q(Q($*g)+Q(Q(ba*t)+Q(aa*p)))>2]=g;p=Q(-p);N[i+4>>2]=p;t=Q(-t);N[i>>2]=t}J[8757]=J[8757]+1;k:{if(K[33065]){y=Q(Q($*g)+Q(Q(ba*t)+Q(aa*p)));l=N[v+88>>2];S=Q(-l);B=l;l=Q(Q(L*g)+Q(Q(C*t)+Q(Z*p)));O=Q((l>2];S=Q(-l);B=l;l=Q(Q(M*g)+Q(Q(D*t)+Q(_*p)));B=Q((l>2];l=Q(O+Q(B+Q(l*(l>2];F=l>w?l:w;l=N[u+88>>2];S=Q(-l);B=l;l=Q(Q(N[q+40>>2]*g)+Q(Q(N[q+8>>2]*t)+Q(p*N[q+24>>2])));O=Q((l>2];S=Q(-l);B=l;l=Q(Q(N[q+32>>2]*g)+Q(Q(N[q>>2]*t)+Q(p*N[q+16>>2])));B=Q((l>2]*g)+Q(Q(N[q+4>>2]*t)+Q(p*N[q+20>>2])));l=N[u+84>>2];g=Q(O+Q(B+Q(g*(g>2];g=Q(F+(g>l?g:l));l=Q(y+g);g=Q(g-y);if((g>l?l:g)>j){break k}}J[8758]=J[8758]+1;mb(v,n,i,i+92|0,i+88|0,i- -64|0,i+48|0);mb(u,q,i,i+84|0,i+80|0,i+32|0,i+16|0);g=N[i+88>>2];y=N[i+84>>2];if(g>2];w=N[i+92>>2];if(l>2];J[f+248>>2]=J[i>>2];J[f+252>>2]=d;d=J[i+12>>2];J[f+256>>2]=J[i+8>>2];J[f+260>>2]=d;j=g}A=A+1|0;if((h|0)!=(A|0)){continue}break}}h=J[u+28>>2];if((h|0)>0){A=0;while(1){d=J[u+36>>2]+P(A,36)|0;y=N[d+28>>2];l=N[d+20>>2];w=N[d+24>>2];C=N[q+8>>2];D=N[q>>2];F=N[q+4>>2];Z=N[q+24>>2];_=N[q+16>>2];G=N[q+20>>2];L=N[q+40>>2];M=N[q+32>>2];X=N[q+36>>2];J[i+12>>2]=0;g=Q(Q(L*y)+Q(Q(M*l)+Q(w*X)));N[i+8>>2]=g;p=Q(Q(Z*y)+Q(Q(_*l)+Q(w*G)));N[i+4>>2]=p;t=Q(Q(C*y)+Q(Q(D*l)+Q(w*F)));N[i>>2]=t;if(Q(Q($*g)+Q(Q(ba*t)+Q(aa*p)))>2]=g;p=Q(-p);N[i+4>>2]=p;t=Q(-t);N[i>>2]=t}J[8757]=J[8757]+1;l:{if(K[33065]){y=Q(Q($*g)+Q(Q(ba*t)+Q(aa*p)));l=N[v+88>>2];S=Q(-l);B=l;l=Q(Q(N[n+40>>2]*g)+Q(Q(N[n+8>>2]*t)+Q(p*N[n+24>>2])));O=Q((l>2];S=Q(-l);B=l;l=Q(Q(N[n+32>>2]*g)+Q(Q(N[n>>2]*t)+Q(p*N[n+16>>2])));B=Q((l>2]*g)+Q(Q(N[n+4>>2]*t)+Q(p*N[n+20>>2])));w=N[v+84>>2];l=Q(O+Q(B+Q(l*(l>2];w=l>w?l:w;l=N[u+88>>2];S=Q(-l);B=l;l=Q(Q(L*g)+Q(Q(C*t)+Q(Z*p)));O=Q((l>2];S=Q(-l);B=l;l=Q(Q(M*g)+Q(Q(D*t)+Q(_*p)));B=Q((l>2];g=Q(O+Q(B+Q(g*(g>2];g=Q(w+(g>l?g:l));l=Q(y+g);g=Q(g-y);if((g>l?l:g)>j){break l}}J[8758]=J[8758]+1;mb(v,n,i,i+92|0,i+88|0,i- -64|0,i+48|0);mb(u,q,i,i+84|0,i+80|0,i+32|0,i+16|0);g=N[i+88>>2];y=N[i+84>>2];if(g>2];w=N[i+92>>2];if(l>2];J[f+248>>2]=J[i>>2];J[f+252>>2]=d;d=J[i+12>>2];J[f+256>>2]=J[i+8>>2];J[f+260>>2]=d;j=g}A=A+1|0;if((h|0)!=(A|0)){continue}break}}ca=1;d=J[v+48>>2];m:{if((d|0)<=0){break m}h=0;A=J[u+48>>2];if((A|0)<=0){break m}L=Q(0);r=-1;k=-1;M=Q(0);X=Q(0);Z=Q(0);_=Q(0);G=Q(0);while(1){if((A|0)>0){d=J[v+56>>2]+(h<<4)|0;g=N[d+8>>2];w=N[d>>2];C=N[d+4>>2];y=Q(Q(N[n+24>>2]*g)+Q(Q(N[n+16>>2]*w)+Q(C*N[n+20>>2])));ra=Q(-y);l=Q(Q(N[n+8>>2]*g)+Q(Q(N[n>>2]*w)+Q(C*N[n+4>>2])));ta=Q(-l);w=Q(Q(N[n+40>>2]*g)+Q(Q(N[n+32>>2]*w)+Q(C*N[n+36>>2])));va=Q(-w);d=0;while(1){A=J[u+56>>2]+(d<<4)|0;F=N[A+8>>2];p=N[A>>2];t=N[A+4>>2];O=N[q+40>>2];ea=N[q+32>>2];fa=N[q+36>>2];ga=N[q+24>>2];ka=N[q+16>>2];la=N[q+20>>2];ma=N[q+8>>2];na=N[q>>2];oa=N[q+4>>2];J[i+12>>2]=0;C=Q(Q(ga*F)+Q(Q(ka*p)+Q(t*la)));D=Q(Q(ma*F)+Q(Q(na*p)+Q(t*oa)));g=Q(Q(l*C)+Q(D*ra));F=Q(Q(O*F)+Q(Q(ea*p)+Q(t*fa)));p=Q(Q(w*D)+Q(F*ta));t=Q(Q(y*F)+Q(C*va));n:{if(!(+Q(R(t))>1e-6|+Q(R(p))>1e-6|+Q(R(g))>1e-6)){break n}ha=Q(Q(1)/Q(Y(Q(Q(g*g)+Q(Q(t*t)+Q(p*p))))));g=Q(g*ha);N[i+8>>2]=g;p=Q(p*ha);N[i+4>>2]=p;t=Q(t*ha);N[i>>2]=t;if(Q(Q($*g)+Q(Q(ba*t)+Q(aa*p)))>2]=g;p=Q(-p);N[i+4>>2]=p;t=Q(-t);N[i>>2]=t}J[8757]=J[8757]+1;if(K[33065]){ha=Q(Q($*g)+Q(Q(ba*t)+Q(aa*p)));B=N[v+88>>2];da=Q(-B);S=B;B=Q(Q(N[n+40>>2]*g)+Q(Q(N[n+8>>2]*t)+Q(p*N[n+24>>2])));ia=Q((B>2];da=Q(-B);S=B;B=Q(Q(N[n+32>>2]*g)+Q(Q(N[n>>2]*t)+Q(p*N[n+16>>2])));S=Q((B>2]*g)+Q(Q(N[n+4>>2]*t)+Q(p*N[n+20>>2])));da=N[v+84>>2];B=Q(ia+Q(S+Q(B*(B>2];ia=B>da?B:da;B=N[u+88>>2];O=Q(Q(O*g)+Q(Q(ma*t)+Q(ga*p)));da=Q((O>2];S=Q(-O);B=O;O=Q(Q(ea*g)+Q(Q(na*t)+Q(ka*p)));g=Q(Q(fa*g)+Q(Q(oa*t)+Q(la*p)));p=N[u+84>>2];g=Q(da+Q(Q((O>2];g=Q(ia+(g>p?g:p));p=Q(ha+g);g=Q(g-ha);if((g>p?p:g)>j){break n}}J[8758]=J[8758]+1;mb(v,n,i,i+92|0,i+88|0,i- -64|0,i+48|0);mb(u,q,i,i+84|0,i+80|0,i+32|0,i+16|0);g=N[i+88>>2];p=N[i+84>>2];if(g>2];O=N[i+92>>2];if(t>2];_=N[k+4>>2];k=A?i+48|0:i- -64|0;L=N[k+8>>2];M=N[k+4>>2];j=N[i+16>>2];m=N[i+32>>2];s=N[i+64>>2];E=N[i+48>>2];k=J[i+4>>2];J[f+248>>2]=J[i>>2];J[f+252>>2]=k;k=J[i+12>>2];J[f+256>>2]=J[i+8>>2];J[f+260>>2]=k;X=A?E:s;G=A?m:j;m=D;s=C;E=F;T=l;U=y;V=w;k=h;r=d;j=g}d=d+1|0;A=J[u+48>>2];if((d|0)<(A|0)){continue}break}d=J[v+48>>2]}h=h+1|0;if((h|0)<(d|0)){continue}break}if((k|r)<0){break m}w=Q(Z-L);C=Q(G-X);D=Q(_-M);l=Q(Q(V*w)+Q(Q(T*C)+Q(U*D)));g=Q(0);F=Q(-Q(Q(E*w)+Q(Q(m*C)+Q(s*D))));y=Q(Q(V*E)+Q(Q(T*m)+Q(U*s)));j=Q(Q(1)-Q(y*y));o:{if(j==Q(0)){break o}g=Q(-1.0000000150474662e30);j=Q(Q(Q(F*y)+l)/j);if(jQ(1.0000000150474662e30))){break o}g=Q(1.0000000150474662e30)}p=Q(Q(g*y)+F);p:{if(pQ(1.0000000150474662e30))){p=Q(-1.0000000150474662e30);g=j;break p}p=Q(-1.0000000150474662e30);break p}if(!(p>Q(1.0000000150474662e30))){break p}g=Q(-1.0000000150474662e30);p=Q(1.0000000150474662e30);j=Q(Q(y*Q(1.0000000150474662e30))+l);if(jQ(1.0000000150474662e30))){break p}g=Q(1.0000000150474662e30)}J[i+76>>2]=0;E=Q(E*p);j=Q(E+Q(w-Q(V*g)));V=Q(m*p);m=Q(V+Q(C-Q(T*g)));T=Q(s*p);g=Q(T+Q(D-Q(U*g)));s=Q(Q(j*j)+Q(Q(m*m)+Q(g*g)));if(!(s>Q(1.1920928955078125e-7))){break m}l=j;U=Q(Y(s));j=Q(Q(1)/U);s=Q(l*j);N[i+72>>2]=s;g=Q(g*j);N[i+68>>2]=g;j=Q(m*j);N[i+64>>2]=j;if(Q(Q(s*$)+Q(Q(j*ba)+Q(aa*g)))>2]=-s;N[i+68>>2]=-g;N[i+64>>2]=-j}J[i+60>>2]=0;N[i+56>>2]=Z+E;N[i+52>>2]=_+T;N[i+48>>2]=G+V;ua[J[J[e>>2]+16>>2]](e,i- -64|0,i+48|0,Q(-U))}g=N[f+256>>2];j=N[f+248>>2];m=N[f+252>>2];if(!(Q(Q($*g)+Q(Q(ba*j)+Q(aa*m)))>2]=0;N[f+256>>2]=-g;N[f+252>>2]=-m;N[f+248>>2]=-j;break i}ca=0}sa=i+96|0;if(ca){break h}break g}Za(r,f+792|0,f+8|0,J[d+20>>2],0);d=J[f+28>>2];J[f+256>>2]=J[f+24>>2];J[f+260>>2]=d;d=J[f+20>>2];J[f+248>>2]=J[f+16>>2];J[f+252>>2]=d;if(!K[f+44|0]){break g}W=N[f+40>>2];if(!(W>2]&J[a+20>>2])<0){d=J[a+24>>2];if(!(d?!d|!K[a+28|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](d)}H[a+28|0]=1;J[a+20>>2]=0;J[a+24>>2]=0}J[a+16>>2]=0;ca=J[z+60>>2];n=J[x+60>>2];o=J[b+12>>2];r=J[c+12>>2];i=sa-16|0;sa=i;g=N[f+256>>2];j=N[f+248>>2];m=N[f+252>>2];N[i+12>>2]=N[f+260>>2];l=g;g=Q(Q(1)/Q(Y(Q(Q(g*g)+Q(Q(j*j)+Q(m*m))))));E=Q(l*g);N[i+8>>2]=E;T=Q(m*g);N[i+4>>2]=T;U=Q(j*g);N[i>>2]=U;q=-1;c=J[n+28>>2];if((c|0)>0){V=N[r+40>>2];y=N[r+36>>2];l=N[r+24>>2];w=N[r+20>>2];d=J[n+36>>2];C=N[r+32>>2];D=N[r+16>>2];F=N[r+8>>2];p=N[r+4>>2];t=N[r>>2];h=0;g=Q(-34028234663852886e22);while(1){b=d+P(h,36)|0;j=N[b+28>>2];m=N[b+20>>2];s=N[b+24>>2];j=Q(Q(Q(Q(V*j)+Q(Q(C*m)+Q(s*y)))*E)+Q(Q(Q(Q(F*j)+Q(Q(t*m)+Q(s*p)))*U)+Q(Q(Q(l*j)+Q(Q(D*m)+Q(s*w)))*T)));b=j>g;g=b?j:g;q=b?h:q;h=h+1|0;if((c|0)!=(h|0)){continue}break}}c=a+12|0;if((J[c+4>>2]&J[c+8>>2])<0){b=J[c+12>>2];if(!(b?!b|!K[c+16|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}H[c+16|0]=1;J[c+8>>2]=0;J[c+12>>2]=0}J[c+4>>2]=0;pa=J[n+36>>2]+P(q,36)|0;qa=J[pa+4>>2];if((qa|0)>0){d=0;x=0;while(1){b=J[n+16>>2]+(J[J[pa+12>>2]+(x<<2)>>2]<<4)|0;g=N[b+8>>2];j=N[b>>2];m=N[b+4>>2];s=Q(Q(Q(g*N[r+40>>2])+Q(Q(j*N[r+32>>2])+Q(m*N[r+36>>2])))+N[r+56>>2]);E=Q(Q(Q(g*N[r+24>>2])+Q(Q(j*N[r+16>>2])+Q(m*N[r+20>>2])))+N[r+52>>2]);g=Q(Q(Q(g*N[r+8>>2])+Q(Q(j*N[r>>2])+Q(m*N[r+4>>2])))+N[r+48>>2]);q:{if(J[c+8>>2]!=(d|0)){break q}v=d?d<<1:1;if((v|0)<=(d|0)){break q}r:{if(!v){k=0;break r}J[8456]=J[8456]+1;k=ua[J[8258]](v<<4,16)|0;d=J[c+4>>2]}s:{if((d|0)<=0){break s}h=0;if((d|0)!=1){wa=d&-2;b=0;while(1){z=h<<4;A=z+k|0;u=z+J[c+12>>2]|0;ja=J[u+4>>2];J[A>>2]=J[u>>2];J[A+4>>2]=ja;ja=J[u+12>>2];J[A+8>>2]=J[u+8>>2];J[A+12>>2]=ja;u=z|16;z=u+k|0;u=u+J[c+12>>2]|0;A=J[u+4>>2];J[z>>2]=J[u>>2];J[z+4>>2]=A;A=J[u+12>>2];J[z+8>>2]=J[u+8>>2];J[z+12>>2]=A;h=h+2|0;b=b+2|0;if((wa|0)!=(b|0)){continue}break}}if(!(d&1)){break s}b=h<<4;d=b+k|0;b=b+J[c+12>>2]|0;h=J[b+4>>2];J[d>>2]=J[b>>2];J[d+4>>2]=h;h=J[b+12>>2];J[d+8>>2]=J[b+8>>2];J[d+12>>2]=h}b=J[c+12>>2];if(!(b?!b|!K[c+16|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[c+12>>2]=k;H[c+16|0]=1;J[c+8>>2]=v;d=J[c+4>>2]}b=J[c+12>>2]+(d<<4)|0;J[b+12>>2]=0;N[b+8>>2]=s;N[b+4>>2]=E;N[b>>2]=g;d=J[c+4>>2]+1|0;J[c+4>>2]=d;x=x+1|0;if((qa|0)!=(x|0)){continue}break}}if((q|0)>=0){Nd(i,ca,o,c,a+32|0,Q(W-I),I,e)}sa=i+16|0}if(!K[a+52|0]){break a}a=J[e+4>>2];if(!J[a+844>>2]){break a}c=J[a+836>>2];d=J[J[e+8>>2]+8>>2];b=(c|0)==(d|0);r=a;a=J[J[e+12>>2]+8>>2];Ua(r,(b?c:a)+4|0,(b?a:d)+4|0);break a}if(J[x+4>>2]!=1){break f}J[f+252>>2]=0;h=J[c+12>>2];s=N[h+52>>2];E=N[h+20>>2];T=N[h+24>>2];U=N[h+56>>2];V=N[h+36>>2];y=N[h+40>>2];g=N[x+72>>2];j=N[x+68>>2];l=N[h+16>>2];w=N[h+32>>2];C=N[h+48>>2];D=N[h+8>>2];m=N[x+64>>2];F=N[h>>2];p=N[h+4>>2];J[8456]=J[8456]+1;h=ua[J[8258]](16,16)|0;J[f+260>>2]=h;H[f+264|0]=1;J[f+256>>2]=1;J[h+12>>2]=0;N[h>>2]=C+Q(Q(g*D)+Q(Q(m*F)+Q(j*p)));N[h+8>>2]=U+Q(Q(g*y)+Q(Q(m*w)+Q(j*V)));N[h+4>>2]=s+Q(Q(g*T)+Q(Q(m*l)+Q(j*E)));i=J[f+252>>2];h=i+1|0;J[f+252>>2]=h;g=N[x+88>>2];k=J[c+12>>2];j=N[x+80>>2];m=N[x+84>>2];s=Q(Q(Q(g*N[k+40>>2])+Q(Q(j*N[k+32>>2])+Q(m*N[k+36>>2])))+N[k+56>>2]);E=Q(Q(Q(g*N[k+24>>2])+Q(Q(j*N[k+16>>2])+Q(m*N[k+20>>2])))+N[k+52>>2]);g=Q(Q(Q(g*N[k+8>>2])+Q(Q(j*N[k>>2])+Q(m*N[k+4>>2])))+N[k+48>>2]);t:{if(J[f+256>>2]!=(h|0)){break t}n=h?h<<1:1;if((n|0)<=(h|0)){break t}k=0;if(n){J[8456]=J[8456]+1;k=ua[J[8258]](n<<4,16)|0}u:{if((i|0)<0){break u}h=i+1|0;A=h&1;v:{if(!i){h=0;break v}ca=h&-2;h=0;q=0;while(1){v=h<<4;u=v+k|0;i=v+J[f+260>>2]|0;o=J[i+4>>2];J[u>>2]=J[i>>2];J[u+4>>2]=o;o=J[i+12>>2];J[u+8>>2]=J[i+8>>2];J[u+12>>2]=o;i=v|16;v=i+k|0;i=i+J[f+260>>2]|0;u=J[i+4>>2];J[v>>2]=J[i>>2];J[v+4>>2]=u;u=J[i+12>>2];J[v+8>>2]=J[i+8>>2];J[v+12>>2]=u;h=h+2|0;q=q+2|0;if((ca|0)!=(q|0)){continue}break}}if(!A){break u}h=h<<4;i=h+k|0;h=h+J[f+260>>2]|0;q=J[h+4>>2];J[i>>2]=J[h>>2];J[i+4>>2]=q;q=J[h+12>>2];J[i+8>>2]=J[h+8>>2];J[i+12>>2]=q}h=J[f+260>>2];if(!(h?!h|!K[f+264|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](h)}J[f+260>>2]=k;H[f+264|0]=1;J[f+256>>2]=n;h=J[f+252>>2]}h=J[f+260>>2]+(h<<4)|0;J[h+12>>2]=0;N[h+8>>2]=s;N[h+4>>2]=E;N[h>>2]=g;k=J[f+252>>2];h=k+1|0;J[f+252>>2]=h;g=N[x+104>>2];c=J[c+12>>2];j=N[x+96>>2];m=N[x+100>>2];s=Q(Q(Q(g*N[c+40>>2])+Q(Q(j*N[c+32>>2])+Q(m*N[c+36>>2])))+N[c+56>>2]);E=Q(Q(Q(g*N[c+24>>2])+Q(Q(j*N[c+16>>2])+Q(m*N[c+20>>2])))+N[c+52>>2]);g=Q(Q(Q(g*N[c+8>>2])+Q(Q(j*N[c>>2])+Q(m*N[c+4>>2])))+N[c+48>>2]);w:{if(J[f+256>>2]!=(h|0)){break w}i=h?h<<1:1;if((i|0)<=(h|0)){break w}h=0;if(i){J[8456]=J[8456]+1;h=ua[J[8258]](i<<4,16)|0}x:{if((k|0)<0){break x}c=k+1|0;u=c&1;y:{if(!k){c=0;break y}A=c&-2;c=0;k=0;while(1){q=c<<4;v=q+h|0;n=q+J[f+260>>2]|0;ca=J[n+4>>2];J[v>>2]=J[n>>2];J[v+4>>2]=ca;ca=J[n+12>>2];J[v+8>>2]=J[n+8>>2];J[v+12>>2]=ca;n=q|16;q=n+h|0;n=n+J[f+260>>2]|0;v=J[n+4>>2];J[q>>2]=J[n>>2];J[q+4>>2]=v;v=J[n+12>>2];J[q+8>>2]=J[n+8>>2];J[q+12>>2]=v;c=c+2|0;k=k+2|0;if((A|0)!=(k|0)){continue}break}}if(!u){break x}c=c<<4;k=c+h|0;c=c+J[f+260>>2]|0;n=J[c+4>>2];J[k>>2]=J[c>>2];J[k+4>>2]=n;n=J[c+12>>2];J[k+8>>2]=J[c+8>>2];J[k+12>>2]=n}c=J[f+260>>2];if(!(c?!c|!K[f+264|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}J[f+260>>2]=h;H[f+264|0]=1;J[f+256>>2]=i;h=J[f+252>>2]}c=J[f+260>>2]+(h<<4)|0;J[c+12>>2]=0;N[c+8>>2]=s;N[c+4>>2]=E;N[c>>2]=g;J[f+252>>2]=J[f+252>>2]+1;g=N[J[a+56>>2]+848>>2];Za(r,f+792|0,f+348|0,J[d+20>>2],0);j=N[r+12>>2];m=N[r+4>>2];s=N[r+8>>2];E=Q(Q(j*j)+Q(Q(m*m)+Q(s*s)));if(E>Q(1.1920928955078125e-7)){J[f+344>>2]=0;l=j;j=Q(Q(1)/E);N[f+340>>2]=l*j;N[f+336>>2]=s*j;N[f+332>>2]=m*j;j=N[r+56>>2];m=Q(ua[J[J[z>>2]+48>>2]](z));s=Q(ua[J[J[x>>2]+48>>2]](x));h=0;r=0;c=a+32|0;d=J[c+4>>2];z:{if((d|0)>0){break z}n=(d|0)>=0;if(n){break z}if(J[c+8>>2]<0){A:{if((d|0)<=0){break A}if((d|0)!=1){q=d&-2;while(1){k=h<<4;i=k+J[c+12>>2]|0;x=J[i+4>>2];J[k>>2]=J[i>>2];J[k+4>>2]=x;x=J[i+12>>2];J[k+8>>2]=J[i+8>>2];J[k+12>>2]=x;k=k|16;i=k+J[c+12>>2]|0;x=J[i+4>>2];J[k>>2]=J[i>>2];J[k+4>>2]=x;x=J[i+12>>2];J[k+8>>2]=J[i+8>>2];J[k+12>>2]=x;h=h+2|0;r=r+2|0;if((q|0)!=(r|0)){continue}break}}if(!(d&1)){break A}h=h<<4;k=h+J[c+12>>2]|0;r=J[k+4>>2];J[h>>2]=J[k>>2];J[h+4>>2]=r;r=J[k+12>>2];J[h+8>>2]=J[k+8>>2];J[h+12>>2]=r}h=J[c+12>>2];if(!(h?!h|!K[c+16|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](h)}J[c+12>>2]=0;H[c+16|0]=1;J[c+8>>2]=0;if(n){break z}}r=d^-1;i=0-d&3;if(i){h=0;while(1){n=J[f+320>>2];k=J[c+12>>2]+(d<<4)|0;J[k>>2]=J[f+316>>2];J[k+4>>2]=n;n=J[f+328>>2];J[k+8>>2]=J[f+324>>2];J[k+12>>2]=n;d=d+1|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}if(r>>>0<3){break z}while(1){r=J[f+320>>2];h=d<<4;k=h+J[c+12>>2]|0;J[k>>2]=J[f+316>>2];J[k+4>>2]=r;r=J[f+328>>2];J[k+8>>2]=J[f+324>>2];J[k+12>>2]=r;r=J[f+328>>2];k=h+J[c+12>>2]|0;J[k+24>>2]=J[f+324>>2];J[k+28>>2]=r;r=J[f+320>>2];J[k+16>>2]=J[f+316>>2];J[k+20>>2]=r;r=J[f+328>>2];k=h+J[c+12>>2]|0;J[k+40>>2]=J[f+324>>2];J[k+44>>2]=r;r=J[f+320>>2];J[k+32>>2]=J[f+316>>2];J[k+36>>2]=r;k=J[f+328>>2];h=h+J[c+12>>2]|0;J[h+56>>2]=J[f+324>>2];J[h+60>>2]=k;k=J[f+320>>2];J[h+48>>2]=J[f+316>>2];J[h+52>>2]=k;d=d+4|0;if(d){continue}break}}J[c+4>>2]=0;Nd(f+332|0,J[z+60>>2],J[b+12>>2],f+248|0,c,Q(Q(Q(j-m)-s)-g),g,e)}if(K[a+52|0]){a=J[e+4>>2];if(J[a+844>>2]){c=J[a+836>>2];d=J[J[e+8>>2]+8>>2];b=(c|0)==(d|0);r=a;a=J[J[e+12>>2]+8>>2];Ua(r,(b?c:a)+4|0,(b?a:d)+4|0)}}a=J[f+260>>2];if(!a|!K[f+264|0]){break a}if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}break a}Za(r,f+792|0,e,J[d+20>>2],0);B:{if(!J[a+64>>2]|J[J[e+4>>2]+844>>2]>=J[a+68>>2]){break B}g=N[r+12>>2];j=N[r+4>>2];m=N[r+8>>2];s=Q(Q(g*g)+Q(Q(j*j)+Q(m*m)));if(!(s>Q(1.1920928955078125e-7))){break B}q=f+856|0;v=f+840|0;u=f+824|0;A=f+808|0;l=m;m=Q(Q(1)/s);E=Q(l*m);l=Q(j*m);w=Q(g*m);C:{if(Q(R(w))>Q(.7071067690849304)){g=Q(Q(1)/Q(Y(Q(Q(E*E)+Q(w*w)))));W=Q(E*g);g=Q(g*Q(-w));j=Q(0);break C}j=Q(Q(1)/Q(Y(Q(Q(l*l)+Q(E*E)))));g=Q(l*j);W=Q(0);j=Q(j*Q(-E))}m=Q(ua[J[J[z>>2]+16>>2]](z));s=Q(ua[J[J[x>>2]+16>>2]](x));T=N[8265];x=m>2];J[f+256>>2]=J[h+8>>2];J[f+260>>2]=z;z=J[h+4>>2];J[f+248>>2]=J[h>>2];J[f+252>>2]=z;h=x?A:k;z=J[h+12>>2];J[f+272>>2]=J[h+8>>2];J[f+276>>2]=z;z=J[h+4>>2];J[f+264>>2]=J[h>>2];J[f+268>>2]=z;h=x?u:i;z=J[h+12>>2];J[f+288>>2]=J[h+8>>2];J[f+292>>2]=z;z=J[h+4>>2];J[f+280>>2]=J[h>>2];J[f+284>>2]=z;h=x?v:n;z=J[h+12>>2];J[f+304>>2]=J[h+8>>2];J[f+308>>2]=z;z=J[h+4>>2];J[f+296>>2]=J[h>>2];J[f+300>>2]=z;h=J[a+64>>2];if((h|0)<=0){break B}m=Q(T/(x?m:s));m=m>Q(.39269909262657166)?Q(.19634954631328583):Q(m*Q(.5));s=Na(m);T=Ma(m);m=Q(Q(W*W)+Q(Q(j*j)+Q(g*g)));if(!(m>Q(1.1920928955078125e-7))){break B}m=Q(s/Q(Y(m)));U=Q(W*m);V=Q(g*m);y=Q(j*m);O=Q(Y(Q(Q(w*w)+Q(Q(l*l)+Q(E*E)))));z=f- -64|0;while(1){s=Q(Q(Q(Q(6.2831854820251465)/Q(h|0))*Q(ca|0))*Q(.5));m=Q(Na(s)/O);g=Q(w*m);j=Q(E*m);m=Q(l*m);s=Ma(s);D:{if(!x){h=J[b+12>>2];o=J[h+12>>2];J[f+800>>2]=J[h+8>>2];J[f+804>>2]=o;o=J[h+4>>2];J[f+792>>2]=J[h>>2];J[f+796>>2]=o;o=J[h+28>>2];J[A+8>>2]=J[h+24>>2];J[A+12>>2]=o;o=J[h+20>>2];J[A>>2]=J[h+16>>2];J[A+4>>2]=o;o=J[h+44>>2];J[u+8>>2]=J[h+40>>2];J[u+12>>2]=o;o=J[h+36>>2];J[u>>2]=J[h+32>>2];J[u+4>>2]=o;o=J[h+60>>2];J[v+8>>2]=J[h+56>>2];J[v+12>>2]=o;o=J[h+52>>2];J[v>>2]=J[h+48>>2];J[v+4>>2]=o;h=J[c+12>>2];F=N[h+36>>2];p=N[h+20>>2];t=N[h+40>>2];W=N[h+24>>2];$=N[h+32>>2];aa=N[h>>2];ba=N[h+16>>2];Z=N[h+4>>2];_=N[h+8>>2];J[f+900>>2]=0;J[f+884>>2]=0;J[f+868>>2]=0;G=Q(Q(m*U)+Q(Q(Q(s*V)-Q(T*j))-Q(g*y)));I=Q(Q(g*U)+Q(Q(j*V)+Q(Q(s*T)+Q(y*m))));L=Q(Q(g*V)+Q(Q(Q(s*y)-Q(T*m))-Q(j*U)));M=Q(Q(j*y)+Q(Q(Q(s*U)-Q(T*g))-Q(m*V)));C=Q(Q(Q(G*g)+Q(Q(I*m)+Q(s*L)))-Q(M*j));D=Q(Q(Q(Q(I*s)-Q(m*L))-Q(G*j))-Q(M*g));X=Q(Q(Q(L*j)+Q(Q(I*g)+Q(s*M)))-Q(G*m));g=Q(Q(Q(M*m)+Q(Q(I*j)+Q(s*G)))-Q(L*g));j=Q(Q(2)/Q(Q(D*D)+Q(Q(X*X)+Q(Q(C*C)+Q(g*g)))));I=Q(C*j);L=Q(C*I);m=Q(g*j);M=Q(g*m);s=Q(Q(1)-Q(L+M));j=Q(X*j);ea=Q(C*j);fa=Q(D*m);G=Q(ea-fa);ga=Q(g*j);I=Q(D*I);g=Q(ga+I);N[f+896>>2]=Q(t*s)+Q(Q(_*G)+Q(W*g));N[f+892>>2]=Q(F*s)+Q(Q(Z*G)+Q(g*p));N[f+888>>2]=Q($*s)+Q(Q(aa*G)+Q(g*ba));g=Q(ga-I);s=Q(C*m);C=Q(D*j);m=Q(s+C);D=Q(X*j);j=Q(Q(1)-Q(L+D));N[f+880>>2]=Q(t*g)+Q(Q(_*m)+Q(W*j));N[f+876>>2]=Q(F*g)+Q(Q(Z*m)+Q(j*p));N[f+872>>2]=Q($*g)+Q(Q(aa*m)+Q(j*ba));g=Q(ea+fa);j=Q(Q(1)-Q(M+D));m=Q(s-C);N[f+864>>2]=Q(t*g)+Q(Q(_*j)+Q(W*m));N[f+860>>2]=Q(F*g)+Q(Q(Z*j)+Q(m*p));N[f+856>>2]=Q($*g)+Q(Q(aa*j)+Q(m*ba));break D}h=J[b+12>>2];F=N[h+36>>2];p=N[h+20>>2];t=N[h+40>>2];W=N[h+24>>2];$=N[h+32>>2];aa=N[h>>2];ba=N[h+16>>2];Z=N[h+4>>2];_=N[h+8>>2];J[f+836>>2]=0;J[f+820>>2]=0;J[f+804>>2]=0;G=Q(Q(m*U)+Q(Q(Q(s*V)-Q(T*j))-Q(g*y)));I=Q(Q(g*U)+Q(Q(j*V)+Q(Q(s*T)+Q(y*m))));L=Q(Q(g*V)+Q(Q(Q(s*y)-Q(T*m))-Q(j*U)));M=Q(Q(j*y)+Q(Q(Q(s*U)-Q(T*g))-Q(m*V)));C=Q(Q(Q(G*g)+Q(Q(I*m)+Q(s*L)))-Q(M*j));D=Q(Q(Q(Q(I*s)-Q(m*L))-Q(G*j))-Q(M*g));X=Q(Q(Q(L*j)+Q(Q(I*g)+Q(s*M)))-Q(G*m));g=Q(Q(Q(M*m)+Q(Q(I*j)+Q(s*G)))-Q(L*g));j=Q(Q(2)/Q(Q(D*D)+Q(Q(X*X)+Q(Q(C*C)+Q(g*g)))));I=Q(C*j);L=Q(C*I);m=Q(g*j);M=Q(g*m);s=Q(Q(1)-Q(L+M));j=Q(X*j);ea=Q(C*j);fa=Q(D*m);G=Q(ea-fa);ga=Q(g*j);I=Q(D*I);g=Q(ga+I);N[f+832>>2]=Q(t*s)+Q(Q(_*G)+Q(W*g));N[f+828>>2]=Q(F*s)+Q(Q(Z*G)+Q(g*p));N[f+824>>2]=Q($*s)+Q(Q(aa*G)+Q(g*ba));g=Q(ga-I);s=Q(C*m);C=Q(D*j);m=Q(s+C);D=Q(X*j);j=Q(Q(1)-Q(L+D));N[f+816>>2]=Q(t*g)+Q(Q(_*m)+Q(W*j));N[f+812>>2]=Q(F*g)+Q(Q(Z*m)+Q(j*p));N[f+808>>2]=Q($*g)+Q(Q(aa*m)+Q(j*ba));g=Q(ea+fa);j=Q(Q(1)-Q(M+D));m=Q(s-C);N[f+800>>2]=Q(t*g)+Q(Q(_*j)+Q(W*m));N[f+796>>2]=Q(F*g)+Q(Q(Z*j)+Q(m*p));N[f+792>>2]=Q($*g)+Q(Q(aa*j)+Q(m*ba));h=J[c+12>>2];o=J[h+4>>2];J[q>>2]=J[h>>2];J[q+4>>2]=o;o=J[h+12>>2];J[q+8>>2]=J[h+8>>2];J[q+12>>2]=o;o=J[h+28>>2];J[k+8>>2]=J[h+24>>2];J[k+12>>2]=o;o=J[h+20>>2];J[k>>2]=J[h+16>>2];J[k+4>>2]=o;o=J[h+44>>2];J[i+8>>2]=J[h+40>>2];J[i+12>>2]=o;o=J[h+36>>2];J[i>>2]=J[h+32>>2];J[i+4>>2]=o;o=J[h+60>>2];J[n+8>>2]=J[h+56>>2];J[n+12>>2]=o;o=J[h+52>>2];J[n>>2]=J[h+48>>2];J[n+4>>2]=o}h=J[d+20>>2];J[f+44>>2]=e;J[f+8>>2]=15628;J[f+40>>2]=0;o=J[f+804>>2];J[f+56>>2]=J[f+800>>2];J[f+60>>2]=o;o=J[f+796>>2];J[f+48>>2]=J[f+792>>2];J[f+52>>2]=o;o=J[A+12>>2];J[z+8>>2]=J[A+8>>2];J[z+12>>2]=o;o=J[A+4>>2];J[z>>2]=J[A>>2];J[z+4>>2]=o;o=J[u+12>>2];J[f+88>>2]=J[u+8>>2];J[f+92>>2]=o;o=J[u+4>>2];J[f+80>>2]=J[u>>2];J[f+84>>2]=o;o=J[v+12>>2];J[f+104>>2]=J[v+8>>2];J[f+108>>2]=o;o=J[v+4>>2];J[f+96>>2]=J[v>>2];J[f+100>>2]=o;o=J[q+12>>2];J[f+120>>2]=J[q+8>>2];J[f+124>>2]=o;o=J[q+4>>2];J[f+112>>2]=J[q>>2];J[f+116>>2]=o;o=J[k+12>>2];J[f+136>>2]=J[k+8>>2];J[f+140>>2]=o;o=J[k+4>>2];J[f+128>>2]=J[k>>2];J[f+132>>2]=o;o=J[i+12>>2];J[f+152>>2]=J[i+8>>2];J[f+156>>2]=o;o=J[i+4>>2];J[f+144>>2]=J[i>>2];J[f+148>>2]=o;o=J[n+12>>2];J[f+168>>2]=J[n+8>>2];J[f+172>>2]=o;o=J[n+4>>2];J[f+160>>2]=J[n>>2];J[f+164>>2]=o;o=J[f+260>>2];J[f+184>>2]=J[f+256>>2];J[f+188>>2]=o;o=J[f+252>>2];J[f+176>>2]=J[f+248>>2];J[f+180>>2]=o;o=J[f+276>>2];J[f+200>>2]=J[f+272>>2];J[f+204>>2]=o;o=J[f+268>>2];J[f+192>>2]=J[f+264>>2];J[f+196>>2]=o;o=J[f+292>>2];J[f+216>>2]=J[f+288>>2];J[f+220>>2]=o;o=J[f+284>>2];J[f+208>>2]=J[f+280>>2];J[f+212>>2]=o;o=J[f+300>>2];J[f+224>>2]=J[f+296>>2];J[f+228>>2]=o;o=J[f+308>>2];J[f+232>>2]=J[f+304>>2];J[f+236>>2]=o;J[f+244>>2]=h;H[f+240|0]=x;Za(r,f+792|0,f+8|0,h,0);h=J[a+64>>2];ca=ca+1|0;if((h|0)>(ca|0)){continue}break}}if(!K[a+52|0]){break a}a=J[e+4>>2];if(!J[a+844>>2]){break a}c=J[a+836>>2];d=J[J[e+8>>2]+8>>2];b=(c|0)==(d|0);r=a;a=J[J[e+12>>2]+8>>2];Ua(r,(b?c:a)+4|0,(b?a:d)+4|0)}sa=f+928|0}function Pe(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=0,m=Q(0),n=Q(0),o=0,p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=0,u=0,v=Q(0),w=Q(0),x=0,y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=0,D=0,E=Q(0),F=Q(0),G=0,H=Q(0),I=Q(0),K=Q(0),L=Q(0),M=Q(0),O=Q(0),S=Q(0),T=Q(0),U=Q(0),V=Q(0),W=0,X=0,Z=Q(0),_=Q(0),$=Q(0),aa=Q(0),ba=Q(0),ca=Q(0),da=Q(0),ea=Q(0),fa=0,ga=Q(0),ha=Q(0),ia=Q(0),ja=Q(0),ka=Q(0),la=Q(0),ma=0,na=0,oa=Q(0),pa=0,qa=0,ra=0,ta=Q(0),va=0,wa=Q(0);d=sa-160|0;sa=d;N[d+112>>2]=N[b>>2];N[d+64>>2]=N[b+64>>2];N[d+116>>2]=N[b+4>>2];N[d+68>>2]=N[b+68>>2];N[d+120>>2]=N[b+8>>2];N[d+72>>2]=N[b+72>>2];N[d+128>>2]=N[b+16>>2];N[d+80>>2]=N[b+80>>2];N[d+132>>2]=N[b+20>>2];N[d+84>>2]=N[b+84>>2];N[d+136>>2]=N[b+24>>2];N[d+88>>2]=N[b+88>>2];N[d+144>>2]=N[b+32>>2];N[d+96>>2]=N[b+96>>2];N[d+148>>2]=N[b+36>>2];N[d+100>>2]=N[b+100>>2];N[d+152>>2]=N[b+40>>2];N[d+104>>2]=N[b+104>>2];e=J[a+4>>2];j=N[e+44>>2];i=N[e+40>>2];n=N[e+36>>2];g=Q(ua[J[J[e>>2]+48>>2]](e));h=Q(ua[J[J[e>>2]+48>>2]](e));k=Q(ua[J[J[e>>2]+48>>2]](e));J[d+36>>2]=0;i=Q(i+h);N[d+28>>2]=i+i;i=Q(n+g);N[d+24>>2]=i+i;j=Q(j+k);N[d+32>>2]=j+j;a=J[a+8>>2];j=N[a+44>>2];i=N[a+40>>2];n=N[a+36>>2];g=Q(ua[J[J[a>>2]+48>>2]](a));h=Q(ua[J[J[a>>2]+48>>2]](a));k=Q(ua[J[J[a>>2]+48>>2]](a));J[d+20>>2]=0;i=Q(i+h);N[d+12>>2]=i+i;i=Q(n+g);N[d+8>>2]=i+i;j=Q(j+k);N[d+16>>2]=j+j;W=c;f=sa-368|0;sa=f;a=d+112|0;K=N[a+36>>2];U=N[a+4>>2];F=N[a+20>>2];s=N[a+40>>2];ea=N[a+8>>2];L=N[a+24>>2];G=b+48|0;n=N[G+8>>2];c=b+112|0;g=N[c+8>>2];q=N[G>>2];r=N[c>>2];H=N[G+4>>2];A=N[c+4>>2];j=N[a+32>>2];oa=N[a>>2];i=N[a+16>>2];h=Q(N[d+24>>2]*Q(.5));N[f+356>>2]=h;k=Q(N[d+28>>2]*Q(.5));N[f+360>>2]=k;m=Q(N[d+32>>2]*Q(.5));N[f+364>>2]=m;v=Q(N[d+8>>2]*Q(.5));N[f+344>>2]=v;y=Q(N[d+12>>2]*Q(.5));N[f+348>>2]=y;p=Q(N[d+16>>2]*Q(.5));N[f+352>>2]=p;n=Q(g-n);g=Q(r-q);q=Q(A-H);r=Q(Q(j*n)+Q(Q(oa*g)+Q(i*q)));b=d- -64|0;Z=N[b+40>>2];_=N[b+8>>2];M=N[b+24>>2];H=Q(Q(j*Z)+Q(Q(oa*_)+Q(i*M)));ga=Q(R(H));V=N[b+36>>2];I=N[b+4>>2];$=N[b+20>>2];A=Q(Q(j*V)+Q(Q(oa*I)+Q(i*$)));ha=Q(R(A));aa=N[b+32>>2];ba=N[b>>2];ca=N[b+16>>2];B=Q(Q(j*aa)+Q(Q(oa*ba)+Q(i*ca)));ta=Q(R(B));i=Q(Q(R(r))-Q(Q(p*ga)+Q(Q(y*ha)+Q(Q(v*ta)+h))));a:{if(i>Q(0)){break a}w=Q(Q(K*Z)+Q(Q(U*_)+Q(F*M)));ia=Q(R(w));O=Q(Q(K*V)+Q(Q(U*I)+Q(F*$)));S=Q(R(O));T=Q(Q(K*aa)+Q(Q(U*ba)+Q(F*ca)));ja=Q(R(T));j=Q(-34028234663852886e22);if(i>Q(-34028234663852886e22)){l=rQ(0)){break a}F=Q(Q(s*Z)+Q(Q(ea*_)+Q(L*M)));ka=Q(R(F));E=Q(Q(s*V)+Q(Q(ea*I)+Q(L*$)));la=Q(R(E));z=Q(Q(s*aa)+Q(Q(ea*ba)+Q(L*ca)));da=Q(R(z));if(jQ(0)){break a}if(jQ(0)){break a}if(jQ(0)){break a}if(jQ(0)){break a}if(jQ(1.1920928955078125e-7)){break a}L=Q(la+Q(9999999747378752e-21));Z=Q(S+Q(9999999747378752e-21));_=Q(ta+Q(9999999747378752e-21));S=Q(-K);q=Q(0);ja=Q(T*T);la=Q(Q(z*z)+Q(0));M=Q(Y(Q(ja+la)));b:{if(!(M>Q(1.1920928955078125e-7))){g=Q(0);n=Q(0);break b}g=Q(0);i=Q(i/M);n=Q(0);if(!(Q(i*Q(1.0499999523162842))>j)){break b}l=VQ(1.1920928955078125e-7)){break a}M=Q(ka+Q(9999999747378752e-21));V=Q(ia+Q(9999999747378752e-21));ia=Q(O*O);ka=Q(Q(E*E)+Q(0));I=Q(Y(Q(ia+ka)));c:{if(!(I>Q(1.1920928955078125e-7))){break c}i=Q(i/I);if(!(Q(i*Q(1.0499999523162842))>j)){break c}l=daQ(1.1920928955078125e-7)){break a}da=Q(w*w);ga=Q(Q(F*F)+Q(0));I=Q(Y(Q(da+ga)));d:{if(!(I>Q(1.1920928955078125e-7))){break d}i=Q(i/I);if(!(Q(i*Q(1.0499999523162842))>j)){break d}l=SQ(1.1920928955078125e-7)){break a}I=Q(-s);ha=Q(B*B);s=Q(Y(Q(ha+la)));e:{if(!(s>Q(1.1920928955078125e-7))){break e}i=Q(i/s);if(!(Q(i*Q(1.0499999523162842))>j)){break e}l=SQ(1.1920928955078125e-7)){break a}S=Q(A*A);z=Q(Y(Q(S+ka)));f:{if(!(z>Q(1.1920928955078125e-7))){break f}i=Q(i/z);if(!(Q(i*Q(1.0499999523162842))>j)){break f}l=sQ(1.1920928955078125e-7)){break a}s=Q(H*H);E=Q(Y(Q(s+ga)));g:{if(!(E>Q(1.1920928955078125e-7))){break g}i=Q(i/E);if(!(Q(i*Q(1.0499999523162842))>j)){break g}l=zQ(1.1920928955078125e-7)){break a}F=Q(-r);r=Q(Y(Q(Q(ja+ha)+Q(0))));h:{if(!(r>Q(1.1920928955078125e-7))){break h}i=Q(i/r);if(!(Q(i*Q(1.0499999523162842))>j)){break h}l=EQ(1.1920928955078125e-7)){break a}p=Q(Y(Q(Q(ia+S)+Q(0))));i:{if(!(p>Q(1.1920928955078125e-7))){break i}i=Q(i/p);if(!(Q(i*Q(1.0499999523162842))>j)){break i}l=rQ(1.1920928955078125e-7)){break a}j:{k:{l:{m:{p=Q(Y(Q(Q(da+s)+Q(0))));if(!(p>Q(1.1920928955078125e-7))){break m}i=Q(i/p);if(!(Q(i*Q(1.0499999523162842))>j)){break m}l=r>2]=p;r=Q(Q(N[a+24>>2]*g)+Q(Q(N[a+16>>2]*q)+Q(n*N[a+20>>2])));N[d+52>>2]=r;j=Q(Q(N[a+40>>2]*g)+Q(Q(N[a+32>>2]*q)+Q(n*N[a+36>>2])));break j}p=N[u>>2];N[d+48>>2]=p;r=N[u+16>>2];N[d+52>>2]=r;i=j;j=N[u+32>>2]}N[d+56>>2]=j;if(l){N[d+56>>2]=-j;N[d+52>>2]=-r;N[d+48>>2]=-p}N[d+44>>2]=-i;if(C>>>0>=7){J[f+120>>2]=J[G+8>>2];e=J[G+4>>2];J[f+112>>2]=J[G>>2];J[f+116>>2]=e;j=N[d+56>>2];q=N[a+40>>2];n=N[d+48>>2];p=N[a+8>>2];g=N[d+52>>2];r=N[a+24>>2];m=Q(Q(j*q)+Q(Q(n*p)+Q(g*r)))>Q(0)?m:Q(-m);s=Q(m*q);q=N[a+36>>2];H=N[a+4>>2];A=N[a+20>>2];k=Q(Q(j*q)+Q(Q(n*H)+Q(g*A)))>Q(0)?k:Q(-k);z=Q(k*q);q=N[a+32>>2];B=N[a>>2];w=N[a+16>>2];h=Q(Q(j*q)+Q(Q(n*B)+Q(g*w)))>Q(0)?h:Q(-h);N[f+120>>2]=s+Q(z+Q(Q(h*q)+N[f+120>>2]));N[f+112>>2]=Q(m*p)+Q(Q(k*H)+Q(Q(h*B)+N[f+112>>2]));N[f+116>>2]=Q(m*r)+Q(Q(k*A)+Q(Q(h*w)+N[f+116>>2]));J[f+216>>2]=J[c+8>>2];e=J[c+4>>2];J[f+208>>2]=J[c>>2];J[f+212>>2]=e;h=N[f+352>>2];k=N[b+40>>2];m=N[b+8>>2];q=N[b+24>>2];h=Q(Q(j*k)+Q(Q(n*m)+Q(g*q)))>Q(0)?Q(-h):h;B=Q(h*k);w=Q(-y);s=y;y=N[b+36>>2];p=N[b+4>>2];r=N[b+20>>2];k=Q(Q(j*y)+Q(Q(n*p)+Q(g*r)))>Q(0)?w:s;z=Q(-v);s=v;v=N[b+32>>2];w=n;n=N[b>>2];A=g;g=N[b+16>>2];j=Q(Q(j*v)+Q(Q(w*n)+Q(A*g)))>Q(0)?z:s;v=Q(B+Q(Q(k*y)+Q(Q(j*v)+N[f+216>>2])));N[f+216>>2]=v;m=Q(Q(h*m)+Q(Q(k*p)+Q(Q(j*n)+N[f+208>>2])));N[f+208>>2]=m;g=Q(Q(h*q)+Q(Q(k*r)+Q(Q(j*g)+N[f+212>>2])));N[f+212>>2]=g;c=C-7&255;a=((c>>>0)/3<<2)+a|0;N[f+288>>2]=N[a>>2];N[f+292>>2]=N[a+16>>2];N[f+296>>2]=N[a+32>>2];a=b+((c>>>0)%3<<2)|0;h=N[a>>2];N[f+80>>2]=h;k=N[a+16>>2];N[f+84>>2]=k;y=N[a+32>>2];N[f+88>>2]=y;a=f+208|0;b=f- -64|0;n=Q(0);q=N[f+296>>2];p=N[f+88>>2];r=N[f+288>>2];H=N[f+80>>2];A=N[f+292>>2];B=N[f+84>>2];j=Q(Q(q*p)+Q(Q(r*H)+Q(A*B)));w=Q(Q(1)-Q(j*j));if(w<=Q(9999999747378752e-20)){j=Q(0)}else{w=Q(Q(1)/w);n=Q(N[a+8>>2]-N[f+120>>2]);s=Q(q*n);q=Q(N[a>>2]-N[f+112>>2]);z=Q(r*q);r=Q(N[a+4>>2]-N[f+116>>2]);A=Q(s+Q(z+Q(A*r)));q=Q(Q(p*n)+Q(Q(H*q)+Q(B*r)));n=Q(w*Q(Q(j*A)-q));j=Q(w*Q(A-Q(j*q)))}N[f+328>>2]=j;N[b>>2]=n;j=N[f+64>>2];N[f+216>>2]=Q(y*j)+v;N[f+212>>2]=Q(k*j)+g;N[f+208>>2]=Q(h*j)+m;j=N[d+48>>2];n=N[d+52>>2];g=N[d+56>>2];J[f+44>>2]=0;N[f+40>>2]=-g;N[f+36>>2]=-n;N[f+32>>2]=-j;ua[J[J[W>>2]+16>>2]](W,f+32|0,a,i);J[d+40>>2]=C;break a}j=N[d+48>>2];n:{if(C>>>0<=3){n=N[d+56>>2];u=f+356|0;e=c;c=b;o=f+344|0;i=N[d+52>>2];break n}j=Q(-j);n=Q(-N[d+56>>2]);u=f+344|0;e=G;G=c;c=a;a=b;o=f+356|0;i=Q(-N[d+52>>2])}h=Q(Q(N[c+32>>2]*n)+Q(Q(N[c>>2]*j)+Q(i*N[c+16>>2])));N[f+328>>2]=h;k=Q(Q(N[c+36>>2]*n)+Q(Q(N[c+4>>2]*j)+Q(i*N[c+20>>2])));N[f+332>>2]=k;g=Q(Q(N[c+40>>2]*n)+Q(Q(N[c+8>>2]*j)+Q(i*N[c+24>>2])));N[f+336>>2]=g;g=Q(R(g));k=Q(R(k));h=Q(R(h));o:{if(k>h){l=g>2];g=N[b+(f+328|0)>>2]>2])+Q(N[e+8>>2]-N[G+8>>2]));y=Q(Q(g*N[b+16>>2])+Q(N[e+4>>2]-N[G+4>>2]));q=Q(Q(g*N[b>>2])+Q(N[e>>2]-N[G>>2]));pa=l?2:1;b=1;e=2;p:{q:{r:{qa=(C>>>0<4?-1:-4)+C|0;switch(qa|0){case 0:break p;case 1:break r;default:break q}}b=0;break p}e=1;b=0}l=b<<2;b=l+a|0;g=N[b+32>>2];h=N[b>>2];k=N[b+16>>2];b=e<<2;a=b+a|0;m=N[a+32>>2];p=N[a>>2];r=N[a+16>>2];H=Q(Q(v*m)+Q(Q(q*p)+Q(y*r)));a=X<<2;ma=a+c|0;B=N[ma+32>>2];w=N[ma>>2];O=N[ma+16>>2];A=Q(Q(m*B)+Q(Q(p*w)+Q(r*O)));T=N[a+o>>2];K=Q(A*T);F=Q(H+K);a=pa<<2;fa=a+c|0;E=N[fa+32>>2];z=N[fa>>2];s=N[fa+16>>2];p=Q(Q(m*E)+Q(Q(p*z)+Q(r*s)));U=N[a+o>>2];m=Q(p*U);N[f+316>>2]=F-m;r=Q(Q(v*g)+Q(Q(q*h)+Q(y*k)));B=Q(Q(g*B)+Q(Q(h*w)+Q(k*O)));O=Q(T*B);T=Q(r+O);w=Q(Q(g*E)+Q(Q(h*z)+Q(k*s)));g=Q(U*w);N[f+312>>2]=T-g;N[f+308>>2]=F+m;N[f+304>>2]=T+g;h=Q(H-K);N[f+300>>2]=h+m;k=Q(r-O);N[f+296>>2]=k+g;N[f+292>>2]=h-m;N[f+288>>2]=k-g;N[f+280>>2]=N[l+u>>2];N[f+284>>2]=N[b+u>>2];e=f+208|0;l=0;t=sa+-64|0;sa=t;g=N[f+280>>2];m=N[f+288>>2];h=Q(-m);if(g>h){N[e>>2]=m;N[e+4>>2]=N[f+292>>2];g=N[f+280>>2];m=N[f+288>>2];h=Q(-m);l=1;b=e+8|0}else{b=e}a=g>h;h=N[f+296>>2];k=Q(-h);if((a|0)!=(k>2];N[b+4>>2]=Q(Q(Q(N[f+300>>2]-k)/Q(h-m))*Q(Q(-g)-m))+k;N[b>>2]=-N[f+280>>2];l=l+1|0;g=N[f+280>>2];h=N[f+296>>2];k=Q(-h);b=b+8|0}if(g>k){N[b>>2]=h;N[b+4>>2]=N[f+300>>2];l=l+1|0;g=N[f+280>>2];h=N[f+296>>2];k=Q(-h);b=b+8|0}a=g>k;k=N[f+304>>2];m=Q(-k);if((a|0)!=(m>2];N[b+4>>2]=Q(Q(Q(N[f+308>>2]-m)/Q(k-h))*Q(Q(-g)-h))+m;N[b>>2]=-N[f+280>>2];l=l+1|0;g=N[f+280>>2];k=N[f+304>>2];m=Q(-k);b=b+8|0}if(g>m){N[b>>2]=k;N[b+4>>2]=N[f+308>>2];l=l+1|0;g=N[f+280>>2];k=N[f+304>>2];m=Q(-k);b=b+8|0}a=g>m;h=N[f+312>>2];m=Q(-h);if((a|0)!=(m>2];N[b+4>>2]=Q(Q(Q(N[f+316>>2]-m)/Q(h-k))*Q(Q(-g)-k))+m;N[b>>2]=-N[f+280>>2];l=l+1|0;g=N[f+280>>2];h=N[f+312>>2];m=Q(-h);b=b+8|0}if(g>m){N[b>>2]=h;N[b+4>>2]=N[f+316>>2];l=l+1|0;g=N[f+280>>2];h=N[f+312>>2];m=Q(-h);b=b+8|0}s:{t:{u:{k=N[f+288>>2];if((Q(-k)m|0)){m=N[f+316>>2];N[b+4>>2]=Q(Q(Q(N[f+292>>2]-m)/Q(k-h))*Q(Q(-g)-h))+m;N[b>>2]=-N[f+280>>2];b=8;l=l+1|0;if(l&8){break s}break u}if(l){break u}b=0;break t}g=N[f+280>>2];h=N[e>>2];v:{if(!(g>h)){b=0;a=t;break v}N[t>>2]=h;N[t+4>>2]=N[e+4>>2];g=N[f+280>>2];h=N[e>>2];b=1;a=t|8}o=e+8|0;x=l>>>0>1;k=N[e+(x<<3)>>2];if((kh|0)){m=N[e+4>>2];N[a+4>>2]=Q(Q(Q(N[(x?o:e)+4>>2]-m)/Q(k-h))*Q(g-h))+m;N[a>>2]=N[f+280>>2];b=b+1|0;a=a+8|0}w:{if((l|0)<2){break w}g=N[o>>2];h=N[f+280>>2];if(g>2]=g;N[a+4>>2]=N[e+12>>2];b=b+1|0;h=N[f+280>>2];g=N[o>>2];a=a+8|0}o=e+16|0;x=l-3>>>0<4294967294;k=N[e+(x<<4)>>2];if((g>2];N[a+4>>2]=Q(Q(Q(N[(x?o:e)+4>>2]-m)/Q(k-g))*Q(h-g))+m;N[a>>2]=N[f+280>>2];b=b+1|0;if(b&8){break t}a=a+8|0}if((l|0)<3){break w}g=N[o>>2];h=N[f+280>>2];if(g>2]=g;N[a+4>>2]=N[e+20>>2];b=b+1|0;if(b&8){break t}h=N[f+280>>2];g=N[o>>2];a=a+8|0}o=e+24|0;x=(l&254)==2;k=N[e+(x?0:24)>>2];if((g>2];N[a+4>>2]=Q(Q(Q(N[(x?e:o)+4>>2]-m)/Q(k-g))*Q(h-g))+m;N[a>>2]=N[f+280>>2];b=b+1|0;if(b&8){break t}a=a+8|0}if((l|0)<4){break w}g=N[o>>2];h=N[f+280>>2];if(g>2]=g;N[a+4>>2]=N[e+28>>2];b=b+1|0;if(b&8){break t}h=N[f+280>>2];g=N[o>>2];a=a+8|0}o=e+32|0;x=l-5>>>0<4294967294;k=N[e+(x<<5)>>2];if((g>2];N[a+4>>2]=Q(Q(Q(N[(x?o:e)+4>>2]-m)/Q(k-g))*Q(h-g))+m;N[a>>2]=N[f+280>>2];b=b+1|0;if(b&8){break t}a=a+8|0}if((l|0)<5){break w}g=N[o>>2];h=N[f+280>>2];if(g>2]=g;N[a+4>>2]=N[e+36>>2];b=b+1|0;if(b&8){break t}h=N[f+280>>2];g=N[o>>2];a=a+8|0}o=e+40|0;x=(l&254)==4;k=N[e+(x?0:40)>>2];if((g>2];N[a+4>>2]=Q(Q(Q(N[(x?e:o)+4>>2]-m)/Q(k-g))*Q(h-g))+m;N[a>>2]=N[f+280>>2];b=b+1|0;if(b&8){break t}a=a+8|0}if((l|0)<6){break w}g=N[o>>2];h=N[f+280>>2];if(g>2]=g;N[a+4>>2]=N[e+44>>2];b=b+1|0;if(b&8){break t}h=N[f+280>>2];g=N[o>>2];a=a+8|0}o=e+48|0;x=l-7>>>0<4294967294;k=N[e+(x?48:0)>>2];if((g>2];N[a+4>>2]=Q(Q(Q(N[(x?o:e)+4>>2]-m)/Q(k-g))*Q(h-g))+m;N[a>>2]=N[f+280>>2];b=b+1|0;if(b&8){break t}a=a+8|0}if((l|0)<7){break w}g=N[o>>2];h=N[f+280>>2];if(g>2]=g;N[a+4>>2]=N[e+52>>2];b=b+1|0;if(b&8){break t}h=N[f+280>>2];g=N[o>>2];a=a+8|0}o=e+56|0;x=(l&254)==6;k=N[e+(x?0:56)>>2];if((g>2];N[a+4>>2]=Q(Q(Q(N[(x?e:o)+4>>2]-m)/Q(k-g))*Q(h-g))+m;N[a>>2]=N[f+280>>2];b=b+1|0;if(b&8){break t}a=a+8|0}if((l|0)<8){break w}g=N[o>>2];h=N[f+280>>2];if(g>2]=g;N[a+4>>2]=N[e+60>>2];b=b+1|0;if(b&8){break t}h=N[f+280>>2];g=N[o>>2];a=a+8|0}l=e+((l-9>>>0<4294967294)<<6)|0;k=N[l>>2];if((g>2];N[a+4>>2]=Q(Q(Q(N[l+4>>2]-m)/Q(k-g))*Q(h-g))+m;N[a>>2]=N[f+280>>2];b=b+1|0;if(b&8){break t}}if((b|0)<=0){b=0;break t}na=t|4;o=0;a=t;l=e;while(1){g=N[f+284>>2];k=N[a+4>>2];h=Q(-k);if(g>h){N[l>>2]=N[a>>2];N[l+4>>2]=N[a+4>>2];o=o+1|0;if(o&8){b=o;break s}g=N[f+284>>2];k=N[a+4>>2];h=Q(-k);l=l+8|0}x=a+8|0;ra=b>>>0>1;m=N[(ra?a+12|0:na)>>2];if((Q(-m)h|0)){h=N[a>>2];N[l>>2]=Q(Q(Q(N[(ra?x:t)>>2]-h)/Q(m-k))*Q(Q(-g)-k))+h;N[l+4>>2]=-N[f+284>>2];o=o+1|0;if(o&8){b=o;break s}l=l+8|0}ra=(b|0)>1;b=b-1|0;a=x;if(ra){continue}break}b=0;if((o|0)<=0){break t}l=t;a=e;while(1){g=N[f+284>>2];h=N[a+4>>2];if(g>h){N[l>>2]=N[a>>2];N[l+4>>2]=N[a+4>>2];b=b+1|0;if(b&8){break t}g=N[f+284>>2];h=N[a+4>>2];l=l+8|0}x=a+8|0;na=o>>>0>1?x:e;k=N[na+4>>2];if((kh|0)){m=N[a>>2];N[l>>2]=Q(Q(Q(N[na>>2]-m)/Q(k-h))*Q(g-h))+m;N[l+4>>2]=N[f+284>>2];b=b+1|0;if(b&8){break t}l=l+8|0}na=(o|0)>1;o=o-1|0;a=x;if(na){continue}break}}Ja(e,t,b<<3)}sa=t- -64|0;if((b|0)<=0){break a}e=b;g=Q(Q(1)/Q(Q(B*p)-Q(A*w)));k=Q(g*Q(-A));m=Q(g*Q(-w));p=Q(p*g);A=Q(B*g);B=N[(qa<<2)+u>>2];a=(pa<<2)+c|0;w=N[a+32>>2];b=(X<<2)+c|0;O=N[b+32>>2];T=N[a+16>>2];K=N[b+16>>2];F=N[fa>>2];E=N[ma>>2];a=0;b=0;while(1){c=(f+112|0)+P(a,12)|0;l=(f+208|0)+(b<<3)|0;z=N[l>>2];h=Q(z-r);s=N[l+4>>2];U=Q(s-H);g=Q(Q(k*h)+Q(A*U));h=Q(Q(p*h)+Q(m*U));U=Q(Q(g*F)+Q(Q(h*E)+q));N[c>>2]=U;ea=Q(Q(g*T)+Q(Q(h*K)+y));N[c+4>>2]=ea;g=Q(Q(g*w)+Q(Q(h*O)+v));N[c+8>>2]=g;g=Q(B-Q(Q(n*g)+Q(Q(j*U)+Q(i*ea))));N[(f+80|0)+(a<<2)>>2]=g;if(g>=Q(0)){c=(f+208|0)+(a<<3)|0;N[c+4>>2]=s;N[c>>2]=z;a=a+1|0}b=b+1|0;if((e|0)!=(b|0)){continue}break}if((a|0)<=0){break a}b=(a|0)>=4?4:a;X=(b|0)<=1?1:b;x:{if(X>>>0>=a>>>0){if(C>>>0>=4){b=0;while(1){c=(f+112|0)+P(b,12)|0;i=N[d+48>>2];j=N[(f+80|0)+(b<<2)>>2];N[f+32>>2]=Q(N[c>>2]+N[G>>2])-Q(i*j);n=N[d+52>>2];N[f+36>>2]=Q(N[c+4>>2]+N[G+4>>2])-Q(j*n);g=N[d+56>>2];N[f+40>>2]=Q(N[c+8>>2]+N[G+8>>2])-Q(j*g);J[f+76>>2]=0;N[f+72>>2]=-g;N[f+68>>2]=-n;N[f+64>>2]=-i;ua[J[J[W>>2]+16>>2]](W,f- -64|0,f+32|0,Q(-j));b=b+1|0;if((b|0)!=(a|0)){continue}break}break x}b=0;while(1){c=(f+112|0)+P(b,12)|0;N[f+32>>2]=N[c>>2]+N[G>>2];N[f+36>>2]=N[c+4>>2]+N[G+4>>2];N[f+40>>2]=N[c+8>>2]+N[G+8>>2];j=N[d+48>>2];i=N[d+52>>2];n=N[d+56>>2];J[f+76>>2]=0;N[f+72>>2]=-n;N[f+68>>2]=-i;N[f+64>>2]=-j;ua[J[J[W>>2]+16>>2]](W,f- -64|0,f+32|0,Q(-N[(f+80|0)+(b<<2)>>2]));b=b+1|0;if((b|0)!=(a|0)){continue}break}break x}c=0;y:{if(a>>>0<2){break y}b=a-1|0;t=b&3;e=0;n=N[f+80>>2];z:{if(a-2>>>0<3){b=1;break z}ma=b&-4;b=1;while(1){l=f+80|0;fa=b+3|0;j=N[l+(fa<<2)>>2];i=N[l+(b<<2)>>2];u=i>n;pa=b+1|0;g=N[l+(pa<<2)>>2];i=u?i:n;o=g>i;qa=b+2|0;n=N[l+(qa<<2)>>2];i=o?g:i;l=n>i;i=l?n:i;x=i>2];l=j>n;n=l?j:n;c=l?b:c;b=b+1|0;e=e+1|0;if((t|0)!=(e|0)){continue}break}}t=f+208|0;u=f+32|0;e=0;i=Q(0);g=Q(0);h=Q(0);l=sa+-64|0;sa=l;A:{B:{C:{D:{E:{b=a;switch(b-1|0){case 1:break C;case 0:break D;default:break E}}if((b|0)>=2){o=b-2|0;while(1){a=t+(e<<3)|0;n=N[a>>2];k=N[a+12>>2];m=N[a+4>>2];v=N[a+8>>2];j=Q(Q(n*k)-Q(m*v));i=Q(i+j);g=Q(Q(j*Q(k+m))+g);h=Q(Q(j*Q(n+v))+h);a=(e|0)!=(o|0);e=e+1|0;if(a){continue}break}}k=Q(0xde0b6b000000000);y=i;a=t+(b<<3)|0;i=N[a-8>>2];n=N[t+4>>2];m=N[a-4>>2];v=N[t>>2];j=Q(Q(i*n)-Q(m*v));y=Q(y+j);if(Q(R(y))>Q(1.1920928955078125e-7)){k=Q(Q(1)/Q(y*Q(3)))}e=0;if((b|0)<=0){break A}g=Q(Q(Q(j*Q(n+m))+g)*k);j=Q(Q(Q(j*Q(i+v))+h)*k);break B}g=N[t+4>>2];j=N[t>>2];break B}g=Q(Q(N[t+4>>2]+N[t+12>>2])*Q(.5));j=Q(Q(N[t>>2]+N[t+8>>2])*Q(.5))}while(1){a=t+(e<<3)|0;va=(l+32|0)+(e<<2)|0,wa=Ia(Q(N[a+4>>2]-g),Q(N[a>>2]-j)),N[va>>2]=wa;e=e+1|0;if((b|0)!=(e|0)){continue}break}D=0;o=0;if(b-1>>>0>=7){t=b&-8;a=0;while(1){e=o<<2;J[e+l>>2]=1;J[l+(e|4)>>2]=1;J[l+(e|8)>>2]=1;J[l+(e|12)>>2]=1;J[l+(e|16)>>2]=1;J[l+(e|20)>>2]=1;J[l+(e|24)>>2]=1;J[l+(e|28)>>2]=1;o=o+8|0;a=a+8|0;if((t|0)!=(a|0)){continue}break}}a=b&7;if(!a){e=1;break A}while(1){e=1;J[l+(o<<2)>>2]=1;o=o+1|0;D=D+1|0;if((a|0)!=(D|0)){continue}break}}a=c<<2;J[a+l>>2]=0;J[u>>2]=c;F:{if((X|0)<2){break F}D=u+4|0;if(e){n=Q(Q(6.2831854820251465)/Q(X|0));g=N[a+(l+32|0)>>2];u=1;while(1){J[D>>2]=c;j=Q(Q(Q(u|0)*n)+g);h=j>Q(3.1415927410125732)?Q(j+Q(-6.2831854820251465)):j;i=Q(1e9);a=c;e=0;while(1){t=e<<2;G:{if(!J[t+l>>2]){break G}j=Q(R(Q(N[t+(l+32|0)>>2]-h)));j=j>Q(3.1415927410125732)?Q(Q(6.2831854820251465)-j):j;if(!(j>2]=e;a=e;i=j}e=e+1|0;if((b|0)!=(e|0)){continue}break}J[l+(a<<2)>>2]=0;D=D+4|0;u=u+1|0;if((X|0)!=(u|0)){continue}break}break F}b=X-1|0;a=b&7;if(X-2>>>0>=7){b=b&-8;e=0;while(1){J[D+28>>2]=c;J[D+24>>2]=c;J[D+20>>2]=c;J[D+16>>2]=c;J[D+12>>2]=c;J[D+8>>2]=c;J[D+4>>2]=c;J[D>>2]=c;D=D+32|0;e=e+8|0;if((b|0)!=(e|0)){continue}break}}if(!a){break F}e=0;while(1){J[D>>2]=c;D=D+4|0;e=e+1|0;if((a|0)!=(e|0)){continue}break}}sa=l- -64|0;c=C>>>0>3;a=0;while(1){e=J[(f+32|0)+(a<<2)>>2];b=(f+112|0)+P(e,12)|0;h=Q(N[b>>2]+N[G>>2]);N[f+64>>2]=h;k=Q(N[b+4>>2]+N[G+4>>2]);N[f+68>>2]=k;m=Q(N[b+8>>2]+N[G+8>>2]);N[f+72>>2]=m;b=(f+80|0)+(e<<2)|0;H:{if(!c){j=N[d+48>>2];i=N[d+52>>2];n=N[d+56>>2];J[f+28>>2]=0;N[f+24>>2]=-n;N[f+20>>2]=-i;N[f+16>>2]=-j;ua[J[J[W>>2]+16>>2]](W,f+16|0,f- -64|0,Q(-N[b>>2]));break H}i=N[d+48>>2];n=N[d+52>>2];g=N[d+56>>2];J[f+28>>2]=0;N[f+24>>2]=-g;N[f+20>>2]=-n;N[f+16>>2]=-i;j=N[b>>2];J[f+12>>2]=0;N[f+8>>2]=m-Q(g*j);N[f+4>>2]=k-Q(n*j);N[f>>2]=h-Q(i*j);ua[J[J[W>>2]+16>>2]](W,f+16|0,f,Q(-j))}a=a+1|0;if((X|0)!=(a|0)){continue}break}}J[d+40>>2]=C}sa=f+368|0;sa=d+160|0}function dh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=Q(0),g=Q(0),h=0,i=Q(0),j=0,k=0,l=Q(0),m=0,n=Q(0),o=Q(0),p=Q(0),q=0,r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=Q(0),H=Q(0),I=Q(0);c=sa-352|0;sa=c;d=ua[J[J[a>>2]+20>>2]](a)|0;ua[J[J[d>>2]+8>>2]](c+224|0,d);d=J[c+348>>2];J[c+216>>2]=J[c+344>>2];J[c+220>>2]=d;d=J[c+340>>2];J[c+208>>2]=J[c+336>>2];J[c+212>>2]=d;d=ua[J[J[a>>2]+20>>2]](a)|0;d=ua[J[J[d>>2]+56>>2]](d)|0;j=ua[J[J[a>>2]+20>>2]](a)|0;j=ua[J[J[j>>2]+56>>2]](j)|0;w=N[b+40>>2];a:{if(w<=Q(0)){break a}e=d&2048;k=j&4096;b:{switch(J[b+4>>2]-3|0){case 0:J[c+156>>2]=0;J[c+160>>2]=0;J[c+168>>2]=0;J[c+172>>2]=0;J[c+164>>2]=1065353216;J[c+176>>2]=0;J[c+180>>2]=0;J[c+184>>2]=1065353216;J[c+188>>2]=0;J[c+148>>2]=0;J[c+152>>2]=0;J[c+144>>2]=1065353216;d=J[b+28>>2];l=N[d+52>>2];o=N[d+8>>2];p=N[d+12>>2];n=N[d+56>>2];r=N[d+20>>2];s=N[d+24>>2];x=N[d+28>>2];t=N[d+60>>2];u=N[d+36>>2];f=N[b+304>>2];v=N[d+40>>2];g=N[b+308>>2];y=N[d+44>>2];z=N[d+4>>2];i=N[b+300>>2];J[c+204>>2]=0;N[c+200>>2]=t+Q(Q(g*y)+Q(Q(i*u)+Q(f*v)));N[c+196>>2]=n+Q(Q(g*x)+Q(Q(i*r)+Q(f*s)));N[c+192>>2]=l+Q(Q(g*p)+Q(Q(i*z)+Q(f*o)));d=ua[J[J[a>>2]+20>>2]](a)|0;ua[J[J[d>>2]+64>>2]](d,c+144|0,w);d=J[b+32>>2];l=N[d+52>>2];o=N[d+8>>2];p=N[d+12>>2];n=N[d+56>>2];r=N[d+20>>2];s=N[d+24>>2];x=N[d+28>>2];t=N[d+60>>2];u=N[d+36>>2];f=N[b+320>>2];v=N[d+40>>2];g=N[b+324>>2];y=N[d+44>>2];z=N[d+4>>2];i=N[b+316>>2];J[c+204>>2]=0;N[c+200>>2]=t+Q(Q(g*y)+Q(Q(i*u)+Q(f*v)));N[c+196>>2]=n+Q(Q(g*x)+Q(Q(i*r)+Q(f*s)));N[c+192>>2]=l+Q(Q(g*p)+Q(Q(i*z)+Q(f*o)));if(!e){break a}a=ua[J[J[a>>2]+20>>2]](a)|0;ua[J[J[a>>2]+64>>2]](a,c+144|0,w);break a;case 1:d=J[b+28>>2];G=N[d+52>>2];f=N[d+8>>2];g=N[d+12>>2];x=N[b+568>>2];t=N[b+584>>2];H=N[d+56>>2];I=N[d+60>>2];u=N[b+608>>2];v=N[b+600>>2];y=N[b+604>>2];i=N[d+28>>2];l=N[d+20>>2];o=N[d+24>>2];z=N[b+588>>2];A=N[b+556>>2];B=N[b+572>>2];C=N[b+592>>2];p=N[d+44>>2];D=N[b+560>>2];n=N[d+36>>2];E=N[b+576>>2];r=N[d+40>>2];s=N[d+4>>2];F=N[b+552>>2];J[c+204>>2]=0;J[c+188>>2]=0;J[c+172>>2]=0;N[c+184>>2]=Q(C*p)+Q(Q(D*n)+Q(E*r));N[c+180>>2]=Q(z*p)+Q(Q(A*n)+Q(B*r));N[c+168>>2]=Q(C*i)+Q(Q(D*l)+Q(E*o));N[c+164>>2]=Q(z*i)+Q(Q(A*l)+Q(B*o));N[c+200>>2]=I+Q(Q(u*p)+Q(Q(v*n)+Q(r*y)));N[c+196>>2]=H+Q(Q(u*i)+Q(Q(v*l)+Q(o*y)));J[c+156>>2]=0;N[c+176>>2]=Q(t*p)+Q(Q(F*n)+Q(x*r));N[c+160>>2]=Q(t*i)+Q(Q(F*l)+Q(x*o));N[c+152>>2]=Q(C*g)+Q(Q(D*s)+Q(f*E));N[c+148>>2]=Q(z*g)+Q(Q(A*s)+Q(f*B));N[c+144>>2]=Q(t*g)+Q(Q(F*s)+Q(x*f));N[c+192>>2]=G+Q(Q(u*g)+Q(Q(v*s)+Q(f*y)));c:{if(e){d=ua[J[J[a>>2]+20>>2]](a)|0;j=c+144|0;ua[J[J[d>>2]+64>>2]](d,j,w);d=J[b+32>>2];G=N[d+52>>2];H=N[d+56>>2];I=N[d+60>>2];x=N[b+672>>2];t=N[b+664>>2];u=N[b+668>>2];f=N[d+8>>2];g=N[d+12>>2];i=N[d+28>>2];l=N[d+20>>2];o=N[d+24>>2];v=N[b+632>>2];y=N[b+648>>2];z=N[b+652>>2];A=N[b+620>>2];B=N[b+636>>2];C=N[b+656>>2];p=N[d+44>>2];D=N[b+624>>2];n=N[d+36>>2];E=N[b+640>>2];r=N[d+40>>2];s=N[d+4>>2];F=N[b+616>>2];J[c+204>>2]=0;J[c+188>>2]=0;J[c+172>>2]=0;J[c+156>>2]=0;N[c+184>>2]=Q(C*p)+Q(Q(D*n)+Q(E*r));N[c+180>>2]=Q(z*p)+Q(Q(A*n)+Q(B*r));N[c+176>>2]=Q(y*p)+Q(Q(F*n)+Q(v*r));N[c+168>>2]=Q(C*i)+Q(Q(D*l)+Q(E*o));N[c+164>>2]=Q(z*i)+Q(Q(A*l)+Q(B*o));N[c+160>>2]=Q(y*i)+Q(Q(F*l)+Q(v*o));N[c+152>>2]=Q(C*g)+Q(Q(D*s)+Q(f*E));N[c+148>>2]=Q(z*g)+Q(Q(A*s)+Q(f*B));N[c+144>>2]=Q(y*g)+Q(Q(F*s)+Q(v*f));N[c+200>>2]=I+Q(Q(x*p)+Q(Q(t*n)+Q(r*u)));N[c+196>>2]=H+Q(Q(x*i)+Q(Q(t*l)+Q(o*u)));N[c+192>>2]=G+Q(Q(x*g)+Q(Q(t*s)+Q(f*u)));d=ua[J[J[a>>2]+20>>2]](a)|0;ua[J[J[d>>2]+64>>2]](d,j,w);break c}d=J[b+32>>2];G=N[d+52>>2];H=N[d+56>>2];I=N[d+60>>2];x=N[b+672>>2];t=N[b+664>>2];u=N[b+668>>2];f=N[d+8>>2];g=N[d+12>>2];i=N[d+28>>2];l=N[d+20>>2];o=N[d+24>>2];v=N[b+632>>2];y=N[b+648>>2];z=N[b+652>>2];A=N[b+620>>2];B=N[b+636>>2];C=N[b+656>>2];p=N[d+44>>2];D=N[b+624>>2];n=N[d+36>>2];E=N[b+640>>2];r=N[d+40>>2];s=N[d+4>>2];F=N[b+616>>2];J[c+204>>2]=0;J[c+188>>2]=0;J[c+172>>2]=0;J[c+156>>2]=0;N[c+184>>2]=Q(C*p)+Q(Q(D*n)+Q(E*r));N[c+180>>2]=Q(z*p)+Q(Q(A*n)+Q(B*r));N[c+176>>2]=Q(y*p)+Q(Q(F*n)+Q(v*r));N[c+168>>2]=Q(C*i)+Q(Q(D*l)+Q(E*o));N[c+164>>2]=Q(z*i)+Q(Q(A*l)+Q(B*o));N[c+160>>2]=Q(y*i)+Q(Q(F*l)+Q(v*o));N[c+152>>2]=Q(C*g)+Q(Q(D*s)+Q(f*E));N[c+148>>2]=Q(z*g)+Q(Q(A*s)+Q(f*B));N[c+144>>2]=Q(y*g)+Q(Q(F*s)+Q(v*f));N[c+200>>2]=I+Q(Q(x*p)+Q(Q(t*n)+Q(r*u)));N[c+196>>2]=H+Q(Q(x*i)+Q(Q(t*l)+Q(o*u)));N[c+192>>2]=G+Q(Q(x*g)+Q(Q(t*s)+Q(f*u)))}d=b+688|0;f=Eb(d);g=Fb(d);if(!k|f==g){break a}i=N[b+692>>2];N[c+64>>2]=N[c+152>>2];N[c+68>>2]=N[c+168>>2];J[c+76>>2]=0;N[c+72>>2]=N[c+184>>2];N[c+128>>2]=N[c+144>>2];N[c+132>>2]=N[c+160>>2];J[c+140>>2]=0;N[c+136>>2]=N[c+176>>2];b=ua[J[J[a>>2]+20>>2]](a)|0;a=i>Q(0);ua[J[J[b>>2]+68>>2]](b,c+192|0,c- -64|0,c+128|0,w,w,a?f:Q(0),a?g:Q(6.2831854820251465),c+208|0,a,Q(10));break a;case 2:d=J[b+28>>2];G=N[d+52>>2];f=N[d+8>>2];g=N[d+12>>2];x=N[b+316>>2];t=N[b+332>>2];H=N[d+56>>2];I=N[d+60>>2];u=N[b+356>>2];v=N[b+348>>2];y=N[b+352>>2];i=N[d+28>>2];l=N[d+20>>2];o=N[d+24>>2];z=N[b+336>>2];A=N[b+304>>2];B=N[b+320>>2];C=N[b+340>>2];p=N[d+44>>2];D=N[b+308>>2];n=N[d+36>>2];E=N[b+324>>2];r=N[d+40>>2];s=N[d+4>>2];F=N[b+300>>2];J[c+204>>2]=0;J[c+188>>2]=0;J[c+172>>2]=0;N[c+184>>2]=Q(C*p)+Q(Q(D*n)+Q(E*r));N[c+180>>2]=Q(z*p)+Q(Q(A*n)+Q(B*r));N[c+168>>2]=Q(C*i)+Q(Q(D*l)+Q(E*o));N[c+164>>2]=Q(z*i)+Q(Q(A*l)+Q(B*o));N[c+200>>2]=I+Q(Q(u*p)+Q(Q(v*n)+Q(r*y)));N[c+196>>2]=H+Q(Q(u*i)+Q(Q(v*l)+Q(o*y)));J[c+156>>2]=0;N[c+176>>2]=Q(t*p)+Q(Q(F*n)+Q(x*r));N[c+160>>2]=Q(t*i)+Q(Q(F*l)+Q(x*o));N[c+152>>2]=Q(C*g)+Q(Q(D*s)+Q(f*E));N[c+148>>2]=Q(z*g)+Q(Q(A*s)+Q(f*B));N[c+144>>2]=Q(t*g)+Q(Q(F*s)+Q(x*f));N[c+192>>2]=G+Q(Q(u*g)+Q(Q(v*s)+Q(f*y)));d:{if(e){d=ua[J[J[a>>2]+20>>2]](a)|0;j=c+144|0;ua[J[J[d>>2]+64>>2]](d,j,w);d=J[b+32>>2];G=N[d+52>>2];H=N[d+56>>2];I=N[d+60>>2];x=N[b+420>>2];t=N[b+412>>2];u=N[b+416>>2];f=N[d+8>>2];g=N[d+12>>2];i=N[d+28>>2];l=N[d+20>>2];o=N[d+24>>2];v=N[b+380>>2];y=N[b+396>>2];z=N[b+400>>2];A=N[b+368>>2];B=N[b+384>>2];C=N[b+404>>2];p=N[d+44>>2];D=N[b+372>>2];n=N[d+36>>2];E=N[b+388>>2];r=N[d+40>>2];s=N[d+4>>2];F=N[b+364>>2];J[c+204>>2]=0;J[c+188>>2]=0;J[c+172>>2]=0;J[c+156>>2]=0;N[c+184>>2]=Q(C*p)+Q(Q(D*n)+Q(E*r));N[c+180>>2]=Q(z*p)+Q(Q(A*n)+Q(B*r));N[c+176>>2]=Q(y*p)+Q(Q(F*n)+Q(v*r));N[c+168>>2]=Q(C*i)+Q(Q(D*l)+Q(E*o));N[c+164>>2]=Q(z*i)+Q(Q(A*l)+Q(B*o));N[c+160>>2]=Q(y*i)+Q(Q(F*l)+Q(v*o));N[c+152>>2]=Q(C*g)+Q(Q(D*s)+Q(f*E));N[c+148>>2]=Q(z*g)+Q(Q(A*s)+Q(f*B));N[c+144>>2]=Q(y*g)+Q(Q(F*s)+Q(v*f));N[c+200>>2]=I+Q(Q(x*p)+Q(Q(t*n)+Q(r*u)));N[c+196>>2]=H+Q(Q(x*i)+Q(Q(t*l)+Q(o*u)));N[c+192>>2]=G+Q(Q(x*g)+Q(Q(t*s)+Q(f*u)));d=ua[J[J[a>>2]+20>>2]](a)|0;ua[J[J[d>>2]+64>>2]](d,j,w);break d}d=J[b+32>>2];G=N[d+52>>2];H=N[d+56>>2];I=N[d+60>>2];x=N[b+420>>2];t=N[b+412>>2];u=N[b+416>>2];f=N[d+8>>2];g=N[d+12>>2];i=N[d+28>>2];l=N[d+20>>2];o=N[d+24>>2];v=N[b+380>>2];y=N[b+396>>2];z=N[b+400>>2];A=N[b+368>>2];B=N[b+384>>2];C=N[b+404>>2];p=N[d+44>>2];D=N[b+372>>2];n=N[d+36>>2];E=N[b+388>>2];r=N[d+40>>2];s=N[d+4>>2];F=N[b+364>>2];J[c+204>>2]=0;J[c+188>>2]=0;J[c+172>>2]=0;J[c+156>>2]=0;N[c+184>>2]=Q(C*p)+Q(Q(D*n)+Q(E*r));N[c+180>>2]=Q(z*p)+Q(Q(A*n)+Q(B*r));N[c+176>>2]=Q(y*p)+Q(Q(F*n)+Q(v*r));N[c+168>>2]=Q(C*i)+Q(Q(D*l)+Q(E*o));N[c+164>>2]=Q(z*i)+Q(Q(A*l)+Q(B*o));N[c+160>>2]=Q(y*i)+Q(Q(F*l)+Q(v*o));N[c+152>>2]=Q(C*g)+Q(Q(D*s)+Q(f*E));N[c+148>>2]=Q(z*g)+Q(Q(A*s)+Q(f*B));N[c+144>>2]=Q(y*g)+Q(Q(F*s)+Q(v*f));N[c+200>>2]=I+Q(Q(x*p)+Q(Q(t*n)+Q(r*u)));N[c+196>>2]=H+Q(Q(x*i)+Q(Q(t*l)+Q(o*u)));N[c+192>>2]=G+Q(Q(x*g)+Q(Q(t*s)+Q(f*u)))}if(!k){break a}q=b+300|0;d=c+192|0;zd(c+128|0,b,Q(6.0868353843688965),w);J[c+140>>2]=0;f=N[c+136>>2];g=N[c+128>>2];i=N[c+132>>2];N[c+136>>2]=Q(Q(f*N[c+184>>2])+Q(Q(g*N[c+176>>2])+Q(i*N[c+180>>2])))+N[c+200>>2];N[c+132>>2]=Q(Q(f*N[c+168>>2])+Q(Q(g*N[c+160>>2])+Q(i*N[c+164>>2])))+N[c+196>>2];N[c+128>>2]=Q(Q(f*N[c+152>>2])+Q(Q(g*N[c+144>>2])+Q(i*N[c+148>>2])))+N[c+192>>2];j=0;while(1){e=c- -64|0;zd(e,b,Q(Q(Q(j|0)*Q(6.283185005187988))*Q(.03125)),w);J[c+76>>2]=0;f=N[c+72>>2];g=N[c+64>>2];i=N[c+68>>2];N[c+72>>2]=Q(Q(f*N[c+184>>2])+Q(Q(g*N[c+176>>2])+Q(i*N[c+180>>2])))+N[c+200>>2];N[c+68>>2]=Q(Q(f*N[c+168>>2])+Q(Q(g*N[c+160>>2])+Q(i*N[c+164>>2])))+N[c+196>>2];N[c+64>>2]=Q(Q(f*N[c+152>>2])+Q(Q(g*N[c+144>>2])+Q(i*N[c+148>>2])))+N[c+192>>2];k=ua[J[J[a>>2]+20>>2]](a)|0;ua[J[J[k>>2]+16>>2]](k,c+128|0,e,c+208|0);if(!(j&3)){e=ua[J[J[a>>2]+20>>2]](a)|0;ua[J[J[e>>2]+16>>2]](e,d,c- -64|0,c+208|0)}e=J[c+76>>2];J[c+136>>2]=J[c+72>>2];J[c+140>>2]=e;e=J[c+68>>2];J[c+128>>2]=J[c+64>>2];J[c+132>>2]=e;j=j+1|0;if((j|0)!=32){continue}break};f=N[b+512>>2];g=N[b+452>>2];j=J[b+32>>2];e:{if(N[j+404>>2]>Q(0)){vd(c- -64|0,j+4|0,b+364|0);break e}vd(c- -64|0,J[b+28>>2]+4|0,q)}b=J[c+76>>2];J[c+152>>2]=J[c+72>>2];J[c+156>>2]=b;b=J[c+68>>2];J[c+144>>2]=J[c+64>>2];J[c+148>>2]=b;b=J[c+92>>2];J[c+168>>2]=J[c+88>>2];J[c+172>>2]=b;b=J[c+84>>2];J[c+160>>2]=J[c+80>>2];J[c+164>>2]=b;b=J[c+108>>2];J[c+184>>2]=J[c+104>>2];J[c+188>>2]=b;b=J[c+100>>2];J[c+176>>2]=J[c+96>>2];J[c+180>>2]=b;b=J[c+124>>2];J[d+8>>2]=J[c+120>>2];J[d+12>>2]=b;b=J[c+116>>2];J[d>>2]=J[c+112>>2];J[d+4>>2]=b;b=J[d+12>>2];J[c+72>>2]=J[d+8>>2];J[c+76>>2]=b;b=J[d+4>>2];J[c+64>>2]=J[d>>2];J[c+68>>2]=b;N[c+48>>2]=N[c+144>>2];N[c+52>>2]=N[c+160>>2];J[c+60>>2]=0;N[c+56>>2]=N[c+176>>2];N[c+32>>2]=N[c+148>>2];N[c+36>>2]=N[c+164>>2];J[c+44>>2]=0;N[c+40>>2]=N[c+180>>2];a=ua[J[J[a>>2]+20>>2]](a)|0;ua[J[J[a>>2]+68>>2]](a,c- -64|0,c+48|0,c+32|0,w,w,Q(Q(-f)-g),Q(g-f),c+208|0,1,Q(10));break a;case 3:case 6:d=b+1072|0;j=J[d+4>>2];J[c+152>>2]=J[d>>2];J[c+156>>2]=j;d=J[b+1068>>2];J[c+144>>2]=J[b+1064>>2];J[c+148>>2]=d;d=b+1088|0;j=J[d+4>>2];J[c+168>>2]=J[d>>2];J[c+172>>2]=j;d=b+1080|0;j=J[d+4>>2];J[c+160>>2]=J[d>>2];J[c+164>>2]=j;j=b+1104|0;q=J[j+4>>2];J[c+184>>2]=J[j>>2];J[c+188>>2]=q;j=b+1096|0;q=J[j+4>>2];J[c+176>>2]=J[j>>2];J[c+180>>2]=q;q=b+1120|0;h=J[q+4>>2];J[c+200>>2]=J[q>>2];J[c+204>>2]=h;q=b+1112|0;h=J[q+4>>2];J[c+192>>2]=J[q>>2];J[c+196>>2]=h;if(e){e=ua[J[J[a>>2]+20>>2]](a)|0;h=c+144|0;ua[J[J[e>>2]+64>>2]](e,h,w);e=b+1136|0;m=J[e+4>>2];J[c+152>>2]=J[e>>2];J[c+156>>2]=m;e=J[b+1132>>2];J[c+144>>2]=J[b+1128>>2];J[c+148>>2]=e;e=b+1152|0;m=J[e+4>>2];J[c+168>>2]=J[e>>2];J[c+172>>2]=m;e=b+1144|0;m=J[e+4>>2];J[c+160>>2]=J[e>>2];J[c+164>>2]=m;e=b+1168|0;m=J[e+4>>2];J[c+184>>2]=J[e>>2];J[c+188>>2]=m;e=b+1160|0;m=J[e+4>>2];J[c+176>>2]=J[e>>2];J[c+180>>2]=m;e=b+1184|0;m=J[e+4>>2];J[c+200>>2]=J[e>>2];J[c+204>>2]=m;e=b+1176|0;m=J[e+4>>2];J[c+192>>2]=J[e>>2];J[c+196>>2]=m;e=ua[J[J[a>>2]+20>>2]](a)|0;ua[J[J[e>>2]+64>>2]](e,h,w)}if(!k){break a}e=b+1064|0;k=J[e+12>>2];J[c+152>>2]=J[e+8>>2];J[c+156>>2]=k;k=J[e+4>>2];J[c+144>>2]=J[e>>2];J[c+148>>2]=k;k=J[d+12>>2];J[c+168>>2]=J[d+8>>2];J[c+172>>2]=k;k=J[d+4>>2];J[c+160>>2]=J[d>>2];J[c+164>>2]=k;k=J[j+12>>2];J[c+184>>2]=J[j+8>>2];J[c+188>>2]=k;k=J[j+4>>2];J[c+176>>2]=J[j>>2];J[c+180>>2]=k;k=J[q+12>>2];J[c+200>>2]=J[q+8>>2];J[c+204>>2]=k;k=J[q+4>>2];J[c+192>>2]=J[q>>2];J[c+196>>2]=k;N[c+64>>2]=N[c+152>>2];N[c+68>>2]=N[c+168>>2];J[c+76>>2]=0;N[c+72>>2]=N[c+184>>2];N[c+128>>2]=N[c+144>>2];N[c+132>>2]=N[c+160>>2];J[c+140>>2]=0;N[c+136>>2]=N[c+176>>2];f=N[b+1e3>>2];g=N[b+996>>2];i=N[b+936>>2];l=N[b+932>>2];h=ua[J[J[a>>2]+20>>2]](a)|0;k=b+1176|0;ua[J[J[h>>2]+72>>2]](h,k,c- -64|0,c+128|0,Q(w*Q(.8999999761581421)),l,i,g,f,c+208|0,Q(10),1);J[c+140>>2]=0;N[c+136>>2]=N[c+180>>2];N[c+132>>2]=N[c+164>>2];N[c+128>>2]=N[c+148>>2];l=N[b+1196>>2];f=N[c+128>>2];i=N[b+1200>>2];g=Na(i);o=N[c+132>>2];p=Ma(i);N[c+52>>2]=Q(o*p)-Q(g*f);i=Na(l);n=N[c+136>>2];l=Ma(l);N[c+56>>2]=Q(n*l)+Q(Q(f*Q(i*p))+Q(o*Q(i*g)));N[c+48>>2]=Q(Q(f*Q(l*p))+Q(o*Q(l*g)))-Q(i*n);h=b+1136|0;m=J[h+4>>2];J[c+152>>2]=J[h>>2];J[c+156>>2]=m;h=J[b+1132>>2];J[c+144>>2]=J[b+1128>>2];J[c+148>>2]=h;h=b+1152|0;m=J[h+4>>2];J[c+168>>2]=J[h>>2];J[c+172>>2]=m;h=b+1144|0;m=J[h+4>>2];J[c+160>>2]=J[h>>2];J[c+164>>2]=m;h=b+1168|0;m=J[h+4>>2];J[c+184>>2]=J[h>>2];J[c+188>>2]=m;h=b+1160|0;m=J[h+4>>2];J[c+176>>2]=J[h>>2];J[c+180>>2]=m;h=b+1184|0;m=J[h+4>>2];J[c+200>>2]=J[h>>2];J[c+204>>2]=m;h=J[k+4>>2];J[c+192>>2]=J[k>>2];J[c+196>>2]=h;J[c+44>>2]=0;N[c+40>>2]=-N[c+176>>2];N[c+36>>2]=-N[c+160>>2];N[c+32>>2]=-N[c+144>>2];f=N[b+868>>2];g=N[b+872>>2];f:{if(f>g){h=ua[J[J[a>>2]+20>>2]](a)|0;ua[J[J[h>>2]+68>>2]](h,k,c+32|0,c+48|0,w,w,Q(-3.1415927410125732),Q(3.1415927410125732),c+208|0,0,Q(10));break f}if(!(f>2]+20>>2]](a)|0;ua[J[J[h>>2]+68>>2]](h,k,c+32|0,c+48|0,w,w,f,g,c+208|0,1,Q(10))}k=J[e+12>>2];J[c+152>>2]=J[e+8>>2];J[c+156>>2]=k;k=J[e+4>>2];J[c+144>>2]=J[e>>2];J[c+148>>2]=k;e=J[d+12>>2];J[c+168>>2]=J[d+8>>2];J[c+172>>2]=e;e=J[d+4>>2];J[c+160>>2]=J[d>>2];J[c+164>>2]=e;d=J[j+12>>2];J[c+184>>2]=J[j+8>>2];J[c+188>>2]=d;d=J[j+4>>2];J[c+176>>2]=J[j>>2];J[c+180>>2]=d;d=J[q+12>>2];J[c+200>>2]=J[q+8>>2];J[c+204>>2]=d;d=J[q+4>>2];J[c+192>>2]=J[q>>2];J[c+196>>2]=d;d=J[b+692>>2];J[c+24>>2]=J[b+688>>2];J[c+28>>2]=d;d=J[b+684>>2];J[c+16>>2]=J[b+680>>2];J[c+20>>2]=d;d=J[b+708>>2];J[c+8>>2]=J[b+704>>2];J[c+12>>2]=d;d=J[b+700>>2];J[c>>2]=J[b+696>>2];J[c+4>>2]=d;a=ua[J[J[a>>2]+20>>2]](a)|0;ua[J[J[a>>2]+80>>2]](a,c+16|0,c,c+144|0,c+208|0);break a;case 9:d=b+1244|0;j=J[d+4>>2];J[c+152>>2]=J[d>>2];J[c+156>>2]=j;d=J[b+1240>>2];J[c+144>>2]=J[b+1236>>2];J[c+148>>2]=d;d=b+1260|0;j=J[d+4>>2];J[c+168>>2]=J[d>>2];J[c+172>>2]=j;d=b+1252|0;j=J[d+4>>2];J[c+160>>2]=J[d>>2];J[c+164>>2]=j;j=b+1276|0;q=J[j+4>>2];J[c+184>>2]=J[j>>2];J[c+188>>2]=q;j=b+1268|0;q=J[j+4>>2];J[c+176>>2]=J[j>>2];J[c+180>>2]=q;q=b+1292|0;h=J[q+4>>2];J[c+200>>2]=J[q>>2];J[c+204>>2]=h;q=b+1284|0;h=J[q+4>>2];J[c+192>>2]=J[q>>2];J[c+196>>2]=h;if(e){e=ua[J[J[a>>2]+20>>2]](a)|0;h=c+144|0;ua[J[J[e>>2]+64>>2]](e,h,w);e=b+1308|0;m=J[e+4>>2];J[c+152>>2]=J[e>>2];J[c+156>>2]=m;e=J[b+1304>>2];J[c+144>>2]=J[b+1300>>2];J[c+148>>2]=e;e=b+1324|0;m=J[e+4>>2];J[c+168>>2]=J[e>>2];J[c+172>>2]=m;e=b+1316|0;m=J[e+4>>2];J[c+160>>2]=J[e>>2];J[c+164>>2]=m;e=b+1340|0;m=J[e+4>>2];J[c+184>>2]=J[e>>2];J[c+188>>2]=m;e=b+1332|0;m=J[e+4>>2];J[c+176>>2]=J[e>>2];J[c+180>>2]=m;e=b+1356|0;m=J[e+4>>2];J[c+200>>2]=J[e>>2];J[c+204>>2]=m;e=b+1348|0;m=J[e+4>>2];J[c+192>>2]=J[e>>2];J[c+196>>2]=m;e=ua[J[J[a>>2]+20>>2]](a)|0;ua[J[J[e>>2]+64>>2]](e,h,w)}if(!k){break a}e=b+1236|0;k=J[e+12>>2];J[c+152>>2]=J[e+8>>2];J[c+156>>2]=k;k=J[e+4>>2];J[c+144>>2]=J[e>>2];J[c+148>>2]=k;k=J[d+12>>2];J[c+168>>2]=J[d+8>>2];J[c+172>>2]=k;k=J[d+4>>2];J[c+160>>2]=J[d>>2];J[c+164>>2]=k;k=J[j+12>>2];J[c+184>>2]=J[j+8>>2];J[c+188>>2]=k;k=J[j+4>>2];J[c+176>>2]=J[j>>2];J[c+180>>2]=k;k=J[q+12>>2];J[c+200>>2]=J[q+8>>2];J[c+204>>2]=k;k=J[q+4>>2];J[c+192>>2]=J[q>>2];J[c+196>>2]=k;N[c+64>>2]=N[c+152>>2];N[c+68>>2]=N[c+168>>2];J[c+76>>2]=0;N[c+72>>2]=N[c+184>>2];N[c+128>>2]=N[c+144>>2];N[c+132>>2]=N[c+160>>2];J[c+140>>2]=0;N[c+136>>2]=N[c+176>>2];f=N[b+1148>>2];g=N[b+1144>>2];i=N[b+1060>>2];l=N[b+1056>>2];h=ua[J[J[a>>2]+20>>2]](a)|0;k=b+1348|0;ua[J[J[h>>2]+72>>2]](h,k,c- -64|0,c+128|0,Q(w*Q(.8999999761581421)),l,i,g,f,c+208|0,Q(10),1);J[c+140>>2]=0;p=N[c+180>>2];N[c+136>>2]=p;f=N[c+164>>2];N[c+132>>2]=f;g=N[c+148>>2];N[c+128>>2]=g;l=N[b+1372>>2];i=Na(l);l=Ma(l);n=N[b+1368>>2];N[c+52>>2]=Q(l*f)-Q(i*g);o=Na(n);n=Ma(n);N[c+56>>2]=Q(p*n)+Q(Q(g*Q(o*l))+Q(f*Q(o*i)));N[c+48>>2]=Q(Q(g*Q(n*l))+Q(f*Q(n*i)))-Q(o*p);h=b+1308|0;m=J[h+4>>2];J[c+152>>2]=J[h>>2];J[c+156>>2]=m;h=J[b+1304>>2];J[c+144>>2]=J[b+1300>>2];J[c+148>>2]=h;h=b+1324|0;m=J[h+4>>2];J[c+168>>2]=J[h>>2];J[c+172>>2]=m;h=b+1316|0;m=J[h+4>>2];J[c+160>>2]=J[h>>2];J[c+164>>2]=m;h=b+1340|0;m=J[h+4>>2];J[c+184>>2]=J[h>>2];J[c+188>>2]=m;h=b+1332|0;m=J[h+4>>2];J[c+176>>2]=J[h>>2];J[c+180>>2]=m;h=b+1356|0;m=J[h+4>>2];J[c+200>>2]=J[h>>2];J[c+204>>2]=m;h=J[k+4>>2];J[c+192>>2]=J[k>>2];J[c+196>>2]=h;J[c+44>>2]=0;N[c+40>>2]=-N[c+176>>2];N[c+36>>2]=-N[c+160>>2];N[c+32>>2]=-N[c+144>>2];f=N[b+968>>2];g=N[b+972>>2];g:{if(f>g){h=ua[J[J[a>>2]+20>>2]](a)|0;ua[J[J[h>>2]+68>>2]](h,k,c+32|0,c+48|0,w,w,Q(-3.1415927410125732),Q(3.1415927410125732),c+208|0,0,Q(10));break g}if(!(f>2]+20>>2]](a)|0;ua[J[J[h>>2]+68>>2]](h,k,c+32|0,c+48|0,w,w,f,g,c+208|0,1,Q(10))}k=J[e+12>>2];J[c+152>>2]=J[e+8>>2];J[c+156>>2]=k;k=J[e+4>>2];J[c+144>>2]=J[e>>2];J[c+148>>2]=k;e=J[d+12>>2];J[c+168>>2]=J[d+8>>2];J[c+172>>2]=e;e=J[d+4>>2];J[c+160>>2]=J[d>>2];J[c+164>>2]=e;d=J[j+12>>2];J[c+184>>2]=J[j+8>>2];J[c+188>>2]=d;d=J[j+4>>2];J[c+176>>2]=J[j>>2];J[c+180>>2]=d;d=J[q+12>>2];J[c+200>>2]=J[q+8>>2];J[c+204>>2]=d;d=J[q+4>>2];J[c+192>>2]=J[q>>2];J[c+196>>2]=d;d=J[b+692>>2];J[c+24>>2]=J[b+688>>2];J[c+28>>2]=d;d=J[b+684>>2];J[c+16>>2]=J[b+680>>2];J[c+20>>2]=d;d=J[b+708>>2];J[c+8>>2]=J[b+704>>2];J[c+12>>2]=d;d=J[b+700>>2];J[c>>2]=J[b+696>>2];J[c+4>>2]=d;a=ua[J[J[a>>2]+20>>2]](a)|0;ua[J[J[a>>2]+80>>2]](a,c+16|0,c,c+144|0,c+208|0);break a;case 4:break b;default:break a}}d=J[b+836>>2];J[c+152>>2]=J[b+832>>2];J[c+156>>2]=d;d=J[b+828>>2];J[c+144>>2]=J[b+824>>2];J[c+148>>2]=d;d=J[b+852>>2];J[c+168>>2]=J[b+848>>2];J[c+172>>2]=d;d=J[b+844>>2];J[c+160>>2]=J[b+840>>2];J[c+164>>2]=d;d=J[b+868>>2];J[c+184>>2]=J[b+864>>2];J[c+188>>2]=d;d=J[b+860>>2];J[c+176>>2]=J[b+856>>2];J[c+180>>2]=d;d=J[b+884>>2];J[c+200>>2]=J[b+880>>2];J[c+204>>2]=d;d=J[b+876>>2];J[c+192>>2]=J[b+872>>2];J[c+196>>2]=d;h:{if(e){d=ua[J[J[a>>2]+20>>2]](a)|0;j=c+144|0;ua[J[J[d>>2]+64>>2]](d,j,w);d=J[b+900>>2];J[c+152>>2]=J[b+896>>2];J[c+156>>2]=d;d=J[b+892>>2];J[c+144>>2]=J[b+888>>2];J[c+148>>2]=d;d=J[b+916>>2];J[c+168>>2]=J[b+912>>2];J[c+172>>2]=d;d=J[b+908>>2];J[c+160>>2]=J[b+904>>2];J[c+164>>2]=d;d=J[b+932>>2];J[c+184>>2]=J[b+928>>2];J[c+188>>2]=d;d=J[b+924>>2];J[c+176>>2]=J[b+920>>2];J[c+180>>2]=d;d=J[b+948>>2];J[c+200>>2]=J[b+944>>2];J[c+204>>2]=d;d=J[b+940>>2];J[c+192>>2]=J[b+936>>2];J[c+196>>2]=d;d=ua[J[J[a>>2]+20>>2]](a)|0;ua[J[J[d>>2]+64>>2]](d,j,w);break h}d=J[b+900>>2];J[c+152>>2]=J[b+896>>2];J[c+156>>2]=d;d=J[b+892>>2];J[c+144>>2]=J[b+888>>2];J[c+148>>2]=d;d=J[b+916>>2];J[c+168>>2]=J[b+912>>2];J[c+172>>2]=d;d=J[b+908>>2];J[c+160>>2]=J[b+904>>2];J[c+164>>2]=d;d=J[b+932>>2];J[c+184>>2]=J[b+928>>2];J[c+188>>2]=d;d=J[b+924>>2];J[c+176>>2]=J[b+920>>2];J[c+180>>2]=d;d=J[b+948>>2];J[c+200>>2]=J[b+944>>2];J[c+204>>2]=d;d=J[b+940>>2];J[c+192>>2]=J[b+936>>2];J[c+196>>2]=d}if(!k){break a}d=K[b+180|0];f=N[(d?824:888)+b>>2];d=d?b+824|0:b+888|0;o=N[d+48>>2];t=N[d+8>>2];p=N[d+4>>2];n=N[d+52>>2];u=N[d+24>>2];g=N[d+16>>2];r=N[d+20>>2];s=N[d+56>>2];v=N[d+40>>2];i=N[d+32>>2];x=N[d+36>>2];l=N[b+184>>2];J[c+76>>2]=0;v=Q(v*Q(0));y=Q(x*Q(0));N[c+72>>2]=s+Q(v+Q(Q(l*i)+y));u=Q(u*Q(0));z=Q(r*Q(0));N[c+68>>2]=n+Q(u+Q(Q(l*g)+z));t=Q(t*Q(0));A=Q(p*Q(0));N[c+64>>2]=o+Q(t+Q(Q(l*f)+A));l=N[b+188>>2];J[c+140>>2]=0;N[c+136>>2]=s+Q(v+Q(Q(l*i)+y));N[c+132>>2]=n+Q(u+Q(Q(l*g)+z));N[c+128>>2]=o+Q(t+Q(Q(l*f)+A));d=ua[J[J[a>>2]+20>>2]](a)|0;j=c+208|0;ua[J[J[d>>2]+16>>2]](d,c- -64|0,c+128|0,j);J[c+60>>2]=0;N[c+56>>2]=i;N[c+52>>2]=g;N[c+48>>2]=f;J[c+44>>2]=0;N[c+40>>2]=x;N[c+36>>2]=r;N[c+32>>2]=p;f=N[b+196>>2];g=N[b+192>>2];a=ua[J[J[a>>2]+20>>2]](a)|0;ua[J[J[a>>2]+68>>2]](a,b+936|0,c+48|0,c+32|0,w,w,g,f,j,1,Q(10))}sa=c+352|0}function Zh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=0,g=Q(0),h=Q(0),i=Q(0),j=0,k=Q(0),l=Q(0),m=0,n=Q(0),o=0,p=0,q=Q(0),r=Q(0),s=0,t=Q(0),u=0,v=Q(0),w=0,x=Q(0),y=0,z=Q(0),A=Q(0),B=Q(0),C=0,D=Q(0),E=0,F=0,G=0,I=0,L=Q(0),M=Q(0),O=Q(0),S=Q(0),T=Q(0),U=0,V=Q(0),W=0,X=0,Z=Q(0),_=0,$=Q(0),aa=0,ba=Q(0),ca=Q(0),da=0,ea=0,fa=0,ga=0,ha=Q(0),ia=Q(0),ja=Q(0),ka=Q(0),la=Q(0),ma=Q(0),na=Q(0),oa=Q(0),pa=Q(0),qa=Q(0),ra=Q(0),ta=Q(0),va=Q(0),wa=Q(0),xa=Q(0),ya=Q(0),za=Q(0),Aa=Q(0),Ba=Q(0),Ca=Q(0),Da=Q(0),Ea=Q(0),Fa=Q(0),Ga=Q(0),Ha=Q(0),Ia=Q(0),Ka=Q(0),La=Q(0),Ma=Q(0),Na=Q(0),Oa=Q(0),Pa=Q(0),Qa=Q(0),Ra=Q(0),Sa=Q(0),Ta=Q(0),Ua=Q(0);if((c|0)>0){while(1){aa=0;s=sa-80|0;sa=s;_=J[(da<<2)+b>>2];o=J[_+840>>2];p=J[_+836>>2];F=db(a,p,N[d+12>>2]);G=db(a,o,N[d+12>>2]);f=J[a+16>>2];C=f+P(F,244)|0;e=N[C+136>>2];k=Q(e*e);e=N[C+128>>2];h=Q(e*e);e=N[C+132>>2];a:{if(Q(k+Q(h+Q(e*e)))>2];k=Q(e*e);e=N[C+128>>2];h=Q(e*e);e=N[C+132>>2];if(Q(k+Q(h+Q(e*e)))>2];if((j|0)<=0){break a}W=f+P(G,244)|0;X=f+P(F,244)|0;while(1){u=P(aa,208)+_|0;if(N[u+84>>2]<=N[_+852>>2]){y=u+4|0;C=J[a+28>>2];j=C;b:{if((j|0)!=J[a+32>>2]){break b}w=j?C<<1:1;if((w|0)<=(j|0)){break b}c:{if(!w){m=0;f=C;break c}J[8456]=J[8456]+1;m=ua[J[8258]](P(w,152),16)|0;f=J[a+28>>2]}d:{if((f|0)<=0){break d}j=0;if((f|0)!=1){U=f&-2;E=0;while(1){I=P(j,152);Ja(I+m|0,I+J[a+36>>2]|0,152);I=P(j|1,152);Ja(I+m|0,I+J[a+36>>2]|0,152);j=j+2|0;E=E+2|0;if((U|0)!=(E|0)){continue}break}}if(!(f&1)){break d}f=P(j,152);Ja(f+m|0,f+J[a+36>>2]|0,152)}f=J[a+36>>2];if(!(f?!f|!K[a+40|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](f)}J[a+36>>2]=m;H[a+40|0]=1;J[a+32>>2]=w;j=J[a+28>>2]}J[a+28>>2]=j+1;f=J[a+36>>2]+P(C,152)|0;J[f+148>>2]=G;J[f+144>>2]=F;J[f+132>>2]=y;i=N[u+52>>2];g=N[u+56>>2];e=N[u+60>>2];h=N[p+52>>2];l=N[p+56>>2];n=N[p+60>>2];J[s+76>>2]=0;e=Q(e-n);N[s+72>>2]=e;g=Q(g-l);N[s+68>>2]=g;i=Q(i-h);N[s+64>>2]=i;n=N[u+36>>2];l=N[u+40>>2];h=N[u+44>>2];k=N[o+52>>2];z=N[o+56>>2];r=N[o+60>>2];J[s+60>>2]=0;h=Q(h-r);N[s+56>>2]=h;l=Q(l-z);N[s+52>>2]=l;n=Q(n-k);N[s+48>>2]=n;z=Q(0);L=Q(0);$=Q(0);ha=Q(0);if(J[X+240>>2]){k=Q(N[X+192>>2]+N[X+224>>2]);r=Q(N[X+196>>2]+N[X+228>>2]);L=Q(Q(N[X+184>>2]+N[X+216>>2])+Q(Q(k*g)-Q(i*r)));t=Q(N[X+200>>2]+N[X+232>>2]);$=Q(Q(N[X+180>>2]+N[X+212>>2])+Q(Q(t*i)-Q(e*k)));ha=Q(Q(N[X+176>>2]+N[X+208>>2])+Q(Q(r*e)-Q(g*t)))}ia=Q(0);ja=Q(0);if(J[W+240>>2]){e=Q(N[W+192>>2]+N[W+224>>2]);g=Q(N[W+196>>2]+N[W+228>>2]);z=Q(Q(N[W+184>>2]+N[W+216>>2])+Q(Q(e*l)-Q(n*g)));i=Q(N[W+200>>2]+N[W+232>>2]);ia=Q(Q(N[W+180>>2]+N[W+212>>2])+Q(Q(i*n)-Q(h*e)));ja=Q(Q(N[W+176>>2]+N[W+208>>2])+Q(Q(g*h)-Q(l*i)))}ka=N[u+76>>2];E=u+68|0;la=N[E>>2];ma=N[u+72>>2];w=s- -64|0;k=Q(0);e=Q(0);V=Q(0);U=J[a+16>>2];ea=U+P(G,244)|0;j=J[ea+240>>2];fa=U+P(F,244)|0;m=J[fa+240>>2];N[s+44>>2]=N[d+28>>2];M=N[d+12>>2];B=N[d+36>>2];g=N[d+40>>2];I=J[y+128>>2];e:{if(I&6){g=I&2?N[y+152>>2]:g;if(!(I&4)){break e}B=N[y+156>>2];break e}if(!(I&8)){break e}i=Q(M*N[y+152>>2]);g=Q(i+N[y+156>>2]);g=g>2];h=N[y+68>>2];l=N[y+64>>2];n=N[w+4>>2];r=Q(Q(i*h)-Q(l*n));q=N[w+8>>2];t=Q(q*l);l=N[y+72>>2];t=Q(t-Q(l*i));q=Q(Q(n*l)-Q(h*q));i=Q(0);h=Q(0);if(m){h=Q(Q(Q(N[m+364>>2]*r)+Q(Q(N[m+356>>2]*q)+Q(t*N[m+360>>2])))*N[m+612>>2]);i=Q(Q(Q(N[m+348>>2]*r)+Q(Q(N[m+340>>2]*q)+Q(t*N[m+344>>2])))*N[m+608>>2]);e=Q(Q(Q(N[m+332>>2]*r)+Q(Q(N[m+324>>2]*q)+Q(t*N[m+328>>2])))*N[m+604>>2])}N[f+64>>2]=e;J[f+76>>2]=0;N[f+72>>2]=h;N[f+68>>2]=i;l=N[s+48>>2];n=N[y+68>>2];x=N[y+64>>2];O=N[s+52>>2];v=Q(Q(l*n)-Q(x*O));S=N[s+56>>2];T=N[y+72>>2];x=Q(Q(S*x)-Q(T*l));O=Q(Q(O*T)-Q(n*S));l=Q(0);n=Q(0);if(j){l=Q(-O);n=Q(Q(Q(Q(N[j+356>>2]*l)-Q(N[j+360>>2]*x))-Q(N[j+364>>2]*v))*N[j+612>>2]);k=Q(Q(Q(Q(N[j+324>>2]*l)-Q(N[j+328>>2]*x))-Q(N[j+332>>2]*v))*N[j+604>>2]);l=Q(Q(Q(Q(N[j+340>>2]*l)-Q(N[j+344>>2]*x))-Q(N[j+348>>2]*v))*N[j+608>>2])}N[f+80>>2]=k;J[f+92>>2]=0;N[f+88>>2]=n;N[f+84>>2]=l;S=N[s+44>>2];M=Q(Q(1)/M);D=Q(M*g);if(m){g=N[w+4>>2];Z=N[w>>2];T=Q(N[y+72>>2]*Q(Q(e*g)-Q(Z*i)));A=i;i=N[w+8>>2];h=Q(N[m+404>>2]+Q(T+Q(Q(N[y+64>>2]*Q(Q(A*i)-Q(g*h)))+Q(Q(Q(h*Z)-Q(i*e))*N[y+68>>2]))))}else{h=Q(0)}if(j){g=N[s+48>>2];i=N[s+52>>2];e=Q(N[y+72>>2]*Q(Q(l*g)-Q(k*i)));A=Q(n*i);i=N[s+56>>2];k=Q(N[j+404>>2]+Q(e+Q(Q(N[y+64>>2]*Q(A-Q(l*i)))+Q(Q(Q(k*i)-Q(n*g))*N[y+68>>2]))))}else{k=Q(0)}N[f+108>>2]=S/Q(D+Q(h+k));f:{if(m){I=y- -64|0;ga=J[I+4>>2];J[f+16>>2]=J[I>>2];J[f+20>>2]=ga;ga=J[I+12>>2];J[f+24>>2]=J[I+8>>2];J[f+28>>2]=ga;J[f+12>>2]=0;N[f+8>>2]=r;N[f+4>>2]=t;N[f>>2]=q;break f}J[f>>2]=0;J[f+4>>2]=0;J[f+24>>2]=0;J[f+28>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0}g:{if(j){e=N[y+64>>2];g=N[y+68>>2];i=N[y+72>>2];J[f+60>>2]=0;J[f+44>>2]=0;N[f+40>>2]=-v;N[f+36>>2]=-x;N[f+32>>2]=-O;N[f+56>>2]=-i;N[f+52>>2]=-g;N[f+48>>2]=-e;break g}J[f+32>>2]=0;J[f+36>>2]=0;J[f+56>>2]=0;J[f+60>>2]=0;J[f+48>>2]=0;J[f+52>>2]=0;J[f+40>>2]=0;J[f+44>>2]=0}i=Q(0);h=Q(0);l=Q(0);n=Q(0);if(m){e=N[m+388>>2];g=N[w+4>>2];h=N[w>>2];k=N[m+392>>2];n=Q(Q(Q(e*g)-Q(h*k))+N[m+380>>2]);r=N[m+396>>2];q=Q(r*h);h=N[w+8>>2];l=Q(Q(q-Q(h*e))+N[m+376>>2]);h=Q(Q(Q(k*h)-Q(g*r))+N[m+372>>2])}q=Q(0);e=Q(0);if(j){g=N[j+388>>2];i=N[s+52>>2];k=N[s+48>>2];r=N[j+392>>2];e=Q(Q(Q(g*i)-Q(k*r))+N[j+380>>2]);t=N[j+396>>2];q=Q(t*k);k=N[s+56>>2];q=Q(Q(q-Q(k*g))+N[j+376>>2]);i=Q(Q(Q(r*k)-Q(i*t))+N[j+372>>2])}t=N[d+64>>2];na=N[y+80>>2];oa=N[y+72>>2];pa=N[y+68>>2];qa=N[y+64>>2];N[f+104>>2]=N[y+84>>2];ra=N[d+96>>2];ta=N[y+96>>2];h:{if(K[d+72|0]&4){g=Q(N[y+132>>2]*N[d+68>>2]);N[f+100>>2]=g;if(!(!m|!J[fa+240>>2])){k=N[m+416>>2];r=N[f+24>>2];v=N[m+412>>2];x=N[f+20>>2];w=U+P(F,244)|0;N[w+64>>2]=Q(N[w+112>>2]*Q(g*Q(Q(N[f+16>>2]*N[w+128>>2])*N[m+408>>2])))+N[w+64>>2];N[w+68>>2]=Q(Q(g*Q(v*Q(x*N[w+132>>2])))*N[w+116>>2])+N[w+68>>2];N[w+72>>2]=Q(Q(g*Q(k*Q(r*N[w+136>>2])))*N[w+120>>2])+N[w+72>>2];k=N[f+72>>2];r=N[f+68>>2];N[w+80>>2]=Q(Q(g*N[w+96>>2])*N[f+64>>2])+N[w+80>>2];v=N[w+104>>2];N[w+84>>2]=Q(r*Q(g*N[w+100>>2]))+N[w+84>>2];N[w+88>>2]=Q(k*Q(g*v))+N[w+88>>2]}if(!j|!J[ea+240>>2]){break h}m=U+P(G,244)|0;k=N[m+120>>2];r=N[j+416>>2];v=N[f+56>>2];x=N[m+136>>2];O=N[m+116>>2];S=N[j+412>>2];T=N[f+52>>2];Z=N[m+132>>2];A=N[f+88>>2];ba=N[f+84>>2];ca=N[f+80>>2];g=N[f+100>>2];N[m+64>>2]=N[m+64>>2]+Q(N[m+112>>2]*Q(Q(Q(N[m+128>>2]*N[f+48>>2])*N[j+408>>2])*g));N[m+80>>2]=N[m+80>>2]+Q(ca*Q(g*N[m+96>>2]));N[m+84>>2]=N[m+84>>2]+Q(ba*Q(g*N[m+100>>2]));N[m+88>>2]=N[m+88>>2]+Q(A*Q(g*N[m+104>>2]));N[m+68>>2]=N[m+68>>2]+Q(O*Q(g*Q(S*Q(Z*T))));N[m+72>>2]=N[m+72>>2]+Q(k*Q(g*Q(r*Q(x*v))));break h}J[f+100>>2]=0}J[f+96>>2]=0;v=Q(0);x=Q(0);O=Q(0);g=Q(0);k=Q(0);S=Q(0);T=Q(0);if(J[fa+240>>2]){j=U+P(F,244)|0;T=N[j+224>>2];k=N[j+232>>2];S=N[j+228>>2];x=N[j+216>>2];O=N[j+212>>2];g=N[j+208>>2]}Z=Q(0);A=Q(0);ba=Q(0);ca=Q(0);if(J[ea+240>>2]){j=U+P(G,244)|0;V=N[j+224>>2];ba=N[j+232>>2];ca=N[j+228>>2];A=N[j+216>>2];Z=N[j+212>>2];v=N[j+208>>2]}j=U+P(F,244)|0;va=N[j+200>>2];wa=N[j+196>>2];xa=N[j+192>>2];ya=N[j+176>>2];za=N[f+20>>2];Aa=N[j+180>>2];Ba=N[f+24>>2];Ca=N[j+184>>2];j=U+P(G,244)|0;Da=N[j+176>>2];Ea=N[f+52>>2];Fa=N[j+180>>2];Ga=N[f+56>>2];Ha=N[j+184>>2];Ia=N[j+192>>2];Ka=N[f+36>>2];La=N[j+196>>2];Ma=N[f+40>>2];Na=N[j+200>>2];Oa=N[f+8>>2];Pa=N[f+4>>2];Qa=N[f>>2];Ra=N[f+16>>2];Sa=N[f+48>>2];Ta=N[f+32>>2];m=J[d+52>>2];Ua=N[d+56>>2];r=N[f+108>>2];J[f+120>>2]=0;J[f+124>>2]=1343554297;N[f+116>>2]=D*r;t=Q(na+t);j=t>Q(0);B=Q(r*(j?Q(0):Q(M*Q(B*Q(-t)))));m=!m|t>Ua;N[f+128>>2]=m?Q(0):B;e=Q(Q(oa*Q(n-e))+Q(Q(qa*Q(h-i))+Q(Q(l-q)*pa)));e=Q(R(e))>2]=Q(r*(j?Q(e-Q(t*M)):e))+(m?B:Q(-0));J[f+140>>2]=J[a+68>>2];i:{if(!(N[u+92>>2]>Q(0))){break i}nc(a,E,F,G,C,N[u+96>>2]);i=N[E+8>>2];j:{if(Q(R(i))>Q(.7071067690849304)){n=N[E+4>>2];e=Q(Q(n*n)+Q(i*i));h=Q(Q(1)/Q(Y(e)));l=Q(e*h);e=Q(h*Q(-i));k=N[E>>2];g=Q(e*k);i=Q(n*h);k=Q(i*Q(-k));h=Q(0);break j}l=N[E>>2];h=N[E+4>>2];g=Q(Q(l*l)+Q(h*h));e=Q(Q(1)/Q(Y(g)));g=Q(g*e);h=Q(e*Q(-h));k=Q(i*h);e=Q(l*e);l=Q(e*Q(-i));i=Q(0)}n=Q(Q(1)/Q(Y(Q(Q(i*i)+Q(Q(h*h)+Q(e*e))))));i=Q(i*n);N[s+36>>2]=i;e=Q(e*n);N[s+32>>2]=e;h=Q(h*n);N[s+28>>2]=h;r=Q(Q(1)/Q(Y(Q(Q(g*g)+Q(Q(l*l)+Q(k*k))))));n=Q(g*r);N[s+20>>2]=n;g=Q(k*r);N[s+16>>2]=g;l=Q(l*r);N[s+12>>2]=l;j=J[p+180>>2]&2;if(j){O=N[p+172>>2];k=N[p+44>>2];r=N[p+12>>2];t=N[p+28>>2];S=N[p+164>>2];q=N[p+36>>2];v=N[p+4>>2];x=N[p+20>>2];T=N[p+168>>2];B=N[p+40>>2];V=N[p+8>>2];M=N[p+24>>2];J[s+40>>2]=0;D=k;k=Q(O*Q(Q(k*i)+Q(Q(r*h)+Q(e*t))));A=q;q=Q(S*Q(Q(q*i)+Q(Q(v*h)+Q(e*x))));h=Q(T*Q(Q(B*i)+Q(Q(V*h)+Q(e*M))));i=Q(Q(D*k)+Q(Q(A*q)+Q(B*h)));N[s+36>>2]=i;e=Q(Q(t*k)+Q(Q(x*q)+Q(M*h)));N[s+32>>2]=e;h=Q(Q(r*k)+Q(Q(v*q)+Q(V*h)));N[s+28>>2]=h}m=J[o+180>>2]&2;if(m){O=N[o+172>>2];k=N[o+44>>2];r=N[o+12>>2];t=N[o+28>>2];S=N[o+164>>2];q=N[o+36>>2];v=N[o+4>>2];x=N[o+20>>2];T=N[o+168>>2];B=N[o+40>>2];V=N[o+8>>2];M=N[o+24>>2];J[s+40>>2]=0;D=k;k=Q(O*Q(Q(k*i)+Q(Q(r*h)+Q(e*t))));A=q;q=Q(S*Q(Q(q*i)+Q(Q(v*h)+Q(x*e))));h=Q(T*Q(Q(B*i)+Q(Q(V*h)+Q(e*M))));i=Q(Q(D*k)+Q(Q(A*q)+Q(B*h)));N[s+36>>2]=i;e=Q(Q(t*k)+Q(Q(x*q)+Q(M*h)));N[s+32>>2]=e;h=Q(Q(r*k)+Q(Q(v*q)+Q(V*h)));N[s+28>>2]=h}if(j){O=N[p+172>>2];k=N[p+44>>2];r=N[p+12>>2];t=N[p+28>>2];S=N[p+164>>2];q=N[p+36>>2];v=N[p+4>>2];x=N[p+20>>2];T=N[p+168>>2];B=N[p+40>>2];V=N[p+8>>2];M=N[p+24>>2];J[s+24>>2]=0;D=k;k=Q(O*Q(Q(k*n)+Q(Q(r*l)+Q(g*t))));A=q;q=Q(S*Q(Q(q*n)+Q(Q(v*l)+Q(g*x))));l=Q(T*Q(Q(B*n)+Q(Q(V*l)+Q(g*M))));n=Q(Q(D*k)+Q(Q(A*q)+Q(B*l)));N[s+20>>2]=n;g=Q(Q(t*k)+Q(Q(x*q)+Q(M*l)));N[s+16>>2]=g;l=Q(Q(r*k)+Q(Q(v*q)+Q(V*l)));N[s+12>>2]=l}if(m){O=N[o+172>>2];k=N[o+44>>2];r=N[o+12>>2];t=N[o+28>>2];S=N[o+164>>2];q=N[o+36>>2];v=N[o+4>>2];x=N[o+20>>2];T=N[o+168>>2];B=N[o+40>>2];V=N[o+8>>2];M=N[o+24>>2];J[s+24>>2]=0;D=k;k=Q(O*Q(Q(k*n)+Q(Q(r*l)+Q(g*t))));A=q;q=Q(S*Q(Q(q*n)+Q(Q(v*l)+Q(x*g))));l=Q(T*Q(Q(B*n)+Q(Q(V*l)+Q(g*M))));n=Q(Q(D*k)+Q(Q(A*q)+Q(B*l)));N[s+20>>2]=n;g=Q(Q(t*k)+Q(Q(x*q)+Q(M*l)));N[s+16>>2]=g;l=Q(Q(r*k)+Q(Q(v*q)+Q(V*l)));N[s+12>>2]=l}if(+Q(Y(Q(Q(i*i)+Q(Q(h*h)+Q(e*e)))))>.001){nc(a,s+28|0,F,G,C,N[u+92>>2])}if(!(+Q(Y(Q(Q(n*n)+Q(Q(l*l)+Q(g*g)))))>.001)){break i}nc(a,s+12|0,F,G,C,N[u+92>>2])}k:{if(!(H[u+132|0]&1?K[d+72|0]&32:0)){k=N[E>>2];e=N[E+4>>2];i=N[E+8>>2];J[u+184>>2]=0;h=Q(L-z);n=Q(ha-ja);l=Q($-ia);g=Q(Q(ka*h)+Q(Q(la*n)+Q(l*ma)));h=Q(h-Q(i*g));N[u+180>>2]=h;l=Q(l-Q(g*e));N[u+176>>2]=l;j=u+172|0;n=Q(n-Q(g*k));N[j>>2]=n;l:{if(K[d+72|0]&64){break l}g=Q(Q(h*h)+Q(Q(n*n)+Q(l*l)));if(!(g>Q(1.1920928955078125e-7))){break l}i=Q(Q(1)/Q(Y(g)));e=Q(h*i);N[j+8>>2]=e;g=Q(l*i);N[j+4>>2]=g;i=Q(n*i);N[j>>2]=i;if(H[p+180|0]&1){x=N[p+172>>2];h=N[p+44>>2];l=N[p+12>>2];n=N[p+28>>2];B=N[p+164>>2];k=N[p+36>>2];z=N[p+4>>2];r=N[p+20>>2];L=N[p+168>>2];t=N[p+40>>2];q=N[p+8>>2];v=N[p+24>>2];J[j+12>>2]=0;D=h;h=Q(x*Q(Q(h*e)+Q(Q(l*i)+Q(g*n))));A=k;k=Q(B*Q(Q(k*e)+Q(Q(z*i)+Q(g*r))));i=Q(L*Q(Q(t*e)+Q(Q(q*i)+Q(g*v))));e=Q(Q(D*h)+Q(Q(A*k)+Q(t*i)));N[j+8>>2]=e;g=Q(Q(n*h)+Q(Q(r*k)+Q(v*i)));N[j+4>>2]=g;i=Q(Q(l*h)+Q(Q(z*k)+Q(q*i)));N[j>>2]=i}if(H[o+180|0]&1){x=N[o+172>>2];h=N[o+44>>2];l=N[o+12>>2];n=N[o+28>>2];B=N[o+164>>2];k=N[o+36>>2];z=N[o+4>>2];r=N[o+20>>2];L=N[o+168>>2];t=N[o+40>>2];q=N[o+8>>2];v=N[o+24>>2];J[j+12>>2]=0;D=h;h=Q(x*Q(Q(h*e)+Q(Q(l*i)+Q(g*n))));A=k;k=Q(B*Q(Q(k*e)+Q(Q(z*i)+Q(r*g))));e=Q(L*Q(Q(t*e)+Q(Q(q*i)+Q(g*v))));N[j+8>>2]=Q(D*h)+Q(Q(A*k)+Q(t*e));N[j+4>>2]=Q(n*h)+Q(Q(r*k)+Q(v*e));N[j>>2]=Q(l*h)+Q(Q(z*k)+Q(q*e))}x=N[s+44>>2];ib(a,j,F,G,C,y,s- -64|0,s+48|0,x,d,Q(0),Q(0));if(!(K[d+72|0]&16)){break k}e=N[j+4>>2];g=N[E+4>>2];i=N[E>>2];h=N[j+8>>2];l=N[j>>2];n=N[E+8>>2];J[u+200>>2]=0;k=Q(Q(l*g)-Q(i*e));z=Q(Q(e*n)-Q(g*h));g=Q(Q(h*i)-Q(n*l));i=Q(Q(1)/Q(Y(Q(Q(k*k)+Q(Q(z*z)+Q(g*g))))));e=Q(k*i);N[u+196>>2]=e;g=Q(g*i);N[u+192>>2]=g;j=u+188|0;i=Q(z*i);N[j>>2]=i;if(H[p+180|0]&1){B=N[p+172>>2];h=N[p+44>>2];l=N[p+12>>2];n=N[p+28>>2];L=N[p+164>>2];k=N[p+36>>2];z=N[p+4>>2];r=N[p+20>>2];$=N[p+168>>2];t=N[p+40>>2];q=N[p+8>>2];v=N[p+24>>2];J[j+12>>2]=0;D=h;h=Q(B*Q(Q(h*e)+Q(Q(l*i)+Q(g*n))));A=k;k=Q(L*Q(Q(k*e)+Q(Q(z*i)+Q(g*r))));i=Q($*Q(Q(t*e)+Q(Q(q*i)+Q(g*v))));e=Q(Q(D*h)+Q(Q(A*k)+Q(t*i)));N[j+8>>2]=e;g=Q(Q(n*h)+Q(Q(r*k)+Q(v*i)));N[j+4>>2]=g;i=Q(Q(l*h)+Q(Q(z*k)+Q(q*i)));N[j>>2]=i}if(H[o+180|0]&1){B=N[o+172>>2];h=N[o+44>>2];l=N[o+12>>2];n=N[o+28>>2];L=N[o+164>>2];k=N[o+36>>2];z=N[o+4>>2];r=N[o+20>>2];$=N[o+168>>2];t=N[o+40>>2];q=N[o+8>>2];v=N[o+24>>2];J[j+12>>2]=0;D=h;h=Q(B*Q(Q(h*e)+Q(Q(l*i)+Q(g*n))));A=k;k=Q(L*Q(Q(k*e)+Q(Q(z*i)+Q(r*g))));e=Q($*Q(Q(t*e)+Q(Q(q*i)+Q(g*v))));N[j+8>>2]=Q(D*h)+Q(Q(A*k)+Q(t*e));N[j+4>>2]=Q(n*h)+Q(Q(r*k)+Q(v*e));N[j>>2]=Q(l*h)+Q(Q(z*k)+Q(q*e))}ib(a,j,F,G,C,y,s- -64|0,s+48|0,x,d,Q(0),Q(0));break k}m=u+188|0;m:{if(Q(R(i))>Q(.7071067690849304)){h=Q(Q(e*e)+Q(i*i));g=Q(Q(1)/Q(Y(h)));n=Q(h*g);h=Q(g*Q(-i));l=Q(k*h);e=Q(e*g);z=Q(e*Q(-k));g=Q(0);break m}g=Q(Q(k*k)+Q(e*e));h=Q(Q(1)/Q(Y(g)));l=Q(g*h);g=Q(h*Q(-e));z=Q(i*g);h=Q(k*h);n=Q(h*Q(-i));e=Q(0)}N[j+8>>2]=e;N[j+4>>2]=h;N[j>>2]=g;N[m+8>>2]=l;N[m+4>>2]=z;N[m>>2]=n;if(H[p+180|0]&1){x=N[p+172>>2];i=N[p+44>>2];l=N[p+12>>2];n=N[p+28>>2];B=N[p+164>>2];k=N[p+36>>2];z=N[p+4>>2];r=N[p+20>>2];L=N[p+168>>2];t=N[p+40>>2];q=N[p+8>>2];v=N[p+24>>2];J[j+12>>2]=0;D=i;i=Q(x*Q(Q(i*e)+Q(Q(l*g)+Q(h*n))));A=k;k=Q(B*Q(Q(k*e)+Q(Q(z*g)+Q(r*h))));g=Q(L*Q(Q(t*e)+Q(Q(q*g)+Q(h*v))));e=Q(Q(D*i)+Q(Q(A*k)+Q(t*g)));N[j+8>>2]=e;h=Q(Q(n*i)+Q(Q(r*k)+Q(v*g)));N[j+4>>2]=h;g=Q(Q(l*i)+Q(Q(z*k)+Q(q*g)));N[j>>2]=g}if(H[o+180|0]&1){x=N[o+172>>2];i=N[o+44>>2];l=N[o+12>>2];n=N[o+28>>2];B=N[o+164>>2];k=N[o+36>>2];z=N[o+4>>2];r=N[o+20>>2];L=N[o+168>>2];t=N[o+40>>2];q=N[o+8>>2];v=N[o+24>>2];J[j+12>>2]=0;D=i;i=Q(x*Q(Q(i*e)+Q(Q(l*g)+Q(h*n))));A=k;k=Q(B*Q(Q(k*e)+Q(Q(z*g)+Q(r*h))));e=Q(L*Q(Q(t*e)+Q(Q(q*g)+Q(h*v))));N[j+8>>2]=Q(D*i)+Q(Q(A*k)+Q(t*e));N[j+4>>2]=Q(n*i)+Q(Q(r*k)+Q(v*e));N[j>>2]=Q(l*i)+Q(Q(z*k)+Q(q*e))}x=N[s+44>>2];ib(a,j,F,G,C,y,s- -64|0,s+48|0,x,d,Q(0),Q(0));j=J[d+72>>2];if(j&16){if(H[p+180|0]&1){t=N[p+172>>2];e=N[p+44>>2];g=N[p+12>>2];i=N[p+28>>2];B=N[p+164>>2];h=N[p+36>>2];l=N[p+4>>2];n=N[p+20>>2];L=N[p+168>>2];k=N[p+40>>2];z=N[p+8>>2];r=N[p+24>>2];J[m+12>>2]=0;D=e;A=t;e=N[m+8>>2];t=N[m>>2];q=N[m+4>>2];v=Q(A*Q(Q(D*e)+Q(Q(g*t)+Q(i*q))));A=h;h=Q(B*Q(Q(h*e)+Q(Q(l*t)+Q(n*q))));e=Q(L*Q(Q(k*e)+Q(Q(z*t)+Q(q*r))));N[m+8>>2]=Q(D*v)+Q(Q(A*h)+Q(k*e));N[m+4>>2]=Q(i*v)+Q(Q(n*h)+Q(r*e));N[m>>2]=Q(g*v)+Q(Q(l*h)+Q(z*e))}if(H[o+180|0]&1){t=N[o+172>>2];e=N[o+44>>2];g=N[o+12>>2];i=N[o+28>>2];B=N[o+164>>2];h=N[o+36>>2];l=N[o+4>>2];n=N[o+20>>2];L=N[o+168>>2];k=N[o+40>>2];z=N[o+8>>2];r=N[o+24>>2];J[m+12>>2]=0;D=e;A=t;e=N[m+8>>2];t=N[m>>2];q=N[m+4>>2];v=Q(A*Q(Q(D*e)+Q(Q(g*t)+Q(i*q))));A=h;h=Q(B*Q(Q(h*e)+Q(Q(l*t)+Q(n*q))));e=Q(L*Q(Q(k*e)+Q(Q(z*t)+Q(q*r))));N[m+8>>2]=Q(D*v)+Q(Q(A*h)+Q(k*e));N[m+4>>2]=Q(i*v)+Q(Q(n*h)+Q(r*e));N[m>>2]=Q(g*v)+Q(Q(l*h)+Q(z*e))}ib(a,m,F,G,C,y,s- -64|0,s+48|0,x,d,Q(0),Q(0));j=J[d+72>>2]}if((j&80)!=80){break k}J[u+132>>2]=J[u+132>>2]|1;break k}e=N[s+44>>2];ib(a,u+172|0,F,G,C,y,s- -64|0,s+48|0,e,d,N[u+148>>2],N[u+164>>2]);if(!(K[d+72|0]&16)){break k}ib(a,u+188|0,F,G,C,y,s- -64|0,s+48|0,e,d,N[u+152>>2],N[u+164>>2])}m=J[a+76>>2];U=J[f+140>>2];I=J[d+72>>2];n:{if(I&4){w=J[a+16>>2];C=J[(w+P(G,244)|0)+240>>2];j=J[(w+P(F,244)|0)+240>>2];u=m+P(U,152)|0;e=Q(N[y+136>>2]*N[d+68>>2]);N[u+100>>2]=e;if(j){i=N[j+416>>2];h=N[u+24>>2];l=N[j+412>>2];n=N[u+20>>2];f=w+P(F,244)|0;g=N[j+404>>2];N[f+64>>2]=Q(Q(e*Q(Q(g*N[u+16>>2])*N[j+408>>2]))*N[f+112>>2])+N[f+64>>2];N[f+68>>2]=Q(Q(e*Q(l*Q(g*n)))*N[f+116>>2])+N[f+68>>2];N[f+72>>2]=Q(Q(e*Q(i*Q(g*h)))*N[f+120>>2])+N[f+72>>2];g=N[u+72>>2];i=N[u+68>>2];N[f+80>>2]=Q(Q(e*N[f+96>>2])*N[u+64>>2])+N[f+80>>2];h=N[f+104>>2];N[f+84>>2]=Q(i*Q(e*N[f+100>>2]))+N[f+84>>2];N[f+88>>2]=Q(g*Q(e*h))+N[f+88>>2]}if(C){E=m+P(U,152)|0;i=N[E+88>>2];h=N[E+84>>2];l=N[E+80>>2];n=N[C+416>>2];k=N[E+56>>2];z=N[C+412>>2];r=N[E+52>>2];f=w+P(G,244)|0;g=N[C+404>>2];e=N[u+100>>2];N[f+64>>2]=N[f+64>>2]+Q(Q(Q(Q(g*N[E+48>>2])*N[C+408>>2])*e)*N[f+112>>2]);N[f+68>>2]=N[f+68>>2]+Q(Q(e*Q(z*Q(g*r)))*N[f+116>>2]);N[f+72>>2]=N[f+72>>2]+Q(Q(e*Q(n*Q(g*k)))*N[f+120>>2]);N[f+80>>2]=N[f+80>>2]+Q(l*Q(e*N[f+96>>2]));g=N[f+104>>2];N[f+84>>2]=N[f+84>>2]+Q(h*Q(e*N[f+100>>2]));N[f+88>>2]=N[f+88>>2]+Q(i*Q(g*e))}if(!(I&16)){break n}E=U+1|0;u=m+P(E,152)|0;e=Q(N[y+140>>2]*N[d+68>>2]);N[u+100>>2]=e;if(j){i=N[u+24>>2];h=N[u+20>>2];f=w+P(F,244)|0;g=N[j+404>>2];N[f+64>>2]=Q(Q(e*Q(g*N[u+16>>2]))*N[f+112>>2])+N[f+64>>2];N[f+68>>2]=Q(Q(e*Q(g*h))*N[f+116>>2])+N[f+68>>2];N[f+72>>2]=Q(Q(e*Q(g*i))*N[f+120>>2])+N[f+72>>2];g=N[u+72>>2];i=N[u+68>>2];N[f+80>>2]=Q(Q(e*N[f+96>>2])*N[u+64>>2])+N[f+80>>2];h=N[f+104>>2];N[f+84>>2]=Q(i*Q(e*N[f+100>>2]))+N[f+84>>2];N[f+88>>2]=Q(g*Q(e*h))+N[f+88>>2]}if(!C){break n}j=m+P(E,152)|0;i=N[j+88>>2];h=N[j+84>>2];l=N[j+56>>2];n=N[j+52>>2];k=N[j+48>>2];g=N[C+404>>2];f=w+P(G,244)|0;e=N[u+100>>2];N[f+80>>2]=N[f+80>>2]+Q(N[j+80>>2]*Q(N[f+96>>2]*e));N[f+64>>2]=N[f+64>>2]+Q(Q(e*Q(g*k))*N[f+112>>2]);N[f+68>>2]=N[f+68>>2]+Q(Q(e*Q(g*n))*N[f+116>>2]);N[f+72>>2]=N[f+72>>2]+Q(Q(e*Q(g*l))*N[f+120>>2]);g=N[f+104>>2];N[f+84>>2]=N[f+84>>2]+Q(h*Q(e*N[f+100>>2]));N[f+88>>2]=N[f+88>>2]+Q(i*Q(g*e));break n}f=m+P(U,152)|0;J[f+100>>2]=0;if(!(I&16)){break n}J[f+252>>2]=0}j=J[_+844>>2]}aa=aa+1|0;if((aa|0)<(j|0)){continue}break}}sa=s+80|0;da=da+1|0;if((da|0)!=(c|0)){continue}break}}}function Yh(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=Q(0),n=0,o=0,p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=0,A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=0,G=Q(0),I=Q(0),L=Q(0),M=Q(0),O=Q(0),S=Q(0),T=Q(0),U=Q(0),V=Q(0),W=Q(0),X=Q(0),Z=0,_=Q(0),$=0,aa=Q(0),ba=0,ca=0,da=0,ea=0,fa=Q(0),ga=Q(0),ha=Q(0),ia=Q(0),ja=Q(0),ka=Q(0),la=Q(0),ma=Q(0),na=Q(0);o=sa-256|0;sa=o;J[a+188>>2]=-1;ua[J[8262]](5384);i=J[h+72>>2];if((i|0)!=J[a+224>>2]){J[a+224>>2]=i;J[a+220>>2]=954;J[a+216>>2]=953;J[a+212>>2]=952}i=0;J[a+184>>2]=0;a:{if((c|0)<=0){break a}if(c>>>0>=4){j=c&-4;while(1){l=i<<2;J[J[l+b>>2]+212>>2]=-1;J[J[(l|4)+b>>2]+212>>2]=-1;J[J[(l|8)+b>>2]+212>>2]=-1;J[J[(l|12)+b>>2]+212>>2]=-1;i=i+4|0;k=k+4|0;if((j|0)!=(k|0)){continue}break}}l=c&3;if(!l){break a}j=0;while(1){J[J[(i<<2)+b>>2]+212>>2]=-1;i=i+1|0;j=j+1|0;if((l|0)!=(j|0)){continue}break}}l=J[a+12>>2];if((l|0)<=(c|0)){l=c+1|0;if(l){J[8456]=J[8456]+1;i=ua[J[8258]](P(l,244),16)|0}else{i=0}z=J[a+8>>2];if((z|0)>0){k=0;while(1){n=P(k,244);j=n+i|0;n=n+J[a+16>>2]|0;F=J[n+4>>2];J[j>>2]=J[n>>2];J[j+4>>2]=F;F=J[n+12>>2];J[j+8>>2]=J[n+8>>2];J[j+12>>2]=F;F=J[n+28>>2];J[j+24>>2]=J[n+24>>2];J[j+28>>2]=F;F=J[n+20>>2];J[j+16>>2]=J[n+16>>2];J[j+20>>2]=F;F=J[n+44>>2];J[j+40>>2]=J[n+40>>2];J[j+44>>2]=F;F=J[n+36>>2];J[j+32>>2]=J[n+32>>2];J[j+36>>2]=F;F=J[n+52>>2];J[j+48>>2]=J[n+48>>2];J[j+52>>2]=F;F=J[n+60>>2];J[j+56>>2]=J[n+56>>2];J[j+60>>2]=F;Ja(j- -64|0,n- -64|0,180);k=k+1|0;if((z|0)!=(k|0)){continue}break}}j=J[a+16>>2];if(!(j?!j|!K[a+20|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](j)}J[a+16>>2]=i;H[a+20|0]=1;J[a+12>>2]=l}Fa(o+8|0,0,244);j=J[a+8>>2];if((j|0)<0){if((l|0)<0){i=J[a+16>>2];if(!(i?!i|!K[a+20|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](i)}H[a+20|0]=1;J[a+12>>2]=0;J[a+16>>2]=0}l=o+72|0;while(1){i=J[a+16>>2]+P(j,244)|0;J[i>>2]=0;J[i+4>>2]=0;J[i+8>>2]=0;J[i+12>>2]=0;k=J[o+36>>2];J[i+24>>2]=J[o+32>>2];J[i+28>>2]=k;k=J[o+28>>2];J[i+16>>2]=J[o+24>>2];J[i+20>>2]=k;k=J[o+44>>2];J[i+32>>2]=J[o+40>>2];J[i+36>>2]=k;k=J[o+52>>2];J[i+40>>2]=J[o+48>>2];J[i+44>>2]=k;k=J[o+60>>2];J[i+48>>2]=J[o+56>>2];J[i+52>>2]=k;k=J[o+68>>2];J[i+56>>2]=J[o+64>>2];J[i+60>>2]=k;Ja(i- -64|0,l,180);j=j+1|0;if(j){continue}break}}J[a+8>>2]=0;if((c|0)>0){j=0;while(1){i=(j<<2)+b|0;k=db(a,J[i>>2],N[h+12>>2]);i=J[i>>2];b:{if(!i|!(J[i+252>>2]&2)|N[i+404>>2]==Q(0)){break b}n=J[a+16>>2];l=J[i+564>>2];if(l&2){w=N[h+84>>2];m=N[i+396>>2];r=N[i+44>>2];t=N[i+40>>2];s=N[i+36>>2];p=N[i+392>>2];C=N[i+28>>2];q=N[i+12>>2];u=N[i+464>>2];A=N[i+24>>2];D=N[i+8>>2];x=N[i+460>>2];I=N[i+20>>2];v=N[i+388>>2];B=N[i+4>>2];y=N[i+456>>2];J[o+20>>2]=0;G=u!=Q(0)?Q(Q(1)/u):Q(0);u=Q(C*G);y=y!=Q(0)?Q(Q(1)/y):Q(0);E=Q(I*y);x=x!=Q(0)?Q(Q(1)/x):Q(0);M=Q(A*x);L=Q(Q(m*Q(Q(r*u)+Q(Q(s*E)+Q(t*M))))+Q(Q(v*Q(Q(q*u)+Q(Q(B*E)+Q(D*M))))+Q(p*Q(Q(C*u)+Q(Q(I*E)+Q(A*M))))));u=Q(G*q);E=Q(y*B);M=Q(x*D);E=Q(Q(m*Q(Q(r*u)+Q(Q(s*E)+Q(t*M))))+Q(Q(v*Q(Q(q*u)+Q(Q(B*E)+Q(D*M))))+Q(p*Q(Q(C*u)+Q(Q(I*E)+Q(M*A))))));u=Q(Q(v*L)-Q(p*E));N[o+16>>2]=u;W=r;r=Q(G*r);G=s;s=Q(y*s);y=t;t=Q(x*t);r=Q(Q(m*Q(Q(W*r)+Q(Q(G*s)+Q(y*t))))+Q(Q(v*Q(Q(q*r)+Q(Q(B*s)+Q(D*t))))+Q(p*Q(Q(C*r)+Q(Q(I*s)+Q(A*t))))));v=Q(Q(m*E)-Q(v*r));N[o+12>>2]=v;m=Q(Q(p*r)-Q(L*m));N[o+8>>2]=m;p=Q(Q(u*u)+Q(Q(m*m)+Q(v*v)));if(p>Q(w*w)){p=Q(Q(Q(1)/Q(Y(p)))*w);N[o+16>>2]=u*p;N[o+12>>2]=v*p;N[o+8>>2]=m*p}t=N[i+364>>2];s=N[i+332>>2];C=N[i+348>>2];q=N[i+360>>2];A=N[i+328>>2];D=N[i+344>>2];l=n+P(k,244)|0;m=N[o+16>>2];p=N[o+8>>2];v=N[o+12>>2];r=N[h+12>>2];N[l+224>>2]=N[l+224>>2]-Q(Q(Q(N[i+356>>2]*m)+Q(Q(N[i+324>>2]*p)+Q(v*N[i+340>>2])))*r);N[l+228>>2]=N[l+228>>2]-Q(r*Q(Q(q*m)+Q(Q(A*p)+Q(v*D))));N[l+232>>2]=N[l+232>>2]-Q(r*Q(Q(t*m)+Q(Q(s*p)+Q(v*C))));l=J[i+564>>2]}if(l&4){m=N[h+12>>2];p=N[i+396>>2];C=N[i+44>>2];q=N[i+40>>2];A=N[i+36>>2];t=N[i+12>>2];D=N[i+8>>2];v=N[i+392>>2];I=N[i+28>>2];s=N[i+464>>2];B=N[i+24>>2];x=N[i+460>>2];w=N[i+20>>2];r=N[i+388>>2];u=N[i+4>>2];y=N[i+456>>2];J[o+20>>2]=0;M=s!=Q(0)?Q(Q(1)/s):Q(0);L=Q(C*M);O=y!=Q(0)?Q(Q(1)/y):Q(0);T=Q(A*O);S=x!=Q(0)?Q(Q(1)/x):Q(0);V=Q(q*S);y=Q(Q(t*L)+Q(Q(u*T)+Q(D*V)));s=Q(M*I);x=Q(O*w);U=Q(S*B);G=Q(Q(C*s)+Q(Q(A*x)+Q(q*U)));_=Q(p*G);E=Q(Q(t*s)+Q(Q(u*x)+Q(D*U)));X=Q(r*E);x=Q(Q(I*s)+Q(Q(w*x)+Q(B*U)));s=Q(_+Q(X+Q(v*x)));U=Q(M*t);O=Q(O*u);S=Q(S*D);D=Q(Q(t*U)+Q(Q(u*O)+Q(D*S)));M=Q(y+Q(Q(s+Q(Q(y*Q(0))+Q(X-Q(v*D))))*m));u=Q(Q(C*L)+Q(Q(A*T)+Q(q*V)));X=Q(y*r);L=Q(Q(I*L)+Q(Q(w*T)+Q(B*V)));T=Q(v*L);t=Q(Q(p*u)+Q(X+T));B=Q(Q(I*U)+Q(Q(w*O)+Q(S*B)));I=Q(B+Q(Q(Q(T+Q(Q(B*Q(0))-Q(x*p)))+t)*m));A=Q(Q(C*U)+Q(Q(A*O)+Q(S*q)));w=Q(p*A);S=Q(v*B);C=Q(w+Q(Q(D*r)+S));T=Q(m*Q(0));q=Q(Q(s+Q(Q(Q(p*C)-Q(t*r))*m))-Q(T+s));w=Q(G+Q(Q(C+Q(Q(w+Q(G*Q(0)))-Q(u*r)))*m));O=Q(A+Q(Q(Q(Q(u*v)+Q(Q(A*Q(0))-_))-s)*m));B=Q(x+Q(Q(Q(Q(B*p)+Q(x*Q(0)))-Q(L*r))*m));V=Q(Q(I*w)-Q(O*B));y=Q(D+Q(Q(Q(y*v)+Q(Q(D*Q(0))-Q(E*p)))*m));u=Q(u+Q(Q(Q(u*Q(0))+Q(Q(r*G)-Q(A*v)))*m));x=Q(L+Q(Q(Q(Q(L*Q(0))+Q(Q(r*x)-S))-C)*m));L=Q(Q(B*u)-Q(w*x));G=Q(E+Q(Q(Q(Q(Q(D*p)+Q(E*Q(0)))-X)-t)*m));E=Q(Q(x*O)-Q(u*I));A=Q(Q(M*V)+Q(Q(y*L)+Q(G*E)));D=Q(R(A))>Q(1.1920928955078125e-7)?Q(Q(1)/A):A;A=Q(Q(C+Q(Q(Q(v*t)-Q(s*p))*m))-Q(T+C));m=Q(Q(Q(Q(Q(r*s)-Q(C*v))*m)+t)-Q(T+t));N[o+16>>2]=Q(p-Q(Q(Q(M*Q(Q(I*q)-Q(A*B)))+Q(Q(y*Q(Q(B*m)-Q(q*x)))+Q(G*Q(Q(x*A)-Q(m*I)))))*D))-p;N[o+12>>2]=Q(v-Q(Q(Q(M*Q(Q(A*w)-Q(O*q)))+Q(Q(y*Q(Q(q*u)-Q(w*m)))+Q(G*Q(Q(m*O)-Q(u*A)))))*D))-v;N[o+8>>2]=Q(r-Q(Q(Q(m*V)+Q(Q(A*L)+Q(q*E)))*D))-r;m=N[o+16>>2];p=N[o+12>>2];l=n+P(k,244)|0;N[l+224>>2]=N[o+8>>2]+N[l+224>>2];N[l+228>>2]=p+N[l+228>>2];N[l+232>>2]=m+N[l+232>>2];l=J[i+564>>2]}if(!(l&8)){break b}m=N[h+12>>2];l=sa-16|0;sa=l;B=N[i+464>>2];w=N[i+460>>2];A=N[i+396>>2];D=N[i+392>>2];x=N[i+456>>2];I=N[i+388>>2];ob(i+4|0,l);p=N[l+4>>2];v=N[l>>2];r=N[l+12>>2];t=N[l+8>>2];J[o+20>>2]=0;q=Q(Q(p*I)+Q(Q(r*A)-Q(D*v)));u=Q(Q(t*A)+Q(Q(v*I)+Q(D*p)));y=Q(Q(v*A)+Q(Q(r*D)-Q(I*t)));E=Q(Q(t*D)+Q(Q(r*I)-Q(A*p)));s=Q(Q(Q(v*q)+Q(Q(p*u)+Q(r*y)))-Q(t*E));C=Q(Q(Q(E*p)+Q(Q(u*t)+Q(r*q)))-Q(y*v));G=Q(C*Q(0));q=Q(Q(Q(y*t)+Q(Q(u*v)+Q(r*E)))-Q(q*p));E=Q(q*Q(0));w=w!=Q(0)?Q(Q(1)/w):Q(0);u=Q(G+Q(E+Q(s*w)));x=x!=Q(0)?Q(Q(1)/x):Q(0);M=Q(Q(Q(Q(Q(E-Q(s*x))+Q(0))+u)*m)+Q(0));y=B!=Q(0)?Q(Q(1)/B):Q(0);L=Q(s*Q(0));O=Q(Q(y*C)+Q(E+L));B=Q(Q(Q(s*O)-Q(u*C))*m);X=Q(q*Q(-0));T=Q(Q(Q(Q(X+Q(Q(x*C)+Q(0)))-O)*m)+Q(0));S=Q(Q(Q(Q(L+Q(Q(0)-Q(w*C)))+O)*m)+Q(0));V=Q(G+Q(Q(x*q)+L));U=Q(Q(Q(Q(Q(G+Q(0))-Q(y*q))+V)*m)+Q(0));W=Q(C*Q(-0));_=Q(Q(Q(Q(Q(y*s)+Q(W+Q(0)))-u)*m)+Q(0));G=Q(w+Q(Q(X+Q(G+Q(w*Q(0))))*m));X=Q(Q(S*U)-Q(_*G));L=Q(x+Q(Q(L+Q(Q(x*Q(0))+W))*m));W=y;x=Q(y*Q(0));y=Q(s*Q(-0));x=Q(W+Q(Q(x+Q(y+E))*m));y=Q(Q(Q(Q(Q(y+Q(w*q))+Q(0))-V)*m)+Q(0));W=Q(Q(G*x)-Q(U*y));aa=Q(Q(y*_)-Q(x*S));w=Q(Q(M*X)+Q(Q(L*W)+Q(T*aa)));E=Q(R(w))>Q(1.1920928955078125e-7)?Q(Q(1)/w):w;w=Q(Q(Q(C*V)-Q(O*q))*m);m=Q(Q(Q(q*u)-Q(V*s))*m);s=Q(s-Q(Q(Q(M*Q(Q(B*U)-Q(_*w)))+Q(Q(L*Q(Q(w*x)-Q(U*m)))+Q(T*Q(Q(m*_)-Q(x*B)))))*E));q=Q(q-Q(Q(Q(m*X)+Q(Q(B*W)+Q(w*aa)))*E));m=Q(C-Q(Q(Q(M*Q(Q(S*w)-Q(B*G)))+Q(Q(L*Q(Q(G*m)-Q(w*y)))+Q(T*Q(Q(y*B)-Q(m*S)))))*E));C=Q(Q(Q(r*s)+Q(t*q))-Q(v*m));B=Q(Q(Q(r*m)+Q(v*s))-Q(p*q));w=Q(Q(Q(Q(-v)*q)-Q(s*p))-Q(t*m));m=Q(Q(Q(r*q)+Q(p*m))-Q(t*s));N[o+16>>2]=Q(Q(v*C)+Q(Q(Q(r*B)-Q(t*w))-Q(p*m)))-A;N[o+12>>2]=Q(Q(m*t)+Q(Q(Q(r*C)-Q(w*p))-Q(B*v)))-D;N[o+8>>2]=Q(Q(B*p)+Q(Q(Q(r*m)-Q(w*v))-Q(C*t)))-I;sa=l+16|0;m=N[o+16>>2];p=N[o+12>>2];i=n+P(k,244)|0;N[i+224>>2]=N[o+8>>2]+N[i+224>>2];N[i+228>>2]=p+N[i+228>>2];N[i+232>>2]=m+N[i+232>>2]}j=j+1|0;if((j|0)!=(c|0)){continue}break}}c:{if((g|0)<=0){break c}i=0;if((g|0)!=1){l=g&-2;b=0;while(1){j=i<<2;c=J[j+f>>2];ua[J[J[c>>2]+8>>2]](c);J[c+36>>2]=0;c=J[(j|4)+f>>2];ua[J[J[c>>2]+8>>2]](c);J[c+36>>2]=0;i=i+2|0;b=b+2|0;if((l|0)!=(b|0)){continue}break}}if(!(g&1)){break c}b=J[(i<<2)+f>>2];ua[J[J[b>>2]+8>>2]](b);J[b+36>>2]=0}b=J[a+168>>2];if(!((g|0)<=(b|0)|J[a+172>>2]>=(g|0))){d:{if(!g){j=0;break d}J[8456]=J[8456]+1;j=ua[J[8258]](g<<3,16)|0;b=J[a+168>>2]}e:{if((b|0)<=0){break e}k=0;i=0;if(b>>>0>=4){n=b&-4;c=0;while(1){l=i<<3;z=l+j|0;F=l+J[a+176>>2]|0;Z=J[F+4>>2];J[z>>2]=J[F>>2];J[z+4>>2]=Z;z=l|8;F=z+j|0;z=z+J[a+176>>2]|0;Z=J[z+4>>2];J[F>>2]=J[z>>2];J[F+4>>2]=Z;z=l|16;F=z+j|0;z=z+J[a+176>>2]|0;Z=J[z+4>>2];J[F>>2]=J[z>>2];J[F+4>>2]=Z;l=l|24;z=l+j|0;l=l+J[a+176>>2]|0;F=J[l+4>>2];J[z>>2]=J[l>>2];J[z+4>>2]=F;i=i+4|0;c=c+4|0;if((n|0)!=(c|0)){continue}break}}b=b&3;if(!b){break e}while(1){c=i<<3;l=c+j|0;c=c+J[a+176>>2]|0;n=J[c+4>>2];J[l>>2]=J[c>>2];J[l+4>>2]=n;i=i+1|0;k=k+1|0;if((b|0)!=(k|0)){continue}break}}b=J[a+176>>2];if(!(b?!b|!K[a+180|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+176>>2]=j;H[a+180|0]=1;J[a+172>>2]=g}J[a+168>>2]=g;k=0;if((g|0)>0){j=0;while(1){i=J[a+176>>2];l=(j<<2)+f|0;b=J[l>>2];c=J[b+44>>2];if(c){b=c;J[b>>2]=0;J[b+4>>2]=0;J[b+56>>2]=0;J[b+60>>2]=0;J[b+48>>2]=0;J[b+52>>2]=0;J[b+40>>2]=0;J[b+44>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;b=J[l>>2]}c=i+(j<<3)|0;f:{if(K[b+20|0]){ua[J[J[b>>2]+16>>2]](b,c);b=J[c>>2];break f}J[c>>2]=0;J[c+4>>2]=0;b=0}k=b+k|0;j=j+1|0;if((j|0)!=(g|0)){continue}break}}b=J[a+48>>2];if(!((k|0)<=(b|0)|J[a+52>>2]>=(k|0))){g:{if(!k){j=0;break g}J[8456]=J[8456]+1;j=ua[J[8258]](P(k,152),16)|0;b=J[a+48>>2]}h:{if((b|0)<=0){break h}c=b&1;i=0;if((b|0)!=1){l=b&-2;b=0;while(1){n=P(i,152);Ja(n+j|0,n+J[a+56>>2]|0,152);n=P(i|1,152);Ja(n+j|0,n+J[a+56>>2]|0,152);i=i+2|0;b=b+2|0;if((l|0)!=(b|0)){continue}break}}if(!c){break h}b=P(i,152);Ja(b+j|0,b+J[a+56>>2]|0,152)}b=J[a+56>>2];if(!(b?!b|!K[a+60|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+56>>2]=j;H[a+60|0]=1;J[a+52>>2]=k}J[a+48>>2]=k;if((g|0)>0){j=J[a+176>>2];while(1){ea=$;da=ba<<3;Z=da+j|0;if(J[Z>>2]){ca=(ba<<2)+f|0;F=J[ca>>2];j=J[F+32>>2];k=J[a+56>>2];n=J[F+28>>2];c=db(a,n,N[h+12>>2]);i=db(a,j,N[h+12>>2]);l=J[F+24>>2];b=J[h+20>>2];l=(l|0)>0?l:b;if((l|0)>J[a+184>>2]){J[a+184>>2]=l}z=k+P($,152)|0;$=J[a+16>>2];k=0;if(J[Z>>2]>0){while(1){b=Fa(z+P(k,152)|0,0,152);J[b+120>>2]=-8388609;J[b+124>>2]=2139095039;J[b+148>>2]=i;J[b+144>>2]=c;J[b+96>>2]=0;J[b+100>>2]=0;J[b+136>>2]=l;k=k+1|0;if((k|0)>2]){continue}break}b=J[h+20>>2]}c=P(c,244)+$|0;J[c+64>>2]=0;J[c+68>>2]=0;J[c+144>>2]=0;J[c+148>>2]=0;J[c+88>>2]=0;J[c+92>>2]=0;J[c+80>>2]=0;J[c+84>>2]=0;J[c+72>>2]=0;J[c+76>>2]=0;J[c+152>>2]=0;J[c+156>>2]=0;J[c+160>>2]=0;J[c+164>>2]=0;J[c+168>>2]=0;J[c+172>>2]=0;i=P(i,244)+$|0;J[i+88>>2]=0;J[i+92>>2]=0;J[i+80>>2]=0;J[i+84>>2]=0;J[i+72>>2]=0;J[i+76>>2]=0;J[i+64>>2]=0;J[i+68>>2]=0;J[i+144>>2]=0;J[i+148>>2]=0;J[i+152>>2]=0;J[i+156>>2]=0;J[i+160>>2]=0;J[i+164>>2]=0;J[i+168>>2]=0;J[i+172>>2]=0;N[o+8>>2]=Q(1)/N[h+12>>2];m=N[h+32>>2];J[o+36>>2]=z+112;J[o+32>>2]=38;J[o+28>>2]=z+32;J[o+24>>2]=z+48;J[o+20>>2]=z;J[o+16>>2]=z+16;N[o+12>>2]=m;N[z+116>>2]=N[h+40>>2];m=N[h+4>>2];J[o+52>>2]=b;J[o+48>>2]=z+124;J[o+44>>2]=z+120;J[o+40>>2]=z+116;N[o+56>>2]=m;b=J[ca>>2];ua[J[J[b>>2]+20>>2]](b,o+8|0);if(J[Z>>2]>0){l=0;while(1){m=N[J[ca>>2]+16>>2];b=z+P(l,152)|0;if(m<=N[b+124>>2]){N[b+124>>2]=m}m=Q(-m);if(m>=N[b+120>>2]){N[b+120>>2]=m}J[b+132>>2]=F;k=J[F+28>>2];r=N[k+332>>2];t=N[k+328>>2];s=N[k+608>>2];C=N[k+348>>2];q=N[k+340>>2];A=N[k+344>>2];D=N[k+612>>2];I=N[k+364>>2];B=N[k+356>>2];w=N[k+360>>2];u=N[k+604>>2];x=N[k+324>>2];m=N[b+8>>2];p=N[b>>2];v=N[b+4>>2];J[b+76>>2]=0;N[b+72>>2]=D*Q(Q(I*m)+Q(Q(B*p)+Q(v*w)));N[b+68>>2]=s*Q(Q(C*m)+Q(Q(q*p)+Q(v*A)));N[b+64>>2]=u*Q(Q(r*m)+Q(Q(x*p)+Q(t*v)));k=J[F+32>>2];C=N[k+328>>2];q=N[k+332>>2];A=N[k+608>>2];D=N[k+348>>2];I=N[k+340>>2];B=N[k+344>>2];r=N[k+612>>2];t=N[k+364>>2];s=N[k+356>>2];w=N[k+360>>2];u=N[k+604>>2];x=N[k+324>>2];J[b+92>>2]=0;y=r;r=N[b+40>>2];W=Q(t*r);t=N[b+32>>2];G=Q(s*t);s=N[b+36>>2];N[b+88>>2]=y*Q(W+Q(G+Q(w*s)));N[b+84>>2]=A*Q(Q(D*r)+Q(Q(I*t)+Q(s*B)));N[b+80>>2]=u*Q(Q(q*r)+Q(Q(x*t)+Q(C*s)));C=Q(0);q=N[n+404>>2];A=N[b+24>>2];D=N[b+16>>2];I=N[b+20>>2];y=Q(Q(Q(Q(q*A)*A)+Q(Q(Q(q*D)*D)+Q(I*Q(q*I))))+Q(Q(m*Q(Q(m*N[n+364>>2])+Q(Q(p*N[n+356>>2])+Q(v*N[n+360>>2]))))+Q(Q(p*Q(Q(m*N[n+332>>2])+Q(Q(p*N[n+324>>2])+Q(v*N[n+328>>2]))))+Q(v*Q(Q(m*N[n+348>>2])+Q(Q(p*N[n+340>>2])+Q(v*N[n+344>>2])))))));q=N[j+404>>2];B=N[b+56>>2];w=N[b+48>>2];u=N[b+52>>2];q=Q(Q(y+Q(Q(Q(q*B)*B)+Q(Q(Q(q*w)*w)+Q(u*Q(q*u)))))+Q(Q(r*Q(Q(r*N[j+364>>2])+Q(Q(t*N[j+356>>2])+Q(s*N[j+360>>2]))))+Q(Q(t*Q(Q(r*N[j+332>>2])+Q(Q(t*N[j+324>>2])+Q(s*N[j+328>>2]))))+Q(s*Q(Q(r*N[j+348>>2])+Q(Q(t*N[j+340>>2])+Q(s*N[j+344>>2])))))));q=Q(R(q))>Q(1.1920928955078125e-7)?Q(Q(1)/q):Q(0);N[b+108>>2]=q;x=Q(0);y=Q(0);G=Q(0);E=Q(0);M=Q(0);L=Q(0);if(J[c+240>>2]){L=N[c+232>>2];M=N[c+228>>2];E=N[c+224>>2];y=N[c+212>>2];G=N[c+208>>2];x=N[c+216>>2]}O=Q(0);T=Q(0);S=Q(0);V=Q(0);U=Q(0);if(J[i+240>>2]){U=N[i+232>>2];V=N[i+228>>2];S=N[i+224>>2];O=N[i+212>>2];T=N[i+208>>2];C=N[i+216>>2]}_=N[n+380>>2];X=N[n+372>>2];W=N[n+376>>2];aa=N[n+396>>2];fa=N[n+388>>2];ga=N[n+392>>2];ha=N[j+380>>2];ia=N[j+372>>2];ja=N[j+376>>2];ka=N[j+396>>2];la=N[j+388>>2];ma=N[j+392>>2];na=N[o+56>>2];J[b+100>>2]=0;N[b+112>>2]=Q(q*N[b+112>>2])+Q(q*Q(Q(0)-Q(na*Q(Q(Q(Q(A*Q(x+_))+Q(Q(D*Q(G+X))+Q(I*Q(y+W))))+Q(Q(m*Q(L+aa))+Q(Q(p*Q(E+fa))+Q(v*Q(M+ga)))))+Q(Q(Q(B*Q(C+ha))+Q(Q(w*Q(T+ia))+Q(u*Q(O+ja))))+Q(Q(r*Q(U+ka))+Q(Q(t*Q(S+la))+Q(s*Q(V+ma)))))))));l=l+1|0;if((l|0)>2]){continue}break}}j=J[a+176>>2];b=J[da+j>>2]}else{b=0}$=ea+b|0;ba=ba+1|0;if((ba|0)!=(g|0)){continue}break}}ua[J[J[a>>2]+28>>2]](a,d,e,h);e=J[a+68>>2];d=J[a+28>>2];k=J[a+128>>2];f=J[a+48>>2];if(!((k|0)>=(f|0)|(f|0)<=J[a+132>>2])){i:{if(!f){j=0;break i}J[8456]=J[8456]+1;j=ua[J[8258]](f<<2,16)|0;k=J[a+128>>2]}b=J[a+136>>2];j:{k:{if((k|0)>0){c=0;i=0;if(k>>>0>=4){n=k&-4;l=0;while(1){g=i<<2;J[g+j>>2]=J[b+g>>2];z=g|4;J[z+j>>2]=J[b+z>>2];z=g|8;J[z+j>>2]=J[b+z>>2];g=g|12;J[g+j>>2]=J[b+g>>2];i=i+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}g=k&3;if(g){while(1){l=i<<2;J[l+j>>2]=J[b+l>>2];i=i+1|0;c=c+1|0;if((g|0)!=(c|0)){continue}break}}if(K[a+140|0]){break k}break j}if(!b|!K[a+140|0]){break j}}if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}}J[a+136>>2]=j;J[a+132>>2]=f;H[a+140|0]=1}J[a+128>>2]=f;l:{if(K[h+72|0]&16){k=J[a+108>>2];h=d<<1;if(!((k|0)>=(h|0)|(h|0)<=J[a+112>>2])){m:{if(!d){j=0;break m}J[8456]=J[8456]+1;j=ua[J[8258]](d<<3,16)|0;k=J[a+108>>2]}b=J[a+116>>2];n:{o:{if((k|0)>0){c=0;i=0;if(k>>>0>=4){n=k&-4;l=0;while(1){g=i<<2;J[g+j>>2]=J[b+g>>2];z=g|4;J[z+j>>2]=J[b+z>>2];z=g|8;J[z+j>>2]=J[b+z>>2];g=g|12;J[g+j>>2]=J[b+g>>2];i=i+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}g=k&3;if(g){while(1){l=i<<2;J[l+j>>2]=J[b+l>>2];i=i+1|0;c=c+1|0;if((g|0)!=(c|0)){continue}break}}if(K[a+120|0]){break o}break n}if(!b|!K[a+120|0]){break n}}if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}}J[a+116>>2]=j;J[a+112>>2]=h;H[a+120|0]=1}J[a+108>>2]=h;break l}k=J[a+108>>2];if(!((d|0)<=(k|0)|(d|0)<=J[a+112>>2])){p:{if(!d){j=0;break p}J[8456]=J[8456]+1;j=ua[J[8258]](d<<2,16)|0;k=J[a+108>>2]}b=J[a+116>>2];q:{r:{if((k|0)>0){c=0;i=0;if(k>>>0>=4){h=k&-4;l=0;while(1){g=i<<2;J[g+j>>2]=J[b+g>>2];n=g|4;J[n+j>>2]=J[b+n>>2];n=g|8;J[n+j>>2]=J[b+n>>2];g=g|12;J[g+j>>2]=J[b+g>>2];i=i+4|0;l=l+4|0;if((h|0)!=(l|0)){continue}break}}g=k&3;if(g){while(1){h=i<<2;J[h+j>>2]=J[b+h>>2];i=i+1|0;c=c+1|0;if((g|0)!=(c|0)){continue}break}}if(K[a+120|0]){break r}break q}if(!b|!K[a+120|0]){break q}}if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}}J[a+116>>2]=j;J[a+112>>2]=d;H[a+120|0]=1}J[a+108>>2]=d}k=J[a+148>>2];if(!((e|0)<=(k|0)|(e|0)<=J[a+152>>2])){s:{if(!e){j=0;break s}J[8456]=J[8456]+1;j=ua[J[8258]](e<<2,16)|0;k=J[a+148>>2]}b=J[a+156>>2];t:{u:{if((k|0)>0){c=0;i=0;if(k>>>0>=4){h=k&-4;l=0;while(1){g=i<<2;J[g+j>>2]=J[b+g>>2];n=g|4;J[n+j>>2]=J[b+n>>2];n=g|8;J[n+j>>2]=J[b+n>>2];g=g|12;J[g+j>>2]=J[b+g>>2];i=i+4|0;l=l+4|0;if((h|0)!=(l|0)){continue}break}}g=k&3;if(g){while(1){h=i<<2;J[h+j>>2]=J[b+h>>2];i=i+1|0;c=c+1|0;if((g|0)!=(c|0)){continue}break}}if(K[a+160|0]){break u}break t}if(!b|!K[a+160|0]){break t}}if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}}J[a+156>>2]=j;J[a+152>>2]=e;H[a+160|0]=1}J[a+148>>2]=e;v:{if((f|0)<=0){break v}c=J[a+136>>2];b=0;i=0;if(f>>>0>=8){g=f&-8;k=0;while(1){J[c+(i<<2)>>2]=i;h=i|1;J[c+(h<<2)>>2]=h;h=i|2;J[c+(h<<2)>>2]=h;h=i|3;J[c+(h<<2)>>2]=h;h=i|4;J[c+(h<<2)>>2]=h;h=i|5;J[c+(h<<2)>>2]=h;h=i|6;J[c+(h<<2)>>2]=h;h=i|7;J[c+(h<<2)>>2]=h;i=i+8|0;k=k+8|0;if((g|0)!=(k|0)){continue}break}}f=f&7;if(!f){break v}while(1){J[c+(i<<2)>>2]=i;i=i+1|0;b=b+1|0;if((f|0)!=(b|0)){continue}break}}w:{if((d|0)<=0){break w}c=J[a+116>>2];b=0;i=0;if(d>>>0>=8){f=d&-8;k=0;while(1){J[c+(i<<2)>>2]=i;g=i|1;J[c+(g<<2)>>2]=g;g=i|2;J[c+(g<<2)>>2]=g;g=i|3;J[c+(g<<2)>>2]=g;g=i|4;J[c+(g<<2)>>2]=g;g=i|5;J[c+(g<<2)>>2]=g;g=i|6;J[c+(g<<2)>>2]=g;g=i|7;J[c+(g<<2)>>2]=g;i=i+8|0;k=k+8|0;if((f|0)!=(k|0)){continue}break}}d=d&7;if(!d){break w}while(1){J[c+(i<<2)>>2]=i;i=i+1|0;b=b+1|0;if((d|0)!=(b|0)){continue}break}}x:{if((e|0)<=0){break x}a=J[a+156>>2];b=0;i=0;if(e>>>0>=8){c=e&-8;k=0;while(1){J[a+(i<<2)>>2]=i;d=i|1;J[a+(d<<2)>>2]=d;d=i|2;J[a+(d<<2)>>2]=d;d=i|3;J[a+(d<<2)>>2]=d;d=i|4;J[a+(d<<2)>>2]=d;d=i|5;J[a+(d<<2)>>2]=d;d=i|6;J[a+(d<<2)>>2]=d;d=i|7;J[a+(d<<2)>>2]=d;i=i+8|0;k=k+8|0;if((c|0)!=(k|0)){continue}break}}c=e&7;if(!c){break x}while(1){J[a+(i<<2)>>2]=i;i=i+1|0;b=b+1|0;if((c|0)!=(b|0)){continue}break}}ua[J[8263]]();sa=o+256|0;return Q(Q(0))}function ee(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=Q(0),o=0,p=0,q=0,r=Q(0),s=0,t=Q(0),u=Q(0),v=0,w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=0,C=0,D=0,E=0,F=0,G=0;i=sa-144|0;sa=i;a:{if((c|0)<=0){b=J[a+12>>2];if(!(b?!b|!K[a+16|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+12>>2]=0;H[a+16|0]=1;J[a+4>>2]=0;J[a+8>>2]=0;b=J[a+32>>2];if(!(b?!b|!K[a+36|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+32>>2]=0;H[a+36|0]=1;J[a+24>>2]=0;J[a+28>>2]=0;b=J[a+52>>2];if(!(b?!b|!K[a+56|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+52>>2]=0;H[a+56|0]=1;J[a+44>>2]=0;J[a+48>>2]=0;break a}H[i+112|0]=1;J[i+88>>2]=0;J[i+92>>2]=256;J[i+72>>2]=0;J[i+76>>2]=256;J[i+56>>2]=0;J[i+60>>2]=256;J[i+108>>2]=0;J[i+100>>2]=0;J[i+104>>2]=0;J[i+80>>2]=0;J[i+84>>2]=0;J[i+64>>2]=0;J[i+68>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;e=i+16|0;h=sa-48|0;sa=h;w=Q(-1.0000000150474662e30);x=Q(1.0000000150474662e30);k=c;b:{if((c|0)>0){c=b;n=Q(1.0000000150474662e30);r=Q(1.0000000150474662e30);t=Q(-1.0000000150474662e30);u=Q(-1.0000000150474662e30);while(1){y=N[c+8>>2];w=w>2];t=t>2];u=uy?y:x;n=n>z?z:n;r=r>A?A:r;c=c+16|0;l=l+1|0;if((k|0)!=(l|0)){continue}break}break b}u=Q(-1.0000000150474662e30);t=Q(-1.0000000150474662e30);r=Q(1.0000000150474662e30);n=Q(1.0000000150474662e30)}J[e+12>>2]=0;J[e+28>>2]=0;N[e+24>>2]=Q(w+x)*Q(.5);N[e+20>>2]=Q(t+n)*Q(.5);N[e+16>>2]=Q(u+r)*Q(.5);r=Q(u-r);n=Q(t-n);d=r(d?n:r)?2:d;J[e+112>>2]=c;d=t>(d?r:n)?!d:2;d=(c|0)==(d|0)?c+(c>>>0>1?-2:1)|0:d;J[e+104>>2]=d;d=c+d|0;J[e+108>>2]=3-d;t=Q(t*Q(9788566967472434e-20));c=(c|0)==((4-d|0)%3|0);t=c?t:Q(-t);N[e+8>>2]=t;n=Q(n*Q(9788566967472434e-20));n=c?n:Q(-n);N[e+4>>2]=n;r=Q(r*Q(9788566967472434e-20));r=c?r:Q(-r);N[e>>2]=r;H[h+44|0]=1;J[h+36>>2]=0;J[h+40>>2]=0;c:{d:{if((k|0)>0){J[8456]=J[8456]+1;F=h,G=ua[J[8258]](k<<4,16)|0,J[F+40>>2]=G;H[h+44|0]=1;J[h+36>>2]=k;J[h+32>>2]=k;if((k|0)<=0){break c}t=t!=Q(0)?Q(Q(1)/t):t;u=n!=Q(0)?Q(Q(1)/n):n;r=r!=Q(0)?Q(Q(1)/r):r;c=h+8|0;m=c+(J[e+104>>2]<<2)|0;g=c+(J[e+112>>2]<<2)|0;s=c+(J[e+108>>2]<<2)|0;w=N[e+24>>2];x=N[e+20>>2];y=N[e+16>>2];j=J[h+40>>2];l=0;while(1){n=N[b>>2];z=N[b+4>>2];A=N[b+8>>2];J[h+20>>2]=0;N[h+16>>2]=t*Q(A-w);N[h+12>>2]=u*Q(z-x);N[h+8>>2]=r*Q(n-y);c=j+(l<<4)|0;n=N[s>>2];e:{if(Q(R(n))>2]=d;n=N[g>>2];f:{if(Q(R(n))>2]=d;n=N[m>>2];J[c+12>>2]=l;if(Q(R(n))>2]=d;b=b+16|0;l=l+1|0;if((k|0)!=(l|0)){continue}break}break d}J[h+32>>2]=k;break c}if((k|0)<2){break c}fe(h+28|0,h+8|0,0,k-1|0)}J[e+44>>2]=k;J[e+40>>2]=0;J[e+36>>2]=J[e+32>>2];b=J[e+84>>2];g:{if((k|0)<=(b|0)){break g}if((k|0)>J[e+88>>2]){h:{if(!k){l=0;g=b;break h}J[8456]=J[8456]+1;l=ua[J[8258]](k<<2,16)|0;g=J[e+84>>2]}i:{if((g|0)<=0){break i}m=0;c=0;if(g>>>0>=4){j=g&-4;d=0;while(1){s=c<<2;J[s+l>>2]=J[s+J[e+92>>2]>>2];o=s|4;J[o+l>>2]=J[o+J[e+92>>2]>>2];o=s|8;J[o+l>>2]=J[o+J[e+92>>2]>>2];s=s|12;J[s+l>>2]=J[s+J[e+92>>2]>>2];c=c+4|0;d=d+4|0;if((j|0)!=(d|0)){continue}break}}d=g&3;if(!d){break i}while(1){g=c<<2;J[g+l>>2]=J[g+J[e+92>>2]>>2];c=c+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}c=J[e+92>>2];if(!(c?!c|!K[e+96|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}J[e+92>>2]=l;H[e+96|0]=1;J[e+88>>2]=k}d=k+(b^-1)|0;m=k-b&3;if(m){c=0;while(1){J[J[e+92>>2]+(b<<2)>>2]=0;b=b+1|0;c=c+1|0;if((m|0)!=(c|0)){continue}break}}if(d>>>0<3){break g}while(1){c=b<<2;J[c+J[e+92>>2]>>2]=0;J[(c+J[e+92>>2]|0)+4>>2]=0;J[(c+J[e+92>>2]|0)+8>>2]=0;J[(c+J[e+92>>2]|0)+12>>2]=0;b=b+4|0;if((k|0)!=(b|0)){continue}break}}J[e+84>>2]=k;if((k|0)>0){j=0;while(1){d=J[e+40>>2];j:{if(d){break j}b=J[e+36>>2];k:{if(b){J[e+36>>2]=J[b+8>>2];d=J[b>>2];break k}J[8456]=J[8456]+1;b=ua[J[8258]](12,16)|0;c=J[e+44>>2];J[b+8>>2]=0;J[b+4>>2]=c;J[8456]=J[8456]+1;d=ua[J[8258]](P(c,112),16)|0;J[b>>2]=d;J[b+8>>2]=J[e+32>>2];J[e+32>>2]=b}s=J[b+4>>2];if((s|0)<=0){break j}o=0;m=0;c=d;if(s>>>0>=4){p=s&-4;l=0;b=d;g=0;while(1){c=b+448|0;m=l+4|0;J[b+336>>2]=(s|0)>(m|0)?c:0;J[b+224>>2]=(s|0)>(l|3)?b+336|0:0;J[b+112>>2]=(s|0)>(l|2)?b+224|0:0;J[b>>2]=(s|0)>(l|1)?b+112|0:0;l=m;b=c;g=g+4|0;if((p|0)!=(g|0)){continue}break}}b=s&3;if(!b){break j}while(1){l=c;c=c+112|0;m=m+1|0;J[l>>2]=(s|0)>(m|0)?c:0;o=o+1|0;if((b|0)!=(o|0)){continue}break}}J[e+40>>2]=J[d>>2];J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;J[d>>2]=0;J[d+4>>2]=0;J[d+104>>2]=-1;b=J[h+40>>2]+(j<<4)|0;c=J[b+4>>2];J[d+88>>2]=J[b>>2];J[d+92>>2]=c;c=J[b+12>>2];J[d+96>>2]=J[b+8>>2];J[d+100>>2]=c;J[J[e+92>>2]+(j<<2)>>2]=d;j=j+1|0;if((k|0)!=(j|0)){continue}break}}b=J[h+40>>2];if(!(b?!b|!K[h+44|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[h+40>>2]=0;H[h+44|0]=1;J[h+32>>2]=0;J[h+36>>2]=0;J[e+116>>2]=0;J[e+120>>2]=0;J[e+60>>2]=P(k,6);J[e+56>>2]=0;J[e+100>>2]=-3;J[e+52>>2]=J[e+48>>2];J[h+16>>2]=0;J[h+20>>2]=0;J[h+8>>2]=0;J[h+12>>2]=0;Cc(e,0,k,h+8|0);J[e+124>>2]=J[h+8>>2];b=J[h+40>>2];if(!(b?!b|!K[h+44|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}sa=h+48|0;if((J[a+4>>2]&J[a+8>>2])<0){b=J[a+12>>2];if(!(b?!b|!K[a+16|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}H[a+16|0]=1;J[a+8>>2]=0;J[a+12>>2]=0}J[a+4>>2]=0;b=J[a+24>>2];l:{if((b|0)>=0){break l}if(J[a+28>>2]<0){c=J[a+32>>2];if(!(c?!c|!K[a+36|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}H[a+36|0]=1;J[a+28>>2]=0;J[a+32>>2]=0}c=b;m=0-b&3;if(m){while(1){d=J[a+32>>2]+P(c,12)|0;J[d>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;c=c+1|0;f=f+1|0;if((m|0)!=(f|0)){continue}break}}if(b>>>0>4294967292){break l}while(1){b=P(c,12);d=b+J[a+32>>2]|0;J[d>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;d=b+J[a+32>>2]|0;J[d+20>>2]=0;J[d+12>>2]=0;J[d+16>>2]=0;d=b+J[a+32>>2]|0;J[d+32>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;b=b+J[a+32>>2]|0;J[b+44>>2]=0;J[b+36>>2]=0;J[b+40>>2]=0;c=c+4|0;if(c){continue}break}}J[a+24>>2]=0;c=J[a+44>>2];if((c|0)<0){b=J[a+52>>2];if(J[a+48>>2]<0){if(!(b?!b|!K[a+56|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}H[a+56|0]=1;J[a+48>>2]=0;J[a+52>>2]=0;b=0}d=b;b=c<<2;Fa(d+b|0,0,0-b|0)}J[a+44>>2]=0;b=J[i+140>>2];m:{if(J[b+104>>2]>=0){break m}J[b+104>>2]=0;J[8456]=J[8456]+1;k=ua[J[8258]](4,16)|0;J[k>>2]=b;c=0;m=1;e=1;while(1){s=c;d=sa-16|0;sa=d;n:{o:{p:{q:{o=J[(c<<2)+k>>2];b=o;r:{if(J[b+100>>2]>=0){N[d+(J[i+124>>2]<<2)>>2]=J[b+88>>2];break r}n=eb(b+24|0);c=b+72|0;r=eb(c);f=J[b+100>>2];N[d+(J[i+124>>2]<<2)>>2]=n/r;if((f|0)<0){break q}}N[d+(J[i+128>>2]<<2)>>2]=J[b+92>>2];break p}n=eb(b+40|0);r=eb(c);c=J[b+100>>2];N[d+(J[i+128>>2]<<2)>>2]=n/r;if((c|0)<0){break o}}n=Q(J[b+96>>2]);break n}n=Q(eb(b+56|0)/eb(b+72|0))}N[d+(J[i+120>>2]<<2)>>2]=n;n=N[i+36>>2];r=N[i+40>>2];t=N[i+32>>2];u=N[i+16>>2];w=N[i+20>>2];x=N[i+24>>2];y=N[d>>2];z=N[d+4>>2];A=N[d+8>>2];J[i+12>>2]=0;N[i+8>>2]=r+Q(A*x);N[i+4>>2]=n+Q(z*w);N[i>>2]=t+Q(y*u);sa=d+16|0;f=J[a+4>>2];s:{if((f|0)!=J[a+8>>2]){break s}l=f?f<<1:1;if((l|0)<=(f|0)){break s}t:{if(!l){d=0;break t}J[8456]=J[8456]+1;d=ua[J[8258]](l<<4,16)|0;f=J[a+4>>2]}u:{if((f|0)<=0){break u}c=0;if((f|0)!=1){p=f&-2;b=0;while(1){h=c<<4;j=h+d|0;g=h+J[a+12>>2]|0;q=J[g+4>>2];J[j>>2]=J[g>>2];J[j+4>>2]=q;q=J[g+12>>2];J[j+8>>2]=J[g+8>>2];J[j+12>>2]=q;g=h|16;h=g+d|0;g=g+J[a+12>>2]|0;j=J[g+4>>2];J[h>>2]=J[g>>2];J[h+4>>2]=j;j=J[g+12>>2];J[h+8>>2]=J[g+8>>2];J[h+12>>2]=j;c=c+2|0;b=b+2|0;if((p|0)!=(b|0)){continue}break}}if(!(f&1)){break u}c=c<<4;b=c+d|0;c=c+J[a+12>>2]|0;f=J[c+4>>2];J[b>>2]=J[c>>2];J[b+4>>2]=f;f=J[c+12>>2];J[b+8>>2]=J[c+8>>2];J[b+12>>2]=f}b=J[a+12>>2];if(!(b?!b|!K[a+16|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+12>>2]=d;H[a+16|0]=1;J[a+8>>2]=l;f=J[a+4>>2]}c=J[i+4>>2];b=J[a+12>>2]+(f<<4)|0;J[b>>2]=J[i>>2];J[b+4>>2]=c;c=J[i+12>>2];J[b+8>>2]=J[i+8>>2];J[b+12>>2]=c;J[a+4>>2]=J[a+4>>2]+1;b=-1;l=-1;D=J[o+8>>2];c=D;if(c){while(1){if(J[c+20>>2]<0){h=J[a+24>>2];f=h;v:{if((h|0)!=J[a+28>>2]){break v}o=f?h<<1:1;if((o|0)<=(f|0)){break v}w:{if(!o){j=0;d=h;break w}J[8456]=J[8456]+1;j=ua[J[8258]](P(o,12),16)|0;d=J[a+24>>2]}x:{if((d|0)<=0){break x}f=0;if((d|0)!=1){B=d&-2;g=0;while(1){q=P(f,12);p=q+J[a+32>>2]|0;v=J[p+4>>2];q=j+q|0;J[q>>2]=J[p>>2];J[q+4>>2]=v;J[q+8>>2]=J[p+8>>2];q=P(f|1,12);p=q+J[a+32>>2]|0;v=J[p+4>>2];q=j+q|0;J[q>>2]=J[p>>2];J[q+4>>2]=v;J[q+8>>2]=J[p+8>>2];f=f+2|0;g=g+2|0;if((B|0)!=(g|0)){continue}break}}if(!(d&1)){break x}f=P(f,12);d=f+J[a+32>>2]|0;g=J[d+4>>2];f=f+j|0;J[f>>2]=J[d>>2];J[f+4>>2]=g;J[f+8>>2]=J[d+8>>2]}d=J[a+32>>2];if(!(d?!d|!K[a+36|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](d)}J[a+32>>2]=j;H[a+36|0]=1;J[a+28>>2]=o;f=J[a+24>>2]}d=J[a+32>>2]+P(f,12)|0;J[d>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;g=J[a+24>>2]+1|0;J[a+24>>2]=g;y:{if(J[a+28>>2]!=(g|0)){break y}d=g?g<<1:1;if((d|0)<=(g|0)){break y}z:{if(!d){j=0;break z}J[8456]=J[8456]+1;j=ua[J[8258]](P(d,12),16)|0;g=J[a+24>>2]}A:{if((g|0)<=0){break A}q=g&1;f=0;if((g|0)!=1){B=g&-2;g=0;while(1){p=P(f,12);o=p+J[a+32>>2]|0;v=J[o+4>>2];p=j+p|0;J[p>>2]=J[o>>2];J[p+4>>2]=v;J[p+8>>2]=J[o+8>>2];p=P(f|1,12);o=p+J[a+32>>2]|0;v=J[o+4>>2];p=j+p|0;J[p>>2]=J[o>>2];J[p+4>>2]=v;J[p+8>>2]=J[o+8>>2];f=f+2|0;g=g+2|0;if((B|0)!=(g|0)){continue}break}}if(!q){break A}g=P(f,12);f=g+J[a+32>>2]|0;o=J[f+4>>2];g=g+j|0;J[g>>2]=J[f>>2];J[g+4>>2]=o;J[g+8>>2]=J[f+8>>2]}f=J[a+32>>2];if(!(f?!f|!K[a+36|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](f)}J[a+32>>2]=j;H[a+36|0]=1;J[a+28>>2]=d;g=J[a+24>>2]}d=J[a+32>>2]+P(g,12)|0;J[d>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;J[a+24>>2]=J[a+24>>2]+1;o=J[a+32>>2];J[c+20>>2]=h;v=h+1|0;J[J[c+8>>2]+20>>2]=v;p=P(h,12)+o|0;J[p+16>>2]=-1;J[p+4>>2]=1;q=J[c+12>>2];d=J[q+104>>2];B:{if((d|0)>=0){f=m;m=d;break B}J[q+104>>2]=m;C:{D:{if((e|0)!=(m|0)){break D}g=e?e<<1:1;if((g|0)<=(e|0)){break D}if(g){J[8456]=J[8456]+1;d=ua[J[8258]](g<<2,16)|0}else{d=0}E:{if((e|0)>0){B=0;f=0;if(e>>>0>=4){E=e&-4;h=0;while(1){j=f<<2;J[j+d>>2]=J[j+k>>2];C=j|4;J[C+d>>2]=J[k+C>>2];C=j|8;J[C+d>>2]=J[k+C>>2];j=j|12;J[j+d>>2]=J[j+k>>2];f=f+4|0;h=h+4|0;if((E|0)!=(h|0)){continue}break}}e=e&3;if(!e){break E}while(1){h=f<<2;J[h+d>>2]=J[h+k>>2];f=f+1|0;B=B+1|0;if((e|0)!=(B|0)){continue}break}break E}if(!k){break C}}if(k){J[8457]=J[8457]+1;ua[J[8259]](k)}break C}d=k;g=e}J[(m<<2)+d>>2]=q;f=m+1|0;k=d;e=g}J[p+8>>2]=m;J[(P(v,12)+o|0)+8>>2]=s;m=f}f=J[c+20>>2];d=f;if((b|0)>=0){J[J[a+32>>2]+P(f,12)>>2]=b-f;d=l}b=f;l=d;c=J[c>>2];if((D|0)!=(c|0)){continue}break}J[J[a+32>>2]+P(l,12)>>2]=b-l}c=s+1|0;if((m|0)>(c|0)){continue}break}h=0;while(1){o=J[J[(h<<2)+k>>2]+8>>2];f=o;if(f){while(1){c=J[f+20>>2];if((c|0)>=0){j=J[a+44>>2];F:{if((j|0)!=J[a+48>>2]){break F}e=j?j<<1:1;if((e|0)<=(j|0)){break F}G:{if(!e){d=0;break G}J[8456]=J[8456]+1;d=ua[J[8258]](e<<2,16)|0;j=J[a+44>>2]}b=J[a+52>>2];H:{I:{if((j|0)>0){g=0;c=0;if(j>>>0>=4){p=j&-4;l=0;while(1){m=c<<2;J[m+d>>2]=J[b+m>>2];q=m|4;J[q+d>>2]=J[b+q>>2];q=m|8;J[q+d>>2]=J[b+q>>2];m=m|12;J[m+d>>2]=J[b+m>>2];c=c+4|0;l=l+4|0;if((p|0)!=(l|0)){continue}break}}m=j&3;if(!m){break I}while(1){l=c<<2;J[l+d>>2]=J[b+l>>2];c=c+1|0;g=g+1|0;if((m|0)!=(g|0)){continue}break}break I}if(!b){break H}}if(b?K[a+56|0]:0){J[8457]=J[8457]+1;ua[J[8259]](b)}j=J[a+44>>2]}J[a+52>>2]=d;H[a+56|0]=1;J[a+48>>2]=e;c=J[f+20>>2]}J[J[a+52>>2]+(j<<2)>>2]=c;J[a+44>>2]=J[a+44>>2]+1;c=f;while(1){J[c+20>>2]=-1;c=J[J[c+8>>2]+4>>2];if((f|0)!=(c|0)){continue}break}}f=J[f>>2];if((o|0)!=(f|0)){continue}break}}b=(h|0)==(s|0);h=h+1|0;if(!b){continue}break}if(!k){break m}if(k){J[8457]=J[8457]+1;ua[J[8259]](k)}}a=J[i+108>>2];if(!(a?!a|!K[i+112|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](a)}J[i+108>>2]=0;H[i+112|0]=1;J[i+100>>2]=0;J[i+104>>2]=0;while(1){a=J[i+80>>2];if(a){J[i+80>>2]=J[a+8>>2];b=J[a>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}continue}break}while(1){a=J[i+64>>2];if(a){J[i+64>>2]=J[a+8>>2];b=J[a>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}continue}break}while(1){a=J[i+48>>2];if(!a){break a}J[i+48>>2]=J[a+8>>2];b=J[a>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}continue}}sa=i+144|0}function Hc(a,b,c){var d=0,e=0,f=Q(0),g=0,h=0,i=0,j=0,k=Q(0),l=0,m=0,n=Q(0),o=Q(0),p=0,q=Q(0),r=Q(0),s=Q(0),t=0,u=Q(0),v=0,w=Q(0),x=Q(0),y=0,z=0,A=0,B=Q(0),C=0,D=0,E=Q(0),F=0,G=0,M=0,O=Q(0),P=Q(0);l=sa-32|0;sa=l;A=J[a+56>>2];a:{if((c-b|0)==1){b:{if(K[a+60|0]){b=J[a+116>>2]+(b<<4)|0;e=J[b+4>>2];c=J[a+136>>2]+(A<<4)|0;J[c>>2]=J[b>>2];J[c+4>>2]=e;break b}b=J[a+76>>2]+(b<<6)|0;e=J[b+4>>2];c=J[a+96>>2]+(A<<6)|0;J[c>>2]=J[b>>2];J[c+4>>2]=e;e=J[b+60>>2];J[c+56>>2]=J[b+56>>2];J[c+60>>2]=e;e=J[b+52>>2];J[c+48>>2]=J[b+48>>2];J[c+52>>2]=e;e=J[b+44>>2];J[c+40>>2]=J[b+40>>2];J[c+44>>2]=e;e=J[b+36>>2];J[c+32>>2]=J[b+32>>2];J[c+36>>2]=e;e=J[b+28>>2];J[c+24>>2]=J[b+24>>2];J[c+28>>2]=e;e=J[b+20>>2];J[c+16>>2]=J[b+16>>2];J[c+20>>2]=e}e=J[b+12>>2];J[c+8>>2]=J[b+8>>2];J[c+12>>2]=e;J[a+56>>2]=J[a+56>>2]+1;break a}p=c;e=b;g=c-e|0;c:{d:{e:{if((e|0)>=(c|0)){E=Q(g|0);break e}f:{if(!K[a+60|0]){d=J[a+76>>2];c=b;while(1){h=d+(c<<6)|0;x=Q(x+Q(Q(N[h+16>>2]+N[h>>2])*Q(.5)));r=Q(r+Q(Q(N[h+24>>2]+N[h+8>>2])*Q(.5)));s=Q(s+Q(Q(N[h+20>>2]+N[h+4>>2])*Q(.5)));c=c+1|0;if((p|0)!=(c|0)){continue}break}break f}u=N[a+12>>2];o=N[a+8>>2];q=N[a+44>>2];k=N[a+40>>2];d=J[a+116>>2];n=N[a+4>>2];f=N[a+36>>2];c=b;while(1){h=d+(c<<4)|0;x=Q(x+Q(Q(Q(Q(Q(L[h+6>>1])/f)+n)+Q(Q(Q(L[h>>1])/f)+n))*Q(.5)));r=Q(r+Q(Q(Q(Q(Q(L[h+10>>1])/q)+u)+Q(Q(Q(L[h+4>>1])/q)+u))*Q(.5)));s=Q(s+Q(Q(Q(Q(Q(L[h+8>>1])/k)+o)+Q(Q(Q(L[h+2>>1])/k)+o))*Q(.5)));c=c+1|0;if((p|0)!=(c|0)){continue}break}}E=Q(g|0);if((e|0)<(p|0)){break d}}r=Q(0);s=Q(0);break c}f=Q(Q(1)/E);O=Q(f*r);P=Q(f*s);x=Q(f*x);s=Q(0);if(!K[a+60|0]){c=J[a+76>>2];r=Q(0);while(1){d=c+(e<<6)|0;f=Q(Q(Q(N[d+16>>2]+N[d>>2])*Q(.5))-x);w=Q(w+Q(f*f));f=Q(Q(Q(N[d+24>>2]+N[d+8>>2])*Q(.5))-O);s=Q(s+Q(f*f));f=Q(Q(Q(N[d+20>>2]+N[d+4>>2])*Q(.5))-P);r=Q(r+Q(f*f));e=e+1|0;if((p|0)!=(e|0)){continue}break}break c}B=N[a+12>>2];u=N[a+8>>2];o=N[a+44>>2];q=N[a+40>>2];c=J[a+116>>2];k=N[a+4>>2];n=N[a+36>>2];r=Q(0);while(1){d=c+(e<<4)|0;f=Q(Q(Q(Q(Q(Q(L[d+6>>1])/n)+k)+Q(Q(Q(L[d>>1])/n)+k))*Q(.5))-x);w=Q(w+Q(f*f));f=Q(Q(Q(Q(Q(Q(L[d+10>>1])/o)+B)+Q(Q(Q(L[d+4>>1])/o)+B))*Q(.5))-O);s=Q(s+Q(f*f));f=Q(Q(Q(Q(Q(Q(L[d+8>>1])/q)+u)+Q(Q(Q(L[d+2>>1])/q)+u))*Q(.5))-P);r=Q(r+Q(f*f));e=e+1|0;if((p|0)!=(e|0)){continue}break}}k=Q(Q(1)/Q(E+Q(-1)));n=Q(k*w);f=Q(k*r);c=n(c?f:n)?2:c;r=Q(0);s=Q(0);w=Q(0);i=sa-96|0;J[i+28>>2]=0;v=p-b|0;d=(b|0)>=(p|0);g:{if(d){break g}if(!K[a+60|0]){e=J[a+76>>2];c=b;while(1){h=e+(c<<6)|0;w=Q(Q(Q(N[h+16>>2]+N[h>>2])*Q(.5))+w);r=Q(Q(Q(N[h+24>>2]+N[h+8>>2])*Q(.5))+r);s=Q(Q(Q(N[h+20>>2]+N[h+4>>2])*Q(.5))+s);c=c+1|0;if((p|0)!=(c|0)){continue}break}break g}u=N[a+12>>2];o=N[a+8>>2];q=N[a+44>>2];k=N[a+40>>2];e=J[a+116>>2];n=N[a+4>>2];f=N[a+36>>2];c=b;while(1){h=e+(c<<4)|0;w=Q(Q(Q(Q(Q(Q(L[h+6>>1])/f)+n)+Q(Q(Q(L[h>>1])/f)+n))*Q(.5))+w);r=Q(Q(Q(Q(Q(Q(L[h+10>>1])/q)+u)+Q(Q(Q(L[h+4>>1])/q)+u))*Q(.5))+r);s=Q(Q(Q(Q(Q(Q(L[h+8>>1])/k)+o)+Q(Q(Q(L[h+2>>1])/k)+o))*Q(.5))+s);c=c+1|0;if((p|0)!=(c|0)){continue}break}}f=Q(Q(1)/Q(v|0));N[i+24>>2]=f*r;N[i+20>>2]=f*s;N[i+16>>2]=f*w;e=b;if(!d){c=g<<2;B=N[c+(i+16|0)>>2];m=c+i|0;c=b;while(1){d=K[a+60|0];h:{if(d){g=J[a+116>>2]+(c<<4)|0;u=N[a+44>>2];o=N[a+12>>2];r=Q(Q(Q(L[g+4>>1])/u)+o);q=N[a+40>>2];k=N[a+8>>2];s=Q(Q(Q(L[g+2>>1])/q)+k);n=N[a+36>>2];f=N[a+4>>2];w=Q(Q(Q(L[g>>1])/n)+f);x=Q(Q(Q(L[g+10>>1])/u)+o);E=Q(Q(Q(L[g+8>>1])/q)+k);f=Q(Q(Q(L[g+6>>1])/n)+f);break h}g=J[a+76>>2]+(c<<6)|0;r=N[g+8>>2];s=N[g+4>>2];w=N[g>>2];x=N[g+24>>2];E=N[g+20>>2];f=N[g+16>>2]}J[i+12>>2]=0;N[i+8>>2]=Q(x+r)*Q(.5);N[i+4>>2]=Q(E+s)*Q(.5);N[i>>2]=Q(f+w)*Q(.5);if(B>2]){i:{if(d){g=J[a+116>>2];t=g+(c<<4)|0;h=t;d=J[h+12>>2];J[i+40>>2]=J[h+8>>2];J[i+44>>2]=d;d=J[h+4>>2];J[i+32>>2]=J[h>>2];J[i+36>>2]=d;h=g;g=e<<4;h=h+g|0;d=J[h+4>>2];J[t>>2]=J[h>>2];J[t+4>>2]=d;d=J[h+12>>2];J[t+8>>2]=J[h+8>>2];J[t+12>>2]=d;d=J[i+36>>2];g=g+J[a+116>>2]|0;J[g>>2]=J[i+32>>2];J[g+4>>2]=d;d=J[i+44>>2];J[g+8>>2]=J[i+40>>2];J[g+12>>2]=d;break i}h=J[a+76>>2];j=h+(c<<6)|0;d=J[j+60>>2];J[i+88>>2]=J[j+56>>2];J[i+92>>2]=d;d=J[j+52>>2];J[i+80>>2]=J[j+48>>2];J[i+84>>2]=d;d=J[j+44>>2];J[i+72>>2]=J[j+40>>2];J[i+76>>2]=d;d=J[j+36>>2];t=i- -64|0;g=t;J[g>>2]=J[j+32>>2];J[g+4>>2]=d;d=J[j+28>>2];J[i+56>>2]=J[j+24>>2];J[i+60>>2]=d;d=J[j+20>>2];J[i+48>>2]=J[j+16>>2];J[i+52>>2]=d;d=J[j+12>>2];J[i+40>>2]=J[j+8>>2];J[i+44>>2]=d;d=J[j+4>>2];J[i+32>>2]=J[j>>2];J[i+36>>2]=d;g=e<<6;h=g+h|0;d=J[h+4>>2];J[j>>2]=J[h>>2];J[j+4>>2]=d;d=J[h+12>>2];J[j+8>>2]=J[h+8>>2];J[j+12>>2]=d;d=J[h+20>>2];J[j+16>>2]=J[h+16>>2];J[j+20>>2]=d;d=J[h+28>>2];J[j+24>>2]=J[h+24>>2];J[j+28>>2]=d;d=J[h+36>>2];J[j+32>>2]=J[h+32>>2];J[j+36>>2]=d;d=J[h+44>>2];J[j+40>>2]=J[h+40>>2];J[j+44>>2]=d;d=J[h+52>>2];J[j+48>>2]=J[h+48>>2];J[j+52>>2]=d;d=J[h+60>>2];J[j+56>>2]=J[h+56>>2];J[j+60>>2]=d;d=J[i+36>>2];g=g+J[a+76>>2]|0;J[g>>2]=J[i+32>>2];J[g+4>>2]=d;d=J[i+44>>2];J[g+8>>2]=J[i+40>>2];J[g+12>>2]=d;d=J[i+52>>2];J[g+16>>2]=J[i+48>>2];J[g+20>>2]=d;d=J[i+60>>2];J[g+24>>2]=J[i+56>>2];J[g+28>>2]=d;d=J[t+4>>2];J[g+32>>2]=J[t>>2];J[g+36>>2]=d;d=J[i+76>>2];J[g+40>>2]=J[i+72>>2];J[g+44>>2]=d;d=J[i+84>>2];J[g+48>>2]=J[i+80>>2];J[g+52>>2]=d;d=J[i+92>>2];J[g+56>>2]=J[i+88>>2];J[g+60>>2]=d}e=e+1|0}c=c+1|0;if((p|0)!=(c|0)){continue}break}}c=(v>>1)+b|0;g=c;c=(v|0)/3|0;j=(b+c|0)>=(e|0)?g:(p+(c^-1)|0)<=(e|0)?g:e;F=J[a+56>>2];j:{if(K[a+60|0]){u=N[a+40>>2];o=N[a+8>>2];q=N[a+24>>2];k=N[a+44>>2];n=N[a+12>>2];f=N[a+28>>2];c=J[a+136>>2]+(F<<4)|0;B=Q(Q(N[a+20>>2]-N[a+4>>2])*N[a+36>>2]);k:{if(B=Q(0)){e=~~B>>>0;break k}e=0}I[c>>1]=e&65534;f=Q(Q(f-n)*k);l:{if(f=Q(0)){e=~~f>>>0;break l}e=0}I[c+4>>1]=e&65534;f=Q(Q(q-o)*u);m:{if(f=Q(0)){e=~~f>>>0;break m}e=0}I[c+2>>1]=e&65534;break j}c=J[a+24>>2];e=J[a+96>>2]+(F<<6)|0;J[e>>2]=J[a+20>>2];J[e+4>>2]=c;c=J[a+32>>2];J[e+8>>2]=J[a+28>>2];J[e+12>>2]=c}c=J[a+56>>2];n:{if(K[a+60|0]){k=N[a+40>>2];o=N[a+8>>2];n=N[a+44>>2];q=N[a+12>>2];c=J[a+136>>2]+(c<<4)|0;f=N[a+4>>2];f=Q(Q(Q(f-f)*N[a+36>>2])+Q(1));o:{if(f=Q(0)){e=~~f>>>0;break o}e=0}I[c+6>>1]=e|1;f=Q(Q(Q(q-q)*n)+Q(1));p:{if(f=Q(0)){e=~~f>>>0;break p}e=0}I[c+10>>1]=e|1;f=Q(Q(Q(o-o)*k)+Q(1));q:{if(f=Q(0)){e=~~f>>>0;break q}e=0}I[c+8>>1]=e|1;break n}e=J[a+96>>2]+(c<<6)|0;c=J[a+8>>2];J[e+16>>2]=J[a+4>>2];J[e+20>>2]=c;c=J[a+16>>2];J[e+24>>2]=J[a+12>>2];J[e+28>>2]=c}if((b|0)<(p|0)){c=b;while(1){r:{if(K[a+60|0]){h=J[a+116>>2]+(c<<4)|0;g=L[h+4>>1];d=L[h+2>>1];e=L[h>>1];u=N[a+44>>2];o=N[a+40>>2];q=N[a+36>>2];J[l+28>>2]=0;k=N[a+4>>2];N[l+16>>2]=Q(Q(e>>>0)/q)+k;n=N[a+8>>2];N[l+20>>2]=Q(Q(d>>>0)/o)+n;f=N[a+12>>2];N[l+24>>2]=Q(Q(g>>>0)/u)+f;g=L[h+6>>1];d=L[h+8>>1];e=L[h+10>>1];J[l+12>>2]=0;N[l+8>>2]=f+Q(Q(e>>>0)/u);N[l+4>>2]=n+Q(Q(d>>>0)/o);N[l>>2]=k+Q(Q(g>>>0)/q);break r}d=J[a+76>>2]+(c<<6)|0;e=J[d+12>>2];J[l+24>>2]=J[d+8>>2];J[l+28>>2]=e;e=J[d+4>>2];J[l+16>>2]=J[d>>2];J[l+20>>2]=e;e=J[d+28>>2];J[l+8>>2]=J[d+24>>2];J[l+12>>2]=e;e=J[d+20>>2];J[l>>2]=J[d+16>>2];J[l+4>>2]=e}y=J[a+56>>2];s:{if(K[a+60|0]){q=N[a+12>>2];k=N[a+44>>2];f=Q(Q(N[l+24>>2]-q)*k);t:{if(f=Q(0)){m=~~f>>>0;break t}m=0}n=N[a+8>>2];f=N[a+40>>2];o=Q(Q(N[l+20>>2]-n)*f);u:{if(o=Q(0)){h=~~o>>>0;break u}h=0}k=Q(Q(k*Q(N[l+8>>2]-q))+Q(1));v:{if(k=Q(0)){g=~~k>>>0;break v}g=0}f=Q(Q(f*Q(N[l+4>>2]-n))+Q(1));w:{if(f=Q(0)){d=~~f>>>0;break w}d=0}n=N[a+4>>2];f=N[a+36>>2];k=Q(Q(N[l+16>>2]-n)*f);x:{if(k=Q(0)){e=~~k>>>0;break x}e=0}v=e&65534;i=J[a+136>>2];z=i+(y<<4)|0;t=v>>>0>=L[z>>1];f=Q(Q(f*Q(N[l>>2]-n))+Q(1));y:{if(f=Q(0)){e=~~f>>>0;break y}e=0}if(!t){I[z>>1]=v}e=e|1;t=i+(y<<4)|0;if(e>>>0>L[t+6>>1]){I[t+6>>1]=e}e=h&65534;if(e>>>0>1]){I[z+2>>1]=e}e=d|1;h=i+(y<<4)|0;if(e>>>0>L[h+8>>1]){I[h+8>>1]=e}e=m&65534;if(e>>>0>1]){I[z+4>>1]=e}e=g|1;d=i+(y<<4)|0;if(e>>>0<=L[d+10>>1]){break s}I[d+10>>1]=e;break s}f=N[l+16>>2];e=J[a+96>>2];d=e+(y<<6)|0;if(f>2]){N[d>>2]=f}f=N[l+20>>2];if(f>2]){N[d+4>>2]=f}f=N[l+24>>2];if(f>2]){N[d+8>>2]=f}f=N[l+28>>2];if(f>2]){N[d+12>>2]=f}f=N[l>>2];e=e+(y<<6)|0;if(f>N[e+16>>2]){N[e+16>>2]=f}f=N[l+4>>2];if(f>N[e+20>>2]){N[e+20>>2]=f}f=N[l+8>>2];if(f>N[e+24>>2]){N[e+24>>2]=f}f=N[l+12>>2];if(!(f>N[e+28>>2])){break s}N[e+28>>2]=f}c=c+1|0;if((p|0)!=(c|0)){continue}break}}G=J[a+56>>2]+1|0;J[a+56>>2]=G;Hc(a,b,j);y=J[a+56>>2];Hc(a,j,p);c=K[a+60|0];z=J[a+56>>2]-A|0;if(!(!c|(z|0)<129)){p=0;A=J[a+136>>2];i=A+(y<<4)|0;b=J[i+12>>2];t=(b|0)>=0?1:0-b|0;j=A+(G<<4)|0;b=J[j+12>>2];h=(b|0)>=0?1:0-b|0;if(h>>>0<=128){e=J[a+152>>2];c=e;z:{if((c|0)!=J[a+156>>2]){break z}v=c?e<<1:1;if((v|0)<=(c|0)){break z}if(v){J[8456]=J[8456]+1;M=ua[J[8258]](v<<5,16)|0;b=J[a+152>>2]}else{b=e}A:{if((b|0)<=0){break A}if((b|0)!=1){g=b&-2;while(1){m=C<<5;d=m+M|0;D=J[a+160>>2]+m|0;c=J[D+4>>2];J[d>>2]=J[D>>2];J[d+4>>2]=c;c=J[D+28>>2];J[d+24>>2]=J[D+24>>2];J[d+28>>2]=c;c=J[D+20>>2];J[d+16>>2]=J[D+16>>2];J[d+20>>2]=c;c=J[D+12>>2];J[d+8>>2]=J[D+8>>2];J[d+12>>2]=c;c=m|32;d=c+M|0;m=c+J[a+160>>2]|0;c=J[m+4>>2];J[d>>2]=J[m>>2];J[d+4>>2]=c;c=J[m+12>>2];J[d+8>>2]=J[m+8>>2];J[d+12>>2]=c;c=J[m+20>>2];J[d+16>>2]=J[m+16>>2];J[d+20>>2]=c;c=J[m+28>>2];J[d+24>>2]=J[m+24>>2];J[d+28>>2]=c;C=C+2|0;p=p+2|0;if((g|0)!=(p|0)){continue}break}}if(!(b&1)){break A}b=C<<5;c=b+M|0;d=b+J[a+160>>2]|0;b=J[d+4>>2];J[c>>2]=J[d>>2];J[c+4>>2]=b;b=J[d+28>>2];J[c+24>>2]=J[d+24>>2];J[c+28>>2]=b;b=J[d+20>>2];J[c+16>>2]=J[d+16>>2];J[c+20>>2]=b;b=J[d+12>>2];J[c+8>>2]=J[d+8>>2];J[c+12>>2]=b}b=J[a+160>>2];if(!(b?!b|!K[a+164|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+160>>2]=M;H[a+164|0]=1;J[a+156>>2]=v;c=J[a+152>>2]}J[a+152>>2]=c+1;c=J[a+160>>2]+(e<<5)|0;I[c>>1]=L[j>>1];I[c+2>>1]=L[j+2>>1];I[c+4>>1]=L[j+4>>1];b=A+(G<<4)|0;I[c+6>>1]=L[b+6>>1];I[c+8>>1]=L[b+8>>1];b=L[b+10>>1];J[c+16>>2]=h;J[c+12>>2]=G;I[c+10>>1]=b}if((t|0)<=128){e=J[a+152>>2];c=e;B:{if((c|0)!=J[a+156>>2]){break B}v=c?e<<1:1;if((v|0)<=(c|0)){break B}C:{if(!v){b=0;c=e;break C}J[8456]=J[8456]+1;b=ua[J[8258]](v<<5,16)|0;c=J[a+152>>2]}D:{if((c|0)<=0){break D}C=0;if((c|0)!=1){h=c&-2;p=0;while(1){m=C<<5;g=m+b|0;j=m+J[a+160>>2]|0;d=J[j+4>>2];J[g>>2]=J[j>>2];J[g+4>>2]=d;d=J[j+28>>2];J[g+24>>2]=J[j+24>>2];J[g+28>>2]=d;d=J[j+20>>2];J[g+16>>2]=J[j+16>>2];J[g+20>>2]=d;d=J[j+12>>2];J[g+8>>2]=J[j+8>>2];J[g+12>>2]=d;d=m|32;g=d+b|0;m=d+J[a+160>>2]|0;d=J[m+4>>2];J[g>>2]=J[m>>2];J[g+4>>2]=d;d=J[m+12>>2];J[g+8>>2]=J[m+8>>2];J[g+12>>2]=d;d=J[m+20>>2];J[g+16>>2]=J[m+16>>2];J[g+20>>2]=d;d=J[m+28>>2];J[g+24>>2]=J[m+24>>2];J[g+28>>2]=d;C=C+2|0;p=p+2|0;if((h|0)!=(p|0)){continue}break}}if(!(c&1)){break D}c=C<<5;d=c+b|0;g=c+J[a+160>>2]|0;c=J[g+4>>2];J[d>>2]=J[g>>2];J[d+4>>2]=c;c=J[g+28>>2];J[d+24>>2]=J[g+24>>2];J[d+28>>2]=c;c=J[g+20>>2];J[d+16>>2]=J[g+16>>2];J[d+20>>2]=c;c=J[g+12>>2];J[d+8>>2]=J[g+8>>2];J[d+12>>2]=c}c=J[a+160>>2];if(!(c?!c|!K[a+164|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}J[a+160>>2]=b;H[a+164|0]=1;J[a+156>>2]=v;c=J[a+152>>2]}J[a+152>>2]=c+1;c=J[a+160>>2]+(e<<5)|0;I[c>>1]=L[i>>1];I[c+2>>1]=L[i+2>>1];I[c+4>>1]=L[i+4>>1];b=A+(y<<4)|0;I[c+6>>1]=L[b+6>>1];I[c+8>>1]=L[b+8>>1];b=L[b+10>>1];J[c+16>>2]=t;J[c+12>>2]=y;I[c+10>>1]=b}J[a+168>>2]=J[a+152>>2];c=K[a+60|0]}if(c&255){J[(J[a+136>>2]+(F<<4)|0)+12>>2]=0-z;break a}J[(J[a+96>>2]+(F<<6)|0)+32>>2]=z}sa=l+32|0}function Cc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0;u=sa-16|0;sa=u;a:{b:{c:{d:{e:{f=c-b|0;switch(f|0){case 1:break c;case 2:break d;case 0:break e;default:break b}}J[d>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;break a}c=J[J[a+92>>2]+(b<<2)>>2];b=c+112|0;f:{g=J[c+88>>2];j=J[c+200>>2];k=(g|0)!=(j|0);f=J[c+204>>2];e=J[c+92>>2];g:{if(!(k|(f|0)!=(e|0))){if(J[c+96>>2]==J[c+208>>2]){break f}e=J[c+96>>2]>J[c+208>>2];f=(e?112:0)+c|0;J[f>>2]=f;f=e?b:c;J[f+4>>2]=f;J[d+4>>2]=f;J[d>>2]=f;b=e?c:b;e=f;c=e;break g}J[c+4>>2]=b;J[c>>2]=b;J[c+116>>2]=c;J[c+112>>2]=c;s=(e|0)<(f|0);i=s&(g|0)==(j|0);g=(g|0)<(j|0);j=i|g;J[d+4>>2]=j?b:c;J[d>>2]=j?c:b;f=s|g&(k&(e|0)==(f|0));e=f?b:c;f=f?c:b}J[d+12>>2]=e;J[d+8>>2]=f;a=Dc(a,c,b);J[a+4>>2]=a;J[a>>2]=a;J[c+8>>2]=a;a=J[a+8>>2];J[a+4>>2]=a;J[a>>2]=a;J[b+8>>2]=a;break a}J[c+8>>2]=0;J[c+4>>2]=c;J[c>>2]=c;J[d+12>>2]=c;J[d+8>>2]=c;J[d+4>>2]=c;J[d>>2]=c;break a}a=J[J[a+92>>2]+(b<<2)>>2];J[a+8>>2]=0;J[a+4>>2]=a;J[a>>2]=a;J[d+12>>2]=a;J[d+8>>2]=a;J[d+4>>2]=a;J[d>>2]=a;break a}e=((f|0)/2|0)+b|0;f=e;h:{if((e|0)>=(c|0)){break h}j=J[a+92>>2];f=J[(j+(e<<2)|0)-4>>2];k=J[f+88>>2];s=J[f+96>>2];i=J[f+92>>2];f=e;while(1){g=J[j+(f<<2)>>2];if((k|0)!=J[g+88>>2]|(i|0)!=J[g+92>>2]|(s|0)!=J[g+96>>2]){break h}f=f+1|0;if((f|0)<(c|0)){continue}break}f=c}Cc(a,b,e,d);J[u+8>>2]=0;J[u+12>>2]=0;J[u>>2]=0;J[u+4>>2]=0;Cc(a,f,c,u);o=a;c=0;h=sa-128|0;sa=h;i:{if(!J[u+4>>2]){break i}if(!J[d+4>>2]){a=J[u+4>>2];J[d>>2]=J[u>>2];J[d+4>>2]=a;a=J[u+12>>2];J[d+8>>2]=J[u+8>>2];J[d+12>>2]=a;break i}J[o+100>>2]=J[o+100>>2]-1;J[h+124>>2]=0;J[h+120>>2]=0;k=0;i=d;a=J[d+12>>2];j=J[u+8>>2];j:{k:{l:{if(J[a+88>>2]!=J[j+88>>2]|J[a+92>>2]!=J[j+92>>2]){break l}d=J[j+4>>2];if((d|0)==(j|0)){J[h+124>>2]=a;b=J[j+8>>2];a=0;if(!b){break k}J[h+120>>2]=J[b+12>>2];a=0;break j}a=J[j>>2];J[d>>2]=a;J[a+4>>2]=d;if(J[u>>2]==(j|0)){g=u;f=J[a+88>>2];e=J[d+88>>2];b=a;m:{if((f|0)<(e|0)){break m}if((e|0)==(f|0)){b=a;if(J[a+92>>2]>2]){break m}}b=d}J[g>>2]=b}if(J[u+4>>2]!=(j|0)){break l}b=J[a+88>>2];f=J[d+88>>2];J[u+4>>2]=(b|0)>(f|0)|(b|0)==(f|0)&J[a+92>>2]>J[d+92>>2]?a:d}m=J[u>>2];w=J[i>>2];B=J[i+4>>2];a=B;z=J[u+4>>2];d=z;j=0;s=1;while(1){l=J[a+88>>2];f=P(J[d+88>>2]-l|0,s);n:{if((f|0)>0){while(1){b=d;g=J[d+92>>2];e=f;while(1){o:{f=J[a+92>>2];l=g-f|0;d=J[(t?a:a+4|0)>>2];if((d|0)==(a|0)){break o}p=J[d+92>>2]-f|0;if((p|0)>0){break o}n=J[d+88>>2];f=P(n-J[a+88>>2]|0,s);if((P(e,p)|0)>(P(f,l)|0)|(f|0)>=0?f:0){break o}e=P(J[b+88>>2]-n|0,s);a=d;continue}break}d=J[(t?b:b+4|0)>>2];if((d|0)==(b|0)){break n}p=J[d+88>>2];f=P(p-J[a+88>>2]|0,s);if((f|0)<=0){break n}n=J[d+92>>2]-g|0;if((n|0)>=0){break n}g=P(p-J[b+88>>2]|0,s);if(!g){continue}if((g|0)>=0){break n}if((P(e,n)|0)<(P(g,l)|0)){continue}break n}}p:{if((f|0)<0){q:while(1){l=J[d+92>>2];b=J[(t?d+4|0:d)>>2];while(1){g=f;e=a;n=J[a+92>>2];p=l-n|0;r:{if((b|0)==(d|0)){break r}f=J[b+92>>2]-l|0;if((f|0)<0){break r}q=J[b+88>>2];a=P(q-J[d+88>>2]|0,s);if((P(f,g)|0)>(P(a,p)|0)|(a|0)>=0?a:0){break r}f=P(q-J[e+88>>2]|0,s);d=b;a=e;continue q}a=J[(t?e+4|0:e)>>2];if((e|0)==(a|0)){break p}q=J[a+88>>2];f=P(J[d+88>>2]-q|0,s);if((f|0)>=0){break p}A=J[a+92>>2]-n|0;if((A|0)<=0){break p}n=P(q-J[e+88>>2]|0,s);if(!n){continue}if((n|0)>=0){break p}if((P(g,A)|0)<(P(n,p)|0)){continue}break}break p}}e=J[a+92>>2];f=a;s:{if(!t){while(1){g=f;f=J[f+4>>2];if((f|0)==(a|0)|(l|0)!=J[f+88>>2]){break s}b=e;e=J[f+92>>2];if((b|0)>=(e|0)){continue}break s}}while(1){g=f;f=J[f>>2];if((f|0)==(a|0)|(l|0)!=J[f+88>>2]){break s}b=e;e=J[f+92>>2];if((b|0)>=(e|0)){continue}break}}f=J[d+92>>2];e=d;a=d;t:{if(!t){while(1){b=e;e=J[e>>2];if((e|0)==(d|0)|(l|0)!=J[e+88>>2]){break t}a=f;f=J[e+92>>2];if((a|0)<=(f|0)){continue}break t}}while(1){b=a;a=J[a+4>>2];if((d|0)==(a|0)|(l|0)!=J[a+88>>2]){break t}e=f;f=J[a+92>>2];if((e|0)<=(f|0)){continue}break}}a=g;break n}b=d;a=e}if(!t){s=-1;j=b;k=a;a=w;b=m}d=b;t=t+1|0;if((t|0)!=2){continue}break}J[a+4>>2]=d;J[d>>2]=a;J[k>>2]=j;J[j+4>>2]=k;if(J[m+88>>2]>2]){J[i>>2]=m}if(J[z+88>>2]>=J[B+88>>2]){J[i+4>>2]=z}J[i+12>>2]=J[u+12>>2];J[h+124>>2]=k;a=1}J[h+120>>2]=j}w=J[h+120>>2];u:{if(a){z=J[h+124>>2];i=J[z+96>>2];n=J[w+96>>2];p=J[z+92>>2];j=J[w+92>>2];d=J[z+8>>2];q=J[z+88>>2];B=J[w+88>>2];J[h+80>>2]=0;a=n-i|0;g=a>>31;b=j-p|0;m=b>>31;k=us(a,g,b,m);A=ta;e=B-q|0;f=0-e|0;l=f>>31;e=us(f,l,e,e>>31);t=ta;D=us(b,m,b,m);s=e-D|0;D=t-(ta+(e>>>0>>0)|0)|0;a=us(f,l,a,g);t=0-a|0;E=0-(ta+((a|0)!=0)|0)|0;if(d){a=d;while(1){r=J[a+12>>2];v=J[r+92>>2];e=v-p|0;g=e;y=e>>31;x=us(e,y,f,l);C=ta;I=J[r+88>>2];e=I-q|0;K=e>>31;G=us(b,m,e,K);v:{if((x|0)!=(0-G|0)|(0-(ta+((G|0)!=0)|0)|0)!=(C|0)){break v}g=us(k,A,g,y);y=ta;x=us(t,E,e,K);g=x+g|0;e=ta+y|0;e=g>>>0>>0?e+1|0:e;G=g;y=J[r+96>>2];g=y-i|0;x=us(s,D,g,g>>31);r=G+x|0;g=ta+e|0;g=r>>>0>>0?g+1|0:g;if(!r&(g|0)<=0|(g|0)<0){break v}w:{if(!c){break w}e=J[c+4>>2];if(J[c>>2]==(a|0)){if((a|0)!=(e|0)){break v}e=J[c+12>>2];g=J[J[a+8>>2]+12>>2];x=J[g+96>>2];r=J[e+96>>2]-x|0;C=J[g+92>>2];y=y-x|0;v=P(r,C-v|0)+P(y,J[e+92>>2]-C|0)|0;v=us(v,v>>31,b,m);x=ta;g=J[g+88>>2];e=P(y,g-J[e+88>>2]|0)+P(r,I-g|0)|0;r=us(e,e>>31,f,l);e=r+v|0;g=ta+x|0;g=e>>>0>>0?g+1|0:g;if(!e&(g|0)<=0|(g|0)<0){break w}break v}if((a|0)!=(e|0)){break v}}c=a}a=J[a>>2];if((d|0)!=(a|0)){continue}break}J[h+80>>2]=c}e=J[w+8>>2];d=0;J[h+56>>2]=0;if(e){a=e;while(1){p=J[a+12>>2];q=J[p+92>>2];g=q-j|0;i=g;r=g>>31;v=us(g,r,f,l);y=ta;x=J[p+88>>2];g=x-B|0;C=g>>31;I=us(b,m,g,C);x:{if((v|0)!=(0-I|0)|(0-(ta+((I|0)!=0)|0)|0)!=(y|0)){break x}i=us(k,A,i,r);r=ta;v=us(t,E,g,C);i=v+i|0;g=ta+r|0;g=i>>>0>>0?g+1|0:g;G=i;r=J[p+96>>2];i=r-n|0;p=us(s,D,i,i>>31);i=G+p|0;g=ta+g|0;g=i>>>0

>>0?g+1|0:g;if(!i&(g|0)<=0|(g|0)<0){break x}y:{if(!d){break y}if(J[d>>2]!=(a|0)){break x}if(J[d+4>>2]!=(a|0)){break y}g=J[d+12>>2];i=J[J[a+8>>2]+12>>2];v=J[i+96>>2];p=J[g+96>>2]-v|0;y=J[i+92>>2];r=r-v|0;q=P(p,y-q|0)+P(r,J[g+92>>2]-y|0)|0;q=us(q,q>>31,b,m);v=ta;i=J[i+88>>2];g=P(r,i-J[g+88>>2]|0)+P(p,x-i|0)|0;p=us(g,g>>31,f,l);i=p+q|0;g=ta+v|0;g=i>>>0

>>0?g+1|0:g;if(!i&(g|0)<=0|(g|0)<0){break x}}d=a}a=J[a>>2];if((e|0)!=(a|0)){continue}break}J[h+56>>2]=d}z:{if(!(c|d)){break z}he(o,z,w,h+80|0,h+56|0);a=J[h+80>>2];if(a){z=J[a+12>>2];J[h+124>>2]=z}a=J[h+56>>2];if(!a){break z}w=J[a+12>>2];J[h+120>>2]=w;n=J[w+96>>2];j=J[w+92>>2];B=J[w+88>>2]}a=n+1|0;break u}B=J[w+88>>2]+1|0;j=J[w+92>>2];z=J[h+124>>2];a=J[w+96>>2]}p=a;a=z;f=w;i=0;g=0;s=0;k=1;c=0;b=0;t=0;while(1){n=J[f+96>>2];d=J[a+96>>2];e=J[a+92>>2];l=J[f+92>>2];m=J[a+88>>2];q=J[f+88>>2];J[h+116>>2]=-1;l=l-e|0;J[h+108>>2]=l;n=n-d|0;J[h+112>>2]=n;q=q-m|0;J[h+104>>2]=q;E=j-e|0;e=p-d|0;d=P(E,n)-P(e,l)|0;A=d>>31;J[h+80>>2]=d;J[h+84>>2]=A;m=B-m|0;e=P(e,q)-P(m,n)|0;D=e>>31;J[h+88>>2]=e;J[h+92>>2]=D;m=P(l,m)-P(q,E)|0;E=m>>31;J[h+96>>2]=m;J[h+100>>2]=E;v=q>>31;r=us(e,D,q,v);y=ta;x=l>>31;C=us(d,A,l,x);J[h+72>>2]=r-C;J[h+76>>2]=y-(ta+(r>>>0>>0)|0);G=A;A=n>>31;d=us(d,G,n,A);r=ta;q=us(m,E,q,v);J[h+64>>2]=d-q;J[h+68>>2]=r-(ta+(d>>>0>>0)|0);d=us(l,x,m,E);m=ta;e=us(e,D,n,A);J[h+56>>2]=d-e;J[h+60>>2]=m-(ta+(d>>>0>>0)|0);J[h+48>>2]=0;J[h+40>>2]=0;J[h+44>>2]=0;J[h+32>>2]=0;J[h+36>>2]=0;d=h+104|0;e=h+80|0;m=h+56|0;l=ge(o,0,a,d,e,m,h+32|0);J[h+24>>2]=0;J[h+16>>2]=0;J[h+20>>2]=0;J[h+8>>2]=0;J[h+12>>2]=0;m=ge(o,1,f,d,e,m,h+8|0);if(!(m|l)){b=Dc(o,a,f);J[b+4>>2]=b;J[b>>2]=b;J[a+8>>2]=b;a=J[b+8>>2];J[a+4>>2]=a;J[a>>2]=a;J[f+8>>2]=a;break i}n=l?-1:1;if(!(!l|!m)){n=lb(h+32|0,h+8|0)}A:{B:{C:{if(k&1){break C}if((n|0)>=0){if(J[h+16>>2]|J[h+20>>2]|J[h+24>>2]>=0){break C}k=i;f=g;e=c;d=b;break B}if(J[h+40>>2]|J[h+44>>2]|J[h+48>>2]>=0){break C}J[h+4>>2]=l;e=c;d=b;break A}e=Dc(o,a,f);d=e;if(c){J[c+4>>2]=e;d=b}J[e>>2]=c;k=J[e+8>>2];f=k;if(i){J[i>>2]=k;f=g}J[k+4>>2]=i}J[h+4>>2]=l;J[h>>2]=m;c=m;if(!n){he(o,J[h+124>>2],J[h+120>>2],h+4|0,h);c=J[h>>2]}if(!(!c|(n|0)<0)){D:{E:{if(F){a=J[F>>2];if((m|0)!=(a|0)){while(1){i=J[a+8>>2];b=0;j=0;g=J[a>>2];if((g|0)!=(a|0)){J[g+4>>2]=J[a+4>>2];J[J[a+4>>2]>>2]=g;j=g}J[J[i+12>>2]+8>>2]=j;j=J[i>>2];if((j|0)!=(i|0)){J[j+4>>2]=J[i+4>>2];J[J[i+4>>2]>>2]=j;b=j}J[J[a+12>>2]+8>>2]=b;J[a+16>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0;J[a>>2]=J[o+56>>2];J[o+56>>2]=a;J[i+16>>2]=0;J[i+8>>2]=0;J[i+12>>2]=0;J[i>>2]=0;J[i+4>>2]=0;J[i>>2]=J[o+56>>2];J[o+56>>2]=i;J[o+116>>2]=J[o+116>>2]-1;a=g;if((m|0)!=(a|0)){continue}break}}if(k){break E}break D}if(!k){s=m;break D}F=J[m+4>>2];s=f}J[F>>2]=f;J[f+4>>2]=F;J[k>>2]=m;J[m+4>>2]=k;c=J[h>>2];f=0}g=f;a=J[h+120>>2];p=J[a+96>>2];j=J[a+92>>2];B=J[a+88>>2];J[h+120>>2]=J[c+12>>2];F=J[c+8>>2];i=0;break A}i=k;g=f}F:{G:{if((n|0)<=0){n=J[h+4>>2];if(n){break G}}a=J[h+124>>2];break F}H:{I:{if(H){a=J[H+4>>2];if((l|0)!=(a|0)){while(1){k=J[a+8>>2];j=J[a+4>>2];b=0;c=0;f=J[a>>2];if((f|0)!=(a|0)){J[f+4>>2]=j;J[J[a+4>>2]>>2]=f;c=f}J[J[k+12>>2]+8>>2]=c;c=J[k>>2];if((c|0)!=(k|0)){J[c+4>>2]=J[k+4>>2];J[J[k+4>>2]>>2]=c;b=c}J[J[a+12>>2]+8>>2]=b;J[a+16>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0;J[a>>2]=J[o+56>>2];J[o+56>>2]=a;J[k+16>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k>>2]=J[o+56>>2];J[o+56>>2]=k;J[o+116>>2]=J[o+116>>2]-1;a=j;if((l|0)!=(a|0)){continue}break}}if(!e){break H}J[d>>2]=H;a=H+4|0;break I}if(!e){t=l;break H}a=J[l>>2];J[d>>2]=a;t=d;a=a+4|0}J[a>>2]=d;J[l>>2]=e;J[e+4>>2]=l;d=0;n=J[h+4>>2]}a=J[h+124>>2];p=J[a+96>>2];j=J[a+92>>2];B=J[a+88>>2];a=J[n+12>>2];J[h+124>>2]=a;H=J[n+8>>2];e=0}f=J[h+120>>2];if((a|0)!=(z|0)|(w|0)!=(f|0)){k=0;c=e;b=d;continue}else{J:{if(!H){J[d>>2]=e;J[e+4>>2]=d;J[J[h+124>>2]+8>>2]=e;break J}a=J[H+4>>2];if((t|0)!=(a|0)){while(1){k=J[a+8>>2];f=J[a+4>>2];b=0;c=J[a>>2];if((c|0)!=(a|0)){J[c+4>>2]=f;J[J[a+4>>2]>>2]=c;b=c}J[J[k+12>>2]+8>>2]=b;j=J[k>>2];K:{if((k|0)==(j|0)){j=0;break K}J[j+4>>2]=J[k+4>>2];J[J[k+4>>2]>>2]=j}J[J[a+12>>2]+8>>2]=j;J[a+16>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0;J[a>>2]=J[o+56>>2];J[o+56>>2]=a;J[k+16>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k>>2]=J[o+56>>2];J[o+56>>2]=k;J[o+116>>2]=J[o+116>>2]-1;a=f;if((t|0)!=(a|0)){continue}break}}if(!e){break J}J[d>>2]=H;J[H+4>>2]=d;J[t>>2]=e;J[e+4>>2]=t}if(!F){J[i>>2]=g;J[g+4>>2]=i;J[J[h+120>>2]+8>>2]=i;break i}a=J[F>>2];if((s|0)!=(a|0)){while(1){c=J[a+8>>2];j=0;b=J[a>>2];if((b|0)!=(a|0)){J[b+4>>2]=J[a+4>>2];J[J[a+4>>2]>>2]=b;j=b}J[J[c+12>>2]+8>>2]=j;j=J[c>>2];L:{if((c|0)==(j|0)){j=0;break L}J[j+4>>2]=J[c+4>>2];J[J[c+4>>2]>>2]=j}J[J[a+12>>2]+8>>2]=j;J[a+16>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0;J[a>>2]=J[o+56>>2];J[o+56>>2]=a;J[c+16>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c>>2]=J[o+56>>2];J[o+56>>2]=c;J[o+116>>2]=J[o+116>>2]-1;a=b;if((s|0)!=(a|0)){continue}break}}if(!i){break i}J[F>>2]=g;J[g+4>>2]=F;J[i>>2]=s;J[s+4>>2]=i}break}}sa=h+128|0}sa=u+16|0}function Rd(a){var b=0,c=0,d=0,e=Q(0),f=Q(0),g=0,h=Q(0),i=Q(0),j=Q(0),k=0,l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=0,t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=0,A=0,B=0,C=Q(0),D=Q(0),E=0,F=Q(0),G=Q(0),I=Q(0),L=Q(0),M=Q(0),O=Q(0),P=Q(0),R=Q(0),S=Q(0),T=Q(0),U=Q(0),V=0,W=0,X=0,Y=0,Z=Q(0),_=Q(0),$=0;k=sa-16|0;sa=k;a:{if(!K[a+356|0]){c=K[a+312|0];break a}H[a+356|0]=0;H[a+352|0]=0;J[a+344>>2]=0;J[a+348>>2]=0;J[a+336>>2]=0;J[a+340>>2]=0;d=K[a+332|0]&-16;H[a+332|0]=d;b=a+316|0;b:{c:{switch(J[a>>2]-1|0){case 0:c=J[a+168>>2];J[a+260>>2]=J[a+164>>2];J[a+264>>2]=c;c=J[a+88>>2];J[a+244>>2]=J[a+84>>2];J[a+248>>2]=c;c=J[a+176>>2];J[a+268>>2]=J[a+172>>2];J[a+272>>2]=c;c=J[a+96>>2];J[a+252>>2]=J[a+92>>2];J[a+256>>2]=c;H[a+352|0]=0;J[a+288>>2]=0;N[a+280>>2]=N[a+248>>2]-N[a+264>>2];N[a+276>>2]=N[a+244>>2]-N[a+260>>2];N[a+284>>2]=N[a+252>>2]-N[a+268>>2];J[a+344>>2]=0;J[a+348>>2]=0;J[a+336>>2]=1065353216;J[a+340>>2]=0;c=1;break b;case 1:g=1;j=N[a+8>>2];e=Q(N[a+24>>2]-j);i=N[a+12>>2];h=Q(N[a+28>>2]-i);m=Q(h*Q(Q(0)-i));l=N[a+4>>2];i=Q(N[a+20>>2]-l);j=Q(m+Q(Q(i*Q(Q(0)-l))+Q(Q(Q(0)-j)*e)));b=j>Q(0);c=1;d:{if(!b){break d}f=Q(Q(h*h)+Q(Q(i*i)+Q(e*e)));if(!(f>j)){f=Q(1);c=2;break d}f=Q(j/f);c=3}J[a+344>>2]=0;J[a+348>>2]=0;N[a+340>>2]=f;j=Q(Q(1)-f);N[a+336>>2]=j;H[a+332|0]=d|c;J[a+256>>2]=0;e=N[a+92>>2];l=Q(e+Q(f*Q(N[a+108>>2]-e)));N[a+252>>2]=l;e=N[a+88>>2];n=Q(e+Q(f*Q(N[a+104>>2]-e)));N[a+248>>2]=n;e=N[a+84>>2];o=Q(e+Q(f*Q(N[a+100>>2]-e)));N[a+244>>2]=o;m=N[a+180>>2];q=N[a+184>>2];e=N[a+168>>2];r=N[a+188>>2];h=N[a+172>>2];i=N[a+164>>2];J[a+288>>2]=0;h=Q(h+Q(f*Q(r-h)));N[a+284>>2]=l-h;e=Q(e+Q(f*Q(q-e)));N[a+280>>2]=n-e;i=Q(i+Q(f*Q(m-i)));N[a+276>>2]=o-i;J[a+272>>2]=0;N[a+268>>2]=h;N[a+264>>2]=e;N[a+260>>2]=i;if(!b){J[a>>2]=1;g=0}if(!(c&1)){J[a>>2]=g;c=(g<<4)+a|0;b=J[c+16>>2];J[a+12>>2]=J[c+12>>2];J[a+16>>2]=b;b=J[c+8>>2];J[a+4>>2]=J[c+4>>2];J[a+8>>2]=b;b=J[c+96>>2];J[a+92>>2]=J[c+92>>2];J[a+96>>2]=b;b=J[c+88>>2];J[a+84>>2]=J[c+84>>2];J[a+88>>2]=b;b=J[c+176>>2];J[a+172>>2]=J[c+172>>2];J[a+176>>2]=b;b=J[c+168>>2];J[a+164>>2]=J[c+164>>2];J[a+168>>2]=b}c=j>=Q(0)&f>=Q(0);break b;case 2:J[k+8>>2]=0;J[k+12>>2]=0;J[k>>2]=0;J[k+4>>2]=0;qb(k,a+4|0,a+20|0,a+36|0,b);J[a+256>>2]=0;f=N[a+336>>2];e=N[a+340>>2];h=N[a+344>>2];i=Q(Q(Q(f*N[a+92>>2])+Q(e*N[a+108>>2]))+Q(h*N[a+124>>2]));N[a+252>>2]=i;j=Q(Q(Q(f*N[a+88>>2])+Q(e*N[a+104>>2]))+Q(h*N[a+120>>2]));N[a+248>>2]=j;l=Q(Q(Q(f*N[a+84>>2])+Q(e*N[a+100>>2]))+Q(h*N[a+116>>2]));N[a+244>>2]=l;n=N[a+180>>2];o=N[a+196>>2];m=N[a+168>>2];q=N[a+184>>2];r=N[a+200>>2];u=N[a+172>>2];v=N[a+188>>2];w=N[a+204>>2];x=N[a+164>>2];J[a+288>>2]=0;p=i;i=Q(Q(Q(f*u)+Q(e*v))+Q(h*w));N[a+284>>2]=p-i;p=j;j=Q(Q(Q(f*m)+Q(e*q))+Q(h*r));N[a+280>>2]=p-j;m=l;l=Q(Q(Q(f*x)+Q(e*n))+Q(h*o));N[a+276>>2]=m-l;J[a+272>>2]=0;N[a+268>>2]=i;N[a+264>>2]=j;N[a+260>>2]=l;e:{f:{g:{h:{i:{b=J[a>>2];j:{if((b|0)>=4){g=K[a+332|0];if(g&8){c=b;break j}c=b-1|0;J[a>>2]=c;b=(c<<4)+a|0;d=J[b+16>>2];J[a+60>>2]=J[b+12>>2];J[a+64>>2]=d;d=J[b+8>>2];J[a+52>>2]=J[b+4>>2];J[a+56>>2]=d;d=J[b+88>>2];J[a+132>>2]=J[b+84>>2];J[a+136>>2]=d;d=J[b+96>>2];J[a+140>>2]=J[b+92>>2];J[a+144>>2]=d;d=J[b+176>>2];J[a+220>>2]=J[b+172>>2];J[a+224>>2]=d;d=J[b+168>>2];J[a+212>>2]=J[b+164>>2];J[a+216>>2]=d;break j}c=3;if((b|0)!=3){break i}g=K[a+332|0]}if(g&4){break h}c=c-1|0;J[a>>2]=c;b=(c<<4)+a|0;d=J[b+16>>2];J[a+44>>2]=J[b+12>>2];J[a+48>>2]=d;d=J[b+8>>2];J[a+36>>2]=J[b+4>>2];J[a+40>>2]=d;d=J[b+96>>2];J[a+124>>2]=J[b+92>>2];J[a+128>>2]=d;d=J[b+88>>2];J[a+116>>2]=J[b+84>>2];J[a+120>>2]=d;d=J[b+176>>2];J[a+204>>2]=J[b+172>>2];J[a+208>>2]=d;d=J[b+168>>2];J[a+196>>2]=J[b+164>>2];J[a+200>>2]=d;break h}c=2;if((b|0)<2){break g}g=K[a+332|0]}if(g&2){break f}c=c-1|0;J[a>>2]=c;b=(c<<4)+a|0;d=J[b+16>>2];J[a+28>>2]=J[b+12>>2];J[a+32>>2]=d;d=J[b+8>>2];J[a+20>>2]=J[b+4>>2];J[a+24>>2]=d;d=J[b+96>>2];J[a+108>>2]=J[b+92>>2];J[a+112>>2]=d;d=J[b+88>>2];J[a+100>>2]=J[b+84>>2];J[a+104>>2]=d;d=J[b+176>>2];J[a+188>>2]=J[b+172>>2];J[a+192>>2]=d;d=J[b+168>>2];J[a+180>>2]=J[b+164>>2];J[a+184>>2]=d;break f}c=1;if((b|0)!=1){break e}g=K[a+332|0]}if(g&1){break e}c=c-1|0;J[a>>2]=c;c=(c<<4)+a|0;b=J[c+16>>2];J[a+12>>2]=J[c+12>>2];J[a+16>>2]=b;b=J[c+8>>2];J[a+4>>2]=J[c+4>>2];J[a+8>>2]=b;b=J[c+96>>2];J[a+92>>2]=J[c+92>>2];J[a+96>>2]=b;b=J[c+88>>2];J[a+84>>2]=J[c+84>>2];J[a+88>>2]=b;b=J[c+176>>2];J[a+172>>2]=J[c+172>>2];J[a+176>>2]=b;b=J[c+168>>2];J[a+164>>2]=J[c+164>>2];J[a+168>>2]=b}c=0;if(!(h>=Q(0))|(!(f>=Q(0))|!(e>=Q(0)))){break b}c=N[a+348>>2]>=Q(0);break b;case 3:break c;default:break b}}J[k+8>>2]=0;J[k+12>>2]=0;J[k>>2]=0;J[k+4>>2]=0;g=sa-48|0;sa=g;H[g+24|0]=0;d=J[k+12>>2];J[b+8>>2]=J[k+8>>2];J[b+12>>2]=d;d=J[k+4>>2];J[b>>2]=J[k>>2];J[b+4>>2]=d;s=K[b+16|0];H[b+16|0]=s|15;P=N[k+8>>2];d=a+4|0;f=N[d+8>>2];R=Q(P-f);z=a+36|0;p=N[z+8>>2];e=Q(p-f);A=a+52|0;t=N[A>>2];h=N[d>>2];i=Q(t-h);B=a+20|0;j=N[B+4>>2];l=N[d+4>>2];n=Q(j-l);o=N[B>>2];m=Q(o-h);F=N[A+4>>2];q=Q(F-l);C=Q(Q(i*n)-Q(m*q));G=N[z>>2];r=Q(G-h);u=N[B+8>>2];v=Q(u-f);U=N[A+8>>2];w=Q(U-f);D=Q(Q(q*v)-Q(n*w));I=N[z+4>>2];x=Q(I-l);L=Q(Q(w*m)-Q(v*i));y=Q(Q(e*C)+Q(Q(r*D)+Q(x*L)));M=Q(R*C);C=N[k>>2];S=Q(C-h);O=Q(S*D);D=N[k+4>>2];T=Q(D-l);V=Q(y*y)>2];e=Q(h-P);f=Q(e*e);i=N[g+8>>2];e=Q(i-C);l=Q(e*e);j=N[g+12>>2];e=Q(j-D);e=Q(f+Q(l+Q(e*e)));f=Q(34028234663852886e22);if(!(e>2]=N[g+20>>2];N[b+8>>2]=h;N[b+4>>2]=j;N[b>>2]=i;H[b+16|0]=K[g+24|0]&7|s&-16;f=N[g+36>>2];s=J[g+32>>2];E=J[g+28>>2];J[b+32>>2]=0;N[b+28>>2]=f;J[b+20>>2]=E;J[b+24>>2]=s;f=e}m:{if(!W){break m}qb(k,d,z,A,g+8|0);h=N[g+16>>2];e=Q(h-N[k+8>>2]);l=Q(e*e);i=N[g+8>>2];e=Q(i-N[k>>2]);m=Q(e*e);j=N[g+12>>2];e=Q(j-N[k+4>>2]);e=Q(l+Q(m+Q(e*e)));if(!(e>2]=N[g+20>>2];N[b+8>>2]=h;N[b+4>>2]=j;N[b>>2]=i;s=K[g+24|0];H[b+16|0]=K[b+16|0]&240|(s&1|s<<1&12);s=J[g+36>>2];E=J[g+32>>2];f=N[g+28>>2];J[b+24>>2]=0;J[b+28>>2]=E;J[b+32>>2]=s;N[b+20>>2]=f;f=e}n:{if(!V){break n}qb(k,d,A,B,g+8|0);h=N[g+16>>2];e=Q(h-N[k+8>>2]);l=Q(e*e);i=N[g+8>>2];e=Q(i-N[k>>2]);m=Q(e*e);j=N[g+12>>2];e=Q(j-N[k+4>>2]);e=Q(l+Q(m+Q(e*e)));if(!(e>2]=N[g+20>>2];N[b+8>>2]=h;N[b+4>>2]=j;N[b>>2]=i;d=K[g+24|0];H[b+16|0]=K[b+16|0]&240|(d&1|d>>>1&2|d<<2&8);f=N[g+36>>2];h=N[g+28>>2];N[b+32>>2]=N[g+32>>2];J[b+28>>2]=0;N[b+24>>2]=f;N[b+20>>2]=h;f=e}$=1;if(!X){break k}qb(k,B,A,z,g+8|0);j=f;f=N[g+16>>2];e=Q(f-N[k+8>>2]);l=Q(e*e);e=N[g+8>>2];h=Q(e-N[k>>2]);m=Q(h*h);h=N[g+12>>2];i=Q(h-N[k+4>>2]);if(!(j>Q(l+Q(m+Q(i*i))))){break k}N[b+12>>2]=N[g+20>>2];N[b+8>>2]=f;N[b+4>>2]=h;N[b>>2]=e;d=K[g+24|0];H[b+16|0]=K[b+16|0]&240|(d&4|d<<1&2|d<<2&8);f=N[g+36>>2];e=N[g+28>>2];N[b+32>>2]=N[g+32>>2];N[b+28>>2]=f;N[b+24>>2]=e;J[b+20>>2]=0}sa=g+48|0;if($){J[a+256>>2]=0;e=N[a+336>>2];h=N[a+340>>2];i=N[a+344>>2];f=N[a+348>>2];j=Q(Q(Q(Q(e*N[a+92>>2])+Q(h*N[a+108>>2]))+Q(i*N[a+124>>2]))+Q(f*N[a+140>>2]));N[a+252>>2]=j;l=Q(Q(Q(Q(e*N[a+88>>2])+Q(h*N[a+104>>2]))+Q(i*N[a+120>>2]))+Q(f*N[a+136>>2]));N[a+248>>2]=l;n=Q(Q(Q(Q(e*N[a+84>>2])+Q(h*N[a+100>>2]))+Q(i*N[a+116>>2]))+Q(f*N[a+132>>2]));N[a+244>>2]=n;J[a+288>>2]=0;J[a+272>>2]=0;o=Q(Q(Q(Q(e*N[a+164>>2])+Q(h*N[a+180>>2]))+Q(i*N[a+196>>2]))+Q(f*N[a+212>>2]));N[a+260>>2]=o;m=Q(Q(Q(Q(e*N[a+168>>2])+Q(h*N[a+184>>2]))+Q(i*N[a+200>>2]))+Q(f*N[a+216>>2]));N[a+264>>2]=m;e=Q(Q(Q(Q(e*N[a+172>>2])+Q(h*N[a+188>>2]))+Q(i*N[a+204>>2]))+Q(f*N[a+220>>2]));N[a+268>>2]=e;N[a+276>>2]=n-o;N[a+280>>2]=l-m;N[a+284>>2]=j-e;o:{p:{q:{r:{s:{b=J[a>>2];t:{if((b|0)>=4){g=K[a+332|0];if(g&8){c=b;break t}c=b-1|0;J[a>>2]=c;b=(c<<4)+a|0;d=J[b+16>>2];J[a+60>>2]=J[b+12>>2];J[a+64>>2]=d;d=J[b+8>>2];J[a+52>>2]=J[b+4>>2];J[a+56>>2]=d;d=J[b+96>>2];J[a+140>>2]=J[b+92>>2];J[a+144>>2]=d;d=J[b+88>>2];J[a+132>>2]=J[b+84>>2];J[a+136>>2]=d;d=J[b+176>>2];J[a+220>>2]=J[b+172>>2];J[a+224>>2]=d;d=J[b+168>>2];J[a+212>>2]=J[b+164>>2];J[a+216>>2]=d;break t}c=3;if((b|0)!=3){break s}g=K[a+332|0]}if(g&4){break r}c=c-1|0;J[a>>2]=c;b=(c<<4)+a|0;d=J[b+16>>2];J[a+44>>2]=J[b+12>>2];J[a+48>>2]=d;d=J[b+8>>2];J[a+36>>2]=J[b+4>>2];J[a+40>>2]=d;d=J[b+96>>2];J[a+124>>2]=J[b+92>>2];J[a+128>>2]=d;d=J[b+88>>2];J[a+116>>2]=J[b+84>>2];J[a+120>>2]=d;d=J[b+176>>2];J[a+204>>2]=J[b+172>>2];J[a+208>>2]=d;d=J[b+168>>2];J[a+196>>2]=J[b+164>>2];J[a+200>>2]=d;break r}c=2;if((b|0)<2){break q}g=K[a+332|0]}if(g&2){break p}c=c-1|0;J[a>>2]=c;b=(c<<4)+a|0;d=J[b+16>>2];J[a+28>>2]=J[b+12>>2];J[a+32>>2]=d;d=J[b+8>>2];J[a+20>>2]=J[b+4>>2];J[a+24>>2]=d;d=J[b+96>>2];J[a+108>>2]=J[b+92>>2];J[a+112>>2]=d;d=J[b+88>>2];J[a+100>>2]=J[b+84>>2];J[a+104>>2]=d;d=J[b+176>>2];J[a+188>>2]=J[b+172>>2];J[a+192>>2]=d;d=J[b+168>>2];J[a+180>>2]=J[b+164>>2];J[a+184>>2]=d;break p}c=1;if((b|0)!=1){break o}g=K[a+332|0]}if(g&1){break o}c=c-1|0;J[a>>2]=c;c=(c<<4)+a|0;b=J[c+16>>2];J[a+12>>2]=J[c+12>>2];J[a+16>>2]=b;b=J[c+8>>2];J[a+4>>2]=J[c+4>>2];J[a+8>>2]=b;b=J[c+96>>2];J[a+92>>2]=J[c+92>>2];J[a+96>>2]=b;b=J[c+88>>2];J[a+84>>2]=J[c+84>>2];J[a+88>>2]=b;b=J[c+176>>2];J[a+172>>2]=J[c+172>>2];J[a+176>>2]=b;b=J[c+168>>2];J[a+164>>2]=J[c+164>>2];J[a+168>>2]=b}c=N[a+336>>2]>=Q(0)&N[a+340>>2]>=Q(0)&N[a+344>>2]>=Q(0)&f>=Q(0);break b}if(K[a+352|0]){break b}J[a+276>>2]=0;J[a+280>>2]=0;c=1;H[a+312|0]=1;J[a+284>>2]=0;J[a+288>>2]=0;break a}H[a+312|0]=c}sa=k+16|0;return(c&255)!=0}function ie(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=Q(0),j=0,k=0,l=Q(0),m=0,n=0,o=Q(0),p=0,q=Q(0),r=0,s=0,t=Q(0),u=0,v=0,w=Q(0),x=Q(0),y=0,z=Q(0),A=Q(0),B=0,C=Q(0),D=0,E=0,F=0,G=Q(0),O=0,S=Q(0),T=Q(0),U=Q(0),V=Q(0),W=Q(0),X=Q(0),Z=Q(0),_=Q(0),$=Q(0);g=sa-96|0;sa=g;H[g+52|0]=1;J[g+48>>2]=0;H[g+72|0]=1;J[g+40>>2]=0;J[g+44>>2]=0;J[g+68>>2]=0;H[g+92|0]=1;J[g+60>>2]=0;J[g+64>>2]=0;J[g+88>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+28>>2]=0;H[g+32|0]=1;J[g+20>>2]=0;J[g+24>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;J[a+64>>2]=0;J[a+68>>2]=0;a:{b:{j=J[a+28>>2];if((j|0)>0){while(1){D=P(B,36);E=J[(D+J[a+36>>2]|0)+4>>2];if((E|0)>0){F=0;while(1){b=J[(J[a+36>>2]+D|0)+12>>2];e=J[b+(F<<2)>>2];F=F+1|0;O=(E|0)==(F|0);b=J[b+((O?0:F)<<2)>>2];I[g+14>>1]=b;I[g+12>>1]=e;c=e<<16>>16;d=b<<16>>16;if((c|0)<(d|0)){I[g+14>>1]=e;I[g+12>>1]=b;c=b;d=e}v=d<<16>>16;j=0;n=c<<16>>16;b=n+(d<<16)&J[g+64>>2]-1;c:{if(b>>>0>=M[g+20>>2]){break c}b=J[J[g+28>>2]+(b<<2)>>2];if((b|0)==-1){break c}h=J[g+48>>2];e=J[g+88>>2];while(1){k=b<<2;b=k+e|0;if(!(L[b>>1]==(c&65535)&L[b+2>>1]==(d&65535))){b=J[h+k>>2];if((b|0)!=-1){continue}break c}break}j=k+J[g+68>>2]|0}b=J[a+16>>2];e=b+(v<<4)|0;b=b+(n<<4)|0;i=Q(N[e+8>>2]-N[b+8>>2]);G=i;q=Q(N[e>>2]-N[b>>2]);o=Q(N[e+4>>2]-N[b+4>>2]);i=Q(Q(1)/Q(Y(Q(Q(i*i)+Q(Q(q*q)+Q(o*o))))));w=Q(G*i);x=Q(o*i);l=Q(q*i);c=J[a+48>>2];d:{if((c|0)>0){e=J[a+56>>2];b=0;while(1){d=e+(b<<4)|0;q=N[d+8>>2];i=N[d>>2];o=N[d+4>>2];if(!(+Q(R(Q(i-l)))>1e-6|+Q(R(Q(o-x)))>1e-6|+Q(R(Q(q-w)))>1e-6)|!(+Q(R(Q(l+i)))>1e-6|+Q(R(Q(x+o)))>1e-6|+Q(R(Q(w+q)))>1e-6)){break d}b=b+1|0;if((b|0)!=(c|0)){continue}break}}e:{if(J[a+52>>2]!=(c|0)){break e}r=c?c<<1:1;if((r|0)<=(c|0)){break e}f:{if(!r){d=0;break f}J[8456]=J[8456]+1;d=ua[J[8258]](r<<4,16)|0;c=J[a+48>>2]}g:{if((c|0)<=0){break g}v=c&1;b=0;if((c|0)!=1){n=c&-2;c=0;while(1){k=b<<4;h=k+d|0;p=k+J[a+56>>2]|0;e=J[p+4>>2];J[h>>2]=J[p>>2];J[h+4>>2]=e;e=J[p+12>>2];J[h+8>>2]=J[p+8>>2];J[h+12>>2]=e;e=k|16;h=e+d|0;k=e+J[a+56>>2]|0;e=J[k+4>>2];J[h>>2]=J[k>>2];J[h+4>>2]=e;e=J[k+12>>2];J[h+8>>2]=J[k+8>>2];J[h+12>>2]=e;b=b+2|0;c=c+2|0;if((n|0)!=(c|0)){continue}break}}if(!v){break g}b=b<<4;c=b+d|0;e=b+J[a+56>>2]|0;b=J[e+4>>2];J[c>>2]=J[e>>2];J[c+4>>2]=b;b=J[e+12>>2];J[c+8>>2]=J[e+8>>2];J[c+12>>2]=b}b=J[a+56>>2];if(!(b?!b|!K[a+60|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+56>>2]=d;H[a+60|0]=1;J[a+52>>2]=r;c=J[a+48>>2]}b=J[a+56>>2]+(c<<4)|0;J[b+12>>2]=0;N[b+8>>2]=w;N[b+4>>2]=x;N[b>>2]=l;J[a+48>>2]=J[a+48>>2]+1}h:{if(j){I[j+2>>1]=B;if(O){break h}continue}I[g+8>>1]=B;I[g+10>>1]=65535;i:{j:{d=I[g+12>>1];k=L[g+14>>1];f=g+16|0;e=J[f+48>>2];y=d+(k<<16)&e-1;k:{if(y>>>0>=M[f+4>>2]){break k}b=J[J[f+12>>2]+(y<<2)>>2];if((b|0)==-1){break k}v=J[f+32>>2];n=J[f+72>>2];h=d&65535;while(1){c=b<<2;d=c+n|0;if((h|0)==L[d>>1]&(k|0)==L[d+2>>1]){break j}b=J[c+v>>2];if((b|0)!=-1){continue}break}}v=J[f+44>>2];b=v;l:{if((e|0)!=(b|0)){break l}b=e;p=b?b<<1:1;if((b|0)>=(p|0)){break l}m:{if(!p){m=0;d=e;break m}J[8456]=J[8456]+1;m=ua[J[8258]](p<<2,16)|0;d=J[f+44>>2]}n:{if((d|0)<=0){break n}r=0;b=0;if(d>>>0>=4){n=d&-4;j=0;while(1){k=b<<2;h=k+m|0;c=k+J[f+52>>2]|0;c=L[c>>1]|L[c+2>>1]<<16;I[h>>1]=c;I[h+2>>1]=c>>>16;c=k|4;h=c+m|0;c=c+J[f+52>>2]|0;c=L[c>>1]|L[c+2>>1]<<16;I[h>>1]=c;I[h+2>>1]=c>>>16;c=k|8;h=c+m|0;c=c+J[f+52>>2]|0;c=L[c>>1]|L[c+2>>1]<<16;I[h>>1]=c;I[h+2>>1]=c>>>16;c=k|12;h=c+m|0;c=c+J[f+52>>2]|0;c=L[c>>1]|L[c+2>>1]<<16;I[h>>1]=c;I[h+2>>1]=c>>>16;b=b+4|0;j=j+4|0;if((n|0)!=(j|0)){continue}break}}h=d&3;if(!h){break n}while(1){d=b<<2;c=d+m|0;d=d+J[f+52>>2]|0;d=L[d>>1]|L[d+2>>1]<<16;I[c>>1]=d;I[c+2>>1]=d>>>16;b=b+1|0;r=r+1|0;if((h|0)!=(r|0)){continue}break}}b=J[f+52>>2];if(!(b?!b|!K[f+56|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[f+52>>2]=m;H[f+56|0]=1;J[f+48>>2]=p;b=J[f+44>>2]}d=J[f+52>>2]+(b<<2)|0;b=L[g+8>>1]|L[g+10>>1]<<16;I[d>>1]=b;I[d+2>>1]=b>>>16;J[f+44>>2]=J[f+44>>2]+1;p=J[f- -64>>2];o:{if((p|0)!=J[f+68>>2]){break o}n=p?p<<1:1;if((n|0)<=(p|0)){break o}p:{if(!n){m=0;break p}J[8456]=J[8456]+1;m=ua[J[8258]](n<<2,16)|0;p=J[f+64>>2]}q:{if((p|0)<=0){break q}r=0;b=0;if(p>>>0>=4){h=p&-4;j=0;while(1){k=b<<2;c=k+m|0;d=k+J[f+72>>2]|0;d=L[d>>1]|L[d+2>>1]<<16;I[c>>1]=d;I[c+2>>1]=d>>>16;d=k|4;c=d+m|0;d=d+J[f+72>>2]|0;d=L[d>>1]|L[d+2>>1]<<16;I[c>>1]=d;I[c+2>>1]=d>>>16;d=k|8;c=d+m|0;d=d+J[f+72>>2]|0;d=L[d>>1]|L[d+2>>1]<<16;I[c>>1]=d;I[c+2>>1]=d>>>16;d=k|12;c=d+m|0;d=d+J[f+72>>2]|0;d=L[d>>1]|L[d+2>>1]<<16;I[c>>1]=d;I[c+2>>1]=d>>>16;b=b+4|0;j=j+4|0;if((h|0)!=(j|0)){continue}break}}h=p&3;if(!h){break q}while(1){d=b<<2;c=d+m|0;d=d+J[f+72>>2]|0;d=L[d>>1]|L[d+2>>1]<<16;I[c>>1]=d;I[c+2>>1]=d>>>16;b=b+1|0;r=r+1|0;if((h|0)!=(r|0)){continue}break}}b=J[f+72>>2];if(!(b?!b|!K[f+76|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[f+72>>2]=m;H[f+76|0]=1;J[f+68>>2]=n;p=J[f+64>>2]}d=J[f+72>>2]+(p<<2)|0;b=L[g+12>>1]|L[g+14>>1]<<16;I[d>>1]=b;I[d+2>>1]=b>>>16;J[f+64>>2]=J[f+64>>2]+1;if((e|0)>2]){j=0;m=0;p=0;y=0;d=J[f+4>>2];u=J[f+48>>2];r:{if((d|0)>=(u|0)){break r}s:{if((u|0)<=J[f+8>>2]){j=J[f+12>>2];break s}if(u){J[8456]=J[8456]+1;j=ua[J[8258]](u<<2,16)|0;b=J[f+4>>2]}else{b=d}n=J[f+12>>2];t:{u:{if((b|0)>0){if(b>>>0>=4){c=b&-4;while(1){h=m<<2;J[h+j>>2]=J[h+n>>2];e=h|4;J[e+j>>2]=J[e+n>>2];e=h|8;J[e+j>>2]=J[e+n>>2];e=h|12;J[e+j>>2]=J[e+n>>2];m=m+4|0;p=p+4|0;if((c|0)!=(p|0)){continue}break}}e=b&3;if(!e){break u}while(1){b=m<<2;J[b+j>>2]=J[b+n>>2];m=m+1|0;y=y+1|0;if((e|0)!=(y|0)){continue}break}break u}if(n){break u}break t}if(n?K[f+16|0]:0){J[8457]=J[8457]+1;ua[J[8259]](n)}}J[f+12>>2]=j;H[f+16|0]=1;J[f+8>>2]=u}b=d<<2;k=u<<2;Fa(b+j|0,0,k-b|0);J[f+4>>2]=u;e=J[f+24>>2];if((e|0)<(u|0)){v:{if((u|0)<=J[f+28>>2]){j=J[f+32>>2];break v}w:{if(!u){j=0;b=e;break w}J[8456]=J[8456]+1;j=ua[J[8258]](k,16)|0;b=J[f+24>>2]}r=J[f+32>>2];x:{if((b|0)>0){y=0;m=0;if(b>>>0>=4){h=b&-4;p=0;while(1){n=m<<2;J[n+j>>2]=J[n+r>>2];c=n|4;J[c+j>>2]=J[c+r>>2];c=n|8;J[c+j>>2]=J[c+r>>2];c=n|12;J[c+j>>2]=J[c+r>>2];m=m+4|0;p=p+4|0;if((h|0)!=(p|0)){continue}break}}c=b&3;if(!c){break x}while(1){b=m<<2;J[b+j>>2]=J[b+r>>2];m=m+1|0;y=y+1|0;if((c|0)!=(y|0)){continue}break}break x}if(r){break x}J[f+32>>2]=j;J[f+28>>2]=u;H[f+36|0]=1;break v}if(r?K[f+36|0]:0){J[8457]=J[8457]+1;ua[J[8259]](r)}J[f+32>>2]=j;H[f+36|0]=1;J[f+28>>2]=u}b=e<<2;Fa(b+j|0,0,k-b|0)}J[f+24>>2]=u;if((u|0)>0){Fa(J[f+12>>2],255,k);Fa(J[f+32>>2],255,k)}if((d|0)<=0){break r}n=J[f+32>>2];h=J[f+72>>2];c=J[f+12>>2];m=0;while(1){e=m<<2;b=e+h|0;b=c+(((L[b+2>>1]<<16)+I[b>>1]&J[f+48>>2]-1)<<2)|0;J[e+n>>2]=J[b>>2];J[b>>2]=m;m=m+1|0;if((d|0)!=(m|0)){continue}break}}y=I[g+12>>1]+(L[g+14>>1]<<16)&J[f+48>>2]-1}b=J[f+12>>2]+(y<<2)|0;J[J[f+32>>2]+(v<<2)>>2]=J[b>>2];J[b>>2]=v;break i}e=J[f+52>>2]+(b<<2)|0;b=L[g+8>>1]|L[g+10>>1]<<16;I[e>>1]=b;I[e+2>>1]=b>>>16}if(!O){continue}}break}j=J[a+28>>2]}B=B+1|0;if((B|0)<(j|0)){continue}break}B=0;d=(j|0)>0;if(d){break b}}i=N[a+72>>2];z=N[a+68>>2];A=N[a+64>>2];break a}D=J[a+16>>2];h=J[a+36>>2];A=N[a+64>>2];z=N[a+68>>2];i=N[a+72>>2];while(1){b=h+P(B,36)|0;k=J[b+4>>2];if((k|0)>=3){v=J[b+12>>2];E=D+(J[v>>2]<<4)|0;c=k-2|0;b=1;while(1){n=D+(J[v+(b<<2)>>2]<<4)|0;V=N[n+8>>2];e=b+1|0;s=D+(J[v+((e|0)%(k|0)<<2)>>2]<<4)|0;W=N[s+8>>2];S=N[E>>2];X=N[n>>2];Z=Q(S-X);T=N[E+4>>2];_=N[s+4>>2];t=Q(T-_);w=N[s>>2];x=Q(S-w);l=N[n+4>>2];o=Q(T-l);$=Q(Q(Z*t)-Q(x*o));U=N[E+8>>2];q=Q(U-W);G=Q(o*q);o=Q(U-V);t=Q(G-Q(t*o));G=i;i=Q(Q(o*x)-Q(q*Z));o=Q(Q(Y(Q(Q($*$)+Q(Q(t*t)+Q(i*i)))))*Q(.5));i=Q(G+Q(Q(Q(Q(U+V)+W)*Q(.3333333432674408))*o));N[a+72>>2]=i;z=Q(z+Q(Q(Q(_+Q(T+l))*Q(.3333333432674408))*o));N[a+68>>2]=z;A=Q(A+Q(Q(Q(w+Q(S+X))*Q(.3333333432674408))*o));N[a+64>>2]=A;C=Q(C+o);s=(b|0)==(c|0);b=e;if(!s){continue}break}}B=B+1|0;if((B|0)!=(j|0)){continue}break}s=d}J[a+96>>2]=2139095039;o=Q(Q(1)/C);w=Q(o*i);N[a+72>>2]=w;x=Q(o*z);N[a+68>>2]=x;l=Q(o*A);N[a+64>>2]=l;q=Q(34028234663852886e22);o=Q(34028234663852886e22);if(s){e=J[a+36>>2];b=0;while(1){s=e+P(b,36)|0;i=Q(R(Q(N[s+32>>2]+Q(Q(w*N[s+28>>2])+Q(Q(l*N[s+20>>2])+Q(x*N[s+24>>2]))))));if(i>2]=i;o=i}b=b+1|0;if((j|0)!=(b|0)){continue}break}}s=J[a+8>>2];y:{if((s|0)<=0){t=Q(-34028234663852886e22);i=Q(34028234663852886e22);z=Q(-34028234663852886e22);A=Q(-34028234663852886e22);C=Q(34028234663852886e22);break y}e=J[a+16>>2];A=Q(-34028234663852886e22);b=0;C=Q(34028234663852886e22);z=Q(-34028234663852886e22);t=Q(-34028234663852886e22);i=Q(34028234663852886e22);while(1){d=e+(b<<4)|0;l=N[d+8>>2];A=l>A?l:A;i=i>l?l:i;l=N[d+4>>2];z=l>z?l:z;q=l>2];t=l>t?l:t;C=l>2]=0;l=Q(A-i);N[a+124>>2]=l;w=Q(z-q);N[a+120>>2]=w;x=Q(t-C);N[a+116>>2]=x;J[a+112>>2]=0;N[a+108>>2]=i+A;N[a+104>>2]=q+z;N[a+100>>2]=t+C;e=w>x;s=l>(e?w:x)?2:e;e=s<<2;i=N[e+(a+116|0)>>2];l=Q(o/Q(1.7320507764816284));N[a+84>>2]=l;N[a+88>>2]=l;N[a+80>>2]=l;d=a+80|0;e=d+e|0;i=Q(i*Q(.5));N[e>>2]=i;q=Q(Q(i-l)*Q(.0009765625));z:{A:{while(1){if(Ec(a)){break A}i=Q(i-q);N[e>>2]=i;b=b+1|0;if((b|0)!=1024){continue}break}N[a+84>>2]=l;N[a+88>>2]=l;N[a+80>>2]=l;break z}b=1<>2];b=d+(b<<2)|0;t=N[b>>2];o=Q(Q(o-l)*Q(.0009765625));N[b>>2]=o+t;q=Q(o+N[e>>2]);N[e>>2]=q;if(Ec(a)){c=0;while(1){i=q;c=c+1|0;if((c|0)==1024){break z}t=N[b>>2];N[b>>2]=o+t;q=Q(o+N[e>>2]);N[e>>2]=q;if(Ec(a)){continue}break}}N[b>>2]=t;N[e>>2]=i}a=J[g+88>>2];if(!(a?!a|!K[g+92|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](a)}J[g+88>>2]=0;H[g+92|0]=1;J[g+80>>2]=0;J[g+84>>2]=0;a=J[g+68>>2];if(!(a?!a|!K[g+72|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](a)}J[g+68>>2]=0;H[g+72|0]=1;J[g+60>>2]=0;J[g+64>>2]=0;a=J[g+48>>2];if(!(a?!a|!K[g+52|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](a)}J[g+48>>2]=0;H[g+52|0]=1;J[g+40>>2]=0;J[g+44>>2]=0;a=J[g+28>>2];if(!(a?!a|!K[g+32|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](a)}sa=g+96|0}function qc(a,b,c){var d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=0,z=0,A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=0,I=0,K=0,L=0,M=0,O=0,P=0,R=0,S=0,T=0,U=0,V=Q(0),W=0,X=Q(0);A=N[b+52>>2];B=N[b+56>>2];m=N[a+96>>2];n=N[a+100>>2];o=N[a+104>>2];d=N[b+20>>2];e=N[b+24>>2];p=N[a- -64>>2];q=N[a+80>>2];s=N[a+52>>2];t=N[a+68>>2];u=N[a+84>>2];v=N[a+56>>2];f=N[b+36>>2];w=N[a+72>>2];h=N[b+40>>2];x=N[a+88>>2];C=N[b+48>>2];g=N[b+8>>2];i=N[b>>2];l=N[b+4>>2];k=N[b+16>>2];r=N[a+48>>2];j=N[b+32>>2];J[a+1296>>2]=0;J[a+1280>>2]=0;J[a+1264>>2]=0;J[a+1248>>2]=0;b=a+1276|0;N[b>>2]=Q(x*h)+Q(Q(v*j)+Q(w*f));z=a+1272|0;N[z>>2]=Q(u*h)+Q(Q(s*j)+Q(t*f));G=a+1268|0;N[G>>2]=Q(q*h)+Q(Q(r*j)+Q(p*f));I=a+1260|0;N[I>>2]=Q(x*e)+Q(Q(v*k)+Q(w*d));K=a+1256|0;N[K>>2]=Q(u*e)+Q(Q(s*k)+Q(t*d));L=a+1252|0;N[L>>2]=Q(q*e)+Q(Q(r*k)+Q(p*d));M=a+1244|0;N[M>>2]=Q(x*g)+Q(Q(v*i)+Q(l*w));O=a+1240|0;N[O>>2]=Q(u*g)+Q(Q(s*i)+Q(l*t));N[a+1236>>2]=Q(q*g)+Q(Q(r*i)+Q(p*l));P=a+1292|0;N[P>>2]=B+Q(Q(o*h)+Q(Q(m*j)+Q(f*n)));R=a+1288|0;N[R>>2]=A+Q(Q(o*e)+Q(Q(m*k)+Q(d*n)));S=a+1284|0;N[S>>2]=C+Q(Q(o*g)+Q(Q(m*i)+Q(l*n)));A=N[c+52>>2];B=N[c+56>>2];m=N[a+160>>2];n=N[a+164>>2];o=N[a+168>>2];d=N[c+20>>2];e=N[c+24>>2];p=N[a+128>>2];q=N[a+144>>2];s=N[a+116>>2];t=N[a+132>>2];u=N[a+148>>2];v=N[a+120>>2];w=N[a+136>>2];f=N[c+36>>2];x=N[a+152>>2];h=N[c+40>>2];C=N[c+48>>2];g=N[c+8>>2];i=N[c>>2];l=N[c+4>>2];k=N[c+16>>2];r=N[a+112>>2];j=N[c+32>>2];J[a+1360>>2]=0;J[a+1344>>2]=0;J[a+1328>>2]=0;J[a+1312>>2]=0;N[a+1340>>2]=Q(x*h)+Q(Q(v*j)+Q(w*f));N[a+1336>>2]=Q(u*h)+Q(Q(s*j)+Q(t*f));N[a+1332>>2]=Q(q*h)+Q(Q(r*j)+Q(p*f));N[a+1324>>2]=Q(x*e)+Q(Q(v*k)+Q(w*d));N[a+1320>>2]=Q(u*e)+Q(Q(s*k)+Q(t*d));N[a+1316>>2]=Q(q*e)+Q(Q(r*k)+Q(p*d));N[a+1308>>2]=Q(x*g)+Q(Q(v*i)+Q(l*w));N[a+1304>>2]=Q(u*g)+Q(Q(s*i)+Q(l*t));N[a+1300>>2]=Q(q*g)+Q(Q(r*i)+Q(p*l));c=a+1356|0;N[c>>2]=B+Q(Q(o*h)+Q(Q(m*j)+Q(f*n)));T=a+1352|0;N[T>>2]=A+Q(Q(o*e)+Q(Q(m*k)+Q(d*n)));U=a+1348|0;N[U>>2]=C+Q(Q(o*g)+Q(Q(m*i)+Q(l*n)));J[a+1440>>2]=0;f=N[M>>2];i=N[L>>2];l=N[z>>2];k=N[G>>2];j=N[K>>2];e=Q(Q(i*l)-Q(k*j));h=N[a+1236>>2];m=N[b>>2];n=N[I>>2];s=Q(Q(j*m)-Q(l*n));g=N[O>>2];t=Q(Q(n*k)-Q(m*i));d=Q(Q(1)/Q(Q(f*e)+Q(Q(h*s)+Q(g*t))));o=Q(N[c>>2]-N[P>>2]);p=Q(N[U>>2]-N[S>>2]);q=Q(N[T>>2]-N[R>>2]);e=Q(Q(Q(Q(Q(h*j)-Q(i*g))*d)*o)+Q(Q(Q(e*d)*p)+Q(q*Q(Q(Q(g*k)-Q(l*h))*d))));N[a+1436>>2]=e;h=Q(Q(Q(Q(Q(f*i)-Q(n*h))*d)*o)+Q(Q(Q(t*d)*p)+Q(q*Q(Q(Q(h*m)-Q(k*f))*d))));N[a+1432>>2]=h;d=Q(Q(Q(Q(Q(g*n)-Q(j*f))*d)*o)+Q(Q(Q(s*d)*p)+Q(q*Q(Q(Q(f*l)-Q(m*g))*d))));N[a+1428>>2]=d;N[a+940>>2]=d;b=a+924|0;f=Q(0);c=a+908|0;g=N[a+680>>2];i=N[a+696>>2];a:{if(g>i){z=c}else{N[c>>2]=d-g;y=3;if(g==i){break a}f=Q(d-i);y=4;z=b}N[z>>2]=f}N[a+944>>2]=h;J[a+956>>2]=y;d=N[a+684>>2];f=N[a+700>>2];b:{c:{if(d>f){y=0;d=Q(0);z=c;break c}N[a+912>>2]=h-d;y=3;if(d==f){break b}d=Q(h-f);y=4;z=b}N[z+4>>2]=d;e=N[a+1436>>2]}N[a+948>>2]=e;J[a+960>>2]=y;d=N[a+688>>2];f=N[a+704>>2];d:{e:{if(d>f){y=0;d=Q(0);break e}N[a+916>>2]=e-d;y=3;if(d==f){break d}c=b;y=4;d=Q(e-f)}N[c+8>>2]=d}J[a+964>>2]=y;c=sa-48|0;sa=c;o=N[a+1332>>2];p=N[a+1316>>2];q=N[a+1336>>2];s=N[a+1304>>2];t=N[a+1320>>2];u=N[a+1340>>2];v=N[a+1308>>2];w=N[a+1324>>2];h=N[a+1244>>2];i=N[a+1256>>2];l=N[a+1272>>2];g=N[a+1240>>2];f=N[a+1268>>2];k=N[a+1260>>2];j=N[a+1252>>2];m=N[a+1276>>2];x=N[a+1300>>2];e=N[a+1236>>2];J[c+44>>2]=0;J[c+28>>2]=0;n=Q(Q(j*l)-Q(f*i));V=Q(Q(i*m)-Q(l*k));D=Q(Q(k*f)-Q(m*j));d=Q(Q(1)/Q(Q(h*n)+Q(Q(e*V)+Q(g*D))));r=Q(Q(Q(e*i)-Q(j*g))*d);A=Q(n*d);B=Q(Q(Q(g*f)-Q(l*e))*d);n=Q(Q(u*r)+Q(Q(v*A)+Q(w*B)));N[c+40>>2]=n;C=Q(Q(q*r)+Q(Q(s*A)+Q(B*t)));N[c+36>>2]=C;E=Q(Q(Q(h*j)-Q(k*e))*d);D=Q(D*d);F=Q(Q(Q(e*m)-Q(f*h))*d);e=Q(Q(u*E)+Q(Q(v*D)+Q(w*F)));N[c+24>>2]=e;j=Q(Q(q*E)+Q(Q(s*D)+Q(F*t)));N[c+20>>2]=j;J[c+12>>2]=0;f=Q(Q(o*r)+Q(Q(x*A)+Q(p*B)));N[c+32>>2]=f;r=Q(Q(o*E)+Q(Q(x*D)+Q(p*F)));N[c+16>>2]=r;i=Q(Q(Q(g*k)-Q(i*h))*d);k=Q(V*d);h=Q(Q(Q(h*l)-Q(m*g))*d);g=Q(Q(u*i)+Q(Q(v*k)+Q(w*h)));N[c+8>>2]=g;d=Q(Q(q*i)+Q(Q(s*k)+Q(h*t)));N[c+4>>2]=d;h=Q(Q(o*i)+Q(Q(x*k)+Q(p*h)));N[c>>2]=h;f:{g:{h:{i:{j:{k:{l:{m:{b=J[a+1232>>2];switch(b|0){case 5:break h;case 4:break i;case 3:break j;case 2:break k;case 1:break l;case 0:break m;default:break f}}b=a+1372|0;n:{o:{if(fQ(-1)){W=a,X=Ia(Q(-C),n),N[W+1364>>2]=X;d=fQ(1)?Q(1):d),N[W>>2]=X;d=Ia(Q(-r),h);break n}J[a+1368>>2]=-1077342245;W=a,X=Q(-Ia(d,j)),N[W+1364>>2]=X;break o}J[a+1368>>2]=1070141403;W=a,X=Ia(d,j),N[W+1364>>2]=X}d=Q(0)}N[b>>2]=d;break g}b=a+1364|0;d=N[c+16>>2];p:{if(dQ(-1)){W=b,X=Ia(N[c+24>>2],N[c+20>>2]),N[W>>2]=X;W=b,X=Ia(N[c+32>>2],N[c>>2]),N[W+4>>2]=X;d=N[c+16>>2];d=d>Q(1)?Q(-1):Q(-d);W=b,X=hb(d>Q(1)?Q(1):d),N[W+8>>2]=X;break p}d=N[c+40>>2];e=N[c+8>>2];J[b+4>>2]=0;W=b,X=Q(-Ia(Q(-e),d)),N[W>>2]=X;N[b+8>>2]=1.5707963705062866;break p}d=N[c+40>>2];e=N[c+8>>2];J[b+4>>2]=0;W=b,X=Ia(Q(-e),d),N[W>>2]=X;N[b+8>>2]=-1.5707963705062866}break g}b=a+1364|0;d=N[c+36>>2];q:{r:{if(dQ(-1)){d=d>Q(1)?Q(-1):Q(-d);W=b,X=hb(d>Q(1)?Q(1):d),N[W>>2]=X;W=b,X=Ia(N[c+32>>2],N[c+40>>2]),N[W+4>>2]=X;W=b,X=Ia(N[c+4>>2],N[c+20>>2]),N[W+8>>2]=X;break q}J[b>>2]=1070141403;W=b,X=Q(-Ia(Q(-N[c+16>>2]),N[c>>2])),N[W+4>>2]=X;break r}J[b>>2]=-1077342245;W=b,X=Ia(Q(-N[c+16>>2]),N[c>>2]),N[W+4>>2]=X}N[b+8>>2]=0}break g}b=a+1372|0;s:{if(dQ(-1)){W=a,X=Ia(Q(-C),j),N[W+1364>>2]=X;W=a+1368|0,X=Ia(Q(-g),h),N[W>>2]=X;d=dQ(1)?Q(1):d);break s}J[a+1364>>2]=0;W=a+1368|0,X=Q(-Ia(e,n)),N[W>>2]=X;d=Q(-1.5707963705062866);break s}J[a+1364>>2]=0;W=a+1368|0,X=Ia(e,n),N[W>>2]=X;d=Q(1.5707963705062866)}N[b>>2]=d;break g}b=a+1372|0;t:{if(eQ(-1)){d=eQ(1)?Q(1):d),N[W+1364>>2]=X;W=a+1368|0,X=Ia(Q(-g),n),N[W>>2]=X;d=Ia(Q(-r),j);break t}J[a+1364>>2]=-1077342245;J[a+1368>>2]=0;d=Q(-Ia(f,h));break t}J[a+1364>>2]=1070141403;J[a+1368>>2]=0;d=Ia(f,h)}N[b>>2]=d;break g}b=a+1364|0;d=N[c+8>>2];u:{if(dQ(-1)){W=b,X=Ia(N[c+24>>2],N[c+40>>2]),N[W>>2]=X;d=N[c+8>>2];d=d>Q(1)?Q(-1):Q(-d);W=b,X=hb(d>Q(1)?Q(1):d),N[W+4>>2]=X;W=b,X=Ia(N[c+4>>2],N[c>>2]),N[W+8>>2]=X;break u}J[b>>2]=0;J[b+4>>2]=1070141403;W=b,X=Q(-Ia(N[c+16>>2],N[c+32>>2])),N[W+8>>2]=X;break u}J[b>>2]=0;J[b+4>>2]=-1077342245;W=b,X=Ia(Q(-N[c+16>>2]),Q(-N[c+32>>2])),N[W+8>>2]=X}}b=J[a+1232>>2]}v:{w:{x:{switch(b|0){default:l=N[a+1420>>2];e=N[a+1416>>2];f=N[a+1412>>2];k=N[a+1404>>2];h=N[a+1400>>2];j=N[a+1396>>2];g=N[a+1388>>2];i=N[a+1384>>2];d=N[a+1380>>2];break v;case 0:J[a+1408>>2]=0;J[a+1424>>2]=0;J[a+1392>>2]=0;d=N[a+1300>>2];m=N[a+1276>>2];f=N[a+1332>>2];i=N[a+1244>>2];h=Q(Q(d*m)-Q(f*i));n=N[a+1260>>2];g=N[a+1316>>2];j=Q(Q(n*f)-Q(g*m));l=Q(Q(d*h)-Q(j*g));k=Q(Q(i*g)-Q(d*n));e=Q(Q(f*j)-Q(k*d));f=Q(Q(g*k)-Q(h*f));g=Q(Q(j*n)-Q(i*h));i=Q(Q(k*i)-Q(m*j));d=Q(Q(h*m)-Q(n*k));break v;case 1:J[a+1424>>2]=0;J[a+1408>>2]=0;J[a+1392>>2]=0;d=N[a+1316>>2];m=N[a+1272>>2];n=N[a+1256>>2];g=N[a+1332>>2];f=Q(Q(d*m)-Q(n*g));i=N[a+1240>>2];h=N[a+1300>>2];e=Q(Q(g*i)-Q(m*h));k=Q(Q(f*d)-Q(h*e));l=Q(Q(h*n)-Q(i*d));h=Q(Q(l*h)-Q(g*f));j=Q(Q(e*g)-Q(d*l));g=Q(Q(i*e)-Q(f*n));i=Q(Q(m*f)-Q(l*i));d=Q(Q(n*l)-Q(e*m));break v;case 2:J[a+1424>>2]=0;J[a+1408>>2]=0;J[a+1392>>2]=0;e=N[a+1304>>2];k=N[a+1260>>2];m=N[a+1244>>2];f=N[a+1320>>2];g=Q(Q(e*k)-Q(m*f));N[a+1388>>2]=g;n=N[a+1336>>2];l=N[a+1276>>2];i=Q(Q(m*n)-Q(e*l));N[a+1384>>2]=i;d=Q(Q(f*l)-Q(k*n));N[a+1380>>2]=d;h=Q(Q(l*d)-Q(g*m));N[a+1400>>2]=h;j=Q(Q(k*g)-Q(i*l));N[a+1396>>2]=j;l=Q(Q(d*f)-Q(e*i));e=Q(Q(g*e)-Q(n*d));f=Q(Q(i*n)-Q(f*g));k=Q(Q(m*i)-Q(d*k));break v;case 3:J[a+1424>>2]=0;J[a+1408>>2]=0;J[a+1392>>2]=0;d=N[a+1236>>2];m=N[a+1320>>2];i=N[a+1304>>2];g=N[a+1252>>2];l=Q(Q(d*m)-Q(i*g));N[a+1420>>2]=l;j=N[a+1268>>2];n=N[a+1336>>2];e=Q(Q(i*j)-Q(d*n));N[a+1416>>2]=e;f=Q(Q(g*n)-Q(m*j));N[a+1412>>2]=f;k=Q(Q(f*g)-Q(d*e));N[a+1404>>2]=k;h=Q(Q(l*d)-Q(j*f));N[a+1400>>2]=h;j=Q(Q(e*j)-Q(g*l));N[a+1396>>2]=j;g=Q(Q(i*e)-Q(f*m));N[a+1388>>2]=g;i=Q(Q(n*f)-Q(l*i));N[a+1384>>2]=i;d=Q(Q(m*l)-Q(e*n));break w;case 4:J[a+1424>>2]=0;J[a+1408>>2]=0;J[a+1392>>2]=0;e=N[a+1240>>2];j=N[a+1324>>2];h=N[a+1308>>2];f=N[a+1256>>2];g=Q(Q(e*j)-Q(h*f));N[a+1388>>2]=g;k=N[a+1272>>2];m=N[a+1340>>2];i=Q(Q(h*k)-Q(e*m));N[a+1384>>2]=i;d=Q(Q(f*m)-Q(j*k));N[a+1380>>2]=d;l=Q(Q(d*f)-Q(e*i));N[a+1420>>2]=l;e=Q(Q(g*e)-Q(k*d));N[a+1416>>2]=e;f=Q(Q(i*k)-Q(f*g));N[a+1412>>2]=f;k=Q(Q(h*i)-Q(d*j));N[a+1404>>2]=k;h=Q(Q(m*d)-Q(g*h));N[a+1400>>2]=h;j=Q(Q(j*g)-Q(i*m));N[a+1396>>2]=j;break v;case 5:break x}}J[a+1408>>2]=0;J[a+1424>>2]=0;J[a+1392>>2]=0;d=N[a+1308>>2];f=N[a+1252>>2];e=N[a+1236>>2];m=N[a+1324>>2];k=Q(Q(d*f)-Q(e*m));N[a+1404>>2]=k;n=N[a+1340>>2];g=N[a+1268>>2];h=Q(Q(e*n)-Q(d*g));N[a+1400>>2]=h;j=Q(Q(m*g)-Q(f*n));N[a+1396>>2]=j;l=Q(Q(e*h)-Q(j*f));N[a+1420>>2]=l;e=Q(Q(g*j)-Q(k*e));N[a+1416>>2]=e;f=Q(Q(f*k)-Q(h*g));N[a+1412>>2]=f;g=Q(Q(j*m)-Q(d*h));N[a+1388>>2]=g;i=Q(Q(k*d)-Q(n*j));N[a+1384>>2]=i;d=Q(Q(h*n)-Q(m*k))}N[a+1380>>2]=d}m=l;l=Q(Q(1)/Q(Y(Q(Q(l*l)+Q(Q(f*f)+Q(e*e))))));N[a+1420>>2]=m*l;N[a+1416>>2]=e*l;N[a+1412>>2]=f*l;e=Q(Q(1)/Q(Y(Q(Q(k*k)+Q(Q(j*j)+Q(h*h))))));N[a+1404>>2]=k*e;N[a+1400>>2]=h*e;N[a+1396>>2]=j*e;e=Q(Q(1)/Q(Y(Q(Q(g*g)+Q(Q(d*d)+Q(i*i))))));N[a+1388>>2]=g*e;N[a+1384>>2]=i*e;N[a+1380>>2]=d*e;sa=c+48|0;e=N[J[a+28>>2]+404>>2];d=N[J[a+32>>2]+404>>2];H[a+1452|0]=eQ(0)?Q(l/d):Q(.5);N[a+1444>>2]=d;N[a+1448>>2]=Q(1)-d}function Za(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=Q(0),g=Q(0),h=0,i=Q(0),j=Q(0),k=Q(0),l=0,m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=0,u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=0,G=Q(0),H=Q(0),I=Q(0),L=Q(0),M=Q(0),O=Q(0),P=Q(0),R=Q(0),S=Q(0),T=Q(0),U=Q(0),V=Q(0),W=Q(0),X=Q(0),Z=Q(0),_=Q(0),$=Q(0),aa=Q(0),ba=Q(0),ca=Q(0),da=Q(0),ea=Q(0),fa=Q(0),ga=Q(0);e=sa-272|0;sa=e;J[a+56>>2]=0;J[e+264>>2]=0;J[e+268>>2]=0;J[e+256>>2]=0;J[e+260>>2]=0;h=J[b+12>>2];J[e+168>>2]=J[b+8>>2];J[e+172>>2]=h;h=J[b+4>>2];J[e+160>>2]=J[b>>2];J[e+164>>2]=h;h=J[b+28>>2];J[e+184>>2]=J[b+24>>2];J[e+188>>2]=h;h=J[b+20>>2];J[e+176>>2]=J[b+16>>2];J[e+180>>2]=h;h=J[b+44>>2];J[e+200>>2]=J[b+40>>2];J[e+204>>2]=h;h=J[b+36>>2];J[e+192>>2]=J[b+32>>2];J[e+196>>2]=h;h=J[b+60>>2];J[e+216>>2]=J[b+56>>2];J[e+220>>2]=h;h=J[b+52>>2];J[e+208>>2]=J[b+48>>2];J[e+212>>2]=h;h=J[b+76>>2];J[e+104>>2]=J[b+72>>2];J[e+108>>2]=h;h=J[b+68>>2];J[e+96>>2]=J[b+64>>2];J[e+100>>2]=h;h=J[b+92>>2];J[e+120>>2]=J[b+88>>2];J[e+124>>2]=h;h=J[b+84>>2];J[e+112>>2]=J[b+80>>2];J[e+116>>2]=h;h=J[b+108>>2];J[e+136>>2]=J[b+104>>2];J[e+140>>2]=h;h=J[b+100>>2];J[e+128>>2]=J[b+96>>2];J[e+132>>2]=h;h=J[b+124>>2];J[e+152>>2]=J[b+120>>2];J[e+156>>2]=h;h=J[b+116>>2];J[e+144>>2]=J[b+112>>2];J[e+148>>2]=h;f=N[e+212>>2];i=N[e+148>>2];C=Q(Q(f+i)*Q(.5));N[e+212>>2]=f-C;f=N[e+216>>2];g=N[e+152>>2];D=Q(Q(f+g)*Q(.5));N[e+216>>2]=f-D;N[e+148>>2]=i-C;N[e+152>>2]=g-D;f=N[e+208>>2];i=N[e+144>>2];E=Q(Q(f+i)*Q(.5));N[e+208>>2]=f-E;N[e+144>>2]=i-E;l=J[J[a+28>>2]+4>>2]-17>>>0<=1?J[J[a+32>>2]+4>>2]-17>>>0<2:l;f=N[a+44>>2];i=N[a+48>>2];J[8502]=J[8502]+1;J[a+68>>2]=0;J[a+12>>2]=0;J[a+16>>2]=0;J[a+4>>2]=0;J[a+8>>2]=1065353216;J[a+60>>2]=-1;J[a+64>>2]=0;h=K[a+52|0];Kb(J[a+24>>2]);p=h?Q(0):f;q=h?Q(0):i;s=Q(p+q);h=a+4|0;i=Q(0xde0b6b000000000);a:{b:{c:{while(1){m=N[b+32>>2];r=N[b>>2];o=N[b+16>>2];n=N[b+36>>2];u=N[b+4>>2];w=N[b+20>>2];x=N[b+40>>2];f=N[a+12>>2];k=N[b+8>>2];j=N[a+4>>2];y=N[b+24>>2];g=N[a+8>>2];J[e+252>>2]=0;v=k;k=Q(-j);N[e+248>>2]=Q(Q(v*k)-Q(y*g))-Q(x*f);N[e+244>>2]=Q(Q(u*k)-Q(w*g))-Q(n*f);N[e+240>>2]=Q(Q(r*k)-Q(o*g))-Q(m*f);k=N[b+96>>2];m=N[b+64>>2];r=N[b+80>>2];o=N[b+100>>2];n=N[b+68>>2];u=N[b+84>>2];w=N[b+104>>2];x=N[b+72>>2];y=N[b+88>>2];J[e+236>>2]=0;N[e+232>>2]=Q(w*f)+Q(Q(x*j)+Q(g*y));N[e+228>>2]=Q(o*f)+Q(Q(n*j)+Q(g*u));N[e+224>>2]=Q(k*f)+Q(Q(m*j)+Q(g*r));ab(e+80|0,J[a+28>>2],e+240|0);ab(e- -64|0,J[a+32>>2],e+224|0);J[e+60>>2]=0;f=N[e+88>>2];g=N[e+80>>2];k=N[e+84>>2];j=Q(Q(Q(f*N[e+200>>2])+Q(Q(g*N[e+192>>2])+Q(k*N[e+196>>2])))+N[e+216>>2]);N[e+56>>2]=j;r=Q(Q(Q(f*N[e+184>>2])+Q(Q(g*N[e+176>>2])+Q(k*N[e+180>>2])))+N[e+212>>2]);N[e+52>>2]=r;o=Q(Q(Q(f*N[e+168>>2])+Q(Q(g*N[e+160>>2])+Q(k*N[e+164>>2])))+N[e+208>>2]);N[e+48>>2]=o;J[e+44>>2]=0;f=N[e+72>>2];g=N[e+64>>2];m=N[e+68>>2];k=Q(Q(Q(f*N[e+136>>2])+Q(Q(g*N[e+128>>2])+Q(m*N[e+132>>2])))+N[e+152>>2]);N[e+40>>2]=k;n=Q(Q(Q(f*N[e+120>>2])+Q(Q(g*N[e+112>>2])+Q(m*N[e+116>>2])))+N[e+148>>2]);N[e+36>>2]=n;f=Q(Q(Q(f*N[e+104>>2])+Q(Q(g*N[e+96>>2])+Q(m*N[e+100>>2])))+N[e+144>>2]);N[e+32>>2]=f;if(l){J[e+40>>2]=0;J[e+56>>2]=0;k=Q(0);j=Q(0)}J[e+28>>2]=0;g=Q(j-k);N[e+24>>2]=g;f=Q(o-f);N[e+16>>2]=f;j=Q(r-n);N[e+20>>2]=j;f=Q(Q(N[a+12>>2]*g)+Q(Q(N[a+4>>2]*f)+Q(j*N[a+8>>2])));if(!(!(f>Q(0))|!(Q(f*f)>Q(i*N[b+128>>2])))){J[a+68>>2]=10;break c}if(Pd(J[a+24>>2],e+16|0)){J[a+68>>2]=1;break c}f=Q(i-f);if(f<=Q(i*Q(9.999999974752427e-7))){J[a+68>>2]=f<=Q(0)?2:11;break c}Sd(J[a+24>>2],e+16|0,e+48|0,e+32|0);d:{if(!Qd(J[a+24>>2],e)){l=3;break d}f=N[e+8>>2];g=Q(f*f);f=N[e>>2];k=Q(f*f);f=N[e+4>>2];f=Q(g+Q(k+Q(f*f)));if(f>2];J[h>>2]=J[e>>2];J[h+4>>2]=l;l=J[e+12>>2];J[h+8>>2]=J[e+8>>2];J[h+12>>2]=l;l=6;break d}if(Q(i-f)<=Q(i*Q(1.1920928955078125e-7))){l=12;i=f;break d}t=J[e+4>>2];J[h>>2]=J[e>>2];J[h+4>>2]=t;t=J[e+12>>2];J[h+8>>2]=J[e+8>>2];J[h+12>>2]=t;t=J[a+64>>2];J[a+64>>2]=t+1;if((t|0)>1e3){break b}if(J[J[a+24>>2]>>2]==4){J[a+68>>2]=13;break b}i=f;continue}break}J[a+68>>2]=l}Od(J[a+24>>2],e+240|0,e+224|0);l=J[h+12>>2];J[e+264>>2]=J[h+8>>2];J[e+268>>2]=l;l=J[h+4>>2];J[e+256>>2]=J[h>>2];J[e+260>>2]=l;f=N[a+12>>2];g=N[a+4>>2];j=N[a+8>>2];k=Q(Q(f*f)+Q(Q(g*g)+Q(j*j)));if(k>2]=5}if(k>Q(14210854715202004e-30)){k=Q(Q(1)/Q(Y(k)));N[e+256>>2]=k*N[e+256>>2];N[e+260>>2]=k*N[e+260>>2];N[e+264>>2]=k*N[e+264>>2];m=Q(Y(i));i=Q(p/m);N[e+240>>2]=N[e+240>>2]-Q(i*g);N[e+244>>2]=N[e+244>>2]-Q(i*j);N[e+248>>2]=N[e+248>>2]-Q(i*f);i=Q(q/m);N[e+224>>2]=Q(i*g)+N[e+224>>2];N[e+228>>2]=Q(i*j)+N[e+228>>2];N[e+232>>2]=Q(i*f)+N[e+232>>2];l=1;J[a+60>>2]=1;f=Q(Q(Q(1)/k)-s);break a}J[a+60>>2]=2}l=0;f=Q(0)}F=1;t=J[a+20>>2];if(!(!J[a+68>>2]|(!J[a+72>>2]|!t))){F=!(N[8264]>Q(s+f))}e:{f:{g:{if(!t|l&F){break g}J[8501]=J[8501]+1;J[h+8>>2]=0;J[h+12>>2]=0;J[h>>2]=0;J[h+4>>2]=0;if(ua[J[J[t>>2]+8>>2]](t,J[a+24>>2],J[a+28>>2],J[a+32>>2],e+160|0,e+96|0,h,e+80|0,e- -64|0,d)|0){k=Q(0);g=N[e+72>>2];s=N[e+88>>2];p=Q(g-s);m=N[e+64>>2];r=N[e+80>>2];i=Q(m-r);o=N[e+68>>2];n=N[e+84>>2];q=Q(o-n);j=Q(Q(p*p)+Q(Q(i*i)+Q(q*q)));if(j<=Q(14210854715202004e-30)){k=N[a+16>>2];p=N[a+12>>2];i=N[a+4>>2];q=N[a+8>>2];j=Q(Q(p*p)+Q(Q(i*i)+Q(q*q)))}if(j>Q(14210854715202004e-30)){J[a+60>>2]=3;g=Q(s-g);v=Q(g*g);g=Q(r-m);m=Q(g*g);g=Q(n-o);g=Q(-Q(Y(Q(v+Q(m+Q(g*g))))));if(!(!(g>2];J[e+248>>2]=J[e+88>>2];J[e+252>>2]=d;d=J[e+76>>2];J[e+232>>2]=J[e+72>>2];J[e+236>>2]=d;d=J[e+84>>2];J[e+240>>2]=J[e+80>>2];J[e+244>>2]=d;d=J[e+68>>2];J[e+224>>2]=J[e+64>>2];J[e+228>>2]=d;N[e+268>>2]=k;f=Q(Q(1)/Q(Y(j)));N[e+264>>2]=p*f;N[e+260>>2]=q*f;N[e+256>>2]=i*f;f=g;break f}J[a+60>>2]=8;break f}J[a+60>>2]=9;if(l){break f}break e}g=N[a+12>>2];j=N[a+4>>2];k=N[a+8>>2];if(!(Q(Q(g*g)+Q(Q(j*j)+Q(k*k)))>Q(0))){break g}i=Q(N[e+88>>2]-N[e+72>>2]);o=Q(i*i);i=Q(N[e+80>>2]-N[e+64>>2]);v=Q(i*i);i=Q(N[e+84>>2]-N[e+68>>2]);i=Q(Q(Y(Q(o+Q(v+Q(i*i)))))-s);if(!(!(i>2];J[e+248>>2]=J[e+88>>2];J[e+252>>2]=d;d=J[e+76>>2];J[e+232>>2]=J[e+72>>2];J[e+236>>2]=d;N[e+248>>2]=N[e+248>>2]-Q(p*g);N[e+232>>2]=Q(q*g)+N[e+232>>2];d=J[e+68>>2];J[e+224>>2]=J[e+64>>2];J[e+228>>2]=d;d=J[e+84>>2];J[e+240>>2]=J[e+80>>2];J[e+244>>2]=d;N[e+224>>2]=Q(q*j)+N[e+224>>2];N[e+228>>2]=Q(q*k)+N[e+228>>2];N[e+240>>2]=N[e+240>>2]-Q(p*j);N[e+244>>2]=N[e+244>>2]-Q(p*k);d=J[h+12>>2];J[e+264>>2]=J[h+8>>2];J[e+268>>2]=d;d=J[h+4>>2];J[e+256>>2]=J[h>>2];J[e+260>>2]=d;g=N[e+264>>2];j=N[e+256>>2];k=N[e+260>>2];f=Q(Q(1)/Q(Y(Q(Q(g*g)+Q(Q(j*j)+Q(k*k))))));N[e+264>>2]=g*f;N[e+260>>2]=k*f;N[e+256>>2]=j*f;J[a+60>>2]=6;f=i;break f}J[a+60>>2]=5;break f}if(!l){break e}}if(!(f>2]>Q(f*f))){break e}d=J[e+260>>2];J[h>>2]=J[e+256>>2];J[h+4>>2]=d;d=J[e+268>>2];J[h+8>>2]=J[e+264>>2];J[h+12>>2]=d;N[a+56>>2]=f;k=N[b+32>>2];p=N[b>>2];q=N[b+16>>2];s=N[b+36>>2];m=N[b+4>>2];r=N[b+20>>2];i=N[b+40>>2];g=N[b+8>>2];o=N[b+24>>2];J[e+92>>2]=0;v=i;i=N[e+264>>2];j=N[e+256>>2];n=Q(g*j);g=N[e+260>>2];N[e+88>>2]=Q(v*i)+Q(n+Q(o*g));N[e+84>>2]=Q(s*i)+Q(Q(m*j)+Q(g*r));N[e+80>>2]=Q(k*i)+Q(Q(p*j)+Q(q*g));k=N[b+96>>2];p=N[b+64>>2];q=N[b+80>>2];s=N[b+100>>2];m=N[b+68>>2];r=N[b+84>>2];o=N[b+104>>2];n=N[b+72>>2];u=N[b+88>>2];J[e+76>>2]=0;j=Q(-j);N[e+72>>2]=Q(Q(n*j)-Q(u*g))-Q(o*i);N[e+68>>2]=Q(Q(m*j)-Q(r*g))-Q(s*i);N[e+64>>2]=Q(Q(p*j)-Q(q*g))-Q(k*i);d=e+48|0;h=e+80|0;ab(d,J[a+28>>2],h);l=e+32|0;t=e- -64|0;ab(l,J[a+32>>2],t);i=N[e+264>>2];G=N[e+216>>2];H=N[e+200>>2];I=N[e+192>>2];L=N[e+196>>2];M=N[e+152>>2];O=N[e+136>>2];P=N[e+128>>2];R=N[e+132>>2];S=N[e+208>>2];T=N[e+168>>2];U=N[e+160>>2];V=N[e+164>>2];W=N[e+144>>2];X=N[e+104>>2];Z=N[e+96>>2];_=N[e+100>>2];$=N[e+212>>2];aa=N[e+184>>2];k=N[e+56>>2];ba=N[e+176>>2];p=N[e+48>>2];ca=N[e+180>>2];q=N[e+52>>2];da=N[e+148>>2];ea=N[e+120>>2];s=N[e+40>>2];fa=N[e+112>>2];m=N[e+32>>2];ga=N[e+116>>2];r=N[e+36>>2];j=N[e+256>>2];g=N[e+260>>2];n=N[b+32>>2];u=N[b>>2];w=N[b+16>>2];x=N[b+36>>2];y=N[b+4>>2];z=N[b+20>>2];A=N[b+40>>2];o=N[b+8>>2];B=N[b+24>>2];J[e+92>>2]=0;v=o;o=Q(-j);N[e+88>>2]=Q(Q(v*o)-Q(B*g))-Q(A*i);N[e+84>>2]=Q(Q(y*o)-Q(z*g))-Q(x*i);N[e+80>>2]=Q(Q(u*o)-Q(w*g))-Q(n*i);n=N[b+96>>2];u=N[b+64>>2];w=N[b+80>>2];x=N[b+100>>2];y=N[b+68>>2];z=N[b+84>>2];A=N[b+104>>2];B=N[b+72>>2];v=N[b+88>>2];J[e+76>>2]=0;N[e+72>>2]=Q(A*i)+Q(Q(B*j)+Q(g*v));N[e+68>>2]=Q(x*i)+Q(Q(y*j)+Q(g*z));N[e+64>>2]=Q(n*i)+Q(Q(u*j)+Q(g*w));ab(d,J[a+28>>2],h);ab(l,J[a+32>>2],t);z=N[e+264>>2];j=N[e+56>>2];n=N[e+48>>2];u=N[e+52>>2];w=N[e+40>>2];x=N[e+32>>2];y=N[e+36>>2];v=Q(z*Q(Q(Q(Q(j*N[e+200>>2])+Q(Q(n*N[e+192>>2])+Q(u*N[e+196>>2])))+N[e+216>>2])-Q(Q(Q(w*N[e+136>>2])+Q(Q(x*N[e+128>>2])+Q(y*N[e+132>>2])))+N[e+152>>2])));A=N[e+256>>2];B=Q(A*Q(Q(Q(Q(j*N[e+168>>2])+Q(Q(n*N[e+160>>2])+Q(u*N[e+164>>2])))+N[e+208>>2])-Q(Q(Q(w*N[e+104>>2])+Q(Q(x*N[e+96>>2])+Q(y*N[e+100>>2])))+N[e+144>>2])));n=Q(Q(Q(Q(j*N[e+184>>2])+Q(Q(n*N[e+176>>2])+Q(u*N[e+180>>2])))+N[e+212>>2])-Q(Q(Q(w*N[e+120>>2])+Q(Q(x*N[e+112>>2])+Q(y*N[e+116>>2])))+N[e+148>>2]));j=N[e+260>>2];if(Q(v+Q(B+Q(n*j)))>2]=10;N[e+264>>2]=-z;N[e+260>>2]=-j;N[e+256>>2]=-A}J[e+92>>2]=0;N[e+88>>2]=D+N[e+232>>2];N[e+84>>2]=C+N[e+228>>2];N[e+80>>2]=E+N[e+224>>2];ua[J[J[c>>2]+16>>2]](c,e+256|0,e+80|0,f)}sa=e+272|0}function zb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=sa-16|0;sa=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{l:{m:{n:{if(a>>>0<=244){g=J[8952];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=g>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+35848|0;d=J[a+35856>>2];a=J[d+8>>2];o:{if((b|0)==(a|0)){m=35808,n=vs(c)&g,J[m>>2]=n;break o}J[a+12>>2]=b;J[b+8>>2]=a}a=d+8|0;b=c<<3;J[d+4>>2]=b|3;b=b+d|0;J[b+4>>2]=J[b+4>>2]|1;break a}k=J[8954];if(k>>>0>=h>>>0){break n}if(b){a=2<>2];a=J[e+8>>2];p:{if((b|0)==(a|0)){g=vs(d)&g;J[8952]=g;break p}J[a+12>>2]=b;J[b+8>>2]=a}J[e+4>>2]=h|3;c=e+h|0;a=d<<3;d=a-h|0;J[c+4>>2]=d|1;J[a+e>>2]=d;if(k){b=(k&-8)+35848|0;f=J[8957];a=1<<(k>>>3);q:{if(!(a&g)){J[8952]=a|g;a=b;break q}a=J[b+8>>2]}J[b+8>>2]=f;J[a+12>>2]=f;J[f+12>>2]=b;J[f+8>>2]=a}a=e+8|0;J[8957]=c;J[8954]=d;break a}j=J[8953];if(!j){break n}c=J[(ts(0-j&j)<<2)+36112>>2];f=(J[c+4>>2]&-8)-h|0;b=c;while(1){r:{a=J[b+16>>2];if(!a){a=J[b+20>>2];if(!a){break r}}b=(J[a+4>>2]&-8)-h|0;d=b>>>0>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=J[c+24>>2];d=J[c+12>>2];if((d|0)!=(c|0)){a=J[c+8>>2];J[a+12>>2]=d;J[d+8>>2]=a;break b}b=c+20|0;a=J[b>>2];if(!a){a=J[c+16>>2];if(!a){break m}b=c+16|0}while(1){e=b;d=a;b=a+20|0;a=J[b>>2];if(a){continue}b=d+16|0;a=J[d+16>>2];if(a){continue}break}J[e>>2]=0;break b}h=-1;if(a>>>0>4294967231){break n}a=a+11|0;h=a&-8;j=J[8953];if(!j){break n}f=0-h|0;g=0;s:{if(h>>>0<256){break s}g=31;if(h>>>0>16777215){break s}a=S(a>>>8|0);g=((h>>>38-a&1)-(a<<1)|0)+62|0}b=J[(g<<2)+36112>>2];t:{u:{v:{if(!b){a=0;break v}a=0;c=h<<((g|0)!=31?25-(g>>>1|0)|0:0);while(1){w:{e=(J[b+4>>2]&-8)-h|0;if(e>>>0>=f>>>0){break w}d=b;f=e;if(e){break w}f=0;a=b;break u}e=J[b+20>>2];b=J[((c>>>29&4)+b|0)+16>>2];a=e?(e|0)==(b|0)?a:e:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<>2]}if(!a){break t}}while(1){b=(J[a+4>>2]&-8)-h|0;c=b>>>0>>0;f=c?b:f;d=c?a:d;b=J[a+16>>2];if(b){a=b}else{a=J[a+20>>2]}if(a){continue}break}}if(!d|J[8954]-h>>>0<=f>>>0){break n}g=J[d+24>>2];c=J[d+12>>2];if((d|0)!=(c|0)){a=J[d+8>>2];J[a+12>>2]=c;J[c+8>>2]=a;break c}b=d+20|0;a=J[b>>2];if(!a){a=J[d+16>>2];if(!a){break l}b=d+16|0}while(1){e=b;c=a;b=a+20|0;a=J[b>>2];if(a){continue}b=c+16|0;a=J[c+16>>2];if(a){continue}break}J[e>>2]=0;break c}a=J[8954];if(a>>>0>=h>>>0){d=J[8957];b=a-h|0;x:{if(b>>>0>=16){c=d+h|0;J[c+4>>2]=b|1;J[a+d>>2]=b;J[d+4>>2]=h|3;break x}J[d+4>>2]=a|3;a=a+d|0;J[a+4>>2]=J[a+4>>2]|1;c=0;b=0}J[8954]=b;J[8957]=c;a=d+8|0;break a}i=J[8955];if(i>>>0>h>>>0){b=i-h|0;J[8955]=b;c=J[8958];a=c+h|0;J[8958]=a;J[a+4>>2]=b|1;J[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(J[9070]){c=J[9072]}else{J[9073]=-1;J[9074]=-1;J[9071]=4096;J[9072]=4096;J[9070]=l+12&-16^1431655768;J[9075]=0;J[9063]=0;c=4096}e=j+c|0;f=0-c|0;b=e&f;if(b>>>0<=h>>>0){break a}d=J[9062];if(d){c=J[9060];g=c+b|0;if(d>>>0>>0|c>>>0>=g>>>0){break a}}y:{if(!(K[36252]&4)){z:{A:{B:{C:{d=J[8958];if(d){a=36256;while(1){c=J[a>>2];if(c>>>0<=d>>>0&d>>>0>2]>>>0){break C}a=J[a+8>>2];if(a){continue}break}}c=gb(0);if((c|0)==-1){break z}g=b;d=J[9071];a=d-1|0;if(a&c){g=(b-c|0)+(a+c&0-d)|0}if(g>>>0<=h>>>0){break z}d=J[9062];if(d){a=J[9060];f=a+g|0;if(d>>>0>>0|a>>>0>=f>>>0){break z}}a=gb(g);if((c|0)!=(a|0)){break B}break y}g=f&e-i;c=gb(g);if((c|0)==(J[a>>2]+J[a+4>>2]|0)){break A}a=c}if((a|0)==-1){break z}if(h+48>>>0<=g>>>0){c=a;break y}c=J[9072];c=c+(j-g|0)&0-c;if((gb(c)|0)==-1){break z}g=c+g|0;c=a;break y}if((c|0)!=-1){break y}}J[9063]=J[9063]|4}c=gb(b);a=gb(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break i}g=a-c|0;if(g>>>0<=h+40>>>0){break i}}a=J[9060]+g|0;J[9060]=a;if(a>>>0>M[9061]){J[9061]=a}D:{e=J[8958];if(e){a=36256;while(1){d=J[a>>2];b=J[a+4>>2];if((d+b|0)==(c|0)){break D}a=J[a+8>>2];if(a){continue}break}break k}a=J[8956];if(!(a>>>0<=c>>>0?a:0)){J[8956]=c}a=0;J[9065]=g;J[9064]=c;J[8960]=-1;J[8961]=J[9070];J[9067]=0;while(1){d=a<<3;b=d+35848|0;J[d+35856>>2]=b;J[d+35860>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;J[8955]=b;a=a+c|0;J[8958]=a;J[a+4>>2]=b|1;J[(c+d|0)+4>>2]=40;J[8959]=J[9074];break j}if(J[a+12>>2]&8|(c>>>0<=e>>>0|d>>>0>e>>>0)){break k}J[a+4>>2]=b+g;a=e+8&7?-8-e&7:0;c=a+e|0;J[8958]=c;b=J[8955]+g|0;a=b-a|0;J[8955]=a;J[c+4>>2]=a|1;J[(b+e|0)+4>>2]=40;J[8959]=J[9074];break j}d=0;break b}c=0;break c}if(M[8956]>c>>>0){J[8956]=c}b=c+g|0;a=36256;E:{F:{G:{while(1){if((b|0)!=J[a>>2]){a=J[a+8>>2];if(a){continue}break G}break}if(!(K[a+12|0]&8)){break F}}a=36256;while(1){b=J[a>>2];if(b>>>0<=e>>>0){f=b+J[a+4>>2]|0;if(f>>>0>e>>>0){break E}}a=J[a+8>>2];continue}}J[a>>2]=c;J[a+4>>2]=J[a+4>>2]+g;j=(c+8&7?-8-c&7:0)+c|0;J[j+4>>2]=h|3;g=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=g-i|0;if((e|0)==(g|0)){J[8958]=i;a=J[8955]+a|0;J[8955]=a;J[i+4>>2]=a|1;break d}if(J[8957]==(g|0)){J[8957]=i;a=J[8954]+a|0;J[8954]=a;J[i+4>>2]=a|1;J[a+i>>2]=a;break d}f=J[g+4>>2];if((f&3)!=1){break e}e=f&-8;if(f>>>0<=255){c=J[g+12>>2];b=J[g+8>>2];if((c|0)==(b|0)){m=35808,n=J[8952]&vs(f>>>3|0),J[m>>2]=n;break f}J[b+12>>2]=c;J[c+8>>2]=b;break f}h=J[g+24>>2];c=J[g+12>>2];if((g|0)!=(c|0)){b=J[g+8>>2];J[b+12>>2]=c;J[c+8>>2]=b;break g}b=g+20|0;f=J[b>>2];if(!f){f=J[g+16>>2];if(!f){break h}b=g+16|0}while(1){d=b;c=f;b=c+20|0;f=J[b>>2];if(f){continue}b=c+16|0;f=J[c+16>>2];if(f){continue}break}J[d>>2]=0;break g}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;J[8955]=b;a=a+c|0;J[8958]=a;J[a+4>>2]=b|1;J[(c+d|0)+4>>2]=40;J[8959]=J[9074];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0>>0?e:a;J[d+4>>2]=27;a=J[9067];J[d+16>>2]=J[9066];J[d+20>>2]=a;a=J[9065];J[d+8>>2]=J[9064];J[d+12>>2]=a;J[9066]=d+8;J[9065]=g;J[9064]=c;J[9067]=0;a=d+24|0;while(1){J[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0>>0){continue}break}if((d|0)==(e|0)){break j}J[d+4>>2]=J[d+4>>2]&-2;f=d-e|0;J[e+4>>2]=f|1;J[d>>2]=f;if(f>>>0<=255){b=(f&-8)+35848|0;c=J[8952];a=1<<(f>>>3);H:{if(!(c&a)){J[8952]=a|c;a=b;break H}a=J[b+8>>2]}J[b+8>>2]=e;J[a+12>>2]=e;J[e+12>>2]=b;J[e+8>>2]=a;break j}a=31;if(f>>>0<=16777215){a=S(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}J[e+28>>2]=a;J[e+16>>2]=0;J[e+20>>2]=0;b=(a<<2)+36112|0;I:{d=J[8953];c=1<>2]=e;break J}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);d=J[b>>2];while(1){b=d;if((f|0)==(J[b+4>>2]&-8)){break I}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=J[c+16>>2];if(d){continue}break}J[c+16>>2]=e}J[e+24>>2]=b;J[e+12>>2]=e;J[e+8>>2]=e;break j}a=J[b+8>>2];J[a+12>>2]=e;J[b+8>>2]=e;J[e+24>>2]=0;J[e+12>>2]=b;J[e+8>>2]=a}a=J[8955];if(a>>>0<=h>>>0){break i}b=a-h|0;J[8955]=b;c=J[8958];a=c+h|0;J[8958]=a;J[a+4>>2]=b|1;J[c+4>>2]=h|3;a=c+8|0;break a}J[8951]=48;a=0;break a}c=0}if(!h){break f}d=J[g+28>>2];b=(d<<2)+36112|0;K:{if(J[b>>2]==(g|0)){J[b>>2]=c;if(c){break K}m=35812,n=J[8953]&vs(d),J[m>>2]=n;break f}J[h+(J[h+16>>2]==(g|0)?16:20)>>2]=c;if(!c){break f}}J[c+24>>2]=h;b=J[g+16>>2];if(b){J[c+16>>2]=b;J[b+24>>2]=c}b=J[g+20>>2];if(!b){break f}J[c+20>>2]=b;J[b+24>>2]=c}a=a+e|0;g=e+g|0;f=J[g+4>>2]}J[g+4>>2]=f&-2;J[i+4>>2]=a|1;J[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+35848|0;c=J[8952];a=1<<(a>>>3);L:{if(!(c&a)){J[8952]=a|c;a=b;break L}a=J[b+8>>2]}J[b+8>>2]=i;J[a+12>>2]=i;J[i+12>>2]=b;J[i+8>>2]=a;break d}f=31;if(a>>>0<=16777215){b=S(a>>>8|0);f=((a>>>38-b&1)-(b<<1)|0)+62|0}J[i+28>>2]=f;J[i+16>>2]=0;J[i+20>>2]=0;b=(f<<2)+36112|0;M:{d=J[8953];c=1<>2]=i;break N}f=a<<((f|0)!=31?25-(f>>>1|0)|0:0);c=J[b>>2];while(1){b=c;if((J[c+4>>2]&-8)==(a|0)){break M}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=J[d+16>>2];if(c){continue}break}J[d+16>>2]=i}J[i+24>>2]=b;J[i+12>>2]=i;J[i+8>>2]=i;break d}a=J[b+8>>2];J[a+12>>2]=i;J[b+8>>2]=i;J[i+24>>2]=0;J[i+12>>2]=b;J[i+8>>2]=a}a=j+8|0;break a}O:{if(!g){break O}b=J[d+28>>2];a=(b<<2)+36112|0;P:{if(J[a>>2]==(d|0)){J[a>>2]=c;if(c){break P}j=vs(b)&j;J[8953]=j;break O}J[g+(J[g+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break O}}J[c+24>>2]=g;a=J[d+16>>2];if(a){J[c+16>>2]=a;J[a+24>>2]=c}a=J[d+20>>2];if(!a){break O}J[c+20>>2]=a;J[a+24>>2]=c}Q:{if(f>>>0<=15){a=f+h|0;J[d+4>>2]=a|3;a=a+d|0;J[a+4>>2]=J[a+4>>2]|1;break Q}J[d+4>>2]=h|3;e=d+h|0;J[e+4>>2]=f|1;J[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+35848|0;c=J[8952];a=1<<(f>>>3);R:{if(!(c&a)){J[8952]=a|c;a=b;break R}a=J[b+8>>2]}J[b+8>>2]=e;J[a+12>>2]=e;J[e+12>>2]=b;J[e+8>>2]=a;break Q}a=31;if(f>>>0<=16777215){a=S(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}J[e+28>>2]=a;J[e+16>>2]=0;J[e+20>>2]=0;b=(a<<2)+36112|0;S:{c=1<>2]=e;break T}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);h=J[b>>2];while(1){b=h;if((J[b+4>>2]&-8)==(f|0)){break S}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=J[c+16>>2];if(h){continue}break}J[c+16>>2]=e}J[e+24>>2]=b;J[e+12>>2]=e;J[e+8>>2]=e;break Q}a=J[b+8>>2];J[a+12>>2]=e;J[b+8>>2]=e;J[e+24>>2]=0;J[e+12>>2]=b;J[e+8>>2]=a}a=d+8|0;break a}U:{if(!i){break U}b=J[c+28>>2];a=(b<<2)+36112|0;V:{if(J[a>>2]==(c|0)){J[a>>2]=d;if(d){break V}m=35812,n=vs(b)&j,J[m>>2]=n;break U}J[i+(J[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break U}}J[d+24>>2]=i;a=J[c+16>>2];if(a){J[d+16>>2]=a;J[a+24>>2]=d}a=J[c+20>>2];if(!a){break U}J[d+20>>2]=a;J[a+24>>2]=d}W:{if(f>>>0<=15){a=f+h|0;J[c+4>>2]=a|3;a=a+c|0;J[a+4>>2]=J[a+4>>2]|1;break W}J[c+4>>2]=h|3;d=c+h|0;J[d+4>>2]=f|1;J[d+f>>2]=f;if(k){b=(k&-8)+35848|0;e=J[8957];a=1<<(k>>>3);X:{if(!(a&g)){J[8952]=a|g;a=b;break X}a=J[b+8>>2]}J[b+8>>2]=e;J[a+12>>2]=e;J[e+12>>2]=b;J[e+8>>2]=a}J[8957]=d;J[8954]=f}a=c+8|0}sa=l+16|0;return a|0}function qi(a,b){a=a|0;b=b|0;var c=0,d=0,e=Q(0),f=0,g=Q(0),h=Q(0),i=0,j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=0,q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=0,v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=0,F=0,G=Q(0),I=Q(0),L=Q(0),M=0,O=Q(0),R=Q(0),S=Q(0),T=Q(0),U=Q(0),V=Q(0),W=Q(0),X=Q(0),Z=Q(0),_=Q(0),$=Q(0),aa=0,ba=0,ca=Q(0),da=Q(0),ea=Q(0),fa=0,ga=0,ha=Q(0),ia=Q(0),ja=Q(0),ka=Q(0),la=Q(0),ma=0,na=0,oa=0;d=J[a+32>>2];aa=d+388|0;c=J[a+28>>2];ba=c+388|0;d=d+4|0;c=c+4|0;if(K[a+739|0]){e=N[J[a+32>>2]+404>>2];V=N[J[a+28>>2]+404>>2];k=Q(e+V);k=k>Q(0)?Q(e/k):Q(.5);n=Q(Q(1)-k);r=N[a+672>>2];q=N[d+40>>2];h=N[a+664>>2];s=N[d+32>>2];l=N[d+36>>2];g=N[a+668>>2];o=N[d+56>>2];ha=Q(Q(Q(r*q)+Q(Q(h*s)+Q(l*g)))+o);B=Q(ha-o);L=B;o=N[a+592>>2];j=N[c+40>>2];m=N[a+560>>2];y=N[c+32>>2];w=N[a+576>>2];z=N[c+36>>2];R=Q(Q(o*j)+Q(Q(m*y)+Q(w*z)));t=N[a+656>>2];I=Q(t*q);q=N[a+624>>2];O=Q(q*s);s=N[a+640>>2];S=Q(I+Q(O+Q(s*l)));l=Q(Q(R*k)+Q(S*n));I=l;T=Q(l*l);v=N[c+8>>2];A=N[c>>2];D=N[c+4>>2];U=Q(Q(o*v)+Q(Q(m*A)+Q(D*w)));x=N[d+8>>2];W=N[d>>2];X=N[d+4>>2];Z=Q(Q(t*x)+Q(Q(q*W)+Q(X*s)));l=Q(Q(U*k)+Q(Z*n));G=N[c+24>>2];C=N[c+16>>2];O=w;w=N[c+20>>2];ca=Q(Q(o*G)+Q(Q(m*C)+Q(O*w)));O=N[d+24>>2];_=N[d+16>>2];o=s;s=N[d+20>>2];da=Q(Q(t*O)+Q(Q(q*_)+Q(o*s)));t=Q(Q(ca*k)+Q(da*n));q=Q(Q(1)/Q(Y(Q(T+Q(Q(l*l)+Q(t*t))))));o=Q(I*q);I=Q(B*o);m=N[d+48>>2];W=Q(m+Q(Q(r*x)+Q(Q(h*W)+Q(X*g))));B=Q(W-m);m=Q(l*q);g=Q(Q(r*O)+Q(Q(h*_)+Q(s*g)));r=N[d+52>>2];X=Q(g+r);s=Q(X-r);r=Q(t*q);h=Q(I+Q(Q(B*m)+Q(s*r)));l=Q(o*h);O=Q(L-l);g=N[a+608>>2];t=N[a+600>>2];q=N[a+604>>2];x=N[c+56>>2];_=Q(Q(Q(g*j)+Q(Q(t*y)+Q(z*q)))+x);x=Q(_-x);I=N[c+48>>2];ia=Q(I+Q(Q(g*v)+Q(Q(t*A)+Q(D*q))));I=Q(ia-I);L=Q(Q(g*G)+Q(Q(t*C)+Q(w*q)));g=N[c+52>>2];ja=Q(L+g);T=Q(ja-g);g=Q(Q(o*x)+Q(Q(I*m)+Q(T*r)));$=Q(o*g);l=Q($-l);t=Q(O-Q(n*l));q=Q(r*h);ka=Q(s-q);ea=Q(r*g);L=Q(ea-q);q=Q(ka-Q(n*L));h=Q(m*h);la=Q(B-h);g=Q(m*g);h=Q(g-h);s=Q(la-Q(n*h));$=Q(x-$);l=Q($+Q(k*l));T=Q(T-ea);B=Q(T+Q(k*L));g=Q(I-g);x=Q(g+Q(k*h));d=!(eQ(1.1920928955078125e-7)){j=Q(Q(1)/Q(Y(h)));h=Q(e*j);e=Q(V*j);g=Q(g*j);break a}h=N[a+588>>2];e=Q(h*v);v=N[a+556>>2];g=Q(v*A);A=N[a+572>>2];g=Q(e+Q(g+Q(D*A)));e=Q(Q(h*G)+Q(Q(v*C)+Q(A*w)));h=Q(Q(h*j)+Q(Q(v*y)+Q(A*z)))}p=J[b+24>>2];f=J[b+12>>2];N[f+8>>2]=Q(x*e)-Q(g*B);N[f+4>>2]=Q(l*g)-Q(h*x);N[f>>2]=Q(B*h)-Q(e*l);c=J[b+20>>2];N[c+8>>2]=-Q(Q(s*e)-Q(g*q));N[c+4>>2]=-Q(Q(t*g)-Q(h*s));N[c>>2]=-Q(Q(q*h)-Q(e*t));y=Q(Q(o*g)-Q(h*m));w=Q(Q(r*h)-Q(e*o));j=Q(Q(s*y)-Q(w*q));z=Q(Q(m*e)-Q(g*r));v=Q(Q(t*w)-Q(z*s));A=Q(Q(q*z)-Q(y*t));D=Q(Q(x*y)-Q(w*B));G=Q(Q(l*w)-Q(z*x));C=Q(Q(B*z)-Q(y*l));E=K[a+716|0];fa=!E;if(!(fa|d)){D=Q(k*D);G=Q(k*G);C=Q(k*C);v=Q(n*v);A=Q(n*A);j=Q(n*j)}i=p<<2;u=i+f|0;N[u+8>>2]=D;N[u+4>>2]=G;N[u>>2]=C;N[c+i>>2]=-A;M=p+1|0;N[c+(M<<2)>>2]=-v;ga=p+2|0;N[c+(ga<<2)>>2]=-j;j=Q(Q(s*r)+Q(m*Q(-q)));s=Q(Q(t*m)+Q(o*Q(-s)));t=Q(Q(q*o)+Q(r*Q(-t)));q=Q(Q(x*r)+Q(m*Q(-B)));x=Q(Q(l*m)+Q(o*Q(-x)));l=Q(Q(B*o)+Q(r*Q(-l)));if(!d){q=Q(k*q);x=Q(k*x);l=Q(k*l);s=Q(n*s);t=Q(n*t);j=Q(n*j)}n=Q(-r);B=Q(-m);v=Q(-o);ma=p<<3;d=f+ma|0;N[d+8>>2]=q;N[d+4>>2]=x;N[d>>2]=l;u=p<<1;N[c+(u<<2)>>2]=-t;na=u|1;N[c+(na<<2)>>2]=-s;oa=u+2|0;N[c+(oa<<2)>>2]=-j;k=N[(K[a+748|0]&8?a+756|0:b+4|0)>>2];b:{if(K[a+736|0]){s=Q(-z);t=Q(-y);j=Q(-w);x=Q(-h);l=Q(-e);q=Q(-g);d=J[b+28>>2];break b}C=N[b>>2];d=J[b+8>>2];N[d+8>>2]=h;N[d+4>>2]=e;N[d>>2]=g;F=d+i|0;N[F+8>>2]=z;N[F+4>>2]=y;N[F>>2]=w;d=d+ma|0;N[d+8>>2]=o;N[d+4>>2]=r;N[d>>2]=m;d=J[b+16>>2];x=Q(-h);N[d+8>>2]=x;l=Q(-e);N[d+4>>2]=l;q=Q(-g);N[d>>2]=q;F=p<<2;j=Q(-w);N[F+d>>2]=j;t=Q(-y);N[d+(M<<2)>>2]=t;s=Q(-z);N[d+(ga<<2)>>2]=s;u=u<<2;N[u+d>>2]=B;N[d+(na<<2)>>2]=n;N[d+(oa<<2)>>2]=v;d=J[b+28>>2];A=Q(ha-_);D=Q(W-ia);G=Q(X-ja);C=Q(k*C);N[d>>2]=Q(Q(h*A)+Q(Q(g*D)+Q(G*e)))*C;N[d+F>>2]=Q(Q(z*A)+Q(Q(w*D)+Q(G*y)))*C;N[d+u>>2]=C*Q(Q(o*A)+Q(Q(m*D)+Q(G*r)))}p=P(p,12);N[p+f>>2]=g;u=p+8|0;N[u+f>>2]=h;F=p+4|0;N[F+f>>2]=e;i=i<<2;N[i+f>>2]=w;M=i|4;N[M+f>>2]=y;ga=i|8;N[ga+f>>2]=z;N[c+p>>2]=q;N[c+u>>2]=x;N[c+F>>2]=l;N[c+i>>2]=j;N[c+M>>2]=t;N[c+ga>>2]=s;j=Q(Q(U*da)-Q(Z*ca));l=Q(j*h);h=Q(Q(ca*S)-Q(da*R));s=Q(h*g);g=Q(Q(R*Z)-Q(S*U));l=Q(l+Q(s+Q(g*e)));e=Q(k*N[b>>2]);N[d+p>>2]=l*e;N[d+i>>2]=Q(Q(j*z)+Q(Q(h*w)+Q(g*y)))*e;c:{d:{if(E){u=K[a+737|0]!=0;e=Q(N[a+708>>2]*N[a+732>>2]);d=e>Q(0)?1:2;break d}if(!K[a+737|0]){break c}e=Q(0);u=1;d=0}p=P(J[b+24>>2],5);i=p<<2;N[i+f>>2]=m;F=i+8|0;N[F+f>>2]=o;M=f;f=i+4|0;N[M+f>>2]=r;N[c+F>>2]=v;N[c+f>>2]=n;N[c+i>>2]=B;c=a+688|0;n=Eb(c);h=Fb(c);c=J[b+28>>2];J[i+c>>2]=0;i=J[a+748>>2];k=i&2?N[a+764>>2]:k;f=h!=n;if(!(!u|!(f|fa))){if(i&4){N[J[b+32>>2]+(p<<2)>>2]=N[a+752>>2]}n=Hb(N[a+728>>2],n,h,N[a+680>>2],Q(k*N[b>>2]));c=J[b+28>>2];i=p<<2;u=c+i|0;N[u>>2]=Q(Q(n*N[a+680>>2])*N[a+732>>2])+N[u>>2];N[i+J[b+36>>2]>>2]=-N[a+684>>2];N[i+J[b+40>>2]>>2]=N[a+684>>2]}if(!E){break c}i=p<<2;c=i+c|0;N[c>>2]=Q(Q(k*N[b>>2])*e)+N[c>>2];if(H[a+748|0]&1){N[i+J[b+32>>2]>>2]=N[a+760>>2]}e:{if(!f){J[J[b+36>>2]+(p<<2)>>2]=-8388609;e=Q(34028234663852886e22);break e}f=J[b+36>>2]+(p<<2)|0;if((d|0)==1){J[f>>2]=0;e=Q(34028234663852886e22);break e}J[f>>2]=-8388609;e=Q(0)}N[J[b+40>>2]+(p<<2)>>2]=e;k=N[a+704>>2];f:{if(!(k>Q(0))){break f}e=Q(Q(Q(N[ba+8>>2]*o)+Q(Q(N[ba>>2]*m)+Q(N[ba+4>>2]*r)))-Q(Q(N[aa+8>>2]*o)+Q(Q(N[aa>>2]*m)+Q(r*N[aa+4>>2]))));g:{if((d|0)==1){if(!(eN[c>>2]){break g}break f}if(!(e>Q(0))){break f}e=Q(e*Q(-k));if(!(e>2])){break f}}N[c>>2]=e}N[c>>2]=N[a+700>>2]*N[c>>2]}return}h=N[a+656>>2];A=N[d+40>>2];V=Q(h*A);g=N[a+624>>2];D=N[d+32>>2];j=N[a+640>>2];G=N[d+36>>2];ha=Q(Q(g*D)+Q(j*G));C=N[d+24>>2];W=Q(h*C);R=N[d+16>>2];S=N[d+20>>2];X=Q(Q(g*R)+Q(j*S));y=N[a+592>>2];e=N[c+40>>2];O=Q(y*e);w=N[a+560>>2];k=N[c+32>>2];z=N[a+576>>2];n=N[c+36>>2];_=Q(Q(w*k)+Q(z*n));t=N[a+588>>2];I=Q(t*e);q=N[a+556>>2];s=N[a+572>>2];ia=Q(Q(q*k)+Q(s*n));l=N[a+584>>2];ja=Q(l*e);B=N[a+552>>2];x=N[a+568>>2];T=Q(Q(B*k)+Q(x*n));o=N[c+24>>2];$=Q(y*o);m=N[c+16>>2];r=N[c+20>>2];ka=Q(Q(w*m)+Q(z*r));v=N[a+672>>2];L=Q(v*A);A=N[a+664>>2];U=Q(A*D);D=N[a+668>>2];G=Q(Q(L+Q(U+Q(G*D)))+N[d+56>>2]);C=Q(Q(Q(v*C)+Q(Q(A*R)+Q(S*D)))+N[d+52>>2]);R=N[a+608>>2];S=N[a+600>>2];U=N[a+604>>2];Z=N[c+56>>2];ca=Q(Q(Q(R*e)+Q(Q(S*k)+Q(n*U)))+Z);e=N[c+52>>2];da=Q(Q(Q(R*o)+Q(Q(S*m)+Q(r*U)))+e);L=g;g=N[d>>2];ea=N[d+4>>2];L=Q(Q(L*g)+Q(ea*j));j=N[d+8>>2];la=Q(h*j);k=N[c>>2];n=N[c+4>>2];w=Q(Q(w*k)+Q(n*z));h=N[c+8>>2];z=Q(y*h);g=Q(N[d+48>>2]+Q(Q(v*j)+Q(Q(A*g)+Q(ea*D))));j=N[c+48>>2];y=Q(j+Q(Q(R*h)+Q(Q(S*k)+Q(n*U))));p=J[b+24>>2];u=K[a+736|0];if(!u){f=J[b+8>>2];J[f>>2]=1065353216;i=(p<<2)+4|0;J[i+f>>2]=1065353216;E=(p<<3)+8|0;J[E+f>>2]=1065353216;f=J[b+16>>2];J[f>>2]=-1082130432;J[f+i>>2]=-1082130432;J[f+E>>2]=-1082130432;Z=N[c+56>>2];j=N[c+48>>2];e=N[c+52>>2]}c=J[b+12>>2];J[c+12>>2]=0;v=Q(ca-Z);N[c+4>>2]=v;J[c>>2]=0;e=Q(da-e);N[c+8>>2]=-e;i=p<<2;f=i+c|0;J[f+12>>2]=0;j=Q(y-j);N[f+8>>2]=j;J[f+4>>2]=0;N[f>>2]=-v;E=p<<3;f=E+c|0;J[f+8>>2]=0;J[f+12>>2]=0;N[f+4>>2]=-j;N[f>>2]=e;e=N[d+48>>2];j=N[d+56>>2];v=N[d+52>>2];f=J[b+20>>2];J[f+12>>2]=0;J[f>>2]=0;v=Q(C-v);N[f+8>>2]=v;j=Q(G-j);N[f+4>>2]=-j;d=f+i|0;J[d+12>>2]=0;e=Q(g-e);N[d+8>>2]=-e;J[d+4>>2]=0;N[d>>2]=j;d=f+E|0;J[d+8>>2]=0;J[d+12>>2]=0;N[d+4>>2]=e;N[d>>2]=-v;v=N[(K[a+748|0]&8?a+756|0:b+4|0)>>2];e=Q(v*N[b>>2]);d=J[b+28>>2];if(!u){N[d>>2]=e*Q(g-y);N[d+i>>2]=e*Q(C-da);N[d+(p<<3)>>2]=e*Q(G-ca)}i=P(p,12);g=Q(Q(l*h)+Q(Q(B*k)+Q(x*n)));N[i+c>>2]=g;E=i+8|0;j=Q(ja+T);N[E+c>>2]=j;F=i+4|0;y=Q(Q(l*o)+Q(Q(B*m)+Q(x*r)));N[F+c>>2]=y;u=p<<4;h=Q(Q(t*h)+Q(Q(q*k)+Q(n*s)));N[u+c>>2]=h;fa=u|4;m=Q(Q(t*o)+Q(Q(q*m)+Q(s*r)));N[fa+c>>2]=m;M=u|8;r=Q(I+ia);N[M+c>>2]=r;N[f+i>>2]=-g;N[f+E>>2]=-j;N[f+F>>2]=-y;N[f+u>>2]=-h;N[f+fa>>2]=-m;N[f+M>>2]=-r;k=Q(z+w);o=Q(W+X);w=Q(la+L);n=Q($+ka);z=Q(Q(k*o)-Q(w*n));s=Q(z*j);j=Q(V+ha);l=o;o=Q(O+_);t=Q(Q(n*j)-Q(l*o));l=Q(t*g);g=Q(Q(o*w)-Q(j*k));N[d+i>>2]=Q(s+Q(l+Q(y*g)))*e;N[d+u>>2]=Q(Q(z*r)+Q(Q(t*h)+Q(m*g)))*e;u=K[a+716|0];h:{i:{if(u){E=K[a+737|0]!=0;e=Q(N[a+708>>2]*N[a+732>>2]);d=e>Q(0)?1:2;break i}if(!K[a+737|0]){break h}e=Q(0);E=1;d=0}p=P(p,5);i=p<<2;N[i+c>>2]=k;F=i+8|0;N[F+c>>2]=o;M=c;c=i+4|0;N[M+c>>2]=n;N[f+F>>2]=-o;N[c+f>>2]=-n;N[f+i>>2]=-k;c=a+688|0;m=Eb(c);r=Fb(c);c=J[b+28>>2];J[i+c>>2]=0;i=J[a+748>>2];h=i&2?N[a+764>>2]:v;f=m!=r;if(!(!E|!(f|!u))){if(i&4){N[J[b+32>>2]+(p<<2)>>2]=N[a+752>>2]}m=Hb(N[a+728>>2],m,r,N[a+680>>2],Q(h*N[b>>2]));c=J[b+28>>2];i=p<<2;E=c+i|0;N[E>>2]=Q(Q(m*N[a+680>>2])*N[a+732>>2])+N[E>>2];N[i+J[b+36>>2]>>2]=-N[a+684>>2];N[i+J[b+40>>2]>>2]=N[a+684>>2]}if(!u){break h}i=p<<2;c=i+c|0;N[c>>2]=Q(Q(h*N[b>>2])*e)+N[c>>2];if(H[a+748|0]&1){N[i+J[b+32>>2]>>2]=N[a+760>>2]}j:{if(!f){J[J[b+36>>2]+(p<<2)>>2]=-8388609;e=Q(34028234663852886e22);break j}f=J[b+36>>2]+(p<<2)|0;if((d|0)==1){J[f>>2]=0;e=Q(34028234663852886e22);break j}J[f>>2]=-8388609;e=Q(0)}N[J[b+40>>2]+(p<<2)>>2]=e;m=N[a+704>>2];k:{if(!(m>Q(0))){break k}e=Q(Q(Q(N[ba+8>>2]*o)+Q(Q(N[ba>>2]*k)+Q(n*N[ba+4>>2])))-Q(Q(N[aa+8>>2]*o)+Q(Q(N[aa>>2]*k)+Q(n*N[aa+4>>2]))));l:{if((d|0)==1){if(!(eN[c>>2]){break l}break k}if(!(e>Q(0))){break k}e=Q(e*Q(-m));if(!(e>2])){break k}}N[c>>2]=e}N[c>>2]=N[a+700>>2]*N[c>>2]}}function Tc(a,b,c,d,e,f){var g=0,h=Q(0),i=0,j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=0,p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=0,G=Q(0),I=Q(0),L=0,M=Q(0),O=Q(0),R=Q(0);g=sa-672|0;sa=g;i=J[d+12>>2];F=J[d+4>>2];L=J[F+4>>2];a:{if((L|0)<=19){N[g+644>>2]=f;J[g+640>>2]=0;J[g+472>>2]=13156;N[g+636>>2]=N[e+4>>2];H[g+444|0]=0;J[g+420>>2]=953267991;J[g+36>>2]=22676;o=g+648|0;J[o+20>>2]=0;J[o+16>>2]=F;J[o+12>>2]=a;J[o+8>>2]=g+36;J[o+4>>2]=g+112;J[o>>2]=22452;b:{if(!(ua[J[J[o>>2]+8>>2]](o,b,c,i,i,g+472|0)|0)){break b}j=N[g+612>>2];k=N[g+604>>2];n=N[g+608>>2];h=Q(Q(j*j)+Q(Q(k*k)+Q(n*n)));if(!(h>Q(9999999747378752e-20))){break b}f=N[g+636>>2];if(!(f>2])){break b}h=Q(Q(1)/Q(Y(h)));N[g+612>>2]=j*h;N[g+608>>2]=n*h;N[g+604>>2]=k*h;J[g+60>>2]=F;J[g+68>>2]=J[d+8>>2];J[g+72>>2]=g+52;a=J[g+616>>2];J[g+84>>2]=J[g+612>>2];J[g+88>>2]=a;c=J[g+604>>2];b=J[g+608>>2];a=J[g+632>>2];J[g+100>>2]=J[g+628>>2];J[g+104>>2]=a;J[g+76>>2]=c;J[g+80>>2]=b;a=J[g+624>>2];J[g+92>>2]=J[g+620>>2];J[g+96>>2]=a;N[g+108>>2]=f;Q(ua[J[J[e>>2]+12>>2]](e,g+68|0,1))}break a}o=L-21|0;if(o>>>0<=8){c:{switch(o|0){case 0:r=N[i+20>>2];s=N[i+36>>2];p=N[i+52>>2];t=N[i+24>>2];q=N[i+56>>2];u=N[i+40>>2];A=N[i+32>>2];B=N[i>>2];C=N[i+16>>2];D=N[i+4>>2];E=N[i+8>>2];h=N[i+48>>2];m=N[b+52>>2];l=N[b+56>>2];j=N[b+48>>2];J[g+80>>2]=0;h=Q(-h);k=Q(Q(Q(E*h)-Q(t*p))-Q(u*q));N[g+76>>2]=k+Q(Q(l*u)+Q(Q(j*E)+Q(t*m)));n=Q(Q(Q(D*h)-Q(r*p))-Q(s*q));N[g+72>>2]=n+Q(Q(l*s)+Q(Q(j*D)+Q(r*m)));h=Q(Q(Q(B*h)-Q(C*p))-Q(A*q));N[g+68>>2]=h+Q(Q(l*A)+Q(Q(j*B)+Q(C*m)));m=N[c+52>>2];l=N[c+56>>2];j=N[c+48>>2];J[g+660>>2]=0;N[g+656>>2]=k+Q(Q(l*u)+Q(Q(j*E)+Q(t*m)));N[g+652>>2]=n+Q(Q(l*s)+Q(Q(j*D)+Q(r*m)));N[g+648>>2]=h+Q(Q(l*A)+Q(Q(j*B)+Q(C*m)));G=N[c+20>>2];p=N[c+36>>2];q=N[c+24>>2];m=N[c+40>>2];l=N[c+32>>2];j=N[c>>2];k=N[c+16>>2];n=N[c+4>>2];h=N[c+8>>2];J[g+516>>2]=0;J[g+520>>2]=0;J[g+500>>2]=0;J[g+524>>2]=0;J[g+528>>2]=0;J[g+532>>2]=0;N[g+512>>2]=Q(m*u)+Q(Q(h*E)+Q(t*q));N[g+508>>2]=Q(p*u)+Q(Q(n*E)+Q(t*G));N[g+496>>2]=Q(m*s)+Q(Q(h*D)+Q(r*q));N[g+492>>2]=Q(p*s)+Q(Q(n*D)+Q(r*G));J[g+484>>2]=0;N[g+504>>2]=Q(l*u)+Q(Q(j*E)+Q(t*k));N[g+488>>2]=Q(l*s)+Q(Q(j*D)+Q(r*k));N[g+480>>2]=Q(m*A)+Q(Q(h*B)+Q(C*q));N[g+476>>2]=Q(p*A)+Q(Q(n*B)+Q(C*G));N[g+472>>2]=Q(l*A)+Q(Q(j*B)+Q(C*k));d=J[d+8>>2];b=Ud(g+112|0,a,b,c,i,Q(ua[J[J[F>>2]+48>>2]](F)));J[b+220>>2]=F;J[b+216>>2]=d;J[b+212>>2]=e;J[b>>2]=13756;h=N[e+4>>2];N[b+208>>2]=f;N[b+200>>2]=h;e=g+52|0;d=g+36|0;ua[J[J[a>>2]+8>>2]](a,g+472|0,e,d);L=sa-16|0;sa=L;a=J[F+56>>2];J[L+12>>2]=b;J[L+8>>2]=a;J[L+4>>2]=18824;c=L+4|0;b=g+68|0;a=g+648|0;o=J[F+60>>2];d:{if(K[o+60|0]){ye(o,c,b,a,e,d,J[o+56>>2]);break d}ze(o,c,b,a,e,d)}sa=L+16|0;break a;case 7:N[g+284>>2]=f;J[g+280>>2]=0;J[g+112>>2]=13156;N[g+276>>2]=N[e+4>>2];o=g+68|0;J[o+20>>2]=F;J[o+16>>2]=0;J[o+12>>2]=a;J[o+4>>2]=0;J[o+8>>2]=0;J[o>>2]=22452;e:{if(!(ua[J[J[o>>2]+8>>2]](o,b,c,i,i,g+112|0)|0)){break e}j=N[g+252>>2];k=N[g+244>>2];n=N[g+248>>2];h=Q(Q(j*j)+Q(Q(k*k)+Q(n*n)));if(!(h>Q(9999999747378752e-20))){break e}f=N[g+276>>2];if(!(f>2])){break e}h=Q(Q(1)/Q(Y(h)));N[g+252>>2]=j*h;N[g+248>>2]=n*h;N[g+244>>2]=k*h;J[g+656>>2]=F;J[g+472>>2]=J[d+8>>2];J[g+476>>2]=g+648;a=J[g+256>>2];J[g+488>>2]=J[g+252>>2];J[g+492>>2]=a;c=J[g+244>>2];b=J[g+248>>2];a=J[g+272>>2];J[g+504>>2]=J[g+268>>2];J[g+508>>2]=a;J[g+480>>2]=c;J[g+484>>2]=b;a=J[g+264>>2];J[g+496>>2]=J[g+260>>2];J[g+500>>2]=a;N[g+512>>2]=f;Q(ua[J[J[e>>2]+12>>2]](e,g+472|0,1))}break a;default:break c}}r=N[b+52>>2];s=N[b+56>>2];t=N[i+52>>2];u=N[i+56>>2];A=N[c+52>>2];B=N[c+56>>2];M=N[i+20>>2];O=N[i+36>>2];R=N[i+24>>2];I=N[i+40>>2];C=N[b+48>>2];n=N[i+48>>2];D=N[c+48>>2];v=N[i+32>>2];w=N[i>>2];x=N[i+16>>2];y=N[i+4>>2];z=N[i+8>>2];E=N[c+20>>2];G=N[c+36>>2];p=N[c+24>>2];q=N[c+40>>2];m=N[c+32>>2];l=N[c>>2];j=N[c+16>>2];k=N[c+4>>2];h=N[c+8>>2];J[g+516>>2]=0;J[g+520>>2]=0;J[g+500>>2]=0;J[g+524>>2]=0;J[g+528>>2]=0;J[g+532>>2]=0;N[g+512>>2]=Q(q*I)+Q(Q(h*z)+Q(R*p));N[g+508>>2]=Q(G*I)+Q(Q(k*z)+Q(R*E));N[g+496>>2]=Q(q*O)+Q(Q(h*y)+Q(M*p));N[g+492>>2]=Q(G*O)+Q(Q(k*y)+Q(M*E));J[g+484>>2]=0;N[g+504>>2]=Q(m*I)+Q(Q(l*z)+Q(R*j));N[g+488>>2]=Q(m*O)+Q(Q(l*y)+Q(M*j));N[g+480>>2]=Q(q*v)+Q(Q(h*w)+Q(x*p));N[g+476>>2]=Q(G*v)+Q(Q(k*w)+Q(x*E));N[g+472>>2]=Q(m*v)+Q(Q(l*w)+Q(x*j));d=J[d+8>>2];b=Ud(g+112|0,a,b,c,i,Q(ua[J[J[F>>2]+48>>2]](F)));J[b+220>>2]=F;J[b+216>>2]=d;J[b+212>>2]=e;J[b>>2]=13968;h=N[e+4>>2];N[b+208>>2]=f;N[b+200>>2]=h;ua[J[J[a>>2]+8>>2]](a,g+472|0,g+68|0,g+648|0);J[g+64>>2]=0;f=Q(-n);k=Q(Q(Q(z*f)-Q(R*t))-Q(I*u));h=Q(Q(Q(y*f)-Q(M*t))-Q(O*u));l=Q(h+Q(Q(B*O)+Q(Q(D*y)+Q(M*A))));f=Q(Q(Q(w*f)-Q(x*t))-Q(v*u));p=Q(f+Q(Q(s*v)+Q(Q(C*w)+Q(x*r))));n=p;j=Q(f+Q(Q(B*v)+Q(Q(D*w)+Q(x*A))));if(j>2]=j;n=j}m=Q(h+Q(Q(s*O)+Q(Q(C*y)+Q(M*r))));h=m;if(l>2]=l;h=l}q=Q(k+Q(Q(s*I)+Q(Q(C*z)+Q(R*r))));f=q;k=Q(k+Q(Q(B*I)+Q(Q(D*z)+Q(R*A))));if(k>2]=k;f=k}J[g+48>>2]=0;N[g+52>>2]=N[g+68>>2]+n;N[g+56>>2]=N[g+72>>2]+h;N[g+60>>2]=N[g+76>>2]+f;N[g+36>>2]=N[g+648>>2]+(j>p?j:p);N[g+40>>2]=N[g+652>>2]+(l>m?l:m);N[g+44>>2]=N[g+656>>2]+(k>q?k:q);ua[J[J[F>>2]+64>>2]](F,b,g+52|0,g+36|0);break a}if((L|0)!=31){break a}ua[J[8262]](7733);u=N[i+52>>2];A=N[i+56>>2];B=N[b+52>>2];C=N[b+56>>2];I=N[i+20>>2];v=N[i+36>>2];D=N[b+20>>2];E=N[b+36>>2];G=N[b+24>>2];w=N[i+24>>2];p=N[b+40>>2];x=N[i+40>>2];y=N[i+32>>2];z=N[i>>2];r=N[i+16>>2];q=N[b+32>>2];m=N[b>>2];l=N[b+16>>2];h=N[i+48>>2];j=N[b+48>>2];s=N[i+4>>2];k=N[b+4>>2];n=N[b+8>>2];t=N[i+8>>2];J[g+172>>2]=0;J[g+156>>2]=0;J[g+140>>2]=0;N[g+152>>2]=Q(p*x)+Q(Q(n*t)+Q(w*G));N[g+148>>2]=Q(E*x)+Q(Q(k*t)+Q(w*D));N[g+136>>2]=Q(p*v)+Q(Q(n*s)+Q(I*G));N[g+132>>2]=Q(E*v)+Q(Q(k*s)+Q(I*D));h=Q(-h);N[g+168>>2]=Q(Q(Q(t*h)-Q(w*u))-Q(x*A))+Q(Q(C*x)+Q(Q(j*t)+Q(w*B)));N[g+164>>2]=Q(Q(Q(s*h)-Q(I*u))-Q(v*A))+Q(Q(C*v)+Q(Q(j*s)+Q(I*B)));J[g+124>>2]=0;N[g+144>>2]=Q(q*x)+Q(Q(m*t)+Q(w*l));N[g+128>>2]=Q(q*v)+Q(Q(m*s)+Q(I*l));N[g+120>>2]=Q(p*y)+Q(Q(n*z)+Q(r*G));N[g+116>>2]=Q(E*y)+Q(Q(k*z)+Q(r*D));N[g+112>>2]=Q(q*y)+Q(Q(m*z)+Q(r*l));N[g+160>>2]=Q(Q(Q(z*h)-Q(r*u))-Q(y*A))+Q(Q(C*y)+Q(Q(j*z)+Q(r*B)));o=g+112|0;ua[J[J[a>>2]+8>>2]](a,o,g+52|0,g+36|0);u=N[i+52>>2];A=N[i+56>>2];B=N[c+52>>2];C=N[c+56>>2];I=N[i+20>>2];v=N[i+36>>2];D=N[c+20>>2];E=N[c+36>>2];G=N[c+24>>2];w=N[i+24>>2];p=N[c+40>>2];x=N[i+40>>2];y=N[i+32>>2];z=N[i>>2];r=N[i+16>>2];q=N[c+32>>2];m=N[c>>2];l=N[c+16>>2];h=N[i+48>>2];j=N[c+48>>2];s=N[i+4>>2];k=N[c+4>>2];n=N[c+8>>2];t=N[i+8>>2];J[g+172>>2]=0;J[g+156>>2]=0;J[g+140>>2]=0;N[g+152>>2]=Q(p*x)+Q(Q(n*t)+Q(w*G));N[g+148>>2]=Q(E*x)+Q(Q(k*t)+Q(w*D));N[g+136>>2]=Q(p*v)+Q(Q(n*s)+Q(I*G));N[g+132>>2]=Q(E*v)+Q(Q(k*s)+Q(I*D));h=Q(-h);N[g+168>>2]=Q(Q(Q(t*h)-Q(w*u))-Q(x*A))+Q(Q(C*x)+Q(Q(j*t)+Q(w*B)));N[g+164>>2]=Q(Q(Q(s*h)-Q(I*u))-Q(v*A))+Q(Q(C*v)+Q(Q(j*s)+Q(I*B)));J[g+124>>2]=0;N[g+144>>2]=Q(q*x)+Q(Q(m*t)+Q(w*l));N[g+128>>2]=Q(q*v)+Q(Q(m*s)+Q(I*l));N[g+120>>2]=Q(p*y)+Q(Q(n*z)+Q(r*G));N[g+116>>2]=Q(E*y)+Q(Q(k*z)+Q(r*D));N[g+112>>2]=Q(q*y)+Q(Q(m*z)+Q(r*l));N[g+160>>2]=Q(Q(Q(z*h)-Q(r*u))-Q(y*A))+Q(Q(C*y)+Q(Q(j*z)+Q(r*B)));ua[J[J[a>>2]+8>>2]](a,o,g+16|0,g);h=N[g+16>>2];if(h>2]){N[g+52>>2]=h}h=N[g+20>>2];if(h>2]){N[g+56>>2]=h}h=N[g+24>>2];if(h>2]){N[g+60>>2]=h}h=N[g+28>>2];if(h>2]){N[g+64>>2]=h}h=N[g>>2];if(h>N[g+36>>2]){N[g+36>>2]=h}h=N[g+4>>2];if(h>N[g+40>>2]){N[g+40>>2]=h}h=N[g+8>>2];if(h>N[g+44>>2]){N[g+44>>2]=h}h=N[g+12>>2];if(h>N[g+48>>2]){N[g+48>>2]=h}J[g+504>>2]=e;J[g+500>>2]=i;N[g+492>>2]=f;J[g+488>>2]=c;J[g+484>>2]=b;J[g+480>>2]=a;J[g+476>>2]=d;J[g+472>>2]=14184;J[g+496>>2]=F;b=J[F+72>>2];f:{if(!b){if(J[F+24>>2]<=0){break f}c=0;while(1){a=J[F+32>>2]+P(c,80)|0;d=J[a+64>>2];A=N[a+48>>2];B=N[a+52>>2];C=N[a+56>>2];D=N[a>>2];E=N[a+16>>2];G=N[a+32>>2];p=N[a+4>>2];q=N[a+20>>2];m=N[a+36>>2];l=N[a+8>>2];j=N[a+24>>2];k=N[a+40>>2];a=J[g+500>>2];n=N[a+52>>2];h=N[a+56>>2];v=N[a+20>>2];w=N[a+24>>2];x=N[a+36>>2];y=N[a+40>>2];f=N[a+48>>2];z=N[a+8>>2];r=N[a>>2];s=N[a+4>>2];t=N[a+16>>2];u=N[a+32>>2];J[g+172>>2]=0;J[g+156>>2]=0;J[g+140>>2]=0;J[g+124>>2]=0;N[g+152>>2]=Q(k*y)+Q(Q(l*u)+Q(j*x));N[g+148>>2]=Q(m*y)+Q(Q(p*u)+Q(q*x));N[g+144>>2]=Q(G*y)+Q(Q(D*u)+Q(E*x));N[g+136>>2]=Q(k*w)+Q(Q(l*t)+Q(j*v));N[g+132>>2]=Q(m*w)+Q(Q(p*t)+Q(q*v));N[g+128>>2]=Q(G*w)+Q(Q(D*t)+Q(E*v));N[g+120>>2]=Q(k*z)+Q(Q(l*r)+Q(j*s));N[g+116>>2]=Q(m*z)+Q(Q(p*r)+Q(q*s));N[g+112>>2]=Q(G*z)+Q(Q(D*r)+Q(E*s));N[g+168>>2]=h+Q(Q(C*y)+Q(Q(A*u)+Q(B*x)));N[g+164>>2]=n+Q(Q(C*w)+Q(Q(A*t)+Q(B*v)));N[g+160>>2]=f+Q(Q(C*z)+Q(Q(A*r)+Q(B*s)));J[g+80>>2]=-1;J[g+84>>2]=0;J[g+72>>2]=1065353216;J[g+76>>2]=1;J[g+96>>2]=c;a=J[g+504>>2];J[g+92>>2]=a;J[g+88>>2]=d;J[g+68>>2]=14400;N[g+72>>2]=N[a+4>>2];b=J[g+476>>2];a=J[b+8>>2];J[g+668>>2]=c;J[g+664>>2]=-1;J[g+656>>2]=a;J[g+652>>2]=d;J[g+648>>2]=b;J[g+660>>2]=g+112;Tc(J[g+480>>2],J[g+484>>2],J[g+488>>2],g+648|0,g+68|0,N[g+492>>2]);c=c+1|0;if((c|0)>2]){continue}break}break f}a=J[g+64>>2];J[g+120>>2]=J[g+60>>2];J[g+124>>2]=a;a=J[g+48>>2];J[g+136>>2]=J[g+44>>2];J[g+140>>2]=a;a=J[g+40>>2];J[g+128>>2]=J[g+36>>2];J[g+132>>2]=a;a=J[g+56>>2];J[g+112>>2]=J[g+52>>2];J[g+116>>2]=a;xb(J[b>>2],g+112|0,g+472|0)}ua[J[8263]]()}sa=g+672|0}function Se(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=Q(0),l=0,m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=0,s=0,t=Q(0),u=Q(0),v=Q(0),w=0,x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=Q(0),I=Q(0),L=Q(0),M=Q(0),O=0,R=Q(0),S=Q(0),T=0;f=sa-176|0;sa=f;i=K[a+68|0];T=i?c:b;O=J[T+4>>2];if(J[O+76>>2]!=J[a+80>>2]){j=J[a+52>>2];if((j|0)>0){while(1){s=g<<2;h=J[s+J[a+60>>2]>>2];if(h){ua[J[J[h>>2]>>2]](h)|0;h=J[a+4>>2];ua[J[J[h>>2]+60>>2]](h,J[s+J[a+60>>2]>>2])}g=g+1|0;if((j|0)!=(g|0)){continue}break}}Te(a,b,c);J[a+80>>2]=J[O+76>>2]}h=J[a+52>>2];a:{if(!h){break a}j=J[O+72>>2];g=J[a+60>>2];s=J[a+4>>2];J[f+172>>2]=J[a+72>>2];J[f+168>>2]=g;J[f+164>>2]=e;J[f+160>>2]=d;J[f+156>>2]=s;s=i?b:c;J[f+152>>2]=s;J[f+148>>2]=T;J[f+144>>2]=16264;b=J[a+32>>2];if((b|0)<0){if(J[a+36>>2]<0){c=J[a+40>>2];if(!(c?!c|!K[a+44|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}H[a+44|0]=1;J[a+36>>2]=0;J[a+40>>2]=0}h=0;g=b;c=0-b&3;if(c){while(1){J[J[a+40>>2]+(g<<2)>>2]=0;g=g+1|0;h=h+1|0;if((c|0)!=(h|0)){continue}break}}if(b>>>0<=4294967292){while(1){b=g<<2;J[b+J[a+40>>2]>>2]=0;J[(b+J[a+40>>2]|0)+4>>2]=0;J[(b+J[a+40>>2]|0)+8>>2]=0;J[(b+J[a+40>>2]|0)+12>>2]=0;g=g+4|0;if(g){continue}break}}h=J[a+52>>2]}J[a+32>>2]=0;if((h|0)>0){i=a+28|0;b=0;while(1){c=J[J[a+60>>2]+(b<<2)>>2];if(c){ua[J[J[c>>2]+16>>2]](c,i);g=0;c=J[a+32>>2];if((c|0)>0){while(1){d=J[J[a+40>>2]+(g<<2)>>2];if(J[d+844>>2]){J[e+4>>2]=d;h=J[d+836>>2];r=J[J[e+8>>2]+8>>2];c=(h|0)==(r|0);l=d;d=J[J[e+12>>2]+8>>2];Ua(l,(c?h:d)+4|0,(c?d:r)+4|0);J[e+4>>2]=0;c=J[a+32>>2]}g=g+1|0;if((g|0)<(c|0)){continue}break}}b:{if((c|0)>=0){break b}if(J[a+36>>2]<0){d=J[a+40>>2];if(!(d?!d|!K[a+44|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](d)}H[a+44|0]=1;J[a+36>>2]=0;J[a+40>>2]=0}h=0;g=c;d=0-c&3;if(d){while(1){J[J[a+40>>2]+(g<<2)>>2]=0;g=g+1|0;h=h+1|0;if((d|0)!=(h|0)){continue}break}}if(c>>>0>4294967292){break b}while(1){c=g<<2;J[c+J[a+40>>2]>>2]=0;J[(c+J[a+40>>2]|0)+4>>2]=0;J[(c+J[a+40>>2]|0)+8>>2]=0;J[(c+J[a+40>>2]|0)+12>>2]=0;g=g+4|0;if(g){continue}break}}J[a+32>>2]=0;h=J[a+52>>2]}b=b+1|0;if((h|0)>(b|0)){continue}break}}c:{if(!j){if((h|0)<=0){break c}g=0;while(1){Re(f+144|0,J[(J[O+32>>2]+P(g,80)|0)+64>>2],g);g=g+1|0;if((h|0)!=(g|0)){continue}break}break c}b=J[T+12>>2];x=N[b+52>>2];y=N[b+56>>2];c=J[s+12>>2];z=N[c+52>>2];A=N[c+56>>2];k=N[b+20>>2];m=N[b+36>>2];B=N[c+20>>2];C=N[c+36>>2];D=N[c+24>>2];n=N[b+24>>2];E=N[c+40>>2];o=N[b+40>>2];F=N[c+32>>2];p=N[b+32>>2];G=N[c>>2];q=N[b>>2];I=N[c+16>>2];t=N[b+16>>2];L=N[b+48>>2];M=N[c+48>>2];u=N[b+4>>2];R=N[c+4>>2];S=N[c+8>>2];v=N[b+8>>2];J[f+108>>2]=0;J[f+92>>2]=0;J[f+76>>2]=0;N[f+88>>2]=Q(E*o)+Q(Q(S*v)+Q(n*D));N[f+84>>2]=Q(C*o)+Q(Q(R*v)+Q(n*B));N[f+72>>2]=Q(E*m)+Q(Q(S*u)+Q(k*D));N[f+68>>2]=Q(C*m)+Q(Q(R*u)+Q(k*B));L=Q(-L);N[f+104>>2]=Q(Q(Q(v*L)-Q(n*x))-Q(o*y))+Q(Q(A*o)+Q(Q(M*v)+Q(n*z)));N[f+100>>2]=Q(Q(Q(u*L)-Q(k*x))-Q(m*y))+Q(Q(A*m)+Q(Q(M*u)+Q(k*z)));J[f+60>>2]=0;N[f+48>>2]=Q(F*p)+Q(Q(G*q)+Q(t*I));N[f+80>>2]=Q(F*o)+Q(Q(G*v)+Q(n*I));N[f+64>>2]=Q(F*m)+Q(Q(G*u)+Q(k*I));N[f+56>>2]=Q(E*p)+Q(Q(S*q)+Q(t*D));N[f+52>>2]=Q(C*p)+Q(Q(R*q)+Q(t*B));N[f+96>>2]=Q(Q(Q(q*L)-Q(t*x))-Q(p*y))+Q(Q(A*p)+Q(Q(M*q)+Q(t*z)));b=J[s+4>>2];ua[J[J[b>>2]+8>>2]](b,f+48|0,f+128|0,f+112|0);k=N[e+32>>2];N[f+136>>2]=N[f+136>>2]-k;N[f+120>>2]=k+N[f+120>>2];N[f+128>>2]=N[f+128>>2]-k;N[f+132>>2]=N[f+132>>2]-k;N[f+112>>2]=k+N[f+112>>2];N[f+116>>2]=k+N[f+116>>2];b=J[f+140>>2];J[f+24>>2]=J[f+136>>2];J[f+28>>2]=b;b=J[f+124>>2];J[f+40>>2]=J[f+120>>2];J[f+44>>2]=b;b=J[f+116>>2];J[f+32>>2]=J[f+112>>2];J[f+36>>2]=b;b=J[f+132>>2];J[f+16>>2]=J[f+128>>2];J[f+20>>2]=b;c=0;i=0;h=J[j>>2];if(h){d=J[a+16>>2];k=N[f+40>>2];m=N[f+36>>2];n=N[f+32>>2];o=N[f+24>>2];p=N[f+20>>2];q=N[f+16>>2];e=J[a+12>>2];d:{if((e|0)>=0){break d}if((d|0)<0){b=J[a+20>>2];if(!(b?!b|!K[a+24|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}H[a+24|0]=1;J[a+16>>2]=0;J[a+20>>2]=0;d=0}b=e;g=0-b&3;if(g){while(1){J[J[a+20>>2]+(b<<2)>>2]=0;b=b+1|0;c=c+1|0;if((g|0)!=(c|0)){continue}break}}if(e>>>0>4294967292){break d}while(1){c=b<<2;J[c+J[a+20>>2]>>2]=0;J[(c+J[a+20>>2]|0)+4>>2]=0;J[(c+J[a+20>>2]|0)+8>>2]=0;J[(c+J[a+20>>2]|0)+12>>2]=0;b=b+4|0;if(b){continue}break}}e=0;J[a+12>>2]=0;if((d|0)<=63){J[8456]=J[8456]+1;c=ua[J[8258]](256,16)|0;e=J[a+12>>2];e:{if((e|0)<=0){break e}d=0;b=0;if(e>>>0>=4){j=e&-4;while(1){g=b<<2;J[g+c>>2]=J[g+J[a+20>>2]>>2];r=g|4;J[r+c>>2]=J[r+J[a+20>>2]>>2];r=g|8;J[r+c>>2]=J[r+J[a+20>>2]>>2];g=g|12;J[g+c>>2]=J[g+J[a+20>>2]>>2];b=b+4|0;i=i+4|0;if((j|0)!=(i|0)){continue}break}}g=e&3;if(!g){break e}while(1){j=b<<2;J[j+c>>2]=J[j+J[a+20>>2]>>2];b=b+1|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}b=J[a+20>>2];if(!(!b|!K[a+24|0])){if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}e=J[a+12>>2]}J[a+20>>2]=c;H[a+24|0]=1;J[a+16>>2]=64;d=64}r=f+144|0;f:{if((d|0)!=(e|0)){break f}j=d<<1;if((j|0)<=(d|0)){e=d;break f}b=0;g:{h:{if(!d){c=0;e=d;break h}J[8456]=J[8456]+1;c=ua[J[8258]](d<<3,16)|0;e=J[a+12>>2];if((e|0)<=0){break g}}if(e-1>>>0>=3){i=e&-4;d=0;while(1){g=b<<2;J[g+c>>2]=J[g+J[a+20>>2]>>2];w=g|4;J[w+c>>2]=J[w+J[a+20>>2]>>2];w=g|8;J[w+c>>2]=J[w+J[a+20>>2]>>2];g=g|12;J[g+c>>2]=J[g+J[a+20>>2]>>2];b=b+4|0;d=d+4|0;if((i|0)!=(d|0)){continue}break}}g=e&3;if(!g){break g}d=0;while(1){i=b<<2;J[i+c>>2]=J[i+J[a+20>>2]>>2];b=b+1|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}b=J[a+20>>2];if(!(!b|!K[a+24|0])){if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}e=J[a+12>>2]}J[a+20>>2]=c;H[a+24|0]=1;J[a+16>>2]=j}J[J[a+20>>2]+(e<<2)>>2]=h;b=e+1|0;while(1){d=J[a+20>>2];c=b-1|0;j=J[d+(c<<2)>>2];J[a+12>>2]=c;i:{if(!(n>=N[j>>2])){b=c;break i}if(!(q<=N[j+16>>2])){b=c;break i}if(!(m>=N[j+4>>2])){b=c;break i}if(!(p<=N[j+20>>2])){b=c;break i}if(!(k>=N[j+8>>2])){b=c;break i}if(!(o<=N[j+24>>2])){b=c;break i}if(J[j+40>>2]){g=J[a+16>>2];j:{if((g|0)!=(c|0)){break j}g=c?c<<1:1;if((g|0)<(b|0)){g=c;break j}k:{if(!g){d=0;break k}J[8456]=J[8456]+1;d=ua[J[8258]](g<<2,16)|0;c=J[a+12>>2]}l:{if((c|0)<=0){break l}h=0;b=0;if(c>>>0>=4){w=c&-4;e=0;while(1){i=b<<2;J[i+d>>2]=J[i+J[a+20>>2]>>2];l=i|4;J[l+d>>2]=J[l+J[a+20>>2]>>2];l=i|8;J[l+d>>2]=J[l+J[a+20>>2]>>2];i=i|12;J[i+d>>2]=J[i+J[a+20>>2]>>2];b=b+4|0;e=e+4|0;if((w|0)!=(e|0)){continue}break}}e=c&3;if(!e){break l}while(1){i=b<<2;J[i+d>>2]=J[i+J[a+20>>2]>>2];b=b+1|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}b=J[a+20>>2];if(!(!b|!K[a+24|0])){if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}c=J[a+12>>2]}J[a+20>>2]=d;H[a+24|0]=1;J[a+16>>2]=g}J[(c<<2)+d>>2]=J[j+36>>2];h=c+1|0;J[a+12>>2]=h;m:{if((g|0)!=(h|0)){break m}e=g?g<<1:1;if((e|0)<=(g|0)){h=g;break m}n:{if(!e){c=0;break n}J[8456]=J[8456]+1;c=ua[J[8258]](e<<2,16)|0;g=J[a+12>>2]}h=g;o:{if((g|0)<=0){break o}i=0;b=0;if(h>>>0>=4){w=h&-4;g=0;while(1){d=b<<2;J[d+c>>2]=J[d+J[a+20>>2]>>2];l=d|4;J[l+c>>2]=J[l+J[a+20>>2]>>2];l=d|8;J[l+c>>2]=J[l+J[a+20>>2]>>2];d=d|12;J[d+c>>2]=J[d+J[a+20>>2]>>2];b=b+4|0;g=g+4|0;if((w|0)!=(g|0)){continue}break}}d=h&3;if(!d){break o}while(1){g=b<<2;J[g+c>>2]=J[g+J[a+20>>2]>>2];b=b+1|0;i=i+1|0;if((d|0)!=(i|0)){continue}break}}b=J[a+20>>2];if(!(!b|!K[a+24|0])){if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}h=J[a+12>>2]}J[a+20>>2]=c;H[a+24|0]=1;J[a+16>>2]=e}J[J[a+20>>2]+(h<<2)>>2]=J[j+40>>2];b=h+1|0;J[a+12>>2]=b;break i}ua[J[J[r>>2]+12>>2]](r,j);b=J[a+12>>2]}if((b|0)>0){continue}break}}}j=J[a+52>>2];b=J[a+32>>2];p:{if((b|0)>=0){break p}if(J[a+36>>2]<0){c=J[a+40>>2];if(!(c?!c|!K[a+44|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}H[a+44|0]=1;J[a+36>>2]=0;J[a+40>>2]=0}h=0;g=b;c=0-b&3;if(c){while(1){J[J[a+40>>2]+(g<<2)>>2]=0;g=g+1|0;h=h+1|0;if((c|0)!=(h|0)){continue}break}}if(b>>>0>4294967292){break p}while(1){b=g<<2;J[b+J[a+40>>2]>>2]=0;J[(b+J[a+40>>2]|0)+4>>2]=0;J[(b+J[a+40>>2]|0)+8>>2]=0;J[(b+J[a+40>>2]|0)+12>>2]=0;g=g+4|0;if(g){continue}break}}J[a+32>>2]=0;if((j|0)<=0){break a}e=0;while(1){d=e<<2;q:{if(!J[d+J[a+60>>2]>>2]){break q}b=J[O+32>>2]+P(e,80)|0;g=J[b+64>>2];c=J[T+12>>2];R=N[c+52>>2];S=N[c+56>>2];x=N[b+48>>2];y=N[b+52>>2];z=N[b+56>>2];A=N[b+4>>2];B=N[b+20>>2];C=N[b+36>>2];D=N[b+8>>2];E=N[b+24>>2];F=N[b+40>>2];k=N[c+20>>2];m=N[c+24>>2];G=N[b>>2];I=N[b+16>>2];n=N[c+36>>2];M=N[b+32>>2];o=N[c+40>>2];L=N[c+48>>2];p=N[c+8>>2];q=N[c>>2];t=N[c+4>>2];u=N[c+16>>2];v=N[c+32>>2];h=0;J[f+108>>2]=0;J[f+92>>2]=0;J[f+76>>2]=0;J[f+60>>2]=0;N[f+80>>2]=Q(M*o)+Q(Q(G*v)+Q(n*I));N[f+64>>2]=Q(M*m)+Q(Q(G*u)+Q(k*I));N[f+48>>2]=Q(M*p)+Q(Q(G*q)+Q(t*I));N[f+88>>2]=Q(F*o)+Q(Q(D*v)+Q(n*E));N[f+84>>2]=Q(C*o)+Q(Q(A*v)+Q(n*B));N[f+72>>2]=Q(F*m)+Q(Q(D*u)+Q(k*E));N[f+68>>2]=Q(C*m)+Q(Q(A*u)+Q(k*B));N[f+56>>2]=Q(F*p)+Q(Q(D*q)+Q(t*E));N[f+52>>2]=Q(C*p)+Q(Q(A*q)+Q(t*B));N[f+104>>2]=S+Q(Q(z*o)+Q(Q(x*v)+Q(n*y)));N[f+100>>2]=R+Q(Q(z*m)+Q(Q(x*u)+Q(k*y)));N[f+96>>2]=L+Q(Q(z*p)+Q(Q(x*q)+Q(t*y)));ua[J[J[g>>2]+8>>2]](g,f+48|0,f+16|0,f+128|0);b=J[s+4>>2];ua[J[J[b>>2]+8>>2]](b,J[s+12>>2],f+112|0,f);b=0;r:{if(N[f+16>>2]>N[f>>2]){break r}b=0;if(N[f+128>>2]>2]){break r}b=1}if(!(N[f+20>>2]>N[f+4>>2])&(!(N[f+132>>2]>2])&(N[f+136>>2]>2]|N[f+24>>2]>N[f+8>>2]?h:b))){break q}b=J[d+J[a+60>>2]>>2];ua[J[J[b>>2]>>2]](b)|0;b=J[a+4>>2];ua[J[J[b>>2]+60>>2]](b,J[d+J[a+60>>2]>>2]);J[d+J[a+60>>2]>>2]=0}e=e+1|0;if((j|0)!=(e|0)){continue}break}}sa=f+176|0}function Ii(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=Q(0),l=Q(0),m=0,n=0,o=0,p=Q(0),q=0,r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=0,y=0,z=Q(0),A=0,B=0,C=0,D=0,E=Q(0),F=0,G=0,I=0,L=Q(0),O=Q(0),R=Q(0),S=Q(0),T=Q(0),U=Q(0),V=Q(0),W=Q(0),X=0,Z=Q(0);a=sa-80|0;sa=a;k=N[e+52>>2];l=N[f+52>>2];p=N[e+56>>2];s=N[f+56>>2];r=N[e+48>>2];t=N[f+48>>2];J[a+76>>2]=0;N[a+64>>2]=t-r;N[a+72>>2]=s-p;N[a+68>>2]=l-k;o=sa-19040|0;sa=o;q=e;y=a+8|0;e=o+18912|0;Xd(c,q,d,f,y,e,1);b=o+18668|0;J[b>>2]=0;J[b+4>>2]=0;J[o+18660>>2]=0;J[o+18664>>2]=0;J[o+18896>>2]=0;J[o+18900>>2]=0;J[o+18908>>2]=2;J[o+18676>>2]=0;b=a- -64|0;k=N[b>>2];l=N[b+4>>2];p=N[b+8>>2];J[o+32>>2]=0;N[o+28>>2]=-p;N[o+24>>2]=-l;N[o+20>>2]=-k;a:{b:{c:{switch(Wd(o+18532|0,e,o+20|0)-1|0){case 0:J[o+68>>2]=0;J[o+72>>2]=0;J[o+76>>2]=0;J[o+18512>>2]=0;J[o+20>>2]=9;J[o+18516>>2]=0;J[o+18520>>2]=0;J[o+60>>2]=0;J[o+64>>2]=0;e=0;while(1){m=P(255-e|0,56);j=m+(o+20|0)|0;J[j+4204>>2]=A;J[j+4200>>2]=0;j=j+4156|0;if(A){J[A+44>>2]=j}J[o+18524>>2]=j;n=o+4176|0;A=n+P(254-e|0,56)|0;J[A+44>>2]=0;J[A+48>>2]=j;J[(m+n|0)+44>>2]=A;J[o+18524>>2]=A;e=e+2|0;if((e|0)!=256){continue}break};J[o+18528>>2]=256;k=N[b>>2];l=N[b+4>>2];p=N[b+8>>2];A=0;J[o+16>>2]=0;N[o+12>>2]=-p;N[o+8>>2]=-l;N[o+4>>2]=-k;m=o+20|0;C=sa-32|0;sa=C;d:{e:{X=o+18532|0;n=J[X+372>>2];if(M[n+32>>2]<2){break e}if(!Xa(X)){break e}b=J[m+18496>>2];if(b){j=J[m+18508>>2];e=J[m+18500>>2];while(1){x=J[b+48>>2];if(x){J[x+44>>2]=J[b+44>>2]}x=J[b+44>>2];if(x){J[x+48>>2]=J[b+48>>2]}if(J[m+18496>>2]==(b|0)){J[m+18496>>2]=J[b+48>>2]}J[b+44>>2]=0;J[b+48>>2]=J[m+18504>>2];x=J[m+18504>>2];if(x){J[x+44>>2]=b}e=e-1|0;J[m+18504>>2]=b;j=j+1|0;b=J[m+18496>>2];if(b){continue}break}J[m+18508>>2]=j;J[m+18500>>2]=e}J[m+18492>>2]=0;J[m>>2]=0;j=J[n>>2];e=J[n+12>>2];k=N[e+16>>2];s=Q(N[j+16>>2]-k);b=J[n+4>>2];l=N[e+20>>2];r=Q(N[b+20>>2]-l);x=J[n+8>>2];p=N[e+24>>2];t=Q(N[x+24>>2]-p);u=Q(N[j+20>>2]-l);v=Q(N[b+24>>2]-p);w=Q(N[x+16>>2]-k);p=Q(N[j+24>>2]-p);k=Q(N[b+16>>2]-k);l=Q(N[x+20>>2]-l);f:{if(!(Q(Q(Q(Q(s*r)*t)+Q(Q(Q(Q(Q(u*v)*w)+Q(Q(p*k)*l))-Q(Q(v*s)*l))-Q(Q(k*u)*t)))-Q(Q(r*p)*w))>2]=j;J[n>>2]=b;ta=J[n+16>>2];J[n+16>>2]=J[n+20>>2];J[n+20>>2]=ta;e=j}e=rb(m,b,e,x,1);x=rb(m,J[n+4>>2],J[n>>2],J[n+12>>2],1);B=rb(m,J[n+8>>2],J[n+4>>2],J[n+12>>2],1);D=rb(m,J[n>>2],J[n+8>>2],J[n+12>>2],1);if(J[m+18500>>2]!=4){break e}j=J[m+18496>>2];b=J[j+48>>2];if(b){k=N[j+16>>2];k=Q(k*k);while(1){l=N[b+16>>2];l=Q(l*l);n=l>2];if(b){continue}break}}F=J[j+28>>2];G=J[j+24>>2];I=J[j+20>>2];k=N[j+16>>2];v=N[j+12>>2];s=N[j+8>>2];l=N[j+4>>2];p=N[j>>2];J[e+32>>2]=x;H[e+52|0]=0;J[x+32>>2]=e;H[x+52|0]=0;J[e+36>>2]=B;H[e+53|0]=0;J[B+32>>2]=e;H[B+52|0]=1;J[e+40>>2]=D;H[e+54|0]=0;J[D+32>>2]=e;H[D+52|0]=2;J[x+36>>2]=D;H[x+53|0]=2;J[D+40>>2]=x;H[D+54|0]=1;J[x+40>>2]=B;H[x+54|0]=1;J[B+36>>2]=x;H[B+53|0]=2;H[B+54|0]=1;J[B+40>>2]=D;J[D+36>>2]=B;H[D+53|0]=2;J[m>>2]=0;e=0;while(1){g:{h:{n=J[m+18492>>2];if(n>>>0<=127){b=0;J[C+12>>2]=0;J[C+4>>2]=0;J[C+8>>2]=0;J[m+18492>>2]=n+1;e=e+1|0;H[j+55|0]=e;r=N[j+8>>2];t=N[j>>2];u=N[j+4>>2];n=m+(n<<5)|0;J[n+72>>2]=0;E=r;r=Q(Q(1)/Q(Y(Q(Q(r*r)+Q(Q(t*t)+Q(u*u))))));N[n+68>>2]=E*r;N[n- -64>>2]=u*r;x=n+60|0;N[x>>2]=t*r;Ra(C+16|0,X,x);B=J[C+28>>2];J[n+84>>2]=J[C+24>>2];J[n+88>>2]=B;B=J[C+20>>2];J[n+76>>2]=J[C+16>>2];J[n+80>>2]=B;if(!(Q(Q(Q(N[j+8>>2]*N[n+84>>2])+Q(Q(N[j>>2]*N[n+76>>2])+Q(N[j+4>>2]*N[n+80>>2])))-N[j+16>>2])>Q(9999999747378752e-20))){J[m>>2]=7;break g}while(1){n=uc(m,e,x,J[((b<<2)+j|0)+32>>2],K[(b+j|0)+52|0],C+4|0);if(!n){break h}B=b>>>0<2;b=b+1|0;if(B){continue}break}break h}J[m>>2]=6;break g}if(!(n&M[C+12>>2]>2)){J[m>>2]=4;break g}b=J[C+4>>2];n=J[C+8>>2];J[b+36>>2]=n;H[b+53|0]=2;J[n+40>>2]=b;H[n+54|0]=1;b=J[j+48>>2];if(b){J[b+44>>2]=J[j+44>>2]}b=J[j+44>>2];if(b){J[b+48>>2]=J[j+48>>2]}if(J[m+18496>>2]==(j|0)){J[m+18496>>2]=J[j+48>>2]}J[m+18500>>2]=J[m+18500>>2]-1;J[j+44>>2]=0;J[j+48>>2]=J[m+18504>>2];b=J[m+18504>>2];if(b){J[b+44>>2]=j}J[m+18504>>2]=j;J[m+18508>>2]=J[m+18508>>2]+1;j=J[m+18496>>2];b=J[j+48>>2];if(b){k=N[j+16>>2];k=Q(k*k);while(1){l=N[b+16>>2];l=Q(l*l);n=l>2];if(b){continue}break}}F=J[j+28>>2];G=J[j+24>>2];I=J[j+20>>2];k=N[j+16>>2];v=N[j+12>>2];s=N[j+8>>2];l=N[j+4>>2];p=N[j>>2];if((e|0)!=255){continue}}break}N[m+56>>2]=k;N[m+40>>2]=p;J[m+4>>2]=I;N[m+52>>2]=v;N[m+48>>2]=s;N[m+44>>2]=l;J[m+36>>2]=3;J[m+12>>2]=F;J[m+8>>2]=G;p=Q(p*k);r=Q(N[G+16>>2]-p);l=Q(l*k);t=Q(N[F+20>>2]-l);u=Q(N[F+16>>2]-p);v=Q(N[G+20>>2]-l);w=Q(Q(r*t)-Q(u*v));k=Q(s*k);s=Q(N[F+24>>2]-k);E=t;t=Q(N[G+24>>2]-k);v=Q(Q(v*s)-Q(E*t));s=Q(Q(t*u)-Q(s*r));s=Q(Y(Q(Q(w*w)+Q(Q(v*v)+Q(s*s)))));N[m+20>>2]=s;r=Q(N[F+16>>2]-p);t=Q(N[I+20>>2]-l);u=Q(N[I+16>>2]-p);v=Q(N[F+20>>2]-l);w=Q(Q(r*t)-Q(u*v));z=Q(w*w);E=v;v=Q(N[I+24>>2]-k);w=t;t=Q(N[F+24>>2]-k);w=Q(Q(E*v)-Q(w*t));r=Q(Q(t*u)-Q(v*r));r=Q(Y(Q(z+Q(Q(w*w)+Q(r*r)))));N[m+24>>2]=r;t=Q(N[I+16>>2]-p);u=Q(N[G+20>>2]-l);p=Q(N[G+16>>2]-p);l=Q(N[I+20>>2]-l);v=Q(Q(t*u)-Q(p*l));E=l;l=Q(N[G+24>>2]-k);k=Q(N[I+24>>2]-k);u=Q(Q(E*l)-Q(u*k));k=Q(Q(k*p)-Q(l*t));l=Q(Y(Q(Q(v*v)+Q(Q(u*u)+Q(k*k)))));k=Q(l+Q(s+r));N[m+28>>2]=l/k;N[m+24>>2]=r/k;N[m+20>>2]=s/k;b=J[m>>2];break d}b=8;J[m>>2]=8;k=Q(0);p=Q(1);l=Q(0);s=N[o+12>>2];r=N[o+4>>2];t=N[o+8>>2];u=Q(Y(Q(Q(s*s)+Q(Q(r*r)+Q(t*t)))));if(u>Q(0)){p=Q(Q(1)/u);l=Q(p*Q(-s));k=Q(p*Q(-t));p=Q(p*Q(-r))}J[m+52>>2]=0;J[m+56>>2]=0;N[m+48>>2]=l;N[m+44>>2]=k;N[m+40>>2]=p;J[m+36>>2]=1;e=J[n>>2];J[m+20>>2]=1065353216;J[m+4>>2]=e}sa=C+32|0;if((b|0)==9){break b}i:{if(!J[o+56>>2]){k=Q(0);l=Q(0);p=Q(0);break i}j=o+24|0;p=Q(0);l=Q(0);k=Q(0);while(1){b=J[o+19032>>2];m=J[o+19036>>2];e=J[o+18912>>2]+(m>>1)|0;n=A<<2;ua[(m&1?J[b+J[e>>2]>>2]:b)|0](o+4|0,e,J[n+j>>2]);s=N[(o+n|0)+40>>2];p=Q(p+Q(s*N[o+12>>2]));l=Q(l+Q(s*N[o+8>>2]));k=Q(k+Q(N[o+4>>2]*s));A=A+1|0;if(A>>>0>2]){continue}break}}A=1;J[y>>2]=1;s=N[q+52>>2];r=N[q+24>>2];t=N[q+20>>2];u=N[q+56>>2];v=N[q+40>>2];w=N[q+36>>2];z=N[q+48>>2];L=N[q+8>>2];O=N[q>>2];R=N[q+4>>2];S=N[q+16>>2];T=N[q+32>>2];J[y+16>>2]=0;N[y+12>>2]=u+Q(Q(p*v)+Q(Q(k*T)+Q(l*w)));N[y+8>>2]=s+Q(Q(p*r)+Q(Q(k*S)+Q(l*t)));N[y+4>>2]=z+Q(Q(p*L)+Q(Q(k*O)+Q(l*R)));v=N[q+52>>2];w=N[q+20>>2];z=N[q+24>>2];L=N[q+56>>2];O=N[q+36>>2];R=N[q+40>>2];S=N[q+48>>2];T=N[q+8>>2];U=N[q>>2];V=N[q+4>>2];W=N[q+16>>2];Z=N[q+32>>2];r=N[o- -64>>2];t=N[o+68>>2];u=N[o+60>>2];s=N[o+76>>2];J[y+48>>2]=0;J[y+32>>2]=0;N[y+52>>2]=-s;N[y+44>>2]=-t;N[y+40>>2]=-r;N[y+36>>2]=-u;p=Q(p-Q(s*t));k=Q(k-Q(u*s));l=Q(l-Q(s*r));N[y+28>>2]=L+Q(Q(R*p)+Q(Q(Z*k)+Q(O*l)));N[y+24>>2]=v+Q(Q(p*z)+Q(Q(k*W)+Q(l*w)));N[y+20>>2]=S+Q(Q(p*T)+Q(Q(k*U)+Q(l*V)));break a;case 1:break c;default:break a}}J[y>>2]=2;break a}J[y>>2]=3}sa=o+19040|0;j:{if(!A){k=Q(0);l=Q(0);p=Q(0);s=Q(0);r=Q(0);t=Q(0);e=sa-544|0;sa=e;b=e+384|0;Xd(c,q,d,f,a+8|0,b,0);J[e+140>>2]=0;J[e+144>>2]=0;J[e+132>>2]=0;J[e+136>>2]=0;J[e+368>>2]=0;J[e+372>>2]=0;J[e+380>>2]=2;J[e+148>>2]=0;k:{l:{c=Wd(e+4|0,b,a- -64|0);if(!c){d=J[e+376>>2];if(!J[d+32>>2]){break l}f=0;while(1){j=f<<2;m=d+j|0;u=N[m+16>>2];b=J[e+504>>2];n=e+528|0;o=J[e+508>>2];d=J[e+384>>2]+(o>>1)|0;ua[(o&1?J[b+J[d>>2]>>2]:b)|0](n,d,J[m>>2]);b=J[j+J[e+376>>2]>>2];v=Q(-N[b+8>>2]);w=Q(-N[b+4>>2]);z=Q(-N[b>>2]);b=J[e+504>>2];d=J[e+508>>2];j=J[e+388>>2]+(d>>1)|0;b=d&1?J[b+J[j>>2]>>2]:b;k=Q(k+Q(u*N[e+536>>2]));p=Q(p+Q(u*N[e+532>>2]));l=Q(l+Q(u*N[e+528>>2]));J[e+524>>2]=0;N[e+520>>2]=Q(N[e+432>>2]*v)+Q(Q(N[e+424>>2]*z)+Q(N[e+428>>2]*w));N[e+516>>2]=Q(N[e+416>>2]*v)+Q(Q(N[e+408>>2]*z)+Q(N[e+412>>2]*w));N[e+512>>2]=Q(N[e+400>>2]*v)+Q(Q(N[e+392>>2]*z)+Q(N[e+396>>2]*w));ua[b|0](n,j,e+512|0);v=N[e+536>>2];w=N[e+528>>2];z=N[e+532>>2];t=Q(t+Q(u*Q(Q(Q(v*N[e+480>>2])+Q(Q(w*N[e+472>>2])+Q(z*N[e+476>>2])))+N[e+496>>2])));r=Q(r+Q(u*Q(Q(Q(v*N[e+464>>2])+Q(Q(w*N[e+456>>2])+Q(z*N[e+460>>2])))+N[e+492>>2])));s=Q(s+Q(u*Q(Q(Q(v*N[e+448>>2])+Q(Q(w*N[e+440>>2])+Q(z*N[e+444>>2])))+N[e+488>>2])));f=f+1|0;d=J[e+376>>2];if(f>>>0>2]){continue}break}break l}J[a+8>>2]=(c|0)==1?1:2;break k}u=N[q+52>>2];v=N[q+24>>2];w=N[q+20>>2];z=N[q+56>>2];L=N[q+40>>2];O=N[q+36>>2];R=N[q+16>>2];S=N[q+32>>2];T=N[q+48>>2];U=N[q+8>>2];V=N[q>>2];W=N[q+4>>2];J[a+24>>2]=0;N[a+12>>2]=T+Q(Q(k*U)+Q(Q(l*V)+Q(p*W)));N[a+20>>2]=z+Q(Q(k*L)+Q(Q(l*S)+Q(p*O)));N[a+16>>2]=u+Q(Q(k*v)+Q(Q(l*R)+Q(p*w)));v=N[q+52>>2];w=N[q+24>>2];z=N[q+20>>2];L=N[q+56>>2];O=N[q+40>>2];R=N[q+36>>2];S=N[q+48>>2];T=N[q+8>>2];U=N[q>>2];V=N[q+4>>2];W=N[q+16>>2];Z=N[q+32>>2];k=Q(k-t);l=Q(l-s);p=Q(p-r);u=Q(Y(Q(Q(k*k)+Q(Q(l*l)+Q(p*p)))));N[a+60>>2]=u;J[a+56>>2]=0;J[a+40>>2]=0;E=k;k=u>Q(9999999747378752e-20)?Q(Q(1)/u):Q(1);N[a+52>>2]=E*k;N[a+48>>2]=p*k;N[a+44>>2]=l*k;N[a+36>>2]=L+Q(Q(t*O)+Q(Q(s*Z)+Q(r*R)));N[a+32>>2]=v+Q(Q(t*w)+Q(Q(s*W)+Q(r*z)));N[a+28>>2]=S+Q(Q(t*T)+Q(Q(s*U)+Q(r*V)))}sa=e+544|0;if(c){break j}}b=J[a+16>>2];J[h>>2]=J[a+12>>2];J[h+4>>2]=b;b=J[a+24>>2];J[h+8>>2]=J[a+20>>2];J[h+12>>2]=b;b=J[a+40>>2];J[i+8>>2]=J[a+36>>2];J[i+12>>2]=b;b=J[a+32>>2];J[i>>2]=J[a+28>>2];J[i+4>>2]=b;b=J[a+56>>2];J[g+8>>2]=J[a+52>>2];J[g+12>>2]=b;b=J[a+48>>2];J[g>>2]=J[a+44>>2];J[g+4>>2]=b}sa=a+80|0;return A|0}function cm(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=0,r=0,s=Q(0),t=Q(0),u=Q(0),v=0,w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=0,B=Q(0),C=Q(0),D=0,E=0,F=Q(0),G=Q(0),I=Q(0),L=0,M=Q(0),O=Q(0),S=Q(0),T=Q(0),U=Q(0),V=Q(0),W=Q(0),X=Q(0),Y=Q(0),Z=Q(0),_=0,$=0,aa=Q(0),ba=0,ca=Q(0),da=0,ea=0,fa=0,ga=Q(0),ha=Q(0),ia=Q(0),ja=Q(0);f=sa-3584|0;sa=f;a:{b:{ea=J[b+4>>2];q=J[ea+72>>2];if(q){fa=J[c+4>>2];j=J[fa+72>>2];if(j){break b}}Se(a,b,c,d,e);break a}if(!(J[ea+76>>2]==J[a+108>>2]&J[fa+76>>2]==J[a+112>>2])){g=J[a+84>>2];k=J[g+8>>2];if((k|0)>0){while(1){E=J[(J[g+16>>2]+P(h,12)|0)+8>>2];if(E){ua[J[J[E>>2]>>2]](E)|0;i=J[a+4>>2];ua[J[J[i>>2]+60>>2]](i,E)}h=h+1|0;if((k|0)!=(h|0)){continue}break}g=J[a+84>>2]}Le(g);J[a+108>>2]=J[ea+76>>2];J[a+112>>2]=J[fa+76>>2]}J[f+88>>2]=0;H[f+92|0]=1;h=Lb(f+112|0);Lb(h+868|0);Lb(h+1736|0);Lb(h+2604|0);g=J[f+88>>2];if(!(g?!g|!K[f+92|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](g)}J[f+88>>2]=h;J[f+80>>2]=0;J[f+84>>2]=4;H[f+92|0]=0;E=J[a+84>>2];v=J[E+8>>2];c:{if((v|0)<=0){break c}while(1){g=J[(J[E+16>>2]+P(L,12)|0)+8>>2];if(g){ua[J[J[g>>2]+16>>2]](g,f+76|0);h=0;g=J[f+80>>2];if((g|0)>0){while(1){l=J[J[f+88>>2]+(h<<2)>>2];if(J[l+844>>2]){J[e+4>>2]=l;g=J[l+836>>2];i=J[J[e+8>>2]+8>>2];k=(g|0)==(i|0);$=g;g=J[J[e+12>>2]+8>>2];Ua(l,(k?$:g)+4|0,(k?g:i)+4|0);J[e+4>>2]=0;g=J[f+80>>2]}h=h+1|0;if((h|0)<(g|0)){continue}break}}d:{if((g|0)>=0){break d}if(J[f+84>>2]<0){h=J[f+88>>2];if(!(h?!h|!K[f+92|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](h)}H[f+92|0]=1;J[f+84>>2]=0;J[f+88>>2]=0}v=0;h=g;i=0-g&3;if(i){while(1){J[J[f+88>>2]+(h<<2)>>2]=0;h=h+1|0;v=v+1|0;if((i|0)!=(v|0)){continue}break}}if(g>>>0>4294967292){break d}while(1){g=h<<2;J[g+J[f+88>>2]>>2]=0;J[(g+J[f+88>>2]|0)+4>>2]=0;J[(g+J[f+88>>2]|0)+8>>2]=0;J[(g+J[f+88>>2]|0)+12>>2]=0;h=h+4|0;if(h){continue}break}}J[f+80>>2]=0;v=J[E+8>>2]}L=L+1|0;if((L|0)<(v|0)){continue}break}g=J[f+88>>2];if(!g|!K[f+92|0]){break c}if(g){J[8457]=J[8457]+1;ua[J[8259]](g)}}h=J[a+4>>2];g=J[a+84>>2];J[f+108>>2]=J[a+72>>2];J[f+104>>2]=g;J[f+96>>2]=d;J[f+92>>2]=h;J[f+80>>2]=0;J[f+76>>2]=16420;J[f+100>>2]=e;J[f+88>>2]=c;J[f+84>>2]=b;g=J[q>>2];e:{if(!g){break e}d=J[j>>2];if(!d){break e}i=J[b+12>>2];w=N[i+8>>2];m=Q(-N[i+48>>2]);u=N[i+24>>2];o=N[i+52>>2];x=N[i+40>>2];s=N[i+56>>2];h=J[c+12>>2];t=N[h+56>>2];p=N[h+48>>2];n=N[h+52>>2];ia=Q(Q(Q(Q(w*m)-Q(u*o))-Q(x*s))+Q(Q(t*x)+Q(Q(p*w)+Q(u*n))));y=N[i+4>>2];B=N[i+20>>2];z=N[i+36>>2];ja=Q(Q(Q(Q(y*m)-Q(B*o))-Q(z*s))+Q(Q(t*z)+Q(Q(p*y)+Q(B*n))));M=N[h+40>>2];F=N[h+24>>2];O=N[h+8>>2];G=N[h+36>>2];S=N[h+20>>2];I=N[h+4>>2];Z=N[i>>2];ca=Q(Z*m);m=N[i+16>>2];ca=Q(ca-Q(m*o));o=N[i+32>>2];ca=Q(Q(ca-Q(o*s))+Q(Q(t*o)+Q(Q(p*Z)+Q(m*n))));t=N[h+16>>2];p=N[h>>2];n=N[h+32>>2];aa=N[e+32>>2];J[f+116>>2]=d;J[f+112>>2]=g;C=Q(Q(M*x)+Q(Q(O*w)+Q(u*F)));W=Q(R(C));T=Q(Q(G*x)+Q(Q(I*w)+Q(u*S)));X=Q(R(T));U=Q(Q(n*x)+Q(Q(p*w)+Q(u*t)));Y=Q(R(U));V=Q(Q(M*z)+Q(Q(O*y)+Q(B*F)));w=Q(R(V));u=Q(Q(G*z)+Q(Q(I*y)+Q(B*S)));x=Q(R(u));y=Q(Q(n*z)+Q(Q(p*y)+Q(B*t)));B=Q(R(y));z=Q(Q(M*o)+Q(Q(O*Z)+Q(m*F)));M=Q(R(z));F=Q(Q(G*o)+Q(Q(I*Z)+Q(m*S)));O=Q(R(F));G=Q(Q(n*o)+Q(Q(p*Z)+Q(m*t)));S=Q(R(G));L=124;E=0;g=f+112|0;k=128;d=128;j=1;while(1){f:{g:{h:{q=j-1|0;$=q<<3;h=$+g|0;D=J[h>>2];A=J[h+4>>2];I=N[A+24>>2];m=N[A+8>>2];ga=Q(Q(Q(I-m)*Q(.5))+Q(0));o=N[A+16>>2];s=N[A>>2];ha=Q(Q(Q(o-s)*Q(.5))+Q(0));t=N[A+20>>2];n=N[A+4>>2];Z=Q(Q(Q(t-n)*Q(.5))+Q(0));p=Q(Q(ga*M)+Q(Q(ha*S)+Q(O*Z)));m=Q(Q(I+m)*Q(.5));s=Q(Q(o+s)*Q(.5));t=Q(Q(t+n)*Q(.5));n=Q(ca+Q(Q(m*z)+Q(Q(s*G)+Q(F*t))));i:{if(!(N[D>>2]<=Q(aa+Q(p+n)))|!(N[D+16>>2]>=Q(Q(n-p)-aa))){break i}p=Q(Q(ga*w)+Q(Q(ha*B)+Q(x*Z)));n=Q(ja+Q(Q(m*V)+Q(Q(s*y)+Q(u*t))));if(!(N[D+4>>2]<=Q(aa+Q(p+n)))|!(N[D+20>>2]>=Q(Q(n-p)-aa))){break i}p=Q(Q(ga*W)+Q(Q(ha*Y)+Q(X*Z)));n=Q(ia+Q(Q(m*C)+Q(Q(s*U)+Q(T*t))));if(!(N[D+8>>2]<=Q(aa+Q(p+n)))|!(N[D+24>>2]>=Q(Q(n-p)-aa))){break i}j:{if((q|0)<=(L|0)){h=k;i=g;break j}h=k<<1;k:{if((k|0)>=(h|0)){i=g;break k}if((d|0)>=(h|0)){i=g;break k}l:{if(!k){i=0;break l}J[8456]=J[8456]+1;i=ua[J[8258]](k<<4,16)|0;if((k|0)<=0){break l}v=0;L=0;if(k>>>0>=4){ba=k&-4;_=0;while(1){da=L<<3;r=da+i|0;l=g+da|0;d=J[l+4>>2];J[r>>2]=J[l>>2];J[r+4>>2]=d;d=da|8;r=d+i|0;l=d+g|0;d=J[l+4>>2];J[r>>2]=J[l>>2];J[r+4>>2]=d;d=da|16;r=d+i|0;l=d+g|0;d=J[l+4>>2];J[r>>2]=J[l>>2];J[r+4>>2]=d;d=da|24;r=d+i|0;l=d+g|0;d=J[l+4>>2];J[r>>2]=J[l>>2];J[r+4>>2]=d;L=L+4|0;_=_+4|0;if((ba|0)!=(_|0)){continue}break}}r=k&3;if(!r){break l}while(1){d=L<<3;l=d+i|0;k=d+g|0;d=J[k+4>>2];J[l>>2]=J[k>>2];J[l+4>>2]=d;L=L+1|0;v=v+1|0;if((r|0)!=(v|0)){continue}break}}d=E;E=1;if(g?d:0){J[8457]=J[8457]+1;ua[J[8259]](g)}d=h}L=h-4|0}g=J[A+40>>2];if(J[D+40>>2]){k=J[D+36>>2];if(g){g=i+$|0;J[g+4>>2]=J[A+36>>2];J[g>>2]=k;g=J[D+40>>2];k=(j<<3)+i|0;J[k+4>>2]=J[A+36>>2];J[k>>2]=g;g=J[D+36>>2];J[k+12>>2]=J[A+40>>2];J[k+8>>2]=g;g=J[D+40>>2];J[k+20>>2]=J[A+40>>2];J[k+16>>2]=g;j=j+3|0;break g}g=i+$|0;J[g+4>>2]=A;J[g>>2]=k;k=J[D+40>>2];g=(j<<3)+i|0;J[g+4>>2]=A;J[g>>2]=k;break h}if(g){g=i+$|0;J[g+4>>2]=J[A+36>>2];J[g>>2]=D;g=(j<<3)+i|0;J[g+4>>2]=J[A+40>>2];J[g>>2]=D;break h}ua[J[J[f+76>>2]+8>>2]](f+76|0,D,A);k=h;g=i}j=q;break f}j=j+1|0}k=h;g=i}if(j){continue}break}if(!g|!E){break e}if(g){J[8457]=J[8457]+1;ua[J[8259]](g)}}_=J[a+84>>2];if(J[_+8>>2]>0){g=0;while(1){i=P(g,12);d=i+J[_+16>>2]|0;k=J[d+8>>2];m:{if(!k){break m}j=J[ea+32>>2]+P(J[d>>2],80)|0;h=J[j+64>>2];d=J[b+12>>2];t=N[d+52>>2];p=N[d+56>>2];y=N[j+48>>2];B=N[j+52>>2];z=N[j+56>>2];M=N[j+4>>2];F=N[j+20>>2];O=N[j+36>>2];G=N[j+8>>2];S=N[j+24>>2];I=N[j+40>>2];W=N[d+20>>2];T=N[d+24>>2];m=N[j>>2];X=N[d+36>>2];o=N[j+16>>2];U=N[d+40>>2];s=N[j+32>>2];n=N[d+48>>2];Y=N[d+8>>2];V=N[d>>2];w=N[d+4>>2];u=N[d+16>>2];x=N[d+32>>2];J[f+172>>2]=0;J[f+156>>2]=0;J[f+140>>2]=0;J[f+124>>2]=0;N[f+144>>2]=Q(s*U)+Q(Q(m*x)+Q(X*o));N[f+128>>2]=Q(s*T)+Q(Q(m*u)+Q(W*o));N[f+112>>2]=Q(s*Y)+Q(Q(m*V)+Q(w*o));N[f+152>>2]=Q(I*U)+Q(Q(G*x)+Q(X*S));N[f+148>>2]=Q(O*U)+Q(Q(M*x)+Q(X*F));N[f+136>>2]=Q(I*T)+Q(Q(G*u)+Q(W*S));N[f+132>>2]=Q(O*T)+Q(Q(M*u)+Q(W*F));N[f+120>>2]=Q(I*Y)+Q(Q(G*V)+Q(w*S));N[f+116>>2]=Q(O*Y)+Q(Q(M*V)+Q(w*F));N[f+168>>2]=p+Q(Q(z*U)+Q(Q(y*x)+Q(X*B)));N[f+164>>2]=t+Q(Q(z*T)+Q(Q(y*u)+Q(W*B)));N[f+160>>2]=n+Q(Q(z*Y)+Q(Q(y*V)+Q(w*B)));d=f+112|0;ua[J[J[h>>2]+8>>2]](h,d,f+60|0,f+44|0);C=N[e+32>>2];N[f+60>>2]=N[f+60>>2]-C;N[f+64>>2]=N[f+64>>2]-C;N[f+68>>2]=N[f+68>>2]-C;N[f+44>>2]=C+N[f+44>>2];N[f+48>>2]=C+N[f+48>>2];N[f+52>>2]=C+N[f+52>>2];q=J[fa+32>>2]+P(J[(i+J[_+16>>2]|0)+4>>2],80)|0;h=J[q+64>>2];j=J[c+12>>2];t=N[j+52>>2];p=N[j+56>>2];y=N[q+48>>2];B=N[q+52>>2];z=N[q+56>>2];M=N[q+4>>2];F=N[q+20>>2];O=N[q+36>>2];G=N[q+8>>2];S=N[q+24>>2];I=N[q+40>>2];W=N[j+20>>2];T=N[j+24>>2];m=N[q>>2];X=N[j+36>>2];o=N[q+16>>2];U=N[j+40>>2];s=N[q+32>>2];n=N[j+48>>2];Y=N[j+8>>2];V=N[j>>2];w=N[j+4>>2];u=N[j+16>>2];x=N[j+32>>2];J[f+172>>2]=0;J[f+156>>2]=0;J[f+140>>2]=0;J[f+124>>2]=0;N[f+144>>2]=Q(s*U)+Q(Q(m*x)+Q(X*o));N[f+128>>2]=Q(s*T)+Q(Q(m*u)+Q(W*o));N[f+112>>2]=Q(s*Y)+Q(Q(m*V)+Q(w*o));N[f+152>>2]=Q(I*U)+Q(Q(G*x)+Q(X*S));N[f+148>>2]=Q(O*U)+Q(Q(M*x)+Q(X*F));N[f+136>>2]=Q(I*T)+Q(Q(G*u)+Q(W*S));N[f+132>>2]=Q(O*T)+Q(Q(M*u)+Q(W*F));N[f+120>>2]=Q(I*Y)+Q(Q(G*V)+Q(w*S));N[f+116>>2]=Q(O*Y)+Q(Q(M*V)+Q(w*F));N[f+168>>2]=p+Q(Q(z*U)+Q(Q(y*x)+Q(X*B)));N[f+164>>2]=t+Q(Q(z*T)+Q(Q(y*u)+Q(W*B)));N[f+160>>2]=n+Q(Q(z*Y)+Q(Q(y*V)+Q(w*B)));ua[J[J[h>>2]+8>>2]](h,d,f+28|0,f+12|0);m=Q(N[f+28>>2]-C);N[f+28>>2]=m;o=Q(N[f+32>>2]-C);N[f+32>>2]=o;s=Q(N[f+36>>2]-C);N[f+36>>2]=s;t=Q(C+N[f+12>>2]);N[f+12>>2]=t;p=Q(C+N[f+20>>2]);N[f+20>>2]=p;n=Q(C+N[f+16>>2]);N[f+16>>2]=n;n:{if(n>2]|o>N[f+48>>2]|(p>2]|s>N[f+52>>2])){break n}if(t>2]){break n}if(!(m>N[f+44>>2])){break m}}ua[J[J[k>>2]>>2]](k)|0;d=J[a+4>>2];ua[J[J[d>>2]+60>>2]](d,k);d=i+J[_+16>>2]|0;E=J[d+4>>2];q=J[d>>2];i=J[a+92>>2];o:{if((i|0)!=J[a+96>>2]){break o}ba=i?i<<1:1;if((ba|0)<=(i|0)){break o}p:{if(!ba){v=0;break p}J[8456]=J[8456]+1;v=ua[J[8258]](P(ba,12),16)|0;i=J[a+92>>2]}q:{if((i|0)<=0){break q}j=i&1;h=0;if((i|0)!=1){k=i&-2;i=0;while(1){d=P(h,12);r=d+v|0;l=d+J[a+100>>2]|0;d=J[l+4>>2];J[r>>2]=J[l>>2];J[r+4>>2]=d;J[r+8>>2]=J[l+8>>2];d=P(h|1,12);r=d+v|0;l=d+J[a+100>>2]|0;d=J[l+4>>2];J[r>>2]=J[l>>2];J[r+4>>2]=d;J[r+8>>2]=J[l+8>>2];h=h+2|0;i=i+2|0;if((k|0)!=(i|0)){continue}break}}if(!j){break q}d=P(h,12);i=d+v|0;h=d+J[a+100>>2]|0;d=J[h+4>>2];J[i>>2]=J[h>>2];J[i+4>>2]=d;J[i+8>>2]=J[h+8>>2]}d=J[a+100>>2];if(!(d?!d|!K[a+104|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](d)}J[a+100>>2]=v;H[a+104|0]=1;J[a+96>>2]=ba;i=J[a+92>>2]}d=J[a+100>>2]+P(i,12)|0;J[d+8>>2]=0;J[d+4>>2]=E;J[d>>2]=q;J[a+92>>2]=J[a+92>>2]+1}g=g+1|0;if((g|0)>2]){continue}break}}if(J[a+92>>2]>0){h=0;while(1){c=J[a+84>>2];b=J[a+100>>2]+P(h,12)|0;ua[J[J[c>>2]+8>>2]](c,J[b>>2],J[b+4>>2])|0;h=h+1|0;if((h|0)>2]){continue}break}}b=J[a+100>>2];if(!(b?!b|!K[a+104|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+100>>2]=0;H[a+104|0]=1;J[a+92>>2]=0;J[a+96>>2]=0}sa=f+3584|0}function If(){var a=0;fa(31140,31152,31168,0,11001,7,11004,0,11004,0,2234,11006,6);a=La(8);J[a>>2]=100;J[a+4>>2]=1;da(31132,4404,2,31184,11025,8,a|0,0,0);a=La(8);J[a>>2]=104;J[a+4>>2]=1;da(31132,4415,2,31184,11025,8,a|0,0,0);a=La(8);J[a>>2]=108;J[a+4>>2]=1;da(31140,7459,5,31216,11029,9,a|0,0,0);fa(31276,31288,31304,31140,11001,13,11001,12,11001,11,5292,11006,10);a=La(4);J[a>>2]=14;da(31276,5645,2,31320,11025,15,a|0,0,0);ea(31140,2650,2,31328,11196,17,16,0);ea(31140,7753,3,31616,11263,19,18,0);fa(31644,31656,31672,0,11001,21,11004,0,11004,0,2346,11006,20);a=La(8);J[a>>2]=16;J[a+4>>2]=1;da(31644,2251,4,31696,11371,22,a|0,0,0);fa(31744,31756,31772,31644,11001,26,11001,25,11001,24,5304,11006,23);a=La(4);J[a>>2]=27;da(31744,5645,2,31788,11025,28,a|0,0,0);ea(31644,2650,2,31796,11196,30,29,0);ea(31644,7753,3,31616,11263,19,31,0);fa(31872,31884,31900,0,11001,33,11004,0,11004,0,7053,11006,32);a=La(8);J[a>>2]=16;J[a+4>>2]=1;da(31872,4677,3,31916,11587,34,a|0,0,0);fa(31960,31972,31988,31872,11001,38,11001,37,11001,36,5331,11006,35);a=La(4);J[a>>2]=39;da(31960,5645,2,32004,11025,40,a|0,0,0);ea(31872,2650,2,32012,11196,42,41,0);ea(31872,7753,3,31616,11263,19,43,0);Z(8259,2,32084,11196,45,44,0);Z(7549,2,32092,11025,47,46,0);Z(10143,2,32100,11709,49,48,0);Z(10132,3,32108,11713,51,50,0);Z(6981,3,32120,11587,53,52,0);Z(2225,4,32144,11718,55,54,0);Z(1593,2,32100,11709,49,56,0);Z(1469,2,32100,11709,49,57,0);Z(1031,2,32100,11709,49,58,0);Z(3127,5,32160,11724,60,59,0);Z(1725,5,32192,11731,62,61,0);Z(1586,2,32100,11709,49,63,0);Z(1462,2,32100,11709,49,64,0);Z(1024,2,32100,11709,49,65,0);Z(2244,2,32100,11709,49,66,0);Z(3103,6,32224,11738,68,67,0);Z(1854,1,32248,11001,70,69,0);Z(1090,2,32092,11025,47,71,0);Z(5750,3,32120,11587,53,72,0);Z(6011,2,32084,11196,45,73,0);Z(5772,3,32252,11263,75,74,0);Z(6031,3,32252,11263,75,76,0);Z(6154,3,32120,11587,53,77,0);Z(6062,3,32120,11587,53,78,0);Z(5364,4,32272,11371,80,79,0);Z(6832,2,32084,11196,45,81,0);Z(3482,3,32252,11263,75,82,0);Z(3495,3,32252,11263,75,83,0);Z(1433,1,32248,11001,70,84,0);Z(6878,2,32100,11709,49,85,0);Z(6847,3,32108,11713,51,86,0);Z(8215,3,32108,11713,51,87,0);Z(1614,5,32288,11746,89,88,0);Z(4426,4,32272,11371,80,90,0);Z(2694,7,32320,11753,92,91,0);Z(4798,3,32348,11587,94,93,0);Z(1345,3,32348,11587,94,95,0);Z(7182,3,32108,11713,51,96,0);Z(3136,4,32368,11762,98,97,0);Z(1159,3,32108,11713,51,99,0);Z(1654,5,32288,11746,89,100,0);Z(9347,3,32120,11587,53,101,0);Z(9219,3,32120,11587,53,102,0);Z(1634,5,32288,11746,89,103,0);Z(4452,4,32272,11371,80,104,0);Z(1672,6,32384,11768,106,105,0);Z(4478,4,32272,11371,80,107,0);Z(2719,5,32416,11776,109,108,0);Z(6627,4,32448,11371,111,110,0);Z(3753,4,32464,11783,113,112,0);Z(6710,4,32464,11783,113,114,0);Z(7668,4,32464,11783,113,115,0);Z(2444,4,32464,11783,113,116,0);Z(4826,4,32448,11371,111,117,0);Z(7622,4,32464,11783,113,118,0);Z(1112,4,32464,11783,113,119,0);Z(5511,4,32448,11371,111,120,0);Z(3167,4,32464,11783,113,121,0);Z(7707,2,32480,11196,123,122,0);Z(6801,3,32120,11587,53,124,0);Z(9112,4,32496,11789,126,125,0);Z(8432,5,32512,11029,128,127,0);Z(5986,3,32108,11713,51,129,0);Z(6370,3,32120,11587,53,130,0);Z(5262,3,32120,11587,53,131,0);Z(8414,1,32248,11001,70,132,0);Z(4143,2,32084,11196,45,133,0);Z(1919,2,32084,11196,45,134,0);Z(3662,3,32120,11587,53,135,0);Z(2043,2,32532,11795,137,136,0);Z(3615,3,32108,11713,51,138,0);Z(1949,2,32084,11196,45,139,0);Z(5424,5,32544,11799,141,140,0);Z(2094,3,32564,11806,143,142,0);Z(5449,5,32544,11799,141,144,0);Z(2059,3,32564,11806,143,145,0);Z(3555,3,32108,11713,51,146,0);Z(2869,3,32108,11713,51,147,0);Z(1561,3,32120,11587,53,148,0);Z(2073,3,32576,11811,150,149,0);Z(6278,2,32084,11196,45,151,0);Z(2660,3,32108,11713,51,152,0);Z(1967,7,32592,11816,154,153,0);Z(1883,1,32248,11001,70,155,0);Z(7517,6,32624,11825,157,156,0);Z(2018,4,32656,11833,159,158,0);Z(6474,2,32084,11196,45,160,0);Z(6437,6,32672,11839,162,161,0);Z(2012,5,32704,11847,164,163,0);Z(1984,2,32084,11196,45,165,0);Z(1932,1,32248,11001,70,166,0);Z(1480,3,32120,11587,53,167,0);Z(2111,1,32248,11001,70,168,0);Z(4372,2,32084,11196,45,169,0);Z(7426,4,32272,11371,80,170,0);Z(7367,3,32252,11263,75,171,0);Z(7395,3,32120,11587,53,172,0);Z(6184,5,32736,11029,174,173,0);Z(1705,1,32248,11001,70,175,0);Z(7282,2,32084,11196,45,176,0);Z(7248,3,32120,11587,53,177,0);Z(8132,3,32120,11587,53,178,0);Z(6774,2,32084,11196,45,179,0);Z(7065,2,32084,11196,45,180,0);Z(7122,3,32120,11587,53,181,0);Z(6994,3,32348,11587,94,182,0);Z(6934,2,32480,11196,123,183,0);Z(3400,2,32480,11196,123,184,0);Z(3369,2,32480,11196,123,185,0);Z(3434,2,32480,11196,123,186,0);Z(6120,2,32084,11196,45,187,0);Z(4304,3,32120,11587,53,188,0);Z(4338,2,32084,11196,45,189,0);Z(8094,3,32108,11713,51,190,0);Z(3575,3,32108,11713,51,191,0);Z(1503,3,32120,11587,53,192,0);Z(1532,2,32084,11196,45,193,0);Z(6342,6,32224,11738,68,194,0);Z(6397,4,32448,11371,111,195,0);Z(1600,3,32756,11854,197,196,0);Z(4285,2,32084,11196,45,198,0);Z(4210,3,32120,11587,53,199,0);Z(1044,3,32120,11587,53,200,0);Z(6689,4,32368,11762,98,201,0);Z(3835,3,32108,11713,51,202,0);Z(4043,4,32496,11789,126,203,0);Z(4894,3,32120,11587,53,204,0);Z(4867,3,32120,11587,53,205,0);Z(1250,3,32120,11587,53,206,0);Z(1278,2,32084,11196,45,207,0);Z(1192,3,32120,11587,53,208,0);Z(1221,2,32084,11196,45,209,0);Z(7019,2,32092,11025,47,210,0);Z(4517,2,32092,11025,47,211,0);Z(6750,2,32480,11196,123,212,0);Z(4581,4,32368,11762,98,213,0);Z(8178,2,32100,11709,49,214,0);Z(7040,2,32084,11196,45,215,0);Z(6959,3,32120,11587,53,216,0);Z(7601,4,32272,11371,80,217,0);Z(7159,4,32272,11371,80,218,0);Z(6092,3,32120,11587,53,219,0);Z(8267,1,32248,11001,70,220,0);Z(1830,1,32248,11001,70,221,0);Z(4650,2,32084,11196,45,222,0);Z(6240,3,32252,11263,75,223,0);Z(10287,2,32084,11196,45,224,0);Z(10208,2,32084,11196,45,225,0);Z(10260,2,32084,11196,45,226,0);Z(10181,2,32084,11196,45,227,0);Z(10232,2,32084,11196,45,228,0);Z(10153,2,32084,11196,45,229,0);Z(3694,2,32084,11196,45,230,0);Z(2409,3,32252,11263,75,231,0);Z(9371,2,32084,11196,45,232,0);Z(9243,2,32084,11196,45,233,0);Z(9403,2,32084,11196,45,234,0);Z(9275,2,32084,11196,45,235,0);Z(9312,2,32084,11196,45,236,0);Z(9275,2,32084,11196,45,235,0);Z(1900,1,32248,11001,70,237,0);Z(1734,1,32248,11001,70,238,0);Z(3335,5,32768,11029,240,239,0);Z(3298,3,32120,11587,53,241,0);Z(2265,5,32512,11029,128,242,0);Z(2288,7,32800,11859,244,243,0);Z(5232,3,32120,11587,53,245,0);Z(7760,2,32092,11025,47,246,0);Z(2131,4,32832,11833,248,247,0);Z(5473,3,32348,11587,94,249,0);Z(1065,3,32120,11587,53,250,0);Z(5843,5,32848,11868,252,251,0);Z(1406,5,32768,11029,240,253,0);Z(1376,3,32120,11587,53,254,0);Z(2524,4,32448,11371,111,255,0);Z(2493,3,32120,11587,53,256,0);Z(5726,3,32120,11587,53,257,0);Z(5699,3,32120,11587,53,258,0);Z(7555,3,32120,11587,53,259,0);Z(7578,2,32084,11196,45,260,0);Z(5148,5,32160,11724,60,261,0);Z(5115,5,32160,11724,60,262,0);Z(4985,5,32160,11724,60,263,0);Z(5027,5,32160,11724,60,264,0);Z(5072,5,32160,11724,60,265,0);Z(5179,5,32160,11724,60,266,0);Z(4920,5,32160,11724,60,267,0);Z(4951,5,32160,11724,60,268,0);Z(2791,2,32480,11196,123,269,0);Z(2810,2,32480,11196,123,270,0);Z(8332,1,32248,11001,70,271,0);Z(4259,3,32120,11587,53,272,0);Z(3024,6,32880,11825,274,273,0);Z(7828,2,32084,11196,45,275,0);Z(7979,2,32084,11196,45,276,0);Z(3853,2,32084,11196,45,277,0);Z(8304,1,32248,11001,70,278,0);Z(4229,3,32120,11587,53,279,0);Z(2997,6,32880,11825,274,280,0);Z(7790,2,32084,11196,45,281,0);Z(7940,2,32084,11196,45,282,0);Z(4711,2,32084,11196,45,283,0);Z(8387,1,32248,11001,70,284,0);Z(3077,6,32880,11825,274,285,0);Z(7903,2,32084,11196,45,286,0);Z(8056,2,32084,11196,45,287,0);Z(3892,2,32084,11196,45,288,0);Z(8356,1,32248,11001,70,289,0);Z(3047,6,32880,11825,274,290,0);Z(7862,2,32084,11196,45,291,0);Z(8014,2,32084,11196,45,292,0);Z(4753,2,32084,11196,45,293,0);Z(1868,1,32248,11001,70,294,0);Z(3112,6,32224,11738,68,295,0);Z(3222,2,32084,11196,45,296,0);Z(7316,2,32084,11196,45,297,0);Z(4066,2,32084,11196,45,298,0);Z(6310,2,32084,11196,45,299,0);Z(5202,2,32084,11196,45,300,0);Z(6511,2,32100,11709,49,301,0);Z(7217,2,32084,11196,45,302,0);Z(3257,2,32084,11196,45,303,0);Z(6909,5,32912,11875,305,304,0);Z(5613,2,32084,11196,45,306,0);Z(2926,3,32108,11713,51,307,0);Z(2963,3,32108,11713,51,308,0);Z(2757,3,32108,11713,51,309,0);Z(5901,3,32348,11587,94,310,0);Z(1306,3,32348,11587,94,311,0);Z(2190,9,32944,11882,313,312,0);Z(1799,4,32832,11833,248,314,0);Z(3518,3,32108,11713,51,315,0);Z(2832,3,32108,11713,51,316,0);Z(2159,10,32992,11893,318,317,0);Z(1772,4,32832,11833,248,319,0);Z(2889,3,32108,11713,51,320,0);Z(2565,3,32108,11713,51,321,0);Z(2606,3,32108,11713,51,322,0)}function he(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,M=0,N=0,O=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;l=sa-48|0;sa=l;s=J[e>>2];u=b;S=J[d>>2];if(S){u=J[S+12>>2]}E=J[u+96>>2];n=c;j=J[b+96>>2];F=J[c+96>>2]-j|0;i=J[(S?S:s)+12>>2];r=J[b+92>>2];h=J[i+92>>2]-r|0;M=J[c+92>>2]-r|0;v=J[i+96>>2]-j|0;I=P(F,h)-P(M,v)|0;N=I>>31;w=F>>31;k=us(I,N,F,w);g=ta;q=J[b+88>>2];i=J[i+88>>2]-q|0;T=J[c+88>>2]-q|0;K=P(i,M)-P(h,T)|0;O=K>>31;o=T;p=o>>31;h=us(K,O,o,p);b=k-h|0;z=J[u+92>>2];c=z;G=b;A=g-(ta+(h>>>0>k>>>0)|0)|0;m=us(b,A,c,c>>31);f=ta;c=M;k=c>>31;y=us(K,O,c,k);g=ta;L=P(o,v)-P(i,F)|0;Q=L>>31;i=us(L,Q,F,w);b=y-i|0;u=J[u+88>>2];h=u;H=b;B=g-(ta+(i>>>0>y>>>0)|0)|0;b=us(b,B,h,h>>31);i=b+m|0;f=ta+f|0;f=b>>>0>i>>>0?f+1|0:f;h=us(o,p,L,Q);o=ta;c=us(c,k,I,N);C=h-c|0;D=o-(ta+(c>>>0>h>>>0)|0)|0;c=us(C,D,E,E>>31);b=c+i|0;f=ta+f|0;o=b>>>0>>0?f+1|0:f;c=us(I,N,q,q>>31);h=ta;g=c;c=us(K,O,j,j>>31);i=g+c|0;j=ta+h|0;j=c>>>0>i>>>0?j+1|0:j;h=us(L,Q,r,r>>31);c=h+i|0;g=ta+j|0;q=c;r=c>>>0>>0?g+1|0:g;n=s?J[s+12>>2]:n;y=J[n+96>>2];v=J[n+92>>2];w=J[n+88>>2];c=s;a:{if(!S){break a}c=s;if(!J[S+12>>2]){break a}c=J[J[S+8>>2]+4>>2];m=J[c+12>>2];h=m;i=J[h+92>>2];k=i>>31;g=us(i,k,L,Q);f=ta;n=g;h=J[h+88>>2];p=h>>31;g=us(h,p,I,N);n=n+g|0;f=ta+f|0;f=g>>>0>n>>>0?f+1|0:f;g=J[m+96>>2];R=g>>31;m=us(g,R,K,O);n=m+n|0;f=ta+f|0;f=m>>>0>n>>>0?f+1|0:f;b:{if(n>>>0>>0&(r|0)>=(f|0)|(f|0)<(r|0)){break b}n=c+12|0;t=J[a+100>>2];while(1){if((t|0)==J[c+20>>2]){break b}k=us(i,k,G,A);i=ta;h=us(h,p,H,B);k=h+k|0;f=ta+i|0;f=h>>>0>k>>>0?f+1|0:f;i=us(g,R,C,D);h=i+k|0;f=ta+f|0;f=h>>>0>>0?f+1|0:f;if((o|0)>=(f|0)&b>>>0>=h>>>0|(f|0)<(o|0)){break b}J[d>>2]=c;b=J[n>>2];E=J[b+96>>2];z=J[b+92>>2];u=J[b+88>>2];if(b){c=J[J[c+8>>2]+4>>2];n=c+12|0;b=h;o=f;m=J[c+12>>2];h=m;i=J[h+92>>2];k=i>>31;g=us(i,k,L,Q);f=ta;j=g;h=J[h+88>>2];p=h>>31;g=us(h,p,I,N);j=j+g|0;f=ta+f|0;f=g>>>0>j>>>0?f+1|0:f;g=J[m+96>>2];R=g>>31;m=us(g,R,K,O);x=m+j|0;j=ta+f|0;j=m>>>0>x>>>0?j+1|0:j;if(q>>>0>x>>>0&(r|0)>=(j|0)|(j|0)<(r|0)){break b}continue}break}b=h;o=f}c=J[e>>2]}h=us(G,A,v,v>>31);i=ta;g=h;h=us(H,B,w,w>>31);g=g+h|0;f=ta+i|0;f=g>>>0>>0?f+1|0:f;h=us(C,D,y,y>>31);i=h+g|0;f=ta+f|0;k=h>>>0>i>>>0?f+1|0:f;c:{if(!c){c=0;break c}if(!J[c+12>>2]){break c}n=J[J[c+8>>2]>>2];t=J[n+12>>2];g=t;h=J[g+92>>2];p=h>>31;f=us(h,p,L,Q);m=ta;j=f;g=J[g+88>>2];R=g>>31;f=us(g,R,I,N);x=j+f|0;j=ta+m|0;j=f>>>0>x>>>0?j+1|0:j;m=J[t+96>>2];V=m>>31;f=us(m,V,K,O);t=f+x|0;j=ta+j|0;j=f>>>0>t>>>0?j+1|0:j;if(q>>>0>t>>>0&(r|0)>=(j|0)|(j|0)<(r|0)){break c}W=n+12|0;x=J[a+100>>2];while(1){f=n;if((x|0)==J[f+20>>2]){break c}h=us(h,p,G,A);n=ta;j=h;h=us(g,R,H,B);p=j+h|0;g=ta+n|0;g=h>>>0>p>>>0?g+1|0:g;m=us(C,D,m,V);h=m+p|0;j=ta+g|0;j=h>>>0>>0?j+1|0:j;g=j;if(h>>>0<=i>>>0&(k|0)>=(g|0)|(g|0)<(k|0)){break c}J[e>>2]=f;c=J[W>>2];y=J[c+96>>2];v=J[c+92>>2];w=J[c+88>>2];if(c){n=J[J[f+8>>2]>>2];W=n+12|0;c=f;i=h;k=g;t=J[n+12>>2];g=t;h=J[g+92>>2];p=h>>31;f=us(h,p,L,Q);m=ta;j=f;g=J[g+88>>2];R=g>>31;f=us(g,R,I,N);U=j+f|0;j=ta+m|0;j=f>>>0>U>>>0?j+1|0:j;m=J[t+96>>2];V=m>>31;t=us(m,V,K,O);U=t+U|0;f=ta+j|0;f=t>>>0>U>>>0?f+1|0:f;if(q>>>0>U>>>0&(r|0)>=(f|0)|(f|0)<(r|0)){break c}continue}break}c=f;i=h;k=g}o=k-((b>>>0>i>>>0)+o|0)|0;d:{b=i-b|0;if(!!b&(o|0)>=0|(o|0)>0){t=J[a+100>>2];while(1){c=J[d>>2];while(1){e:{h=(P(v-z|0,M)+P(w-u|0,T)|0)+P(y-E|0,F)|0;p=h>>31;if(!c|!J[c+12>>2]){break e}n=J[J[c>>2]+8>>2];if((t|0)>=J[n+20>>2]){break e}i=J[n+12>>2];s=J[i+92>>2];a=s-z|0;m=J[i+88>>2];k=m-u|0;g=J[i+96>>2];f=g-E|0;q=(P(a,M)+P(k,T)|0)+P(f,F)|0;a=us(G,A,a,a>>31);i=ta;j=a;a=us(H,B,k,k>>31);k=j+a|0;j=ta+i|0;j=a>>>0>k>>>0?j+1|0:j;i=us(C,D,f,f>>31);a=i+k|0;f=ta+j|0;f=a>>>0>>0?f+1|0:f;f:{if(!(f|a)){if((q|0)<0){break f}break e}if((f|0)>0|(f|0)>=0){break e}J[l+32>>2]=0-a;J[l+36>>2]=0-(((a|0)!=0)+f|0);k=(q|0)>0;J[l+40>>2]=k?-1:q>>>31|0;i=(q|0)<0;J[l+24>>2]=k?q:i?0-q|0:0;a=q>>31;J[l+28>>2]=k?a:i?0-(((q|0)!=0)+a|0)|0:0;g:{if((h|0)>0){J[l+16>>2]=1;k=p;f=-1;a=h;break g}if((h|0)<0){J[l+16>>2]=-1;k=0-(((h|0)!=0)+p|0)|0;f=1;a=0-h|0;break g}J[l+16>>2]=0;k=0;f=0;a=0}J[l>>2]=a;J[l+4>>2]=k;a=b;i=o;h:{if(!!a&(i|0)>=0|(i|0)>0){break h}i=0;a=0;if((o|0)>0|(o|0)>=0){break h}J[l+16>>2]=f;i=0-(((b|0)!=0)+o|0)|0;a=0-b|0}J[l+8>>2]=a;J[l+12>>2]=i;if((lb(l+24|0,l)|0)<0){break e}}c=(c|0)!=(S|0)?n:0;J[d>>2]=c;a=v-s|0;a=us(G,A,a,a>>31);b=ta;h=a;a=w-m|0;a=us(H,B,a,a>>31);o=h+a|0;j=ta+b|0;j=a>>>0>o>>>0?j+1|0:j;a=y-g|0;a=us(C,D,a,a>>31);b=a+o|0;f=ta+j|0;o=a>>>0>b>>>0?f+1|0:f;u=m;z=s;E=g;continue}break}a=J[e>>2];if(!a|!J[a+12>>2]){break d}x=J[J[a+8>>2]>>2];if((t|0)>=J[x+20>>2]){break d}i=J[x+12>>2];r=J[i+92>>2];f=r-v|0;q=f>>31;a=us(f,q,L,Q);c=ta;g=a;v=J[i+88>>2];k=v-w|0;n=k>>31;a=us(k,n,I,N);w=g+a|0;g=ta+c|0;g=a>>>0>w>>>0?g+1|0:g;s=J[i+96>>2];i=s-y|0;m=i>>31;c=us(K,O,i,m);if((0-c|0)!=(w|0)|(0-(ta+((c|0)!=0)|0)|0)!=(g|0)){break d}a=r-z|0;a=us(G,A,a,a>>31);c=ta;g=a;a=v-u|0;a=us(H,B,a,a>>31);g=g+a|0;j=ta+c|0;j=a>>>0>g>>>0?j+1|0:j;a=s-E|0;a=us(C,D,a,a>>31);c=a+g|0;j=ta+j|0;j=a>>>0>c>>>0?j+1|0:j;a=j;if(!c&(a|0)<=0|(a|0)<0){break d}s=(P(f,M)+P(k,T)|0)+P(i,F)|0;g=us(f,q,G,A);f=ta;j=g;g=us(H,B,k,n);k=j+g|0;f=ta+f|0;f=g>>>0>k>>>0?f+1|0:f;g=us(C,D,i,m);i=g+k|0;f=ta+f|0;f=g>>>0>i>>>0?f+1|0:f;i:{if(!(f|i)){if((s|0)<0){break i}break d}if((f|0)>0|(f|0)>=0){break d}J[l+32>>2]=0-i;J[l+36>>2]=0-(((i|0)!=0)+f|0);k=(s|0)>0;J[l+40>>2]=k?-1:s>>>31|0;g=(s|0)<0;J[l+24>>2]=k?s:g?0-s|0:0;i=s>>31;J[l+28>>2]=k?i:g?0-(((s|0)!=0)+i|0)|0:0;j:{if((h|0)>0){J[l+16>>2]=1;i=-1;break j}if((h|0)<0){J[l+16>>2]=-1;i=h;h=0-h|0;p=0-(((i|0)!=0)+p|0)|0;i=1;break j}J[l+16>>2]=0;h=0;p=0;i=0}J[l>>2]=h;J[l+4>>2]=p;h=b;g=o;k:{if(!!h&(g|0)>=0|(g|0)>0){break k}g=0;h=0;if((o|0)>0|(o|0)>=0){break k}J[l+16>>2]=i;g=0-(((b|0)!=0)+o|0)|0;h=0-b|0}J[l+8>>2]=h;J[l+12>>2]=g;if((lb(l+24|0,l)|0)<=0){break d}}J[e>>2]=x;b=J[x+12>>2];y=J[b+96>>2];v=J[b+92>>2];w=J[b+88>>2];b=c;o=a;continue}}if((o|0)>0|(o|0)>=0){break d}t=J[a+100>>2];while(1){h=(P(v-z|0,M)+P(w-u|0,T)|0)+P(y-E|0,F)|0;p=h>>31;l:{if(!c|!J[c+12>>2]){break l}r=J[J[c+4>>2]+8>>2];if((t|0)>=J[r+20>>2]){break l}i=J[r+12>>2];m=J[i+92>>2];a=m-v|0;k=J[i+88>>2];f=k-w|0;i=J[i+96>>2];q=i-y|0;j=(P(a,M)+P(f,T)|0)+P(q,F)|0;a=us(G,A,a,a>>31);g=ta;n=a;a=us(H,B,f,f>>31);n=n+a|0;f=ta+g|0;f=a>>>0>n>>>0?f+1|0:f;a=n;n=us(C,D,q,q>>31);a=a+n|0;g=ta+f|0;g=a>>>0>>0?g+1|0:g;m:{if(!(g|a)){if((j|0)>0){break m}break l}if((g|0)>0|(g|0)>=0){break l}J[l+32>>2]=0-a;J[l+36>>2]=0-(((a|0)!=0)+g|0);f=(j|0)>0;J[l+40>>2]=f?-1:j>>>31|0;g=(j|0)<0;J[l+24>>2]=f?j:g?0-j|0:0;a=j>>31;J[l+28>>2]=f?a:g?0-(((j|0)!=0)+a|0)|0:0;n:{if((h|0)>0){J[l+16>>2]=1;n=-1;g=p;a=h;break n}if((h|0)<0){J[l+16>>2]=-1;n=1;g=0-(((h|0)!=0)+p|0)|0;a=0-h|0;break n}n=0;J[l+16>>2]=0;g=0;a=0}J[l>>2]=a;J[l+4>>2]=g;a=b;g=o;o:{if(!!a&(g|0)>=0|(g|0)>0){break o}g=0;a=0;if((o|0)>0|(o|0)>=0){break o}J[l+16>>2]=n;g=0-(((b|0)!=0)+o|0)|0;a=0-b|0}J[l+8>>2]=a;J[l+12>>2]=g;if((lb(l+24|0,l)|0)>0){break l}}c=(c|0)!=(s|0)?r:0;J[e>>2]=c;a=m-z|0;a=us(G,A,a,a>>31);b=ta;h=a;a=k-u|0;a=us(H,B,a,a>>31);o=h+a|0;f=ta+b|0;f=a>>>0>o>>>0?f+1|0:f;a=i-E|0;a=us(C,D,a,a>>31);b=a+o|0;f=ta+f|0;o=a>>>0>b>>>0?f+1|0:f;w=k;v=m;y=i;continue}a=J[d>>2];if(!a|!J[a+12>>2]){break d}x=J[J[a+8>>2]+4>>2];if((t|0)>=J[x+20>>2]){break d}i=J[x+12>>2];r=J[i+92>>2];k=r-z|0;q=k>>31;a=us(k,q,L,Q);c=ta;f=a;z=J[i+88>>2];g=z-u|0;n=g>>31;a=us(g,n,I,N);j=f+a|0;f=ta+c|0;f=a>>>0>j>>>0?f+1|0:f;m=J[i+96>>2];c=m-E|0;u=c>>31;i=us(K,O,c,u);if((0-i|0)!=(j|0)|(0-(ta+((i|0)!=0)|0)|0)!=(f|0)){break d}a=v-r|0;a=us(G,A,a,a>>31);i=ta;f=a;a=w-z|0;a=us(H,B,a,a>>31);f=f+a|0;j=ta+i|0;j=a>>>0>f>>>0?j+1|0:j;a=y-m|0;a=us(C,D,a,a>>31);i=a+f|0;f=ta+j|0;f=a>>>0>i>>>0?f+1|0:f;a=f;if((f|0)>0|(f|0)>=0){break d}m=(P(k,M)+P(g,T)|0)+P(c,F)|0;f=us(k,q,G,A);k=ta;g=us(H,B,g,n);f=g+f|0;j=ta+k|0;k=us(C,D,c,u);c=k+f|0;g=ta+(f>>>0>>0?j+1|0:j)|0;g=c>>>0>>0?g+1|0:g;p:{if(!(g|c)){if((m|0)>0){break p}break d}if((g|0)>0|(g|0)>=0){break d}J[l+32>>2]=0-c;J[l+36>>2]=0-(((c|0)!=0)+g|0);k=(m|0)>0;J[l+40>>2]=k?-1:m>>>31|0;g=(m|0)<0;J[l+24>>2]=k?m:g?0-m|0:0;c=m>>31;J[l+28>>2]=k?c:g?0-(((m|0)!=0)+c|0)|0:0;q:{if((h|0)>0){J[l+16>>2]=1;g=-1;break q}if((h|0)<0){J[l+16>>2]=-1;c=h;h=0-h|0;p=0-(((c|0)!=0)+p|0)|0;g=1;break q}J[l+16>>2]=0;h=0;p=0;g=0}J[l>>2]=h;J[l+4>>2]=p;c=b;h=o;r:{if(!!c&(h|0)>=0|(h|0)>0){break r}h=0;c=0;if((o|0)>0|(o|0)>=0){break r}J[l+16>>2]=g;h=0-(((b|0)!=0)+o|0)|0;c=0-b|0}J[l+8>>2]=c;J[l+12>>2]=h;if((lb(l+24|0,l)|0)>=0){break d}}J[d>>2]=x;b=J[x+12>>2];E=J[b+96>>2];z=J[b+92>>2];c=J[e>>2];u=J[b+88>>2];b=i;o=a;continue}}sa=l+48|0}function jh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;w=sa-16|0;sa=w;ua[J[8262]](3645);d=J[a+196>>2];j=J[a+228>>2];a:{if((d|0)>=(j|0)){break a}if((j|0)>J[a+200>>2]){if(j){J[8456]=J[8456]+1;g=ua[J[8258]](j<<2,16)|0;c=J[a+196>>2]}else{c=d}b:{if((c|0)<=0){break b}if(c>>>0>=4){i=c&-4;while(1){f=h<<2;J[f+g>>2]=J[f+J[a+204>>2]>>2];m=f|4;J[m+g>>2]=J[m+J[a+204>>2]>>2];m=f|8;J[m+g>>2]=J[m+J[a+204>>2]>>2];f=f|12;J[f+g>>2]=J[f+J[a+204>>2]>>2];h=h+4|0;e=e+4|0;if((i|0)!=(e|0)){continue}break}}c=c&3;if(!c){break b}while(1){e=h<<2;J[e+g>>2]=J[e+J[a+204>>2]>>2];h=h+1|0;q=q+1|0;if((c|0)!=(q|0)){continue}break}}c=J[a+204>>2];if(!(c?!c|!K[a+208|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}J[a+204>>2]=g;H[a+208|0]=1;J[a+200>>2]=j}c=j+(d^-1)|0;e=j-d&3;if(e){h=0;while(1){J[J[a+204>>2]+(d<<2)>>2]=0;d=d+1|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}if(c>>>0<3){break a}while(1){c=d<<2;J[c+J[a+204>>2]>>2]=0;J[(c+J[a+204>>2]|0)+4>>2]=0;J[(c+J[a+204>>2]|0)+8>>2]=0;J[(c+J[a+204>>2]|0)+12>>2]=0;d=d+4|0;if((j|0)!=(d|0)){continue}break}}J[a+196>>2]=j;if((ua[J[J[a>>2]+104>>2]](a)|0)>0){d=0;while(1){c=d<<2;J[c+J[a+204>>2]>>2]=J[c+J[a+236>>2]>>2];d=d+1|0;if((ua[J[J[a>>2]+104>>2]](a)|0)>(d|0)){continue}break}}d=J[a+196>>2];if((d|0)>=2){xd(a+192|0,w+14|0,0,d-1|0)}d=ua[J[J[a>>2]+104>>2]](a)|0;d=d?J[a+204>>2]:0;c=J[a+196>>2];g=J[a+212>>2];A=g,B=ua[J[J[a>>2]+20>>2]](a)|0,J[A+20>>2]=B;J[g+16>>2]=c;J[g+12>>2]=d;J[g+4>>2]=b;c=J[g+32>>2];c:{if((c|0)>=0){break c}if(J[g+36>>2]<0){d=J[g+40>>2];if(!(d?!d|!K[g+44|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](d)}H[g+44|0]=1;J[g+36>>2]=0;J[g+40>>2]=0}e=0;d=c;j=0-c&3;if(j){while(1){J[J[g+40>>2]+(d<<2)>>2]=0;d=d+1|0;e=e+1|0;if((j|0)!=(e|0)){continue}break}}if(c>>>0>4294967292){break c}while(1){c=d<<2;J[c+J[g+40>>2]>>2]=0;J[(c+J[g+40>>2]|0)+4>>2]=0;J[(c+J[g+40>>2]|0)+8>>2]=0;J[(c+J[g+40>>2]|0)+12>>2]=0;d=d+4|0;if(d){continue}break}}J[g+32>>2]=0;c=J[g+52>>2];d:{if((c|0)>=0){break d}if(J[g+56>>2]<0){d=J[g+60>>2];if(!(d?!d|!K[g- -64|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](d)}H[g+64|0]=1;J[g+56>>2]=0;J[g+60>>2]=0}e=0;d=c;j=0-c&3;if(j){while(1){J[J[g+60>>2]+(d<<2)>>2]=0;d=d+1|0;e=e+1|0;if((j|0)!=(e|0)){continue}break}}if(c>>>0>4294967292){break d}while(1){c=d<<2;J[c+J[g+60>>2]>>2]=0;J[(c+J[g+60>>2]|0)+4>>2]=0;J[(c+J[g+60>>2]|0)+8>>2]=0;J[(c+J[g+60>>2]|0)+12>>2]=0;d=d+4|0;if(d){continue}break}}J[g+52>>2]=0;c=J[g+72>>2];e:{if((c|0)>=0){break e}if(J[g+76>>2]<0){d=J[g+80>>2];if(!(d?!d|!K[g+84|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](d)}H[g+84|0]=1;J[g+76>>2]=0;J[g+80>>2]=0}e=0;d=c;j=0-c&3;if(j){while(1){J[J[g+80>>2]+(d<<2)>>2]=0;d=d+1|0;e=e+1|0;if((j|0)!=(e|0)){continue}break}}if(c>>>0>4294967292){break e}while(1){c=d<<2;J[c+J[g+80>>2]>>2]=0;J[(c+J[g+80>>2]|0)+4>>2]=0;J[(c+J[g+80>>2]|0)+8>>2]=0;J[(c+J[g+80>>2]|0)+12>>2]=0;d=d+4|0;if(d){continue}break}}J[g+72>>2]=0;d=J[a+216>>2];c=J[a+24>>2];B=d,C=J[a+8>>2],D=ua[J[J[c>>2]+36>>2]](c)|0,A=J[J[d>>2]+8>>2],ua[A](B|0,C|0,D|0);f=J[a+220>>2];m=J[a+24>>2];v=J[a+212>>2];g=0;q=0;x=sa-16|0;sa=x;j=a;d=0;t=sa-16|0;sa=t;ua[J[8262]](2381);a=J[f+28>>2];f:{if((a|0)>=0){break f}if(J[f+32>>2]<0){c=J[f+36>>2];if(!(c?!c|!K[f+40|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}H[f+40|0]=1;J[f+32>>2]=0;J[f+36>>2]=0}c=a;e=0-c&3;if(e){while(1){J[J[f+36>>2]+(c<<2)>>2]=0;c=c+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}if(a>>>0>4294967292){break f}while(1){a=c<<2;J[a+J[f+36>>2]>>2]=0;J[(a+J[f+36>>2]|0)+4>>2]=0;J[(a+J[f+36>>2]|0)+8>>2]=0;J[(a+J[f+36>>2]|0)+12>>2]=0;c=c+4|0;if(c){continue}break}}J[f+28>>2]=0;a=0;l=sa-16|0;sa=l;k=f+4|0;h=J[k+4>>2];g:{if((h|0)<=0){break g}i=J[k+12>>2];while(1){d=a;n=i+(a<<3)|0;e=n;c=J[e>>2];if((c|0)!=(a|0)){while(1){d=i+(c<<3)|0;J[e>>2]=J[d>>2];d=J[d>>2];e=i+(d<<3)|0;c=J[e>>2];if((c|0)!=(d|0)){continue}break}}J[n>>2]=d;a=a+1|0;if((h|0)!=(a|0)){continue}break}if((h|0)<2){break g}Cd(k,l+15|0,0,h-1|0)}sa=l+16|0;k=J[f+8>>2];if((k|0)>0){d=0;while(1){a=d;c=a+1|0;h=(c|0)<(k|0)?k:c;e=h-1|0;n=J[f+16>>2];l=J[n+(a<<3)>>2];while(1){h:{c=d;if((e|0)==(c|0)){c=e;d=h;break h}d=c+1|0;if((l|0)==J[n+(d<<3)>>2]){continue}}break}p=(a|0)>(c|0);i:{if(p){break i}i=1;h=(c-a|0)+1|0;r=h&1;o=J[j+16>>2];e=a;if((a|0)!=(c|0)){s=h&-2;h=0;while(1){u=n+(e<<3)|0;z=J[o+(J[u+4>>2]<<2)>>2];if((l|0)==J[z+208>>2]){y=i;i=J[z+220>>2];i=y&((i|0)!=4&(i|0)!=1)}u=J[o+(J[u+12>>2]<<2)>>2];if((l|0)==J[u+208>>2]){y=i;i=J[u+220>>2];i=y&((i|0)!=4&(i|0)!=1)}e=e+2|0;h=h+2|0;if((s|0)!=(h|0)){continue}break}}j:{if(!r){break j}e=J[o+(J[(n+(e<<3)|0)+4>>2]<<2)>>2];if((l|0)!=J[e+208>>2]){break j}e=J[e+220>>2];i=(e|0)!=4&(e|0)!=1&i}if(i){if(p){break i}while(1){e=J[J[j+16>>2]+(J[(J[f+16>>2]+(a<<3)|0)+4>>2]<<2)>>2];if((l|0)==J[e+208>>2]&(J[e+220>>2]&-2)!=4){J[e+220>>2]=2}e=(a|0)==(c|0);a=a+1|0;if(!e){continue}break}break i}while(1){e=a;a=J[J[j+16>>2]+(J[(J[f+16>>2]+(a<<3)|0)+4>>2]<<2)>>2];if(!((l|0)!=J[a+208>>2]|J[a+220>>2]!=2)){if((J[a+220>>2]&-2)!=4){J[a+220>>2]=3}J[a+224>>2]=0}a=e+1|0;if((c|0)!=(e|0)){continue}break}}if((d|0)<(k|0)){continue}break}}o=ua[J[J[m>>2]+36>>2]](m)|0;if((o|0)>0){d=0;while(1){n=ua[J[J[m>>2]+40>>2]](m,d)|0;a=J[n+840>>2];c=J[n+836>>2];k:{if(!(J[c+220>>2]!=2?c:0)&(!a|J[a+220>>2]==2)){break k}e=J[c+204>>2];if(!(!(e&2)|e&4|J[c+220>>2]==2)){Xc(a,0)}e=J[a+204>>2];if(!(!(e&2)|e&4|J[a+220>>2]==2)){Xc(c,0)}if(!K[f+64|0]){break k}if(!(ua[J[J[m>>2]+28>>2]](m,c,a)|0)){break k}e=J[f+28>>2];l:{if((e|0)!=J[f+32>>2]){break l}k=e?e<<1:1;if((k|0)<=(e|0)){break l}m:{if(!k){a=0;break m}J[8456]=J[8456]+1;a=ua[J[8258]](k<<2,16)|0;e=J[f+28>>2]}n:{if((e|0)<=0){break n}i=0;c=0;if(e>>>0>=4){p=e&-4;h=0;while(1){l=c<<2;J[l+a>>2]=J[l+J[f+36>>2]>>2];r=l|4;J[r+a>>2]=J[r+J[f+36>>2]>>2];r=l|8;J[r+a>>2]=J[r+J[f+36>>2]>>2];l=l|12;J[l+a>>2]=J[l+J[f+36>>2]>>2];c=c+4|0;h=h+4|0;if((p|0)!=(h|0)){continue}break}}h=e&3;if(!h){break n}while(1){l=c<<2;J[l+a>>2]=J[l+J[f+36>>2]>>2];c=c+1|0;i=i+1|0;if((h|0)!=(i|0)){continue}break}}c=J[f+36>>2];if(!(!c|!K[f+40|0])){if(c){J[8457]=J[8457]+1;ua[J[8259]](c)}e=J[f+28>>2]}J[f+36>>2]=a;H[f+40|0]=1;J[f+32>>2]=k}J[J[f+36>>2]+(e<<2)>>2]=n;J[f+28>>2]=e+1}d=d+1|0;if((o|0)!=(d|0)){continue}break}}ua[J[8263]]();sa=t+16|0;n=J[f+8>>2];ua[J[8262]](4539);o:{if(!K[f+64|0]){a=ua[J[J[m>>2]+44>>2]](m)|0;d=ua[J[J[m>>2]+36>>2]](m)|0;ua[J[J[v>>2]+8>>2]](v,J[j+16>>2],J[j+8>>2],a,d,-1);break o}m=J[f+28>>2];if((m|0)>=2){Ad(f+24|0,x+14|0,0,m-1|0)}if((n|0)<=0){break o}a=1;while(1){l=J[J[f+16>>2]+(q<<3)>>2];i=1;while(1){d=J[f+16>>2]+(q<<3)|0;if((l|0)==J[d>>2]){t=J[J[j+16>>2]+(J[d+4>>2]<<2)>>2];c=J[f+48>>2];p:{if((c|0)!=J[f+52>>2]){break p}o=c?c<<1:1;if((o|0)<=(c|0)){break p}q:{if(!o){e=0;break q}J[8456]=J[8456]+1;e=ua[J[8258]](o<<2,16)|0;c=J[f+48>>2]}r:{if((c|0)<=0){break r}h=0;d=0;if(c>>>0>=4){r=c&-4;p=0;while(1){k=d<<2;J[k+e>>2]=J[k+J[f+56>>2]>>2];s=k|4;J[s+e>>2]=J[s+J[f+56>>2]>>2];s=k|8;J[s+e>>2]=J[s+J[f+56>>2]>>2];k=k|12;J[k+e>>2]=J[k+J[f+56>>2]>>2];d=d+4|0;p=p+4|0;if((r|0)!=(p|0)){continue}break}}k=c&3;if(!k){break r}while(1){p=d<<2;J[p+e>>2]=J[p+J[f+56>>2]>>2];d=d+1|0;h=h+1|0;if((k|0)!=(h|0)){continue}break}}d=J[f+56>>2];if(!(!d|!K[f+60|0])){if(d){J[8457]=J[8457]+1;ua[J[8259]](d)}c=J[f+48>>2]}J[f+56>>2]=e;H[f+60|0]=1;J[f+52>>2]=o}J[J[f+56>>2]+(c<<2)>>2]=t;J[f+48>>2]=c+1;d=J[t+220>>2];i=((d|0)==2|(d|0)==5)&i;q=q+1|0;if((n|0)>(q|0)){continue}}break}h=0;d=0;s:{if((g|0)>=(m|0)){break s}k=J[f+36>>2];e=k+(g<<2)|0;d=J[e>>2];c=J[J[d+836>>2]+208>>2];if((c|0)<0){c=J[J[d+840>>2]+208>>2]}d=0;if((c|0)!=(l|0)){break s}a=g+1|0;c=(a|0)<(m|0)?m:a;h=c-1|0;a=g;while(1){t:{if((a|0)==(h|0)){a=c;break t}a=a+1|0;o=J[k+(a<<2)>>2];d=J[J[o+836>>2]+208>>2];if((d|0)<0){d=J[J[o+840>>2]+208>>2]}if((d|0)==(l|0)){continue}}break}h=a-g|0;d=e}if(!i){ua[J[J[v>>2]+8>>2]](v,J[f+56>>2],J[f+48>>2],d,h,l)}c=J[f+48>>2];u:{if((c|0)>=0){break u}if(J[f+52>>2]<0){d=J[f+56>>2];if(!(d?!d|!K[f+60|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](d)}H[f+60|0]=1;J[f+52>>2]=0;J[f+56>>2]=0}e=0;d=c;i=0-c&3;if(i){while(1){J[J[f+56>>2]+(d<<2)>>2]=0;d=d+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}if(c>>>0>4294967292){break u}while(1){c=d<<2;J[c+J[f+56>>2]>>2]=0;J[(c+J[f+56>>2]|0)+4>>2]=0;J[(c+J[f+56>>2]|0)+8>>2]=0;J[(c+J[f+56>>2]|0)+12>>2]=0;d=d+4|0;if(d){continue}break}}g=h?a:g;J[f+48>>2]=0;if((n|0)>(q|0)){continue}break}}ua[J[8263]]();sa=x+16|0;wd(J[j+212>>2]);a=J[j+216>>2];ua[J[J[a>>2]+16>>2]](a,b,J[j+72>>2]);ua[J[8263]]();sa=w+16|0}function Uc(a,b,c,d){var e=0,f=0,g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=0,n=Q(0),o=Q(0),p=0,q=Q(0),r=0,s=Q(0),t=0,u=Q(0),v=0,w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=Q(0),I=0,L=0,M=Q(0),O=Q(0),R=Q(0),S=0,T=Q(0),U=Q(0),V=Q(0),W=0,X=0,Z=Q(0),_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0;e=sa-704|0;sa=e;t=Sa(e+620|0);f=t;J[f+20>>2]=1065353216;J[f+24>>2]=1065353216;J[f+4>>2]=8;J[f>>2]=21396;J[f+32>>2]=0;J[f+36>>2]=0;J[f+28>>2]=1065353216;J[f+40>>2]=0;J[f+44>>2]=0;J[f+48>>2]=0;J[f+52>>2]=0;J[f+56>>2]=0;f=J[c+12>>2];r=J[c+4>>2];v=J[r+4>>2];a:{if((v|0)<=19){J[e+612>>2]=0;J[e+616>>2]=0;J[e+444>>2]=13156;N[e+608>>2]=N[d+4>>2];H[e+416|0]=0;J[e+392>>2]=953267991;v=e+680|0;J[v+12>>2]=r;J[v+8>>2]=t;p=e+84|0;J[v+4>>2]=p;J[v>>2]=23248;m=e+68|0;J[m+12>>2]=r;J[m+8>>2]=t;J[m+4>>2]=p;J[m>>2]=22600;r=J[d+16>>2]&8?m:v;b:{if(!(ua[J[J[r>>2]+8>>2]](r,a,b,f,f,e+444|0)|0)){break b}g=N[e+584>>2];h=N[e+576>>2];i=N[e+580>>2];j=Q(Q(g*g)+Q(Q(h*h)+Q(i*i)));if(!(j>Q(9999999747378752e-20))){break b}k=N[e+608>>2];if(!(k>2])){break b}n=g;g=Q(Q(1)/Q(Y(j)));N[e+584>>2]=n*g;N[e+580>>2]=i*g;N[e+576>>2]=h*g;a=J[c+8>>2];J[e+44>>2]=0;J[e+40>>2]=a;a=J[e+588>>2];J[e+56>>2]=J[e+584>>2];J[e+60>>2]=a;a=J[e+580>>2];J[e+48>>2]=J[e+576>>2];J[e+52>>2]=a;N[e+64>>2]=k;Q(ua[J[J[d>>2]+12>>2]](d,e+40|0,1))}break a}if(v-21>>>0<=8){q=N[f+20>>2];i=N[f+36>>2];u=N[f+24>>2];s=N[f+52>>2];j=N[f+56>>2];k=N[f+40>>2];l=N[f+32>>2];w=N[f+16>>2];n=N[f>>2];x=N[f+4>>2];o=N[f+48>>2];A=N[f+8>>2];h=N[a+52>>2];y=N[a+56>>2];g=N[a+48>>2];J[e+456>>2]=0;s=Q(-s);D=Q(u*s);z=Q(Q(D-Q(A*o))-Q(k*j));E=Q(y*k);F=Q(u*h);N[e+452>>2]=z+Q(E+Q(Q(g*A)+F));G=Q(q*s);B=Q(Q(G-Q(x*o))-Q(i*j));M=Q(y*i);O=Q(q*h);N[e+448>>2]=B+Q(M+Q(Q(g*x)+O));R=Q(w*s);T=Q(Q(R-Q(n*o))-Q(l*j));U=Q(y*l);V=Q(w*h);N[e+444>>2]=T+Q(U+Q(Q(g*n)+V));y=N[b+52>>2];s=N[b+56>>2];h=N[b+48>>2];J[e+52>>2]=0;C=z;z=Q(s*k);Z=Q(h*A);A=Q(u*y);N[e+48>>2]=C+Q(z+Q(Z+A));C=B;B=Q(s*i);u=Q(h*x);x=Q(q*y);N[e+44>>2]=C+Q(B+Q(u+x));s=Q(s*l);C=Q(h*n);n=Q(w*y);N[e+40>>2]=T+Q(s+Q(C+n));if((v|0)==21){b=J[c+8>>2];v=e+444|0;m=e+40|0;a=Vd(e+84|0,v,m,J[d+16>>2]);J[a+52>>2]=r;J[a+48>>2]=b;J[a+44>>2]=d;J[a>>2]=13224;c=J[f+12>>2];b=a- -64|0;J[b>>2]=J[f+8>>2];J[b+4>>2]=c;b=J[f+4>>2];J[a+56>>2]=J[f>>2];J[a+60>>2]=b;b=J[f+28>>2];J[a+80>>2]=J[f+24>>2];J[a+84>>2]=b;b=J[f+20>>2];J[a+72>>2]=J[f+16>>2];J[a+76>>2]=b;b=J[f+44>>2];J[a+96>>2]=J[f+40>>2];J[a+100>>2]=b;b=J[f+36>>2];J[a+88>>2]=J[f+32>>2];J[a+92>>2]=b;b=J[f+60>>2];J[a+112>>2]=J[f+56>>2];J[a+116>>2]=b;b=J[f+52>>2];J[a+104>>2]=J[f+48>>2];J[a+108>>2]=b;N[a+40>>2]=N[d+4>>2];b=sa-16|0;sa=b;c=J[r+56>>2];J[b+12>>2]=a;J[b+8>>2]=c;J[b+4>>2]=18656;c=J[r+60>>2];d=b+4|0;a=sa-32|0;sa=a;J[a+24>>2]=0;J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0;c:{if(K[c+60|0]){ye(c,d,v,m,a+16|0,a,J[c+56>>2]);break c}ze(c,d,v,m,a+16|0,a)}sa=a+32|0;sa=b+16|0;break a}q=N[f>>2];u=N[f+4>>2];j=Q(-j);C=Q(k*j);k=N[f+8>>2];o=Q(-o);w=Q(C+Q(Q(k*o)+D));N[e+688>>2]=Q(E+Q(Q(g*k)+F))+w;J[e+692>>2]=0;i=Q(Q(i*j)+Q(Q(u*o)+G));N[e+684>>2]=Q(M+Q(Q(g*u)+O))+i;C=Q(U+Q(Q(g*q)+V));g=Q(Q(l*j)+Q(Q(q*o)+R));N[e+680>>2]=C+g;J[e+80>>2]=0;N[e+76>>2]=Q(z+Q(Q(h*k)+A))+w;N[e+72>>2]=Q(B+Q(Q(h*u)+x))+i;N[e+68>>2]=Q(s+Q(Q(h*q)+n))+g;b=J[c+8>>2];a=Vd(e+84|0,e+680|0,e+68|0,J[d+16>>2]);J[a+52>>2]=r;J[a+48>>2]=b;J[a+44>>2]=d;J[a>>2]=13224;c=J[f+12>>2];b=a- -64|0;J[b>>2]=J[f+8>>2];J[b+4>>2]=c;b=J[f+4>>2];J[a+56>>2]=J[f>>2];J[a+60>>2]=b;b=J[f+28>>2];J[a+80>>2]=J[f+24>>2];J[a+84>>2]=b;b=J[f+20>>2];J[a+72>>2]=J[f+16>>2];J[a+76>>2]=b;b=J[f+44>>2];J[a+96>>2]=J[f+40>>2];J[a+100>>2]=b;b=J[f+36>>2];J[a+88>>2]=J[f+32>>2];J[a+92>>2]=b;b=J[f+60>>2];J[a+112>>2]=J[f+56>>2];J[a+116>>2]=b;b=J[f+52>>2];J[a+104>>2]=J[f+48>>2];J[a+108>>2]=b;N[a+40>>2]=N[d+4>>2];b=J[e+692>>2];J[e+32>>2]=J[e+688>>2];J[e+36>>2]=b;b=J[e+684>>2];J[e+24>>2]=J[e+680>>2];J[e+28>>2]=b;g=N[e+68>>2];if(g>2]){N[e+24>>2]=g}h=N[e+72>>2];if(h>2]){N[e+28>>2]=h}i=N[e+76>>2];if(i>2]){N[e+32>>2]=i}j=N[e+80>>2];if(j>2]){N[e+36>>2]=j}b=J[e+692>>2];J[e+16>>2]=J[e+688>>2];J[e+20>>2]=b;b=J[e+684>>2];J[e+8>>2]=J[e+680>>2];J[e+12>>2]=b;if(g>N[e+8>>2]){N[e+8>>2]=g}if(h>N[e+12>>2]){N[e+12>>2]=h}if(i>N[e+16>>2]){N[e+16>>2]=i}if(j>N[e+20>>2]){N[e+20>>2]=j}ua[J[J[r>>2]+64>>2]](r,a,e+24|0,e+8|0);break a}if((v|0)!=31){break a}t=J[r+72>>2];c=J[c+8>>2];J[e+64>>2]=d;J[e+60>>2]=b;J[e+56>>2]=a;J[e+52>>2]=f;J[e+48>>2]=r;J[e+44>>2]=c;J[e+40>>2]=13408;if(t){g=N[f+20>>2];h=N[f+36>>2];i=N[f+24>>2];j=N[f+52>>2];x=N[a+52>>2];k=N[f+40>>2];l=N[f+56>>2];w=N[a+56>>2];A=N[f>>2];o=N[f+16>>2];q=N[f+32>>2];y=N[f+4>>2];n=N[f+8>>2];u=N[f+48>>2];s=N[a+48>>2];J[e+96>>2]=0;w=Q(w-l);z=n;n=Q(s-u);x=Q(x-j);N[e+92>>2]=Q(k*w)+Q(Q(z*n)+Q(i*x));N[e+88>>2]=Q(h*w)+Q(Q(y*n)+Q(x*g));N[e+84>>2]=Q(q*w)+Q(Q(A*n)+Q(x*o));w=N[b+52>>2];n=N[b+56>>2];x=N[f>>2];A=N[f+4>>2];y=N[f+8>>2];s=N[b+48>>2];J[e+456>>2]=0;z=k;k=Q(n-l);l=Q(s-u);n=i;i=Q(w-j);N[e+452>>2]=Q(z*k)+Q(Q(y*l)+Q(n*i));N[e+448>>2]=Q(h*k)+Q(Q(A*l)+Q(g*i));N[e+444>>2]=Q(q*k)+Q(Q(x*l)+Q(o*i));W=e+40|0;v=0;m=sa-544|0;sa=m;a=J[t>>2];d:{if(!a){break d}g=N[e+92>>2];h=N[e+452>>2];i=N[e+84>>2];j=N[e+444>>2];k=N[e+88>>2];l=N[e+448>>2];J[m+32>>2]=a;g=Q(h-g);h=Q(j-i);i=Q(l-k);j=Q(Q(1)/Q(Y(Q(Q(g*g)+Q(Q(h*h)+Q(i*i))))));k=Q(g*j);n=Q(k*g);g=Q(h*j);z=Q(g*h);h=Q(i*j);u=Q(n+Q(z+Q(i*h)));i=k==Q(0)?Q(0xde0b6b000000000):Q(Q(1)/k);a=i>2];p=J[t+4>>2];J[m>>2]=J[t>>2];J[m+4>>2]=p;p=J[t+12>>2];J[m+8>>2]=J[t+8>>2];J[m+12>>2]=p;p=J[t+28>>2];J[m+24>>2]=J[t+24>>2];J[m+28>>2]=p;p=J[t+20>>2];J[m+16>>2]=J[t+16>>2];J[m+20>>2]=p;o=N[e+84>>2];j=Q(g*Q(N[ca>>2]-o));l=N[e+88>>2];k=Q(h*Q(N[ba>>2]-l));e:{if(j>k){break e}l=Q(h*Q(N[$>>2]-l));o=Q(g*Q(N[da>>2]-o));if(l>o){break e}j=j>2];l=Q(i*Q(N[aa>>2]-q));if(j>l){break e}q=Q(i*Q(N[_>>2]-q));k=kk|!(u>(jl?l:k)>Q(0))){break e}if(J[t+40>>2]){if((a|0)>(c|0)){a=d<<1;if((a|0)>(d|0)){if((a|0)>(f|0)){f:{if(!d){c=0;break f}J[8456]=J[8456]+1;c=ua[J[8258]](d<<3,16)|0;if((d|0)<=0){break f}S=0;f=0;if(d>>>0>=4){ea=d&-4;I=0;while(1){p=f<<2;J[p+c>>2]=J[b+p>>2];L=p|4;J[L+c>>2]=J[b+L>>2];L=p|8;J[L+c>>2]=J[b+L>>2];p=p|12;J[p+c>>2]=J[b+p>>2];f=f+4|0;I=I+4|0;if((ea|0)!=(I|0)){continue}break}}p=d&3;if(!p){break f}while(1){I=f<<2;J[I+c>>2]=J[b+I>>2];f=f+1|0;S=S+1|0;if((p|0)!=(S|0)){continue}break}}f=v;v=1;if(b?f:0){J[8457]=J[8457]+1;ua[J[8259]](b)}f=a;b=c}c=d<<2;Fa(c+b|0,0,c)}d=a;c=a-2|0}J[b+X>>2]=J[t+36>>2];J[(r<<2)+b>>2]=J[t+40>>2];a=r+1|0;break e}ua[J[J[W>>2]+12>>2]](W,t)}r=a;if(a){continue}break}if(!v){break d}if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}}sa=m+544|0;break a}d=J[r+24>>2];if((d|0)<=0){break a}c=0;while(1){a=J[J[e+48>>2]+32>>2]+P(c,80)|0;b=J[a+64>>2];w=N[a+56>>2];n=N[a+48>>2];x=N[a+52>>2];A=N[a+32>>2];y=N[a>>2];s=N[a+16>>2];D=N[a+36>>2];z=N[a+4>>2];E=N[a+20>>2];F=N[a+40>>2];G=N[a+8>>2];B=N[a+24>>2];a=J[e+52>>2];M=N[a+52>>2];O=N[a+56>>2];g=N[a+24>>2];h=N[a+20>>2];i=N[a+40>>2];j=N[a+36>>2];R=N[a+48>>2];k=N[a+8>>2];l=N[a>>2];o=N[a+4>>2];q=N[a+16>>2];u=N[a+32>>2];J[e+144>>2]=0;J[e+128>>2]=0;J[e+112>>2]=0;J[e+96>>2]=0;N[e+124>>2]=Q(F*i)+Q(Q(G*u)+Q(B*j));N[e+120>>2]=Q(D*i)+Q(Q(z*u)+Q(E*j));N[e+116>>2]=Q(A*i)+Q(Q(y*u)+Q(s*j));N[e+108>>2]=Q(F*g)+Q(Q(G*q)+Q(B*h));N[e+104>>2]=Q(D*g)+Q(Q(z*q)+Q(E*h));N[e+100>>2]=Q(A*g)+Q(Q(y*q)+Q(s*h));N[e+92>>2]=Q(F*k)+Q(Q(G*l)+Q(o*B));N[e+88>>2]=Q(D*k)+Q(Q(z*l)+Q(o*E));N[e+84>>2]=Q(A*k)+Q(Q(y*l)+Q(s*o));N[e+140>>2]=O+Q(Q(w*i)+Q(Q(n*u)+Q(j*x)));N[e+136>>2]=M+Q(Q(w*g)+Q(Q(n*q)+Q(h*x)));N[e+132>>2]=R+Q(Q(w*k)+Q(Q(n*l)+Q(o*x)));J[e+700>>2]=c;J[e+696>>2]=-1;J[e+688>>2]=J[e+44>>2];J[e+684>>2]=b;J[e+680>>2]=0;J[e+692>>2]=e+84;J[e+460>>2]=0;J[e+448>>2]=1065353216;J[e+452>>2]=0;J[e+472>>2]=c;J[e+464>>2]=b;J[e+444>>2]=13584;a=J[e+64>>2];J[e+468>>2]=a;N[e+448>>2]=N[a+4>>2];J[e+460>>2]=J[a+16>>2];Uc(J[e+56>>2],J[e+60>>2],e+680|0,e+444|0);c=c+1|0;if((d|0)!=(c|0)){continue}break}}sa=e+704|0}function Wd(a,b,c){var d=Q(0),e=0,f=0,g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=0,l=0,m=0,n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=0,v=0,w=0,x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=Q(0),H=Q(0),I=Q(0),K=Q(0),L=Q(0),M=0,O=Q(0),R=Q(0),S=Q(0),T=Q(0),U=0,V=0,W=0,X=0,Z=Q(0),_=Q(0),$=0,aa=0;e=sa-96|0;sa=e;J[a+376>>2]=0;J[a+364>>2]=4;J[a+368>>2]=0;k=a+316|0;J[a+360>>2]=k;J[a+356>>2]=a+284;J[a+352>>2]=a+252;J[a+348>>2]=a+220;f=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=f;f=J[b+20>>2];J[a+16>>2]=J[b+16>>2];J[a+20>>2]=f;f=J[b+12>>2];J[a+8>>2]=J[b+8>>2];J[a+12>>2]=f;f=J[b+36>>2];J[a+32>>2]=J[b+32>>2];J[a+36>>2]=f;f=J[b+28>>2];J[a+24>>2]=J[b+24>>2];J[a+28>>2]=f;f=J[b+52>>2];J[a+48>>2]=J[b+48>>2];J[a+52>>2]=f;f=J[b+44>>2];J[a+40>>2]=J[b+40>>2];J[a+44>>2]=f;l=b- -64|0;f=J[l+4>>2];w=a- -64|0;J[w>>2]=J[l>>2];J[w+4>>2]=f;f=J[b+60>>2];J[a+56>>2]=J[b+56>>2];J[a+60>>2]=f;f=J[b+84>>2];J[a+80>>2]=J[b+80>>2];J[a+84>>2]=f;f=J[b+76>>2];J[a+72>>2]=J[b+72>>2];J[a+76>>2]=f;f=J[b+100>>2];J[a+96>>2]=J[b+96>>2];J[a+100>>2]=f;f=J[b+92>>2];J[a+88>>2]=J[b+88>>2];J[a+92>>2]=f;f=J[b+108>>2];J[a+104>>2]=J[b+104>>2];J[a+108>>2]=f;f=J[b+116>>2];J[a+112>>2]=J[b+112>>2];J[a+116>>2]=f;f=J[b+124>>2];b=J[b+120>>2];J[a+144>>2]=0;J[a+180>>2]=0;J[a+120>>2]=b;J[a+124>>2]=f;b=J[c+4>>2];J[a+128>>2]=J[c>>2];J[a+132>>2]=b;b=J[c+12>>2];J[a+136>>2]=J[c+8>>2];J[a+140>>2]=b;J[a+364>>2]=3;J[a+164>>2]=0;J[a+328>>2]=0;J[a+180>>2]=1;J[a+148>>2]=k;h=N[a+136>>2];i=N[a+128>>2];d=N[a+132>>2];g=Q(Q(h*h)+Q(Q(i*i)+Q(d*d)));b=g>Q(0);h=b?Q(-h):Q(0);i=b?Q(-i):Q(1);d=b?Q(-d):Q(0);j=Q(Q(1)/Q(Y(Q(Q(h*h)+Q(Q(i*i)+Q(d*d))))));N[a+324>>2]=h*j;N[a+320>>2]=d*j;N[k>>2]=i*j;Ra(e+16|0,a,k);b=J[e+28>>2];J[a+340>>2]=J[e+24>>2];J[a+344>>2]=b;b=J[e+20>>2];J[a+332>>2]=J[e+16>>2];J[a+336>>2]=b;J[a+164>>2]=1065353216;c=J[a+148>>2];b=J[c+20>>2];J[a+128>>2]=J[c+16>>2];J[a+132>>2]=b;b=J[c+28>>2];J[a+136>>2]=J[c+24>>2];J[a+140>>2]=b;b=J[c+28>>2];J[e+72>>2]=J[c+24>>2];J[e+76>>2]=b;b=J[c+20>>2];J[e+64>>2]=J[c+16>>2];J[e+68>>2]=b;b=J[c+28>>2];J[e+56>>2]=J[c+24>>2];J[e+60>>2]=b;b=J[c+20>>2];J[e+48>>2]=J[c+16>>2];J[e+52>>2]=b;b=J[c+28>>2];J[e+40>>2]=J[c+24>>2];J[e+44>>2]=b;b=J[c+20>>2];J[e+32>>2]=J[c+16>>2];J[e+36>>2]=b;b=J[c+28>>2];J[e+24>>2]=J[c+24>>2];J[e+28>>2]=b;b=J[c+20>>2];J[e+16>>2]=J[c+16>>2];J[e+20>>2]=b;d=N[a+136>>2];n=N[a+132>>2];j=N[a+128>>2];u=J[a+368>>2];W=a+148|0;while(1){a:{b:{o=Q(Y(Q(Q(d*d)+Q(Q(j*j)+Q(n*n)))));c:{if(o>2]=1;break c}f=P(u,36);w=f+a|0;c=J[w+180>>2];l=c<<2;J[(l+w|0)+164>>2]=0;b=J[a+364>>2]-1|0;J[a+364>>2]=b;v=f+W|0;f=J[((b<<2)+a|0)+348>>2];J[l+v>>2]=f;J[w+180>>2]=c+1;J[f+12>>2]=0;i=Q(Q(1)/o);N[f+8>>2]=i*Q(-d);N[f+4>>2]=i*Q(-n);N[f>>2]=i*Q(-j);Ra(e+80|0,a,f);b=J[e+92>>2];J[f+24>>2]=J[e+88>>2];J[f+28>>2]=b;b=J[e+84>>2];J[f+16>>2]=J[e+80>>2];J[f+20>>2]=b;d:{f=J[w+180>>2];l=J[((f<<2)+v|0)-4>>2];j=N[l+24>>2];d=Q(j-N[e+24>>2]);s=Q(d*d);h=N[l+16>>2];d=Q(h-N[e+16>>2]);p=Q(d*d);i=N[l+20>>2];d=Q(i-N[e+20>>2]);if(Q(s+Q(p+Q(d*d)))>2]);s=Q(d*d);d=Q(h-N[e+32>>2]);p=Q(d*d);d=Q(i-N[e+36>>2]);if(Q(s+Q(p+Q(d*d)))>2]);s=Q(d*d);d=Q(h-N[e+48>>2]);p=Q(d*d);d=Q(i-N[e+52>>2]);if(Q(s+Q(p+Q(d*d)))>2]);s=Q(d*d);d=Q(h-N[e+64>>2]);p=Q(d*d);d=Q(i-N[e+68>>2]);if(Q(s+Q(p+Q(d*d)))>2];X=X+1&3;c=(e+16|0)+(X<<4)|0;J[c+8>>2]=J[l+24>>2];J[c+12>>2]=b;b=J[l+20>>2];J[c>>2]=J[l+16>>2];J[c+4>>2]=b;d=Q(Q(Q(N[a+136>>2]*j)+Q(Q(N[a+128>>2]*h)+Q(N[a+132>>2]*i)))/o);O=d>O?d:O;if(Q(Q(o*Q(-9999999747378752e-20))+Q(o-O))<=Q(0)){u=J[a+368>>2];c=P(u,36)+a|0;b=J[c+180>>2]-1|0;J[c+180>>2]=b;c=J[(c+(b<<2)|0)+148>>2];b=J[a+364>>2];J[a+364>>2]=b+1;J[((b<<2)+a|0)+348>>2]=c;break c}J[e+12>>2]=0;e:{f:{g:{switch(f-2|0){case 0:c=J[v+4>>2];h=N[c+24>>2];b=J[v>>2];x=N[b+24>>2];n=Q(h-x);i=N[c+16>>2];q=N[b+16>>2];o=Q(i-q);g=N[c+20>>2];r=N[b+20>>2];j=Q(g-r);d=Q(Q(n*n)+Q(Q(o*o)+Q(j*j)));if(!(d>Q(0))){break e}t=Q(Q(-Q(Q(x*n)+Q(Q(q*o)+Q(r*j))))/d);if(t>=Q(1)){J[e+12>>2]=2;J[e+80>>2]=0;J[e+84>>2]=1065353216;g=Q(Q(h*h)+Q(Q(i*i)+Q(g*g)));break f}if(t<=Q(0)){J[e+12>>2]=1;J[e+80>>2]=1065353216;J[e+84>>2]=0;g=Q(Q(x*x)+Q(Q(q*q)+Q(r*r)));break f}J[e+12>>2]=3;N[e+84>>2]=t;N[e+80>>2]=Q(1)-t;d=Q(x+Q(n*t));p=Q(d*d);d=Q(q+Q(o*t));g=Q(d*d);d=Q(r+Q(j*t));g=Q(p+Q(g+Q(d*d)));break f;case 1:g=Nb(J[v>>2]+16|0,J[v+4>>2]+16|0,J[v+8>>2]+16|0,e+80|0,e+12|0);break f;case 2:break g;default:break f}}m=sa-32|0;sa=m;d=Q(-1);l=J[v+4>>2]+16|0;s=N[l+4>>2];k=J[v+12>>2]+16|0;C=N[k+4>>2];D=Q(s-C);f=J[v>>2]+16|0;p=N[f+8>>2];E=N[k+8>>2];F=Q(p-E);Z=Q(D*Q(-F));c=J[v+8>>2]+16|0;i=N[c>>2];G=N[k>>2];z=Q(i-G);R=N[f>>2];H=Q(R-G);_=Q(H*D);t=N[c+8>>2];A=Q(t-E);h=N[l>>2];I=Q(h-G);S=N[f+4>>2];K=Q(S-C);x=Q(I*Q(-K));T=N[l+8>>2];L=Q(T-E);q=Q(L*Q(-H));g=N[c+4>>2];B=Q(g-C);r=Q(K*L);n=Q(F*I);y=Q(Q(Z*z)+Q(Q(_*A)+Q(Q(x*A)+Q(Q(q*B)+Q(Q(r*z)+Q(n*B))))));h:{if(!(y>Q(0)|y>2]=0;J[m+16>>2]=0;J[m+20>>2]=0;J[m+12>>2]=0;if(Q(y*Q(Q(E*Q(_+x))+Q(Q(G*Q(r+Z))+Q(C*Q(n+q)))))>Q(0)){d=Nb(f,l,k,m+16|0,m+12|0);b=J[m+12>>2];J[e+12>>2]=b&3|b<<1&8;N[e+80>>2]=N[m+16>>2];g=N[m+20>>2];J[e+88>>2]=0;N[e+84>>2]=g;N[e+92>>2]=N[m+24>>2]}i:{if(!(Q(y*Q(Q(N[k+8>>2]*Q(Q(I*B)-Q(z*D)))+Q(Q(N[k>>2]*Q(Q(D*A)-Q(B*L)))+Q(N[k+4>>2]*Q(Q(L*z)-Q(A*I))))))>Q(0))){break i}g=Nb(l,c,k,m+16|0,m+12|0);if(!(d>2]=J[m+12>>2]<<1&14;N[e+84>>2]=N[m+16>>2];d=N[m+20>>2];J[e+80>>2]=0;N[e+88>>2]=d;N[e+92>>2]=N[m+24>>2];d=g}j:{if(!(Q(y*Q(Q(N[k+8>>2]*Q(Q(z*K)-Q(H*B)))+Q(Q(N[k>>2]*Q(Q(B*F)-Q(K*A)))+Q(N[k+4>>2]*Q(Q(A*H)-Q(F*z))))))>Q(0))){break j}g=Nb(c,f,k,m+16|0,m+12|0);if(!(d>2];J[e+12>>2]=b>>>1&1|b<<1&8|b<<2&4;N[e+88>>2]=N[m+16>>2];d=N[m+20>>2];J[e+84>>2]=0;N[e+80>>2]=d;N[e+92>>2]=N[m+24>>2];d=g}if(!(d>2]=15;q=N[c>>2];r=N[l+4>>2];n=N[k+8>>2];o=N[c+4>>2];j=N[l+8>>2];h=N[k>>2];i=N[c+8>>2];g=N[l>>2];d=N[k+4>>2];t=Q(Q(Q(Q(Q(q*r)*n)+Q(Q(Q(Q(Q(o*j)*h)+Q(Q(i*g)*d))-Q(Q(j*q)*d))-Q(Q(g*o)*n)))-Q(Q(r*i)*h))/y);N[e+80>>2]=t;q=N[f>>2];r=N[c+4>>2];n=N[k+8>>2];o=N[f+4>>2];j=N[c+8>>2];h=N[k>>2];i=N[f+8>>2];g=N[c>>2];d=N[k+4>>2];x=Q(Q(Q(Q(Q(q*r)*n)+Q(Q(Q(Q(Q(o*j)*h)+Q(Q(i*g)*d))-Q(Q(j*q)*d))-Q(Q(g*o)*n)))-Q(Q(r*i)*h))/y);N[e+84>>2]=x;q=N[l>>2];r=N[f+4>>2];n=N[k+8>>2];o=N[l+4>>2];j=N[f+8>>2];h=N[k>>2];i=N[l+8>>2];g=N[f>>2];d=N[k+4>>2];d=Q(Q(Q(Q(Q(q*r)*n)+Q(Q(Q(Q(Q(o*j)*h)+Q(Q(i*g)*d))-Q(Q(j*q)*d))-Q(Q(g*o)*n)))-Q(Q(r*i)*h))/y);N[e+88>>2]=d;N[e+92>>2]=Q(1)-Q(Q(t+x)+d);d=Q(0)}sa=m+32|0;g=d}if(!(g>=Q(0))){break e}u=1-u|0;b=P(u,36);U=b+a|0;J[U+180>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+368>>2]=u;m=J[w+180>>2];if(!m){d=Q(0);V=J[e+12>>2];n=Q(0);j=Q(0);break b}k=b+W|0;c=J[a+364>>2];d=Q(0);M=0;V=J[e+12>>2];n=Q(0);j=Q(0);b=0;while(1){w=b<<2;l=w+v|0;$=J[l>>2];k:{if(V>>>b&1){f=M<<2;J[f+k>>2]=$;h=N[w+(e+80|0)>>2];M=M+1|0;J[U+180>>2]=M;N[(f+U|0)+164>>2]=h;f=J[l>>2];i=N[f+24>>2];d=N[f+20>>2];j=Q(Q(h*N[f+16>>2])+N[a+128>>2]);N[a+128>>2]=j;n=Q(Q(h*d)+N[a+132>>2]);N[a+132>>2]=n;d=Q(Q(h*i)+N[a+136>>2]);N[a+136>>2]=d;break k}f=c+1|0;J[a+364>>2]=f;J[((c<<2)+a|0)+348>>2]=$;c=f}b=b+1|0;if((m|0)!=(b|0)){continue}break}break b}u=J[a+368>>2];c=P(u,36)+a|0;b=J[c+180>>2]-1|0;J[c+180>>2]=b;c=J[(c+(b<<2)|0)+148>>2];b=J[a+364>>2];J[a+364>>2]=b+1;J[((b<<2)+a|0)+348>>2]=c;break c}u=J[a+368>>2];c=P(u,36)+a|0;b=J[c+180>>2]-1|0;J[c+180>>2]=b;c=J[(c+(b<<2)|0)+148>>2];b=J[a+364>>2];J[a+364>>2]=b+1;J[((b<<2)+a|0)+348>>2]=c}b=J[a+376>>2];break a}aa=aa+1|0;b=aa>>>0>=128?2:(V|0)==15?1:J[a+376>>2];J[a+376>>2]=b;if(!b){continue}}break}J[a+372>>2]=(P(u,36)+a|0)+148;d=Q(0);l:{switch(b|0){case 0:d=N[a+136>>2];p=Q(d*d);d=N[a+128>>2];g=Q(d*d);d=N[a+132>>2];d=Q(Y(Q(p+Q(g+Q(d*d)))));case 1:N[a+144>>2]=d;break;default:break l}}sa=e+96|0;return b}function Nd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=Q(0),t=Q(0),u=Q(0),v=0,w=Q(0),x=0,y=0,z=0,A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=Q(0),I=Q(0),L=0,M=0,O=Q(0),R=Q(0),S=Q(0),T=Q(0),U=Q(0),V=0,W=0,X=Q(0),Y=Q(0),Z=Q(0),_=Q(0),$=Q(0),aa=Q(0),ba=Q(0),ca=Q(0);n=sa-32|0;sa=n;if((J[e+4>>2]&J[e+8>>2])<0){j=J[e+12>>2];if(!(j?!j|!K[e+16|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](j)}H[e+16|0]=1;J[e+8>>2]=0;J[e+12>>2]=0}j=0;J[e+4>>2]=0;x=J[d+4>>2];if((x|0)>J[e+8>>2]){a:{if(!x){break a}J[8456]=J[8456]+1;j=ua[J[8258]](x<<4,16)|0;l=J[e+4>>2];if((l|0)<=0){break a}if((l|0)!=1){m=l&-2;while(1){y=i<<4;r=y+j|0;v=y+J[e+12>>2]|0;M=J[v+4>>2];J[r>>2]=J[v>>2];J[r+4>>2]=M;M=J[v+12>>2];J[r+8>>2]=J[v+8>>2];J[r+12>>2]=M;v=y|16;y=v+j|0;v=v+J[e+12>>2]|0;r=J[v+4>>2];J[y>>2]=J[v>>2];J[y+4>>2]=r;r=J[v+12>>2];J[y+8>>2]=J[v+8>>2];J[y+12>>2]=r;i=i+2|0;k=k+2|0;if((m|0)!=(k|0)){continue}break}}if(!(l&1)){break a}i=i<<4;k=i+j|0;i=i+J[e+12>>2]|0;l=J[i+4>>2];J[k>>2]=J[i>>2];J[k+4>>2]=l;l=J[i+12>>2];J[k+8>>2]=J[i+8>>2];J[k+12>>2]=l}i=J[e+12>>2];if(!(i?!i|!K[e+16|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](i)}J[e+12>>2]=j;H[e+16|0]=1;J[e+8>>2]=x}k=J[b+28>>2];b:{if((k|0)<=0){break b}w=N[c+40>>2];A=N[c+36>>2];C=N[c+24>>2];D=N[c+20>>2];l=J[b+36>>2];E=N[a+8>>2];F=N[a+4>>2];I=N[a>>2];O=N[c+32>>2];R=N[c+16>>2];S=N[c+8>>2];T=N[c+4>>2];B=N[c>>2];i=0;o=Q(34028234663852886e22);j=-1;while(1){x=l+P(i,36)|0;u=N[x+28>>2];t=N[x+20>>2];s=N[x+24>>2];u=Q(Q(Q(Q(w*u)+Q(Q(O*t)+Q(s*A)))*E)+Q(Q(Q(Q(S*u)+Q(Q(B*t)+Q(s*T)))*I)+Q(Q(Q(C*u)+Q(Q(R*t)+Q(s*D)))*F)));x=u>2]+P(j,36)|0;W=J[v+4>>2];c:{if((W|0)<=0){j=d;break c}x=0;while(1){j=e;e=x;x=e+1|0;M=(W|0)==(x|0);l=J[b+16>>2];k=J[v+12>>2];i=l+(J[k+((M?0:x)<<2)>>2]<<4)|0;B=N[i+8>>2];G=N[i>>2];U=N[i+4>>2];e=l+(J[k+(e<<2)>>2]<<4)|0;o=N[e+8>>2];u=N[e>>2];t=N[e+4>>2];aa=N[c+56>>2];ba=N[c+48>>2];ca=N[c+52>>2];C=N[c+40>>2];D=N[c+32>>2];E=N[c+36>>2];s=N[v+28>>2];F=N[c+8>>2];w=N[v+20>>2];I=N[c>>2];A=N[v+24>>2];O=N[c+4>>2];R=N[c+24>>2];S=N[c+16>>2];T=N[c+20>>2];J[n+28>>2]=0;B=Q(o-B);G=Q(u-G);U=Q(t-U);X=Q(Q(F*B)+Q(Q(I*G)+Q(O*U)));Y=Q(Q(R*s)+Q(Q(S*w)+Q(T*A)));Z=Q(Q(F*s)+Q(Q(I*w)+Q(O*A)));_=Q(Q(R*B)+Q(Q(S*G)+Q(U*T)));$=Q(Q(X*Y)-Q(Z*_));N[n+24>>2]=-$;B=Q(Q(C*B)+Q(Q(D*G)+Q(U*E)));s=Q(Q(C*s)+Q(Q(D*w)+Q(E*A)));G=Q(Q(B*Z)-Q(s*X));N[n+20>>2]=-G;B=Q(-Q(Q(_*s)-Q(Y*B)));N[n+16>>2]=B;y=0;e=d;V=J[d+4>>2];if((V|0)>=2){d=(J[e+12>>2]+(V<<4)|0)-16|0;s=N[d+8>>2];w=N[d>>2];A=N[d+4>>2];F=Q(-Q(Q(Q(Q(ba+Q(Q(o*F)+Q(Q(u*I)+Q(t*O))))*B)-Q(Q(ca+Q(Q(o*R)+Q(Q(u*S)+Q(t*T))))*G))-Q(Q(aa+Q(Q(o*C)+Q(Q(u*D)+Q(t*E))))*$)));o=Q(Q(Q(N[n+24>>2]*s)+Q(Q(N[n+16>>2]*w)+Q(A*N[n+20>>2])))+F);while(1){d=J[e+12>>2]+(y<<4)|0;u=N[d+8>>2];D=N[d>>2];t=N[d+4>>2];C=Q(Q(Q(N[n+24>>2]*u)+Q(Q(N[n+16>>2]*D)+Q(t*N[n+20>>2])))+F);E=N[d+12>>2];d:{e:{f:{if(o>2];g:{if((d|0)!=J[j+8>>2]){break g}r=d?d<<1:1;if((r|0)<=(d|0)){break g}h:{if(!r){k=0;break h}J[8456]=J[8456]+1;k=ua[J[8258]](r<<4,16)|0;d=J[j+4>>2]}i:{if((d|0)<=0){break i}i=0;if((d|0)!=1){L=d&-2;l=0;while(1){p=i<<4;q=p+k|0;m=p+J[j+12>>2]|0;z=J[m+4>>2];J[q>>2]=J[m>>2];J[q+4>>2]=z;z=J[m+12>>2];J[q+8>>2]=J[m+8>>2];J[q+12>>2]=z;m=p|16;p=m+k|0;m=m+J[j+12>>2]|0;q=J[m+4>>2];J[p>>2]=J[m>>2];J[p+4>>2]=q;q=J[m+12>>2];J[p+8>>2]=J[m+8>>2];J[p+12>>2]=q;i=i+2|0;l=l+2|0;if((L|0)!=(l|0)){continue}break}}if(!(d&1)){break i}d=i<<4;i=d+k|0;d=d+J[j+12>>2]|0;l=J[d+4>>2];J[i>>2]=J[d>>2];J[i+4>>2]=l;l=J[d+12>>2];J[i+8>>2]=J[d+8>>2];J[i+12>>2]=l}d=J[j+12>>2];if(!(d?!d|!K[j+16|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](d)}J[j+12>>2]=k;H[j+16|0]=1;J[j+8>>2]=r;d=J[j+4>>2]}i=J[j+12>>2]+(d<<4)|0;break f}o=Q(o/Q(o-C));E=Q(Q(u-s)*o);I=Q(Q(t-A)*o);w=Q(Q(Q(D-w)*o)+w);d=J[j+4>>2];j:{if((d|0)!=J[j+8>>2]){break j}r=d?d<<1:1;if((r|0)<=(d|0)){break j}k:{if(!r){k=0;break k}J[8456]=J[8456]+1;k=ua[J[8258]](r<<4,16)|0;d=J[j+4>>2]}l:{if((d|0)<=0){break l}i=0;if((d|0)!=1){L=d&-2;l=0;while(1){p=i<<4;q=p+k|0;m=p+J[j+12>>2]|0;z=J[m+4>>2];J[q>>2]=J[m>>2];J[q+4>>2]=z;z=J[m+12>>2];J[q+8>>2]=J[m+8>>2];J[q+12>>2]=z;m=p|16;p=m+k|0;m=m+J[j+12>>2]|0;q=J[m+4>>2];J[p>>2]=J[m>>2];J[p+4>>2]=q;q=J[m+12>>2];J[p+8>>2]=J[m+8>>2];J[p+12>>2]=q;i=i+2|0;l=l+2|0;if((L|0)!=(l|0)){continue}break}}if(!(d&1)){break l}d=i<<4;i=d+k|0;d=d+J[j+12>>2]|0;l=J[d+4>>2];J[i>>2]=J[d>>2];J[i+4>>2]=l;l=J[d+12>>2];J[i+8>>2]=J[d+8>>2];J[i+12>>2]=l}d=J[j+12>>2];if(!(d?!d|!K[j+16|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](d)}J[j+12>>2]=k;H[j+16|0]=1;J[j+8>>2]=r;d=J[j+4>>2]}o=Q(E+s);i=J[j+12>>2]+(d<<4)|0;N[i>>2]=w;E=Q(0);s=Q(I+A);break e}if(!(C>2];m:{if((d|0)!=J[j+8>>2]){break m}r=d?d<<1:1;if((r|0)<=(d|0)){break m}n:{if(!r){k=0;break n}J[8456]=J[8456]+1;k=ua[J[8258]](r<<4,16)|0;d=J[j+4>>2]}o:{if((d|0)<=0){break o}i=0;if((d|0)!=1){L=d&-2;l=0;while(1){p=i<<4;q=p+k|0;m=p+J[j+12>>2]|0;z=J[m+4>>2];J[q>>2]=J[m>>2];J[q+4>>2]=z;z=J[m+12>>2];J[q+8>>2]=J[m+8>>2];J[q+12>>2]=z;m=p|16;p=m+k|0;m=m+J[j+12>>2]|0;q=J[m+4>>2];J[p>>2]=J[m>>2];J[p+4>>2]=q;q=J[m+12>>2];J[p+8>>2]=J[m+8>>2];J[p+12>>2]=q;i=i+2|0;l=l+2|0;if((L|0)!=(l|0)){continue}break}}if(!(d&1)){break o}d=i<<4;i=d+k|0;d=d+J[j+12>>2]|0;l=J[d+4>>2];J[i>>2]=J[d>>2];J[i+4>>2]=l;l=J[d+12>>2];J[i+8>>2]=J[d+8>>2];J[i+12>>2]=l}d=J[j+12>>2];if(!(d?!d|!K[j+16|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](d)}J[j+12>>2]=k;H[j+16|0]=1;J[j+8>>2]=r;d=J[j+4>>2]}d=J[j+12>>2]+(d<<4)|0;J[d+12>>2]=0;N[d+8>>2]=s;N[d+4>>2]=A;N[d>>2]=o;d=J[j+4>>2]+1|0;J[j+4>>2]=d;p:{if(J[j+8>>2]!=(d|0)){break p}r=d?d<<1:1;if((r|0)<=(d|0)){break p}q:{if(!r){k=0;break q}J[8456]=J[8456]+1;k=ua[J[8258]](r<<4,16)|0;d=J[j+4>>2]}r:{if((d|0)<=0){break r}i=0;if((d|0)!=1){L=d&-2;l=0;while(1){p=i<<4;q=p+k|0;m=p+J[j+12>>2]|0;z=J[m+4>>2];J[q>>2]=J[m>>2];J[q+4>>2]=z;z=J[m+12>>2];J[q+8>>2]=J[m+8>>2];J[q+12>>2]=z;m=p|16;p=m+k|0;m=m+J[j+12>>2]|0;q=J[m+4>>2];J[p>>2]=J[m>>2];J[p+4>>2]=q;q=J[m+12>>2];J[p+8>>2]=J[m+8>>2];J[p+12>>2]=q;i=i+2|0;l=l+2|0;if((L|0)!=(l|0)){continue}break}}if(!(d&1)){break r}d=i<<4;i=d+k|0;d=d+J[j+12>>2]|0;l=J[d+4>>2];J[i>>2]=J[d>>2];J[i+4>>2]=l;l=J[d+12>>2];J[i+8>>2]=J[d+8>>2];J[i+12>>2]=l}d=J[j+12>>2];if(!(d?!d|!K[j+16|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](d)}J[j+12>>2]=k;H[j+16|0]=1;J[j+8>>2]=r;d=J[j+4>>2]}i=J[j+12>>2]+(d<<4)|0}N[i>>2]=D;o=u;s=t}N[i+12>>2]=E;N[i+8>>2]=o;N[i+4>>2]=s;J[j+4>>2]=J[j+4>>2]+1}o=C;s=u;A=t;w=D;y=y+1|0;if((V|0)!=(y|0)){continue}break}}d=J[e+4>>2];s:{if((d|0)>=0){break s}if(J[e+8>>2]<0){i=J[e+12>>2];if(!(i?!i|!K[e+16|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](i)}H[e+16|0]=1;J[e+8>>2]=0;J[e+12>>2]=0}k=0;i=d;y=0-d&3;if(y){while(1){r=J[n+4>>2];l=J[e+12>>2]+(i<<4)|0;J[l>>2]=J[n>>2];J[l+4>>2]=r;r=J[n+12>>2];J[l+8>>2]=J[n+8>>2];J[l+12>>2]=r;i=i+1|0;k=k+1|0;if((y|0)!=(k|0)){continue}break}}if(d>>>0>4294967292){break s}while(1){l=J[n+4>>2];d=i<<4;k=d+J[e+12>>2]|0;J[k>>2]=J[n>>2];J[k+4>>2]=l;l=J[n+12>>2];J[k+8>>2]=J[n+8>>2];J[k+12>>2]=l;l=J[n+12>>2];k=d+J[e+12>>2]|0;J[k+24>>2]=J[n+8>>2];J[k+28>>2]=l;l=J[n+4>>2];J[k+16>>2]=J[n>>2];J[k+20>>2]=l;l=J[n+12>>2];k=d+J[e+12>>2]|0;J[k+40>>2]=J[n+8>>2];J[k+44>>2]=l;l=J[n+4>>2];J[k+32>>2]=J[n>>2];J[k+36>>2]=l;k=J[n+12>>2];d=d+J[e+12>>2]|0;J[d+56>>2]=J[n+8>>2];J[d+60>>2]=k;k=J[n+4>>2];J[d+48>>2]=J[n>>2];J[d+52>>2]=k;i=i+4|0;if(i){continue}break}}J[e+4>>2]=0;d=j;if(!M){continue}break}}k=J[j+4>>2];if((k|0)<=0){break b}o=N[v+28>>2];u=N[v+20>>2];t=N[v+24>>2];s=Q(Q(N[c+40>>2]*o)+Q(Q(N[c+32>>2]*u)+Q(t*N[c+36>>2])));w=Q(Q(N[c+8>>2]*o)+Q(Q(N[c>>2]*u)+Q(t*N[c+4>>2])));o=Q(Q(N[c+24>>2]*o)+Q(Q(N[c+16>>2]*u)+Q(t*N[c+20>>2])));u=Q(N[v+32>>2]-Q(Q(s*N[c+56>>2])+Q(Q(w*N[c+48>>2])+Q(o*N[c+52>>2]))));e=0;while(1){b=J[j+12>>2]+(e<<4)|0;t=Q(u+Q(Q(s*N[b+8>>2])+Q(Q(w*N[b>>2])+Q(o*N[b+4>>2]))));t=f>=t?f:t;if(t<=g){c=J[b+12>>2];J[n+24>>2]=J[b+8>>2];J[n+28>>2]=c;c=J[b+4>>2];J[n+16>>2]=J[b>>2];J[n+20>>2]=c;ua[J[J[h>>2]+16>>2]](h,a,n+16|0,t);k=J[j+4>>2]}e=e+1|0;if((k|0)>(e|0)){continue}break}}sa=n+32|0}function an(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=Q(0),h=Q(0),i=0,j=Q(0),k=0,l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=0,C=0,D=Q(0),E=Q(0),F=0,G=0,H=0,I=0,K=0,L=Q(0),M=Q(0),O=Q(0),R=0,S=Q(0),T=0;e=sa-144|0;sa=e;a:{if(!(ua[J[J[a>>2]+20>>2]](a)|0)){break a}f=ua[J[J[a>>2]+20>>2]](a)|0;if(!(ua[J[J[f>>2]+56>>2]](f)&32768)){break a}f=ua[J[J[a>>2]+20>>2]](a)|0;ua[J[J[f>>2]+64>>2]](f,b,Q(.10000000149011612))}b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{f=J[c+4>>2];switch(f|0){case 0:break j;case 31:break k;case 28:break d;case 13:break e;case 11:break f;case 10:break g;case 9:break h;case 8:break i;default:break c}}f=J[c+24>>2];if((f|0)<=0){break b}while(1){k=f-1|0;i=J[c+32>>2]+P(k,80)|0;B=J[i+64>>2];p=N[i+56>>2];q=N[i+48>>2];w=N[i+52>>2];x=N[i+32>>2];y=N[i>>2];z=N[i+16>>2];A=N[i+36>>2];r=N[i+4>>2];s=N[i+20>>2];t=N[i+40>>2];D=N[i+8>>2];E=N[i+24>>2];L=N[b+48>>2];M=N[b+52>>2];O=N[b+56>>2];g=N[b+8>>2];h=N[b>>2];j=N[b+4>>2];l=N[b+24>>2];m=N[b+16>>2];n=N[b+20>>2];u=N[b+40>>2];v=N[b+32>>2];o=N[b+36>>2];J[e+60>>2]=0;J[e+44>>2]=0;J[e+28>>2]=0;J[e+12>>2]=0;N[e+40>>2]=Q(t*u)+Q(Q(D*v)+Q(E*o));N[e+36>>2]=Q(A*u)+Q(Q(r*v)+Q(s*o));N[e+32>>2]=Q(x*u)+Q(Q(y*v)+Q(z*o));N[e+24>>2]=Q(t*l)+Q(Q(D*m)+Q(E*n));N[e+20>>2]=Q(A*l)+Q(Q(r*m)+Q(s*n));N[e+16>>2]=Q(x*l)+Q(Q(y*m)+Q(z*n));N[e+8>>2]=Q(t*g)+Q(Q(D*h)+Q(E*j));N[e+4>>2]=Q(A*g)+Q(Q(r*h)+Q(s*j));N[e>>2]=Q(x*g)+Q(Q(y*h)+Q(z*j));N[e+56>>2]=O+Q(Q(p*u)+Q(Q(q*v)+Q(w*o)));N[e+52>>2]=M+Q(Q(p*l)+Q(Q(q*m)+Q(w*n)));N[e+48>>2]=L+Q(Q(p*g)+Q(Q(q*h)+Q(w*j)));ua[J[J[a>>2]+28>>2]](a,e,B,d);i=f>>>0>1;f=k;if(i){continue}break}break b}f=J[c+48>>2];J[e+8>>2]=J[c+44>>2];J[e+12>>2]=f;f=J[c+40>>2];J[e>>2]=J[c+36>>2];J[e+4>>2]=f;g=Q(ua[J[J[c>>2]+48>>2]](c));h=Q(ua[J[J[c>>2]+48>>2]](c));j=Q(Q(ua[J[J[c>>2]+48>>2]](c))+N[e+8>>2]);N[e+8>>2]=j;g=Q(g+N[e>>2]);N[e>>2]=g;h=Q(h+N[e+4>>2]);N[e+4>>2]=h;a=ua[J[J[a>>2]+20>>2]](a)|0;J[e+140>>2]=0;N[e+136>>2]=-j;N[e+132>>2]=-h;N[e+128>>2]=-g;ua[J[J[a>>2]+80>>2]](a,e+128|0,e,b,d);break b}g=Q(ua[J[J[c>>2]+48>>2]](c));a=ua[J[J[a>>2]+20>>2]](a)|0;ua[J[J[a>>2]+24>>2]](a,g,b,d);break b}f=J[c+100>>2];if((f|0)<=0){break b}while(1){k=f-1|0;i=J[c+108>>2]+(k<<4)|0;g=N[i+8>>2];h=N[i>>2];j=N[i+4>>2];i=ua[J[J[a>>2]+20>>2]](a)|0;x=N[J[c+128>>2]+(k<<2)>>2];y=N[b+48>>2];z=N[b+52>>2];A=N[b+56>>2];l=N[b+8>>2];m=N[b>>2];n=N[b+4>>2];u=N[b+24>>2];v=N[b+16>>2];o=N[b+20>>2];p=N[b+40>>2];q=N[b+32>>2];w=N[b+36>>2];J[e+60>>2]=0;J[e+44>>2]=0;J[e+28>>2]=0;J[e+12>>2]=0;r=Q(q*Q(0));s=Q(w*Q(0));N[e+40>>2]=p+Q(r+s);t=Q(p*Q(0));N[e+36>>2]=t+Q(r+w);N[e+32>>2]=t+Q(q+s);r=Q(v*Q(0));s=Q(o*Q(0));N[e+24>>2]=u+Q(r+s);t=Q(u*Q(0));N[e+20>>2]=t+Q(r+o);N[e+16>>2]=t+Q(v+s);r=Q(m*Q(0));s=Q(n*Q(0));N[e+8>>2]=l+Q(r+s);t=Q(l*Q(0));N[e+4>>2]=t+Q(r+n);N[e>>2]=t+Q(m+s);N[e+56>>2]=A+Q(Q(g*p)+Q(Q(h*q)+Q(j*w)));N[e+52>>2]=z+Q(Q(g*u)+Q(Q(h*v)+Q(j*o)));N[e+48>>2]=y+Q(Q(g*l)+Q(Q(h*m)+Q(j*n)));ua[J[J[i>>2]+24>>2]](i,x,e,d);i=f>>>0>1;f=k;if(i){continue}break}break b}f=J[c+60>>2];c=c+36|0;g=N[(f<<2)+c>>2];h=N[c+((f+2|0)%3<<2)>>2];a=ua[J[J[a>>2]+20>>2]](a)|0;ua[J[J[a>>2]+84>>2]](a,h,g,f,b,d);break b}f=J[c+76>>2];g=N[c+68>>2];h=N[c+64>>2];a=ua[J[J[a>>2]+20>>2]](a)|0;ua[J[J[a>>2]+92>>2]](a,h,g,f,b,d);break b}f=J[c+60>>2];g=Q(ua[J[J[c>>2]+92>>2]](c));k=J[c+48>>2];J[e+8>>2]=J[c+44>>2];J[e+12>>2]=k;k=J[c+40>>2];J[e>>2]=J[c+36>>2];J[e+4>>2]=k;h=Q(ua[J[J[c>>2]+48>>2]](c));j=Q(ua[J[J[c>>2]+48>>2]](c));R=e,S=Q(Q(ua[J[J[c>>2]+48>>2]](c))+N[e+8>>2]),N[R+8>>2]=S;N[e>>2]=h+N[e>>2];N[e+4>>2]=j+N[e+4>>2];h=N[(f<<2)+e>>2];a=ua[J[J[a>>2]+20>>2]](a)|0;ua[J[J[a>>2]+88>>2]](a,g,h,f,b,d);break b}g=N[c+72>>2];a=ua[J[J[a>>2]+20>>2]](a)|0;ua[J[J[a>>2]+96>>2]](a,c+56|0,g,b,d);break b}l:{if((f|0)>6){break l}B=J[c+60>>2];if(B){if(J[B+28>>2]<=0){break l}while(1){i=J[B+36>>2];F=P(G,36);f=i+F|0;H=J[f+4>>2];m:{if((H|0)<=0){g=Q(0);h=Q(0);j=Q(0);break m}k=J[(J[f+12>>2]+(H<<2)|0)-4>>2];j=Q(0);f=0;h=Q(0);g=Q(0);while(1){i=J[J[(i+F|0)+12>>2]+(f<<2)>>2];I=i<<4;C=I+J[B+16>>2]|0;t=N[C>>2];D=N[C+4>>2];E=N[C+8>>2];C=ua[J[J[a>>2]+20>>2]](a)|0;K=J[B+16>>2];k=K+(k<<4)|0;l=N[k+8>>2];m=N[k>>2];n=N[k+4>>2];u=N[b+48>>2];v=N[b+8>>2];o=N[b>>2];p=N[b+4>>2];q=N[b+52>>2];w=N[b+24>>2];x=N[b+16>>2];y=N[b+20>>2];z=N[b+56>>2];A=N[b+40>>2];r=N[b+32>>2];s=N[b+36>>2];J[e+12>>2]=0;N[e+8>>2]=z+Q(Q(l*A)+Q(Q(m*r)+Q(n*s)));N[e+4>>2]=q+Q(Q(l*w)+Q(Q(m*x)+Q(n*y)));N[e>>2]=u+Q(Q(l*v)+Q(Q(m*o)+Q(n*p)));k=I+K|0;l=N[k+8>>2];m=N[k>>2];n=N[k+4>>2];J[e+140>>2]=0;N[e+136>>2]=z+Q(Q(l*A)+Q(Q(m*r)+Q(s*n)));N[e+132>>2]=q+Q(Q(l*w)+Q(Q(m*x)+Q(y*n)));N[e+128>>2]=u+Q(Q(l*v)+Q(Q(m*o)+Q(p*n)));ua[J[J[C>>2]+16>>2]](C,e,e+128|0,d);j=Q(j+E);h=Q(h+D);g=Q(g+t);k=i;f=f+1|0;i=J[B+36>>2];if((f|0)>2]){continue}break}}f=ua[J[J[a>>2]+20>>2]](a)|0;if(ua[J[J[f>>2]+56>>2]](f)&16384){J[e+8>>2]=0;J[e+12>>2]=0;J[e>>2]=1065353216;J[e+4>>2]=1065353216;f=J[B+36>>2]+F|0;r=N[f+28>>2];s=N[f+20>>2];t=N[f+24>>2];f=ua[J[J[a>>2]+20>>2]](a)|0;l=N[b+48>>2];m=N[b+8>>2];n=N[b>>2];u=N[b+4>>2];v=N[b+52>>2];o=N[b+24>>2];p=N[b+16>>2];q=N[b+20>>2];w=N[b+56>>2];x=N[b+40>>2];y=N[b+32>>2];z=N[b+36>>2];J[e+140>>2]=0;A=Q(Q(1)/Q(H|0));j=Q(A*j);g=Q(A*g);h=Q(A*h);N[e+136>>2]=w+Q(Q(x*j)+Q(Q(y*g)+Q(z*h)));N[e+132>>2]=v+Q(Q(j*o)+Q(Q(g*p)+Q(h*q)));N[e+128>>2]=l+Q(Q(j*m)+Q(Q(g*n)+Q(h*u)));J[e+124>>2]=0;j=Q(j+r);g=Q(g+s);h=Q(h+t);N[e+120>>2]=w+Q(Q(x*j)+Q(Q(y*g)+Q(z*h)));N[e+116>>2]=v+Q(Q(j*o)+Q(Q(g*p)+Q(h*q)));N[e+112>>2]=l+Q(Q(j*m)+Q(Q(g*n)+Q(h*u)));ua[J[J[f>>2]+16>>2]](f,e+128|0,e+112|0,e)}G=G+1|0;if((G|0)>2]){continue}break}break l}if((ua[J[J[c>>2]+100>>2]](c)|0)<=0){break l}f=0;while(1){ua[J[J[c>>2]+104>>2]](c,f,e,e+128|0);g=N[b+48>>2];h=N[b+8>>2];j=N[b>>2];l=N[b+4>>2];m=N[b+52>>2];n=N[b+24>>2];u=N[b+16>>2];v=N[b+20>>2];o=N[b+56>>2];p=N[b+40>>2];q=N[b+32>>2];w=N[b+36>>2];J[e+124>>2]=0;x=N[e+8>>2];y=N[e>>2];z=N[e+4>>2];N[e+120>>2]=o+Q(Q(p*x)+Q(Q(q*y)+Q(w*z)));N[e+116>>2]=m+Q(Q(x*n)+Q(Q(y*u)+Q(z*v)));N[e+112>>2]=g+Q(Q(x*h)+Q(Q(y*j)+Q(z*l)));J[e+108>>2]=0;r=o;o=N[e+136>>2];s=Q(p*o);p=N[e+128>>2];t=Q(q*p);q=N[e+132>>2];N[e+104>>2]=r+Q(s+Q(t+Q(w*q)));N[e+100>>2]=m+Q(Q(o*n)+Q(Q(p*u)+Q(v*q)));N[e+96>>2]=g+Q(Q(o*h)+Q(Q(p*j)+Q(l*q)));k=ua[J[J[a>>2]+20>>2]](a)|0;ua[J[J[k>>2]+16>>2]](k,e+112|0,e+96|0,d);f=f+1|0;if((ua[J[J[c>>2]+100>>2]](c)|0)>(f|0)){continue}break}}f=J[c+4>>2];if(f-21>>>0<=8){J[e+136>>2]=1566444395;J[e+140>>2]=0;J[e+128>>2]=1566444395;J[e+132>>2]=1566444395;J[e+120>>2]=-581039253;J[e+124>>2]=0;J[e+112>>2]=-581039253;J[e+116>>2]=-581039253;R=e,T=ua[J[J[a>>2]+20>>2]](a)|0,J[R+8>>2]=T;J[e+4>>2]=14868;J[e>>2]=14844;f=J[d+12>>2];J[e+20>>2]=J[d+8>>2];J[e+24>>2]=f;f=J[d+4>>2];J[e+12>>2]=J[d>>2];J[e+16>>2]=f;f=J[b+12>>2];J[e+36>>2]=J[b+8>>2];J[e+40>>2]=f;f=J[b+4>>2];J[e+28>>2]=J[b>>2];J[e+32>>2]=f;f=J[b+20>>2];J[e+44>>2]=J[b+16>>2];J[e+48>>2]=f;f=J[b+28>>2];J[e+52>>2]=J[b+24>>2];J[e+56>>2]=f;f=J[b+44>>2];J[e+68>>2]=J[b+40>>2];J[e+72>>2]=f;f=J[b+36>>2];J[e+60>>2]=J[b+32>>2];J[e+64>>2]=f;f=J[b+52>>2];J[e+76>>2]=J[b+48>>2];J[e+80>>2]=f;f=J[b+60>>2];J[e+84>>2]=J[b+56>>2];J[e+88>>2]=f;ua[J[J[c>>2]+64>>2]](c,e,e+112|0,e+128|0);f=J[c+4>>2]}if((f|0)!=3){break b}J[e+136>>2]=1566444395;J[e+140>>2]=0;J[e+128>>2]=1566444395;J[e+132>>2]=1566444395;J[e+120>>2]=-581039253;J[e+124>>2]=0;J[e+112>>2]=-581039253;J[e+116>>2]=-581039253;R=e,T=ua[J[J[a>>2]+20>>2]](a)|0,J[R+8>>2]=T;J[e+4>>2]=14868;J[e>>2]=14844;a=J[d+12>>2];J[e+20>>2]=J[d+8>>2];J[e+24>>2]=a;a=J[d+4>>2];J[e+12>>2]=J[d>>2];J[e+16>>2]=a;a=J[b+12>>2];J[e+36>>2]=J[b+8>>2];J[e+40>>2]=a;a=J[b+4>>2];J[e+28>>2]=J[b>>2];J[e+32>>2]=a;a=J[b+20>>2];J[e+44>>2]=J[b+16>>2];J[e+48>>2]=a;a=J[b+28>>2];J[e+52>>2]=J[b+24>>2];J[e+56>>2]=a;a=J[b+44>>2];J[e+68>>2]=J[b+40>>2];J[e+72>>2]=a;a=J[b+36>>2];J[e+60>>2]=J[b+32>>2];J[e+64>>2]=a;a=J[b+52>>2];J[e+76>>2]=J[b+48>>2];J[e+80>>2]=a;a=J[b+60>>2];J[e+84>>2]=J[b+56>>2];J[e+88>>2]=a;a=J[c+100>>2];ua[J[J[a>>2]+8>>2]](a,e+4|0,e+112|0,e+128|0)}sa=e+144|0}function ke(a,b,c,d,e){var f=Q(0),g=0,h=0,i=0,j=0,k=0,l=0,m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=0,r=Q(0),s=0,t=0,u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0);k=sa-48|0;sa=k;H[a+60|0]=c;a:{if(c){f=N[d>>2];m=N[d+4>>2];n=N[d+8>>2];J[a+16>>2]=0;p=Q(n+Q(-1));N[a+12>>2]=p;m=Q(m+Q(-1));N[a+8>>2]=m;n=Q(f+Q(-1));N[a+4>>2]=n;o=N[e>>2];r=N[e+4>>2];f=N[e+8>>2];H[a+60|0]=1;J[a+48>>2]=0;J[a+32>>2]=0;u=Q(f+Q(1));N[a+28>>2]=u;v=Q(r+Q(1));N[a+24>>2]=v;r=Q(o+Q(1));N[a+20>>2]=r;w=Q(Q(65533)/Q(u-p));N[a+44>>2]=w;o=Q(Q(65533)/Q(v-m));N[a+40>>2]=o;x=Q(Q(65533)/Q(r-n));N[a+36>>2]=x;f=Q(Q(p-p)*w);b:{if(f=Q(0)){c=~~f>>>0;break b}c=0}y=Q((c&65534)>>>0);f=Q(Q(m-m)*o);c:{if(f=Q(0)){c=~~f>>>0;break c}c=0}o=Q(m+Q(Q((c&65534)>>>0)/o));f=Q(Q(n-n)*x);d:{if(f=Q(0)){c=~~f>>>0;break d}c=0}f=Q(Q(n+Q(Q((c&65534)>>>0)/x))+Q(-1));if(f>2]=f;n=f}f=Q(o+Q(-1));if(f>2]=f;m=f}f=Q(Q(p+Q(y/w))+Q(-1));if(f>2]=f;p=f}f=Q(u-p);w=Q(Q(65533)/f);f=Q(Q(f*w)+Q(1));e:{if(f=Q(0)){c=~~f>>>0;break e}c=0}y=Q((c|1)>>>0);f=Q(v-m);o=Q(Q(65533)/f);f=Q(Q(f*o)+Q(1));f:{if(f=Q(0)){c=~~f>>>0;break f}c=0}o=Q(m+Q(Q((c|1)>>>0)/o));f=Q(r-n);x=Q(Q(65533)/f);f=Q(Q(f*x)+Q(1));g:{if(f=Q(0)){c=~~f>>>0;break g}c=0}f=Q(Q(n+Q(Q((c|1)>>>0)/x))+Q(1));if(f>r){N[a+20>>2]=f;r=f}f=Q(o+Q(1));if(f>v){N[a+24>>2]=f;v=f}f=Q(Q(p+Q(y/w))+Q(1));if(f>u){N[a+28>>2]=f;u=f}J[a+48>>2]=0;N[a+44>>2]=Q(65533)/Q(u-p);N[a+40>>2]=Q(65533)/Q(v-m);N[a+36>>2]=Q(65533)/Q(r-n);J[k+32>>2]=a;J[k+28>>2]=a+104;J[k+24>>2]=20556;ua[J[J[b>>2]+8>>2]](b,k+24|0,a+4|0,a+20|0);c=J[a+128>>2];s=J[a+108>>2];j=s<<1;h:{if((c|0)>=(j|0)){break h}if((j|0)>J[a+132>>2]){i:{if(!s){d=0;e=c;break i}J[8456]=J[8456]+1;d=ua[J[8258]](s<<5,16)|0;e=J[a+128>>2]}j:{if((e|0)<=0){break j}b=0;if((e|0)!=1){t=e&-2;while(1){i=b<<4;h=i+d|0;q=i+J[a+136>>2]|0;g=J[q+4>>2];J[h>>2]=J[q>>2];J[h+4>>2]=g;g=J[q+12>>2];J[h+8>>2]=J[q+8>>2];J[h+12>>2]=g;g=i|16;h=g+d|0;i=g+J[a+136>>2]|0;g=J[i+4>>2];J[h>>2]=J[i>>2];J[h+4>>2]=g;g=J[i+12>>2];J[h+8>>2]=J[i+8>>2];J[h+12>>2]=g;b=b+2|0;l=l+2|0;if((t|0)!=(l|0)){continue}break}}if(!(e&1)){break j}b=b<<4;e=b+d|0;g=b+J[a+136>>2]|0;b=J[g+4>>2];J[e>>2]=J[g>>2];J[e+4>>2]=b;b=J[g+12>>2];J[e+8>>2]=J[g+8>>2];J[e+12>>2]=b}b=J[a+136>>2];if(!(b?!b|!K[a+140|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+136>>2]=d;H[a+140|0]=1;J[a+132>>2]=j}e=j+(c^-1)|0;d=j-c&3;if(d){b=0;while(1){g=J[a+136>>2]+(c<<4)|0;J[g>>2]=0;J[g+4>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;c=c+1|0;b=b+1|0;if((d|0)!=(b|0)){continue}break}}if(e>>>0<3){break h}while(1){d=c<<4;b=d+J[a+136>>2]|0;J[b>>2]=0;J[b+4>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;b=d+J[a+136>>2]|0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;b=d+J[a+136>>2]|0;J[b+40>>2]=0;J[b+44>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;b=d+J[a+136>>2]|0;J[b+56>>2]=0;J[b+60>>2]=0;J[b+48>>2]=0;J[b+52>>2]=0;c=c+4|0;if((j|0)!=(c|0)){continue}break}}J[a+128>>2]=j;break a}J[k+40>>2]=20688;J[k+44>>2]=a- -64;J[k+32>>2]=-581039253;J[k+36>>2]=0;J[k+24>>2]=-581039253;J[k+28>>2]=-581039253;J[k+16>>2]=1566444395;J[k+20>>2]=0;J[k+8>>2]=1566444395;J[k+12>>2]=1566444395;ua[J[J[b>>2]+8>>2]](b,k+40|0,k+24|0,k+8|0);b=J[a+88>>2];s=J[a+68>>2];l=s<<1;k:{if((b|0)>=(l|0)){break k}if((l|0)>J[a+92>>2]){if(s){J[8456]=J[8456]+1;q=ua[J[8258]](s<<7,16)|0;c=J[a+88>>2]}else{c=b}l:{if((c|0)<=0){break l}d=0;if((c|0)!=1){t=c&-2;while(1){i=d<<6;h=i+q|0;j=i+J[a+96>>2]|0;e=J[j+4>>2];J[h>>2]=J[j>>2];J[h+4>>2]=e;e=J[j+60>>2];J[h+56>>2]=J[j+56>>2];J[h+60>>2]=e;e=J[j+52>>2];J[h+48>>2]=J[j+48>>2];J[h+52>>2]=e;e=J[j+44>>2];J[h+40>>2]=J[j+40>>2];J[h+44>>2]=e;e=J[j+36>>2];J[h+32>>2]=J[j+32>>2];J[h+36>>2]=e;e=J[j+28>>2];J[h+24>>2]=J[j+24>>2];J[h+28>>2]=e;e=J[j+20>>2];J[h+16>>2]=J[j+16>>2];J[h+20>>2]=e;e=J[j+12>>2];J[h+8>>2]=J[j+8>>2];J[h+12>>2]=e;e=i|64;h=e+q|0;i=e+J[a+96>>2]|0;e=J[i+4>>2];J[h>>2]=J[i>>2];J[h+4>>2]=e;e=J[i+12>>2];J[h+8>>2]=J[i+8>>2];J[h+12>>2]=e;e=J[i+20>>2];J[h+16>>2]=J[i+16>>2];J[h+20>>2]=e;e=J[i+28>>2];J[h+24>>2]=J[i+24>>2];J[h+28>>2]=e;e=J[i+36>>2];J[h+32>>2]=J[i+32>>2];J[h+36>>2]=e;e=J[i+44>>2];J[h+40>>2]=J[i+40>>2];J[h+44>>2]=e;e=J[i+52>>2];J[h+48>>2]=J[i+48>>2];J[h+52>>2]=e;e=J[i+60>>2];J[h+56>>2]=J[i+56>>2];J[h+60>>2]=e;d=d+2|0;g=g+2|0;if((t|0)!=(g|0)){continue}break}}if(!(c&1)){break l}c=d<<6;d=c+q|0;e=c+J[a+96>>2]|0;c=J[e+4>>2];J[d>>2]=J[e>>2];J[d+4>>2]=c;c=J[e+60>>2];J[d+56>>2]=J[e+56>>2];J[d+60>>2]=c;c=J[e+52>>2];J[d+48>>2]=J[e+48>>2];J[d+52>>2]=c;c=J[e+44>>2];J[d+40>>2]=J[e+40>>2];J[d+44>>2]=c;c=J[e+36>>2];J[d+32>>2]=J[e+32>>2];J[d+36>>2]=c;c=J[e+28>>2];J[d+24>>2]=J[e+24>>2];J[d+28>>2]=c;c=J[e+20>>2];J[d+16>>2]=J[e+16>>2];J[d+20>>2]=c;c=J[e+12>>2];J[d+8>>2]=J[e+8>>2];J[d+12>>2]=c}c=J[a+96>>2];if(!(c?!c|!K[a+100|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}J[a+96>>2]=q;H[a+100|0]=1;J[a+92>>2]=l}d=l+(b^-1)|0;c=l-b&3;if(c){e=0;while(1){g=J[a+96>>2]+(b<<6)|0;J[g>>2]=0;J[g+4>>2]=0;J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;J[g+40>>2]=0;J[g+44>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;J[g+24>>2]=0;J[g+28>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;b=b+1|0;e=e+1|0;if((c|0)!=(e|0)){continue}break}}if(d>>>0<3){break k}while(1){d=b<<6;c=d+J[a+96>>2]|0;J[c>>2]=0;J[c+4>>2]=0;J[c+56>>2]=0;J[c+60>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+J[a+96>>2]|0;J[c+120>>2]=0;J[c+124>>2]=0;J[c+112>>2]=0;J[c+116>>2]=0;J[c+104>>2]=0;J[c+108>>2]=0;J[c+96>>2]=0;J[c+100>>2]=0;J[c+88>>2]=0;J[c+92>>2]=0;J[c+80>>2]=0;J[c+84>>2]=0;J[c+72>>2]=0;J[c+76>>2]=0;c=c- -64|0;J[c>>2]=0;J[c+4>>2]=0;c=d+J[a+96>>2]|0;J[c+184>>2]=0;J[c+188>>2]=0;J[c+176>>2]=0;J[c+180>>2]=0;J[c+168>>2]=0;J[c+172>>2]=0;J[c+160>>2]=0;J[c+164>>2]=0;J[c+152>>2]=0;J[c+156>>2]=0;J[c+144>>2]=0;J[c+148>>2]=0;J[c+136>>2]=0;J[c+140>>2]=0;J[c+128>>2]=0;J[c+132>>2]=0;c=d+J[a+96>>2]|0;J[c+248>>2]=0;J[c+252>>2]=0;J[c+240>>2]=0;J[c+244>>2]=0;J[c+232>>2]=0;J[c+236>>2]=0;J[c+224>>2]=0;J[c+228>>2]=0;J[c+216>>2]=0;J[c+220>>2]=0;J[c+208>>2]=0;J[c+212>>2]=0;J[c+200>>2]=0;J[c+204>>2]=0;J[c+192>>2]=0;J[c+196>>2]=0;b=b+4|0;if((l|0)!=(b|0)){continue}break}}J[a+88>>2]=l}J[a+56>>2]=0;Hc(a,0,s);if(!(J[a+152>>2]|!K[a+60|0])){if(J[a+156>>2]){b=1}else{J[8456]=J[8456]+1;t=ua[J[8258]](32,16)|0;h=J[a+152>>2];m:{if((h|0)<=0){break m}e=0;if((h|0)!=1){d=h&-2;l=0;while(1){g=e<<5;c=g+t|0;i=g+J[a+160>>2]|0;b=J[i+4>>2];J[c>>2]=J[i>>2];J[c+4>>2]=b;b=J[i+28>>2];J[c+24>>2]=J[i+24>>2];J[c+28>>2]=b;b=J[i+20>>2];J[c+16>>2]=J[i+16>>2];J[c+20>>2]=b;b=J[i+12>>2];J[c+8>>2]=J[i+8>>2];J[c+12>>2]=b;b=g|32;c=b+t|0;g=b+J[a+160>>2]|0;b=J[g+4>>2];J[c>>2]=J[g>>2];J[c+4>>2]=b;b=J[g+12>>2];J[c+8>>2]=J[g+8>>2];J[c+12>>2]=b;b=J[g+20>>2];J[c+16>>2]=J[g+16>>2];J[c+20>>2]=b;b=J[g+28>>2];J[c+24>>2]=J[g+24>>2];J[c+28>>2]=b;e=e+2|0;l=l+2|0;if((d|0)!=(l|0)){continue}break}}if(!(h&1)){break m}b=e<<5;c=b+t|0;d=b+J[a+160>>2]|0;b=J[d+4>>2];J[c>>2]=J[d>>2];J[c+4>>2]=b;b=J[d+28>>2];J[c+24>>2]=J[d+24>>2];J[c+28>>2]=b;b=J[d+20>>2];J[c+16>>2]=J[d+16>>2];J[c+20>>2]=b;b=J[d+12>>2];J[c+8>>2]=J[d+8>>2];J[c+12>>2]=b}b=J[a+160>>2];if(!(b?!b|!K[a+164|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+160>>2]=t;H[a+164|0]=1;J[a+156>>2]=1;b=J[a+152>>2]+1|0}J[a+152>>2]=b;d=J[a+160>>2];c=J[a+136>>2];I[d>>1]=L[c>>1];I[d+2>>1]=L[c+2>>1];I[d+4>>1]=L[c+4>>1];I[d+6>>1]=L[c+6>>1];I[d+8>>1]=L[c+8>>1];b=L[c+10>>1];J[d+12>>2]=0;I[d+10>>1]=b;b=J[c+12>>2];J[d+16>>2]=(b|0)>=0?1:0-b|0}J[a+168>>2]=J[a+152>>2];b=J[a+116>>2];if(!(b?!b|!K[a+120|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+116>>2]=0;H[a+120|0]=1;J[a+108>>2]=0;J[a+112>>2]=0;b=J[a+76>>2];if(!(b?!b|!K[a+80|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+76>>2]=0;H[a+80|0]=1;J[a+68>>2]=0;J[a+72>>2]=0;sa=k+48|0}function si(a){a=a|0;var b=0,c=Q(0),d=0,e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=0,p=Q(0),q=Q(0),r=0,s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=Q(0),H=Q(0),I=Q(0),L=Q(0),M=Q(0),O=Q(0),S=Q(0),T=0,U=0,V=0,W=Q(0),X=Q(0),Z=Q(0),_=0;r=sa-48|0;sa=r;if(K[a+738|0]){J[a+744>>2]=0;J[a+36>>2]=0;if(!K[a+736|0]){e=N[a+672>>2];b=J[a+32>>2];g=N[a+664>>2];h=N[a+668>>2];p=Q(Q(Q(e*N[b+44>>2])+Q(Q(g*N[b+36>>2])+Q(h*N[b+40>>2])))+N[b+60>>2]);f=N[a+608>>2];d=J[a+28>>2];c=N[a+600>>2];j=N[a+604>>2];m=Q(Q(Q(f*N[d+44>>2])+Q(Q(c*N[d+36>>2])+Q(j*N[d+40>>2])))+N[d+60>>2]);i=Q(p-m);t=Q(Q(Q(e*N[b+12>>2])+Q(Q(g*N[b+4>>2])+Q(h*N[b+8>>2])))+N[b+52>>2]);u=Q(Q(Q(f*N[d+12>>2])+Q(Q(c*N[d+4>>2])+Q(j*N[d+8>>2])))+N[d+52>>2]);k=Q(t-u);C=Q(Q(Q(e*N[b+28>>2])+Q(Q(g*N[b+20>>2])+Q(h*N[b+24>>2])))+N[b+56>>2]);D=Q(Q(Q(f*N[d+28>>2])+Q(Q(c*N[d+20>>2])+Q(j*N[d+24>>2])))+N[d+56>>2]);g=Q(C-D);e=Q(Q(i*i)+Q(Q(k*k)+Q(g*g)));a:{if(e>Q(1.1920928955078125e-7)){h=Q(Q(1)/Q(Y(e)));e=Q(i*h);N[r+8>>2]=e;g=Q(g*h);N[r+4>>2]=g;h=Q(k*h);N[r>>2]=h;break a}J[r+8>>2]=0;J[r>>2]=1065353216;J[r+4>>2]=0;h=Q(1);g=Q(0);e=Q(0)}J[r+12>>2]=0;b:{if(Q(R(e))>Q(.7071067690849304)){f=Q(Q(g*g)+Q(e*e));i=Q(Q(1)/Q(Y(f)));f=Q(f*i);c=Q(i*Q(-e));j=Q(c*h);e=Q(g*i);g=Q(e*Q(-h));i=Q(0);break b}c=Q(Q(h*h)+Q(g*g));f=Q(Q(1)/Q(Y(c)));j=Q(c*f);i=Q(f*Q(-g));g=Q(e*i);c=Q(h*f);f=Q(c*Q(-e));e=Q(0)}N[r+40>>2]=j;N[r+36>>2]=g;N[r+20>>2]=c;N[r+32>>2]=f;N[r+24>>2]=e;N[r+16>>2]=i;while(1){E=N[b+404>>2];M=N[d+404>>2];z=N[d+36>>2];A=N[d+4>>2];B=N[d+20>>2];l=N[d+40>>2];v=N[d+8>>2];s=N[d+24>>2];n=N[d+44>>2];q=N[d+12>>2];w=N[d+56>>2];x=N[d+28>>2];y=N[d+60>>2];G=N[d+52>>2];H=N[b+36>>2];I=N[b+4>>2];O=N[b+20>>2];k=N[b+40>>2];S=N[b+8>>2];Z=N[b+24>>2];e=N[b+44>>2];h=N[b+12>>2];g=N[b+56>>2];j=N[b+28>>2];f=N[b+52>>2];c=N[b+60>>2];U=(T<<4)+r|0;_=J[U+4>>2];o=P(T,84)+a|0;V=o+48|0;J[V>>2]=J[U>>2];J[V+4>>2]=_;V=J[U+12>>2];J[o+56>>2]=J[U+8>>2];J[o+60>>2]=V;J[o+92>>2]=0;J[o+76>>2]=0;F=e;i=Q(C-g);e=N[o+48>>2];W=Q(t-f);g=N[o+52>>2];f=Q(Q(i*e)-Q(W*g));L=h;X=Q(p-c);h=N[o+56>>2];c=Q(Q(X*g)-Q(i*h));i=j;j=Q(Q(W*h)-Q(X*e));i=Q(Q(F*f)+Q(Q(L*c)+Q(i*j)));N[o+88>>2]=i;k=Q(Q(k*f)+Q(Q(S*c)+Q(Z*j)));N[o+84>>2]=k;f=Q(Q(H*f)+Q(Q(I*c)+Q(O*j)));N[o+80>>2]=f;F=n;j=Q(u-G);n=Q(D-w);c=Q(Q(g*j)-Q(e*n));L=Q(n*h);n=Q(m-y);g=Q(L-Q(g*n));e=Q(Q(n*e)-Q(h*j));h=Q(Q(F*c)+Q(Q(q*g)+Q(x*e)));N[o+72>>2]=h;j=Q(Q(l*c)+Q(Q(v*g)+Q(s*e)));N[o+68>>2]=j;e=Q(Q(z*c)+Q(Q(A*g)+Q(B*e)));N[o- -64>>2]=e;g=N[d+464>>2];c=N[d+460>>2];z=N[d+456>>2];J[o+108>>2]=0;z=Q(e*z);N[o+96>>2]=z;c=Q(j*c);N[o+100>>2]=c;g=Q(h*g);N[o+104>>2]=g;A=N[b+464>>2];B=N[b+460>>2];l=N[b+456>>2];J[o+124>>2]=0;l=Q(f*l);N[o+112>>2]=l;B=Q(k*B);N[o+116>>2]=B;A=Q(i*A);N[o+120>>2]=A;N[o+128>>2]=Q(E+Q(M+Q(Q(g*h)+Q(Q(z*e)+Q(j*c)))))+Q(Q(A*i)+Q(Q(l*f)+Q(k*B)));T=T+1|0;if((T|0)!=3){continue}break}}e=N[a+576>>2];g=N[a+560>>2];h=N[a+592>>2];c:{if(Q(R(h))>Q(.7071067690849304)){f=Q(Q(e*e)+Q(h*h));i=Q(Q(1)/Q(Y(f)));c=Q(i*Q(-h));j=Q(g*c);k=Q(e*i);p=Q(k*Q(-g));m=Q(0);f=Q(f*i);break c}c=Q(Q(g*g)+Q(e*e));f=Q(Q(1)/Q(Y(c)));j=Q(c*f);m=Q(f*Q(-e));p=Q(h*m);k=Q(0);c=Q(g*f);f=Q(c*Q(-h))}b=J[a+32>>2];q=N[b+36>>2];w=N[b+20>>2];n=N[b+40>>2];x=N[b+8>>2];y=N[b+24>>2];s=N[b+44>>2];G=N[b+12>>2];H=N[b+28>>2];d=J[a+28>>2];t=N[d+44>>2];u=N[d+36>>2];C=N[d+40>>2];D=N[d+12>>2];E=N[d+8>>2];M=N[d+28>>2];z=N[d+20>>2];A=N[d+24>>2];I=N[b+4>>2];B=N[d+4>>2];J[a+308>>2]=0;J[a+312>>2]=0;J[a+300>>2]=0;J[a+304>>2]=0;J[a+344>>2]=0;J[a+328>>2]=0;i=Q(Q(t*k)+Q(Q(u*m)+Q(c*C)));l=Q(Q(D*k)+Q(Q(B*m)+Q(c*E)));c=Q(Q(M*k)+Q(Q(z*m)+Q(c*A)));k=Q(Q(t*i)+Q(Q(D*l)+Q(M*c)));N[a+324>>2]=k;m=Q(Q(C*i)+Q(Q(E*l)+Q(A*c)));N[a+320>>2]=m;v=Q(Q(u*i)+Q(Q(B*l)+Q(z*c)));N[a+316>>2]=v;l=Q(-l);s=Q(Q(Q(G*l)-Q(H*c))-Q(s*i));N[a+340>>2]=s;n=Q(Q(Q(x*l)-Q(y*c))-Q(n*i));N[a+336>>2]=n;c=Q(Q(Q(I*l)-Q(w*c))-Q(q*i));N[a+332>>2]=c;i=N[d+460>>2];l=N[d+464>>2];q=N[d+456>>2];J[a+360>>2]=0;l=Q(k*l);N[a+356>>2]=l;i=Q(m*i);N[a+352>>2]=i;q=Q(v*q);N[a+348>>2]=q;w=N[b+460>>2];x=N[b+464>>2];y=N[b+456>>2];J[a+376>>2]=0;x=Q(s*x);N[a+372>>2]=x;w=Q(n*w);N[a+368>>2]=w;y=Q(c*y);N[a+364>>2]=y;N[a+380>>2]=Q(Q(l*k)+Q(Q(q*v)+Q(m*i)))+Q(Q(x*s)+Q(Q(y*c)+Q(n*w)));v=N[d+36>>2];s=N[d+20>>2];l=N[d+40>>2];n=N[d+8>>2];q=N[d+24>>2];m=N[d+44>>2];w=N[d+12>>2];x=N[d+28>>2];y=N[b+36>>2];G=N[b+20>>2];H=N[b+40>>2];I=N[b+8>>2];O=N[b+24>>2];S=N[b+44>>2];c=N[b+12>>2];Z=N[b+28>>2];W=N[d+4>>2];X=N[b+4>>2];J[a+392>>2]=0;J[a+396>>2]=0;J[a+384>>2]=0;J[a+388>>2]=0;J[a+428>>2]=0;J[a+412>>2]=0;i=Q(Q(D*j)+Q(Q(B*f)+Q(p*E)));k=Q(-i);F=Q(c*k);c=Q(Q(M*j)+Q(Q(z*f)+Q(p*A)));f=Q(Q(t*j)+Q(Q(u*f)+Q(p*C)));j=Q(Q(F-Q(Z*c))-Q(S*f));N[a+424>>2]=j;p=Q(Q(Q(I*k)-Q(O*c))-Q(H*f));N[a+420>>2]=p;k=Q(Q(Q(X*k)-Q(G*c))-Q(y*f));N[a+416>>2]=k;m=Q(Q(m*f)+Q(Q(w*i)+Q(c*x)));N[a+408>>2]=m;l=Q(Q(l*f)+Q(Q(n*i)+Q(c*q)));N[a+404>>2]=l;f=Q(Q(v*f)+Q(Q(W*i)+Q(c*s)));N[a+400>>2]=f;c=N[d+460>>2];i=N[d+464>>2];v=N[d+456>>2];J[a+444>>2]=0;i=Q(m*i);N[a+440>>2]=i;c=Q(l*c);N[a+436>>2]=c;v=Q(f*v);N[a+432>>2]=v;s=N[b+460>>2];n=N[b+464>>2];q=N[b+456>>2];J[a+460>>2]=0;n=Q(j*n);N[a+456>>2]=n;s=Q(p*s);N[a+452>>2]=s;q=Q(k*q);N[a+448>>2]=q;N[a+464>>2]=Q(Q(i*m)+Q(Q(v*f)+Q(l*c)))+Q(Q(n*j)+Q(Q(q*k)+Q(p*s)));p=N[d+36>>2];m=N[d+20>>2];k=N[d+40>>2];l=N[d+8>>2];v=N[d+24>>2];i=N[d+44>>2];s=N[d+12>>2];n=N[d+28>>2];q=N[b+36>>2];w=N[b+20>>2];x=N[b+40>>2];y=N[b+8>>2];G=N[b+24>>2];H=N[b+44>>2];f=N[b+12>>2];I=N[b+28>>2];O=N[d+4>>2];S=N[b+4>>2];J[a+476>>2]=0;J[a+480>>2]=0;J[a+468>>2]=0;J[a+472>>2]=0;J[a+512>>2]=0;J[a+496>>2]=0;c=Q(Q(D*h)+Q(Q(B*g)+Q(e*E)));j=Q(-c);F=Q(f*j);f=Q(Q(M*h)+Q(Q(z*g)+Q(e*A)));e=Q(Q(t*h)+Q(Q(u*g)+Q(e*C)));g=Q(Q(F-Q(I*f))-Q(H*e));N[a+508>>2]=g;h=Q(Q(Q(y*j)-Q(G*f))-Q(x*e));N[a+504>>2]=h;j=Q(Q(Q(S*j)-Q(w*f))-Q(q*e));N[a+500>>2]=j;i=Q(Q(i*e)+Q(Q(s*c)+Q(f*n)));N[a+492>>2]=i;k=Q(Q(k*e)+Q(Q(l*c)+Q(f*v)));N[a+488>>2]=k;e=Q(Q(p*e)+Q(Q(O*c)+Q(f*m)));N[a+484>>2]=e;f=N[d+460>>2];c=N[d+464>>2];p=N[d+456>>2];J[a+528>>2]=0;c=Q(i*c);N[a+524>>2]=c;f=Q(k*f);N[a+520>>2]=f;p=Q(e*p);N[a+516>>2]=p;m=N[b+460>>2];t=N[b+464>>2];u=N[b+456>>2];J[a+724>>2]=0;J[a+544>>2]=0;t=Q(g*t);N[a+540>>2]=t;m=Q(h*m);N[a+536>>2]=m;u=Q(j*u);N[a+532>>2]=u;N[a+548>>2]=Q(Q(c*i)+Q(Q(p*e)+Q(k*f)))+Q(Q(t*g)+Q(Q(u*j)+Q(h*m)));e=N[a+652>>2];g=N[a+620>>2];h=N[a+636>>2];i=Q(Q(N[b+44>>2]*e)+Q(Q(N[b+36>>2]*g)+Q(h*N[b+40>>2])));k=N[d+44>>2];f=N[a+584>>2];p=N[d+36>>2];c=N[a+552>>2];j=N[a+568>>2];m=N[d+40>>2];n=Q(i*Q(Q(k*f)+Q(Q(p*c)+Q(j*m))));t=Q(Q(N[b+12>>2]*e)+Q(Q(N[b+4>>2]*g)+Q(h*N[b+8>>2])));u=N[d+12>>2];C=N[d+4>>2];D=N[d+8>>2];F=Q(t*Q(Q(u*f)+Q(Q(C*c)+Q(j*D))));E=N[d+28>>2];L=Q(E*f);f=N[d+20>>2];l=Q(f*c);c=N[d+24>>2];L=Q(L+Q(l+Q(j*c)));j=Q(Q(N[b+28>>2]*e)+Q(Q(N[b+20>>2]*g)+Q(h*N[b+24>>2])));e=N[a+588>>2];g=N[a+556>>2];h=N[a+572>>2];e=Q(Ia(Q(n+Q(F+Q(L*j))),Q(Q(i*Q(Q(k*e)+Q(Q(p*g)+Q(m*h))))+Q(Q(t*Q(Q(u*e)+Q(Q(C*g)+Q(D*h))))+Q(Q(Q(E*e)+Q(Q(f*g)+Q(c*h)))*j))))*N[a+732>>2]);N[a+728>>2]=e;Id(a+688|0,e);d=a;b=J[a+28>>2];h=N[a+592>>2];f=N[a+560>>2];c=N[a+576>>2];e=Q(Q(N[b+44>>2]*h)+Q(Q(N[b+36>>2]*f)+Q(c*N[b+40>>2])));g=Q(Q(N[b+12>>2]*h)+Q(Q(N[b+4>>2]*f)+Q(c*N[b+8>>2])));h=Q(Q(N[b+28>>2]*h)+Q(Q(N[b+20>>2]*f)+Q(c*N[b+24>>2])));a=J[a+32>>2];N[d+720>>2]=Q(1)/Q(Q(Q(e*Q(Q(e*N[b+364>>2])+Q(Q(N[b+332>>2]*g)+Q(h*N[b+348>>2]))))+Q(Q(g*Q(Q(N[b+356>>2]*e)+Q(Q(g*N[b+324>>2])+Q(h*N[b+340>>2]))))+Q(h*Q(Q(N[b+360>>2]*e)+Q(Q(N[b+328>>2]*g)+Q(h*N[b+344>>2]))))))+Q(Q(e*Q(Q(e*N[a+364>>2])+Q(Q(N[a+332>>2]*g)+Q(h*N[a+348>>2]))))+Q(Q(g*Q(Q(N[a+356>>2]*e)+Q(Q(g*N[a+324>>2])+Q(h*N[a+340>>2]))))+Q(h*Q(Q(N[a+360>>2]*e)+Q(Q(N[a+328>>2]*g)+Q(h*N[a+344>>2])))))))}sa=r+48|0}function Vj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=Q(0),g=Q(0),h=0,i=Q(0),j=Q(0),k=Q(0),l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=sa-48|0;sa=h;e=N[a+48>>2];f=N[a+32>>2];j=Q(Q(1)/N[a+124>>2]);k=N[a- -64>>2];g=Q(Q(j*N[d+8>>2])+k);g=f>g?f:g;g=e>2])+k);f=f>j?f:j;e=e>2];f=N[a+28>>2];j=Q(Q(1)/N[a+120>>2]);k=N[a+60>>2];g=Q(Q(j*N[d+4>>2])+k);g=f>g?f:g;g=e>2])+k);f=f>j?f:j;e=e>2];f=N[a+24>>2];j=Q(Q(1)/N[a+116>>2]);k=N[a+56>>2];g=Q(Q(j*N[d>>2])+k);g=f>g?f:g;g=e>2])+k);f=f>j?f:j;e=e>2]-1|0;p=J[a+72>>2]-1|0;g:{h:{switch(J[a+112>>2]){case 0:l=(o|0)<(l|0)?o:l;n=(q|0)>0?q:0;p=(p|0)>(r|0)?r:p;t=(s|0)>0?s:0;break g;case 1:l=(o|0)<(l|0)?o:l;n=(q|0)>0?q:0;p=(d|0)<(p|0)?d:p;t=(c|0)>0?c:0;break g;case 2:break h;default:break g}}l=(l|0)>(r|0)?r:l;n=(s|0)>0?s:0;p=(d|0)<(p|0)?d:p;t=(c|0)>0?c:0}if(!((p|0)<=(t|0)|(n|0)>=(l|0))){while(1){q=n&1;o=n+1|0;j=Q(o|0);k=Q(n|0);c=t;while(1){i:{j:{d=c;if(!(!(K[a+110|0]?q:1)|(K[a+108|0]|(c+n&1?0:K[a+109|0])))){g=Q(ua[J[J[a>>2]+68>>2]](a,d,n));k:{l:{switch(J[a+112>>2]){case 2:f=N[a+88>>2];e=N[a+92>>2];i=N[a+64>>2];J[h+12>>2]=0;e=Q(k-Q(e*Q(.5)));f=Q(Q(d|0)-Q(f*Q(.5)));g=Q(g-i);break k;case 1:f=N[a+88>>2];i=N[a+92>>2];e=N[a+60>>2];J[h+12>>2]=0;e=Q(g-e);f=Q(Q(d|0)-Q(f*Q(.5)));g=Q(k-Q(i*Q(.5)));break k;case 0:e=N[a+88>>2];i=N[a+92>>2];f=N[a+56>>2];J[h+12>>2]=0;f=Q(g-f);e=Q(Q(d|0)-Q(e*Q(.5)));g=Q(k-Q(i*Q(.5)));break k;default:break l}}e=N[h+4>>2];f=N[h>>2];g=N[h+8>>2]}N[h>>2]=f*N[a+116>>2];N[h+4>>2]=e*N[a+120>>2];N[h+8>>2]=g*N[a+124>>2];g=Q(ua[J[J[a>>2]+68>>2]](a,d,o));m:{n:{switch(J[a+112>>2]){case 2:f=N[a+88>>2];e=N[a+92>>2];i=N[a+64>>2];J[h+28>>2]=0;e=Q(j-Q(e*Q(.5)));f=Q(Q(d|0)-Q(f*Q(.5)));g=Q(g-i);break m;case 1:f=N[a+88>>2];i=N[a+92>>2];e=N[a+60>>2];J[h+28>>2]=0;e=Q(g-e);f=Q(Q(d|0)-Q(f*Q(.5)));g=Q(j-Q(i*Q(.5)));break m;case 0:e=N[a+88>>2];i=N[a+92>>2];f=N[a+56>>2];J[h+28>>2]=0;f=Q(g-f);e=Q(Q(d|0)-Q(e*Q(.5)));g=Q(j-Q(i*Q(.5)));break m;default:break n}}e=N[h+20>>2];f=N[h+16>>2];g=N[h+24>>2]}N[h+16>>2]=f*N[a+116>>2];N[h+20>>2]=e*N[a+120>>2];N[h+24>>2]=g*N[a+124>>2];c=d+1|0;g=Q(ua[J[J[a>>2]+68>>2]](a,c,n));o:{p:{switch(J[a+112>>2]){case 2:f=N[a+88>>2];e=N[a+92>>2];i=N[a+64>>2];J[h+44>>2]=0;e=Q(k-Q(e*Q(.5)));f=Q(Q(c|0)-Q(f*Q(.5)));g=Q(g-i);break o;case 1:f=N[a+88>>2];i=N[a+92>>2];e=N[a+60>>2];J[h+44>>2]=0;e=Q(g-e);f=Q(Q(c|0)-Q(f*Q(.5)));g=Q(k-Q(i*Q(.5)));break o;case 0:e=N[a+88>>2];i=N[a+92>>2];f=N[a+56>>2];J[h+44>>2]=0;f=Q(g-f);e=Q(Q(c|0)-Q(e*Q(.5)));g=Q(k-Q(i*Q(.5)));break o;default:break p}}e=N[h+36>>2];f=N[h+32>>2];g=N[h+40>>2]}N[h+32>>2]=f*N[a+116>>2];N[h+36>>2]=e*N[a+120>>2];N[h+40>>2]=g*N[a+124>>2];ua[J[J[b>>2]+8>>2]](b,h,d,n);g=Q(ua[J[J[a>>2]+68>>2]](a,c,n));q:{r:{switch(J[a+112>>2]){case 2:f=N[a+88>>2];e=N[a+92>>2];i=N[a+64>>2];J[h+12>>2]=0;e=Q(k-Q(e*Q(.5)));f=Q(Q(c|0)-Q(f*Q(.5)));g=Q(g-i);break q;case 1:f=N[a+88>>2];i=N[a+92>>2];e=N[a+60>>2];J[h+12>>2]=0;e=Q(g-e);f=Q(Q(c|0)-Q(f*Q(.5)));g=Q(k-Q(i*Q(.5)));break q;case 0:e=N[a+88>>2];i=N[a+92>>2];f=N[a+56>>2];J[h+12>>2]=0;f=Q(g-f);e=Q(Q(c|0)-Q(e*Q(.5)));g=Q(k-Q(i*Q(.5)));break q;default:break r}}e=N[h+4>>2];f=N[h>>2];g=N[h+8>>2]}N[h>>2]=f*N[a+116>>2];N[h+4>>2]=e*N[a+120>>2];N[h+8>>2]=g*N[a+124>>2];g=Q(ua[J[J[a>>2]+68>>2]](a,c,o));s:{switch(J[a+112>>2]){case 2:f=N[a+88>>2];e=N[a+92>>2];i=N[a+64>>2];J[h+44>>2]=0;e=Q(j-Q(e*Q(.5)));f=Q(Q(c|0)-Q(f*Q(.5)));g=Q(g-i);break i;case 1:f=N[a+88>>2];i=N[a+92>>2];e=N[a+60>>2];J[h+44>>2]=0;e=Q(g-e);f=Q(Q(c|0)-Q(f*Q(.5)));g=Q(j-Q(i*Q(.5)));break i;case 0:break s;default:break j}}e=N[a+88>>2];i=N[a+92>>2];f=N[a+56>>2];J[h+44>>2]=0;f=Q(g-f);e=Q(Q(c|0)-Q(e*Q(.5)));g=Q(j-Q(i*Q(.5)));break i}g=Q(ua[J[J[a>>2]+68>>2]](a,d,n));t:{u:{switch(J[a+112>>2]){case 2:f=N[a+88>>2];e=N[a+92>>2];i=N[a+64>>2];J[h+12>>2]=0;e=Q(k-Q(e*Q(.5)));f=Q(Q(d|0)-Q(f*Q(.5)));g=Q(g-i);break t;case 1:f=N[a+88>>2];i=N[a+92>>2];e=N[a+60>>2];J[h+12>>2]=0;e=Q(g-e);f=Q(Q(d|0)-Q(f*Q(.5)));g=Q(k-Q(i*Q(.5)));break t;case 0:e=N[a+88>>2];i=N[a+92>>2];f=N[a+56>>2];J[h+12>>2]=0;f=Q(g-f);e=Q(Q(d|0)-Q(e*Q(.5)));g=Q(k-Q(i*Q(.5)));break t;default:break u}}e=N[h+4>>2];f=N[h>>2];g=N[h+8>>2]}N[h>>2]=f*N[a+116>>2];N[h+4>>2]=e*N[a+120>>2];N[h+8>>2]=g*N[a+124>>2];g=Q(ua[J[J[a>>2]+68>>2]](a,d,o));v:{w:{switch(J[a+112>>2]){case 2:f=N[a+88>>2];e=N[a+92>>2];i=N[a+64>>2];J[h+28>>2]=0;e=Q(j-Q(e*Q(.5)));f=Q(Q(d|0)-Q(f*Q(.5)));g=Q(g-i);break v;case 1:f=N[a+88>>2];i=N[a+92>>2];e=N[a+60>>2];J[h+28>>2]=0;e=Q(g-e);f=Q(Q(d|0)-Q(f*Q(.5)));g=Q(j-Q(i*Q(.5)));break v;case 0:e=N[a+88>>2];i=N[a+92>>2];f=N[a+56>>2];J[h+28>>2]=0;f=Q(g-f);e=Q(Q(d|0)-Q(e*Q(.5)));g=Q(j-Q(i*Q(.5)));break v;default:break w}}e=N[h+20>>2];f=N[h+16>>2];g=N[h+24>>2]}N[h+16>>2]=f*N[a+116>>2];N[h+20>>2]=e*N[a+120>>2];N[h+24>>2]=g*N[a+124>>2];c=d+1|0;g=Q(ua[J[J[a>>2]+68>>2]](a,c,o));x:{y:{switch(J[a+112>>2]){case 2:f=N[a+88>>2];e=N[a+92>>2];i=N[a+64>>2];J[h+44>>2]=0;e=Q(j-Q(e*Q(.5)));f=Q(Q(c|0)-Q(f*Q(.5)));g=Q(g-i);break x;case 1:f=N[a+88>>2];i=N[a+92>>2];e=N[a+60>>2];J[h+44>>2]=0;e=Q(g-e);f=Q(Q(c|0)-Q(f*Q(.5)));g=Q(j-Q(i*Q(.5)));break x;case 0:e=N[a+88>>2];i=N[a+92>>2];f=N[a+56>>2];J[h+44>>2]=0;f=Q(g-f);e=Q(Q(c|0)-Q(e*Q(.5)));g=Q(j-Q(i*Q(.5)));break x;default:break y}}e=N[h+36>>2];f=N[h+32>>2];g=N[h+40>>2]}N[h+32>>2]=f*N[a+116>>2];N[h+36>>2]=e*N[a+120>>2];N[h+40>>2]=g*N[a+124>>2];ua[J[J[b>>2]+8>>2]](b,h,d,n);g=Q(ua[J[J[a>>2]+68>>2]](a,c,o));z:{A:{switch(J[a+112>>2]){case 2:f=N[a+88>>2];e=N[a+92>>2];i=N[a+64>>2];J[h+28>>2]=0;e=Q(j-Q(e*Q(.5)));f=Q(Q(c|0)-Q(f*Q(.5)));g=Q(g-i);break z;case 1:f=N[a+88>>2];i=N[a+92>>2];e=N[a+60>>2];J[h+28>>2]=0;e=Q(g-e);f=Q(Q(c|0)-Q(f*Q(.5)));g=Q(j-Q(i*Q(.5)));break z;case 0:e=N[a+88>>2];i=N[a+92>>2];f=N[a+56>>2];J[h+28>>2]=0;f=Q(g-f);e=Q(Q(c|0)-Q(e*Q(.5)));g=Q(j-Q(i*Q(.5)));break z;default:break A}}e=N[h+20>>2];f=N[h+16>>2];g=N[h+24>>2]}N[h+16>>2]=f*N[a+116>>2];N[h+20>>2]=e*N[a+120>>2];N[h+24>>2]=g*N[a+124>>2];g=Q(ua[J[J[a>>2]+68>>2]](a,c,n));B:{switch(J[a+112>>2]){case 2:f=N[a+88>>2];e=N[a+92>>2];i=N[a+64>>2];J[h+44>>2]=0;e=Q(k-Q(e*Q(.5)));f=Q(Q(c|0)-Q(f*Q(.5)));g=Q(g-i);break i;case 1:f=N[a+88>>2];i=N[a+92>>2];e=N[a+60>>2];J[h+44>>2]=0;e=Q(g-e);f=Q(Q(c|0)-Q(f*Q(.5)));g=Q(k-Q(i*Q(.5)));break i;case 0:break B;default:break j}}e=N[a+88>>2];i=N[a+92>>2];f=N[a+56>>2];J[h+44>>2]=0;f=Q(g-f);e=Q(Q(c|0)-Q(e*Q(.5)));g=Q(k-Q(i*Q(.5)));break i}e=N[h+36>>2];f=N[h+32>>2];g=N[h+40>>2]}N[h+32>>2]=f*N[a+116>>2];N[h+36>>2]=e*N[a+120>>2];N[h+40>>2]=g*N[a+124>>2];ua[J[J[b>>2]+8>>2]](b,h,d,n);if((c|0)!=(p|0)){continue}break}n=o;if((l|0)!=(n|0)){continue}break}}sa=h+48|0}function il(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;N[a+20>>2]=O[b+32>>3];N[a+24>>2]=O[b+40>>3];N[a+28>>2]=O[b+48>>3];N[a+32>>2]=O[b+56>>3];N[a+4>>2]=O[b>>3];N[a+8>>2]=O[b+8>>3];N[a+12>>2]=O[b+16>>3];N[a+16>>2]=O[b+24>>3];N[a+36>>2]=O[b+64>>3];N[a+40>>2]=O[b+72>>3];N[a+44>>2]=O[b+80>>3];N[a+48>>2]=O[b+88>>3];J[a+56>>2]=J[b+96>>2];H[a+60|0]=J[b+100>>2]!=0;f=J[a+88>>2];k=J[b+104>>2];a:{if((f|0)>=(k|0)){break a}if((k|0)>J[a+92>>2]){if(k){J[8456]=J[8456]+1;j=ua[J[8258]](k<<6,16)|0;c=J[a+88>>2]}else{c=f}b:{if((c|0)<=0){break b}if((c|0)!=1){m=c&-2;while(1){h=l<<6;g=h+j|0;i=h+J[a+96>>2]|0;e=J[i+4>>2];J[g>>2]=J[i>>2];J[g+4>>2]=e;e=J[i+60>>2];J[g+56>>2]=J[i+56>>2];J[g+60>>2]=e;e=J[i+52>>2];J[g+48>>2]=J[i+48>>2];J[g+52>>2]=e;e=J[i+44>>2];J[g+40>>2]=J[i+40>>2];J[g+44>>2]=e;e=J[i+36>>2];J[g+32>>2]=J[i+32>>2];J[g+36>>2]=e;e=J[i+28>>2];J[g+24>>2]=J[i+24>>2];J[g+28>>2]=e;e=J[i+20>>2];J[g+16>>2]=J[i+16>>2];J[g+20>>2]=e;e=J[i+12>>2];J[g+8>>2]=J[i+8>>2];J[g+12>>2]=e;e=h|64;g=e+j|0;h=e+J[a+96>>2]|0;e=J[h+4>>2];J[g>>2]=J[h>>2];J[g+4>>2]=e;e=J[h+12>>2];J[g+8>>2]=J[h+8>>2];J[g+12>>2]=e;e=J[h+20>>2];J[g+16>>2]=J[h+16>>2];J[g+20>>2]=e;e=J[h+28>>2];J[g+24>>2]=J[h+24>>2];J[g+28>>2]=e;e=J[h+36>>2];J[g+32>>2]=J[h+32>>2];J[g+36>>2]=e;e=J[h+44>>2];J[g+40>>2]=J[h+40>>2];J[g+44>>2]=e;e=J[h+52>>2];J[g+48>>2]=J[h+48>>2];J[g+52>>2]=e;e=J[h+60>>2];J[g+56>>2]=J[h+56>>2];J[g+60>>2]=e;l=l+2|0;d=d+2|0;if((m|0)!=(d|0)){continue}break}}if(!(c&1)){break b}c=l<<6;d=c+j|0;e=c+J[a+96>>2]|0;c=J[e+4>>2];J[d>>2]=J[e>>2];J[d+4>>2]=c;c=J[e+60>>2];J[d+56>>2]=J[e+56>>2];J[d+60>>2]=c;c=J[e+52>>2];J[d+48>>2]=J[e+48>>2];J[d+52>>2]=c;c=J[e+44>>2];J[d+40>>2]=J[e+40>>2];J[d+44>>2]=c;c=J[e+36>>2];J[d+32>>2]=J[e+32>>2];J[d+36>>2]=c;c=J[e+28>>2];J[d+24>>2]=J[e+24>>2];J[d+28>>2]=c;c=J[e+20>>2];J[d+16>>2]=J[e+16>>2];J[d+20>>2]=c;c=J[e+12>>2];J[d+8>>2]=J[e+8>>2];J[d+12>>2]=c}c=J[a+96>>2];if(!(c?!c|!K[a+100|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}J[a+96>>2]=j;H[a+100|0]=1;J[a+92>>2]=k}d=k+(f^-1)|0;c=k-f&3;if(c){j=0;while(1){e=J[a+96>>2]+(f<<6)|0;J[e>>2]=0;J[e+4>>2]=0;J[e+56>>2]=0;J[e+60>>2]=0;J[e+48>>2]=0;J[e+52>>2]=0;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;J[e+24>>2]=0;J[e+28>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;f=f+1|0;j=j+1|0;if((c|0)!=(j|0)){continue}break}}if(d>>>0<3){break a}while(1){d=f<<6;c=d+J[a+96>>2]|0;J[c>>2]=0;J[c+4>>2]=0;J[c+56>>2]=0;J[c+60>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+J[a+96>>2]|0;J[c+120>>2]=0;J[c+124>>2]=0;J[c+112>>2]=0;J[c+116>>2]=0;J[c+104>>2]=0;J[c+108>>2]=0;J[c+96>>2]=0;J[c+100>>2]=0;J[c+88>>2]=0;J[c+92>>2]=0;J[c+80>>2]=0;J[c+84>>2]=0;J[c+72>>2]=0;J[c+76>>2]=0;c=c- -64|0;J[c>>2]=0;J[c+4>>2]=0;c=d+J[a+96>>2]|0;J[c+184>>2]=0;J[c+188>>2]=0;J[c+176>>2]=0;J[c+180>>2]=0;J[c+168>>2]=0;J[c+172>>2]=0;J[c+160>>2]=0;J[c+164>>2]=0;J[c+152>>2]=0;J[c+156>>2]=0;J[c+144>>2]=0;J[c+148>>2]=0;J[c+136>>2]=0;J[c+140>>2]=0;J[c+128>>2]=0;J[c+132>>2]=0;c=d+J[a+96>>2]|0;J[c+248>>2]=0;J[c+252>>2]=0;J[c+240>>2]=0;J[c+244>>2]=0;J[c+232>>2]=0;J[c+236>>2]=0;J[c+224>>2]=0;J[c+228>>2]=0;J[c+216>>2]=0;J[c+220>>2]=0;J[c+208>>2]=0;J[c+212>>2]=0;J[c+200>>2]=0;J[c+204>>2]=0;J[c+192>>2]=0;J[c+196>>2]=0;f=f+4|0;if((k|0)!=(f|0)){continue}break}}J[a+88>>2]=k;if((k|0)>0){c=J[a+96>>2];d=J[b+112>>2];j=0;while(1){f=c+(j<<6)|0;N[f+16>>2]=O[d+32>>3];N[f+20>>2]=O[d+40>>3];N[f+24>>2]=O[d+48>>3];N[f+28>>2]=O[d+56>>3];N[f>>2]=O[d>>3];N[f+4>>2]=O[d+8>>3];N[f+8>>2]=O[d+16>>3];N[f+12>>2]=O[d+24>>3];J[f+32>>2]=J[d+64>>2];J[f+36>>2]=J[d+68>>2];J[f+40>>2]=J[d+72>>2];d=d+80|0;j=j+1|0;if((k|0)!=(j|0)){continue}break}}d=J[a+128>>2];n=J[b+108>>2];c:{if((d|0)>=(n|0)){break c}if((n|0)>J[a+132>>2]){d:{if(!n){l=0;c=d;break d}J[8456]=J[8456]+1;l=ua[J[8258]](n<<4,16)|0;c=J[a+128>>2]}e:{if((c|0)<=0){break e}f=0;if((c|0)!=1){m=c&-2;i=0;while(1){h=f<<4;g=h+l|0;k=h+J[a+136>>2]|0;e=J[k+4>>2];J[g>>2]=J[k>>2];J[g+4>>2]=e;e=J[k+12>>2];J[g+8>>2]=J[k+8>>2];J[g+12>>2]=e;e=h|16;g=e+l|0;h=e+J[a+136>>2]|0;e=J[h+4>>2];J[g>>2]=J[h>>2];J[g+4>>2]=e;e=J[h+12>>2];J[g+8>>2]=J[h+8>>2];J[g+12>>2]=e;f=f+2|0;i=i+2|0;if((m|0)!=(i|0)){continue}break}}if(!(c&1)){break e}c=f<<4;f=c+l|0;e=c+J[a+136>>2]|0;c=J[e+4>>2];J[f>>2]=J[e>>2];J[f+4>>2]=c;c=J[e+12>>2];J[f+8>>2]=J[e+8>>2];J[f+12>>2]=c}c=J[a+136>>2];if(!(c?!c|!K[a+140|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}J[a+136>>2]=l;H[a+140|0]=1;J[a+132>>2]=n}e=n+(d^-1)|0;c=n-d&3;if(c){f=0;while(1){g=J[a+136>>2]+(d<<4)|0;J[g>>2]=0;J[g+4>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;d=d+1|0;f=f+1|0;if((c|0)!=(f|0)){continue}break}}if(e>>>0<3){break c}while(1){f=d<<4;c=f+J[a+136>>2]|0;J[c>>2]=0;J[c+4>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=f+J[a+136>>2]|0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;c=f+J[a+136>>2]|0;J[c+40>>2]=0;J[c+44>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;c=f+J[a+136>>2]|0;J[c+56>>2]=0;J[c+60>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;d=d+4|0;if((n|0)!=(d|0)){continue}break}}J[a+128>>2]=n;if((n|0)>0){c=J[a+136>>2];d=J[b+116>>2];j=0;while(1){f=c+(j<<4)|0;J[f+12>>2]=J[d+12>>2];I[f+6>>1]=L[d+6>>1];I[f+8>>1]=L[d+8>>1];I[f+10>>1]=L[d+10>>1];I[f>>1]=L[d>>1];I[f+2>>1]=L[d+2>>1];I[f+4>>1]=L[d+4>>1];d=d+16|0;j=j+1|0;if((n|0)!=(j|0)){continue}break}}J[a+144>>2]=J[b+120>>2];d=J[a+152>>2];h=J[b+124>>2];if(!((d|0)>=(h|0)|(h|0)<=J[a+156>>2])){f:{if(!h){i=0;break f}J[8456]=J[8456]+1;i=ua[J[8258]](h<<5,16)|0;d=J[a+152>>2]}g:{if((d|0)<=0){break g}l=0;if((d|0)!=1){e=d&-2;j=0;while(1){g=l<<5;f=g+i|0;m=g+J[a+160>>2]|0;c=J[m+4>>2];J[f>>2]=J[m>>2];J[f+4>>2]=c;c=J[m+28>>2];J[f+24>>2]=J[m+24>>2];J[f+28>>2]=c;c=J[m+20>>2];J[f+16>>2]=J[m+16>>2];J[f+20>>2]=c;c=J[m+12>>2];J[f+8>>2]=J[m+8>>2];J[f+12>>2]=c;c=g|32;f=c+i|0;g=c+J[a+160>>2]|0;c=J[g+4>>2];J[f>>2]=J[g>>2];J[f+4>>2]=c;c=J[g+12>>2];J[f+8>>2]=J[g+8>>2];J[f+12>>2]=c;c=J[g+20>>2];J[f+16>>2]=J[g+16>>2];J[f+20>>2]=c;c=J[g+28>>2];J[f+24>>2]=J[g+24>>2];J[f+28>>2]=c;l=l+2|0;j=j+2|0;if((e|0)!=(j|0)){continue}break}}if(!(d&1)){break g}c=l<<5;f=c+i|0;d=c+J[a+160>>2]|0;c=J[d+4>>2];J[f>>2]=J[d>>2];J[f+4>>2]=c;c=J[d+28>>2];J[f+24>>2]=J[d+24>>2];J[f+28>>2]=c;c=J[d+20>>2];J[f+16>>2]=J[d+16>>2];J[f+20>>2]=c;c=J[d+12>>2];J[f+8>>2]=J[d+8>>2];J[f+12>>2]=c}c=J[a+160>>2];if(!(c?!c|!K[a+164|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}J[a+160>>2]=i;H[a+164|0]=1;J[a+156>>2]=h}J[a+152>>2]=h;if((h|0)>0){c=J[a+160>>2];d=J[b+128>>2];a=0;while(1){b=c+(a<<5)|0;I[b+6>>1]=L[d+14>>1];I[b+8>>1]=L[d+16>>1];I[b+10>>1]=L[d+18>>1];I[b>>1]=L[d+8>>1];I[b+2>>1]=L[d+10>>1];I[b+4>>1]=L[d+12>>1];J[b+12>>2]=J[d>>2];J[b+16>>2]=J[d+4>>2];d=d+20|0;a=a+1|0;if((h|0)!=(a|0)){continue}break}}}function jl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;N[a+20>>2]=N[b+16>>2];N[a+24>>2]=N[b+20>>2];N[a+28>>2]=N[b+24>>2];N[a+32>>2]=N[b+28>>2];N[a+4>>2]=N[b>>2];N[a+8>>2]=N[b+4>>2];N[a+12>>2]=N[b+8>>2];N[a+16>>2]=N[b+12>>2];N[a+36>>2]=N[b+32>>2];N[a+40>>2]=N[b+36>>2];N[a+44>>2]=N[b+40>>2];N[a+48>>2]=N[b+44>>2];J[a+56>>2]=J[b+48>>2];H[a+60|0]=J[b+52>>2]!=0;f=J[a+88>>2];k=J[b+56>>2];a:{if((f|0)>=(k|0)){break a}if((k|0)>J[a+92>>2]){if(k){J[8456]=J[8456]+1;j=ua[J[8258]](k<<6,16)|0;c=J[a+88>>2]}else{c=f}b:{if((c|0)<=0){break b}if((c|0)!=1){m=c&-2;while(1){h=l<<6;g=h+j|0;i=h+J[a+96>>2]|0;e=J[i+4>>2];J[g>>2]=J[i>>2];J[g+4>>2]=e;e=J[i+60>>2];J[g+56>>2]=J[i+56>>2];J[g+60>>2]=e;e=J[i+52>>2];J[g+48>>2]=J[i+48>>2];J[g+52>>2]=e;e=J[i+44>>2];J[g+40>>2]=J[i+40>>2];J[g+44>>2]=e;e=J[i+36>>2];J[g+32>>2]=J[i+32>>2];J[g+36>>2]=e;e=J[i+28>>2];J[g+24>>2]=J[i+24>>2];J[g+28>>2]=e;e=J[i+20>>2];J[g+16>>2]=J[i+16>>2];J[g+20>>2]=e;e=J[i+12>>2];J[g+8>>2]=J[i+8>>2];J[g+12>>2]=e;e=h|64;g=e+j|0;h=e+J[a+96>>2]|0;e=J[h+4>>2];J[g>>2]=J[h>>2];J[g+4>>2]=e;e=J[h+12>>2];J[g+8>>2]=J[h+8>>2];J[g+12>>2]=e;e=J[h+20>>2];J[g+16>>2]=J[h+16>>2];J[g+20>>2]=e;e=J[h+28>>2];J[g+24>>2]=J[h+24>>2];J[g+28>>2]=e;e=J[h+36>>2];J[g+32>>2]=J[h+32>>2];J[g+36>>2]=e;e=J[h+44>>2];J[g+40>>2]=J[h+40>>2];J[g+44>>2]=e;e=J[h+52>>2];J[g+48>>2]=J[h+48>>2];J[g+52>>2]=e;e=J[h+60>>2];J[g+56>>2]=J[h+56>>2];J[g+60>>2]=e;l=l+2|0;d=d+2|0;if((m|0)!=(d|0)){continue}break}}if(!(c&1)){break b}c=l<<6;d=c+j|0;e=c+J[a+96>>2]|0;c=J[e+4>>2];J[d>>2]=J[e>>2];J[d+4>>2]=c;c=J[e+60>>2];J[d+56>>2]=J[e+56>>2];J[d+60>>2]=c;c=J[e+52>>2];J[d+48>>2]=J[e+48>>2];J[d+52>>2]=c;c=J[e+44>>2];J[d+40>>2]=J[e+40>>2];J[d+44>>2]=c;c=J[e+36>>2];J[d+32>>2]=J[e+32>>2];J[d+36>>2]=c;c=J[e+28>>2];J[d+24>>2]=J[e+24>>2];J[d+28>>2]=c;c=J[e+20>>2];J[d+16>>2]=J[e+16>>2];J[d+20>>2]=c;c=J[e+12>>2];J[d+8>>2]=J[e+8>>2];J[d+12>>2]=c}c=J[a+96>>2];if(!(c?!c|!K[a+100|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}J[a+96>>2]=j;H[a+100|0]=1;J[a+92>>2]=k}d=k+(f^-1)|0;c=k-f&3;if(c){j=0;while(1){e=J[a+96>>2]+(f<<6)|0;J[e>>2]=0;J[e+4>>2]=0;J[e+56>>2]=0;J[e+60>>2]=0;J[e+48>>2]=0;J[e+52>>2]=0;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;J[e+24>>2]=0;J[e+28>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;f=f+1|0;j=j+1|0;if((c|0)!=(j|0)){continue}break}}if(d>>>0<3){break a}while(1){d=f<<6;c=d+J[a+96>>2]|0;J[c>>2]=0;J[c+4>>2]=0;J[c+56>>2]=0;J[c+60>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+J[a+96>>2]|0;J[c+120>>2]=0;J[c+124>>2]=0;J[c+112>>2]=0;J[c+116>>2]=0;J[c+104>>2]=0;J[c+108>>2]=0;J[c+96>>2]=0;J[c+100>>2]=0;J[c+88>>2]=0;J[c+92>>2]=0;J[c+80>>2]=0;J[c+84>>2]=0;J[c+72>>2]=0;J[c+76>>2]=0;c=c- -64|0;J[c>>2]=0;J[c+4>>2]=0;c=d+J[a+96>>2]|0;J[c+184>>2]=0;J[c+188>>2]=0;J[c+176>>2]=0;J[c+180>>2]=0;J[c+168>>2]=0;J[c+172>>2]=0;J[c+160>>2]=0;J[c+164>>2]=0;J[c+152>>2]=0;J[c+156>>2]=0;J[c+144>>2]=0;J[c+148>>2]=0;J[c+136>>2]=0;J[c+140>>2]=0;J[c+128>>2]=0;J[c+132>>2]=0;c=d+J[a+96>>2]|0;J[c+248>>2]=0;J[c+252>>2]=0;J[c+240>>2]=0;J[c+244>>2]=0;J[c+232>>2]=0;J[c+236>>2]=0;J[c+224>>2]=0;J[c+228>>2]=0;J[c+216>>2]=0;J[c+220>>2]=0;J[c+208>>2]=0;J[c+212>>2]=0;J[c+200>>2]=0;J[c+204>>2]=0;J[c+192>>2]=0;J[c+196>>2]=0;f=f+4|0;if((k|0)!=(f|0)){continue}break}}J[a+88>>2]=k;if((k|0)>0){c=J[a+96>>2];d=J[b+64>>2];j=0;while(1){f=c+(j<<6)|0;N[f+16>>2]=N[d+16>>2];N[f+20>>2]=N[d+20>>2];N[f+24>>2]=N[d+24>>2];N[f+28>>2]=N[d+28>>2];N[f>>2]=N[d>>2];N[f+4>>2]=N[d+4>>2];N[f+8>>2]=N[d+8>>2];N[f+12>>2]=N[d+12>>2];J[f+32>>2]=J[d+32>>2];J[f+36>>2]=J[d+36>>2];J[f+40>>2]=J[d+40>>2];d=d+48|0;j=j+1|0;if((k|0)!=(j|0)){continue}break}}d=J[a+128>>2];n=J[b+60>>2];c:{if((d|0)>=(n|0)){break c}if((n|0)>J[a+132>>2]){d:{if(!n){l=0;c=d;break d}J[8456]=J[8456]+1;l=ua[J[8258]](n<<4,16)|0;c=J[a+128>>2]}e:{if((c|0)<=0){break e}f=0;if((c|0)!=1){m=c&-2;i=0;while(1){h=f<<4;g=h+l|0;k=h+J[a+136>>2]|0;e=J[k+4>>2];J[g>>2]=J[k>>2];J[g+4>>2]=e;e=J[k+12>>2];J[g+8>>2]=J[k+8>>2];J[g+12>>2]=e;e=h|16;g=e+l|0;h=e+J[a+136>>2]|0;e=J[h+4>>2];J[g>>2]=J[h>>2];J[g+4>>2]=e;e=J[h+12>>2];J[g+8>>2]=J[h+8>>2];J[g+12>>2]=e;f=f+2|0;i=i+2|0;if((m|0)!=(i|0)){continue}break}}if(!(c&1)){break e}c=f<<4;f=c+l|0;e=c+J[a+136>>2]|0;c=J[e+4>>2];J[f>>2]=J[e>>2];J[f+4>>2]=c;c=J[e+12>>2];J[f+8>>2]=J[e+8>>2];J[f+12>>2]=c}c=J[a+136>>2];if(!(c?!c|!K[a+140|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}J[a+136>>2]=l;H[a+140|0]=1;J[a+132>>2]=n}e=n+(d^-1)|0;c=n-d&3;if(c){f=0;while(1){g=J[a+136>>2]+(d<<4)|0;J[g>>2]=0;J[g+4>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;d=d+1|0;f=f+1|0;if((c|0)!=(f|0)){continue}break}}if(e>>>0<3){break c}while(1){f=d<<4;c=f+J[a+136>>2]|0;J[c>>2]=0;J[c+4>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=f+J[a+136>>2]|0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;c=f+J[a+136>>2]|0;J[c+40>>2]=0;J[c+44>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;c=f+J[a+136>>2]|0;J[c+56>>2]=0;J[c+60>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;d=d+4|0;if((n|0)!=(d|0)){continue}break}}J[a+128>>2]=n;if((n|0)>0){c=J[a+136>>2];d=J[b+68>>2];j=0;while(1){f=c+(j<<4)|0;J[f+12>>2]=J[d+12>>2];I[f+6>>1]=L[d+6>>1];I[f+8>>1]=L[d+8>>1];I[f+10>>1]=L[d+10>>1];I[f>>1]=L[d>>1];I[f+2>>1]=L[d+2>>1];I[f+4>>1]=L[d+4>>1];d=d+16|0;j=j+1|0;if((n|0)!=(j|0)){continue}break}}J[a+144>>2]=J[b+76>>2];d=J[a+152>>2];h=J[b+80>>2];if(!((d|0)>=(h|0)|(h|0)<=J[a+156>>2])){f:{if(!h){i=0;break f}J[8456]=J[8456]+1;i=ua[J[8258]](h<<5,16)|0;d=J[a+152>>2]}g:{if((d|0)<=0){break g}l=0;if((d|0)!=1){e=d&-2;j=0;while(1){g=l<<5;f=g+i|0;m=g+J[a+160>>2]|0;c=J[m+4>>2];J[f>>2]=J[m>>2];J[f+4>>2]=c;c=J[m+28>>2];J[f+24>>2]=J[m+24>>2];J[f+28>>2]=c;c=J[m+20>>2];J[f+16>>2]=J[m+16>>2];J[f+20>>2]=c;c=J[m+12>>2];J[f+8>>2]=J[m+8>>2];J[f+12>>2]=c;c=g|32;f=c+i|0;g=c+J[a+160>>2]|0;c=J[g+4>>2];J[f>>2]=J[g>>2];J[f+4>>2]=c;c=J[g+12>>2];J[f+8>>2]=J[g+8>>2];J[f+12>>2]=c;c=J[g+20>>2];J[f+16>>2]=J[g+16>>2];J[f+20>>2]=c;c=J[g+28>>2];J[f+24>>2]=J[g+24>>2];J[f+28>>2]=c;l=l+2|0;j=j+2|0;if((e|0)!=(j|0)){continue}break}}if(!(d&1)){break g}c=l<<5;f=c+i|0;d=c+J[a+160>>2]|0;c=J[d+4>>2];J[f>>2]=J[d>>2];J[f+4>>2]=c;c=J[d+28>>2];J[f+24>>2]=J[d+24>>2];J[f+28>>2]=c;c=J[d+20>>2];J[f+16>>2]=J[d+16>>2];J[f+20>>2]=c;c=J[d+12>>2];J[f+8>>2]=J[d+8>>2];J[f+12>>2]=c}c=J[a+160>>2];if(!(c?!c|!K[a+164|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}J[a+160>>2]=i;H[a+164|0]=1;J[a+156>>2]=h}J[a+152>>2]=h;if((h|0)>0){c=J[a+160>>2];d=J[b+72>>2];a=0;while(1){b=c+(a<<5)|0;I[b+6>>1]=L[d+14>>1];I[b+8>>1]=L[d+16>>1];I[b+10>>1]=L[d+18>>1];I[b>>1]=L[d+8>>1];I[b+2>>1]=L[d+10>>1];I[b+4>>1]=L[d+12>>1];J[b+12>>2]=J[d>>2];J[b+16>>2]=J[d+4>>2];d=d+20|0;a=a+1|0;if((h|0)!=(a|0)){continue}break}}}function Yl(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=0,l=Q(0),m=Q(0),n=0,o=Q(0),p=0,q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=Q(0),H=Q(0),I=Q(0),L=Q(0),M=Q(0),O=Q(0),P=Q(0),S=Q(0),T=Q(0),U=Q(0),V=0,W=Q(0),X=Q(0),Z=Q(0),_=Q(0),$=Q(0),aa=Q(0),ba=Q(0),ca=Q(0),da=Q(0),ea=Q(0),fa=Q(0),ga=Q(0),ha=Q(0),ia=0,ja=0,ka=Q(0),la=Q(0),ma=0,na=Q(0);d=sa-48|0;sa=d;a:{if(!J[a+12>>2]){break a}n=K[a+16|0];k=n?c:b;f=J[k+12>>2];y=N[f+56>>2];z=N[f+52>>2];A=N[f+48>>2];p=n?b:c;n=J[p+12>>2];B=N[n+56>>2];fa=N[n+48>>2];C=N[n+52>>2];k=J[k+4>>2];w=N[f+32>>2];D=N[f+16>>2];E=N[f>>2];F=N[f+36>>2];m=N[f+20>>2];s=N[f+4>>2];h=N[n+40>>2];j=N[n+24>>2];g=N[n+8>>2];i=N[n+32>>2];o=N[n+16>>2];r=N[n>>2];t=N[n+36>>2];l=N[f+40>>2];u=N[n+20>>2];H=N[f+24>>2];x=N[n+4>>2];I=N[f+8>>2];n=J[p+4>>2];V=n- -64|0;L=N[V>>2];v=N[n+56>>2];M=N[n+60>>2];J[d+28>>2]=0;X=Q(Q(i*l)+Q(Q(r*I)+Q(H*o)));v=Q(-v);Z=Q(Q(t*l)+Q(Q(x*I)+Q(H*u)));l=Q(Q(h*l)+Q(Q(g*I)+Q(H*j)));N[d+24>>2]=Q(Q(X*v)-Q(M*Z))-Q(L*l);H=Q(Q(i*F)+Q(Q(r*s)+Q(m*o)));I=Q(Q(t*F)+Q(Q(x*s)+Q(m*u)));_=Q(Q(h*F)+Q(Q(g*s)+Q(m*j)));N[d+20>>2]=Q(Q(H*v)-Q(M*I))-Q(L*_);$=Q(Q(i*w)+Q(Q(r*E)+Q(D*o)));q=M;M=Q(Q(t*w)+Q(Q(x*E)+Q(D*u)));ga=L;L=Q(Q(h*w)+Q(Q(g*E)+Q(D*j)));N[d+16>>2]=Q(Q($*v)-Q(q*M))-Q(ga*L);ua[J[J[k>>2]+64>>2]](d+32|0,k,d+16|0);f=J[p+12>>2];v=N[f+48>>2];T=N[f+32>>2];U=N[f+16>>2];q=N[f+8>>2];P=N[f+4>>2];O=N[f>>2];S=N[f+56>>2];G=N[f+52>>2];W=N[f+40>>2];aa=N[f+36>>2];ha=N[f+24>>2];ba=N[f+20>>2];ca=N[n+72>>2];F=N[V>>2];m=N[n+56>>2];s=N[n+60>>2];w=N[d+40>>2];D=N[d+32>>2];E=N[d+36>>2];f=J[a+12>>2];da=N[f+848>>2];J[e+4>>2]=f;ea=Q(Q(y*h)+Q(Q(A*g)+Q(z*j)));ga=g;g=Q(-fa);l=Q(Q(ea+Q(Q(Q(ga*g)-Q(j*C))-Q(h*B)))+Q(Q(w*l)+Q(Q(D*L)+Q(_*E))));o=Q(Q(Q(Q(y*i)+Q(Q(A*r)+Q(z*o)))+Q(Q(Q(r*g)-Q(o*C))-Q(i*B)))+Q(Q(w*X)+Q(Q(D*$)+Q(H*E))));r=Q(Q(Q(Q(y*t)+Q(Q(A*x)+Q(z*u)))+Q(Q(Q(x*g)-Q(u*C))-Q(t*B)))+Q(Q(w*Z)+Q(Q(D*M)+Q(I*E))));h=Q(Q(Q(F*l)+Q(Q(m*o)+Q(s*r)))-ca);if(h>2];t=N[f+24>>2];u=N[f+20>>2];x=N[f+40>>2];y=N[f+36>>2];z=N[f+16>>2];A=N[f+32>>2];j=N[n+64>>2];B=N[f+8>>2];g=N[n+56>>2];C=N[f>>2];i=N[n+60>>2];w=N[f+4>>2];J[d+28>>2]=0;N[d+16>>2]=Q(B*j)+Q(Q(C*g)+Q(w*i));N[d+24>>2]=Q(x*j)+Q(Q(A*g)+Q(i*y));N[d+20>>2]=Q(t*j)+Q(Q(z*g)+Q(i*u));J[d+12>>2]=0;j=Q(l-Q(F*h));g=Q(o-Q(m*h));i=Q(r-Q(s*h));N[d+8>>2]=Q(Q(j*W)+Q(Q(g*T)+Q(i*aa)))+S;N[d+4>>2]=Q(Q(j*ha)+Q(Q(g*U)+Q(i*ba)))+G;N[d>>2]=Q(Q(j*q)+Q(Q(g*O)+Q(P*i)))+v;ua[J[J[e>>2]+16>>2]](e,d+16|0,d,h)}b:{if(J[k+4>>2]>6|J[J[e+4>>2]+844>>2]>=J[a+24>>2]){break b}j=N[n+64>>2];c:{if(Q(R(j))>Q(.7071067690849304)){h=N[n+60>>2];g=Q(Q(1)/Q(Y(Q(Q(h*h)+Q(j*j)))));h=Q(h*g);j=Q(g*Q(-j));g=Q(0);break c}h=N[n+56>>2];g=N[n+60>>2];i=Q(Q(1)/Q(Y(Q(Q(h*h)+Q(g*g)))));j=Q(h*i);h=Q(0);g=Q(i*Q(-g))}V=0;i=Q(ua[J[J[k>>2]+16>>2]](k));i=Q(N[8265]/i);i=i>Q(.39269909262657166)?Q(.19634954631328583):Q(i*Q(.5));o=Na(i);f=J[a+20>>2];H=Ma(i);if((f|0)<=0){break b}q=h;h=Q(o/Q(Y(Q(Q(h*h)+Q(Q(g*g)+Q(j*j))))));I=Q(q*h);L=Q(j*h);M=Q(g*h);while(1){j=N[n+60>>2];i=N[n+56>>2];h=N[n+64>>2];g=Q(Q(Q(Q(6.2831854820251465)/Q(f|0))*Q(V|0))*Q(.5));o=Q(Na(g)/Q(Y(Q(Q(h*h)+Q(Q(i*i)+Q(j*j))))));h=Q(h*o);j=Q(j*o);g=Ma(g);i=Q(i*o);o=Q(Q(h*I)+Q(Q(j*L)+Q(Q(g*H)+Q(M*i))));r=Q(Q(h*L)+Q(Q(Q(g*M)-Q(H*i))-Q(j*I)));t=Q(Q(i*I)+Q(Q(Q(g*L)-Q(H*j))-Q(h*M)));u=Q(Q(j*M)+Q(Q(Q(g*I)-Q(H*h))-Q(i*L)));N[d+28>>2]=Q(Q(Q(o*g)-Q(i*r))-Q(t*j))-Q(u*h);N[d+24>>2]=Q(Q(r*j)+Q(Q(o*h)+Q(g*u)))-Q(t*i);N[d+20>>2]=Q(Q(u*i)+Q(Q(o*j)+Q(g*t)))-Q(r*h);N[d+16>>2]=Q(Q(t*h)+Q(Q(o*i)+Q(g*r)))-Q(u*j);f=sa-48|0;sa=f;p=K[a+16|0];ia=p?c:b;k=J[ia+12>>2];fa=N[k+56>>2];X=N[k+52>>2];Z=N[k+48>>2];ja=p?b:c;p=J[ja+12>>2];_=N[p+56>>2];aa=N[p+48>>2];$=N[p+52>>2];ia=J[ia+4>>2];h=N[p+40>>2];j=N[p+8>>2];g=N[p+24>>2];i=N[p+32>>2];o=N[p>>2];r=N[p+16>>2];t=N[p+36>>2];y=N[k+40>>2];z=N[k+32>>2];A=N[k+36>>2];u=N[p+4>>2];B=N[k+8>>2];C=N[k>>2];w=N[k+4>>2];x=N[p+20>>2];D=N[k+24>>2];E=N[k+16>>2];F=N[k+20>>2];s=N[d+28>>2];v=N[d+24>>2];m=N[d+16>>2];l=N[d+20>>2];p=J[ja+4>>2];ma=p- -64|0;T=N[ma>>2];ha=N[p+56>>2];U=N[p+60>>2];J[f+28>>2]=0;q=Q(Q(2)/Q(Q(s*s)+Q(Q(v*v)+Q(Q(m*m)+Q(l*l)))));G=Q(m*q);ba=Q(m*G);P=Q(l*q);ca=Q(l*P);O=Q(Q(1)-Q(ba+ca));q=Q(v*q);da=Q(m*q);ea=Q(s*P);S=Q(da+ea);ka=Q(l*q);la=Q(s*G);l=Q(ka-la);G=Q(Q(y*O)+Q(Q(z*S)+Q(A*l)));W=Q(Q(O*B)+Q(Q(S*C)+Q(w*l)));l=Q(Q(O*D)+Q(Q(S*E)+Q(F*l)));O=Q(-ha);N[f+24>>2]=Q(Q(Q(Q(i*G)+Q(Q(o*W)+Q(r*l)))*O)-Q(U*Q(Q(t*G)+Q(Q(u*W)+Q(x*l)))))-Q(T*Q(Q(h*G)+Q(Q(j*W)+Q(g*l))));l=Q(ka+la);P=Q(m*P);S=Q(s*q);m=Q(P-S);G=Q(v*q);s=Q(Q(1)-Q(ba+G));v=Q(Q(y*l)+Q(Q(z*m)+Q(A*s)));q=Q(Q(l*B)+Q(Q(m*C)+Q(w*s)));m=Q(Q(l*D)+Q(Q(m*E)+Q(F*s)));N[f+20>>2]=Q(Q(Q(Q(i*v)+Q(Q(o*q)+Q(r*m)))*O)-Q(U*Q(Q(t*v)+Q(Q(u*q)+Q(x*m)))))-Q(T*Q(Q(h*v)+Q(Q(j*q)+Q(g*m))));m=Q(da-ea);s=Q(Q(1)-Q(ca+G));l=Q(P+S);v=Q(Q(y*m)+Q(Q(z*s)+Q(A*l)));q=Q(Q(m*B)+Q(Q(s*C)+Q(w*l)));m=Q(Q(m*D)+Q(Q(s*E)+Q(F*l)));N[f+16>>2]=Q(Q(Q(Q(i*v)+Q(Q(o*q)+Q(r*m)))*O)-Q(U*Q(Q(t*v)+Q(Q(u*q)+Q(x*m)))))-Q(T*Q(Q(h*v)+Q(Q(j*q)+Q(g*m))));ua[J[J[ia>>2]+64>>2]](f+32|0,ia,f+16|0);k=J[ja+12>>2];P=N[k+48>>2];O=N[k+32>>2];S=N[k+16>>2];G=N[k+8>>2];W=N[k+4>>2];ha=N[k>>2];ba=N[k+56>>2];ca=N[k+52>>2];da=N[k+40>>2];ea=N[k+36>>2];ka=N[k+24>>2];la=N[k+20>>2];na=N[p+72>>2];v=N[ma>>2];T=N[p+56>>2];U=N[p+60>>2];m=N[f+40>>2];s=N[f+32>>2];l=N[f+36>>2];k=J[a+12>>2];q=N[k+848>>2];J[e+4>>2]=k;ga=q;q=Q(-aa);aa=Q(Q(Q(Q(fa*h)+Q(Q(Z*j)+Q(X*g)))+Q(Q(Q(j*q)-Q(g*$))-Q(h*_)))+Q(Q(m*Q(Q(y*h)+Q(Q(B*j)+Q(D*g))))+Q(Q(s*Q(Q(z*h)+Q(Q(C*j)+Q(E*g))))+Q(l*Q(Q(A*h)+Q(Q(w*j)+Q(F*g)))))));o=Q(Q(Q(Q(fa*i)+Q(Q(Z*o)+Q(X*r)))+Q(Q(Q(o*q)-Q(r*$))-Q(i*_)))+Q(Q(m*Q(Q(y*i)+Q(Q(B*o)+Q(D*r))))+Q(Q(s*Q(Q(z*i)+Q(Q(C*o)+Q(E*r))))+Q(l*Q(Q(A*i)+Q(Q(w*o)+Q(F*r)))))));r=Q(Q(Q(Q(fa*t)+Q(Q(Z*u)+Q(X*x)))+Q(Q(Q(u*q)-Q(x*$))-Q(t*_)))+Q(Q(m*Q(Q(y*t)+Q(Q(B*u)+Q(D*x))))+Q(Q(s*Q(Q(z*t)+Q(Q(C*u)+Q(E*x))))+Q(l*Q(Q(A*t)+Q(Q(w*u)+Q(F*x)))))));h=Q(Q(Q(v*aa)+Q(Q(T*o)+Q(U*r)))-na);if(ga>h){k=J[ja+12>>2];t=N[k+24>>2];u=N[k+20>>2];x=N[k+40>>2];y=N[k+36>>2];z=N[k+16>>2];A=N[k+32>>2];j=N[p+64>>2];B=N[k+8>>2];g=N[p+56>>2];C=N[k>>2];i=N[p+60>>2];w=N[k+4>>2];J[f+28>>2]=0;N[f+16>>2]=Q(B*j)+Q(Q(C*g)+Q(w*i));N[f+24>>2]=Q(x*j)+Q(Q(A*g)+Q(i*y));N[f+20>>2]=Q(t*j)+Q(Q(z*g)+Q(i*u));J[f+12>>2]=0;j=Q(aa-Q(v*h));g=Q(o-Q(T*h));i=Q(r-Q(U*h));N[f+8>>2]=Q(Q(j*da)+Q(Q(g*O)+Q(i*ea)))+ba;N[f+4>>2]=Q(Q(j*ka)+Q(Q(g*S)+Q(i*la)))+ca;N[f>>2]=Q(Q(j*G)+Q(Q(g*ha)+Q(W*i)))+P;ua[J[J[e>>2]+16>>2]](e,f+16|0,f,h)}sa=f+48|0;f=J[a+20>>2];V=V+1|0;if((f|0)>(V|0)){continue}break}}if(!K[a+8|0]|!J[J[a+12>>2]+844>>2]){break a}a=J[e+4>>2];if(!J[a+844>>2]){break a}c=J[a+836>>2];f=J[J[e+8>>2]+8>>2];b=(c|0)==(f|0);k=a;a=J[J[e+12>>2]+8>>2];Ua(k,(b?c:a)+4|0,(b?a:f)+4|0)}sa=d+48|0}function db(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=Q(0),l=0,m=Q(0),n=Q(0),o=0,p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0);g=sa-256|0;sa=g;h=J[b+212>>2];a:{if((h|0)>=0){break a}b:{h=J[b+252>>2];if(!(h&2)){break b}h=h<<30>>31&b;if(N[h+404>>2]==Q(0)&!(K[h+204|0]&2)){break b}h=J[a+8>>2];Fa(g+12|0,0,244);d=h;e=d;c:{if(J[a+12>>2]!=(d|0)){break c}l=d?d<<1:1;e=h;if((l|0)<=(d|0)){break c}if(l){J[8456]=J[8456]+1;i=ua[J[8258]](P(l,244),16)|0;d=J[a+8>>2]}else{d=h}if((d|0)>0){while(1){e=P(o,244);f=e+i|0;e=e+J[a+16>>2]|0;j=J[e+4>>2];J[f>>2]=J[e>>2];J[f+4>>2]=j;j=J[e+12>>2];J[f+8>>2]=J[e+8>>2];J[f+12>>2]=j;j=J[e+28>>2];J[f+24>>2]=J[e+24>>2];J[f+28>>2]=j;j=J[e+20>>2];J[f+16>>2]=J[e+16>>2];J[f+20>>2]=j;j=J[e+44>>2];J[f+40>>2]=J[e+40>>2];J[f+44>>2]=j;j=J[e+36>>2];J[f+32>>2]=J[e+32>>2];J[f+36>>2]=j;j=J[e+52>>2];J[f+48>>2]=J[e+48>>2];J[f+52>>2]=j;j=J[e+60>>2];J[f+56>>2]=J[e+56>>2];J[f+60>>2]=j;Ja(f- -64|0,e- -64|0,180);o=o+1|0;if((d|0)!=(o|0)){continue}break}}d=J[a+16>>2];if(!(d?!d|!K[a+20|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](d)}J[a+16>>2]=i;H[a+20|0]=1;J[a+12>>2]=l;e=J[a+8>>2]}J[a+8>>2]=e+1;e=P(h,244);d=e+J[a+16>>2]|0;J[d>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;f=J[g+40>>2];J[d+24>>2]=J[g+36>>2];J[d+28>>2]=f;f=J[g+32>>2];J[d+16>>2]=J[g+28>>2];J[d+20>>2]=f;f=J[g+48>>2];J[d+32>>2]=J[g+44>>2];J[d+36>>2]=f;f=J[g+56>>2];J[d+40>>2]=J[g+52>>2];J[d+44>>2]=f;f=J[g+64>>2];J[d+48>>2]=J[g+60>>2];J[d+52>>2]=f;f=J[g+72>>2];J[d+56>>2]=J[g+68>>2];J[d+60>>2]=f;Ja(d- -64|0,g+76|0,180);d=e+J[a+16>>2]|0;a=b?J[b+252>>2]<<30>>31&b:0;J[d+64>>2]=0;J[d+68>>2]=0;J[d+144>>2]=0;J[d+148>>2]=0;J[d+88>>2]=0;J[d+92>>2]=0;J[d+80>>2]=0;J[d+84>>2]=0;J[d+72>>2]=0;J[d+76>>2]=0;J[d+152>>2]=0;J[d+156>>2]=0;J[d+160>>2]=0;J[d+164>>2]=0;J[d+168>>2]=0;J[d+172>>2]=0;d:{if(a){e=J[a+8>>2];J[d>>2]=J[a+4>>2];J[d+4>>2]=e;e=J[a+16>>2];J[d+8>>2]=J[a+12>>2];J[d+12>>2]=e;e=J[a+32>>2];J[d+24>>2]=J[a+28>>2];J[d+28>>2]=e;e=J[a+24>>2];J[d+16>>2]=J[a+20>>2];J[d+20>>2]=e;e=J[a+48>>2];J[d+40>>2]=J[a+44>>2];J[d+44>>2]=e;e=J[a+40>>2];J[d+32>>2]=J[a+36>>2];J[d+36>>2]=e;e=J[a+64>>2];J[d+56>>2]=J[a+60>>2];J[d+60>>2]=e;e=J[a+56>>2];J[d+48>>2]=J[a+52>>2];J[d+52>>2]=e;m=N[a+412>>2];n=N[a+416>>2];p=N[a+408>>2];k=N[a+404>>2];J[d+240>>2]=a;J[d+140>>2]=0;N[d+136>>2]=k*n;N[d+132>>2]=k*m;N[d+128>>2]=k*p;e=J[a+616>>2];J[d+104>>2]=J[a+612>>2];J[d+108>>2]=e;e=J[a+608>>2];J[d+96>>2]=J[a+604>>2];J[d+100>>2]=e;e=J[a+420>>2];J[d+120>>2]=J[a+416>>2];J[d+124>>2]=e;e=J[a+412>>2];J[d+112>>2]=J[a+408>>2];J[d+116>>2]=e;e=J[a+384>>2];J[d+184>>2]=J[a+380>>2];J[d+188>>2]=e;e=J[a+376>>2];J[d+176>>2]=J[a+372>>2];J[d+180>>2]=e;e=J[a+400>>2];J[d+200>>2]=J[a+396>>2];J[d+204>>2]=e;e=J[a+392>>2];J[d+192>>2]=J[a+388>>2];J[d+196>>2]=e;m=N[a+476>>2];n=N[a+480>>2];p=N[a+472>>2];k=N[a+404>>2];J[d+220>>2]=0;N[d+216>>2]=Q(k*n)*c;N[d+212>>2]=Q(k*m)*c;N[d+208>>2]=Q(k*p)*c;p=N[a+332>>2];q=N[a+348>>2];r=N[a+364>>2];s=N[a+340>>2];t=N[a+356>>2];u=N[a+324>>2];k=N[a+496>>2];m=N[a+488>>2];n=N[a+492>>2];N[d+228>>2]=Q(Q(N[a+360>>2]*k)+Q(Q(N[a+328>>2]*m)+Q(n*N[a+344>>2])))*c;N[d+224>>2]=Q(Q(t*k)+Q(Q(u*m)+Q(s*n)))*c;c=Q(Q(Q(r*k)+Q(Q(p*m)+Q(n*q)))*c);break d}J[d+4>>2]=0;J[d+8>>2]=0;J[d>>2]=1065353216;J[d+240>>2]=0;J[d+128>>2]=0;J[d+132>>2]=0;J[d+112>>2]=1065353216;J[d+116>>2]=1065353216;J[d+96>>2]=1065353216;J[d+100>>2]=1065353216;J[d+176>>2]=0;J[d+180>>2]=0;J[d+12>>2]=0;J[d+16>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+20>>2]=1065353216;J[d+32>>2]=0;J[d+36>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;J[d+40>>2]=1065353216;J[d+52>>2]=0;J[d+56>>2]=0;J[d+60>>2]=0;J[d+136>>2]=0;J[d+140>>2]=0;J[d+120>>2]=1065353216;J[d+124>>2]=0;J[d+104>>2]=1065353216;J[d+108>>2]=0;J[d+224>>2]=0;J[d+228>>2]=0;J[d+216>>2]=0;J[d+220>>2]=0;J[d+208>>2]=0;J[d+212>>2]=0;J[d+200>>2]=0;J[d+204>>2]=0;J[d+192>>2]=0;J[d+196>>2]=0;J[d+184>>2]=0;J[d+188>>2]=0;c=Q(0)}J[d+236>>2]=0;N[d+232>>2]=c;J[b+212>>2]=h;break a}h=J[a+188>>2];if((h|0)>=0){break a}b=J[a+8>>2];J[a+188>>2]=b;Fa(g+12|0,0,244);d=b;e:{if((b|0)!=J[a+12>>2]){break e}l=b?b<<1:1;d=b;if((l|0)<=(b|0)){break e}if(l){J[8456]=J[8456]+1;o=ua[J[8258]](P(l,244),16)|0;d=J[a+8>>2]}else{d=b}if((d|0)>0){h=0;while(1){e=P(h,244);f=e+o|0;e=e+J[a+16>>2]|0;i=J[e+4>>2];J[f>>2]=J[e>>2];J[f+4>>2]=i;i=J[e+12>>2];J[f+8>>2]=J[e+8>>2];J[f+12>>2]=i;i=J[e+28>>2];J[f+24>>2]=J[e+24>>2];J[f+28>>2]=i;i=J[e+20>>2];J[f+16>>2]=J[e+16>>2];J[f+20>>2]=i;i=J[e+44>>2];J[f+40>>2]=J[e+40>>2];J[f+44>>2]=i;i=J[e+36>>2];J[f+32>>2]=J[e+32>>2];J[f+36>>2]=i;i=J[e+52>>2];J[f+48>>2]=J[e+48>>2];J[f+52>>2]=i;i=J[e+60>>2];J[f+56>>2]=J[e+56>>2];J[f+60>>2]=i;Ja(f- -64|0,e- -64|0,180);h=h+1|0;if((d|0)!=(h|0)){continue}break}}h=J[a+16>>2];if(!(h?!h|!K[a+20|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](h)}J[a+16>>2]=o;H[a+20|0]=1;J[a+12>>2]=l;d=J[a+8>>2]}J[a+8>>2]=d+1;h=P(b,244);b=h+J[a+16>>2]|0;J[b>>2]=0;J[b+4>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;d=J[g+40>>2];J[b+24>>2]=J[g+36>>2];J[b+28>>2]=d;d=J[g+32>>2];J[b+16>>2]=J[g+28>>2];J[b+20>>2]=d;d=J[g+48>>2];J[b+32>>2]=J[g+44>>2];J[b+36>>2]=d;d=J[g+56>>2];J[b+40>>2]=J[g+52>>2];J[b+44>>2]=d;d=J[g+64>>2];J[b+48>>2]=J[g+60>>2];J[b+52>>2]=d;d=J[g+72>>2];J[b+56>>2]=J[g+68>>2];J[b+60>>2]=d;Ja(b- -64|0,g+76|0,180);b=h+J[a+16>>2]|0;J[b+64>>2]=0;J[b+68>>2]=0;J[b+144>>2]=0;J[b+148>>2]=0;J[b+4>>2]=0;J[b+8>>2]=0;J[b>>2]=1065353216;J[b+88>>2]=0;J[b+92>>2]=0;J[b+80>>2]=0;J[b+84>>2]=0;J[b+72>>2]=0;J[b+76>>2]=0;J[b+152>>2]=0;J[b+156>>2]=0;J[b+160>>2]=0;J[b+164>>2]=0;J[b+168>>2]=0;J[b+172>>2]=0;J[b+12>>2]=0;J[b+16>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+20>>2]=1065353216;J[b+32>>2]=0;J[b+36>>2]=0;J[b+44>>2]=0;J[b+48>>2]=0;J[b+40>>2]=1065353216;J[b+52>>2]=0;J[b+56>>2]=0;J[b+60>>2]=0;J[b+136>>2]=0;J[b+140>>2]=0;J[b+240>>2]=0;J[b+128>>2]=0;J[b+132>>2]=0;J[b+120>>2]=1065353216;J[b+124>>2]=0;J[b+112>>2]=1065353216;J[b+116>>2]=1065353216;J[b+104>>2]=1065353216;J[b+108>>2]=0;J[b+96>>2]=1065353216;J[b+100>>2]=1065353216;J[b+232>>2]=0;J[b+236>>2]=0;J[b+224>>2]=0;J[b+228>>2]=0;J[b+216>>2]=0;J[b+220>>2]=0;J[b+208>>2]=0;J[b+212>>2]=0;J[b+200>>2]=0;J[b+204>>2]=0;J[b+192>>2]=0;J[b+196>>2]=0;J[b+184>>2]=0;J[b+188>>2]=0;J[b+176>>2]=0;J[b+180>>2]=0;h=J[a+188>>2]}sa=g+256|0;return h}function Ao(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=0;f=sa-32|0;sa=f;o=N[d+52>>2];i=N[d+24>>2];j=N[d+20>>2];p=N[d+56>>2];k=N[d+40>>2];q=N[d+36>>2];r=N[d+16>>2];s=N[d+32>>2];t=N[d+48>>2];l=N[d+8>>2];g=N[b+8>>2];u=N[d>>2];h=N[b>>2];n=N[d+4>>2];m=N[b+4>>2];J[f+28>>2]=0;l=Q(g*l);n=Q(m*n);N[f+16>>2]=t+Q(l+Q(Q(h*u)+n));k=Q(g*k);q=Q(m*q);N[f+24>>2]=p+Q(k+Q(Q(h*s)+q));i=Q(g*i);g=Q(h*r);h=Q(m*j);N[f+20>>2]=o+Q(i+Q(g+h));g=N[c>>2];J[f+12>>2]=0;N[f+8>>2]=p+Q(k+Q(Q(g*s)+q));N[f+4>>2]=o+Q(i+Q(Q(g*r)+h));N[f>>2]=t+Q(l+Q(Q(g*u)+n));v=f+16|0;ua[J[J[a>>2]+16>>2]](a,v,f,e);o=N[d+52>>2];i=N[d+24>>2];p=N[d+20>>2];r=N[d+56>>2];j=N[d+40>>2];s=N[d+36>>2];t=N[d+48>>2];k=N[d+8>>2];q=N[d>>2];u=N[d+4>>2];l=N[d+16>>2];g=N[b+8>>2];n=N[d+32>>2];h=N[c>>2];m=N[b+4>>2];J[f+28>>2]=0;j=Q(g*j);n=Q(h*n);N[f+24>>2]=r+Q(j+Q(n+Q(m*s)));i=Q(g*i);l=Q(h*l);N[f+20>>2]=o+Q(i+Q(l+Q(m*p)));k=Q(g*k);h=Q(h*q);N[f+16>>2]=t+Q(k+Q(h+Q(m*u)));g=N[c+4>>2];J[f+12>>2]=0;N[f+8>>2]=r+Q(j+Q(n+Q(s*g)));N[f+4>>2]=o+Q(i+Q(l+Q(p*g)));N[f>>2]=t+Q(k+Q(h+Q(u*g)));ua[J[J[a>>2]+16>>2]](a,v,f,e);o=N[d+52>>2];i=N[d+24>>2];j=N[d+20>>2];p=N[d+56>>2];k=N[d+40>>2];q=N[d+36>>2];r=N[d+48>>2];l=N[d+8>>2];s=N[d>>2];n=N[d+4>>2];t=N[d+16>>2];g=N[b+8>>2];u=N[d+32>>2];h=N[c>>2];m=N[c+4>>2];J[f+28>>2]=0;k=Q(g*k);q=Q(m*q);N[f+24>>2]=p+Q(k+Q(Q(h*u)+q));i=Q(g*i);j=Q(m*j);N[f+20>>2]=o+Q(i+Q(Q(h*t)+j));l=Q(g*l);g=Q(h*s);h=Q(m*n);N[f+16>>2]=r+Q(l+Q(g+h));g=N[b>>2];J[f+12>>2]=0;N[f+8>>2]=p+Q(k+Q(Q(g*u)+q));N[f+4>>2]=o+Q(i+Q(Q(g*t)+j));N[f>>2]=r+Q(l+Q(Q(g*s)+h));ua[J[J[a>>2]+16>>2]](a,v,f,e);o=N[d+52>>2];i=N[d+24>>2];p=N[d+20>>2];r=N[d+56>>2];j=N[d+40>>2];s=N[d+36>>2];t=N[d+48>>2];k=N[d+8>>2];q=N[d>>2];u=N[d+4>>2];l=N[d+16>>2];g=N[b+8>>2];n=N[d+32>>2];h=N[b>>2];m=N[c+4>>2];J[f+28>>2]=0;j=Q(g*j);n=Q(h*n);N[f+24>>2]=r+Q(j+Q(n+Q(m*s)));i=Q(g*i);l=Q(h*l);N[f+20>>2]=o+Q(i+Q(l+Q(m*p)));k=Q(g*k);h=Q(h*q);N[f+16>>2]=t+Q(k+Q(h+Q(m*u)));g=N[b+4>>2];J[f+12>>2]=0;N[f+8>>2]=r+Q(j+Q(n+Q(s*g)));N[f+4>>2]=o+Q(i+Q(l+Q(p*g)));N[f>>2]=t+Q(k+Q(h+Q(u*g)));ua[J[J[a>>2]+16>>2]](a,v,f,e);o=N[d+52>>2];p=N[d+24>>2];i=N[d+20>>2];r=N[d+56>>2];s=N[d+40>>2];j=N[d+36>>2];t=N[d+48>>2];u=N[d+8>>2];k=N[d>>2];q=N[d+4>>2];l=N[d+16>>2];g=N[b+8>>2];n=N[d+32>>2];h=N[b>>2];m=N[b+4>>2];J[f+28>>2]=0;j=Q(Q(h*n)+Q(m*j));N[f+24>>2]=r+Q(Q(g*s)+j);i=Q(Q(h*l)+Q(m*i));N[f+20>>2]=o+Q(Q(g*p)+i);h=Q(Q(h*k)+Q(m*q));N[f+16>>2]=t+Q(Q(g*u)+h);g=N[c+8>>2];J[f+12>>2]=0;N[f+8>>2]=r+Q(Q(g*s)+j);N[f+4>>2]=o+Q(Q(g*p)+i);N[f>>2]=t+Q(Q(g*u)+h);ua[J[J[a>>2]+16>>2]](a,v,f,e);o=N[d+52>>2];p=N[d+24>>2];i=N[d+20>>2];r=N[d+56>>2];s=N[d+40>>2];j=N[d+36>>2];t=N[d+48>>2];u=N[d+8>>2];k=N[d>>2];q=N[d+4>>2];l=N[d+16>>2];g=N[b+8>>2];n=N[d+32>>2];h=N[c>>2];m=N[b+4>>2];J[f+28>>2]=0;j=Q(Q(h*n)+Q(m*j));N[f+24>>2]=r+Q(Q(g*s)+j);i=Q(Q(h*l)+Q(m*i));N[f+20>>2]=o+Q(Q(g*p)+i);h=Q(Q(h*k)+Q(m*q));N[f+16>>2]=t+Q(Q(g*u)+h);g=N[c+8>>2];J[f+12>>2]=0;N[f+8>>2]=r+Q(Q(g*s)+j);N[f+4>>2]=o+Q(Q(g*p)+i);N[f>>2]=t+Q(Q(g*u)+h);ua[J[J[a>>2]+16>>2]](a,v,f,e);o=N[d+52>>2];p=N[d+24>>2];i=N[d+20>>2];r=N[d+56>>2];s=N[d+40>>2];j=N[d+36>>2];t=N[d+48>>2];u=N[d+8>>2];k=N[d>>2];q=N[d+4>>2];l=N[d+16>>2];g=N[b+8>>2];n=N[d+32>>2];h=N[c>>2];m=N[c+4>>2];J[f+28>>2]=0;j=Q(Q(h*n)+Q(m*j));N[f+24>>2]=r+Q(Q(g*s)+j);i=Q(Q(h*l)+Q(m*i));N[f+20>>2]=o+Q(Q(g*p)+i);h=Q(Q(h*k)+Q(m*q));N[f+16>>2]=t+Q(Q(g*u)+h);g=N[c+8>>2];J[f+12>>2]=0;N[f+8>>2]=r+Q(Q(g*s)+j);N[f+4>>2]=o+Q(Q(g*p)+i);N[f>>2]=t+Q(Q(g*u)+h);ua[J[J[a>>2]+16>>2]](a,v,f,e);o=N[d+52>>2];p=N[d+24>>2];i=N[d+20>>2];r=N[d+56>>2];s=N[d+40>>2];j=N[d+36>>2];t=N[d+48>>2];u=N[d+8>>2];k=N[d>>2];q=N[d+4>>2];l=N[d+16>>2];g=N[b+8>>2];n=N[d+32>>2];h=N[b>>2];m=N[c+4>>2];J[f+28>>2]=0;j=Q(Q(h*n)+Q(m*j));N[f+24>>2]=r+Q(Q(g*s)+j);i=Q(Q(h*l)+Q(m*i));N[f+20>>2]=o+Q(Q(g*p)+i);h=Q(Q(h*k)+Q(m*q));N[f+16>>2]=t+Q(Q(g*u)+h);g=N[c+8>>2];J[f+12>>2]=0;N[f+8>>2]=r+Q(Q(g*s)+j);N[f+4>>2]=o+Q(Q(g*p)+i);N[f>>2]=t+Q(Q(g*u)+h);ua[J[J[a>>2]+16>>2]](a,v,f,e);o=N[d+52>>2];i=N[d+24>>2];j=N[d+20>>2];p=N[d+56>>2];k=N[d+40>>2];q=N[d+36>>2];r=N[d+48>>2];l=N[d+8>>2];s=N[d>>2];n=N[d+4>>2];t=N[d+16>>2];g=N[c+8>>2];u=N[d+32>>2];h=N[b>>2];m=N[b+4>>2];J[f+28>>2]=0;k=Q(g*k);q=Q(m*q);N[f+24>>2]=p+Q(k+Q(Q(h*u)+q));i=Q(g*i);j=Q(m*j);N[f+20>>2]=o+Q(i+Q(Q(h*t)+j));l=Q(g*l);g=Q(h*s);h=Q(m*n);N[f+16>>2]=r+Q(l+Q(g+h));g=N[c>>2];J[f+12>>2]=0;N[f+8>>2]=p+Q(k+Q(Q(g*u)+q));N[f+4>>2]=o+Q(i+Q(Q(g*t)+j));N[f>>2]=r+Q(l+Q(Q(g*s)+h));ua[J[J[a>>2]+16>>2]](a,v,f,e);o=N[d+52>>2];i=N[d+24>>2];p=N[d+20>>2];r=N[d+56>>2];j=N[d+40>>2];s=N[d+36>>2];t=N[d+48>>2];k=N[d+8>>2];q=N[d>>2];u=N[d+4>>2];l=N[d+16>>2];g=N[c+8>>2];n=N[d+32>>2];h=N[c>>2];m=N[b+4>>2];J[f+28>>2]=0;j=Q(g*j);n=Q(h*n);N[f+24>>2]=r+Q(j+Q(n+Q(m*s)));i=Q(g*i);l=Q(h*l);N[f+20>>2]=o+Q(i+Q(l+Q(m*p)));k=Q(g*k);h=Q(h*q);N[f+16>>2]=t+Q(k+Q(h+Q(m*u)));g=N[c+4>>2];J[f+12>>2]=0;N[f+8>>2]=r+Q(j+Q(n+Q(s*g)));N[f+4>>2]=o+Q(i+Q(l+Q(p*g)));N[f>>2]=t+Q(k+Q(h+Q(u*g)));ua[J[J[a>>2]+16>>2]](a,v,f,e);o=N[d+52>>2];i=N[d+24>>2];j=N[d+20>>2];p=N[d+56>>2];k=N[d+40>>2];q=N[d+36>>2];r=N[d+48>>2];l=N[d+8>>2];s=N[d>>2];n=N[d+4>>2];t=N[d+16>>2];g=N[c+8>>2];u=N[d+32>>2];h=N[c>>2];m=N[c+4>>2];J[f+28>>2]=0;k=Q(g*k);q=Q(m*q);N[f+24>>2]=p+Q(k+Q(Q(h*u)+q));i=Q(g*i);j=Q(m*j);N[f+20>>2]=o+Q(i+Q(Q(h*t)+j));l=Q(g*l);g=Q(h*s);h=Q(m*n);N[f+16>>2]=r+Q(l+Q(g+h));g=N[b>>2];J[f+12>>2]=0;N[f+8>>2]=p+Q(k+Q(Q(g*u)+q));N[f+4>>2]=o+Q(i+Q(Q(g*t)+j));N[f>>2]=r+Q(l+Q(Q(g*s)+h));ua[J[J[a>>2]+16>>2]](a,v,f,e);o=N[d+52>>2];i=N[d+24>>2];p=N[d+20>>2];r=N[d+56>>2];j=N[d+40>>2];s=N[d+36>>2];t=N[d+48>>2];k=N[d+8>>2];q=N[d>>2];u=N[d+4>>2];l=N[d+16>>2];g=N[c+8>>2];n=N[d+32>>2];h=N[b>>2];m=N[c+4>>2];J[f+28>>2]=0;j=Q(g*j);n=Q(h*n);N[f+24>>2]=r+Q(j+Q(n+Q(m*s)));i=Q(g*i);l=Q(h*l);N[f+20>>2]=o+Q(i+Q(l+Q(m*p)));k=Q(g*k);h=Q(h*q);N[f+16>>2]=t+Q(k+Q(h+Q(m*u)));g=N[b+4>>2];J[f+12>>2]=0;N[f+8>>2]=r+Q(j+Q(n+Q(s*g)));N[f+4>>2]=o+Q(i+Q(l+Q(p*g)));N[f>>2]=t+Q(k+Q(h+Q(u*g)));ua[J[J[a>>2]+16>>2]](a,v,f,e);sa=f+32|0}function jc(a,b,c,d){var e=0,f=0,g=Q(0),h=Q(0),i=Q(0),j=0,k=Q(0),l=Q(0),m=0,n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=0,s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=Q(0),I=Q(0),L=Q(0);e=sa-144|0;sa=e;g=N[b+8>>2];i=N[b>>2];h=N[b+4>>2];a:{if(Q(Q(g*g)+Q(Q(i*i)+Q(h*h)))>2];j=J[f+64>>2];J[e+136>>2]=J[f+60>>2];J[e+140>>2]=j;j=J[f+56>>2];J[e+128>>2]=J[f+52>>2];J[e+132>>2]=j;j=J[f+64>>2];J[e+120>>2]=J[f+60>>2];J[e+124>>2]=j;j=J[f+56>>2];f=J[f+52>>2];z=Q(g+N[e+120>>2]);N[e+120>>2]=z;J[e+112>>2]=f;J[e+116>>2]=j;A=Q(i+N[e+112>>2]);N[e+112>>2]=A;B=Q(h+N[e+116>>2]);N[e+116>>2]=B;b:{c:{if(!d){f=0;break c}f=0;C=N[e+136>>2];g=Q(z-C);D=N[e+128>>2];i=Q(A-D);E=N[e+132>>2];h=Q(B-E);l=Q(Y(Q(Q(g*g)+Q(Q(i*i)+Q(h*h)))));if(l<=c){break c}while(1){n=g;g=Q(Q(1)/l);n=Q(n*g);u=Q(i*g);v=Q(h*g);if(Q(Q(n*N[b+8>>2])+Q(Q(u*N[b>>2])+Q(v*N[b+4>>2])))<=Q(0)){break c}N[e+100>>2]=l+N[a+36>>2];k=Q(0);i=Q(0);f=sa-224|0;sa=f;m=J[(K[a+108|0]?104:8)+a>>2];j=H[33900]&1;d:{if(j){j=!j;h=N[8474];k=N[8473];i=N[8472];g=N[8471];break d}J[8473]=0;J[8474]=1065353216;J[8471]=0;J[8472]=0;H[33900]=1;h=Q(1);j=0;g=Q(0)}w=N[e+100>>2];J[f+204>>2]=0;J[f+188>>2]=0;p=Q(Q(2)/Q(Q(h*h)+Q(Q(k*k)+Q(Q(g*g)+Q(i*i)))));q=Q(k*p);o=Q(i*q);x=Q(g*p);t=Q(h*x);N[f+196>>2]=o+t;N[f+184>>2]=o-t;o=Q(g*x);p=Q(i*p);x=Q(i*p);N[f+200>>2]=Q(1)-Q(o+x);s=o;o=Q(k*q);N[f+180>>2]=Q(1)-Q(s+o);J[f+172>>2]=0;t=Q(g*q);y=Q(h*p);N[f+192>>2]=t-y;p=Q(g*p);q=Q(h*q);N[f+176>>2]=p+q;N[f+168>>2]=t+y;N[f+164>>2]=p-q;N[f+160>>2]=Q(1)-Q(x+o);r=J[e+140>>2];J[f+216>>2]=J[e+136>>2];J[f+220>>2]=r;r=J[e+132>>2];J[f+208>>2]=J[e+128>>2];J[f+212>>2]=r;if(j){J[8473]=0;J[8474]=1065353216;J[8471]=0;J[8472]=0;H[33900]=1;k=Q(0);h=Q(1);i=Q(0);g=Q(0)}p=N[e+136>>2];y=N[e+120>>2];o=N[e+128>>2];F=N[e+112>>2];x=N[e+132>>2];L=N[e+116>>2];J[f+156>>2]=0;J[f+140>>2]=0;J[f+124>>2]=0;t=Q(Q(2)/Q(Q(h*h)+Q(Q(k*k)+Q(Q(g*g)+Q(i*i)))));q=Q(k*t);s=Q(i*q);G=Q(g*t);I=Q(h*G);N[f+132>>2]=s+I;N[f+120>>2]=s-I;s=Q(g*G);t=Q(i*t);G=Q(i*t);N[f+136>>2]=Q(1)-Q(s+G);i=s;s=Q(k*q);N[f+116>>2]=Q(1)-Q(i+s);k=Q(y-p);y=Q(F-o);F=Q(L-x);i=Q(Q(1)/Q(Y(Q(Q(k*k)+Q(Q(y*y)+Q(F*F))))));N[f+152>>2]=p+Q(w*Q(k*i));N[f+148>>2]=x+Q(w*Q(F*i));J[f+108>>2]=0;k=Q(g*q);p=Q(h*t);N[f+128>>2]=k-p;g=Q(g*t);h=Q(h*q);N[f+112>>2]=g+h;N[f+104>>2]=k+p;N[f+100>>2]=g-h;N[f+96>>2]=Q(1)-Q(G+s);N[f+144>>2]=o+Q(w*Q(y*i));j=J[a+4>>2];J[f+20>>2]=0;J[f+8>>2]=1065353216;r=J[e+140>>2];J[f+32>>2]=J[e+136>>2];J[f+36>>2]=r;r=J[e+132>>2];J[f+24>>2]=J[e+128>>2];J[f+28>>2]=r;r=J[e+124>>2];J[f+48>>2]=J[e+120>>2];J[f+52>>2]=r;r=J[e+116>>2];J[f+40>>2]=J[e+112>>2];J[f+44>>2]=r;J[f+92>>2]=j;J[f+88>>2]=0;J[f+4>>2]=25460;j=J[j+188>>2];J[f+12>>2]=J[j+4>>2];J[f+16>>2]=J[j+8>>2];j=J[a+12>>2];vb(j,m,f+160|0,f+96|0,f+4|0,N[j+56>>2]);j=J[f+20>>2];if(j){g=N[f+8>>2];m=J[f+76>>2];J[e+68>>2]=J[f+72>>2];J[e+72>>2]=m;m=J[f+84>>2];J[e+76>>2]=J[f+80>>2];J[e+80>>2]=m;m=f- -64|0;r=J[m+4>>2];J[e+92>>2]=J[m>>2];J[e+96>>2]=r;m=J[f+60>>2];r=J[f+56>>2];J[e+104>>2]=j;N[e+100>>2]=w*g;J[e+84>>2]=r;J[e+88>>2]=m;J[e+108>>2]=J[f+88>>2]}sa=f+224|0;if(!j){b=J[e+124>>2];J[e+136>>2]=J[e+120>>2];J[e+140>>2]=b;b=J[e+116>>2];J[e+128>>2]=J[e+112>>2];J[e+132>>2]=b;f=0;break c}f=J[a+20>>2];e:{if(!f){break e}j=J[e+104>>2];m=J[j+252>>2];if(m&2){J[e+64>>2]=j;j=J[e+108>>2];J[e+60>>2]=j;J[e+4>>2]=a;m=J[e+96>>2];J[e+32>>2]=J[e+92>>2];J[e+36>>2]=m;m=J[e+88>>2];J[e+24>>2]=J[e+84>>2];J[e+28>>2]=m;m=J[e+80>>2];J[e+16>>2]=J[e+76>>2];J[e+20>>2]=m;m=J[e+72>>2];J[e+8>>2]=J[e+68>>2];J[e+12>>2]=m;N[e+56>>2]=l;J[e+52>>2]=0;N[e+48>>2]=n;N[e+44>>2]=v;N[e+40>>2]=u;if(!j){break e}ua[J[J[f>>2]>>2]](f,e+4|0);break e}if(!(m&4)){break e}j=J[j+256>>2];if(!j){break e}J[e+60>>2]=j;J[e+4>>2]=a;j=J[e+96>>2];J[e+32>>2]=J[e+92>>2];J[e+36>>2]=j;j=J[e+88>>2];J[e+24>>2]=J[e+84>>2];J[e+28>>2]=j;j=J[e+80>>2];J[e+16>>2]=J[e+76>>2];J[e+20>>2]=j;j=J[e+72>>2];J[e+8>>2]=J[e+68>>2];J[e+12>>2]=j;N[e+56>>2]=l;J[e+52>>2]=0;N[e+48>>2]=n;N[e+44>>2]=v;N[e+40>>2]=u;ua[J[J[f>>2]+4>>2]](f,e+4|0)}g=N[e+100>>2];if(!(!K[a+63|0]|g!=Q(0))){$a(a);$a(a);$a(a);$a(a);break b}g=Q(g-N[a+36>>2]);if(g>Q(0)){C=Q(C+Q(n*g));N[e+136>>2]=C;E=Q(E+Q(v*g));N[e+132>>2]=E;D=Q(D+Q(u*g));N[e+128>>2]=D}h=N[a+48>>2];k=N[a+40>>2];w=N[a+44>>2];N[a+68>>2]=Q(N[e+76>>2]*h)+Q(Q(N[e+68>>2]*k)+Q(N[e+72>>2]*w));f=J[e+80>>2];J[a+96>>2]=J[e+76>>2];J[a+100>>2]=f;f=J[e+72>>2];J[a+88>>2]=J[e+68>>2];J[a+92>>2]=f;f=J[e+96>>2];J[a+80>>2]=J[e+92>>2];J[a+84>>2]=f;f=J[e+88>>2];J[a+72>>2]=J[e+84>>2];J[a+76>>2]=f;l=N[a+76>>2];g=N[a+72>>2];f:{if(!K[a+61|0]){i=N[a+80>>2];break f}q=N[a+80>>2];i=Q(Q(q*h)+Q(Q(g*k)+Q(w*l)));h=Q(q-Q(h*i));g=Q(g-Q(k*i));l=Q(l-Q(w*i));i=Q(Q(h*h)+Q(Q(g*g)+Q(l*l)));if(i>2]=0;o=h;h=Q(Q(1)/Q(Y(i)));i=Q(o*h);N[a+80>>2]=i;l=Q(l*h);N[a+76>>2]=l;g=Q(g*h);N[a+72>>2]=g}f=J[e+140>>2];J[e+120>>2]=J[e+136>>2];J[e+124>>2]=f;h=Q(z-C);o=Q(h*h);h=Q(A-D);s=Q(h*h);h=Q(B-E);h=Q(Y(Q(o+Q(s+Q(h*h)))));k=Q(Q(n*i)+Q(Q(u*g)+Q(v*l)));n=Q(n-Q(Q(i+i)*k));o=n;s=Q(n*n);n=Q(u-Q(Q(g+g)*k));k=Q(v-Q(Q(l+l)*k));u=Q(Q(1)/Q(Y(Q(s+Q(Q(n*n)+Q(k*k))))));v=Q(o*u);o=i;n=Q(n*u);k=Q(k*u);i=Q(Q(v*i)+Q(Q(n*g)+Q(l*k)));z=Q(N[e+120>>2]+Q(h*Q(v-Q(o*i))));N[e+120>>2]=z;f=J[e+132>>2];J[e+112>>2]=J[e+128>>2];J[e+116>>2]=f;A=Q(N[e+112>>2]+Q(h*Q(n-Q(g*i))));N[e+112>>2]=A;B=Q(N[e+116>>2]+Q(h*Q(k-Q(l*i))));N[e+116>>2]=B;d=d-1|0;if(d){f=1;g=Q(z-C);i=Q(A-D);h=Q(B-E);l=Q(Y(Q(Q(g*g)+Q(Q(i*i)+Q(h*h)))));if(l<=c){break c}continue}break}f=1}b=J[e+140>>2];a=J[a+4>>2];J[a+60>>2]=J[e+136>>2];J[a+64>>2]=b;b=J[e+132>>2];J[a+52>>2]=J[e+128>>2];J[a+56>>2]=b;break a}f=1}sa=e+144|0;return f}function Xa(a){var b=0,c=0,d=0,e=Q(0),f=0,g=0,h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=0,m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=0;d=sa-32|0;sa=d;a:{b:{c:{d:{e:{f:{b=J[a+372>>2];switch(J[b+32>>2]-1|0){case 3:break c;case 2:break d;case 1:break e;case 0:break f;default:break b}}b=J[a+364>>2];c=J[a+372>>2];g=J[c+32>>2];f=(g<<2)+c|0;J[f+16>>2]=0;b=b-1|0;J[a+364>>2]=b;b=J[((b<<2)+a|0)+348>>2];J[f>>2]=b;J[c+32>>2]=g+1;J[b+8>>2]=0;J[b+12>>2]=0;J[b>>2]=1065353216;J[b+4>>2]=0;Ra(d+16|0,a,b);c=J[d+28>>2];J[b+24>>2]=J[d+24>>2];J[b+28>>2]=c;c=J[d+20>>2];J[b+16>>2]=J[d+16>>2];J[b+20>>2]=c;c=1;if(Xa(a)){break a}b=J[a+372>>2];c=J[b+32>>2]-1|0;J[b+32>>2]=c;b=J[b+(c<<2)>>2];J[((J[a+364>>2]<<2)+a|0)+348>>2]=b;c=J[a+372>>2];g=J[c+32>>2];f=(g<<2)+c|0;J[f>>2]=b;J[f+16>>2]=0;J[c+32>>2]=g+1;J[b+8>>2]=-2147483648;J[b+12>>2]=0;J[b>>2]=-1082130432;J[b+4>>2]=-2147483648;Ra(d+16|0,a,b);c=J[d+28>>2];J[b+24>>2]=J[d+24>>2];J[b+28>>2]=c;c=J[d+20>>2];J[b+16>>2]=J[d+16>>2];J[b+20>>2]=c;c=1;if(Xa(a)){break a}b=J[a+372>>2];c=J[b+32>>2]-1|0;J[b+32>>2]=c;c=J[b+(c<<2)>>2];b=J[a+364>>2];J[a+364>>2]=b+1;g=(b<<2)+a|0;J[g+348>>2]=c;c=J[a+372>>2];f=J[c+32>>2];l=(f<<2)+c|0;J[l+16>>2]=0;J[a+364>>2]=b;b=J[g+348>>2];J[l>>2]=b;J[c+32>>2]=f+1;J[b+8>>2]=0;J[b+12>>2]=0;J[b>>2]=0;J[b+4>>2]=1065353216;Ra(d+16|0,a,b);c=J[d+28>>2];J[b+24>>2]=J[d+24>>2];J[b+28>>2]=c;c=J[d+20>>2];J[b+16>>2]=J[d+16>>2];J[b+20>>2]=c;c=1;if(Xa(a)){break a}b=J[a+372>>2];c=J[b+32>>2]-1|0;J[b+32>>2]=c;b=J[b+(c<<2)>>2];J[((J[a+364>>2]<<2)+a|0)+348>>2]=b;c=J[a+372>>2];g=J[c+32>>2];f=(g<<2)+c|0;J[f>>2]=b;J[f+16>>2]=0;J[c+32>>2]=g+1;J[b+8>>2]=-2147483648;J[b+12>>2]=0;J[b>>2]=-2147483648;J[b+4>>2]=-1082130432;Ra(d+16|0,a,b);c=J[d+28>>2];J[b+24>>2]=J[d+24>>2];J[b+28>>2]=c;c=J[d+20>>2];J[b+16>>2]=J[d+16>>2];J[b+20>>2]=c;c=1;if(Xa(a)){break a}b=J[a+372>>2];c=J[b+32>>2]-1|0;J[b+32>>2]=c;c=J[b+(c<<2)>>2];b=J[a+364>>2];J[a+364>>2]=b+1;g=(b<<2)+a|0;J[g+348>>2]=c;c=J[a+372>>2];f=J[c+32>>2];l=(f<<2)+c|0;J[l+16>>2]=0;J[a+364>>2]=b;b=J[g+348>>2];J[l>>2]=b;J[c+32>>2]=f+1;J[b+8>>2]=1065353216;J[b+12>>2]=0;J[b>>2]=0;J[b+4>>2]=0;Ra(d+16|0,a,b);c=J[d+28>>2];J[b+24>>2]=J[d+24>>2];J[b+28>>2]=c;c=J[d+20>>2];J[b+16>>2]=J[d+16>>2];J[b+20>>2]=c;c=1;if(Xa(a)){break a}b=J[a+372>>2];c=J[b+32>>2]-1|0;J[b+32>>2]=c;b=J[b+(c<<2)>>2];J[((J[a+364>>2]<<2)+a|0)+348>>2]=b;c=J[a+372>>2];g=J[c+32>>2];f=(g<<2)+c|0;J[f>>2]=b;J[f+16>>2]=0;J[c+32>>2]=g+1;J[b+8>>2]=-1082130432;J[b+12>>2]=0;J[b>>2]=-2147483648;J[b+4>>2]=-2147483648;Ra(d+16|0,a,b);c=J[d+28>>2];J[b+24>>2]=J[d+24>>2];J[b+28>>2]=c;c=J[d+20>>2];J[b+16>>2]=J[d+16>>2];J[b+20>>2]=c;c=1;if(Xa(a)){break a}b=J[a+372>>2];c=J[b+32>>2]-1|0;J[b+32>>2]=c;b=J[b+(c<<2)>>2];c=J[a+364>>2];J[a+364>>2]=c+1;J[((c<<2)+a|0)+348>>2]=b;break b}c=J[b+4>>2];b=J[b>>2];k=Q(N[c+20>>2]-N[b+20>>2]);m=Q(-k);n=Q(N[c+24>>2]-N[b+24>>2]);p=Q(-n);o=Q(N[c+16>>2]-N[b+16>>2]);r=Q(-o);while(1){g:{J[d+8>>2]=0;J[d+12>>2]=0;J[d>>2]=0;J[d+4>>2]=0;J[d+(g<<2)>>2]=1065353216;e=N[d+4>>2];j=N[d>>2];h=Q(Q(o*e)+Q(j*m));q=N[d+8>>2];i=Q(Q(k*q)+Q(e*p));j=Q(Q(n*j)+Q(q*r));e=Q(Q(h*h)+Q(Q(i*i)+Q(j*j)));if(e>Q(0)){c=J[a+372>>2];f=J[c+32>>2];b=(f<<2)+c|0;J[b+16>>2]=0;l=J[a+364>>2]-1|0;J[a+364>>2]=l;s=b;b=J[((l<<2)+a|0)+348>>2];J[s>>2]=b;J[c+32>>2]=f+1;J[b+12>>2]=0;e=Q(Q(1)/Q(Y(e)));N[b+8>>2]=h*e;N[b+4>>2]=j*e;N[b>>2]=i*e;Ra(d+16|0,a,b);c=J[d+28>>2];J[b+24>>2]=J[d+24>>2];J[b+28>>2]=c;c=J[d+20>>2];J[b+16>>2]=J[d+16>>2];J[b+20>>2]=c;if(Xa(a)){break g}b=J[a+372>>2];c=J[b+32>>2]-1|0;J[b+32>>2]=c;b=J[b+(c<<2)>>2];J[((J[a+364>>2]<<2)+a|0)+348>>2]=b;c=J[a+372>>2];f=J[c+32>>2];l=(f<<2)+c|0;J[l>>2]=b;J[l+16>>2]=0;J[c+32>>2]=f+1;J[b+12>>2]=0;N[b+8>>2]=e*Q(-h);N[b+4>>2]=e*Q(-j);N[b>>2]=e*Q(-i);Ra(d+16|0,a,b);c=J[d+28>>2];J[b+24>>2]=J[d+24>>2];J[b+28>>2]=c;c=J[d+20>>2];J[b+16>>2]=J[d+16>>2];J[b+20>>2]=c;if(Xa(a)){break g}b=J[a+372>>2];c=J[b+32>>2]-1|0;J[b+32>>2]=c;b=J[b+(c<<2)>>2];c=J[a+364>>2];J[a+364>>2]=c+1;J[((c<<2)+a|0)+348>>2]=b}g=g+1|0;if((g|0)!=3){continue}break b}break}c=1;break a}c=J[b+4>>2];g=J[b>>2];e=N[g+16>>2];j=Q(N[c+16>>2]-e);f=J[b+8>>2];h=N[g+20>>2];i=Q(N[f+20>>2]-h);e=Q(N[f+16>>2]-e);k=Q(N[c+20>>2]-h);h=Q(Q(j*i)-Q(e*k));n=k;k=N[g+24>>2];m=Q(N[f+24>>2]-k);k=Q(N[c+24>>2]-k);i=Q(Q(n*m)-Q(i*k));j=Q(Q(k*e)-Q(m*j));e=Q(Q(h*h)+Q(Q(i*i)+Q(j*j)));if(!(e>Q(0))){break b}J[b+28>>2]=0;c=J[a+364>>2]-1|0;J[a+364>>2]=c;c=J[((c<<2)+a|0)+348>>2];J[b+32>>2]=4;J[b+12>>2]=c;J[c+12>>2]=0;e=Q(Q(1)/Q(Y(e)));N[c+8>>2]=h*e;N[c+4>>2]=j*e;N[c>>2]=i*e;Ra(d+16|0,a,c);b=J[d+28>>2];J[c+24>>2]=J[d+24>>2];J[c+28>>2]=b;b=J[d+20>>2];J[c+16>>2]=J[d+16>>2];J[c+20>>2]=b;c=1;if(Xa(a)){break a}b=J[a+372>>2];c=J[b+32>>2]-1|0;J[b+32>>2]=c;b=J[b+(c<<2)>>2];J[((J[a+364>>2]<<2)+a|0)+348>>2]=b;c=J[a+372>>2];g=J[c+32>>2];f=(g<<2)+c|0;J[f>>2]=b;J[f+16>>2]=0;J[c+32>>2]=g+1;J[b+12>>2]=0;N[b+8>>2]=e*Q(-h);N[b+4>>2]=e*Q(-j);N[b>>2]=e*Q(-i);Ra(d+16|0,a,b);c=J[d+28>>2];J[b+24>>2]=J[d+24>>2];J[b+28>>2]=c;c=J[d+20>>2];J[b+16>>2]=J[d+16>>2];J[b+20>>2]=c;c=1;if(Xa(a)){break a}b=J[a+372>>2];c=J[b+32>>2]-1|0;J[b+32>>2]=c;b=J[b+(c<<2)>>2];c=J[a+364>>2];J[a+364>>2]=c+1;J[((c<<2)+a|0)+348>>2]=b;break b}a=J[b>>2];g=J[b+12>>2];e=N[g+16>>2];j=Q(N[a+16>>2]-e);f=J[b+4>>2];h=N[g+20>>2];k=Q(N[f+20>>2]-h);b=J[b+8>>2];i=N[g+24>>2];m=Q(N[b+24>>2]-i);n=Q(N[a+20>>2]-h);p=Q(N[f+24>>2]-i);o=Q(N[b+16>>2]-e);i=Q(N[a+24>>2]-i);e=Q(N[f+16>>2]-e);h=Q(N[b+20>>2]-h);e=Q(Q(Q(Q(j*k)*m)+Q(Q(Q(Q(Q(n*p)*o)+Q(Q(i*e)*h))-Q(Q(p*j)*h))-Q(Q(e*n)*m)))-Q(Q(k*i)*o));c=1;if(e>Q(0)|e>2]-17>>>0<=1?J[d+4>>2]-17>>>0<2:F;while(1){Mb();q=w<<4;k=N[q+34024>>2];n=N[q+34016>>2];l=N[q+34020>>2];r=N[e+32>>2];s=N[e>>2];t=N[e+16>>2];p=N[e+36>>2];x=N[e+4>>2];y=N[e+20>>2];z=N[e+40>>2];m=N[e+8>>2];A=N[e+24>>2];u=q+(a+1264|0)|0;J[u+12>>2]=0;B=m;m=Q(-n);N[u+8>>2]=Q(Q(B*m)-Q(A*l))-Q(z*k);N[u+4>>2]=Q(Q(x*m)-Q(y*l))-Q(p*k);N[u>>2]=Q(Q(s*m)-Q(t*l))-Q(r*k);m=N[f+32>>2];r=N[f>>2];s=N[f+16>>2];t=N[f+36>>2];p=N[f+4>>2];x=N[f+20>>2];y=N[f+40>>2];z=N[f+8>>2];A=N[f+24>>2];q=q+(a+272|0)|0;J[q+12>>2]=0;N[q+8>>2]=Q(y*k)+Q(Q(z*n)+Q(l*A));N[q+4>>2]=Q(t*k)+Q(Q(p*n)+Q(l*x));N[q>>2]=Q(m*k)+Q(Q(r*n)+Q(l*s));w=w+1|0;if((w|0)!=42){continue}break}q=42;E=ua[J[J[c>>2]+84>>2]](c)|0;if((E|0)>0){u=a+3256|0;w=0;while(1){ua[J[J[c>>2]+88>>2]](c,w,a+3248|0);m=N[e+8>>2];r=N[e>>2];s=N[e+4>>2];t=N[e+24>>2];p=N[e+16>>2];x=N[e+20>>2];k=N[u>>2];l=N[a+3248>>2];n=N[a+3252>>2];N[u>>2]=Q(N[e+40>>2]*k)+Q(Q(N[e+32>>2]*l)+Q(n*N[e+36>>2]));J[a+3260>>2]=0;N[a+3252>>2]=Q(t*k)+Q(Q(p*l)+Q(n*x));N[a+3248>>2]=Q(m*k)+Q(Q(r*l)+Q(s*n));Mb();C=J[u+4>>2];o=q<<4;v=o+34024|0;J[v>>2]=J[u>>2];J[v+4>>2]=C;C=J[a+3252>>2];v=o+34016|0;J[v>>2]=J[a+3248>>2];J[v+4>>2]=C;r=N[e+40>>2];s=N[e+8>>2];t=N[e+24>>2];p=N[e+36>>2];x=N[e+4>>2];y=N[e+20>>2];l=N[e+32>>2];k=N[e>>2];z=N[e+16>>2];v=o+(a+1264|0)|0;J[v+12>>2]=0;n=N[a+3248>>2];m=Q(-n);D=Q(k*m);k=N[a+3252>>2];B=l;l=N[u>>2];N[v>>2]=Q(D-Q(z*k))-Q(B*l);N[v+4>>2]=Q(Q(x*m)-Q(y*k))-Q(p*l);N[v+8>>2]=Q(Q(s*m)-Q(t*k))-Q(r*l);m=N[f+32>>2];r=N[f>>2];s=N[f+16>>2];t=N[f+36>>2];p=N[f+4>>2];x=N[f+20>>2];y=N[f+40>>2];z=N[f+8>>2];A=N[f+24>>2];o=o+(a+272|0)|0;J[o+12>>2]=0;N[o+8>>2]=Q(y*l)+Q(Q(z*n)+Q(k*A));N[o+4>>2]=Q(t*l)+Q(Q(p*n)+Q(k*x));N[o>>2]=Q(m*l)+Q(Q(r*n)+Q(k*s));q=q+1|0;w=w+1|0;if((E|0)!=(w|0)){continue}break}}E=ua[J[J[d>>2]+84>>2]](d)|0;if((E|0)>0){u=a+3256|0;w=0;while(1){ua[J[J[d>>2]+88>>2]](d,w,a+3248|0);m=N[f+8>>2];r=N[f>>2];s=N[f+4>>2];t=N[f+24>>2];p=N[f+16>>2];x=N[f+20>>2];k=N[u>>2];l=N[a+3248>>2];n=N[a+3252>>2];N[u>>2]=Q(N[f+40>>2]*k)+Q(Q(N[f+32>>2]*l)+Q(n*N[f+36>>2]));J[a+3260>>2]=0;N[a+3252>>2]=Q(t*k)+Q(Q(p*l)+Q(n*x));N[a+3248>>2]=Q(m*k)+Q(Q(r*l)+Q(s*n));Mb();C=J[u+4>>2];o=q<<4;v=o+34024|0;J[v>>2]=J[u>>2];J[v+4>>2]=C;C=J[a+3252>>2];v=o+34016|0;J[v>>2]=J[a+3248>>2];J[v+4>>2]=C;r=N[e+40>>2];s=N[e+8>>2];t=N[e+24>>2];p=N[e+36>>2];x=N[e+4>>2];y=N[e+20>>2];l=N[e+32>>2];k=N[e>>2];z=N[e+16>>2];v=o+(a+1264|0)|0;J[v+12>>2]=0;n=N[a+3248>>2];m=Q(-n);D=Q(k*m);k=N[a+3252>>2];B=l;l=N[u>>2];N[v>>2]=Q(D-Q(z*k))-Q(B*l);N[v+4>>2]=Q(Q(x*m)-Q(y*k))-Q(p*l);N[v+8>>2]=Q(Q(s*m)-Q(t*k))-Q(r*l);m=N[f+32>>2];r=N[f>>2];s=N[f+16>>2];t=N[f+36>>2];p=N[f+4>>2];x=N[f+20>>2];y=N[f+40>>2];z=N[f+8>>2];A=N[f+24>>2];o=o+(a+272|0)|0;J[o+12>>2]=0;N[o+8>>2]=Q(y*l)+Q(Q(z*n)+Q(k*A));N[o+4>>2]=Q(t*l)+Q(Q(p*n)+Q(k*x));N[o>>2]=Q(m*l)+Q(Q(r*n)+Q(k*s));q=q+1|0;w=w+1|0;if((E|0)!=(w|0)){continue}break}}ua[J[J[c>>2]+76>>2]](c,a+1264|0,a+3248|0,q);ua[J[J[d>>2]+76>>2]](d,a+272|0,a+2256|0,q);a:{if((q|0)<=0){m=Q(0xde0b6b000000000);k=Q(0);l=Q(0);n=Q(0);x=Q(0);break a}w=0;m=Q(0xde0b6b000000000);x=Q(0);n=Q(0);l=Q(0);k=Q(0);while(1){Mb();u=w<<4;r=F?Q(0):N[u+34024>>2];s=N[u+34016>>2];t=N[u+34020>>2];b:{if(!(+Q(Q(r*r)+Q(Q(s*s)+Q(t*t)))>.01)){break b}o=u+(a+2256|0)|0;p=N[o+8>>2];y=N[o>>2];z=N[o+4>>2];o=u+(a+3248|0)|0;A=N[o+8>>2];D=N[o>>2];B=N[o+4>>2];p=Q(Q(r*(F?Q(0):Q(Q(Q(Q(p*N[f+40>>2])+Q(Q(y*N[f+32>>2])+Q(z*N[f+36>>2])))+N[f+56>>2])-Q(Q(Q(A*N[e+40>>2])+Q(Q(D*N[e+32>>2])+Q(B*N[e+36>>2])))+N[e+56>>2]))))+Q(Q(s*Q(Q(Q(Q(p*N[f+8>>2])+Q(Q(y*N[f>>2])+Q(z*N[f+4>>2])))+N[f+48>>2])-Q(Q(Q(A*N[e+8>>2])+Q(Q(D*N[e>>2])+Q(B*N[e+4>>2])))+N[e+48>>2])))+Q(t*Q(Q(Q(Q(p*N[f+24>>2])+Q(Q(y*N[f+16>>2])+Q(z*N[f+20>>2])))+N[f+52>>2])-Q(Q(Q(A*N[e+24>>2])+Q(Q(D*N[e+16>>2])+Q(B*N[e+20>>2])))+N[e+52>>2])))));if(!(p>2];k=s;l=t;n=r;m=p}w=w+1|0;if((w|0)!=(q|0)){continue}break}}Qb(c);Qb(d);q=0;if(!(m>2];p=N[e+56>>2];y=N[e+48>>2];d=J[e+12>>2];c=a- -64|0;J[c>>2]=J[e+8>>2];J[c+4>>2]=d;c=J[e+4>>2];J[a+56>>2]=J[e>>2];J[a+60>>2]=c;c=J[e+28>>2];J[a+80>>2]=J[e+24>>2];J[a+84>>2]=c;c=J[e+20>>2];J[a+72>>2]=J[e+16>>2];J[a+76>>2]=c;c=J[e+40>>2];d=J[e+44>>2];w=J[e+32>>2];e=J[e+36>>2];J[a+116>>2]=0;J[a+96>>2]=c;J[a+100>>2]=d;m=Q(m+Q(Q(r+s)+Q(.5)));N[a+112>>2]=p+Q(n*m);N[a+108>>2]=t+Q(l*m);J[a+88>>2]=w;J[a+92>>2]=e;N[a+104>>2]=y+Q(k*m);c=J[f+12>>2];J[a+128>>2]=J[f+8>>2];J[a+132>>2]=c;c=J[f+4>>2];J[a+120>>2]=J[f>>2];J[a+124>>2]=c;c=J[f+28>>2];J[a+144>>2]=J[f+24>>2];J[a+148>>2]=c;c=J[f+20>>2];J[a+136>>2]=J[f+16>>2];J[a+140>>2]=c;c=J[f+44>>2];J[a+160>>2]=J[f+40>>2];J[a+164>>2]=c;c=J[f+36>>2];J[a+152>>2]=J[f+32>>2];J[a+156>>2]=c;c=J[f+60>>2];J[a+176>>2]=J[f+56>>2];J[a+180>>2]=c;c=J[f+52>>2];J[a+168>>2]=J[f+48>>2];J[a+172>>2]=c;J[a+184>>2]=1566444395;H[a+52|0]=0;J[a+12>>2]=22904;J[b+16>>2]=0;N[b+12>>2]=-n;N[b+8>>2]=-l;N[b+4>>2]=-k;Za(b,a+56|0,a+12|0,j,0);b=K[a+52|0];if(b){r=N[a+36>>2];s=N[a+40>>2];t=N[a+32>>2];p=N[a+48>>2];J[h+12>>2]=0;m=Q(m-p);N[h+8>>2]=s-Q(n*m);N[h+4>>2]=r-Q(l*m);N[h>>2]=t-Q(k*m);c=J[a+44>>2];J[i+8>>2]=J[a+40>>2];J[i+12>>2]=c;c=J[a+36>>2];J[i>>2]=J[a+32>>2];J[i+4>>2]=c;N[g+12>>2]=x;N[g+8>>2]=n;N[g+4>>2]=l;N[g>>2]=k}q=(b|0)!=0}sa=a+4240|0;return q|0}function xe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;J[a+168>>2]=J[a+152>>2];Ce(b);c=J[a+56>>2];a:{if(d){J[b+56>>2]=c<<24|(c&65280)<<8|(c>>>8&65280|c>>>24);H[b+4|0]=K[a+7|0];H[b+5|0]=K[a+6|0];H[b+6|0]=K[a+5|0];H[b+7|0]=K[a+4|0];H[b+8|0]=K[a+11|0];H[b+9|0]=K[a+10|0];H[b+10|0]=K[a+9|0];H[b+11|0]=K[a+8|0];H[b+12|0]=K[a+15|0];H[b+13|0]=K[a+14|0];H[b+14|0]=K[a+13|0];H[b+15|0]=K[a+12|0];H[b+16|0]=K[a+19|0];H[b+17|0]=K[a+18|0];H[b+18|0]=K[a+17|0];H[b+19|0]=K[a+16|0];H[b+20|0]=K[a+23|0];H[b+21|0]=K[a+22|0];H[b+22|0]=K[a+21|0];H[b+23|0]=K[a+20|0];H[b+24|0]=K[a+27|0];H[b+25|0]=K[a+26|0];H[b+26|0]=K[a+25|0];H[b+27|0]=K[a+24|0];H[b+28|0]=K[a+31|0];H[b+29|0]=K[a+30|0];H[b+30|0]=K[a+29|0];H[b+31|0]=K[a+28|0];H[b+32|0]=K[a+35|0];H[b+33|0]=K[a+34|0];H[b+34|0]=K[a+33|0];H[b+35|0]=K[a+32|0];H[b+36|0]=K[a+39|0];H[b+37|0]=K[a+38|0];H[b+38|0]=K[a+37|0];H[b+39|0]=K[a+36|0];H[b+40|0]=K[a+43|0];H[b+41|0]=K[a+42|0];H[b+42|0]=K[a+41|0];H[b+43|0]=K[a+40|0];H[b+44|0]=K[a+47|0];H[b+45|0]=K[a+46|0];H[b+46|0]=K[a+45|0];H[b+47|0]=K[a+44|0];H[b+48|0]=K[a+51|0];H[b+49|0]=K[a+50|0];H[b+50|0]=K[a+49|0];H[b+51|0]=K[a+48|0];c=J[a+168>>2];g=c<<24|(c&65280)<<8|(c>>>8&65280|c>>>24);c=J[a+144>>2];c=c<<24|(c&65280)<<8|(c>>>8&65280|c>>>24);break a}J[b+56>>2]=c;c=J[a+16>>2];J[b+12>>2]=J[a+12>>2];J[b+16>>2]=c;c=J[a+8>>2];J[b+4>>2]=J[a+4>>2];J[b+8>>2]=c;c=J[a+32>>2];J[b+28>>2]=J[a+28>>2];J[b+32>>2]=c;c=J[a+24>>2];J[b+20>>2]=J[a+20>>2];J[b+24>>2]=c;c=J[a+48>>2];J[b+44>>2]=J[a+44>>2];J[b+48>>2]=c;c=J[a+40>>2];J[b+36>>2]=J[a+36>>2];J[b+40>>2]=c;g=J[a+168>>2];c=J[a+144>>2]}J[b+168>>2]=g;J[b+144>>2]=c;H[b+60|0]=K[a+60|0];i=b+172|0;j=J[a+56>>2];b:{if(K[a+60|0]){c=J[b+136>>2];if(!(c?!c|!K[b+140|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}J[b+136>>2]=i;H[b+140|0]=0;c:{if(!d){if((j|0)<=0){break c}h=J[a+136>>2];g=0;while(1){c=g<<4;f=c+i|0;c=c+h|0;I[f>>1]=L[c>>1];I[f+2>>1]=L[c+2>>1];I[f+4>>1]=L[c+4>>1];I[f+6>>1]=L[c+6>>1];I[f+8>>1]=L[c+8>>1];I[f+10>>1]=L[c+10>>1];J[f+12>>2]=J[c+12>>2];g=g+1|0;if((j|0)!=(g|0)){continue}break}break c}if((j|0)<=0){break c}h=J[a+136>>2];g=0;while(1){c=g<<4;e=c+i|0;f=c+h|0;c=L[f>>1];I[e>>1]=c<<8|c>>>8;c=L[f+2>>1];I[e+2>>1]=c<<8|c>>>8;c=L[f+4>>1];I[e+4>>1]=c<<8|c>>>8;c=L[f+6>>1];I[e+6>>1]=c<<8|c>>>8;c=L[f+8>>1];I[e+8>>1]=c<<8|c>>>8;c=L[f+10>>1];I[e+10>>1]=c<<8|c>>>8;c=J[f+12>>2];J[e+12>>2]=c<<24|(c&65280)<<8|(c>>>8&65280|c>>>24);g=g+1|0;if((j|0)!=(g|0)){continue}break}}h=b+128|0;g=j<<4;break b}c=J[b+96>>2];if(!(c?!c|!K[b+100|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}J[b+96>>2]=i;H[b+100|0]=0;J[b+92>>2]=j;h=b+88|0;J[h>>2]=j;d:{if(!d){c=i;if((j|0)<=0){break d}l=J[a+96>>2];g=0;while(1){k=g<<6;e=k+c|0;f=k+l|0;c=J[f+4>>2];J[e>>2]=J[f>>2];J[e+4>>2]=c;c=J[f+12>>2];J[e+8>>2]=J[f+8>>2];J[e+12>>2]=c;f=k+J[a+96>>2]|0;c=J[f+20>>2];e=k+J[b+96>>2]|0;J[e+16>>2]=J[f+16>>2];J[e+20>>2]=c;c=J[f+28>>2];J[e+24>>2]=J[f+24>>2];J[e+28>>2]=c;c=J[b+96>>2];e=k+c|0;l=J[a+96>>2];f=k+l|0;J[e+32>>2]=J[f+32>>2];J[e+36>>2]=J[f+36>>2];J[e+40>>2]=J[f+40>>2];g=g+1|0;if((j|0)!=(g|0)){continue}break}break d}c=i;if((j|0)<=0){break d}k=J[a+96>>2];while(1){f=l<<6;e=f+c|0;c=f+k|0;H[e|0]=K[c+3|0];H[e+1|0]=K[c+2|0];H[e+2|0]=K[c+1|0];H[e+3|0]=K[c|0];H[e+4|0]=K[c+7|0];H[e+5|0]=K[c+6|0];H[e+6|0]=K[c+5|0];H[e+7|0]=K[c+4|0];H[e+8|0]=K[c+11|0];H[e+9|0]=K[c+10|0];H[e+10|0]=K[c+9|0];H[e+11|0]=K[c+8|0];H[e+12|0]=K[c+15|0];H[e+13|0]=K[c+14|0];H[e+14|0]=K[c+13|0];H[e+15|0]=K[c+12|0];e=f+J[b+96>>2]|0;c=f+J[a+96>>2]|0;H[e+16|0]=K[c+19|0];H[e+17|0]=K[c+18|0];H[e+18|0]=K[c+17|0];H[e+19|0]=K[c+16|0];H[e+20|0]=K[c+23|0];H[e+21|0]=K[c+22|0];H[e+22|0]=K[c+21|0];H[e+23|0]=K[c+20|0];H[e+24|0]=K[c+27|0];H[e+25|0]=K[c+26|0];H[e+26|0]=K[c+25|0];H[e+27|0]=K[c+24|0];H[e+28|0]=K[c+31|0];H[e+29|0]=K[c+30|0];H[e+30|0]=K[c+29|0];H[e+31|0]=K[c+28|0];c=J[b+96>>2];e=f+c|0;k=J[a+96>>2];f=f+k|0;g=J[f+32>>2];J[e+32>>2]=g<<24|(g&65280)<<8|(g>>>8&65280|g>>>24);g=J[f+36>>2];J[e+36>>2]=g<<24|(g&65280)<<8|(g>>>8&65280|g>>>24);f=J[f+40>>2];J[e+40>>2]=f<<24|(f&65280)<<8|(f>>>8&65280|f>>>24);l=l+1|0;if((j|0)!=(l|0)){continue}break}}g=j<<6;if(!K[b+100|0]){break b}if(c){J[8457]=J[8457]+1;ua[J[8259]](c)}}J[h>>2]=0;J[h+4>>2]=0;H[h+5|0]=0;H[h+6|0]=0;H[h+7|0]=0;H[h+8|0]=0;H[h+9|0]=0;H[h+10|0]=0;H[h+11|0]=0;H[h+12|0]=0;h=g+i|0;i=J[a+168>>2];c=J[b+160>>2];if(!(c?!c|!K[b+164|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}J[b+160>>2]=h;H[b+164|0]=0;J[b+156>>2]=i;J[b+152>>2]=i;i=J[a+168>>2];e:{if(!d){if((i|0)<=0){break e}i=J[a+160>>2];d=0;while(1){c=d<<5;f=c+h|0;c=c+i|0;I[f>>1]=L[c>>1];I[f+2>>1]=L[c+2>>1];I[f+4>>1]=L[c+4>>1];I[f+6>>1]=L[c+6>>1];I[f+8>>1]=L[c+8>>1];I[f+10>>1]=L[c+10>>1];J[f+12>>2]=J[c+12>>2];c=J[c+16>>2];J[f+28>>2]=0;J[f+20>>2]=0;J[f+24>>2]=0;J[f+16>>2]=c;d=d+1|0;if((d|0)>2]){continue}break}break e}if((i|0)<=0){break e}c=J[a+160>>2];d=0;while(1){a=d<<5;e=a+h|0;f=a+c|0;a=L[f>>1];I[e>>1]=a<<8|a>>>8;a=L[f+2>>1];I[e+2>>1]=a<<8|a>>>8;a=L[f+4>>1];I[e+4>>1]=a<<8|a>>>8;a=L[f+6>>1];I[e+6>>1]=a<<8|a>>>8;a=L[f+8>>1];I[e+8>>1]=a<<8|a>>>8;a=L[f+10>>1];I[e+10>>1]=a<<8|a>>>8;a=J[f+12>>2];J[e+12>>2]=a<<24|(a&65280)<<8|(a>>>8&65280|a>>>24);a=J[f+16>>2];J[e+16>>2]=a<<24|(a&65280)<<8|(a>>>8&65280|a>>>24);d=d+1|0;if((i|0)!=(d|0)){continue}break}}if(h?K[b+164|0]:0){J[8457]=J[8457]+1;ua[J[8259]](h)}J[b>>2]=0;H[b+157|0]=0;H[b+158|0]=0;H[b+159|0]=0;H[b+160|0]=0;H[b+161|0]=0;H[b+162|0]=0;H[b+163|0]=0;H[b+164|0]=0;J[b+152>>2]=0;J[b+156>>2]=0;return 1}function ff(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=sa-96|0;sa=f;H[f+92|0]=1;J[f+60>>2]=0;J[f+64>>2]=0;H[f+52|0]=1;J[f+48>>2]=0;H[f+72|0]=1;J[f+40>>2]=0;J[f+44>>2]=0;J[f+68>>2]=0;J[f+88>>2]=0;J[f+80>>2]=0;J[f+84>>2]=0;J[f+28>>2]=0;H[f+32|0]=1;J[f+20>>2]=0;J[f+24>>2]=0;m=J[a+8>>2];a:{if((m|0)<=0){break a}while(1){g=J[J[J[a+16>>2]+(r<<2)>>2]+192>>2];J[f+12>>2]=g;c=g+(g<<15^-1)|0;c=P(c>>>10^c,9);c=c>>>6^c;c=(c<<11^-1)+c|0;c=J[f+64>>2]-1&(c>>>16^c);b:{c:{if(c>>>0>=M[f+20>>2]){break c}c=J[J[f+28>>2]+(c<<2)>>2];if((c|0)==-1){break c}d=J[f+48>>2];e=J[f+88>>2];while(1){if((g|0)!=J[e+(c<<3)>>2]){c=J[d+(c<<2)>>2];if((c|0)!=-1){continue}break c}break}if(J[f+68>>2]){break b}}J[f+4>>2]=g;g=0;d:{e:{d=f+16|0;m=J[d+48>>2];c=J[f+4>>2];e=(c<<15^-1)+c|0;e=P(e>>>10^e,9);e=e>>>6^e;e=(e<<11^-1)+e|0;o=m-1&(e>>>16^e);f:{if(o>>>0>=M[d+4>>2]){break f}e=J[J[d+12>>2]+(o<<2)>>2];if((e|0)==-1){break f}j=J[d+32>>2];h=J[d+72>>2];while(1){if((c|0)==J[h+(e<<3)>>2]){break e}e=J[j+(e<<2)>>2];if((e|0)!=-1){continue}break}}s=J[d+44>>2];c=s;g:{if((m|0)!=(c|0)){break g}c=m;i=c?c<<1:1;if((c|0)>=(i|0)){break g}h:{if(!i){j=0;c=m;break h}J[8456]=J[8456]+1;j=ua[J[8258]](i<<2,16)|0;c=J[d+44>>2]}i:{if((c|0)<=0){break i}h=0;e=0;if(c>>>0>=4){n=c&-4;while(1){l=e<<2;J[l+j>>2]=J[l+J[d+52>>2]>>2];k=l|4;J[k+j>>2]=J[k+J[d+52>>2]>>2];k=l|8;J[k+j>>2]=J[k+J[d+52>>2]>>2];l=l|12;J[l+j>>2]=J[l+J[d+52>>2]>>2];e=e+4|0;g=g+4|0;if((n|0)!=(g|0)){continue}break}}g=c&3;if(!g){break i}while(1){l=e<<2;J[l+j>>2]=J[l+J[d+52>>2]>>2];e=e+1|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}g=J[d+52>>2];if(!(!g|!K[d+56|0])){if(g){J[8457]=J[8457]+1;ua[J[8259]](g)}c=J[d+44>>2]}J[d+52>>2]=j;H[d+56|0]=1;J[d+48>>2]=i}J[J[d+52>>2]+(c<<2)>>2]=J[f+12>>2];J[d+44>>2]=c+1;c=J[d- -64>>2];j:{if((c|0)!=J[d+68>>2]){break j}l=c?c<<1:1;if((l|0)<=(c|0)){break j}k:{if(!l){j=0;break k}J[8456]=J[8456]+1;j=ua[J[8258]](l<<3,16)|0;c=J[d+64>>2]}l:{if((c|0)<=0){break l}h=0;e=0;if(c>>>0>=4){n=c&-4;g=0;while(1){i=e<<3;k=i+j|0;p=i+J[d+72>>2]|0;q=J[p+4>>2];J[k>>2]=J[p>>2];J[k+4>>2]=q;k=i|8;p=k+j|0;k=k+J[d+72>>2]|0;q=J[k+4>>2];J[p>>2]=J[k>>2];J[p+4>>2]=q;k=i|16;p=k+j|0;k=k+J[d+72>>2]|0;q=J[k+4>>2];J[p>>2]=J[k>>2];J[p+4>>2]=q;i=i|24;k=i+j|0;i=i+J[d+72>>2]|0;p=J[i+4>>2];J[k>>2]=J[i>>2];J[k+4>>2]=p;e=e+4|0;g=g+4|0;if((n|0)!=(g|0)){continue}break}}c=c&3;if(!c){break l}while(1){g=e<<3;i=g+j|0;g=g+J[d+72>>2]|0;n=J[g+4>>2];J[i>>2]=J[g>>2];J[i+4>>2]=n;e=e+1|0;h=h+1|0;if((c|0)!=(h|0)){continue}break}}c=J[d+72>>2];if(!(c?!c|!K[d+76|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}J[d+72>>2]=j;H[d+76|0]=1;J[d+68>>2]=l;c=J[d+64>>2]}g=J[f+8>>2];c=J[d+72>>2]+(c<<3)|0;J[c>>2]=J[f+4>>2];J[c+4>>2]=g;J[d+64>>2]=J[d+64>>2]+1;if((m|0)>2]){e=0;j=0;l=0;o=0;m=J[d+4>>2];h=J[d+48>>2];m:{if((m|0)>=(h|0)){break m}n:{if((h|0)<=J[d+8>>2]){e=J[d+12>>2];break n}if(h){J[8456]=J[8456]+1;e=ua[J[8258]](h<<2,16)|0;c=J[d+4>>2]}else{c=m}g=J[d+12>>2];o:{p:{if((c|0)>0){if(c>>>0>=4){n=c&-4;while(1){i=j<<2;J[i+e>>2]=J[g+i>>2];k=i|4;J[k+e>>2]=J[g+k>>2];k=i|8;J[k+e>>2]=J[g+k>>2];i=i|12;J[i+e>>2]=J[g+i>>2];j=j+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}c=c&3;if(!c){break p}while(1){i=j<<2;J[i+e>>2]=J[g+i>>2];j=j+1|0;o=o+1|0;if((c|0)!=(o|0)){continue}break}break p}if(g){break p}break o}if(g?K[d+16|0]:0){J[8457]=J[8457]+1;ua[J[8259]](g)}}J[d+12>>2]=e;H[d+16|0]=1;J[d+8>>2]=h}c=m<<2;n=h<<2;Fa(c+e|0,0,n-c|0);J[d+4>>2]=h;g=J[d+24>>2];if((g|0)<(h|0)){q:{if((h|0)<=J[d+28>>2]){e=J[d+32>>2];break q}r:{if(!h){e=0;c=g;break r}J[8456]=J[8456]+1;e=ua[J[8258]](n,16)|0;c=J[d+24>>2]}i=J[d+32>>2];s:{if((c|0)>0){o=0;j=0;if(c>>>0>=4){p=c&-4;l=0;while(1){k=j<<2;J[k+e>>2]=J[i+k>>2];q=k|4;J[q+e>>2]=J[i+q>>2];q=k|8;J[q+e>>2]=J[i+q>>2];k=k|12;J[k+e>>2]=J[i+k>>2];j=j+4|0;l=l+4|0;if((p|0)!=(l|0)){continue}break}}c=c&3;if(!c){break s}while(1){l=j<<2;J[l+e>>2]=J[i+l>>2];j=j+1|0;o=o+1|0;if((c|0)!=(o|0)){continue}break}break s}if(i){break s}J[d+32>>2]=e;J[d+28>>2]=h;H[d+36|0]=1;break q}if(i?K[d+36|0]:0){J[8457]=J[8457]+1;ua[J[8259]](i)}J[d+32>>2]=e;H[d+36|0]=1;J[d+28>>2]=h}c=g<<2;Fa(c+e|0,0,n-c|0)}J[d+24>>2]=h;if((h|0)>0){Fa(J[d+12>>2],255,n);Fa(J[d+32>>2],255,n)}if((m|0)<=0){break m}c=J[d+32>>2];g=J[d+72>>2];e=J[d+12>>2];j=0;while(1){h=J[g+(j<<3)>>2];h=(h<<15^-1)+h|0;h=P(h>>>10^h,9);h=h>>>6^h;h=(h<<11^-1)+h|0;h=e+((J[d+48>>2]-1&(h>>>16^h))<<2)|0;J[c+(j<<2)>>2]=J[h>>2];J[h>>2]=j;j=j+1|0;if((m|0)!=(j|0)){continue}break}}c=J[f+4>>2];c=(c<<15^-1)+c|0;c=P(c>>>10^c,9);c=c>>>6^c;c=(c<<11^-1)+c|0;o=J[d+48>>2]-1&(c>>>16^c)}c=J[d+12>>2]+(o<<2)|0;J[J[d+32>>2]+(s<<2)>>2]=J[c>>2];J[c>>2]=s;break d}J[J[d+52>>2]+(e<<2)>>2]=J[f+12>>2]}c=J[f+12>>2];ua[J[J[c>>2]+60>>2]](c,b);m=J[a+8>>2]}r=r+1|0;if((r|0)<(m|0)){continue}break}if((m|0)<=0){break a}c=0;while(1){g=J[J[a+16>>2]+(c<<2)>>2];d=J[g+252>>2];if(!((d|0)!=64&(d|0)!=1)){ua[J[J[g>>2]+24>>2]](g,b);m=J[a+8>>2]}c=c+1|0;if((c|0)<(m|0)){continue}break}}a=J[f+88>>2];if(!(a?!a|!K[f+92|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](a)}J[f+88>>2]=0;H[f+92|0]=1;J[f+80>>2]=0;J[f+84>>2]=0;a=J[f+68>>2];if(!(a?!a|!K[f+72|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](a)}J[f+68>>2]=0;H[f+72|0]=1;J[f+60>>2]=0;J[f+64>>2]=0;a=J[f+48>>2];if(!(a?!a|!K[f+52|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](a)}J[f+48>>2]=0;H[f+52|0]=1;J[f+40>>2]=0;J[f+44>>2]=0;a=J[f+28>>2];if(!(a?!a|!K[f+32|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](a)}sa=f+96|0}function Th(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=Q(0),g=0,h=Q(0),i=0,j=Q(0),k=Q(0),l=0,m=Q(0),n=Q(0),o=0,p=0;c=J[d+72>>2];a:{if(!(c&4)){break a}b=J[a+28>>2];if((b|0)<=0){break a}l=J[a+76>>2];i=J[a+36>>2];if(c&16){c=0;while(1){e=i+P(c,152)|0;g=J[e+132>>2];N[g+132>>2]=N[e+100>>2];e=l+P(J[e+140>>2],152)|0;N[g+136>>2]=N[e+100>>2];N[g+140>>2]=N[e+252>>2];c=c+1|0;if((b|0)!=(c|0)){continue}break}break a}c=0;if((b|0)!=1){p=b&-2;while(1){g=i+P(c,152)|0;o=J[g+132>>2];N[o+132>>2]=N[g+100>>2];N[o+136>>2]=N[(l+P(J[g+140>>2],152)|0)+100>>2];g=i+P(c|1,152)|0;o=J[g+132>>2];N[o+132>>2]=N[g+100>>2];N[o+136>>2]=N[(l+P(J[g+140>>2],152)|0)+100>>2];c=c+2|0;e=e+2|0;if((p|0)!=(e|0)){continue}break}}if(!(b&1)){break a}b=i+P(c,152)|0;c=J[b+132>>2];N[c+132>>2]=N[b+100>>2];N[c+136>>2]=N[(l+P(J[b+140>>2],152)|0)+100>>2]}p=J[a+48>>2];if((p|0)>0){o=J[a+56>>2];l=0;while(1){c=o+P(l,152)|0;e=J[c+132>>2];b=J[e+44>>2];if(b){i=J[e+28>>2];j=N[i+416>>2];k=N[c+24>>2];m=N[i+412>>2];n=N[c+20>>2];f=N[c+100>>2];h=Q(Q(1)/N[d+12>>2]);N[b>>2]=N[b>>2]+Q(Q(Q(N[c+16>>2]*f)*N[i+408>>2])*h);N[b+4>>2]=Q(Q(m*Q(f*n))*h)+N[b+4>>2];N[b+8>>2]=Q(Q(j*Q(f*k))*h)+N[b+8>>2];g=J[e+32>>2];j=N[g+416>>2];k=N[c+56>>2];m=N[g+412>>2];n=N[c+52>>2];f=N[c+100>>2];h=Q(Q(1)/N[d+12>>2]);N[b+32>>2]=N[b+32>>2]+Q(Q(Q(N[c+48>>2]*f)*N[g+408>>2])*h);N[b+36>>2]=Q(Q(m*Q(f*n))*h)+N[b+36>>2];N[b+40>>2]=Q(Q(j*Q(f*k))*h)+N[b+40>>2];j=N[i+612>>2];k=N[c+8>>2];m=N[i+608>>2];n=N[c+4>>2];f=N[c+100>>2];h=Q(Q(1)/N[d+12>>2]);N[b+16>>2]=N[b+16>>2]+Q(Q(Q(N[c>>2]*N[i+604>>2])*f)*h);N[b+20>>2]=Q(Q(f*Q(n*m))*h)+N[b+20>>2];N[b+24>>2]=Q(Q(f*Q(k*j))*h)+N[b+24>>2];j=N[g+612>>2];k=N[c+40>>2];m=N[g+608>>2];n=N[c+36>>2];f=N[c+100>>2];h=Q(Q(1)/N[d+12>>2]);N[b+48>>2]=N[b+48>>2]+Q(Q(Q(N[c+32>>2]*N[g+604>>2])*f)*h);N[b+52>>2]=Q(Q(f*Q(n*m))*h)+N[b+52>>2];N[b+56>>2]=Q(Q(f*Q(k*j))*h)+N[b+56>>2]}f=N[c+100>>2];N[e+36>>2]=f;if(N[e+16>>2]<=Q(R(f))){H[e+20|0]=0}l=l+1|0;if((p|0)!=(l|0)){continue}break}}l=J[a+8>>2];if((l|0)>0){e=J[a+16>>2];g=0;while(1){i=P(g,244);b=i+e|0;c=J[b+240>>2];if(c){b:{if(J[d+52>>2]){m=N[d+12>>2];f=N[d+60>>2];c=sa-80|0;sa=c;c:{if(!J[b+240>>2]){break c}N[b+176>>2]=N[b+64>>2]+N[b+176>>2];N[b+192>>2]=N[b+80>>2]+N[b+192>>2];N[b+180>>2]=N[b+68>>2]+N[b+180>>2];N[b+184>>2]=N[b+72>>2]+N[b+184>>2];N[b+196>>2]=N[b+84>>2]+N[b+196>>2];N[b+200>>2]=N[b+88>>2]+N[b+200>>2];k=N[b+160>>2];d:{if(!(!(N[b+144>>2]!=Q(0)|N[b+148>>2]!=Q(0))&N[b+152>>2]==Q(0))){h=N[b+168>>2];j=N[b+164>>2];break d}h=N[b+168>>2];j=N[b+164>>2];if(k!=Q(0)|j!=Q(0)){break d}if(h==Q(0)){break c}}J[c+12>>2]=0;N[c+8>>2]=h*f;N[c+4>>2]=j*f;N[c>>2]=k*f;kb(b,b+144|0,c,m,c+16|0);e=J[c+28>>2];J[b+8>>2]=J[c+24>>2];J[b+12>>2]=e;e=J[c+20>>2];J[b>>2]=J[c+16>>2];J[b+4>>2]=e;e=J[c+44>>2];J[b+24>>2]=J[c+40>>2];J[b+28>>2]=e;e=J[c+36>>2];J[b+16>>2]=J[c+32>>2];J[b+20>>2]=e;e=J[c+52>>2];J[b+32>>2]=J[c+48>>2];J[b+36>>2]=e;e=J[c+60>>2];J[b+40>>2]=J[c+56>>2];J[b+44>>2]=e;e=J[c+68>>2];J[b+48>>2]=J[c+64>>2];J[b+52>>2]=e;e=J[c+76>>2];J[b+56>>2]=J[c+72>>2];J[b+60>>2]=e}sa=c+80|0;e=J[a+16>>2];b=i+e|0;f=N[b+176>>2];c=J[b+240>>2];break b}f=Q(N[b+64>>2]+N[b+176>>2]);N[b+176>>2]=f;N[b+192>>2]=N[b+80>>2]+N[b+192>>2];N[b+180>>2]=N[b+68>>2]+N[b+180>>2];N[b+184>>2]=N[b+72>>2]+N[b+184>>2];N[b+196>>2]=N[b+84>>2]+N[b+196>>2];N[b+200>>2]=N[b+88>>2]+N[b+200>>2]}b=e+i|0;h=N[b+212>>2];j=N[b+180>>2];k=N[b+216>>2];m=N[b+184>>2];n=N[b+208>>2];J[c+384>>2]=0;N[c+372>>2]=f+n;J[c+304>>2]=J[c+304>>2]+1;N[c+380>>2]=m+k;N[c+376>>2]=j+h;b=i+J[a+16>>2]|0;f=N[b+228>>2];h=N[b+196>>2];j=N[b+232>>2];k=N[b+200>>2];m=N[b+224>>2];n=N[b+192>>2];b=J[b+240>>2];J[b+400>>2]=0;N[b+388>>2]=n+m;N[b+396>>2]=k+j;N[b+392>>2]=h+f;J[b+304>>2]=J[b+304>>2]+1;if(J[d+52>>2]){c=i+J[a+16>>2]|0;b=J[c+240>>2];J[b+304>>2]=J[b+304>>2]+1;e=J[c+12>>2];J[b+12>>2]=J[c+8>>2];J[b+16>>2]=e;e=J[c+4>>2];J[b+4>>2]=J[c>>2];J[b+8>>2]=e;e=J[c+28>>2];J[b+28>>2]=J[c+24>>2];J[b+32>>2]=e;e=J[c+20>>2];J[b+20>>2]=J[c+16>>2];J[b+24>>2]=e;e=J[c+36>>2];J[b+36>>2]=J[c+32>>2];J[b+40>>2]=e;e=J[c+44>>2];J[b+44>>2]=J[c+40>>2];J[b+48>>2]=e;e=J[c+60>>2];J[b+60>>2]=J[c+56>>2];J[b+64>>2]=e;e=J[c+52>>2];J[b+52>>2]=J[c+48>>2];J[b+56>>2]=e}e=J[a+16>>2];J[J[(i+e|0)+240>>2]+212>>2]=-1;l=J[a+8>>2]}g=g+1|0;if((l|0)>(g|0)){continue}break}}if((J[a+28>>2]&J[a+32>>2])<0){b=J[a+36>>2];if(!(b?!b|!K[a+40|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}H[a+40|0]=1;J[a+32>>2]=0;J[a+36>>2]=0}J[a+28>>2]=0;if((J[a+48>>2]&J[a+52>>2])<0){b=J[a+56>>2];if(!(b?!b|!K[a+60|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}H[a+60|0]=1;J[a+52>>2]=0;J[a+56>>2]=0}J[a+48>>2]=0;if((J[a+68>>2]&J[a+72>>2])<0){b=J[a+76>>2];if(!(b?!b|!K[a+80|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}H[a+80|0]=1;J[a+72>>2]=0;J[a+76>>2]=0}J[a+68>>2]=0;if((J[a+88>>2]&J[a+92>>2])<0){b=J[a+96>>2];if(!(b?!b|!K[a+100|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}H[a+100|0]=1;J[a+92>>2]=0;J[a+96>>2]=0}J[a+88>>2]=0;if((J[a+8>>2]&J[a+12>>2])<0){b=J[a+16>>2];if(!(b?!b|!K[a+20|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}H[a+20|0]=1;J[a+12>>2]=0;J[a+16>>2]=0}J[a+8>>2]=0;return Q(Q(0))}function Wh(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=Q(0),l=0,m=0,n=0,o=Q(0),p=Q(0),q=0,r=0;a:{if(!(H[i+72|0]&1)){break a}j=J[a+68>>2];m=J[a+28>>2];l=J[a+48>>2];if((l|0)>0){c=P(J[a+232>>2],1664525)+1013904223|0;b:{if((l|0)==1){break b}e=J[a+136>>2];d=J[e+4>>2];c=P(c,1664525)+1013904223|0;f=c^c>>>16;f=f>>>8^f;f=f>>>4^f;f=f>>>2^f;f=e+(((f>>>1^f)&1)<<2)|0;J[e+4>>2]=J[f>>2];J[f>>2]=d;if((l|0)==2){break b}d=J[e+8>>2];c=P(c,1664525)+1013904223|0;f=c^c>>>16;f=f>>>8^f;f=f>>>4^f;f=e+(((f>>>2^f)>>>0)%3<<2)|0;J[e+8>>2]=J[f>>2];J[f>>2]=d;if((l|0)==3){break b}d=4;f=J[e+12>>2];c=P(c,1664525)+1013904223|0;n=c^c>>>16;n=n>>>8^n;n=n>>>4^n;n=e+(((n>>>2^n)&3)<<2)|0;J[e+12>>2]=J[n>>2];J[n>>2]=f;if((l|0)==4){break b}while(1){f=e+(d<<2)|0;r=J[f>>2];q=f;c=P(c,1664525)+1013904223|0;f=c;c:{if(d>>>0>65535){break c}n=c>>>16^c;f=n;if(d>>>0>255){break c}n=n^n>>>8;f=n;if(d>>>0>15){break c}f=n^n>>>4}d=d+1|0;f=((f>>>0)%(d>>>0)<<2)+e|0;J[q>>2]=J[f>>2];J[f>>2]=r;if((d|0)!=(l|0)){continue}break}}J[a+232>>2]=c}if(J[i+20>>2]<=(b|0)){break a}if((m|0)>0){c=P(J[a+232>>2],1664525)+1013904223|0;d:{if((m|0)==1){break d}e=J[a+116>>2];d=J[e+4>>2];c=P(c,1664525)+1013904223|0;f=c^c>>>16;f=f>>>8^f;f=f>>>4^f;f=f>>>2^f;f=e+(((f>>>1^f)&1)<<2)|0;J[e+4>>2]=J[f>>2];J[f>>2]=d;if((m|0)==2){break d}d=J[e+8>>2];c=P(c,1664525)+1013904223|0;f=c^c>>>16;f=f>>>8^f;f=f>>>4^f;f=e+(((f>>>2^f)>>>0)%3<<2)|0;J[e+8>>2]=J[f>>2];J[f>>2]=d;if((m|0)==3){break d}d=4;f=J[e+12>>2];c=P(c,1664525)+1013904223|0;l=c^c>>>16;l=l>>>8^l;l=l>>>4^l;l=e+(((l>>>2^l)&3)<<2)|0;J[e+12>>2]=J[l>>2];J[l>>2]=f;if((m|0)==4){break d}while(1){f=e+(d<<2)|0;n=J[f>>2];q=f;c=P(c,1664525)+1013904223|0;f=c;e:{if(d>>>0>65535){break e}l=c>>>16^c;f=l;if(d>>>0>255){break e}l=l^l>>>8;f=l;if(d>>>0>15){break e}f=l^l>>>4}d=d+1|0;f=((f>>>0)%(d>>>0)<<2)+e|0;J[q>>2]=J[f>>2];J[f>>2]=n;if((d|0)!=(m|0)){continue}break}}J[a+232>>2]=c}if((j|0)<=0){break a}c=P(J[a+232>>2],1664525)+1013904223|0;f:{if((j|0)==1){break f}e=J[a+156>>2];d=J[e+4>>2];c=P(c,1664525)+1013904223|0;f=c^c>>>16;f=f>>>8^f;f=f>>>4^f;f=f>>>2^f;f=e+(((f>>>1^f)&1)<<2)|0;J[e+4>>2]=J[f>>2];J[f>>2]=d;if((j|0)==2){break f}d=J[e+8>>2];c=P(c,1664525)+1013904223|0;f=c^c>>>16;f=f>>>8^f;f=f>>>4^f;f=e+(((f>>>2^f)>>>0)%3<<2)|0;J[e+8>>2]=J[f>>2];J[f>>2]=d;if((j|0)==3){break f}d=4;f=J[e+12>>2];c=P(c,1664525)+1013904223|0;m=c^c>>>16;m=m>>>8^m;m=m>>>4^m;m=e+(((m>>>2^m)&3)<<2)|0;J[e+12>>2]=J[m>>2];J[m>>2]=f;if((j|0)==4){break f}while(1){f=e+(d<<2)|0;l=J[f>>2];n=f;c=P(c,1664525)+1013904223|0;f=c;g:{if(d>>>0>65535){break g}m=c>>>16^c;f=m;if(d>>>0>255){break g}m=m^m>>>8;f=m;if(d>>>0>15){break g}f=m^m>>>4}d=d+1|0;f=((f>>>0)%(d>>>0)<<2)+e|0;J[n>>2]=J[f>>2];J[f>>2]=l;if((d|0)!=(j|0)){continue}break}}J[a+232>>2]=c}e=J[a+48>>2];if((e|0)>0){d=0;while(1){c=J[a+56>>2]+P(J[J[a+136>>2]+(d<<2)>>2],152)|0;if(J[c+136>>2]>(b|0)){e=J[a+16>>2];k=Q(ua[J[a+212>>2]](e+P(J[c+144>>2],244)|0,e+P(J[c+148>>2],244)|0,c));p=Q(Q(k*k)+p);e=J[a+48>>2]}d=d+1|0;if((e|0)>(d|0)){continue}break}}h:{if(J[i+20>>2]<=(b|0)){break h}if((h|0)>0){d=0;while(1){b=(d<<2)+g|0;c=J[b>>2];if(K[c+20|0]){c=db(a,J[c+28>>2],N[i+12>>2]);e=db(a,J[J[b>>2]+32>>2],N[i+12>>2]);b=J[b>>2];f=P(c,244);c=J[a+16>>2];ua[J[J[b>>2]+24>>2]](b,f+c|0,c+P(e,244)|0,N[i+12>>2])}d=d+1|0;if((h|0)!=(d|0)){continue}break}}e=J[a+28>>2];b=J[i+72>>2];i:{if(b&512){if((e|0)<=0){break i}d=b>>>4&1;c=0;while(1){f=J[a+16>>2];b=J[a+36>>2]+P(J[J[a+116>>2]+(c<<2)>>2],152)|0;k=Q(ua[J[a+216>>2]](f+P(J[b+144>>2],244)|0,f+P(J[b+148>>2],244)|0,b));p=Q(Q(k*k)+p);k=N[b+100>>2];f=k>Q(0);j:{if(!f){break j}g=c<>2]+P(J[g+J[a+156>>2]>>2],152)|0;o=N[b+104>>2];N[b+124>>2]=k*o;N[b+120>>2]=k*Q(-o);h=J[a+16>>2];o=Q(ua[J[a+212>>2]](h+P(J[b+144>>2],244)|0,h+P(J[b+148>>2],244)|0,b));p=Q(Q(o*o)+p);if(!f|!(J[i+72>>2]&16)){break j}b=J[a+76>>2]+P(J[(g+J[a+156>>2]|0)+4>>2],152)|0;o=N[b+104>>2];N[b+124>>2]=k*o;N[b+120>>2]=k*Q(-o);f=J[a+16>>2];k=Q(ua[J[a+212>>2]](f+P(J[b+144>>2],244)|0,f+P(J[b+148>>2],244)|0,b));p=Q(Q(k*k)+p)}c=c+1|0;if((e|0)!=(c|0)){continue}break}break i}if((e|0)>0){d=0;while(1){c=J[a+16>>2];b=J[a+36>>2]+P(J[J[a+116>>2]+(d<<2)>>2],152)|0;k=Q(ua[J[a+216>>2]](c+P(J[b+144>>2],244)|0,c+P(J[b+148>>2],244)|0,b));p=Q(Q(k*k)+p);d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=J[a+68>>2];if((d|0)<=0){break i}c=0;while(1){b=J[a+76>>2]+P(J[J[a+156>>2]+(c<<2)>>2],152)|0;k=N[(J[a+36>>2]+P(J[b+140>>2],152)|0)+100>>2];if(k>Q(0)){o=N[b+104>>2];N[b+124>>2]=k*o;N[b+120>>2]=k*Q(-o);e=J[a+16>>2];k=Q(ua[J[a+212>>2]](e+P(J[b+144>>2],244)|0,e+P(J[b+148>>2],244)|0,b));p=Q(Q(k*k)+p)}c=c+1|0;if((d|0)!=(c|0)){continue}break}}d=J[a+88>>2];if((d|0)<=0){break h}c=0;while(1){b=J[a+96>>2]+P(c,152)|0;k=N[(J[a+36>>2]+P(J[b+140>>2],152)|0)+100>>2];if(k>Q(0)){o=k;k=N[b+104>>2];o=Q(o*k);k=k>2]=k;N[b+120>>2]=-k;e=J[a+16>>2];k=Q(ua[J[a+212>>2]](e+P(J[b+144>>2],244)|0,e+P(J[b+148>>2],244)|0,b));p=Q(Q(k*k)+p)}c=c+1|0;if((d|0)!=(c|0)){continue}break}}return Q(p)}function Ie(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=0,q=Q(0),r=0,s=Q(0),t=Q(0),u=Q(0),v=0,w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=0,H=Q(0),I=Q(0),K=Q(0),L=Q(0);d=sa-144|0;sa=d;J[d+108>>2]=0;f=N[b+80>>2];g=N[b+96>>2];w=N[b+120>>2];n=N[b+56>>2];E=N[b+112>>2];y=N[b+116>>2];H=N[b+52>>2];j=N[b+68>>2];k=N[b+84>>2];q=N[b+100>>2];h=N[b+20>>2];s=N[b+36>>2];o=N[b+72>>2];m=N[b+88>>2];t=N[b+24>>2];i=N[b+104>>2];C=N[b+40>>2];l=N[b+64>>2];D=N[b+32>>2];x=N[b>>2];z=N[b+16>>2];I=N[b+48>>2];A=N[b+4>>2];u=N[b+8>>2];J[d+104>>2]=0;J[d+88>>2]=0;J[d+72>>2]=0;N[d+84>>2]=Q(i*C)+Q(Q(o*u)+Q(t*m));N[d+80>>2]=Q(i*s)+Q(Q(o*A)+Q(h*m));N[d+68>>2]=Q(q*C)+Q(Q(j*u)+Q(t*k));N[d- -64>>2]=Q(q*s)+Q(Q(j*A)+Q(h*k));w=Q(n-w);n=Q(I-E);E=Q(H-y);N[d+100>>2]=Q(i*w)+Q(Q(o*n)+Q(m*E));N[d+96>>2]=Q(q*w)+Q(Q(j*n)+Q(E*k));J[d+56>>2]=0;N[d+76>>2]=Q(i*D)+Q(Q(o*x)+Q(z*m));N[d+60>>2]=Q(q*D)+Q(Q(j*x)+Q(z*k));N[d+52>>2]=Q(g*C)+Q(Q(l*u)+Q(f*t));N[d+48>>2]=Q(g*s)+Q(Q(l*A)+Q(f*h));N[d+44>>2]=Q(g*D)+Q(Q(l*x)+Q(f*z));N[d+92>>2]=Q(g*w)+Q(Q(l*n)+Q(E*f));k=N[a+12>>2];s=Q(0);t=Q(0);C=Q(0);p=sa-32|0;sa=p;v=J[a+8>>2];f=N[v+64>>2];q=Q(N[v+80>>2]-f);i=N[v+68>>2];o=Q(N[v+100>>2]-i);m=Q(N[v+96>>2]-f);j=Q(N[v+84>>2]-i);g=Q(Q(q*o)-Q(m*j));n=j;j=N[v+72>>2];l=Q(N[v+104>>2]-j);h=Q(N[v+88>>2]-j);o=Q(Q(n*l)-Q(o*h));m=Q(Q(h*m)-Q(l*q));q=Q(Q(g*g)+Q(Q(o*o)+Q(m*m)));a:{if(!(q>=Q(14210854715202004e-30))){break a}r=J[a+4>>2];D=Q(N[r+36>>2]*N[r+20>>2]);k=Q(D+k);x=N[d+100>>2];h=g;g=Q(Q(1)/Q(Y(q)));q=Q(h*g);h=Q(Q(x-j)*q);j=N[d+92>>2];o=Q(o*g);m=Q(m*g);g=N[d+96>>2];f=Q(h+Q(Q(Q(j-f)*o)+Q(m*Q(g-i))));if(f>2];J[p+24>>2]=J[d+100>>2];J[p+28>>2]=r;r=J[d+96>>2];J[p+16>>2]=J[d+92>>2];J[p+20>>2]=r;J[p+12>>2]=0;N[p+8>>2]=q;N[p+4>>2]=m;N[p>>2]=o;r=v- -64|0;z=N[r+32>>2];A=N[r+40>>2];u=N[r+24>>2];w=Q(A-u);n=N[r+16>>2];F=Q(z-n);i=N[p+4>>2];l=N[p>>2];E=N[r+36>>2];y=N[r+20>>2];h=Q(E-y);H=N[p+24>>2];K=Q(Q(Q(F*i)-Q(l*h))*Q(H-u));B=h;h=N[p+8>>2];I=N[p+16>>2];L=N[p+20>>2];w=Q(K+Q(Q(Q(Q(B*h)-Q(i*w))*Q(I-n))+Q(Q(L-y)*Q(Q(w*l)-Q(h*F)))));B=u;u=N[r+8>>2];F=Q(B-u);B=n;n=N[r>>2];K=Q(B-n);B=y;y=N[r+4>>2];B=Q(B-y);F=Q(Q(Q(Q(K*i)-Q(l*B))*Q(H-u))+Q(Q(Q(Q(B*h)-Q(i*F))*Q(I-n))+Q(Q(L-y)*Q(Q(F*l)-Q(h*K)))));n=Q(n-z);y=Q(y-E);H=Q(Q(Q(n*i)-Q(l*y))*Q(H-A));B=i;i=Q(u-A);i=Q(H+Q(Q(Q(Q(y*h)-Q(B*i))*Q(I-z))+Q(Q(L-E)*Q(Q(i*l)-Q(h*n)))));b:{if(!(!(i>Q(0))|!(F>Q(0)))){r=1;if(w>Q(0)){break b}}r=F<=Q(0)&w<=Q(0)&i<=Q(0)}c:{if(r){s=Q(x-Q(f*q));t=Q(g-Q(f*m));C=Q(j-Q(f*o));z=Q(k*k);break c}if((ua[J[J[v>>2]+100>>2]](v)|0)<=0){break a}z=Q(k*k);r=0;v=0;while(1){G=J[a+8>>2];ua[J[J[G>>2]+104>>2]](G,v,p+16|0,p);g=Q(0);x=N[p+24>>2];i=Q(N[p+8>>2]-x);f=Q(N[d+100>>2]-x);A=N[p+16>>2];l=Q(N[p>>2]-A);k=Q(N[d+92>>2]-A);u=N[p+20>>2];j=Q(N[d+96>>2]-u);h=Q(N[p+4>>2]-u);w=Q(Q(i*f)+Q(Q(l*k)+Q(j*h)));d:{if(!(w>Q(0))){break d}g=Q(Q(i*i)+Q(Q(l*l)+Q(h*h)));if(g>w){g=Q(w/g);f=Q(f-Q(i*g));j=Q(j-Q(h*g));k=Q(k-Q(l*g));break d}f=Q(f-i);j=Q(j-h);k=Q(k-l);g=Q(1)}if(Q(Q(f*f)+Q(Q(k*k)+Q(j*j)))>2];v=v+1|0;if((ua[J[J[G>>2]+100>>2]](G)|0)>(v|0)){continue}break}G=0;if(!r){break a}x=N[d+100>>2];g=N[d+96>>2];j=N[d+92>>2]}f=Q(x-s);j=Q(j-C);g=Q(g-t);k=Q(Q(f*f)+Q(Q(j*j)+Q(g*g)));if(!(kQ(1.1920928955078125e-7)){J[d+124>>2]=0;i=f;k=Q(Y(k));f=Q(Q(1)/k);N[d+120>>2]=i*f;N[d+116>>2]=g*f;N[d+112>>2]=j*f;D=Q(D-k);break e}J[d+124>>2]=0;N[d+120>>2]=q;N[d+116>>2]=m;N[d+112>>2]=o}J[d+140>>2]=0;N[d+136>>2]=s;N[d+132>>2]=t;N[d+128>>2]=C;N[d+108>>2]=-D;G=1}sa=p+32|0;f:{if(!G){break f}if(e){k=N[b+72>>2];q=N[b+64>>2];o=N[b+68>>2];m=N[b+88>>2];i=N[b+80>>2];l=N[b+84>>2];h=N[b+104>>2];s=N[b+96>>2];t=N[b+100>>2];f=N[d+120>>2];g=N[d+112>>2];j=N[d+116>>2];J[d+40>>2]=0;C=Q(Q(h*f)+Q(Q(s*g)+Q(j*t)));N[d+36>>2]=-C;D=Q(Q(m*f)+Q(Q(i*g)+Q(j*l)));N[d+32>>2]=-D;x=Q(Q(k*f)+Q(Q(q*g)+Q(o*j)));N[d+28>>2]=-x;z=N[b+112>>2];A=N[b+116>>2];f=N[b+120>>2];J[d+24>>2]=0;g=N[d+136>>2];n=Q(h*g);j=N[d+128>>2];h=N[d+132>>2];n=Q(f+Q(n+Q(Q(s*j)+Q(t*h))));f=N[d+108>>2];N[d+20>>2]=n+Q(C*f);N[d+16>>2]=Q(A+Q(Q(g*m)+Q(Q(j*i)+Q(l*h))))+Q(D*f);N[d+12>>2]=Q(z+Q(Q(g*k)+Q(Q(j*q)+Q(o*h))))+Q(x*f);ua[J[J[c>>2]+16>>2]](c,d+28|0,d+12|0,f);break f}f=N[b+72>>2];g=N[b+64>>2];j=N[b+68>>2];k=N[b+88>>2];q=N[b+80>>2];o=N[b+84>>2];m=N[b+104>>2];i=N[b+96>>2];l=N[b+100>>2];J[d+40>>2]=0;h=N[d+120>>2];s=N[d+112>>2];t=N[d+116>>2];N[d+36>>2]=Q(m*h)+Q(Q(i*s)+Q(l*t));N[d+32>>2]=Q(k*h)+Q(Q(q*s)+Q(t*o));N[d+28>>2]=Q(f*h)+Q(Q(g*s)+Q(j*t));h=N[b+112>>2];s=N[b+116>>2];t=N[b+120>>2];J[d+24>>2]=0;n=m;m=N[d+136>>2];u=i;i=N[d+128>>2];y=l;l=N[d+132>>2];N[d+20>>2]=t+Q(Q(n*m)+Q(Q(u*i)+Q(y*l)));N[d+16>>2]=s+Q(Q(m*k)+Q(Q(i*q)+Q(o*l)));N[d+12>>2]=h+Q(Q(m*f)+Q(Q(i*g)+Q(j*l)));ua[J[J[c>>2]+16>>2]](c,d+28|0,d+12|0,N[d+108>>2])}sa=d+144|0}function hh(a,b){a=a|0;b=Q(b);var c=0,d=0,e=0,f=0,g=Q(0),h=0,i=Q(0),j=0,k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=0,p=Q(0),q=0,r=0,s=0,t=0,u=0,v=0,w=Q(0),x=0,y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=0,I=Q(0),L=0,M=Q(0),O=Q(0);x=sa-16|0;sa=x;ua[J[8262]](3728);ua[J[8262]](4613);if(J[a+324>>2]>0){while(1){e=J[a+24>>2];ua[J[J[e>>2]+16>>2]](e,J[J[a+332>>2]+(c<<2)>>2]);c=c+1|0;if((c|0)>2]){continue}break}}c=J[a+332>>2];if(!(c?!c|!K[a+336|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}J[a+332>>2]=0;H[a+336|0]=1;J[a+324>>2]=0;J[a+328>>2]=0;ua[J[8263]]();s=J[a+248>>2];if((s|0)>0){G=J[a+256>>2];c=sa-512|0;sa=c;if((s|0)>0){while(1){e=J[(t<<2)+G>>2];J[e+268>>2]=1065353216;a:{b:{switch(J[e+220>>2]-2|0){case 0:case 3:break a;default:break b}}if(K[e+204|0]&3){break a}pb(e,b,c+448|0);if(!K[a+44|0]){break a}g=N[e+276>>2];g=Q(g*g);if(g==Q(0)){break a}i=Q(N[c+504>>2]-N[e+60>>2]);k=Q(i*i);i=Q(N[c+496>>2]-N[e+52>>2]);p=Q(i*i);i=Q(N[c+500>>2]-N[e+56>>2]);if(!(g>2]+4>>2]<=19){J[8932]=J[8932]+1;d=J[a+68>>2];d=ua[J[J[d>>2]+36>>2]](d)|0;h=J[a+24>>2];J[c+356>>2]=-1;J[c+360>>2]=0;J[c+348>>2]=1065353216;J[c+352>>2]=1;f=J[e+64>>2];J[c+372>>2]=J[e+60>>2];J[c+376>>2]=f;f=J[e+56>>2];J[c+364>>2]=J[e+52>>2];J[c+368>>2]=f;f=J[c+508>>2];J[c+388>>2]=J[c+504>>2];J[c+392>>2]=f;f=J[c+500>>2];J[c+380>>2]=J[c+496>>2];J[c+384>>2]=f;J[c+440>>2]=h;J[c+436>>2]=d;J[c+432>>2]=0;J[c+344>>2]=24500;J[c+428>>2]=e;g=N[e+272>>2];h=Sa(c+284|0);J[h>>2]=21396;J[c+312>>2]=1065353216;J[c+304>>2]=1065353216;J[c+308>>2]=1065353216;J[c+288>>2]=8;J[c+332>>2]=0;J[c+324>>2]=0;J[c+328>>2]=0;J[c+316>>2]=0;J[c+320>>2]=0;J[c+340>>2]=0;N[c+336>>2]=g;N[c+320>>2]=g;N[c+432>>2]=N[a+56>>2];d=J[e+188>>2];J[c+352>>2]=J[d+4>>2];J[c+356>>2]=J[d+8>>2];d=J[c+460>>2];J[c+224>>2]=J[c+456>>2];J[c+228>>2]=d;d=J[c+452>>2];J[c+216>>2]=J[c+448>>2];J[c+220>>2]=d;d=J[c+476>>2];J[c+240>>2]=J[c+472>>2];J[c+244>>2]=d;d=J[c+468>>2];J[c+232>>2]=J[c+464>>2];J[c+236>>2]=d;d=J[c+492>>2];J[c+256>>2]=J[c+488>>2];J[c+260>>2]=d;d=J[c+484>>2];J[c+248>>2]=J[c+480>>2];J[c+252>>2]=d;d=J[c+508>>2];J[c+272>>2]=J[c+504>>2];J[c+276>>2]=d;d=J[c+500>>2];J[c+264>>2]=J[c+496>>2];J[c+268>>2]=d;d=e+4|0;f=J[d+12>>2];J[c+224>>2]=J[d+8>>2];J[c+228>>2]=f;f=J[d+4>>2];J[c+216>>2]=J[d>>2];J[c+220>>2]=f;f=J[e+32>>2];J[c+240>>2]=J[e+28>>2];J[c+244>>2]=f;f=J[e+24>>2];J[c+232>>2]=J[e+20>>2];J[c+236>>2]=f;f=J[e+48>>2];J[c+256>>2]=J[e+44>>2];J[c+260>>2]=f;f=J[e+40>>2];J[c+248>>2]=J[e+36>>2];J[c+252>>2]=f;vb(a,h,d,c+216|0,c+344|0,Q(0));d=J[c+360>>2];c:{if(!d){break c}g=N[c+348>>2];if(!(g>2]-N[e+52>>2]));m=Q(g*Q(N[c+500>>2]-N[e+56>>2]));n=Q(g*Q(N[c+504>>2]-N[e+60>>2]));I=Q(Q(Q(l*Q(-N[c+396>>2]))-Q(m*N[c+400>>2]))-Q(n*N[c+404>>2]));h=J[a+24>>2];u=ua[J[J[h>>2]+12>>2]](h,e,d)|0;d=J[a+324>>2];d:{if((d|0)!=J[a+328>>2]){break d}r=d?d<<1:1;if((r|0)<=(d|0)){break d}e:{if(!r){h=0;break e}J[8456]=J[8456]+1;h=ua[J[8258]](r<<2,16)|0;d=J[a+324>>2]}f:{if((d|0)<=0){break f}v=0;f=0;if(d>>>0>=4){L=d&-4;o=0;while(1){j=f<<2;J[j+h>>2]=J[j+J[a+332>>2]>>2];q=j|4;J[q+h>>2]=J[q+J[a+332>>2]>>2];q=j|8;J[q+h>>2]=J[q+J[a+332>>2]>>2];j=j|12;J[j+h>>2]=J[j+J[a+332>>2]>>2];f=f+4|0;o=o+4|0;if((L|0)!=(o|0)){continue}break}}j=d&3;if(!j){break f}while(1){o=f<<2;J[o+h>>2]=J[o+J[a+332>>2]>>2];f=f+1|0;v=v+1|0;if((j|0)!=(v|0)){continue}break}}f=J[a+332>>2];if(!(!f|!K[a+336|0])){if(f){J[8457]=J[8457]+1;ua[J[8259]](f)}d=J[a+324>>2]}J[a+332>>2]=h;H[a+336|0]=1;J[a+328>>2]=r}J[J[a+332>>2]+(d<<2)>>2]=u;J[a+324>>2]=d+1;d=J[c+360>>2];y=N[d+20>>2];z=N[d+36>>2];A=N[d+40>>2];B=N[d+8>>2];C=N[d+24>>2];g=N[d+60>>2];M=N[d+52>>2];i=N[d+56>>2];D=N[d+44>>2];k=N[d+12>>2];E=N[d+28>>2];F=N[d+4>>2];p=N[e+60>>2];w=N[e+52>>2];O=N[e+56>>2];J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[c+36>>2]=0;n=Q(n+p);l=Q(l+w);m=Q(m+O);w=Q(Q(D*n)+Q(Q(k*l)+Q(E*m)));p=k;k=Q(-M);N[c+32>>2]=w+Q(Q(Q(p*k)-Q(E*i))-Q(D*g));N[c+28>>2]=Q(Q(n*A)+Q(Q(l*B)+Q(m*C)))+Q(Q(Q(B*k)-Q(C*i))-Q(A*g));N[c+24>>2]=Q(Q(n*z)+Q(Q(l*F)+Q(m*y)))+Q(Q(Q(F*k)-Q(y*i))-Q(z*g));d=J[c+408>>2];J[c+80>>2]=J[c+404>>2];J[c+84>>2]=d;d=J[c+400>>2];J[c+72>>2]=J[c+396>>2];J[c+76>>2]=d;N[c+88>>2]=I;J[c+100>>2]=0;J[c+104>>2]=0;J[c+92>>2]=0;J[c+96>>2]=0;J[c+172>>2]=0;J[c+164>>2]=0;J[c+168>>2]=0;J[c+156>>2]=0;J[c+160>>2]=0;J[c+148>>2]=0;J[c+152>>2]=0;J[c+140>>2]=0;J[c+144>>2]=0;J[c+132>>2]=0;J[c+136>>2]=0;J[c+124>>2]=0;J[c+128>>2]=0;d=P(rc(u,c+8|0),208)+u|0;J[d+100>>2]=0;g=Q(N[e+228>>2]*N[J[c+360>>2]+228>>2]);g=g>2]=g>Q(10)?Q(10):g;h=J[e+56>>2];J[d+52>>2]=J[e+52>>2];J[d+56>>2]=h;h=J[e+64>>2];J[d+60>>2]=J[e+60>>2];J[d+64>>2]=h;J[d+48>>2]=0;N[d+44>>2]=n;N[d+40>>2]=m;N[d+36>>2]=l}}ua[J[8263]]()}t=t+1|0;if((s|0)!=(t|0)){continue}break}}sa=c+512|0}ua[J[8263]]();sa=x+16|0}function Tg(a,b){a=a|0;b=Q(b);var c=0,d=0,e=0,f=Q(0),g=0,h=0,i=Q(0),j=0,k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=0,p=Q(0),q=0,r=0,s=0,t=0,u=0,v=Q(0),w=0,x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=0,I=Q(0),L=Q(0);c=sa-512|0;sa=c;ua[J[8262]](3728);d=sa-16|0;sa=d;ua[J[8262]](4613);if(J[a+324>>2]>0){while(1){h=J[a+24>>2];ua[J[J[h>>2]+16>>2]](h,J[J[a+332>>2]+(e<<2)>>2]);e=e+1|0;if((e|0)>2]){continue}break}}e=J[a+332>>2];if(!(e?!e|!K[a+336|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](e)}J[a+332>>2]=0;H[a+336|0]=1;J[a+324>>2]=0;J[a+328>>2]=0;ua[J[8263]]();sa=d+16|0;w=J[a+248>>2];if((w|0)>0){while(1){e=J[J[a+256>>2]+(s<<2)>>2];J[e+268>>2]=1065353216;a:{b:{switch(J[e+220>>2]-2|0){case 0:case 3:break a;default:break b}}if(K[e+204|0]&3){break a}pb(e,b,c+444|0);if(!K[a+44|0]){break a}f=N[e+276>>2];f=Q(f*f);if(f==Q(0)){break a}i=Q(N[c+500>>2]-N[e+60>>2]);k=Q(i*i);i=Q(N[c+492>>2]-N[e+52>>2]);p=Q(i*i);i=Q(N[c+496>>2]-N[e+56>>2]);if(!(f>2]+4>>2]<=19){J[c+356>>2]=-1;J[c+360>>2]=0;J[c+348>>2]=1065353216;J[c+352>>2]=1;d=J[e+64>>2];J[c+372>>2]=J[e+60>>2];J[c+376>>2]=d;d=J[e+56>>2];J[c+364>>2]=J[e+52>>2];J[c+368>>2]=d;d=J[c+504>>2];J[c+388>>2]=J[c+500>>2];J[c+392>>2]=d;d=J[c+496>>2];J[c+380>>2]=J[c+492>>2];J[c+384>>2]=d;J[c+436>>2]=a;J[c+428>>2]=0;J[c+344>>2]=24980;J[c+432>>2]=e;f=N[e+272>>2];h=Sa(c+284|0);J[h>>2]=21396;J[c+312>>2]=1065353216;J[c+304>>2]=1065353216;J[c+308>>2]=1065353216;J[c+288>>2]=8;J[c+332>>2]=0;J[c+324>>2]=0;J[c+328>>2]=0;J[c+316>>2]=0;J[c+320>>2]=0;J[c+340>>2]=0;N[c+336>>2]=f;N[c+320>>2]=f;d=J[e+188>>2];J[c+352>>2]=J[d+4>>2];J[c+356>>2]=J[d+8>>2];d=J[c+456>>2];J[c+224>>2]=J[c+452>>2];J[c+228>>2]=d;d=J[c+448>>2];J[c+216>>2]=J[c+444>>2];J[c+220>>2]=d;d=J[c+472>>2];J[c+240>>2]=J[c+468>>2];J[c+244>>2]=d;d=J[c+464>>2];J[c+232>>2]=J[c+460>>2];J[c+236>>2]=d;d=J[c+488>>2];J[c+256>>2]=J[c+484>>2];J[c+260>>2]=d;d=J[c+480>>2];J[c+248>>2]=J[c+476>>2];J[c+252>>2]=d;d=J[c+504>>2];J[c+272>>2]=J[c+500>>2];J[c+276>>2]=d;d=J[c+496>>2];J[c+264>>2]=J[c+492>>2];J[c+268>>2]=d;d=e+4|0;g=J[d+12>>2];J[c+224>>2]=J[d+8>>2];J[c+228>>2]=g;g=J[d+4>>2];J[c+216>>2]=J[d>>2];J[c+220>>2]=g;g=J[e+32>>2];J[c+240>>2]=J[e+28>>2];J[c+244>>2]=g;g=J[e+24>>2];J[c+232>>2]=J[e+20>>2];J[c+236>>2]=g;g=J[e+48>>2];J[c+256>>2]=J[e+44>>2];J[c+260>>2]=g;g=J[e+40>>2];J[c+248>>2]=J[e+36>>2];J[c+252>>2]=g;vb(a,h,d,c+216|0,c+344|0,Q(0));d=J[c+360>>2];if(d){f=N[c+348>>2];l=Q(Q(N[c+492>>2]-N[e+52>>2])*f);m=Q(Q(N[c+496>>2]-N[e+56>>2])*f);n=Q(f*Q(N[c+500>>2]-N[e+60>>2]));F=Q(Q(Q(l*Q(-N[c+396>>2]))-Q(m*N[c+400>>2]))-Q(n*N[c+404>>2]));h=J[a+24>>2];t=ua[J[J[h>>2]+12>>2]](h,e,d)|0;d=J[a+324>>2];c:{if((d|0)!=J[a+328>>2]){break c}r=d?d<<1:1;if((r|0)<=(d|0)){break c}d:{if(!r){h=0;break d}J[8456]=J[8456]+1;h=ua[J[8258]](r<<2,16)|0;d=J[a+324>>2]}e:{if((d|0)<=0){break e}u=0;g=0;if(d>>>0>=4){G=d&-4;o=0;while(1){j=g<<2;J[j+h>>2]=J[j+J[a+332>>2]>>2];q=j|4;J[q+h>>2]=J[q+J[a+332>>2]>>2];q=j|8;J[q+h>>2]=J[q+J[a+332>>2]>>2];j=j|12;J[j+h>>2]=J[j+J[a+332>>2]>>2];g=g+4|0;o=o+4|0;if((G|0)!=(o|0)){continue}break}}j=d&3;if(!j){break e}while(1){o=g<<2;J[o+h>>2]=J[o+J[a+332>>2]>>2];g=g+1|0;u=u+1|0;if((j|0)!=(u|0)){continue}break}}g=J[a+332>>2];if(!(!g|!K[a+336|0])){if(g){J[8457]=J[8457]+1;ua[J[8259]](g)}d=J[a+324>>2]}J[a+332>>2]=h;H[a+336|0]=1;J[a+328>>2]=r}J[J[a+332>>2]+(d<<2)>>2]=t;J[a+324>>2]=d+1;d=J[c+360>>2];x=N[d+20>>2];y=N[d+36>>2];z=N[d+40>>2];A=N[d+8>>2];B=N[d+24>>2];f=N[d+60>>2];I=N[d+52>>2];i=N[d+56>>2];C=N[d+44>>2];k=N[d+12>>2];D=N[d+28>>2];E=N[d+4>>2];p=N[e+60>>2];v=N[e+52>>2];L=N[e+56>>2];J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[c+36>>2]=0;n=Q(n+p);l=Q(l+v);m=Q(m+L);v=Q(Q(C*n)+Q(Q(k*l)+Q(D*m)));p=k;k=Q(-I);N[c+32>>2]=v+Q(Q(Q(p*k)-Q(D*i))-Q(C*f));N[c+28>>2]=Q(Q(n*z)+Q(Q(l*A)+Q(m*B)))+Q(Q(Q(A*k)-Q(B*i))-Q(z*f));N[c+24>>2]=Q(Q(n*y)+Q(Q(l*E)+Q(m*x)))+Q(Q(Q(E*k)-Q(x*i))-Q(y*f));d=J[c+408>>2];J[c+80>>2]=J[c+404>>2];J[c+84>>2]=d;d=J[c+400>>2];J[c+72>>2]=J[c+396>>2];J[c+76>>2]=d;N[c+88>>2]=F;J[c+100>>2]=0;J[c+104>>2]=0;J[c+92>>2]=0;J[c+96>>2]=0;J[c+172>>2]=0;J[c+164>>2]=0;J[c+168>>2]=0;J[c+156>>2]=0;J[c+160>>2]=0;J[c+148>>2]=0;J[c+152>>2]=0;J[c+140>>2]=0;J[c+144>>2]=0;J[c+132>>2]=0;J[c+136>>2]=0;J[c+124>>2]=0;J[c+128>>2]=0;J[c+208>>2]=J[e+192>>2];J[c+212>>2]=J[c+428>>2];d=P(rc(t,c+8|0),208)+t|0;J[d+100>>2]=0;f=Q(N[e+228>>2]*N[J[c+360>>2]+228>>2]);f=f>2]=f>Q(10)?Q(10):f;h=J[e+56>>2];J[d+52>>2]=J[e+52>>2];J[d+56>>2]=h;h=J[e+64>>2];J[d+60>>2]=J[e+60>>2];J[d+64>>2]=h;J[d+48>>2]=0;N[d+44>>2]=n;N[d+40>>2]=m;N[d+36>>2]=l}}ua[J[8263]]()}s=s+1|0;if((w|0)!=(s|0)){continue}break}}ua[J[8263]]();sa=c+512|0}function rc(a,b){var c=Q(0),d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=0,l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=0,y=Q(0),z=Q(0),A=0,B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=Q(0),H=Q(0),I=Q(0),L=Q(0),M=Q(0),O=Q(0),S=Q(0),T=Q(0),U=Q(0),V=Q(0),W=Q(0),X=Q(0),Y=Q(0),Z=Q(0),_=Q(0),$=Q(0),aa=Q(0),ba=Q(0),ca=Q(0),da=Q(0),ea=0;k=J[a+844>>2];a:{if((k|0)==4){c=N[a+84>>2];e=N[b+80>>2];k=c>2];c=k?c:e;k=f>2];c=k?f:c;x=e>2]<(x?e:c);A=k?3:A;b:{c:{d:{e:{if(K[33064]){if(!A){n=N[a+636>>2];i=N[a+428>>2];h=Q(n-i);q=N[a+632>>2];l=N[a+424>>2];d=Q(q-l);v=N[a+628>>2];w=N[a+420>>2];m=Q(v-w);e=N[b+8>>2];f=N[b+4>>2];j=N[b>>2];break e}j=N[b>>2];s=N[a+212>>2];c=Q(j-s);q=N[a+632>>2];l=N[a+424>>2];d=Q(q-l);v=N[a+628>>2];w=N[a+420>>2];m=Q(v-w);f=N[b+4>>2];t=N[a+216>>2];e=Q(f-t);h=Q(Q(c*d)-Q(m*e));o=Q(h*h);n=N[a+636>>2];i=N[a+428>>2];h=Q(n-i);p=Q(e*h);e=N[b+8>>2];u=N[a+220>>2];g=Q(e-u);p=Q(p-Q(d*g));c=Q(Q(g*m)-Q(h*c));da=Q(o+Q(Q(p*p)+Q(c*c)));if((A|0)!=1){break e}j=Q(j-N[a+4>>2]);g=Q(-j);f=Q(f-N[a+8>>2]);p=Q(-f);e=Q(e-N[a+12>>2]);r=Q(-e);m=Q(0);break d}f:{g:{h:{i:{if(!A){j=N[a+428>>2];h=N[a+636>>2];m=Q(j-h);f=N[a+424>>2];d=N[a+632>>2];y=Q(f-d);e=N[a+420>>2];l=N[a+628>>2];B=Q(e-l);u=N[b+4>>2];H=Q(u-d);W=Q(-H);t=N[b>>2];z=Q(t-l);X=Q(-z);s=N[b+8>>2];I=Q(s-h);Y=Q(-I);E=Q(t-e);D=Q(-E);F=Q(s-j);V=Q(-F);G=Q(u-f);c=Q(-G);break i}t=N[b>>2];g=N[a+212>>2];L=Q(t-g);f=N[a+424>>2];d=N[a+632>>2];y=Q(f-d);e=N[a+420>>2];l=N[a+628>>2];B=Q(e-l);u=N[b+4>>2];p=N[a+216>>2];M=Q(u-p);c=Q(Q(L*y)-Q(B*M));i=Q(c*c);j=N[a+428>>2];h=N[a+636>>2];m=Q(j-h);s=N[b+8>>2];r=N[a+220>>2];O=Q(s-r);c=Q(Q(M*m)-Q(y*O));n=Q(c*c);c=Q(Q(O*B)-Q(m*L));n=Q(i+Q(n+Q(c*c)));E=Q(t-e);C=Q(p-d);c=Q(g-l);G=Q(u-f);i=Q(Q(E*C)-Q(c*G));q=Q(i*i);D=Q(r-h);F=Q(s-j);i=Q(Q(G*D)-Q(C*F));o=Q(i*i);i=Q(Q(F*c)-Q(D*E));i=Q(q+Q(o+Q(i*i)));n=i>2];v=Q(t-n);i=N[a+8>>2];w=Q(u-i);g=Q(Q(v*y)-Q(B*w));o=Q(g*g);q=N[a+12>>2];S=Q(s-q);g=Q(Q(w*m)-Q(y*S));m=Q(Q(S*B)-Q(m*v));m=Q(o+Q(Q(g*g)+Q(m*m)));o=Q(i-d);T=Q(n-l);g=Q(Q(E*o)+Q(T*c));p=Q(g*g);U=Q(q-h);g=Q(Q(G*U)+Q(o*V));r=Q(g*g);g=Q(Q(F*T)+Q(U*D));g=Q(p+Q(r+Q(g*g)));m=g>2];M=Q(u-p);_=Q(-M);g=N[a+212>>2];L=Q(t-g);$=Q(-L);r=N[a+220>>2];O=Q(s-r);aa=Q(-O);ba=Q(-w);ca=Q(-S);if(!(!x|k)){l=Q(q-r);o=Q(i-p);z=Q(n-g);d=Q(0);break f}D=Q(r-h);C=Q(p-d);c=Q(g-l);break g}_=Q(-M);$=Q(-L);aa=Q(-O);n=N[a+4>>2];T=Q(n-l);q=N[a+12>>2];U=Q(q-h);i=N[a+8>>2];o=Q(i-d);v=Q(t-n);Z=Q(-v);w=Q(u-i);ba=Q(-w);S=Q(s-q);ca=Q(-S);m=Q(0)}d=Q(Q(v*C)+Q(c*ba));h=Q(d*d);d=Q(Q(w*D)+Q(C*ca));c=Q(Q(S*c)+Q(D*Z));c=Q(h+Q(Q(d*d)+Q(c*c)));d=Q(Q(L*o)+Q(T*_));h=Q(d*d);d=Q(Q(M*U)+Q(o*aa));l=Q(d*d);d=Q(Q(O*T)+Q(U*$));d=Q(h+Q(l+Q(d*d)));c=c>d?c:d;o=Q(i-p);h=Q(z*o);z=Q(n-g);d=Q(h+Q(z*W));h=Q(d*d);l=Q(q-r);d=Q(Q(H*l)+Q(o*Y));y=Q(d*d);d=Q(Q(I*z)+Q(l*X));d=Q(h+Q(y+Q(d*d)));d=c>d?c:d;c=Q(0);if(k){break b}C=Q(q-j);y=Q(i-f);B=Q(n-e);G=Q(u-f);c=Q(-G);E=Q(t-e);D=Q(-E);F=Q(s-j);V=Q(-F)}f=Q(p-f);e=Q(g-e);h=Q(Q(v*f)+Q(e*ba));j=Q(r-j);f=Q(Q(w*j)+Q(f*ca));e=Q(Q(S*e)+Q(j*Z));e=Q(Q(h*h)+Q(Q(f*f)+Q(e*e)));f=Q(Q(L*y)+Q(B*_));h=Q(f*f);f=Q(Q(M*C)+Q(y*aa));g=Q(f*f);f=Q(Q(O*B)+Q(C*$));f=Q(h+Q(g+Q(f*f)));e=e>f?e:f;c=Q(Q(E*o)+Q(z*c));f=Q(c*c);c=Q(Q(G*l)+Q(o*V));h=Q(c*c);c=Q(Q(F*z)+Q(l*D));c=Q(f+Q(h+Q(c*c)));c=c>2]);f=Q(f-N[a+8>>2]);c=Q(Q(j*d)-Q(m*f));g=Q(c*c);e=Q(e-N[a+12>>2]);c=Q(Q(f*h)-Q(d*e));d=Q(c*c);c=Q(Q(e*m)-Q(h*j));m=Q(g+Q(d+Q(c*c)));u=N[a+220>>2];t=N[a+216>>2];s=N[a+212>>2];g=Q(-j);p=Q(-f);r=Q(-e);if(k){break d}d=Q(0);if(x){break c}}c=Q(q-t);d=Q(v-s);h=Q(Q(j*c)+Q(d*p));q=Q(h*h);h=Q(n-u);c=Q(Q(f*h)+Q(c*r));n=Q(c*c);c=Q(Q(e*d)+Q(h*g));d=Q(q+Q(n+Q(c*c)));c=Q(0);if(k){break b}}c=Q(l-t);h=Q(j*c);j=Q(w-s);l=Q(h+Q(j*p));h=f;f=Q(i-u);c=Q(Q(h*f)+Q(c*r));h=Q(c*c);c=Q(Q(e*j)+Q(f*g));c=Q(Q(l*l)+Q(h+Q(c*c)))}e=Q(R(da));k=e>Q(-0xde0b6b000000000);x=k?0:-1;f=Q(R(m));e=k?e:Q(-0xde0b6b000000000);k=f>e;x=k?1:x;j=Q(R(d));e=k?f:e;k=j>e;k=Q(R(c))>(k?j:e)?3:k?2:x;A=P(k,208)+a|0;x=J[A+120>>2];if(!x){break a}ea=J[8753];if(!ea){break a}ua[ea|0](x)|0;J[A+120>>2]=0;break a}J[a+844>>2]=k+1}x=a;a=(k|0)>0?k:0;Ja((x+P(a,208)|0)+4|0,b,208);return a}function Td(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=0,s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=0,F=Q(0),G=Q(0),H=Q(0),I=Q(0),K=Q(0),L=Q(0),M=Q(0),O=Q(0),P=Q(0),R=Q(0),S=Q(0),T=Q(0),U=Q(0),V=Q(0),W=Q(0),X=Q(0),Z=Q(0),_=Q(0),$=Q(0),aa=Q(0),ba=Q(0),ca=Q(0),da=0,ea=Q(0),fa=0;g=sa-96|0;sa=g;Kb(J[a+4>>2]);V=N[d+40>>2];W=N[d+36>>2];X=N[d+24>>2];Z=N[d+20>>2];G=N[b+20>>2];H=N[b+36>>2];I=N[b+24>>2];y=N[b+52>>2];m=N[c+52>>2];z=N[d+52>>2];l=N[e+52>>2];K=N[b+40>>2];A=N[b+56>>2];h=N[c+56>>2];B=N[d+56>>2];i=N[e+56>>2];_=N[d+32>>2];$=N[d+16>>2];aa=N[d+8>>2];ba=N[d+4>>2];ca=N[d>>2];L=N[b>>2];M=N[b+16>>2];O=N[b+32>>2];P=N[b+4>>2];R=N[b+8>>2];C=N[b+48>>2];j=N[c+48>>2];D=N[d+48>>2];p=N[e+48>>2];r=J[a+8>>2];J[g+60>>2]=0;x=Q(Q(j-C)-Q(p-D));j=Q(-x);t=Q(Q(m-y)-Q(l-z));u=Q(Q(h-A)-Q(i-B));N[g+56>>2]=Q(Q(R*j)-Q(I*t))-Q(K*u);N[g+52>>2]=Q(Q(P*j)-Q(G*t))-Q(H*u);N[g+48>>2]=Q(Q(L*j)-Q(M*t))-Q(O*u);ua[J[J[r>>2]+64>>2]](g+80|0,r,g+48|0);h=N[b+52>>2];i=N[b+24>>2];p=N[b+20>>2];j=N[b+56>>2];m=N[b+40>>2];l=N[b+36>>2];k=N[b+16>>2];n=N[b+48>>2];s=N[b+8>>2];o=N[b>>2];q=N[b+4>>2];v=N[b+32>>2];J[g+76>>2]=0;S=j;j=N[g+88>>2];w=Q(m*j);m=N[g+80>>2];T=l;l=N[g+84>>2];v=Q(S+Q(w+Q(Q(v*m)+Q(T*l))));N[g+72>>2]=v;n=Q(n+Q(Q(j*s)+Q(Q(m*o)+Q(l*q))));N[g+64>>2]=n;h=Q(h+Q(Q(j*i)+Q(Q(m*k)+Q(l*p))));N[g+68>>2]=h;r=J[a+12>>2];j=N[d+20>>2];m=N[d+36>>2];l=N[d+24>>2];i=N[d+40>>2];p=N[d>>2];k=N[d+16>>2];s=N[d+32>>2];o=N[d+4>>2];q=N[d+8>>2];J[g+28>>2]=0;N[g+24>>2]=Q(i*u)+Q(Q(q*x)+Q(t*l));N[g+20>>2]=Q(m*u)+Q(Q(o*x)+Q(t*j));N[g+16>>2]=Q(s*u)+Q(Q(p*x)+Q(t*k));ua[J[J[r>>2]+64>>2]](g+32|0,r,g+16|0);p=N[d+56>>2];k=N[d+40>>2];s=N[d+36>>2];j=N[d+52>>2];m=N[d+24>>2];l=N[d+20>>2];o=N[d+32>>2];i=N[d+48>>2];q=N[d+8>>2];w=N[d>>2];U=N[d+4>>2];F=N[d+16>>2];J[g+60>>2]=0;J[g+92>>2]=0;S=j;j=N[g+40>>2];ea=Q(m*j);m=N[g+32>>2];T=l;l=N[g+36>>2];F=Q(S+Q(ea+Q(Q(F*m)+Q(T*l))));N[g+52>>2]=F;h=Q(h-F);N[g+84>>2]=h;i=Q(i+Q(Q(j*q)+Q(Q(m*w)+Q(l*U))));N[g+48>>2]=i;i=Q(n-i);N[g+80>>2]=i;j=Q(p+Q(Q(j*k)+Q(Q(m*o)+Q(l*s))));N[g+56>>2]=j;k=Q(v-j);N[g+88>>2]=k;s=Q(0);j=Q(0);m=Q(0);l=Q(0);p=Q(0);n=Q(0);a:{b:{if(!(Q(Q(k*k)+Q(Q(i*i)+Q(h*h)))>Q(9999999747378752e-20))){break b}r=32;while(1){if(!r){break b}E=J[a+8>>2];J[g+12>>2]=0;h=Q(-N[g+80>>2]);i=N[g+84>>2];k=N[g+88>>2];N[g+8>>2]=Q(Q(R*h)-Q(I*i))-Q(K*k);N[g+4>>2]=Q(Q(P*h)-Q(G*i))-Q(H*k);N[g>>2]=Q(Q(L*h)-Q(M*i))-Q(O*k);da=g+16|0;ua[J[J[E>>2]+64>>2]](da,E,g);J[g+76>>2]=0;h=N[g+24>>2];i=N[g+16>>2];k=N[g+20>>2];N[g+72>>2]=A+Q(Q(h*K)+Q(Q(i*O)+Q(H*k)));N[g+68>>2]=y+Q(Q(h*I)+Q(Q(i*M)+Q(G*k)));N[g+64>>2]=C+Q(Q(h*R)+Q(Q(i*L)+Q(P*k)));E=J[a+12>>2];J[g+12>>2]=0;h=N[g+88>>2];i=N[g+80>>2];k=N[g+84>>2];N[g+8>>2]=Q(V*h)+Q(Q(aa*i)+Q(X*k));N[g+4>>2]=Q(W*h)+Q(Q(ba*i)+Q(Z*k));N[g>>2]=Q(_*h)+Q(Q(ca*i)+Q($*k));ua[J[J[E>>2]+64>>2]](da,E,g);J[g+60>>2]=0;J[g+44>>2]=0;k=N[g+24>>2];o=N[g+16>>2];q=N[g+20>>2];h=Q(z+Q(Q(k*X)+Q(Q(o*$)+Q(Z*q))));N[g+52>>2]=h;v=Q(N[g+68>>2]-h);N[g+36>>2]=v;h=N[g+84>>2];i=Q(D+Q(Q(k*aa)+Q(Q(o*ca)+Q(ba*q))));N[g+48>>2]=i;w=Q(N[g+64>>2]-i);N[g+32>>2]=w;i=N[g+80>>2];k=Q(B+Q(Q(k*V)+Q(Q(o*_)+Q(W*q))));N[g+56>>2]=k;o=Q(N[g+72>>2]-k);N[g+40>>2]=o;if(n>Q(1)){break a}k=N[g+88>>2];o=Q(Q(k*o)+Q(Q(i*w)+Q(h*v)));if(o>Q(0)){j=Q(Q(k*u)+Q(Q(i*x)+Q(t*h)));if(j>=Q(-14210854715202004e-30)){break a}m=N[b+48>>2];l=N[c+48>>2];p=N[b+52>>2];y=N[c+52>>2];A=N[b+56>>2];C=N[c+56>>2];D=N[d+48>>2];q=N[e+48>>2];z=N[d+52>>2];w=N[e+52>>2];B=N[d+56>>2];U=N[e+56>>2];J[g+44>>2]=0;N[g+36>>2]=v;n=Q(n-Q(o/j));j=Q(Q(1)-n);B=Q(Q(B*j)+Q(n*U));z=Q(Q(j*z)+Q(n*w));D=Q(Q(j*D)+Q(n*q));A=Q(Q(j*A)+Q(n*C));y=Q(Q(j*p)+Q(n*y));C=Q(Q(j*m)+Q(n*l));p=N[g+92>>2];m=h;l=k;j=i}if(!Pd(J[a+4>>2],g+32|0)){Sd(J[a+4>>2],g+32|0,g- -64|0,g+48|0)}if(!Qd(J[a+4>>2],g+80|0)){break b}r=r-1|0;h=N[g+88>>2];i=Q(h*h);h=N[g+80>>2];k=Q(h*h);h=N[g+84>>2];if(Q(i+Q(k+Q(h*h)))>Q(9999999747378752e-20)){continue}break}}N[f+164>>2]=n;n=Q(0);i=Q(0);h=Q(0);k=Q(Q(l*l)+Q(Q(j*j)+Q(m*m)));if(k>=Q(14210854715202004e-30)){h=l;l=Q(Q(1)/Q(Y(k)));i=Q(h*l);n=Q(m*l);s=Q(j*l);h=p}N[f+132>>2]=s;N[f+144>>2]=h;N[f+140>>2]=i;N[f+136>>2]=n;if(Q(-N[f+172>>2])<=Q(Q(i*u)+Q(Q(s*x)+Q(t*n)))){break a}Od(J[a+4>>2],g+16|0,g);a=J[g+12>>2];J[f+156>>2]=J[g+8>>2];J[f+160>>2]=a;a=J[g+4>>2];J[f+148>>2]=J[g>>2];J[f+152>>2]=a;fa=1}sa=g+96|0;return fa|0}function gh(a,b){a=a|0;b=Q(b);var c=0,d=0,e=0,f=Q(0),g=0,h=Q(0),i=Q(0),j=0,k=Q(0),l=Q(0),m=0,n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=0,s=Q(0),t=Q(0),u=Q(0),v=0,w=Q(0),x=Q(0),y=0,z=Q(0),A=0,B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=Q(0),H=Q(0),I=Q(0);y=sa-16|0;sa=y;ua[J[8262]](4190);j=J[a+248>>2];if((j|0)>0){A=J[a+256>>2];c=sa-304|0;sa=c;if((j|0)>0){while(1){d=J[(m<<2)+A>>2];J[d+268>>2]=1065353216;a:{b:{switch(J[d+220>>2]-2|0){case 0:case 3:break a;default:break b}}if(K[d+204|0]&3){break a}pb(d,b,c+240|0);c:{d:{if(!K[a+44|0]){break d}f=N[d+276>>2];f=Q(f*f);if(f==Q(0)){break d}h=Q(N[c+296>>2]-N[d+60>>2]);k=Q(h*h);h=Q(N[c+288>>2]-N[d+52>>2]);i=Q(h*h);h=Q(N[c+292>>2]-N[d+56>>2]);if(!(f>2]+4>>2]<=19){J[8932]=J[8932]+1;e=J[a+68>>2];e=ua[J[J[e>>2]+36>>2]](e)|0;r=J[a+24>>2];J[c+148>>2]=-1;J[c+152>>2]=0;J[c+140>>2]=1065353216;J[c+144>>2]=1;g=J[d+64>>2];J[c+164>>2]=J[d+60>>2];J[c+168>>2]=g;g=J[d+56>>2];J[c+156>>2]=J[d+52>>2];J[c+160>>2]=g;g=J[c+300>>2];J[c+180>>2]=J[c+296>>2];J[c+184>>2]=g;g=J[c+292>>2];J[c+172>>2]=J[c+288>>2];J[c+176>>2]=g;J[c+232>>2]=r;J[c+228>>2]=e;J[c+224>>2]=0;J[c+136>>2]=24500;J[c+220>>2]=d;f=N[d+272>>2];r=Sa(c+76|0);J[r>>2]=21396;J[c+104>>2]=1065353216;J[c+96>>2]=1065353216;J[c+100>>2]=1065353216;J[c+80>>2]=8;J[c+124>>2]=0;J[c+116>>2]=0;J[c+120>>2]=0;J[c+108>>2]=0;J[c+112>>2]=0;J[c+132>>2]=0;N[c+128>>2]=f;N[c+112>>2]=f;N[c+224>>2]=N[a+56>>2];e=J[d+188>>2];J[c+144>>2]=J[e+4>>2];J[c+148>>2]=J[e+8>>2];e=J[c+252>>2];J[c+16>>2]=J[c+248>>2];J[c+20>>2]=e;e=J[c+244>>2];J[c+8>>2]=J[c+240>>2];J[c+12>>2]=e;e=J[c+268>>2];J[c+32>>2]=J[c+264>>2];J[c+36>>2]=e;e=J[c+260>>2];J[c+24>>2]=J[c+256>>2];J[c+28>>2]=e;e=J[c+284>>2];J[c+48>>2]=J[c+280>>2];J[c+52>>2]=e;e=J[c+276>>2];J[c+40>>2]=J[c+272>>2];J[c+44>>2]=e;e=J[c+300>>2];J[c+64>>2]=J[c+296>>2];J[c+68>>2]=e;e=J[c+292>>2];J[c+56>>2]=J[c+288>>2];J[c+60>>2]=e;e=d+4|0;g=J[e+12>>2];J[c+16>>2]=J[e+8>>2];J[c+20>>2]=g;g=J[e+4>>2];J[c+8>>2]=J[e>>2];J[c+12>>2]=g;g=J[d+32>>2];J[c+32>>2]=J[d+28>>2];J[c+36>>2]=g;g=J[d+24>>2];J[c+24>>2]=J[d+20>>2];J[c+28>>2]=g;g=J[d+48>>2];J[c+48>>2]=J[d+44>>2];J[c+52>>2]=g;g=J[d+40>>2];J[c+40>>2]=J[d+36>>2];J[c+44>>2]=g;vb(a,r,e,c+8|0,c+136|0,Q(0));if(J[c+152>>2]){f=N[c+140>>2];if(f>2]=f;e=c+240|0;pb(d,Q(f*b),e);J[d+268>>2]=0;Fd(d,e);ua[J[8263]]()}m=m+1|0;if((j|0)!=(m|0)){continue}break}}sa=c+304|0}if(K[a+291|0]){ua[J[8262]](5549);c=J[a+324>>2];if((c|0)>0){while(1){j=J[J[a+332>>2]+(v<<2)>>2];if(J[j+844>>2]>0){c=J[j+840>>2];c=J[c+252>>2]<<30>>31&c;d=J[j+836>>2];d=J[d+252>>2]<<30>>31&d;m=0;while(1){b=Q(N[d+232>>2]*N[c+232>>2]);e:{if(!(b>Q(0))){break e}e=j+P(m,208)|0;f=N[e+136>>2];if(f==Q(0)){break e}s=N[e+44>>2];B=N[c+60>>2];t=N[e+40>>2];C=N[c+56>>2];u=N[e+36>>2];D=N[c+52>>2];h=Q(b*Q(f*Q(-N[e+76>>2])));i=Q(b*Q(f*Q(-N[e+72>>2])));f=Q(b*Q(f*Q(-N[e+68>>2])));b=N[d+404>>2];if(b!=Q(0)){n=N[e+56>>2];o=N[e+60>>2];p=N[e+52>>2];q=Q(f*N[d+408>>2]);N[d+372>>2]=Q(b*q)+N[d+372>>2];l=Q(i*N[d+412>>2]);N[d+376>>2]=Q(b*l)+N[d+376>>2];k=b;b=Q(h*N[d+416>>2]);N[d+380>>2]=Q(k*b)+N[d+380>>2];k=N[d+612>>2];w=N[d+364>>2];x=N[d+356>>2];E=N[d+360>>2];F=N[d+608>>2];G=N[d+348>>2];H=N[d+340>>2];I=N[d+344>>2];p=Q(p-N[d+52>>2]);z=Q(n-N[d+56>>2]);n=Q(Q(p*l)-Q(q*z));o=Q(o-N[d+60>>2]);l=Q(Q(z*b)-Q(l*o));b=Q(Q(o*q)-Q(b*p));N[d+388>>2]=Q(Q(Q(N[d+332>>2]*n)+Q(Q(N[d+324>>2]*l)+Q(b*N[d+328>>2])))*N[d+604>>2])+N[d+388>>2];N[d+392>>2]=Q(F*Q(Q(G*n)+Q(Q(H*l)+Q(b*I))))+N[d+392>>2];N[d+396>>2]=Q(k*Q(Q(w*n)+Q(Q(x*l)+Q(b*E))))+N[d+396>>2]}b=N[c+404>>2];if(b==Q(0)){break e}f=Q(N[c+408>>2]*Q(-f));N[c+372>>2]=Q(b*f)+N[c+372>>2];i=Q(N[c+412>>2]*Q(-i));N[c+376>>2]=Q(b*i)+N[c+376>>2];k=b;b=Q(N[c+416>>2]*Q(-h));N[c+380>>2]=Q(k*b)+N[c+380>>2];q=N[c+612>>2];l=N[c+364>>2];n=N[c+356>>2];o=N[c+360>>2];p=N[c+608>>2];k=N[c+348>>2];w=N[c+340>>2];x=N[c+344>>2];u=Q(u-D);t=Q(t-C);h=Q(Q(u*i)-Q(f*t));s=Q(s-B);i=Q(Q(t*b)-Q(i*s));b=Q(Q(s*f)-Q(b*u));N[c+388>>2]=Q(Q(Q(N[c+332>>2]*h)+Q(Q(N[c+324>>2]*i)+Q(b*N[c+328>>2])))*N[c+604>>2])+N[c+388>>2];N[c+392>>2]=Q(p*Q(Q(k*h)+Q(Q(w*i)+Q(b*x))))+N[c+392>>2];N[c+396>>2]=Q(q*Q(Q(l*h)+Q(Q(n*i)+Q(b*o))))+N[c+396>>2]}m=m+1|0;if((m|0)>2]){continue}break}c=J[a+324>>2]}v=v+1|0;if((v|0)<(c|0)){continue}break}}ua[J[8263]]()}ua[J[8263]]();sa=y+16|0}function El(a,b,c,d){a=a|0;b=b|0;c=c|0;d=Q(d);var e=0,f=Q(0),g=0,h=Q(0),i=0,j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=0,o=0,p=Q(0),q=0,r=0,s=0,t=0,u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=0,A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=Q(0),H=Q(0),I=Q(0),L=Q(0),M=0;e=sa-208|0;sa=e;a:{if(N[J[a+4>>2]+848>>2]>2];k=Q(Q(N[b+8>>2]*d)+p);v=N[c+4>>2];h=Q(Q(N[b+4>>2]*d)+v);w=N[c>>2];l=Q(Q(N[b>>2]*d)+w);r=J[a+8>>2];g=J[r+8>>2];q=J[a+4>>2];i=J[q+836>>2];s=(g|0)==(i|0);b:{if(!s){o=J[a+12>>2];i=J[o+8>>2];f=Q(k-N[i+60>>2]);m=Q(l-N[i+52>>2]);j=Q(h-N[i+56>>2]);x=Q(Q(N[i+44>>2]*f)+Q(Q(N[i+12>>2]*m)+Q(j*N[i+28>>2])));y=Q(Q(N[i+40>>2]*f)+Q(Q(N[i+8>>2]*m)+Q(j*N[i+24>>2])));f=Q(Q(N[i+36>>2]*f)+Q(Q(N[i+4>>2]*m)+Q(j*N[i+20>>2])));break b}f=Q(k-N[i+60>>2]);m=Q(l-N[i+52>>2]);j=Q(h-N[i+56>>2]);x=Q(Q(N[i+44>>2]*f)+Q(Q(N[i+12>>2]*m)+Q(j*N[i+28>>2])));y=Q(Q(N[i+40>>2]*f)+Q(Q(N[i+8>>2]*m)+Q(j*N[i+24>>2])));o=J[a+12>>2];g=J[o+8>>2];f=Q(Q(N[i+36>>2]*f)+Q(Q(N[i+4>>2]*m)+Q(j*N[i+20>>2])))}z=J[q+844>>2];A=N[g+20>>2];B=N[g+36>>2];C=N[g+40>>2];D=N[g+8>>2];E=N[g+24>>2];m=N[g+44>>2];j=N[g+60>>2];F=N[g+12>>2];G=N[g+52>>2];H=N[g+28>>2];I=N[g+56>>2];L=N[g+4>>2];J[e+28>>2]=0;u=m;m=Q(p-j);j=Q(w-G);p=Q(v-I);N[e+24>>2]=Q(u*m)+Q(Q(F*j)+Q(H*p));N[e+20>>2]=Q(C*m)+Q(Q(D*j)+Q(p*E));J[e+12>>2]=0;N[e+8>>2]=x;N[e+4>>2]=y;N[e>>2]=f;N[e+16>>2]=Q(B*m)+Q(Q(L*j)+Q(p*A));g=J[b+12>>2];J[e+72>>2]=J[b+8>>2];J[e+76>>2]=g;g=J[b>>2];b=J[b+4>>2];J[e+92>>2]=0;J[e+96>>2]=0;J[e+124>>2]=0;J[e+128>>2]=0;J[e+132>>2]=0;J[e+136>>2]=0;J[e+140>>2]=0;J[e+144>>2]=0;J[e+148>>2]=0;J[e+152>>2]=0;J[e+156>>2]=0;J[e+160>>2]=0;J[e+164>>2]=0;N[e+52>>2]=h;N[e+56>>2]=k;J[e+60>>2]=0;J[e+64>>2]=g;J[e+68>>2]=b;J[e+84>>2]=0;J[e+88>>2]=0;N[e+80>>2]=d;J[e+116>>2]=0;J[e+120>>2]=0;N[e+48>>2]=l;b=J[c+12>>2];J[e+40>>2]=J[c+8>>2];J[e+44>>2]=b;b=J[c+4>>2];J[e+32>>2]=J[c>>2];J[e+36>>2]=b;b=J[r>>2];b=b?b:r;c=J[o>>2];g=c?c:o;c:{if(!s){n=a+24|0;c=a+28|0;t=a+20|0;i=b;b=a+16|0;break c}n=a+28|0;c=a+24|0;t=a+16|0;i=g;g=b;b=a+20|0}g=J[g+4>>2];t=J[t>>2];M=J[b>>2];b=J[c>>2];c=J[n>>2];n=J[i+4>>2];J[e+204>>2]=n;J[e+112>>2]=c;J[e+108>>2]=b;J[e+104>>2]=M;J[e+100>>2]=t;J[e+200>>2]=g;if(J[g+4>>2]==31){g=J[(J[g+32>>2]+P(b,80)|0)+64>>2];J[e+200>>2]=g}if(J[n+4>>2]==31){n=J[(J[n+32>>2]+P(c,80)|0)+64>>2];J[e+204>>2]=n}i=a+4|0;d:{e:{b=J[g+16>>2];if(!b){break e}c=J[n+16>>2];if(!c){break e}h=N[b+12>>2];l=N[c+12>>2];f=N[b+8>>2];m=N[c+8>>2];d=N[c+4>>2];k=N[b+4>>2];N[e+96>>2]=N[b>>2]*N[c>>2];j=Q(k*d);j=j>2]=j>Q(10)?Q(10):j;f=Q(Q(f*d)+Q(k*m));f=f>2]=f>Q(10)?Q(10):f;d=Q(Q(h*d)+Q(k*l));d=dQ(10)?Q(10):d;break d}b=J[r+8>>2];d=N[b+228>>2];c=J[o+8>>2];k=N[c+228>>2];h=Q(d*k);h=h>2]=h>Q(10)?Q(10):h;N[e+96>>2]=N[b+232>>2]*N[c+232>>2];h=Q(Q(k*N[b+236>>2])+Q(d*N[c+236>>2]));h=h>2]=h>Q(10)?Q(10):h;d=Q(Q(k*N[b+240>>2])+Q(d*N[c+240>>2]));d=dQ(10)?Q(10):d}N[e+92>>2]=d;d=N[e+72>>2];f:{if(Q(R(d))>Q(.7071067690849304)){h=N[e+68>>2];l=Q(Q(h*h)+Q(d*d));k=Q(Q(1)/Q(Y(l)));l=Q(l*k);f=Q(k*Q(-d));j=N[e+64>>2];m=Q(f*j);d=Q(h*k);h=Q(d*Q(-j));j=Q(0);break f}l=N[e+64>>2];h=N[e+68>>2];f=Q(Q(l*l)+Q(h*h));k=Q(Q(1)/Q(Y(f)));m=Q(f*k);j=Q(k*Q(-h));h=Q(d*j);f=Q(l*k);l=Q(f*Q(-d));d=Q(0)}N[e+192>>2]=m;N[e+188>>2]=h;N[e+172>>2]=f;N[e+184>>2]=l;N[e+176>>2]=d;N[e+168>>2]=j;g=J[i>>2];o=J[q+844>>2];g:{if((o|0)<=0){b=-1;break g}k=N[e+8>>2];h=N[e+4>>2];l=N[e>>2];d=N[q+848>>2];d=Q(d*d);c=0;b=-1;while(1){n=P(c,208)+q|0;f=Q(N[n+12>>2]-k);m=Q(f*f);f=Q(N[n+4>>2]-l);u=Q(f*f);f=Q(N[n+8>>2]-h);f=Q(m+Q(u+Q(f*f)));n=f=0){b=g+P(n,208)|0;d=N[b+144>>2];k=N[b+140>>2];h=N[b+136>>2];c=J[b+168>>2];i:{if(K[e+128|0]&16){l=Q(Q(N[b+88>>2]*h)+Q(0));if(!(Q(Q(k*k)+Q(d*d))>Q(l*l))){break i}}g=J[b+120>>2];Ja(b+4|0,e,208);J[b+120>>2]=g;N[b+136>>2]=h;N[b+140>>2]=k;N[b+144>>2]=d}J[b+168>>2]=c;break h}n=rc(g,e)}c=J[8469];j:{if(!c){break j}b=J[a+12>>2];a=J[a+8>>2];if(!(K[J[a+8>>2]+204|0]&8|K[J[b+8>>2]+204|0]&8)){break j}ua[c|0]((J[i>>2]+P(n,208)|0)+4|0,s?a:b,J[e+100>>2],J[e+108>>2],s?b:a,J[e+104>>2],J[e+112>>2])|0}if(z){break a}a=J[8755];if(!a){break a}ua[a|0](i)}sa=e+208|0}function yi(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0);Gb(a,b,c);N[b+52>>2]=N[a+48>>2];N[b+56>>2]=N[a+52>>2];N[b+60>>2]=N[a+56>>2];N[b- -64>>2]=N[a+60>>2];N[b+68>>2]=N[a- -64>>2];N[b+72>>2]=N[a+68>>2];N[b+76>>2]=N[a+72>>2];N[b+80>>2]=N[a+76>>2];N[b+84>>2]=N[a+80>>2];N[b+88>>2]=N[a+84>>2];N[b+92>>2]=N[a+88>>2];N[b+96>>2]=N[a+92>>2];N[b+100>>2]=N[a+96>>2];N[b+104>>2]=N[a+100>>2];N[b+108>>2]=N[a+104>>2];N[b+112>>2]=N[a+108>>2];N[b+116>>2]=N[a+112>>2];N[b+120>>2]=N[a+116>>2];N[b+124>>2]=N[a+120>>2];N[b+128>>2]=N[a+124>>2];N[b+132>>2]=N[a+128>>2];N[b+136>>2]=N[a+132>>2];N[b+140>>2]=N[a+136>>2];N[b+144>>2]=N[a+140>>2];N[b+148>>2]=N[a+144>>2];N[b+152>>2]=N[a+148>>2];N[b+156>>2]=N[a+152>>2];N[b+160>>2]=N[a+156>>2];N[b+164>>2]=N[a+160>>2];N[b+168>>2]=N[a+164>>2];N[b+172>>2]=N[a+168>>2];N[b+176>>2]=N[a+172>>2];N[b+428>>2]=N[a+968>>2];N[b+412>>2]=N[a+972>>2];N[b+444>>2]=N[a+976>>2];N[b+460>>2]=N[a+980>>2];N[b+476>>2]=N[a+984>>2];N[b+492>>2]=N[a+988>>2];N[b+508>>2]=N[a+992>>2];N[b+524>>2]=N[a+1e3>>2];N[b+540>>2]=N[a+1004>>2];N[b+556>>2]=N[a+1012>>2];N[b+572>>2]=N[a+1020>>2];N[b+588>>2]=N[a+1028>>2];N[b+604>>2]=N[a+1036>>2];N[b+432>>2]=N[a+1056>>2];N[b+416>>2]=N[a+1060>>2];N[b+448>>2]=N[a+1064>>2];N[b+464>>2]=N[a+1068>>2];N[b+480>>2]=N[a+1072>>2];N[b+496>>2]=N[a+1076>>2];N[b+512>>2]=N[a+1080>>2];N[b+528>>2]=N[a+1088>>2];N[b+544>>2]=N[a+1092>>2];N[b+560>>2]=N[a+1100>>2];N[b+576>>2]=N[a+1108>>2];N[b+592>>2]=N[a+1116>>2];N[b+608>>2]=N[a+1124>>2];N[b+436>>2]=N[a+1144>>2];N[b+420>>2]=N[a+1148>>2];N[b+452>>2]=N[a+1152>>2];N[b+468>>2]=N[a+1156>>2];N[b+484>>2]=N[a+1160>>2];N[b+500>>2]=N[a+1164>>2];N[b+516>>2]=N[a+1168>>2];N[b+532>>2]=N[a+1176>>2];N[b+548>>2]=N[a+1180>>2];N[b+564>>2]=N[a+1188>>2];N[b+580>>2]=N[a+1196>>2];N[b+596>>2]=N[a+1204>>2];d=N[a+1212>>2];J[b+440>>2]=0;N[b+612>>2]=d;J[b+616>>2]=0;J[b+600>>2]=0;J[b+584>>2]=0;J[b+568>>2]=0;J[b+552>>2]=0;J[b+536>>2]=0;J[b+520>>2]=0;J[b+504>>2]=0;J[b+488>>2]=0;J[b+472>>2]=0;J[b+456>>2]=0;J[b+424>>2]=0;H[b+620|0]=K[a+996|0];H[b+624|0]=K[a+1008|0];H[b+628|0]=K[a+1016|0];H[b+632|0]=K[a+1024|0];H[b+636|0]=K[a+1032|0];H[b+621|0]=K[a+1084|0];H[b+625|0]=K[a+1096|0];H[b+629|0]=K[a+1104|0];H[b+633|0]=K[a+1112|0];H[b+637|0]=K[a+1120|0];H[b+622|0]=K[a+1172|0];H[b+626|0]=K[a+1184|0];H[b+630|0]=K[a+1192|0];H[b+634|0]=K[a+1200|0];c=K[a+1208|0];H[b+639|0]=0;H[b+635|0]=0;H[b+631|0]=0;H[b+627|0]=0;H[b+623|0]=0;H[b+638|0]=c;N[b+196>>2]=N[a+680>>2];N[b+200>>2]=N[a+684>>2];N[b+204>>2]=N[a+688>>2];N[b+208>>2]=N[a+692>>2];N[b+180>>2]=N[a+696>>2];N[b+184>>2]=N[a+700>>2];N[b+188>>2]=N[a+704>>2];N[b+192>>2]=N[a+708>>2];N[b+212>>2]=N[a+712>>2];N[b+216>>2]=N[a+716>>2];N[b+220>>2]=N[a+720>>2];N[b+224>>2]=N[a+724>>2];N[b+228>>2]=N[a+728>>2];N[b+232>>2]=N[a+732>>2];N[b+236>>2]=N[a+736>>2];N[b+240>>2]=N[a+740>>2];N[b+244>>2]=N[a+744>>2];N[b+248>>2]=N[a+748>>2];N[b+252>>2]=N[a+752>>2];N[b+256>>2]=N[a+756>>2];N[b+260>>2]=N[a+760>>2];N[b+264>>2]=N[a+764>>2];N[b+268>>2]=N[a+768>>2];N[b+272>>2]=N[a+772>>2];N[b+276>>2]=N[a+776>>2];N[b+280>>2]=N[a+780>>2];N[b+284>>2]=N[a+784>>2];N[b+288>>2]=N[a+788>>2];N[b+292>>2]=N[a+876>>2];N[b+296>>2]=N[a+880>>2];N[b+300>>2]=N[a+884>>2];N[b+304>>2]=N[a+888>>2];N[b+308>>2]=N[a+892>>2];N[b+312>>2]=N[a+896>>2];N[b+316>>2]=N[a+900>>2];N[b+320>>2]=N[a+904>>2];N[b+324>>2]=N[a+804>>2];N[b+328>>2]=N[a+808>>2];N[b+332>>2]=N[a+812>>2];N[b+336>>2]=N[a+816>>2];N[b+340>>2]=N[a+820>>2];N[b+344>>2]=N[a+824>>2];N[b+348>>2]=N[a+828>>2];N[b+352>>2]=N[a+832>>2];N[b+356>>2]=N[a+840>>2];N[b+360>>2]=N[a+844>>2];N[b+364>>2]=N[a+848>>2];N[b+368>>2]=N[a+852>>2];N[b+372>>2]=N[a+860>>2];N[b+376>>2]=N[a+864>>2];N[b+380>>2]=N[a+868>>2];N[b+384>>2]=N[a+872>>2];H[b+388|0]=K[a+792|0];H[b+392|0]=K[a+795|0];H[b+396|0]=K[a+798|0];H[b+400|0]=K[a+836|0];H[b+404|0]=K[a+856|0];H[b+389|0]=K[a+793|0];H[b+393|0]=K[a+796|0];H[b+397|0]=K[a+799|0];H[b+401|0]=K[a+837|0];H[b+405|0]=K[a+857|0];H[b+390|0]=K[a+794|0];H[b+394|0]=K[a+797|0];H[b+398|0]=K[a+800|0];H[b+402|0]=K[a+838|0];c=K[a+858|0];H[b+407|0]=0;H[b+403|0]=0;H[b+399|0]=0;H[b+395|0]=0;H[b+391|0]=0;H[b+406|0]=c;a=J[a+1232>>2];J[b+408>>2]=0;J[b+640>>2]=a;return 8485}function xo(a,b,c,d,e,f){a=a|0;b=Q(b);c=Q(c);d=d|0;e=e|0;f=f|0;var g=0,h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=0,t=Q(0),u=Q(0),v=Q(0),w=0,x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=0,E=0,F=0,G=Q(0),H=Q(0),I=Q(0),K=0,L=Q(0);g=sa-144|0;sa=g;t=N[e+56>>2];u=N[e+52>>2];v=N[e+48>>2];J[g+136>>2]=0;J[g+140>>2]=0;J[g+128>>2]=0;J[g+132>>2]=0;s=d<<2;c=Q(c*Q(.5));N[s+(g+128|0)>>2]=c;J[g+120>>2]=0;J[g+124>>2]=0;J[g+112>>2]=0;J[g+116>>2]=0;F=(d+1|0)%3|0;w=F<<2;N[w+(g+112|0)>>2]=b;J[g+104>>2]=0;J[g+108>>2]=0;J[g+96>>2]=0;J[g+100>>2]=0;D=(d+2|0)%3<<2;N[D+(g+96|0)>>2]=b;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;E=s;s=g+80|0;N[E+s>>2]=-c;D=s+D|0;w=s+w|0;c=N[g+136>>2];k=N[g+132>>2];l=N[g+128>>2];s=0;while(1){m=Q(Q(s|0)*Q(.01745329238474369));K=w,L=Q(Na(m)*b),N[K>>2]=L;K=D,L=Q(Ma(m)*b),N[K>>2]=L;m=N[e+8>>2];n=N[e>>2];o=N[e+4>>2];p=N[e+24>>2];q=N[e+16>>2];r=N[e+20>>2];h=N[e+40>>2];i=N[e+32>>2];j=N[e+36>>2];J[g+76>>2]=0;N[g+72>>2]=t+Q(Q(h*c)+Q(Q(i*l)+Q(k*j)));N[g+68>>2]=u+Q(Q(p*c)+Q(Q(q*l)+Q(k*r)));N[g+64>>2]=v+Q(Q(m*c)+Q(Q(n*l)+Q(o*k)));J[g+60>>2]=0;x=h;h=N[g+88>>2];y=i;i=N[g+80>>2];z=j;j=N[g+84>>2];N[g+56>>2]=t+Q(Q(x*h)+Q(Q(y*i)+Q(z*j)));N[g+52>>2]=u+Q(Q(p*h)+Q(Q(q*i)+Q(r*j)));N[g+48>>2]=v+Q(Q(m*h)+Q(Q(n*i)+Q(o*j)));ua[J[J[a>>2]+16>>2]](a,g- -64|0,g+48|0,f);E=s>>>0<330;s=s+30|0;if(E){continue}break}m=N[e+8>>2];n=N[e>>2];o=N[e+4>>2];p=N[e+24>>2];q=N[e+16>>2];r=N[e+20>>2];h=N[e+40>>2];i=N[e+32>>2];j=N[e+36>>2];J[g+76>>2]=0;N[g+72>>2]=t+Q(Q(h*c)+Q(Q(i*l)+Q(k*j)));N[g+68>>2]=u+Q(Q(p*c)+Q(Q(q*l)+Q(k*r)));N[g+64>>2]=v+Q(Q(m*c)+Q(Q(n*l)+Q(o*k)));J[g+60>>2]=0;x=h;A=N[g+120>>2];h=Q(A-c);y=i;B=N[g+112>>2];i=Q(B-l);z=j;C=N[g+116>>2];j=Q(C-k);N[g+56>>2]=t+Q(Q(x*h)+Q(Q(y*i)+Q(z*j)));N[g+52>>2]=u+Q(Q(p*h)+Q(Q(q*i)+Q(r*j)));N[g+48>>2]=v+Q(Q(m*h)+Q(Q(n*i)+Q(o*j)));s=g- -64|0;w=g+48|0;ua[J[J[a>>2]+16>>2]](a,s,w,f);m=N[e+8>>2];n=N[e>>2];o=N[e+4>>2];p=N[e+24>>2];q=N[e+16>>2];r=N[e+20>>2];h=N[e+40>>2];i=N[e+32>>2];j=N[e+36>>2];J[g+76>>2]=0;N[g+72>>2]=t+Q(Q(h*c)+Q(Q(i*l)+Q(k*j)));N[g+68>>2]=u+Q(Q(p*c)+Q(Q(q*l)+Q(k*r)));N[g+64>>2]=v+Q(Q(m*c)+Q(Q(n*l)+Q(k*o)));J[g+60>>2]=0;x=h;G=Q(-c);h=Q(G-A);y=i;A=Q(-l);i=Q(A-B);z=j;B=Q(-k);j=Q(B-C);N[g+56>>2]=t+Q(Q(x*h)+Q(Q(y*i)+Q(z*j)));N[g+52>>2]=u+Q(Q(p*h)+Q(Q(q*i)+Q(j*r)));N[g+48>>2]=v+Q(Q(m*h)+Q(Q(n*i)+Q(j*o)));ua[J[J[a>>2]+16>>2]](a,s,w,f);m=N[e+8>>2];n=N[e>>2];o=N[e+4>>2];p=N[e+24>>2];q=N[e+16>>2];r=N[e+20>>2];h=N[e+40>>2];i=N[e+32>>2];j=N[e+36>>2];J[g+76>>2]=0;N[g+72>>2]=t+Q(Q(h*c)+Q(Q(i*l)+Q(k*j)));N[g+68>>2]=u+Q(Q(p*c)+Q(Q(q*l)+Q(k*r)));N[g+64>>2]=v+Q(Q(m*c)+Q(Q(n*l)+Q(k*o)));J[g+60>>2]=0;x=h;C=N[g+104>>2];h=Q(C-c);y=i;H=N[g+96>>2];i=Q(H-l);z=j;I=N[g+100>>2];j=Q(I-k);N[g+56>>2]=t+Q(Q(x*h)+Q(Q(y*i)+Q(z*j)));N[g+52>>2]=u+Q(Q(p*h)+Q(Q(q*i)+Q(r*j)));N[g+48>>2]=v+Q(Q(m*h)+Q(Q(n*i)+Q(o*j)));ua[J[J[a>>2]+16>>2]](a,s,w,f);m=N[e+8>>2];n=N[e>>2];o=N[e+4>>2];p=N[e+24>>2];q=N[e+16>>2];r=N[e+20>>2];h=N[e+40>>2];i=N[e+32>>2];j=N[e+36>>2];J[g+76>>2]=0;N[g+72>>2]=t+Q(Q(h*c)+Q(Q(i*l)+Q(k*j)));N[g+68>>2]=u+Q(Q(p*c)+Q(Q(q*l)+Q(k*r)));N[g+64>>2]=v+Q(Q(m*c)+Q(Q(n*l)+Q(k*o)));J[g+60>>2]=0;x=h;h=Q(G-C);y=i;i=Q(A-H);z=j;j=Q(B-I);N[g+56>>2]=t+Q(Q(x*h)+Q(Q(y*i)+Q(z*j)));N[g+52>>2]=u+Q(Q(p*h)+Q(Q(q*i)+Q(j*r)));N[g+48>>2]=v+Q(Q(m*h)+Q(Q(n*i)+Q(j*o)));ua[J[J[a>>2]+16>>2]](a,s,w,f);J[g+72>>2]=0;J[g+76>>2]=0;J[g+64>>2]=0;J[g+68>>2]=0;J[s+(d<<2)>>2]=1065353216;J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;J[w+(F<<2)>>2]=1065353216;m=N[e+8>>2];n=N[e>>2];o=N[e+4>>2];p=N[e+24>>2];q=N[e+16>>2];r=N[e+20>>2];h=N[e+40>>2];i=N[e+32>>2];j=N[e+36>>2];J[g+44>>2]=0;N[g+40>>2]=t-Q(Q(h*c)+Q(Q(i*l)+Q(k*j)));N[g+36>>2]=u-Q(Q(p*c)+Q(Q(q*l)+Q(k*r)));N[g+32>>2]=v-Q(Q(m*c)+Q(Q(n*l)+Q(k*o)));J[g+28>>2]=0;c=N[g+72>>2];k=N[g+64>>2];l=N[g+68>>2];N[g+24>>2]=Q(h*c)+Q(Q(i*k)+Q(j*l));N[g+20>>2]=Q(p*c)+Q(Q(q*k)+Q(r*l));N[g+16>>2]=Q(m*c)+Q(Q(n*k)+Q(o*l));J[g+12>>2]=0;c=N[g+56>>2];k=N[g+48>>2];l=N[g+52>>2];N[g+8>>2]=Q(h*c)+Q(Q(i*k)+Q(j*l));N[g+4>>2]=Q(p*c)+Q(Q(q*k)+Q(r*l));N[g>>2]=Q(m*c)+Q(Q(n*k)+Q(o*l));ua[J[J[a>>2]+68>>2]](a,g+32|0,g+16|0,g,b,b,Q(0),Q(6.2831854820251465),f,0,Q(10));sa=g+144|0}function xc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=Q(0),l=0,m=0,n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0);a:{b:{if(K[a+165|0]){d=J[a+88>>2];if(!(!c|(d|0)<=0)){e=J[a+96>>2];n=N[a+168>>2];o=N[b+8>>2];p=N[b+4>>2];q=N[b>>2];c=0;while(1){f=e+(c<<4)|0;k=Q(N[f+8>>2]-o);r=Q(k*k);k=Q(N[f>>2]-q);s=Q(k*k);k=Q(N[f+4>>2]-p);if(n>=Q(r+Q(s+Q(k*k)))){break b}c=c+1|0;if((d|0)!=(c|0)){continue}break}}c=J[a+32>>2];J[c+12>>2]=J[c+12>>2]+1;c:{if(J[a+92>>2]!=(d|0)){break c}h=d?d<<1:1;if((h|0)<=(d|0)){break c}if(h){J[8456]=J[8456]+1;g=ua[J[8258]](h<<4,16)|0;d=J[a+88>>2]}d:{if((d|0)<=0){break d}i=d&1;c=0;if((d|0)!=1){l=d&-2;d=0;while(1){j=c<<4;f=j+g|0;m=j+J[a+96>>2]|0;e=J[m+4>>2];J[f>>2]=J[m>>2];J[f+4>>2]=e;e=J[m+12>>2];J[f+8>>2]=J[m+8>>2];J[f+12>>2]=e;e=j|16;f=e+g|0;j=e+J[a+96>>2]|0;e=J[j+4>>2];J[f>>2]=J[j>>2];J[f+4>>2]=e;e=J[j+12>>2];J[f+8>>2]=J[j+8>>2];J[f+12>>2]=e;c=c+2|0;d=d+2|0;if((l|0)!=(d|0)){continue}break}}if(!i){break d}c=c<<4;f=c+g|0;e=c+J[a+96>>2]|0;c=J[e+4>>2];J[f>>2]=J[e>>2];J[f+4>>2]=c;c=J[e+12>>2];J[f+8>>2]=J[e+8>>2];J[f+12>>2]=c}c=J[a+96>>2];if(!(c?!c|!K[a+100|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}J[a+96>>2]=g;H[a+100|0]=1;J[a+92>>2]=h;d=J[a+88>>2]}c=J[b+4>>2];e=J[a+96>>2]+(d<<4)|0;J[e>>2]=J[b>>2];J[e+4>>2]=c;c=J[b+12>>2];J[e+8>>2]=J[b+8>>2];J[e+12>>2]=c;b=J[a+88>>2];J[a+88>>2]=b+1;J[J[a+32>>2]+16>>2]=J[a+96>>2];return b}d=J[a+108>>2];if(!(!c|(d|0)<=0)){e=J[a+116>>2];n=N[a+168>>2];o=N[b+8>>2];p=N[b+4>>2];q=N[b>>2];c=0;while(1){f=e+(c<<2)|0;k=Q(N[f+8>>2]-o);r=Q(k*k);k=Q(N[f>>2]-q);s=Q(k*k);k=Q(N[f+4>>2]-p);if(n>=Q(r+Q(s+Q(k*k)))){break a}c=c+3|0;if((d|0)>(c|0)){continue}break}}e=J[a+112>>2];e:{if((e|0)!=(d|0)){break e}e=d?d<<1:1;if((e|0)<=(d|0)){e=d;break e}if(e){J[8456]=J[8456]+1;h=ua[J[8258]](e<<2,16)|0;d=J[a+108>>2]}i=J[a+116>>2];f:{g:{if((d|0)>0){c=0;if(d>>>0>=4){g=d&-4;while(1){l=c<<2;N[l+h>>2]=N[i+l>>2];f=l|4;N[f+h>>2]=N[f+i>>2];f=l|8;N[f+h>>2]=N[f+i>>2];f=l|12;N[f+h>>2]=N[f+i>>2];c=c+4|0;j=j+4|0;if((g|0)!=(j|0)){continue}break}}g=d&3;if(g){while(1){f=c<<2;N[f+h>>2]=N[f+i>>2];c=c+1|0;m=m+1|0;if((g|0)!=(m|0)){continue}break}}if(K[a+120|0]){break g}break f}if(!i|!K[a+120|0]){break f}}if(i){J[8457]=J[8457]+1;ua[J[8259]](i)}d=J[a+108>>2]}J[a+116>>2]=h;J[a+112>>2]=e;H[a+120|0]=1}g=J[a+116>>2];N[g+(d<<2)>>2]=N[b>>2];d=d+1|0;J[a+108>>2]=d;h:{if((d|0)!=(e|0)){f=e;c=g;e=d;break h}f=e?e<<1:1;if((e|0)>=(f|0)){f=e;c=g;break h}i:{if(!f){c=0;break i}J[8456]=J[8456]+1;c=ua[J[8258]](f<<2,16)|0;g=J[a+116>>2];e=J[a+108>>2]}j:{k:{if((e|0)>0){m=0;h=0;if(e>>>0>=4){l=e&-4;j=0;while(1){i=h<<2;N[i+c>>2]=N[g+i>>2];d=i|4;N[d+c>>2]=N[d+g>>2];d=i|8;N[d+c>>2]=N[d+g>>2];d=i|12;N[d+c>>2]=N[d+g>>2];h=h+4|0;j=j+4|0;if((l|0)!=(j|0)){continue}break}}l=e&3;if(l){while(1){d=h<<2;N[d+c>>2]=N[d+g>>2];h=h+1|0;m=m+1|0;if((l|0)!=(m|0)){continue}break}}if(K[a+120|0]){break k}break j}if(!g|!K[a+120|0]){break j}}if(g){J[8457]=J[8457]+1;ua[J[8259]](g)}e=J[a+108>>2]}J[a+116>>2]=c;J[a+112>>2]=f;H[a+120|0]=1}N[(e<<2)+c>>2]=N[b+4>>2];e=e+1|0;J[a+108>>2]=e;l:{if((e|0)!=(f|0)){d=c;f=e;break l}i=f?f<<1:1;if((i|0)<=(f|0)){d=c;break l}m:{if(!i){d=0;break m}J[8456]=J[8456]+1;d=ua[J[8258]](i<<2,16)|0;c=J[a+116>>2];f=J[a+108>>2]}n:{o:{if((f|0)>0){e=0;h=0;if(f>>>0>=4){l=f&-4;m=0;while(1){j=h<<2;N[j+d>>2]=N[c+j>>2];g=j|4;N[g+d>>2]=N[c+g>>2];g=j|8;N[g+d>>2]=N[c+g>>2];g=j|12;N[g+d>>2]=N[c+g>>2];h=h+4|0;m=m+4|0;if((l|0)!=(m|0)){continue}break}}l=f&3;if(l){while(1){g=h<<2;N[g+d>>2]=N[c+g>>2];h=h+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}if(K[a+120|0]){break o}break n}if(!c|!K[a+120|0]){break n}}if(c){J[8457]=J[8457]+1;ua[J[8259]](c)}f=J[a+108>>2]}J[a+116>>2]=d;J[a+112>>2]=i;H[a+120|0]=1}N[(f<<2)+d>>2]=N[b+8>>2];b=f+1|0;J[a+108>>2]=b;a=J[a+32>>2];J[a+16>>2]=d;J[a+12>>2]=J[a+12>>2]+1;c=((b|0)/3|0)-1|0}return c}return(c>>>0)/3|0}function aj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=0,p=0,q=0,r=0,s=0;c=sa-80|0;sa=c;s=ua[J[J[a>>2]+28>>2]](a)|0;if((s|0)>0){i=N[a+12>>2];j=N[a+8>>2];k=N[a+4>>2];while(1){ua[J[J[a>>2]+16>>2]](a,c+76|0,c+52|0,c- -64|0,c+56|0,c+72|0,c+68|0,c+48|0,c+60|0,r);a:{b:{switch(J[c+64>>2]){case 0:c:{switch(J[c+60>>2]-2|0){case 0:d=0;if(J[c+48>>2]<=0){break a}while(1){g=J[c+76>>2];h=J[c+56>>2];e=J[c+72>>2]+P(J[c+68>>2],d)|0;f=g+P(h,J[e>>2])|0;l=N[f>>2];m=N[f+4>>2];n=N[f+8>>2];J[c+12>>2]=0;N[c+8>>2]=i*n;N[c+4>>2]=j*m;N[c>>2]=k*l;f=g+P(h,J[e+4>>2])|0;l=N[f>>2];m=N[f+4>>2];n=N[f+8>>2];J[c+28>>2]=0;N[c+24>>2]=i*n;N[c+20>>2]=j*m;N[c+16>>2]=k*l;e=g+P(h,J[e+8>>2])|0;l=N[e>>2];m=N[e+4>>2];n=N[e+8>>2];J[c+44>>2]=0;N[c+40>>2]=i*n;N[c+36>>2]=j*m;N[c+32>>2]=k*l;ua[J[J[b>>2]+8>>2]](b,c,r,d);d=d+1|0;if((d|0)>2]){continue}break};break a;case 1:d=0;if(J[c+48>>2]<=0){break a}while(1){g=J[c+76>>2];h=J[c+56>>2];e=J[c+72>>2]+P(J[c+68>>2],d)|0;f=g+P(h,L[e>>1])|0;l=N[f>>2];m=N[f+4>>2];n=N[f+8>>2];J[c+12>>2]=0;N[c+8>>2]=i*n;N[c+4>>2]=j*m;N[c>>2]=k*l;f=g+P(h,L[e+2>>1])|0;l=N[f>>2];m=N[f+4>>2];n=N[f+8>>2];J[c+28>>2]=0;N[c+24>>2]=i*n;N[c+20>>2]=j*m;N[c+16>>2]=k*l;e=g+P(h,L[e+4>>1])|0;l=N[e>>2];m=N[e+4>>2];n=N[e+8>>2];J[c+44>>2]=0;N[c+40>>2]=i*n;N[c+36>>2]=j*m;N[c+32>>2]=k*l;ua[J[J[b>>2]+8>>2]](b,c,r,d);d=d+1|0;if((d|0)>2]){continue}break};break a;case 3:break c;default:break a}}d=0;if(J[c+48>>2]<=0){break a}while(1){g=J[c+76>>2];h=J[c+56>>2];e=J[c+72>>2]+P(J[c+68>>2],d)|0;f=g+P(h,K[e|0])|0;l=N[f>>2];m=N[f+4>>2];n=N[f+8>>2];J[c+12>>2]=0;N[c+8>>2]=i*n;N[c+4>>2]=j*m;N[c>>2]=k*l;f=g+P(h,K[e+1|0])|0;l=N[f>>2];m=N[f+4>>2];n=N[f+8>>2];J[c+28>>2]=0;N[c+24>>2]=i*n;N[c+20>>2]=j*m;N[c+16>>2]=k*l;e=g+P(h,K[e+2|0])|0;l=N[e>>2];m=N[e+4>>2];n=N[e+8>>2];J[c+44>>2]=0;N[c+40>>2]=i*n;N[c+36>>2]=j*m;N[c+32>>2]=k*l;ua[J[J[b>>2]+8>>2]](b,c,r,d);d=d+1|0;if((d|0)>2]){continue}break};break a;case 1:break b;default:break a}}d:{switch(J[c+60>>2]-2|0){case 0:d=0;if(J[c+48>>2]<=0){break a}while(1){g=J[c+76>>2];h=J[c+56>>2];e=J[c+72>>2]+P(J[c+68>>2],d)|0;f=g+P(h,J[e>>2])|0;o=O[f>>3];p=O[f+8>>3];q=O[f+16>>3];J[c+12>>2]=0;N[c+8>>2]=i*Q(q);N[c+4>>2]=j*Q(p);N[c>>2]=k*Q(o);f=g+P(h,J[e+4>>2])|0;o=O[f>>3];p=O[f+8>>3];q=O[f+16>>3];J[c+28>>2]=0;N[c+24>>2]=i*Q(q);N[c+20>>2]=j*Q(p);N[c+16>>2]=k*Q(o);e=g+P(h,J[e+8>>2])|0;o=O[e>>3];p=O[e+8>>3];q=O[e+16>>3];J[c+44>>2]=0;N[c+40>>2]=i*Q(q);N[c+36>>2]=j*Q(p);N[c+32>>2]=k*Q(o);ua[J[J[b>>2]+8>>2]](b,c,r,d);d=d+1|0;if((d|0)>2]){continue}break};break a;case 1:d=0;if(J[c+48>>2]<=0){break a}while(1){g=J[c+76>>2];h=J[c+56>>2];e=J[c+72>>2]+P(J[c+68>>2],d)|0;f=g+P(h,L[e>>1])|0;o=O[f>>3];p=O[f+8>>3];q=O[f+16>>3];J[c+12>>2]=0;N[c+8>>2]=i*Q(q);N[c+4>>2]=j*Q(p);N[c>>2]=k*Q(o);f=g+P(h,L[e+2>>1])|0;o=O[f>>3];p=O[f+8>>3];q=O[f+16>>3];J[c+28>>2]=0;N[c+24>>2]=i*Q(q);N[c+20>>2]=j*Q(p);N[c+16>>2]=k*Q(o);e=g+P(h,L[e+4>>1])|0;o=O[e>>3];p=O[e+8>>3];q=O[e+16>>3];J[c+44>>2]=0;N[c+40>>2]=i*Q(q);N[c+36>>2]=j*Q(p);N[c+32>>2]=k*Q(o);ua[J[J[b>>2]+8>>2]](b,c,r,d);d=d+1|0;if((d|0)>2]){continue}break};break a;case 3:break d;default:break a}}d=0;if(J[c+48>>2]<=0){break a}while(1){g=J[c+76>>2];h=J[c+56>>2];e=J[c+72>>2]+P(J[c+68>>2],d)|0;f=g+P(h,K[e|0])|0;o=O[f>>3];p=O[f+8>>3];q=O[f+16>>3];J[c+12>>2]=0;N[c+8>>2]=i*Q(q);N[c+4>>2]=j*Q(p);N[c>>2]=k*Q(o);f=g+P(h,K[e+1|0])|0;o=O[f>>3];p=O[f+8>>3];q=O[f+16>>3];J[c+28>>2]=0;N[c+24>>2]=i*Q(q);N[c+20>>2]=j*Q(p);N[c+16>>2]=k*Q(o);e=g+P(h,K[e+2|0])|0;o=O[e>>3];p=O[e+8>>3];q=O[e+16>>3];J[c+44>>2]=0;N[c+40>>2]=i*Q(q);N[c+36>>2]=j*Q(p);N[c+32>>2]=k*Q(o);ua[J[J[b>>2]+8>>2]](b,c,r,d);d=d+1|0;if((d|0)>2]){continue}break}}ua[J[J[a>>2]+24>>2]](a,r);r=r+1|0;if((s|0)!=(r|0)){continue}break}}sa=c+80|0}function am(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=0,o=0,p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=0,C=0,D=0,E=0,F=Q(0),G=Q(0),H=Q(0),I=0,K=0,L=0;d=sa-256|0;sa=d;ua[J[8262]](3795);J[a+4>>2]=J[a+4>>2]+1;B=J[c+36>>2];D=P(B,80);E=J[a+12>>2];I=J[E+4>>2];n=J[(D+J[I+32>>2]|0)+64>>2];c=J[a+8>>2];C=J[b+36>>2];b=J[J[c+4>>2]+32>>2]+P(C,80)|0;o=J[b+64>>2];c=J[c+12>>2];F=N[c+52>>2];G=N[c+56>>2];e=N[c+24>>2];f=N[c+20>>2];g=N[c+40>>2];h=N[c+36>>2];H=N[c+48>>2];i=N[c+8>>2];j=N[c>>2];k=N[c+4>>2];l=N[c+16>>2];m=N[c+32>>2];p=N[b+32>>2];q=N[b>>2];r=N[b+16>>2];s=N[b+56>>2];t=N[b+48>>2];u=N[b+52>>2];v=N[b+36>>2];w=N[b+4>>2];x=N[b+20>>2];y=N[b+40>>2];z=N[b+8>>2];A=N[b+24>>2];b=0;J[d+248>>2]=0;J[d+232>>2]=0;J[d+216>>2]=0;N[d+228>>2]=Q(y*g)+Q(Q(z*m)+Q(h*A));N[d+224>>2]=Q(v*g)+Q(Q(w*m)+Q(h*x));N[d+212>>2]=Q(y*e)+Q(Q(z*l)+Q(f*A));N[d+208>>2]=Q(v*e)+Q(Q(w*l)+Q(f*x));N[d+244>>2]=G+Q(Q(s*g)+Q(Q(t*m)+Q(h*u)));N[d+240>>2]=F+Q(Q(s*e)+Q(Q(t*l)+Q(f*u)));J[d+200>>2]=0;N[d+220>>2]=Q(p*g)+Q(Q(q*m)+Q(h*r));N[d+204>>2]=Q(p*e)+Q(Q(q*l)+Q(f*r));N[d+196>>2]=Q(y*i)+Q(Q(z*j)+Q(k*A));N[d+192>>2]=Q(v*i)+Q(Q(w*j)+Q(k*x));N[d+188>>2]=Q(p*i)+Q(Q(q*j)+Q(k*r));N[d+236>>2]=H+Q(Q(s*i)+Q(Q(t*j)+Q(k*u)));c=J[E+12>>2];F=N[c+52>>2];G=N[c+56>>2];e=N[c+24>>2];f=N[c+20>>2];g=N[c+40>>2];h=N[c+36>>2];H=N[c+48>>2];i=N[c+8>>2];j=N[c>>2];k=N[c+4>>2];l=N[c+16>>2];m=N[c+32>>2];c=J[I+32>>2]+D|0;p=N[c+32>>2];q=N[c>>2];r=N[c+16>>2];s=N[c+56>>2];t=N[c+48>>2];u=N[c+52>>2];v=N[c+36>>2];w=N[c+4>>2];x=N[c+20>>2];y=N[c+40>>2];z=N[c+8>>2];A=N[c+24>>2];J[d+184>>2]=0;J[d+168>>2]=0;J[d+152>>2]=0;N[d+164>>2]=Q(y*g)+Q(Q(z*m)+Q(h*A));N[d+160>>2]=Q(v*g)+Q(Q(w*m)+Q(h*x));N[d+148>>2]=Q(y*e)+Q(Q(z*l)+Q(f*A));N[d+144>>2]=Q(v*e)+Q(Q(w*l)+Q(f*x));N[d+180>>2]=G+Q(Q(s*g)+Q(Q(t*m)+Q(h*u)));N[d+176>>2]=F+Q(Q(s*e)+Q(Q(t*l)+Q(f*u)));J[d+136>>2]=0;N[d+156>>2]=Q(p*g)+Q(Q(q*m)+Q(h*r));N[d+140>>2]=Q(p*e)+Q(Q(q*l)+Q(f*r));N[d+132>>2]=Q(y*i)+Q(Q(z*j)+Q(k*A));N[d+128>>2]=Q(v*i)+Q(Q(w*j)+Q(k*x));N[d+124>>2]=Q(p*i)+Q(Q(q*j)+Q(k*r));N[d+172>>2]=H+Q(Q(s*i)+Q(Q(t*j)+Q(k*u)));ua[J[J[o>>2]+8>>2]](o,d+188|0,d+108|0,d+92|0);ua[J[J[n>>2]+8>>2]](n,d+124|0,d+76|0,d+60|0);e=N[J[a+24>>2]+32>>2];f=Q(N[d+108>>2]-e);N[d+108>>2]=f;N[d+112>>2]=N[d+112>>2]-e;N[d+116>>2]=N[d+116>>2]-e;N[d+92>>2]=e+N[d+92>>2];N[d+96>>2]=e+N[d+96>>2];N[d+100>>2]=e+N[d+100>>2];c=J[8465];a:{if(c){if(!(ua[c|0](o,n)|0)){break a}f=N[d+108>>2]}b=f>N[d+60>>2]|N[d+92>>2]>2]?b:1;c=0;if((N[d+100>>2]>2]|N[d+116>>2]>N[d+68>>2]?c:b)^1|N[d+96>>2]>2]|N[d+112>>2]>N[d+64>>2]){break a}b=J[a+8>>2];c=J[b+8>>2];J[d+56>>2]=C;J[d+52>>2]=-1;J[d+44>>2]=c;J[d+40>>2]=o;J[d+36>>2]=b;J[d+48>>2]=d+188;b=J[a+12>>2];c=J[b+8>>2];J[d+32>>2]=B;J[d+28>>2]=-1;J[d+20>>2]=c;J[d+16>>2]=n;J[d+12>>2]=b;J[d+24>>2]=d+124;b=J[a+28>>2];J[8468]=J[8468]+1;c=B<<16|C;c=(c<<15^-1)+c|0;c=P(c>>>10^c,9);c=c>>>6^c;c=(c<<11^-1)+c|0;c=J[b+12>>2]-1&(c>>>16^c);b:{c:{if((c|0)>=J[b+28>>2]){break c}c=J[J[b+36>>2]+(c<<2)>>2];if((c|0)==-1){break c}n=J[b+56>>2];o=J[b+16>>2];while(1){b=o+P(c,12)|0;if(J[b>>2]==(C|0)&J[b+4>>2]==(B|0)){break b}c=J[n+(c<<2)>>2];if((c|0)!=-1){continue}break}}b=0}d:{if(N[J[a+24>>2]+32>>2]>Q(0)){b=J[a+16>>2];b=ua[J[J[b>>2]+8>>2]](b,d+36|0,d+12|0,0,2)|0;break d}if(b){b=J[b+8>>2];break d}b=J[a+16>>2];b=ua[J[J[b>>2]+8>>2]](b,d+36|0,d+12|0,J[a+32>>2],1)|0;c=J[a+28>>2];K=ua[J[J[c>>2]+12>>2]](c,C,B)|0,L=b,J[K+8>>2]=L}c=J[a+24>>2];n=J[c+8>>2];o=J[c+12>>2];D=d+12|0;J[c+12>>2]=D;E=d+36|0;J[c+8>>2]=E;ua[J[J[c>>2]+8>>2]](c,-1,C);c=J[a+24>>2];ua[J[J[c>>2]+12>>2]](c,-1,B);ua[J[J[b>>2]+8>>2]](b,E,D,J[a+20>>2],J[a+24>>2]);a=J[a+24>>2];J[a+8>>2]=n;J[a+12>>2]=o}ua[J[8263]]();sa=d+256|0}function ib(a,b,c,d,e,f,g,h,i,j,k,l){var m=0,n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=0,s=0,t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=0,G=Q(0),I=Q(0),L=Q(0),M=Q(0),O=0,R=0,S=Q(0),T=Q(0),U=Q(0),V=Q(0),W=Q(0),X=0,Y=Q(0),Z=Q(0),_=Q(0),$=0;r=J[a+68>>2];s=r;a:{if((r|0)!=J[a+72>>2]){break a}O=r?r<<1:1;if((r|0)>=(O|0)){break a}if(O){J[8456]=J[8456]+1;R=ua[J[8258]](P(O,152),16)|0;m=J[a+68>>2]}else{m=r}b:{if((m|0)<=0){break b}s=0;if((m|0)!=1){$=m&-2;while(1){F=P(s,152);Ja(F+R|0,F+J[a+76>>2]|0,152);F=P(s|1,152);Ja(F+R|0,F+J[a+76>>2]|0,152);s=s+2|0;X=X+2|0;if((X|0)!=($|0)){continue}break}}if(!(m&1)){break b}m=P(s,152);Ja(m+R|0,m+J[a+76>>2]|0,152)}m=J[a+76>>2];if(!(m?!m|!K[a+80|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](m)}J[a+76>>2]=R;H[a+80|0]=1;J[a+72>>2]=O;s=J[a+68>>2]}J[a+68>>2]=s+1;m=J[a+76>>2]+P(r,152)|0;J[m+140>>2]=e;r=J[a+16>>2];a=J[(r+P(d,244)|0)+240>>2];e=J[(r+P(c,244)|0)+240>>2];J[m+148>>2]=d;J[m+144>>2]=c;S=N[f+84>>2];J[m+132>>2]=0;N[m+104>>2]=S;J[m+96>>2]=0;J[m+100>>2]=0;c:{if(e){s=J[b+4>>2];J[m+16>>2]=J[b>>2];J[m+20>>2]=s;s=J[b+12>>2];J[m+24>>2]=J[b+8>>2];J[m+28>>2]=s;p=N[g+8>>2];n=N[g>>2];o=N[g+4>>2];J[m+12>>2]=0;T=N[m+20>>2];U=N[m+16>>2];G=Q(Q(n*T)-Q(o*U));N[m+8>>2]=G;V=N[m+24>>2];I=Q(Q(p*U)-Q(n*V));N[m+4>>2]=I;L=Q(Q(o*V)-Q(T*p));N[m>>2]=L;p=N[e+332>>2];n=N[e+328>>2];o=N[e+608>>2];q=N[e+348>>2];x=N[e+340>>2];A=N[e+344>>2];t=N[e+612>>2];w=N[e+364>>2];B=N[e+356>>2];C=N[e+360>>2];D=N[e+604>>2];v=N[e+324>>2];J[m+76>>2]=0;t=Q(t*Q(Q(w*G)+Q(Q(B*L)+Q(I*C))));N[m+72>>2]=t;q=Q(o*Q(Q(q*G)+Q(Q(x*L)+Q(I*A))));N[m+68>>2]=q;x=Q(D*Q(Q(p*G)+Q(Q(v*L)+Q(I*n))));N[m+64>>2]=x;break c}J[m+64>>2]=0;J[m+68>>2]=0;J[m>>2]=0;J[m+4>>2]=0;J[m+72>>2]=0;J[m+76>>2]=0;J[m+8>>2]=0;J[m+12>>2]=0;J[m+16>>2]=0;J[m+20>>2]=0;J[m+24>>2]=0;J[m+28>>2]=0}d:{if(a){p=N[b>>2];n=N[b+4>>2];o=N[b+8>>2];J[m+60>>2]=0;Y=Q(-o);N[m+56>>2]=Y;Z=Q(-n);N[m+52>>2]=Z;_=Q(-p);N[m+48>>2]=_;u=N[h+8>>2];y=N[h+4>>2];z=N[h>>2];J[m+44>>2]=0;M=Q(Q(p*y)-Q(z*n));N[m+40>>2]=M;z=Q(Q(o*z)-Q(u*p));N[m+36>>2]=z;y=Q(Q(n*u)-Q(y*o));N[m+32>>2]=y;p=N[a+332>>2];o=N[a+328>>2];n=N[a+608>>2];A=N[a+348>>2];w=N[a+340>>2];B=N[a+344>>2];u=N[a+612>>2];C=N[a+364>>2];D=N[a+356>>2];v=N[a+360>>2];W=N[a+604>>2];E=N[a+324>>2];J[m+92>>2]=0;u=Q(u*Q(Q(C*M)+Q(Q(D*y)+Q(z*v))));N[m+88>>2]=u;n=Q(n*Q(Q(A*M)+Q(Q(w*y)+Q(z*B))));N[m+84>>2]=n;o=Q(W*Q(Q(p*M)+Q(Q(E*y)+Q(z*o))));N[m+80>>2]=o;break d}J[m+80>>2]=0;J[m+84>>2]=0;J[m+32>>2]=0;J[m+36>>2]=0;J[m+88>>2]=0;J[m+92>>2]=0;J[m+40>>2]=0;J[m+44>>2]=0;J[m+48>>2]=0;J[m+52>>2]=0;J[m+56>>2]=0;J[m+60>>2]=0;n=Q(0);o=Q(0)}A=Q(0);W=i;if(e){i=N[g+4>>2];w=N[g>>2];v=Q(N[b+8>>2]*Q(Q(x*i)-Q(w*q)));E=q;q=N[g+8>>2];E=Q(N[e+404>>2]+Q(v+Q(Q(N[b>>2]*Q(Q(E*q)-Q(i*t)))+Q(Q(Q(t*w)-Q(q*x))*N[b+4>>2]))))}else{E=Q(0)}if(a){t=N[h>>2];q=N[h+4>>2];v=Q(N[b+8>>2]*Q(Q(n*t)-Q(o*q)));i=n;n=N[h+8>>2];i=Q(N[a+404>>2]+Q(v+Q(Q(N[b>>2]*Q(Q(u*q)-Q(i*n)))+Q(Q(Q(o*n)-Q(u*t))*N[b+4>>2]))))}else{i=Q(0)}p=Q(W/Q(E+i));N[m+108>>2]=p;w=Q(0);t=Q(0);q=Q(0);x=Q(0);u=Q(0);n=Q(0);if(e){c=r+P(c,244)|0;q=Q(N[c+176>>2]+N[c+208>>2]);x=N[c+192>>2];t=Q(N[c+180>>2]+N[c+212>>2]);u=N[c+196>>2];w=Q(N[c+184>>2]+N[c+216>>2]);n=N[c+200>>2]}o=Q(0);B=Q(0);C=Q(0);D=Q(0);v=Q(0);if(a){a=r+P(d,244)|0;A=Q(N[a+176>>2]+N[a+208>>2]);C=N[a+200>>2];D=N[a+196>>2];B=Q(N[a+184>>2]+N[a+216>>2]);v=N[a+192>>2];o=Q(N[a+180>>2]+N[a+212>>2])}i=Q(0);i=K[f+128|0]&16?Q(p*Q(Q(N[j+44>>2]*Q(-Q(Q(Q(N[f+56>>2]-N[f+40>>2])*N[b+8>>2])+Q(Q(Q(N[f+48>>2]-N[f+32>>2])*N[b>>2])+Q(Q(N[f+52>>2]-N[f+36>>2])*N[b+4>>2])))))/N[j+12>>2])):i;J[m+128>>2]=0;N[m+124>>2]=S;N[m+116>>2]=l;N[m+120>>2]=-S;N[m+112>>2]=Q(p*Q(k-Q(Q(Q(Q(V*w)+Q(Q(U*q)+Q(t*T)))+Q(Q(G*n)+Q(Q(L*x)+Q(u*I))))+Q(Q(Q(Y*B)+Q(Q(_*A)+Q(o*Z)))+Q(Q(M*C)+Q(Q(y*v)+Q(D*z)))))))+i}function Kf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=Q(0),m=Q(0),n=0,o=Q(0),p=Q(0),q=Q(0);J[a+8>>2]=J[b>>2];i=J[a+24>>2];a:{if((i|0)!=J[a+28>>2]){break a}h=i?i<<1:1;if((h|0)<=(i|0)){break a}if(h){J[8456]=J[8456]+1;d=ua[J[8258]](h<<2,16)|0;i=J[a+24>>2]}b:{if((i|0)<=0){break b}if(i>>>0>=4){n=i&-4;while(1){g=f<<2;J[g+d>>2]=J[g+J[a+32>>2]>>2];k=g|4;J[k+d>>2]=J[k+J[a+32>>2]>>2];k=g|8;J[k+d>>2]=J[k+J[a+32>>2]>>2];g=g|12;J[g+d>>2]=J[g+J[a+32>>2]>>2];f=f+4|0;e=e+4|0;if((n|0)!=(e|0)){continue}break}}e=i&3;if(!e){break b}while(1){g=f<<2;J[g+d>>2]=J[g+J[a+32>>2]>>2];f=f+1|0;j=j+1|0;if((e|0)!=(j|0)){continue}break}}f=J[a+32>>2];if(!(!f|!K[a+36|0])){if(f){J[8457]=J[8457]+1;ua[J[8259]](f)}i=J[a+24>>2]}J[a+32>>2]=d;H[a+36|0]=1;J[a+28>>2]=h}J[J[a+32>>2]+(i<<2)>>2]=J[b>>2];J[a+24>>2]=i+1;c:{if(c){o=N[b+16>>2];p=N[b+12>>2];m=N[b+8>>2];l=N[b+20>>2];break c}c=J[a+8>>2];l=N[b+16>>2];m=N[b+8>>2];q=N[b+12>>2];o=Q(Q(N[c+44>>2]*l)+Q(Q(N[c+36>>2]*m)+Q(q*N[c+40>>2])));p=Q(Q(N[c+28>>2]*l)+Q(Q(N[c+20>>2]*m)+Q(q*N[c+24>>2])));m=Q(Q(N[c+12>>2]*l)+Q(Q(N[c+4>>2]*m)+Q(N[c+8>>2]*q)));l=Q(0)}d=J[a+76>>2];d:{if((d|0)!=J[a+80>>2]){break d}i=d?d<<1:1;if((i|0)<=(d|0)){break d}e:{if(!i){c=0;break e}J[8456]=J[8456]+1;c=ua[J[8258]](i<<4,16)|0;d=J[a+76>>2]}f:{if((d|0)<=0){break f}f=0;if((d|0)!=1){n=d&-2;j=0;while(1){g=f<<4;h=g+c|0;e=g+J[a+84>>2]|0;k=J[e+4>>2];J[h>>2]=J[e>>2];J[h+4>>2]=k;k=J[e+12>>2];J[h+8>>2]=J[e+8>>2];J[h+12>>2]=k;e=g|16;g=e+c|0;e=e+J[a+84>>2]|0;h=J[e+4>>2];J[g>>2]=J[e>>2];J[g+4>>2]=h;h=J[e+12>>2];J[g+8>>2]=J[e+8>>2];J[g+12>>2]=h;f=f+2|0;j=j+2|0;if((n|0)!=(j|0)){continue}break}}if(!(d&1)){break f}f=f<<4;d=f+c|0;f=f+J[a+84>>2]|0;e=J[f+4>>2];J[d>>2]=J[f>>2];J[d+4>>2]=e;e=J[f+12>>2];J[d+8>>2]=J[f+8>>2];J[d+12>>2]=e}d=J[a+84>>2];if(!(d?!d|!K[a+88|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](d)}J[a+84>>2]=c;H[a+88|0]=1;J[a+80>>2]=i;d=J[a+76>>2]}c=J[a+84>>2]+(d<<4)|0;N[c+12>>2]=l;N[c+8>>2]=o;N[c+4>>2]=p;N[c>>2]=m;J[a+76>>2]=J[a+76>>2]+1;l=N[b+24>>2];o=Q(Q(1)-l);p=Q(Q(o*N[a+48>>2])+Q(l*N[a- -64>>2]));m=Q(Q(o*N[a+44>>2])+Q(l*N[a+60>>2]));l=Q(Q(o*N[a+40>>2])+Q(l*N[a+56>>2]));d=J[a+96>>2];g:{if((d|0)!=J[a+100>>2]){break g}i=d?d<<1:1;if((i|0)<=(d|0)){break g}h:{if(!i){c=0;break h}J[8456]=J[8456]+1;c=ua[J[8258]](i<<4,16)|0;d=J[a+96>>2]}i:{if((d|0)<=0){break i}f=0;if((d|0)!=1){n=d&-2;j=0;while(1){g=f<<4;h=g+c|0;e=g+J[a+104>>2]|0;k=J[e+4>>2];J[h>>2]=J[e>>2];J[h+4>>2]=k;k=J[e+12>>2];J[h+8>>2]=J[e+8>>2];J[h+12>>2]=k;e=g|16;g=e+c|0;e=e+J[a+104>>2]|0;h=J[e+4>>2];J[g>>2]=J[e>>2];J[g+4>>2]=h;h=J[e+12>>2];J[g+8>>2]=J[e+8>>2];J[g+12>>2]=h;f=f+2|0;j=j+2|0;if((n|0)!=(j|0)){continue}break}}if(!(d&1)){break i}f=f<<4;d=f+c|0;f=f+J[a+104>>2]|0;e=J[f+4>>2];J[d>>2]=J[f>>2];J[d+4>>2]=e;e=J[f+12>>2];J[d+8>>2]=J[f+8>>2];J[d+12>>2]=e}d=J[a+104>>2];if(!(d?!d|!K[a+108|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](d)}J[a+104>>2]=c;H[a+108|0]=1;J[a+100>>2]=i;d=J[a+96>>2]}c=J[a+104>>2]+(d<<4)|0;N[c+8>>2]=p;N[c+4>>2]=m;N[c>>2]=l;J[a+96>>2]=J[a+96>>2]+1;e=J[a+116>>2];j:{if((e|0)!=J[a+120>>2]){break j}g=e?e<<1:1;if((g|0)<=(e|0)){break j}k:{if(!g){d=0;break k}J[8456]=J[8456]+1;d=ua[J[8258]](g<<2,16)|0;e=J[a+116>>2]}c=J[a+124>>2];l:{m:{if((e|0)>0){i=0;f=0;if(e>>>0>=4){n=e&-4;h=0;while(1){j=f<<2;N[j+d>>2]=N[c+j>>2];k=j|4;N[k+d>>2]=N[c+k>>2];k=j|8;N[k+d>>2]=N[c+k>>2];j=j|12;N[j+d>>2]=N[c+j>>2];f=f+4|0;h=h+4|0;if((n|0)!=(h|0)){continue}break}}j=e&3;if(j){while(1){h=f<<2;N[h+d>>2]=N[c+h>>2];f=f+1|0;i=i+1|0;if((j|0)!=(i|0)){continue}break}}if(K[a+128|0]){break m}break l}if(!c|!K[a+128|0]){break l}}if(c){J[8457]=J[8457]+1;ua[J[8259]](c)}e=J[a+116>>2]}J[a+124>>2]=d;J[a+120>>2]=g;H[a+128|0]=1}N[J[a+124>>2]+(e<<2)>>2]=N[b+24>>2];J[a+116>>2]=e+1;return Q(N[a+4>>2])}function vb(a,b,c,d,e,f){var g=0,h=0,i=Q(0),j=0,k=0,l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=0,u=0,v=0,w=Q(0),x=Q(0),y=Q(0),z=Q(0);g=sa-400|0;sa=g;ua[J[8262]](2330);h=J[c+12>>2];J[g+336>>2]=J[c+8>>2];J[g+340>>2]=h;h=J[c+4>>2];J[g+328>>2]=J[c>>2];J[g+332>>2]=h;h=J[c+28>>2];J[g+352>>2]=J[c+24>>2];J[g+356>>2]=h;h=J[c+20>>2];J[g+344>>2]=J[c+16>>2];J[g+348>>2]=h;h=J[c+44>>2];J[g+368>>2]=J[c+40>>2];J[g+372>>2]=h;h=J[c+36>>2];J[g+360>>2]=J[c+32>>2];J[g+364>>2]=h;h=J[c+60>>2];J[g+384>>2]=J[c+56>>2];J[g+388>>2]=h;h=J[c+52>>2];J[g+376>>2]=J[c+48>>2];J[g+380>>2]=h;h=J[d+12>>2];J[g+272>>2]=J[d+8>>2];J[g+276>>2]=h;h=J[d+4>>2];J[g+264>>2]=J[d>>2];J[g+268>>2]=h;h=J[d+28>>2];J[g+288>>2]=J[d+24>>2];J[g+292>>2]=h;h=J[d+20>>2];J[g+280>>2]=J[d+16>>2];J[g+284>>2]=h;h=J[d+44>>2];J[g+304>>2]=J[d+40>>2];J[g+308>>2]=h;h=J[d+36>>2];J[g+296>>2]=J[d+32>>2];J[g+300>>2]=h;h=J[d+60>>2];J[g+320>>2]=J[d+56>>2];J[g+324>>2]=h;h=J[d+52>>2];J[g+312>>2]=J[d+48>>2];J[g+316>>2]=h;k=g+328|0;u=g+4|0;h=g+248|0;Vb(k,g+264|0,u,h);J[g+228>>2]=0;i=N[g+248>>2];N[g+224>>2]=i*N[g+12>>2];N[g+220>>2]=i*N[g+8>>2];N[g+216>>2]=i*N[g+4>>2];J[g+208>>2]=0;J[g+212>>2]=0;J[g+200>>2]=0;J[g+204>>2]=0;J[g+60>>2]=0;J[g+64>>2]=0;J[g+52>>2]=0;J[g+56>>2]=0;ob(k,h);J[g+48>>2]=0;J[g+32>>2]=0;m=N[g+260>>2];l=N[g+256>>2];i=N[g+248>>2];n=N[g+252>>2];o=Q(Q(2)/Q(Q(m*m)+Q(Q(l*l)+Q(Q(i*i)+Q(n*n)))));p=Q(l*o);q=Q(n*p);r=Q(i*o);s=Q(m*r);N[g+40>>2]=q+s;N[g+28>>2]=q-s;q=Q(i*r);r=n;n=Q(n*o);o=Q(r*n);N[g+44>>2]=Q(1)-Q(q+o);l=Q(l*p);N[g+24>>2]=Q(1)-Q(q+l);J[g+16>>2]=0;q=Q(i*p);r=Q(m*n);N[g+36>>2]=q-r;i=Q(i*n);m=Q(m*p);N[g+20>>2]=i+m;N[g+12>>2]=q+r;N[g+8>>2]=i-m;N[g+4>>2]=Q(1)-Q(o+l);k=g+232|0;ua[J[J[b>>2]+8>>2]](b,u,h,k);i=N[g+224>>2];m=N[g+216>>2];n=N[g+220>>2];q=N[k>>2];r=N[k+4>>2];s=N[k+8>>2];w=N[h>>2];p=N[g+200>>2];x=N[h+4>>2];o=N[g+204>>2];y=N[h+8>>2];l=N[g+208>>2];z=Q(ua[J[J[b>>2]+16>>2]](b));J[h+12>>2]=0;l=Q(l*Q(1));j=l>Q(0);N[h+8>>2]=y+(j?Q(-0):l);o=Q(o*Q(1));t=o>Q(0);N[h+4>>2]=x+(t?Q(-0):o);p=Q(p*Q(1));v=p>Q(0);N[h>>2]=w+(v?Q(-0):p);J[k+12>>2]=0;N[k+8>>2]=s+(j?l:Q(-0));N[k+4>>2]=r+(t?o:Q(-0));N[k>>2]=q+(v?p:Q(-0));i=Q(Q(z*Q(Y(Q(Q(i*i)+Q(Q(m*m)+Q(n*n))))))*Q(1));N[h>>2]=N[h>>2]-i;N[h+4>>2]=N[h+4>>2]-i;N[h+8>>2]=N[h+8>>2]-i;N[k>>2]=i+N[k>>2];N[k+4>>2]=i+N[k+4>>2];N[k+8>>2]=i+N[k+8>>2];J[g+4>>2]=14788;j=J[c+12>>2];J[g+48>>2]=J[c+8>>2];J[g+52>>2]=j;j=J[c+4>>2];J[g+40>>2]=J[c>>2];J[g+44>>2]=j;t=J[c+28>>2];j=g- -64|0;J[j>>2]=J[c+24>>2];J[j+4>>2]=t;j=J[c+20>>2];J[g+56>>2]=J[c+16>>2];J[g+60>>2]=j;j=J[c+44>>2];J[g+80>>2]=J[c+40>>2];J[g+84>>2]=j;j=J[c+36>>2];J[g+72>>2]=J[c+32>>2];J[g+76>>2]=j;j=J[c+60>>2];J[g+96>>2]=J[c+56>>2];J[g+100>>2]=j;j=J[c+52>>2];J[g+88>>2]=J[c+48>>2];J[g+92>>2]=j;c=J[d+12>>2];J[g+112>>2]=J[d+8>>2];J[g+116>>2]=c;c=J[d+4>>2];J[g+104>>2]=J[d>>2];J[g+108>>2]=c;c=J[d+28>>2];J[g+128>>2]=J[d+24>>2];J[g+132>>2]=c;c=J[d+20>>2];J[g+120>>2]=J[d+16>>2];J[g+124>>2]=c;c=J[d+36>>2];J[g+136>>2]=J[d+32>>2];J[g+140>>2]=c;c=J[d+44>>2];J[g+144>>2]=J[d+40>>2];J[g+148>>2]=c;c=J[d+60>>2];J[g+160>>2]=J[d+56>>2];J[g+164>>2]=c;c=J[d+52>>2];J[g+152>>2]=J[d+48>>2];J[g+156>>2]=c;J[g+188>>2]=e;N[g+192>>2]=f;J[g+196>>2]=b;J[g+184>>2]=a;f=Q(N[g+160>>2]-N[g+96>>2]);i=Q(N[g+152>>2]-N[g+88>>2]);m=Q(N[g+156>>2]-N[g+92>>2]);n=Q(Q(1)/Q(Y(Q(Q(f*f)+Q(Q(i*i)+Q(m*m))))));l=Q(f*n);p=l==Q(0)?Q(0xde0b6b000000000):Q(Q(1)/l);N[g+16>>2]=p;o=Q(m*n);q=o==Q(0)?Q(0xde0b6b000000000):Q(Q(1)/o);N[g+12>>2]=q;J[g+32>>2]=p>2]=q>2]=r+Q(Q(f*i)+Q(m*o));f=f==Q(0)?Q(0xde0b6b000000000):Q(Q(1)/f);N[g+8>>2]=f;J[g+24>>2]=f>2];ua[J[J[a>>2]+24>>2]](a,g+376|0,g+312|0,u,h,k);ua[J[8263]]();sa=g+400|0}function Jf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0);f=J[b>>2];J[a+16>>2]=f;i=J[a+24>>2];a:{if((i|0)!=J[a+28>>2]){break a}h=i?i<<1:1;if((h|0)<=(i|0)){break a}if(h){J[8456]=J[8456]+1;d=ua[J[8258]](h<<2,16)|0;i=J[a+24>>2]}b:{if((i|0)<=0){break b}f=0;if(i>>>0>=4){l=i&-4;while(1){g=f<<2;J[g+d>>2]=J[g+J[a+32>>2]>>2];k=g|4;J[k+d>>2]=J[k+J[a+32>>2]>>2];k=g|8;J[k+d>>2]=J[k+J[a+32>>2]>>2];g=g|12;J[g+d>>2]=J[g+J[a+32>>2]>>2];f=f+4|0;e=e+4|0;if((l|0)!=(e|0)){continue}break}}e=i&3;if(!e){break b}while(1){g=f<<2;J[g+d>>2]=J[g+J[a+32>>2]>>2];f=f+1|0;j=j+1|0;if((e|0)!=(j|0)){continue}break}}f=J[a+32>>2];if(!(!f|!K[a+36|0])){if(f){J[8457]=J[8457]+1;ua[J[8259]](f)}i=J[a+24>>2]}J[a+32>>2]=d;H[a+36|0]=1;J[a+28>>2]=h;f=J[a+16>>2]}J[J[a+32>>2]+(i<<2)>>2]=f;J[a+24>>2]=i+1;c:{if(c){p=N[b+16>>2];q=N[b+12>>2];m=N[b+8>>2];n=N[b+20>>2];break c}c=J[a+16>>2];n=N[b+16>>2];m=N[b+8>>2];o=N[b+12>>2];p=Q(Q(N[c+44>>2]*n)+Q(Q(N[c+36>>2]*m)+Q(o*N[c+40>>2])));q=Q(Q(N[c+28>>2]*n)+Q(Q(N[c+20>>2]*m)+Q(o*N[c+24>>2])));m=Q(Q(N[c+12>>2]*n)+Q(Q(N[c+4>>2]*m)+Q(N[c+8>>2]*o)));n=Q(0)}d=J[a+76>>2];d:{if((d|0)!=J[a+80>>2]){break d}i=d?d<<1:1;if((i|0)<=(d|0)){break d}e:{if(!i){c=0;break e}J[8456]=J[8456]+1;c=ua[J[8258]](i<<4,16)|0;d=J[a+76>>2]}f:{if((d|0)<=0){break f}f=0;if((d|0)!=1){l=d&-2;j=0;while(1){g=f<<4;h=g+c|0;e=g+J[a+84>>2]|0;k=J[e+4>>2];J[h>>2]=J[e>>2];J[h+4>>2]=k;k=J[e+12>>2];J[h+8>>2]=J[e+8>>2];J[h+12>>2]=k;e=g|16;g=e+c|0;e=e+J[a+84>>2]|0;h=J[e+4>>2];J[g>>2]=J[e>>2];J[g+4>>2]=h;h=J[e+12>>2];J[g+8>>2]=J[e+8>>2];J[g+12>>2]=h;f=f+2|0;j=j+2|0;if((l|0)!=(j|0)){continue}break}}if(!(d&1)){break f}d=f<<4;f=d+c|0;d=d+J[a+84>>2]|0;e=J[d+4>>2];J[f>>2]=J[d>>2];J[f+4>>2]=e;e=J[d+12>>2];J[f+8>>2]=J[d+8>>2];J[f+12>>2]=e}d=J[a+84>>2];if(!(d?!d|!K[a+88|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](d)}J[a+84>>2]=c;H[a+88|0]=1;J[a+80>>2]=i;d=J[a+76>>2]}c=J[a+84>>2]+(d<<4)|0;N[c+12>>2]=n;N[c+8>>2]=p;N[c+4>>2]=q;N[c>>2]=m;J[a+76>>2]=J[a+76>>2]+1;d=J[a+96>>2];g:{if((d|0)!=J[a+100>>2]){break g}i=d?d<<1:1;if((i|0)<=(d|0)){break g}h:{if(!i){c=0;break h}J[8456]=J[8456]+1;c=ua[J[8258]](i<<4,16)|0;d=J[a+96>>2]}i:{if((d|0)<=0){break i}f=0;if((d|0)!=1){l=d&-2;j=0;while(1){g=f<<4;h=g+c|0;e=g+J[a+104>>2]|0;k=J[e+4>>2];J[h>>2]=J[e>>2];J[h+4>>2]=k;k=J[e+12>>2];J[h+8>>2]=J[e+8>>2];J[h+12>>2]=k;e=g|16;g=e+c|0;e=e+J[a+104>>2]|0;h=J[e+4>>2];J[g>>2]=J[e>>2];J[g+4>>2]=h;h=J[e+12>>2];J[g+8>>2]=J[e+8>>2];J[g+12>>2]=h;f=f+2|0;j=j+2|0;if((l|0)!=(j|0)){continue}break}}if(!(d&1)){break i}d=f<<4;f=d+c|0;d=d+J[a+104>>2]|0;e=J[d+4>>2];J[f>>2]=J[d>>2];J[f+4>>2]=e;e=J[d+12>>2];J[f+8>>2]=J[d+8>>2];J[f+12>>2]=e}d=J[a+104>>2];if(!(d?!d|!K[a+108|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](d)}J[a+104>>2]=c;H[a+108|0]=1;J[a+100>>2]=i;d=J[a+96>>2]}c=J[a+104>>2]+(d<<4)|0;d=J[b+28>>2];J[c>>2]=J[b+24>>2];J[c+4>>2]=d;d=J[b+36>>2];J[c+8>>2]=J[b+32>>2];J[c+12>>2]=d;J[a+96>>2]=J[a+96>>2]+1;e=J[a+116>>2];j:{if((e|0)!=J[a+120>>2]){break j}g=e?e<<1:1;if((g|0)<=(e|0)){break j}k:{if(!g){d=0;break k}J[8456]=J[8456]+1;d=ua[J[8258]](g<<2,16)|0;e=J[a+116>>2]}c=J[a+124>>2];l:{m:{if((e|0)>0){i=0;f=0;if(e>>>0>=4){l=e&-4;h=0;while(1){j=f<<2;N[j+d>>2]=N[c+j>>2];k=j|4;N[k+d>>2]=N[c+k>>2];k=j|8;N[k+d>>2]=N[c+k>>2];j=j|12;N[j+d>>2]=N[c+j>>2];f=f+4|0;h=h+4|0;if((l|0)!=(h|0)){continue}break}}j=e&3;if(j){while(1){h=f<<2;N[h+d>>2]=N[c+h>>2];f=f+1|0;i=i+1|0;if((j|0)!=(i|0)){continue}break}}if(K[a+128|0]){break m}break l}if(!c|!K[a+128|0]){break l}}if(c){J[8457]=J[8457]+1;ua[J[8259]](c)}e=J[a+116>>2]}J[a+124>>2]=d;J[a+120>>2]=g;H[a+128|0]=1}N[J[a+124>>2]+(e<<2)>>2]=N[b+40>>2];J[a+116>>2]=e+1;return Q(N[a+4>>2])}function ab(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=0,f=Q(0),g=Q(0),h=Q(0),i=0,j=Q(0),k=0,l=0,m=Q(0),n=Q(0),o=Q(0),p=0,q=Q(0),r=0,s=Q(0),t=0,u=0,v=Q(0),w=Q(0);e=sa-48|0;sa=e;a:{b:{switch(J[b+4>>2]){case 8:J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;break a;case 0:d=N[b+40>>2];f=N[b+44>>2];h=N[c+4>>2];j=N[c+8>>2];g=N[b+36>>2];o=N[c>>2];J[a+12>>2]=0;N[a>>2]=o>=Q(0)?g:Q(-g);N[a+8>>2]=j>=Q(0)?f:Q(-f);N[a+4>>2]=h>=Q(0)?d:Q(-d);break a;case 1:d=N[c+8>>2];f=N[c>>2];g=N[c+4>>2];h=Q(Q(d*N[b+72>>2])+Q(Q(f*N[b+64>>2])+Q(g*N[b+68>>2])));j=Q(Q(d*N[b+88>>2])+Q(Q(f*N[b+80>>2])+Q(g*N[b+84>>2])));c=h>2])+Q(Q(f*N[b+96>>2])+Q(g*N[b+100>>2])))>(c?j:h)?2:c)<<4)|0;c=J[b>>2];l=J[b+4>>2];d=N[b+8>>2];J[a+12>>2]=0;N[a+8>>2]=d;J[a>>2]=c;J[a+4>>2]=l;break a;case 13:i=J[b+48>>2];J[e+40>>2]=J[b+44>>2];J[e+44>>2]=i;i=J[b+40>>2];J[e+32>>2]=J[b+36>>2];J[e+36>>2]=i;N[e+16>>2]=N[c>>2];N[e+20>>2]=N[c+4>>2];d=N[c+8>>2];J[e+28>>2]=0;N[e+24>>2]=d;c=1;i=2;c:{d:{e:{b=J[b+60>>2];switch(b-1|0){case 0:break d;case 1:break e;default:break c}}i=1}c=0;l=b}k=b<<2;b=e+32|0;d=N[k+b>>2];k=b;b=c<<2;f=N[(k|b)>>2];k=b;b=e+16|0;g=N[k+b>>2];h=N[b+(i<<2)>>2];j=Q(Y(Q(Q(g*g)+Q(h*h))));f:{if(j!=Q(0)){f=Q(f/j);N[(c<<2)+e>>2]=g*f;b=l<<2;N[b+e>>2]=N[b+(e+16|0)>>2]>2]=f;b=l<<2;N[b+e>>2]=N[b+(e+16|0)>>2]>2]=s;b=J[e+4>>2];c=J[e>>2];d=N[e+8>>2];J[a+12>>2]=0;N[a+8>>2]=d;J[a>>2]=c;J[a+4>>2]=b;break a;case 10:k=b;b=J[b+60>>2];l=b<<2;v=N[(k+l|0)+36>>2];m=Q(1);d=N[c+8>>2];f=N[c>>2];g=N[c+4>>2];h=Q(Q(d*d)+Q(Q(f*f)+Q(g*g)));if(!(h>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;N[l+(e+32|0)>>2]=v;d=Q(-0xde0b6b000000000);f=Q(0);g=Q(0);h=N[e+40>>2];j=N[e+32>>2];o=N[e+36>>2];n=Q(Q(w*h)+Q(Q(m*j)+Q(s*o)));if(n>Q(-0xde0b6b000000000)){f=o;g=h;q=j;d=n}J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;N[(e+32|0)+(b<<2)>>2]=-v;h=N[e+40>>2];j=N[e+32>>2];o=N[e+36>>2];J[a+12>>2]=0;b=Q(Q(w*h)+Q(Q(m*j)+Q(s*o)))>d;N[a+8>>2]=b?h:g;N[a+4>>2]=b?o:f;N[a>>2]=b?j:q;break a;case 5:h=N[b+20>>2];j=N[b+28>>2];o=N[b+24>>2];l=J[b+100>>2];b=J[b+104>>2];g:{if((b|0)<=0){i=-1;break g}d=Q(N[c>>2]*h);f=Q(N[c+8>>2]*j);g=Q(N[c+4>>2]*o);t=b&1;h:{if((b|0)==1){b=0;i=-1;m=Q(-34028234663852886e22);break h}u=b&-2;b=0;i=-1;m=Q(-34028234663852886e22);c=0;while(1){k=l+(b<<4)|0;n=Q(Q(N[k+8>>2]*f)+Q(Q(N[k>>2]*d)+Q(g*N[k+4>>2])));k=n>m;r=b|1;p=l+(r<<4)|0;q=Q(Q(N[p+8>>2]*f)+Q(Q(N[p>>2]*d)+Q(g*N[p+4>>2])));n=k?n:m;p=q>n;m=p?q:n;i=p?r:k?b:i;b=b+2|0;c=c+2|0;if((u|0)!=(c|0)){continue}break}}if(!t){break g}c=b;b=l+(b<<4)|0;i=Q(Q(N[b+8>>2]*f)+Q(Q(N[b>>2]*d)+Q(g*N[b+4>>2])))>m?c:i}b=l+(i<<4)|0;d=N[b>>2];f=N[b+4>>2];g=N[b+8>>2];J[a+12>>2]=0;N[a+8>>2]=j*g;N[a+4>>2]=o*f;N[a>>2]=h*d;break a;case 4:h=N[b+20>>2];j=N[b+28>>2];o=N[b+24>>2];l=J[b+112>>2];b=J[b+104>>2];i:{if((b|0)<=0){i=-1;break i}d=Q(N[c>>2]*h);f=Q(N[c+8>>2]*j);g=Q(N[c+4>>2]*o);t=b&1;j:{if((b|0)==1){b=0;i=-1;m=Q(-34028234663852886e22);break j}u=b&-2;b=0;i=-1;m=Q(-34028234663852886e22);c=0;while(1){k=l+(b<<4)|0;n=Q(Q(N[k+8>>2]*f)+Q(Q(N[k>>2]*d)+Q(g*N[k+4>>2])));k=n>m;r=b|1;p=l+(r<<4)|0;q=Q(Q(N[p+8>>2]*f)+Q(Q(N[p>>2]*d)+Q(g*N[p+4>>2])));n=k?n:m;p=q>n;m=p?q:n;i=p?r:k?b:i;b=b+2|0;c=c+2|0;if((u|0)!=(c|0)){continue}break}}if(!t){break i}c=b;b=l+(b<<4)|0;i=Q(Q(N[b+8>>2]*f)+Q(Q(N[b>>2]*d)+Q(g*N[b+4>>2])))>m?c:i}b=l+(i<<4)|0;d=N[b>>2];f=N[b+4>>2];g=N[b+8>>2];J[a+12>>2]=0;N[a+8>>2]=j*g;N[a+4>>2]=o*f;N[a>>2]=h*d;break a;default:break b}}ua[J[J[b>>2]+68>>2]](a,b,c)}sa=e+48|0}function nd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,y=0,z=0,A=0;o=sa-16|0;sa=o;s=(B(a),v(2));e=s&2147483647;a:{if(e>>>0<=1305022426){j=+a;d=j*.6366197723675814+6755399441055744+-6755399441055744;r=j+d*-1.5707963109016418+d*-1.5893254773528196e-8;O[b>>3]=r;c=r<-.7853981852531433;if(R(d)<2147483648){e=~~d}else{e=-2147483648}if(c){d=d+-1;O[b>>3]=j+d*-1.5707963109016418+d*-1.5893254773528196e-8;e=e-1|0;break a}if(!(r>.7853981852531433)){break a}d=d+1;O[b>>3]=j+d*-1.5707963109016418+d*-1.5893254773528196e-8;e=e+1|0;break a}if(e>>>0>=2139095040){O[b>>3]=Q(a-a);e=0;break a}c=e;e=(e>>>23|0)-150|0;O[o+8>>3]=(x(2,c-(e<<23)|0),C());t=o+8|0;g=sa-560|0;sa=g;c=(e-3|0)/24|0;p=(c|0)>0?c:0;i=e+P(p,-24)|0;l=J[6604];if((l|0)>=0){e=l+1|0;c=p;while(1){O[(g+320|0)+(f<<3)>>3]=(c|0)<0?0:+J[(c<<2)+26432>>2];c=c+1|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}k=i-24|0;e=0;f=(l|0)>0?l:0;while(1){c=0;d=0;while(1){d=O[(c<<3)+t>>3]*O[(g+320|0)+(e-c<<3)>>3]+d;c=c+1|0;if((c|0)!=1){continue}break}O[(e<<3)+g>>3]=d;c=(e|0)==(f|0);e=e+1|0;if(!c){continue}break}z=47-i|0;u=48-i|0;A=i-25|0;e=l;b:{while(1){d=O[(e<<3)+g>>3];c=0;f=e;n=(e|0)<=0;if(!n){while(1){m=(g+480|0)+(c<<2)|0;j=d*5.960464477539063e-8;c:{if(R(j)<2147483648){h=~~j;break c}h=-2147483648}j=+(h|0);d=j*-16777216+d;d:{if(R(d)<2147483648){h=~~d;break d}h=-2147483648}J[m>>2]=h;f=f-1|0;d=O[(f<<3)+g>>3]+j;c=c+1|0;if((e|0)!=(c|0)){continue}break}}d=Ab(d,k);d=d+V(d*.125)*-8;e:{if(R(d)<2147483648){m=~~d;break e}m=-2147483648}d=d-+(m|0);f:{g:{h:{w=(k|0)<=0;i:{if(!w){f=(e<<2)+g|0;h=J[f+476>>2];c=h>>u;q=f;f=h-(c<>2]=f;m=c+m|0;h=f>>z;break i}if(k){break h}h=J[((e<<2)+g|0)+476>>2]>>23}if((h|0)<=0){break f}break g}h=2;if(d>=.5){break g}h=0;break f}c=0;f=0;if(!n){while(1){q=(g+480|0)+(c<<2)|0;n=J[q>>2];y=16777215;j:{k:{if(f){break k}y=16777216;if(n){break k}f=0;break j}J[q>>2]=y-n;f=1}c=c+1|0;if((e|0)!=(c|0)){continue}break}}l:{if(w){break l}c=8388607;m:{switch(A|0){case 1:c=4194303;break;case 0:break m;default:break l}}n=(e<<2)+g|0;J[n+476>>2]=J[n+476>>2]&c}m=m+1|0;if((h|0)!=2){break f}d=1-d;h=2;if(!f){break f}d=d-Ab(1,k)}if(d==0){f=0;n:{c=e;if((l|0)>=(e|0)){break n}while(1){c=c-1|0;f=J[(g+480|0)+(c<<2)>>2]|f;if((c|0)>(l|0)){continue}break}if(!f){break n}i=k;while(1){i=i-24|0;e=e-1|0;if(!J[(g+480|0)+(e<<2)>>2]){continue}break}break b}c=1;while(1){f=c;c=c+1|0;if(!J[(g+480|0)+(l-f<<2)>>2]){continue}break}f=e+f|0;while(1){e=e+1|0;O[(g+320|0)+(e<<3)>>3]=J[(e+p<<2)+26432>>2];c=0;d=0;while(1){d=O[(c<<3)+t>>3]*O[(g+320|0)+(e-c<<3)>>3]+d;c=c+1|0;if((c|0)!=1){continue}break}O[(e<<3)+g>>3]=d;if((e|0)<(f|0)){continue}break}e=f;continue}break}d=Ab(d,24-i|0);o:{if(d>=16777216){k=(g+480|0)+(e<<2)|0;j=d*5.960464477539063e-8;p:{if(R(j)<2147483648){c=~~j;break p}c=-2147483648}d=+(c|0)*-16777216+d;q:{if(R(d)<2147483648){f=~~d;break q}f=-2147483648}J[k>>2]=f;e=e+1|0;break o}if(R(d)<2147483648){c=~~d}else{c=-2147483648}i=k}J[(g+480|0)+(e<<2)>>2]=c}d=Ab(1,i);r:{if((e|0)<0){break r}c=e;while(1){f=c;O[(c<<3)+g>>3]=d*+J[(g+480|0)+(c<<2)>>2];c=c-1|0;d=d*5.960464477539063e-8;if(f){continue}break}if((e|0)<0){break r}f=e;while(1){d=0;c=0;i=e-f|0;k=(i|0)>(l|0)?l:i;if((k|0)>=0){while(1){d=O[(c<<3)+29200>>3]*O[(c+f<<3)+g>>3]+d;p=(c|0)!=(k|0);c=c+1|0;if(p){continue}break}}O[(g+160|0)+(i<<3)>>3]=d;c=(f|0)>0;f=f-1|0;if(c){continue}break}}d=0;if((e|0)>=0){while(1){c=e;e=e-1|0;d=d+O[(g+160|0)+(c<<3)>>3];if(c){continue}break}}O[o>>3]=h?-d:d;sa=g+560|0;e=m&7;d=O[o>>3];if((s|0)<0){O[b>>3]=-d;e=0-e|0;break a}O[b>>3]=d}sa=o+16|0;return e}function Xg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;a:{b:{c:{if((f|0)>=0){i=J[a+16>>2];if((i|0)>0){break c}break b}f=J[a+8>>2];Q(ua[J[J[f>>2]+12>>2]](f,b,c,d,e,J[a+12>>2],J[a+16>>2],J[a+4>>2],J[a+20>>2],J[a+24>>2]));return}m=J[a+12>>2];while(1){q=m+(g<<2)|0;j=J[q>>2];h=J[J[j+28>>2]+208>>2];if((h|0)<0){h=J[J[j+32>>2]+208>>2]}if((f|0)==(h|0)){break b}g=g+1|0;if((i|0)!=(g|0)){continue}break}q=0;break a}if((g|0)>=(i|0)){break a}h=i-g|0;k=h&1;j=J[a+12>>2];if((i|0)!=(g+1|0)){i=h&-2;m=0;while(1){l=j+(g<<2)|0;n=J[l>>2];h=J[J[n+28>>2]+208>>2];if((h|0)<0){h=J[J[n+32>>2]+208>>2]}g=g+2|0;o=((f|0)==(h|0))+o|0;l=J[l+4>>2];h=J[J[l+28>>2]+208>>2];if((h|0)<0){h=J[J[l+32>>2]+208>>2]}o=((f|0)==(h|0))+o|0;m=m+2|0;if((i|0)!=(m|0)){continue}break}}if(!k){break a}h=J[j+(g<<2)>>2];g=J[J[h+28>>2]+208>>2];if((g|0)<0){g=J[J[h+32>>2]+208>>2]}o=((f|0)==(g|0))+o|0}f=J[a+4>>2];if(J[f+80>>2]>=2){if((c|0)>0){g=J[a+36>>2];h=J[a+32>>2];j=0;while(1){n=(j<<2)+b|0;d:{if((g|0)!=(h|0)){break d}i=g?g<<1:1;if((i|0)<=(g|0)){h=g;break d}e:{if(!i){f=0;break e}J[8456]=J[8456]+1;f=ua[J[8258]](i<<2,16)|0;g=J[a+32>>2]}h=g;f:{if((g|0)<=0){break f}m=0;g=0;if(h>>>0>=4){r=h&-4;k=0;while(1){l=g<<2;J[l+f>>2]=J[l+J[a+40>>2]>>2];p=l|4;J[p+f>>2]=J[p+J[a+40>>2]>>2];p=l|8;J[p+f>>2]=J[p+J[a+40>>2]>>2];l=l|12;J[l+f>>2]=J[l+J[a+40>>2]>>2];g=g+4|0;k=k+4|0;if((r|0)!=(k|0)){continue}break}}k=h&3;if(!k){break f}while(1){l=g<<2;J[l+f>>2]=J[l+J[a+40>>2]>>2];g=g+1|0;m=m+1|0;if((k|0)!=(m|0)){continue}break}}g=J[a+40>>2];if(!(!g|!K[a+44|0])){if(g){J[8457]=J[8457]+1;ua[J[8259]](g)}h=J[a+32>>2]}J[a+40>>2]=f;H[a+44|0]=1;J[a+36>>2]=i;g=i}J[J[a+40>>2]+(h<<2)>>2]=J[n>>2];h=h+1|0;J[a+32>>2]=h;j=j+1|0;if((j|0)!=(c|0)){continue}break}}if((e|0)>0){g=J[a+56>>2];h=J[a+52>>2];j=0;while(1){i=(j<<2)+d|0;g:{if((g|0)!=(h|0)){break g}b=g?g<<1:1;if((b|0)<=(g|0)){h=g;break g}h:{if(!b){f=0;break h}J[8456]=J[8456]+1;f=ua[J[8258]](b<<2,16)|0;g=J[a+52>>2]}h=g;i:{if((g|0)<=0){break i}m=0;g=0;if(h>>>0>=4){l=h&-4;k=0;while(1){c=g<<2;J[c+f>>2]=J[c+J[a+60>>2]>>2];n=c|4;J[n+f>>2]=J[n+J[a+60>>2]>>2];n=c|8;J[n+f>>2]=J[n+J[a+60>>2]>>2];c=c|12;J[c+f>>2]=J[c+J[a+60>>2]>>2];g=g+4|0;k=k+4|0;if((l|0)!=(k|0)){continue}break}}c=h&3;if(!c){break i}while(1){k=g<<2;J[k+f>>2]=J[k+J[a+60>>2]>>2];g=g+1|0;m=m+1|0;if((c|0)!=(m|0)){continue}break}}c=J[a+60>>2];if(!(!c|!K[a+64|0])){if(c){J[8457]=J[8457]+1;ua[J[8259]](c)}h=J[a+52>>2]}J[a+60>>2]=f;H[a+64|0]=1;J[a+56>>2]=b;g=b}J[J[a+60>>2]+(h<<2)>>2]=J[i>>2];h=h+1|0;J[a+52>>2]=h;j=j+1|0;if((j|0)!=(e|0)){continue}break}}j:{if(!o){h=J[a+72>>2];break j}g=J[a+76>>2];h=J[a+72>>2];j=0;while(1){d=(j<<2)+q|0;k:{if((g|0)!=(h|0)){break k}b=g?g<<1:1;if((b|0)<=(g|0)){h=g;break k}l:{if(!b){f=0;break l}J[8456]=J[8456]+1;f=ua[J[8258]](b<<2,16)|0;g=J[a+72>>2]}h=g;m:{if((g|0)<=0){break m}m=0;g=0;if(h>>>0>=4){e=h&-4;k=0;while(1){c=g<<2;J[c+f>>2]=J[c+J[a+80>>2]>>2];i=c|4;J[i+f>>2]=J[i+J[a+80>>2]>>2];i=c|8;J[i+f>>2]=J[i+J[a+80>>2]>>2];c=c|12;J[c+f>>2]=J[c+J[a+80>>2]>>2];g=g+4|0;k=k+4|0;if((e|0)!=(k|0)){continue}break}}c=h&3;if(!c){break m}while(1){e=g<<2;J[e+f>>2]=J[e+J[a+80>>2]>>2];g=g+1|0;m=m+1|0;if((c|0)!=(m|0)){continue}break}}c=J[a+80>>2];if(!(!c|!K[a+84|0])){if(c){J[8457]=J[8457]+1;ua[J[8259]](c)}h=J[a+72>>2]}J[a+80>>2]=f;H[a+84|0]=1;J[a+76>>2]=b;g=b}J[J[a+80>>2]+(h<<2)>>2]=J[d>>2];h=h+1|0;J[a+72>>2]=h;j=j+1|0;if((o|0)!=(j|0)){continue}break}}if(J[J[a+4>>2]+80>>2]<(J[a+52>>2]+h|0)){wd(a)}return}g=J[a+8>>2];Q(ua[J[J[g>>2]+12>>2]](g,b,c,d,e,q,o,f,J[a+20>>2],J[a+24>>2]))}function Xn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=Q(0);f=sa-32|0;sa=f;h=a+4|0;yf(h,((P(J[a+112>>2],J[a+16>>2])|0)/100|0)+1|0);if(J[a+124>>2]){c=((P(J[a+108>>2],J[a+56>>2])|0)/100|0)+1|0;yf(a+44|0,c);c=J[a+124>>2]-c|0;J[a+124>>2]=(c|0)>0?c:0}c=(J[a+104>>2]+1|0)%2|0;J[a+104>>2]=c;c=J[((c<<2)+a|0)+84>>2];if(c){g=a+44|0;while(1){d=J[c+52>>2];e=d?d+56|0:((J[c+60>>2]<<2)+a|0)+84|0;d=J[c+56>>2];J[e>>2]=d;e=J[c+56>>2];if(e){J[e+52>>2]=J[c+52>>2]}J[c+52>>2]=0;J[c+56>>2]=J[a+92>>2];e=J[a+92>>2];if(e){J[e+52>>2]=c}J[a+92>>2]=c;_b(h,J[c+48>>2]);e=J[c+28>>2];J[f+8>>2]=J[c+24>>2];J[f+12>>2]=e;e=J[c+20>>2];J[f>>2]=J[c+16>>2];J[f+4>>2]=e;e=J[c+44>>2];J[f+24>>2]=J[c+40>>2];J[f+28>>2]=e;e=J[c+36>>2];J[f+16>>2]=J[c+32>>2];J[f+20>>2]=e;e=$b(g,f,c);J[c+60>>2]=2;J[c+48>>2]=e;c=d;if(c){continue}break}H[a+154|0]=1;J[a+124>>2]=J[a+56>>2]}J[f>>2]=12044;J[f+4>>2]=a;a:{if(!K[a+153|0]){break a}Zb(h,J[a+4>>2],J[a+44>>2],f);if(!K[a+153|0]){break a}c=J[h>>2];Zb(h,c,c,f)}b:{if(!K[a+154|0]){break b}c=J[a+96>>2];e=ua[J[J[c>>2]+28>>2]](c)|0;c=J[e+4>>2];if((c|0)<=0){break b}c:{d=J[a+120>>2];h=(P(J[a+116>>2],c)|0)/100|0;d=(d|0)>(h|0)?d:h;g=(c|0)<(d|0)?c:d;if((g|0)>0){c=0;while(1){h=J[e+12>>2]+((J[a+144>>2]+c|0)%J[e+4>>2]<<4)|0;i=J[h>>2];d=J[i+48>>2];j=J[h+4>>2];h=J[j+48>>2];d:{e:{if(!(N[d>>2]<=N[h+16>>2])|!(N[d+16>>2]>=N[h>>2])|(!(N[d+4>>2]<=N[h+20>>2])|!(N[d+20>>2]>=N[h+4>>2]))){break e}if(!(N[d+8>>2]<=N[h+24>>2])){break e}if(N[d+24>>2]>=N[h+8>>2]){break d}}d=J[a+96>>2];ua[J[J[d>>2]+12>>2]](d,i,j,b)|0;c=c-1|0;g=g-1|0}c=c+1|0;if((g|0)>(c|0)){continue}break}c=J[e+4>>2];if((c|0)<=0){break c}}J[a+144>>2]=(J[a+144>>2]+g|0)%(c|0);break b}J[a+144>>2]=0}H[a+154|0]=0;J[a+120>>2]=1;J[a+140>>2]=J[a+140>>2]+1;c=J[a+132>>2];d=J[a+128>>2];if(d){m=Q(Q(c>>>0)/Q(d>>>0))}else{m=Q(0)}N[a+136>>2]=m;J[a+132>>2]=c>>>1;J[a+128>>2]=d>>>1;sa=f+32|0;d=0;c=0;j=0;l=sa-16|0;sa=l;f=J[a+96>>2];if(ua[J[J[f>>2]+56>>2]](f)|0){h=a;a=J[a+96>>2];g=ua[J[J[a>>2]+28>>2]](a)|0;a=J[g+4>>2];if((a|0)>=2){Yb(g,l+15|0,0,a-1|0);a=J[g+4>>2]}if((a|0)>0){while(1){i=J[g+12>>2]+(j<<4)|0;f=J[i+4>>2];e=d;d=J[i>>2];f:{g:{if((e|0)==(d|0)&(c|0)==(f|0)){break g}c=J[d+48>>2];e=J[f+48>>2];if(!(N[c>>2]<=N[e+16>>2])|!(N[c+16>>2]>=N[e>>2])|(!(N[c+4>>2]<=N[e+20>>2])|!(N[c+20>>2]>=N[e+4>>2]))){break g}if(!(N[c+8>>2]<=N[e+24>>2])){break g}if(N[c+24>>2]>=N[e+8>>2]){break f}}a=J[h+96>>2];ua[J[J[a>>2]+32>>2]](a,i,b);J[i>>2]=0;J[i+4>>2]=0;k=k+1|0;a=J[g+4>>2]}c=f;j=j+1|0;if((j|0)<(a|0)){continue}break}if((a|0)>=2){Yb(g,l+14|0,0,a-1|0);a=J[g+4>>2]}b=a-k|0;h:{if((k|0)>=0){break h}if((b|0)>J[g+8>>2]){d=0;i:{if((a|0)==(k|0)){break i}J[8456]=J[8456]+1;d=ua[J[8258]](b<<4,16)|0;e=J[g+4>>2];if((e|0)<=0){break i}c=0;while(1){h=c<<4;f=h+d|0;h=h+J[g+12>>2]|0;J[f>>2]=J[h>>2];J[f+4>>2]=J[h+4>>2];J[f+8>>2]=J[h+8>>2];J[f+12>>2]=J[h+12>>2];c=c+1|0;if((e|0)!=(c|0)){continue}break}}c=J[g+12>>2];if(!(c?!c|!K[g+16|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}J[g+12>>2]=d;H[g+16|0]=1;J[g+8>>2]=b}c=0;f=0-k&3;if(f){while(1){d=J[g+12>>2]+(a<<4)|0;J[d>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;a=a+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}}if(k>>>0>4294967292){break h}while(1){c=a<<4;d=c+J[g+12>>2]|0;J[d>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=c+J[g+12>>2]|0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;d=c+J[g+12>>2]|0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;c=c+J[g+12>>2]|0;J[c+56>>2]=0;J[c+60>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;a=a+4|0;if((b|0)!=(a|0)){continue}break}}a=b}J[g+4>>2]=a}sa=l+16|0}function wi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=Q(0),m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,O=0,R=0;h=b;d=J[a+28>>2];n=d+4|0;b=J[a+32>>2];o=b+4|0;p=d+372|0;q=b+372|0;r=d+388|0;s=b+388|0;i=sa-16|0;sa=i;c=a;a=J[c+1232>>2]-1|0;a:{if(a>>>0>4){j=1;a=2;break a}a=a<<2;f=J[a+23524>>2];j=J[a+23504>>2];a=J[a+23484>>2]}e=P(f,88)+c|0;if(J[e+1052>>2]|K[e+996|0]|K[(P(f,88)+c|0)+1016|0]){d=(f<<4)+c|0;k=d+1388|0;b=J[k+4>>2];J[i+8>>2]=J[k>>2];J[i+12>>2]=b;k=d+1380|0;b=J[k+4>>2];J[i>>2]=J[k>>2];J[i+4>>2]=b;b=J[c+1456>>2]>>(f<<2)+12;if(!(b&1)){N[(P(f,88)+c|0)+984>>2]=N[J[h+32>>2]>>2]}if(!(b&2)){N[(P(f,88)+c|0)+980>>2]=N[h+4>>2]}if(!(b&4)){N[(P(f,88)+c|0)+992>>2]=N[J[h+32>>2]>>2]}if(!(b&8)){N[(P(f,88)+c|0)+988>>2]=N[h+4>>2]}k=Ib(c,e+968|0,n,o,p,q,r,s,h,0,i,1,0)}f=P(j,88)+c|0;if(J[f+1052>>2]|K[f+996|0]|K[(P(j,88)+c|0)+1016|0]){e=(j<<4)+c|0;d=e+1388|0;b=J[d+4>>2];J[i+8>>2]=J[d>>2];J[i+12>>2]=b;d=e+1380|0;b=J[d+4>>2];J[i>>2]=J[d>>2];J[i+4>>2]=b;b=J[c+1456>>2]>>(j<<2)+12;if(!(b&1)){N[(P(j,88)+c|0)+984>>2]=N[J[h+32>>2]>>2]}if(!(b&2)){N[(P(j,88)+c|0)+980>>2]=N[h+4>>2]}if(!(b&4)){N[(P(j,88)+c|0)+992>>2]=N[J[h+32>>2]>>2]}if(!(b&8)){N[(P(j,88)+c|0)+988>>2]=N[h+4>>2]}k=Ib(c,f+968|0,n,o,p,q,r,s,h,k,i,1,0)+k|0}f=P(a,88)+c|0;if(J[f+1052>>2]|K[f+996|0]|K[(P(a,88)+c|0)+1016|0]){e=(a<<4)+c|0;d=e+1388|0;b=J[d+4>>2];J[i+8>>2]=J[d>>2];J[i+12>>2]=b;d=e+1380|0;b=J[d+4>>2];J[i>>2]=J[d>>2];J[i+4>>2]=b;b=J[c+1456>>2]>>(a<<2)+12;if(!(b&1)){N[(P(a,88)+c|0)+984>>2]=N[J[h+32>>2]>>2]}if(!(b&2)){N[(P(a,88)+c|0)+980>>2]=N[h+4>>2]}if(!(b&4)){N[(P(a,88)+c|0)+992>>2]=N[J[h+32>>2]>>2]}if(!(b&8)){N[(P(a,88)+c|0)+988>>2]=N[h+4>>2]}k=Ib(c,f+968|0,n,o,p,q,r,s,h,k,i,1,0)+k|0}sa=i+16|0;e=0;b=sa-112|0;sa=b;J[b+44>>2]=1063675494;J[b+48>>2]=0;J[b+36>>2]=1045220557;J[b+40>>2]=0;v=c+760|0;w=c+776|0;t=h+4|0;x=c+728|0;y=c+744|0;z=c+1268|0;A=c+1252|0;B=c+1236|0;C=c+876|0;D=c+892|0;E=c+696|0;F=c+860|0;G=c+840|0;I=c+820|0;L=c+804|0;M=c+924|0;O=c+908|0;R=c+940|0;i=c+712|0;u=c+680|0;while(1){d=K[(e+u|0)+112|0];b:{c:{g=e<<2;j=u+g|0;f=J[j+276>>2];if(f){break c}a=d;d=1;if(a){break c}d=0;if(K[(c+e|0)+798|0]){break c}a=e+1|0;break b}l=N[g+i>>2];J[b+108>>2]=f;N[b+32>>2]=l;N[b+104>>2]=N[g+R>>2];N[b+96>>2]=N[g+O>>2];l=N[g+M>>2];H[b+52|0]=d;N[b+100>>2]=l;a=c+e|0;H[b+64|0]=K[a+795|0];N[b+68>>2]=N[g+L>>2];H[b+72|0]=K[a+798|0];N[b+76>>2]=N[g+I>>2];H[b+80|0]=K[a+836|0];N[b+84>>2]=N[g+G>>2];H[b+88|0]=K[a+856|0];N[b+92>>2]=N[g+F>>2];N[b+28>>2]=N[g+E>>2];N[b+24>>2]=N[j>>2];N[b+60>>2]=N[g+D>>2];N[b+56>>2]=N[g+C>>2];N[b+8>>2]=N[g+B>>2];N[b+12>>2]=N[g+A>>2];l=N[g+z>>2];J[b+20>>2]=0;N[b+16>>2]=l;d=J[c+1456>>2]>>g;N[b+40>>2]=N[(d&1?g+y|0:J[h+32>>2])>>2];N[b+36>>2]=N[(d&2?g+x|0:t)>>2];N[b+48>>2]=N[(d&4?g+w|0:J[h+32>>2])>>2];N[b+44>>2]=N[(d&8?g+v|0:t)>>2];j=1;f=e?e-1|0:2;d=1;d:{e:{f:{g:{a=e+1|0;e=P(e>>>0<2?a:e-2|0,88)+c|0;switch(J[e+1052>>2]-1|0){case 0:case 1:break d;case 3:break f;case 2:break g;default:break e}}m=+N[e+1040>>2];d=m<-.001|m>.001;break d}if(+N[e+1040>>2]<-.001){break d}d=+N[e+1044>>2]>.001;break d}d=0}h:{i:{j:{k:{e=P(f,88)+c|0;switch(J[e+1052>>2]-1|0){case 0:case 1:break i;case 3:break j;case 2:break k;default:break h}}m=+N[e+1040>>2];if(m<-.001|m>.001){break i}break h}if(+N[e+1040>>2]<-.001){break i}if(!(+N[e+1044>>2]>.001)){break h}}j=0}k=Ib(c,b+24|0,n,o,p,q,r,s,h,k,b+8|0,0,d?j:1)+k|0}e=a;if((e|0)!=3){continue}break}sa=b+112|0}function Zd(a,b,c,d){var e=0,f=0,g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=0,t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=0,D=Q(0),E=Q(0),F=Q(0),G=Q(0),I=Q(0),K=Q(0),L=Q(0),M=0,O=Q(0),P=Q(0),R=Q(0),S=Q(0),T=Q(0),U=Q(0),V=Q(0),W=Q(0),X=Q(0),Y=Q(0),Z=Q(0),_=0,$=0,aa=Q(0),ba=Q(0),ca=Q(0),da=Q(0),ea=Q(0),fa=Q(0);e=sa-240|0;sa=e;a:{if(J[a+16>>2]){Kb(J[a+4>>2]);f=J[a+12>>2];s=J[f+4>>2];M=J[a+16>>2];_=J[M+4>>2];h=Q(ua[J[J[f>>2]+48>>2]](f));C=J[a+16>>2];j=Q(ua[J[J[C>>2]+48>>2]](C));C=J[a+4>>2];$=J[a+8>>2];a=e+160|0;J[a+72>>2]=1;J[a+76>>2]=1;J[a+60>>2]=-1;H[a+52|0]=0;N[a+48>>2]=j;N[a+44>>2]=h;J[a+40>>2]=_;J[a+36>>2]=s;J[a+32>>2]=M;J[a+28>>2]=f;J[a+24>>2]=C;J[a+20>>2]=$;J[a+4>>2]=0;J[a+8>>2]=1065353216;J[a+12>>2]=0;J[a+16>>2]=0;J[a>>2]=22784;J[e+152>>2]=1566444395;f=J[b+12>>2];J[e+32>>2]=J[b+8>>2];J[e+36>>2]=f;f=J[b+4>>2];J[e+24>>2]=J[b>>2];J[e+28>>2]=f;f=J[b+28>>2];J[e+48>>2]=J[b+24>>2];J[e+52>>2]=f;f=J[b+20>>2];J[e+40>>2]=J[b+16>>2];J[e+44>>2]=f;s=J[b+44>>2];f=e- -64|0;J[f>>2]=J[b+40>>2];J[f+4>>2]=s;f=J[b+36>>2];J[e+56>>2]=J[b+32>>2];J[e+60>>2]=f;f=J[b+60>>2];J[e+80>>2]=J[b+56>>2];J[e+84>>2]=f;f=J[b+52>>2];J[e+72>>2]=J[b+48>>2];J[e+76>>2]=f;b=J[c+12>>2];J[e+96>>2]=J[c+8>>2];J[e+100>>2]=b;b=J[c+4>>2];J[e+88>>2]=J[c>>2];J[e+92>>2]=b;b=J[c+20>>2];J[e+104>>2]=J[c+16>>2];J[e+108>>2]=b;b=J[c+28>>2];J[e+112>>2]=J[c+24>>2];J[e+116>>2]=b;b=J[c+44>>2];J[e+128>>2]=J[c+40>>2];J[e+132>>2]=b;b=J[c+36>>2];J[e+120>>2]=J[c+32>>2];J[e+124>>2]=b;b=J[c+52>>2];J[e+136>>2]=J[c+48>>2];J[e+140>>2]=b;b=J[c+60>>2];J[e+144>>2]=J[c+56>>2];J[e+148>>2]=b;Za(a,e+24|0,d,0,0);break a}E=N[b+52>>2];F=N[b+56>>2];G=N[c+52>>2];I=N[c+56>>2];k=N[b+20>>2];l=N[b+36>>2];h=N[c+20>>2];j=N[c+36>>2];g=N[c+24>>2];m=N[b+24>>2];i=N[c+40>>2];p=N[b+40>>2];K=N[b+48>>2];aa=N[c+48>>2];f=J[a+12>>2];q=N[b+32>>2];r=N[b+16>>2];t=N[b>>2];u=N[b+4>>2];y=N[c+32>>2];z=N[c+16>>2];A=N[c>>2];B=N[c+4>>2];n=N[c+8>>2];v=N[b+8>>2];a=J[a+20>>2];w=N[a+60>>2];b=a- -64|0;x=N[b>>2];o=N[a+56>>2];J[e+172>>2]=0;O=Q(Q(p*y)+Q(Q(v*A)+Q(m*z)));o=Q(-o);P=Q(Q(p*j)+Q(Q(v*B)+Q(m*h)));D=Q(Q(p*i)+Q(Q(v*n)+Q(m*g)));N[e+168>>2]=Q(Q(O*o)-Q(w*P))-Q(x*D);R=Q(Q(l*y)+Q(Q(u*A)+Q(k*z)));S=Q(Q(l*j)+Q(Q(u*B)+Q(k*h)));T=Q(Q(l*i)+Q(Q(u*n)+Q(k*g)));N[e+164>>2]=Q(Q(R*o)-Q(w*S))-Q(x*T);U=Q(Q(q*y)+Q(Q(t*A)+Q(r*z)));V=Q(Q(q*j)+Q(Q(t*B)+Q(r*h)));W=Q(Q(q*i)+Q(Q(t*n)+Q(r*g)));N[e+160>>2]=Q(Q(U*o)-Q(w*V))-Q(x*W);s=e+160|0;ua[J[J[f>>2]+64>>2]](e+24|0,f,s);k=N[a+60>>2];l=N[b>>2];ba=N[a+72>>2];m=N[a+56>>2];p=N[e+24>>2];q=N[e+28>>2];r=N[e+32>>2];ca=N[c+52>>2];t=N[c+24>>2];u=N[c+20>>2];da=N[c+56>>2];v=N[c+40>>2];w=N[c+36>>2];ea=N[c+48>>2];x=N[c+8>>2];o=N[c>>2];X=N[c+4>>2];Y=N[c+16>>2];Z=N[c+32>>2];J[e+172>>2]=0;fa=Q(Q(F*i)+Q(Q(K*n)+Q(E*g)));L=n;n=Q(-aa);g=Q(Q(fa+Q(Q(Q(L*n)-Q(g*G))-Q(i*I)))+Q(Q(r*D)+Q(Q(p*W)+Q(T*q))));L=g;D=Q(l*g);g=Q(Q(Q(Q(F*y)+Q(Q(K*A)+Q(E*z)))+Q(Q(Q(A*n)-Q(z*G))-Q(y*I)))+Q(Q(r*O)+Q(Q(p*U)+Q(R*q))));i=Q(Q(Q(Q(F*j)+Q(Q(K*B)+Q(E*h)))+Q(Q(Q(B*n)-Q(h*G))-Q(j*I)))+Q(Q(r*P)+Q(Q(p*V)+Q(S*q))));h=Q(Q(D+Q(Q(m*g)+Q(k*i)))-ba);j=Q(L-Q(l*h));g=Q(g-Q(m*h));i=Q(i-Q(k*h));N[e+168>>2]=da+Q(Q(v*j)+Q(Q(Z*g)+Q(w*i)));N[e+164>>2]=ca+Q(Q(j*t)+Q(Q(g*Y)+Q(i*u)));N[e+160>>2]=ea+Q(Q(j*x)+Q(Q(g*o)+Q(i*X)));J[e+20>>2]=0;N[e+16>>2]=Q(v*l)+Q(Q(Z*m)+Q(k*w));N[e+12>>2]=Q(t*l)+Q(Q(Y*m)+Q(k*u));N[e+8>>2]=Q(x*l)+Q(Q(o*m)+Q(k*X));ua[J[J[d>>2]+16>>2]](d,e+8|0,s,h)}sa=e+240|0}function Hd(a,b){var c=0,d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=0;J[a+372>>2]=0;J[a+376>>2]=0;J[a+252>>2]=2;J[a+604>>2]=1065353216;J[a+608>>2]=1065353216;J[a+408>>2]=1065353216;J[a+412>>2]=1065353216;J[a+472>>2]=0;J[a+476>>2]=0;J[a+380>>2]=0;J[a+384>>2]=0;J[a+388>>2]=0;J[a+392>>2]=0;J[a+396>>2]=0;J[a+400>>2]=0;J[a+612>>2]=1065353216;J[a+616>>2]=0;J[a+420>>2]=0;J[a+424>>2]=0;J[a+416>>2]=1065353216;J[a+428>>2]=0;J[a+432>>2]=0;J[a+436>>2]=0;J[a+440>>2]=0;J[a+444>>2]=0;J[a+448>>2]=0;J[a+452>>2]=0;J[a+480>>2]=0;J[a+484>>2]=0;J[a+488>>2]=0;J[a+492>>2]=0;J[a+496>>2]=0;J[a+500>>2]=0;g=N[b+92>>2];d=N[b+96>>2];N[a+508>>2]=dQ(1)?Q(1):d;N[a+504>>2]=gQ(1)?Q(1):g;N[a+532>>2]=N[b+116>>2];N[a+536>>2]=N[b+120>>2];c=J[b+4>>2];J[a+668>>2]=0;J[a+672>>2]=0;J[a+540>>2]=c;H[a+512|0]=K[b+124|0];N[a+516>>2]=N[b+128>>2];N[a+520>>2]=N[b+132>>2];N[a+524>>2]=N[b+136>>2];N[a+528>>2]=N[b+140>>2];a:{if(c){ua[J[J[c>>2]+8>>2]](c,a+4|0);break a}c=J[b+12>>2];J[a+4>>2]=J[b+8>>2];J[a+8>>2]=c;c=J[b+20>>2];J[a+12>>2]=J[b+16>>2];J[a+16>>2]=c;c=J[b+36>>2];J[a+28>>2]=J[b+32>>2];J[a+32>>2]=c;c=J[b+28>>2];J[a+20>>2]=J[b+24>>2];J[a+24>>2]=c;c=J[b+44>>2];J[a+36>>2]=J[b+40>>2];J[a+40>>2]=c;c=J[b+52>>2];J[a+44>>2]=J[b+48>>2];J[a+48>>2]=c;c=b- -64|0;t=J[c+4>>2];J[a+60>>2]=J[c>>2];J[a+64>>2]=t;c=J[b+60>>2];J[a+52>>2]=J[b+56>>2];J[a+56>>2]=c}J[a+132>>2]=0;J[a+136>>2]=0;c=J[a+8>>2];J[a+68>>2]=J[a+4>>2];J[a+72>>2]=c;J[a+156>>2]=0;J[a+160>>2]=0;J[a+148>>2]=0;J[a+152>>2]=0;J[a+140>>2]=0;J[a+144>>2]=0;c=J[a+24>>2];J[a+84>>2]=J[a+20>>2];J[a+88>>2]=c;c=J[a+16>>2];J[a+76>>2]=J[a+12>>2];J[a+80>>2]=c;c=J[a+32>>2];J[a+92>>2]=J[a+28>>2];J[a+96>>2]=c;c=J[a+40>>2];J[a+100>>2]=J[a+36>>2];J[a+104>>2]=c;c=J[a+48>>2];J[a+108>>2]=J[a+44>>2];J[a+112>>2]=c;c=J[a+56>>2];J[a+116>>2]=J[a+52>>2];J[a+120>>2]=c;c=J[a+64>>2];J[a+124>>2]=J[a+60>>2];J[a+128>>2]=c;N[a+228>>2]=N[b+100>>2];N[a+236>>2]=N[b+104>>2];N[a+240>>2]=N[b+108>>2];N[a+232>>2]=N[b+112>>2];ua[J[J[a>>2]+8>>2]](a,J[b+72>>2]);c=J[8931];J[8931]=c+1;J[a+568>>2]=c;g=Q(0);c=J[a+204>>2];d=N[b>>2];if(d==Q(0)){c=c|1}else{g=Q(Q(1)/d);c=c&-2}N[a+404>>2]=g;J[a+204>>2]=c;J[a+436>>2]=0;N[a+424>>2]=d*N[a+440>>2];N[a+432>>2]=d*N[a+448>>2];N[a+428>>2]=d*N[a+444>>2];e=N[b+84>>2];f=N[b+80>>2];d=N[b+76>>2];J[a+564>>2]=8;J[a+368>>2]=0;J[a+352>>2]=0;J[a+336>>2]=0;J[a+468>>2]=0;d=d!=Q(0)?Q(Q(1)/d):Q(0);N[a+456>>2]=d;f=f!=Q(0)?Q(Q(1)/f):Q(0);N[a+460>>2]=f;e=e!=Q(0)?Q(Q(1)/e):Q(0);N[a+464>>2]=e;m=N[a+12>>2];h=Q(e*m);n=N[a+4>>2];i=Q(d*n);o=N[a+8>>2];j=Q(f*o);N[a+324>>2]=Q(m*h)+Q(Q(n*i)+Q(o*j));p=N[a+28>>2];q=N[a+20>>2];r=N[a+24>>2];N[a+328>>2]=Q(p*h)+Q(Q(q*i)+Q(j*r));s=N[a+44>>2];k=Q(s*h);h=N[a+36>>2];l=Q(h*i);i=N[a+40>>2];N[a+332>>2]=k+Q(l+Q(j*i));j=Q(e*p);k=Q(d*q);l=Q(f*r);N[a+340>>2]=Q(m*j)+Q(Q(n*k)+Q(o*l));N[a+344>>2]=Q(p*j)+Q(Q(q*k)+Q(r*l));N[a+348>>2]=Q(s*j)+Q(Q(h*k)+Q(l*i));e=Q(e*s);d=Q(d*h);f=Q(f*i);N[a+356>>2]=Q(m*e)+Q(Q(n*d)+Q(o*f));N[a+360>>2]=Q(p*e)+Q(Q(q*d)+Q(r*f));N[a+364>>2]=Q(s*e)+Q(Q(h*d)+Q(i*f));d=N[a+408>>2];f=N[a+412>>2];e=N[a+416>>2];J[a+596>>2]=0;J[a+600>>2]=0;J[a+588>>2]=0;J[a+592>>2]=0;J[a+580>>2]=0;J[a+584>>2]=0;J[a+572>>2]=0;J[a+576>>2]=0;N[a+628>>2]=g*e;N[a+624>>2]=g*f;N[a+620>>2]=g*d;J[a+664>>2]=0;J[a+656>>2]=0;J[a+660>>2]=0;J[a+648>>2]=0;J[a+652>>2]=0;J[a+640>>2]=0;J[a+644>>2]=0;J[a+632>>2]=0;J[a+636>>2]=0}function zo(a,b,c,d,e,f){a=a|0;b=Q(b);c=Q(c);d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=Q(0),k=Q(0),l=Q(0),m=0,n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=0,s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;g=sa-144|0;sa=g;J[g+136>>2]=0;J[g+140>>2]=0;J[g+128>>2]=0;J[g+132>>2]=0;z=g+128|0;m=d<<2;N[z+m>>2]=-c;J[g+120>>2]=0;J[g+124>>2]=0;J[g+112>>2]=0;J[g+116>>2]=0;A=g+112|0;N[m+A>>2]=c;h=J[e+12>>2];J[g+56>>2]=J[e+8>>2];J[g+60>>2]=h;h=J[e+4>>2];J[g+48>>2]=J[e>>2];J[g+52>>2]=h;h=J[e+28>>2];J[g+72>>2]=J[e+24>>2];J[g+76>>2]=h;h=J[e+20>>2];J[g+64>>2]=J[e+16>>2];J[g+68>>2]=h;h=J[e+44>>2];J[g+88>>2]=J[e+40>>2];J[g+92>>2]=h;h=J[e+36>>2];J[g+80>>2]=J[e+32>>2];J[g+84>>2]=h;k=N[e+8>>2];p=N[e+56>>2];v=N[e+40>>2];w=N[e+36>>2];x=N[e+48>>2];y=N[e>>2];n=N[e+4>>2];o=N[e+32>>2];c=N[g+136>>2];j=N[g+128>>2];l=N[g+132>>2];N[g+100>>2]=Q(Q(c*N[e+24>>2])+Q(Q(j*N[e+16>>2])+Q(l*N[e+20>>2])))+N[e+52>>2];J[g+108>>2]=0;N[g+104>>2]=p+Q(Q(c*v)+Q(Q(j*o)+Q(l*w)));N[g+96>>2]=x+Q(Q(c*k)+Q(Q(j*y)+Q(l*n)));h=J[g+108>>2];J[g+40>>2]=J[g+104>>2];J[g+44>>2]=h;h=J[g+100>>2];J[g+32>>2]=J[g+96>>2];J[g+36>>2]=h;h=(d+1|0)%3<<2;r=g+48|0;D=h+r|0;N[g+16>>2]=N[D>>2];B=g- -64|0;E=B+h|0;N[g+20>>2]=N[E>>2];C=g+80|0;F=C+h|0;c=N[F>>2];J[g+28>>2]=0;N[g+24>>2]=c;B=m+B|0;c=N[B>>2];C=m+C|0;j=N[C>>2];J[g+12>>2]=0;m=m+r|0;N[g>>2]=-N[m>>2];N[g+8>>2]=-j;N[g+4>>2]=-c;r=g+32|0;G=g+16|0;ua[J[J[a>>2]+72>>2]](a,r,G,g,b,Q(-1.5707963705062866),Q(1.5707963705062866),Q(-1.5707963705062866),Q(1.5707963705062866),f,Q(30),0);i=J[e+12>>2];J[g+56>>2]=J[e+8>>2];J[g+60>>2]=i;i=J[e+4>>2];J[g+48>>2]=J[e>>2];J[g+52>>2]=i;i=J[e+28>>2];J[g+72>>2]=J[e+24>>2];J[g+76>>2]=i;i=J[e+20>>2];J[g+64>>2]=J[e+16>>2];J[g+68>>2]=i;i=J[e+44>>2];J[g+88>>2]=J[e+40>>2];J[g+92>>2]=i;i=J[e+36>>2];J[g+80>>2]=J[e+32>>2];J[g+84>>2]=i;k=N[e+8>>2];p=N[e+56>>2];v=N[e+40>>2];w=N[e+36>>2];c=N[e+52>>2];j=N[e+24>>2];l=N[e+20>>2];x=N[e+48>>2];y=N[e>>2];n=N[e+4>>2];o=N[e+32>>2];q=N[e+16>>2];J[g+108>>2]=0;s=c;c=N[g+120>>2];t=Q(j*c);j=N[g+112>>2];u=l;l=N[g+116>>2];N[g+100>>2]=s+Q(t+Q(Q(q*j)+Q(u*l)));N[g+104>>2]=p+Q(Q(c*v)+Q(Q(j*o)+Q(l*w)));N[g+96>>2]=x+Q(Q(c*k)+Q(Q(j*y)+Q(l*n)));i=J[g+108>>2];J[g+40>>2]=J[g+104>>2];J[g+44>>2]=i;i=J[g+100>>2];J[g+32>>2]=J[g+96>>2];J[g+36>>2]=i;N[g+16>>2]=N[D>>2];N[g+20>>2]=N[E>>2];c=N[F>>2];J[g+28>>2]=0;N[g+24>>2]=c;N[g>>2]=N[m>>2];N[g+4>>2]=N[B>>2];c=N[C>>2];J[g+12>>2]=0;N[g+8>>2]=c;ua[J[J[a>>2]+72>>2]](a,r,G,g,b,Q(-1.5707963705062866),Q(1.5707963705062866),Q(-1.5707963705062866),Q(1.5707963705062866),f,Q(30),0);d=(d+2|0)%3<<2;m=d+A|0;r=d+z|0;A=h+A|0;h=h+z|0;c=N[e+56>>2];j=N[e+52>>2];l=N[e+48>>2];d=0;while(1){k=Q(Q(d|0)*Q(.01745329238474369));p=Q(Na(k)*b);N[h>>2]=p;N[A>>2]=p;k=Q(Ma(k)*b);N[r>>2]=k;N[m>>2]=k;k=N[e+8>>2];p=N[e>>2];v=N[e+4>>2];w=N[e+24>>2];x=N[e+16>>2];y=N[e+20>>2];n=N[e+40>>2];o=N[e+32>>2];q=N[e+36>>2];J[g+60>>2]=0;s=N[g+136>>2];u=N[g+128>>2];t=N[g+132>>2];N[g+56>>2]=c+Q(Q(n*s)+Q(Q(o*u)+Q(q*t)));N[g+52>>2]=j+Q(Q(w*s)+Q(Q(x*u)+Q(t*y)));N[g+48>>2]=l+Q(Q(k*s)+Q(Q(p*u)+Q(v*t)));J[g+44>>2]=0;s=n;n=N[g+120>>2];u=o;o=N[g+112>>2];t=q;q=N[g+116>>2];N[g+40>>2]=c+Q(Q(s*n)+Q(Q(u*o)+Q(t*q)));N[g+36>>2]=j+Q(Q(w*n)+Q(Q(x*o)+Q(y*q)));N[g+32>>2]=l+Q(Q(k*n)+Q(Q(p*o)+Q(v*q)));ua[J[J[a>>2]+16>>2]](a,g+48|0,g+32|0,f);z=d>>>0<330;d=d+30|0;if(z){continue}break}sa=g+144|0}function Ib(a,b,c,d,e,f,g,h,i,j,k,l,m){var n=Q(0),o=Q(0),p=0,q=Q(0),r=Q(0),s=0,t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0);j=P(J[i+24>>2],j);a:{b:{c:{switch(J[b+84>>2]-3|0){case 1:p=l?g:e;q=N[p+8>>2];u=N[p>>2];z=N[p+4>>2];p=l?h:f;w=N[p+8>>2];x=N[p>>2];v=N[p+4>>2];o=N[k+8>>2];n=N[k>>2];r=N[k+4>>2];jb(a,c,d,i,j,k,l,m);p=J[i+28>>2]+(j<<2)|0;y=l?Q(-1):Q(1);t=Q(y*Q(Q(N[i>>2]*N[b+12>>2])*N[b+72>>2]));N[p>>2]=t;n=Q(Q(Q(q*o)+Q(Q(u*n)+Q(z*r)))-Q(Q(w*o)+Q(Q(x*n)+Q(r*v))));q=Q(t-Q(n*N[b+12>>2]));d:{e:{if(l){o=Q(0);r=Q(34028234663852886e22);if(!(q>Q(0))){break d}q=Q(n*Q(-N[b+8>>2]));if(t>2]));if(!(t>q)){break d}}N[p>>2]=q}p=j<<2;N[p+J[i+36>>2]>>2]=o;N[p+J[i+40>>2]>>2]=r;N[p+J[i+32>>2]>>2]=N[b+16>>2];j=J[i+24>>2]+j|0;jb(a,c,d,i,j,k,l,m);p=J[i+28>>2]+(j<<2)|0;q=Q(y*Q(Q(N[i>>2]*N[b+12>>2])*N[b+76>>2]));N[p>>2]=q;t=Q(q-Q(n*N[b+12>>2]));f:{g:{if(l){r=Q(0);o=Q(-34028234663852886e22);if(!(t>2]));if(q>n){break g}break f}o=Q(0);r=Q(34028234663852886e22);if(!(t>Q(0))){break f}n=Q(n*Q(-N[b+8>>2]));if(!(q>2]=n}s=b+16|0;p=j<<2;N[p+J[i+36>>2]>>2]=o;N[p+J[i+40>>2]>>2]=r;p=2;break b;case 0:break c;default:break a}}jb(a,c,d,i,j,k,l,m);p=j<<2;N[p+J[i+28>>2]>>2]=Q(Q(N[i>>2]*N[b+12>>2])*N[b+72>>2])*Q((l?-1:1)|0);J[p+J[i+36>>2]>>2]=-8388609;J[p+J[i+40>>2]>>2]=2139095039;s=b+16|0;p=1}N[J[i+32>>2]+(j<<2)>>2]=N[s>>2];j=J[i+24>>2]+j|0}h:{if(!K[b+28|0]){break h}if(!K[b+40|0]){jb(a,c,d,i,j,k,l,m);o=N[b+32>>2];o=Hb(N[b+80>>2],N[b>>2],N[b+4>>2],l?o:Q(-o),Q(N[i>>2]*N[b+20>>2]));s=j<<2;N[s+J[i+28>>2]>>2]=o*N[b+32>>2];N[s+J[i+36>>2]>>2]=-N[b+36>>2];N[s+J[i+40>>2]>>2]=N[b+36>>2];N[s+J[i+32>>2]>>2]=N[b+24>>2];p=p+1|0;j=J[i+24>>2]+j|0;if(!K[b+28|0]|!K[b+40|0]){break h}}o=N[b+44>>2];n=Q(N[b+80>>2]-o);i:{if(!l){break i}s=n>Q(3.1415927410125732);o=s?Q(o+Q(6.2831854820251465)):o;n=s?Q(n+Q(-6.2831854820251465)):n;if(!(n>2];t=n>2];r=N[b>>2];q=N[b+4>>2];j:{if(r>q){q=nQ(0)?o:Q(-34028234663852886e22);break j}q=nQ(0)?o>r?o:r:r}r=Hb(v,n,q,u,Q(N[i>>2]*N[b+20>>2]))}s=j<<2;N[s+J[i+28>>2]>>2]=Q(t*r)*Q((l?-1:1)|0);N[s+J[i+36>>2]>>2]=-N[b+36>>2];N[s+J[i+40>>2]>>2]=N[b+36>>2];N[s+J[i+32>>2]>>2]=N[b+24>>2];p=p+1|0;j=J[i+24>>2]+j|0}if(K[b+48|0]){q=N[b+68>>2];u=N[b+80>>2];jb(a,c,d,i,j,k,l,m);c=l?g:e;o=N[k+8>>2];n=N[k>>2];r=N[k+4>>2];v=Q(Q(N[c+8>>2]*o)+Q(Q(N[c>>2]*n)+Q(N[c+4>>2]*r)));c=l?h:f;t=Q(v-Q(Q(N[c+8>>2]*o)+Q(Q(N[c>>2]*n)+Q(r*N[c+4>>2]))));o=Q(Q(1)/N[J[a+32>>2]+404>>2]);n=Q(Q(1)/N[J[a+28>>2]+404>>2]);r=n>o?o:n;u=Q(u-q);q=N[b+60>>2];n=Q(Q(1)/N[i>>2]);o=N[b+52>>2];if(!(!K[b+56|0]|!(Q(n*Q(Y(Q(o/r))))>Q(.25)))){o=Q(Q(Q(Q(Q(1)/n)/n)*Q(.0625))*r)}a=j<<2;w=Q(n*Q(u*o));v=n;x=Q(t*Q(-(K[b+64|0]?r>2]>>2]=Q(r*n)+t;b=o>r;n=b?o:r;o=b?r:o;k:{if(!l){N[a+J[i+36>>2]>>2]=o>Q(0)?Q(0):o;break k}N[a+J[i+36>>2]>>2]=n>2]>>2]=n>2]>>2]=0;p=p+1|0}return p}function Ld(a,b,c,d,e,f){a=mc(a,12,b,c);J[a>>2]=23392;b=J[d+12>>2];J[a+56>>2]=J[d+8>>2];J[a+60>>2]=b;b=J[d+4>>2];J[a+48>>2]=J[d>>2];J[a+52>>2]=b;b=J[d+28>>2];J[a+72>>2]=J[d+24>>2];J[a+76>>2]=b;c=J[d+20>>2];b=a- -64|0;J[b>>2]=J[d+16>>2];J[b+4>>2]=c;b=J[d+44>>2];J[a+88>>2]=J[d+40>>2];J[a+92>>2]=b;b=J[d+36>>2];J[a+80>>2]=J[d+32>>2];J[a+84>>2]=b;b=J[d+60>>2];J[a+104>>2]=J[d+56>>2];J[a+108>>2]=b;b=J[d+52>>2];J[a+96>>2]=J[d+48>>2];J[a+100>>2]=b;b=J[e+12>>2];J[a+120>>2]=J[e+8>>2];J[a+124>>2]=b;b=J[e+4>>2];J[a+112>>2]=J[e>>2];J[a+116>>2]=b;b=J[e+20>>2];J[a+128>>2]=J[e+16>>2];J[a+132>>2]=b;b=J[e+28>>2];J[a+136>>2]=J[e+24>>2];J[a+140>>2]=b;b=J[e+36>>2];J[a+144>>2]=J[e+32>>2];J[a+148>>2]=b;b=J[e+44>>2];J[a+152>>2]=J[e+40>>2];J[a+156>>2]=b;b=J[e+52>>2];J[a+160>>2]=J[e+48>>2];J[a+164>>2]=b;b=J[e+60>>2];J[a+168>>2]=J[e+56>>2];J[a+172>>2]=b;J[a+680>>2]=0;J[a+684>>2]=0;J[a+688>>2]=0;J[a+692>>2]=0;J[a+696>>2]=0;J[a+700>>2]=0;J[a+704>>2]=0;J[a+708>>2]=0;J[a+712>>2]=0;J[a+716>>2]=0;J[a+720>>2]=0;J[a+724>>2]=0;J[a+728>>2]=1045220557;J[a+732>>2]=1045220557;J[a+736>>2]=1045220557;J[a+756>>2]=0;J[a+748>>2]=0;J[a+752>>2]=0;J[a+740>>2]=0;J[a+744>>2]=0;J[a+760>>2]=1063675494;J[a+764>>2]=1063675494;J[a+768>>2]=1063675494;J[a+812>>2]=0;J[a+804>>2]=0;J[a+808>>2]=0;J[a+828>>2]=0;J[a+820>>2]=0;J[a+824>>2]=0;H[a+838|0]=0;I[a+836>>1]=0;J[a+848>>2]=0;J[a+840>>2]=0;J[a+844>>2]=0;H[a+858|0]=0;I[a+856>>1]=0;J[a+868>>2]=0;J[a+860>>2]=0;J[a+864>>2]=0;J[a+884>>2]=0;J[a+876>>2]=0;J[a+880>>2]=0;J[a+900>>2]=0;J[a+892>>2]=0;J[a+896>>2]=0;H[a+793|0]=0;H[a+794|0]=0;H[a+795|0]=0;H[a+796|0]=0;H[a+797|0]=0;H[a+798|0]=0;H[a+799|0]=0;H[a+800|0]=0;J[a+788>>2]=0;J[a+792>>2]=0;J[a+780>>2]=0;J[a+784>>2]=0;J[a+772>>2]=0;J[a+776>>2]=0;J[a+964>>2]=0;J[a+956>>2]=0;J[a+960>>2]=0;J[a+948>>2]=0;J[a+952>>2]=0;J[a+940>>2]=0;J[a+944>>2]=0;J[a+932>>2]=0;J[a+936>>2]=0;J[a+924>>2]=0;J[a+928>>2]=0;J[a+916>>2]=0;J[a+920>>2]=0;J[a+908>>2]=0;J[a+912>>2]=0;H[a+1032|0]=0;J[a+1028>>2]=0;H[a+1024|0]=0;J[a+1020>>2]=0;H[a+1016|0]=0;J[a+1012>>2]=0;H[a+1008|0]=0;J[a+1e3>>2]=0;J[a+1004>>2]=1036831949;H[a+996|0]=0;J[a+992>>2]=0;J[a+984>>2]=0;J[a+988>>2]=1063675494;J[a+976>>2]=0;J[a+980>>2]=1045220557;J[a+968>>2]=1065353216;J[a+972>>2]=-1082130432;J[a+1052>>2]=0;b=a+1044|0;J[b>>2]=0;J[b+4>>2]=0;b=a+1036|0;J[b>>2]=0;J[b+4>>2]=0;H[a+1120|0]=0;J[a+1116>>2]=0;H[a+1112|0]=0;J[a+1108>>2]=0;H[a+1104|0]=0;J[a+1100>>2]=0;H[a+1096|0]=0;b=a+1088|0;J[b>>2]=0;J[b+4>>2]=1036831949;H[a+1084|0]=0;J[a+1080>>2]=0;b=a+1072|0;J[b>>2]=0;J[b+4>>2]=1063675494;b=a+1064|0;J[b>>2]=0;J[b+4>>2]=1045220557;b=a+1056|0;J[b>>2]=1065353216;J[b+4>>2]=-1082130432;J[a+1140>>2]=0;b=a+1132|0;J[b>>2]=0;J[b+4>>2]=0;b=a+1124|0;J[b>>2]=0;J[b+4>>2]=0;H[a+1208|0]=0;J[a+1204>>2]=0;H[a+1200|0]=0;J[a+1196>>2]=0;H[a+1192|0]=0;J[a+1188>>2]=0;H[a+1184|0]=0;b=a+1176|0;J[b>>2]=0;J[b+4>>2]=1036831949;H[a+1172|0]=0;J[a+1168>>2]=0;b=a+1160|0;J[b>>2]=0;J[b+4>>2]=1063675494;b=a+1152|0;J[b>>2]=0;J[b+4>>2]=1045220557;b=a+1144|0;J[b>>2]=1065353216;J[b+4>>2]=-1082130432;J[a+1228>>2]=0;b=a+1220|0;J[b>>2]=0;J[b+4>>2]=0;b=a+1212|0;J[b>>2]=0;J[b+4>>2]=0;J[a+1456>>2]=0;J[a+1232>>2]=f;qc(a,J[a+28>>2]+4|0,J[a+32>>2]+4|0);return a}function $i(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;e=sa-32|0;sa=e;d=ua[J[J[a>>2]+28>>2]](a)|0;J[b>>2]=0;J[b+20>>2]=d;if(d){p=ua[J[J[c>>2]+16>>2]](c,32,d)|0;j=J[p+8>>2];s=b,t=ua[J[J[c>>2]+28>>2]](c,j)|0,J[s>>2]=t;r=ua[J[J[a>>2]+28>>2]](a)|0;if((r|0)>0){while(1){ua[J[J[a>>2]+16>>2]](a,e+28|0,e+4|0,e+16|0,e+8|0,e+24|0,e+20|0,e,e+12|0,o);d=J[e>>2];J[j+24>>2]=d;f=J[e+4>>2];J[j>>2]=0;J[j+4>>2]=0;J[j+28>>2]=f;J[j+8>>2]=0;J[j+12>>2]=0;J[j+16>>2]=0;J[j+20>>2]=0;a:{b:{switch(J[e+12>>2]-2|0){case 0:if(!d){break a}f=ua[J[J[c>>2]+16>>2]](c,4,P(d,3))|0;k=J[f+8>>2];s=j,t=ua[J[J[c>>2]+28>>2]](c,k)|0,J[s+8>>2]=t;if(J[e>>2]>0){d=0;m=J[e+24>>2];while(1){h=k+P(d,12)|0;g=m+P(J[e+20>>2],d)|0;J[h>>2]=J[g>>2];J[h+4>>2]=J[g+4>>2];J[h+8>>2]=J[g+8>>2];d=d+1|0;if((d|0)>2]){continue}break}}ua[J[J[c>>2]+20>>2]](c,f,8455,1497453121,J[f+8>>2]);break a;case 1:if(!d){break a}h=ua[J[J[c>>2]+16>>2]](c,8,d)|0;k=J[h+8>>2];s=j,t=ua[J[J[c>>2]+28>>2]](c,k)|0,J[s+12>>2]=t;d=0;if(J[e>>2]>0){while(1){f=k+(d<<3)|0;g=J[e+24>>2]+P(J[e+20>>2],d)|0;I[f>>1]=L[g>>1];I[f+2>>1]=L[g+2>>1];g=L[g+4>>1];I[f+6>>1]=0;I[f+4>>1]=g;d=d+1|0;if((d|0)>2]){continue}break}}ua[J[J[c>>2]+20>>2]](c,h,8520,1497453121,J[h+8>>2]);break a;case 3:break b;default:break a}}if(!d){break a}h=ua[J[J[c>>2]+16>>2]](c,4,d)|0;k=J[h+8>>2];s=j,t=ua[J[J[c>>2]+28>>2]](c,k)|0,J[s+16>>2]=t;d=0;if(J[e>>2]>0){while(1){f=k+(d<<2)|0;g=J[e+24>>2]+P(J[e+20>>2],d)|0;H[f|0]=K[g|0];H[f+1|0]=K[g+1|0];g=K[g+2|0];H[f+3|0]=0;H[f+2|0]=g;d=d+1|0;if((d|0)>2]){continue}break}}ua[J[J[c>>2]+20>>2]](c,h,8547,1497453121,J[h+8>>2])}c:{d:{switch(J[e+16>>2]){case 0:d=J[e+4>>2];if(!d){break c}n=ua[J[J[c>>2]+16>>2]](c,16,d)|0;h=J[n+8>>2];s=j,t=ua[J[J[c>>2]+28>>2]](c,h)|0,J[s>>2]=t;g=J[e+4>>2];e:{if((g|0)<=0){break e}d=0;k=J[e+8>>2];m=J[e+28>>2];if((g|0)!=1){q=g&-2;f=0;while(1){l=h+(d<<4)|0;i=m+P(d,k)|0;N[l>>2]=N[i>>2];N[l+4>>2]=N[i+4>>2];N[l+8>>2]=N[i+8>>2];i=d|1;l=h+(i<<4)|0;i=m+P(i,k)|0;N[l>>2]=N[i>>2];N[l+4>>2]=N[i+4>>2];N[l+8>>2]=N[i+8>>2];d=d+2|0;f=f+2|0;if((q|0)!=(f|0)){continue}break}}if(!(g&1)){break e}f=h+(d<<4)|0;d=m+P(d,k)|0;N[f>>2]=N[d>>2];N[f+4>>2]=N[d+4>>2];N[f+8>>2]=N[d+8>>2]}ua[J[J[c>>2]+20>>2]](c,n,8754,1497453121,J[n+8>>2]);break c;case 1:break d;default:break c}}d=J[e+4>>2];if(!d){break c}n=ua[J[J[c>>2]+16>>2]](c,32,d)|0;h=J[n+8>>2];s=j,t=ua[J[J[c>>2]+28>>2]](c,h)|0,J[s+4>>2]=t;g=J[e+4>>2];f:{if((g|0)<=0){break f}d=0;k=J[e+8>>2];m=J[e+28>>2];if((g|0)!=1){q=g&-2;f=0;while(1){l=h+(d<<5)|0;i=m+P(d,k)|0;O[l>>3]=O[i>>3];O[l+8>>3]=O[i+8>>3];O[l+16>>3]=O[i+16>>3];i=d|1;l=h+(i<<5)|0;i=m+P(i,k)|0;O[l>>3]=O[i>>3];O[l+8>>3]=O[i+8>>3];O[l+16>>3]=O[i+16>>3];d=d+2|0;f=f+2|0;if((q|0)!=(f|0)){continue}break}}if(!(g&1)){break f}f=h+(d<<5)|0;d=m+P(d,k)|0;O[f>>3]=O[d>>3];O[f+8>>3]=O[d+8>>3];O[f+16>>3]=O[d+16>>3]}ua[J[J[c>>2]+20>>2]](c,n,8993,1497453121,J[n+8>>2])}ua[J[J[a>>2]+24>>2]](a,o);j=j+32|0;o=o+1|0;if((r|0)!=(o|0)){continue}break}}ua[J[J[c>>2]+20>>2]](c,p,8470,1497453121,J[p+8>>2])}J[b+24>>2]=0;N[b+4>>2]=N[a+4>>2];N[b+8>>2]=N[a+8>>2];N[b+12>>2]=N[a+12>>2];N[b+16>>2]=N[a+16>>2];sa=e+32|0;return 9059}function fl(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=Q(0),j=0,k=Q(0),l=0,m=Q(0),n=Q(0),o=Q(0),p=0,q=Q(0),r=0,s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=0,z=0,A=0;l=sa+-64|0;sa=l;g=J[a+56>>2];J[l+60>>2]=0;J[l+8>>2]=b;J[l+4>>2]=g;J[l>>2]=18972;g=sa-16|0;sa=g;f=J[a+60>>2];a:{if(K[f+60|0]){v=N[f+40>>2];s=N[f+24>>2];i=N[f+8>>2];w=N[f+36>>2];t=N[f+20>>2];q=N[f+4>>2];n=N[c>>2];o=N[c+4>>2];u=N[f+28>>2];m=N[f+12>>2];k=N[c+8>>2];k=m>k?m:k;x=N[f+44>>2];k=Q(Q((k>u?u:k)-m)*x);b:{if(k=Q(0)){a=~~k>>>0;break b}a=0}j=a&65534;I[g+14>>1]=j;o=i>o?i:o;o=Q(v*Q((o>s?s:o)-i));c:{if(o=Q(0)){a=~~o>>>0;break c}a=0}r=a&65534;I[g+12>>1]=r;n=nt?t:n)-q)*w);d:{if(n=Q(0)){a=~~n>>>0;break d}a=0}y=a&65534;I[g+10>>1]=y;n=N[d>>2];o=N[d+4>>2];k=N[d+8>>2];k=m>k?m:k;m=Q(Q(x*Q((k>u?u:k)-m))+Q(1));e:{if(m=Q(0)){a=~~m>>>0;break e}a=0}d=a|1;I[g+8>>1]=d;m=i>o?i:o;i=Q(Q(v*Q((m>s?s:m)-i))+Q(1));f:{if(i=Q(0)){a=~~i>>>0;break f}a=0}z=a|1;I[g+6>>1]=z;i=nt?t:i)-q))+Q(1));g:{if(i=Q(0)){a=~~i>>>0;break g}a=0}A=a|1;I[g+4>>1]=A;h:{switch(J[f+144>>2]){case 0:a=J[f+56>>2];if((a|0)>0){e=J[f+136>>2];while(1){p=p+1|0;i:{j:{b=J[e+12>>2];f=(b|0)<0;c=y>>>0<=L[e+6>>1]&A>>>0>=L[e>>1]&L[e+10>>1]>=j>>>0&d>>>0>=L[e+4>>1]&r>>>0<=L[e+8>>1]&z>>>0>=L[e+2>>1];k:{if(!(f|!c)){ua[J[J[l>>2]+8>>2]](l,b>>>21|0,b&2097151);break k}if(f&(c^-1)){break j}}e=e+16|0;h=h+1|0;break i}e=e-(b<<4)|0;h=h-b|0}if((a|0)>(h|0)){continue}break}}if(J[8470]>=(p|0)){break a}J[8470]=p;break a;case 1:if(J[f+152>>2]>0){while(1){a=J[f+160>>2]+(e<<5)|0;l:{if(L[g+10>>1]>L[a+6>>1]|L[g+4>>1]>1]|(L[g+8>>1]>1]|L[g+14>>1]>L[a+10>>1])){break l}if(L[g+6>>1]>1]|L[g+12>>1]>L[a+8>>1]){break l}b=J[a+16>>2];m:{if((b|0)<=0){b=0;break m}j=J[a+12>>2];d=b+j|0;h=J[f+136>>2]+(j<<4)|0;b=0;while(1){n:{o:{a=J[h+12>>2];p=(a|0)<0;c=L[g+10>>1]<=L[h+6>>1]&L[g+4>>1]>=L[h>>1]&L[g+14>>1]<=L[h+10>>1]&L[g+8>>1]>=L[h+4>>1]&L[g+12>>1]<=L[h+8>>1]&L[g+6>>1]>=L[h+2>>1];p:{if(!(p|!c)){ua[J[J[l>>2]+8>>2]](l,a>>>21|0,a&2097151);break p}if(p&(c^-1)){break o}}j=j+1|0;h=h+16|0;break n}j=j-a|0;h=h-(a<<4)|0}b=b+1|0;if((d|0)>(j|0)){continue}break}}if(J[8470]>=(b|0)){break l}J[8470]=b}e=e+1|0;if((e|0)>2]){continue}break}}break a;case 2:break h;default:break a}}Ae(f,J[f+136>>2],l,g+10|0,g+4|0);break a}r=J[f+56>>2];if((r|0)>0){e=J[f+96>>2];while(1){a=0;q:{if(N[c>>2]>N[e+16>>2]){break q}a=0;if(N[d>>2]>2]){break q}a=1}b=0;b=N[d+8>>2]>2]|N[c+8>>2]>N[e+24>>2]?b:a;r:{s:{t:{if(N[d+4>>2]>2]|N[c+4>>2]>N[e+20>>2]){j=J[e+32>>2];a=(j|0)==-1;b=0;break t}j=J[e+32>>2];a=(j|0)==-1;if(!(b&a)){break t}ua[J[J[l>>2]+8>>2]](l,J[e+36>>2],J[e+40>>2]);r=J[f+56>>2];break s}if(a|b){break s}e=(j<<6)+e|0;h=h+j|0;break r}e=e- -64|0;h=h+1|0}p=p+1|0;if((h|0)<(r|0)){continue}break}}if(J[8470]>=(p|0)){break a}J[8470]=p}sa=g+16|0;sa=l- -64|0}function gf(a){a=a|0;var b=0,c=0,d=0,e=0,f=Q(0),g=0,h=Q(0),i=0,j=0,k=0,l=0,m=Q(0),n=Q(0),o=Q(0),p=Q(0);b=sa-208|0;sa=b;a:{if(!(ua[J[J[a>>2]+20>>2]](a)|0)){break a}d=ua[J[J[a>>2]+20>>2]](a)|0;ua[J[J[d>>2]+100>>2]](d);d=ua[J[J[a>>2]+20>>2]](a)|0;ua[J[J[d>>2]+8>>2]](b+80|0,d);d=ua[J[J[a>>2]+20>>2]](a)|0;b:{if(!(ua[J[J[d>>2]+56>>2]](d)&8)){break b}d=J[a+24>>2];if(!d){break b}i=ua[J[J[d>>2]+36>>2]](d)|0;if((i|0)<=0){break b}l=b+176|0;while(1){g=0;d=J[a+24>>2];j=ua[J[J[d>>2]+40>>2]](d,e)|0;k=J[j+844>>2];if((k|0)>0){while(1){d=ua[J[J[a>>2]+20>>2]](a)|0;c=j+P(g,208)|0;ua[J[J[d>>2]+40>>2]](d,c+36|0,c+68|0,N[c+84>>2],J[c+168>>2],l);g=g+1|0;if((k|0)!=(g|0)){continue}break}}e=e+1|0;if((i|0)!=(e|0)){continue}break}}d=ua[J[J[a>>2]+20>>2]](a)|0;if(!(ua[J[J[d>>2]+56>>2]](d)&3)|J[a+8>>2]<=0){break a}i=b+160|0;l=b+96|0;j=b+112|0;k=b+128|0;d=b+144|0;g=0;while(1){e=J[J[a+16>>2]+(g<<2)>>2];c:{if(K[e+204|0]&32){break c}d:{if(!(ua[J[J[a>>2]+20>>2]](a)|0)){break d}c=ua[J[J[a>>2]+20>>2]](a)|0;if(!(ua[J[J[c>>2]+56>>2]](c)&1)){break d}e:{f:{switch(J[e+220>>2]-1|0){case 0:c=J[b+92>>2];J[b+72>>2]=J[b+88>>2];J[b+76>>2]=c;c=J[b+84>>2];J[b+64>>2]=J[b+80>>2];J[b+68>>2]=c;break e;case 1:c=J[l+12>>2];J[b+72>>2]=J[l+8>>2];J[b+76>>2]=c;c=J[l+4>>2];J[b+64>>2]=J[l>>2];J[b+68>>2]=c;break e;case 2:c=J[j+12>>2];J[b+72>>2]=J[j+8>>2];J[b+76>>2]=c;c=J[j+4>>2];J[b+64>>2]=J[j>>2];J[b+68>>2]=c;break e;case 3:c=J[k+12>>2];J[b+72>>2]=J[k+8>>2];J[b+76>>2]=c;c=J[k+4>>2];J[b+64>>2]=J[k>>2];J[b+68>>2]=c;break e;case 4:c=J[d+12>>2];J[b+72>>2]=J[d+8>>2];J[b+76>>2]=c;c=J[d+4>>2];J[b+64>>2]=J[d>>2];J[b+68>>2]=c;break e;default:break f}}J[b+72>>2]=1050253722;J[b+76>>2]=0;J[b+64>>2]=1050253722;J[b+68>>2]=1050253722}if(H[e+205|0]&1){c=J[e+320>>2];J[b+72>>2]=J[e+316>>2];J[b+76>>2]=c;c=J[e+312>>2];J[b+64>>2]=J[e+308>>2];J[b+68>>2]=c}ua[J[J[a>>2]+28>>2]](a,e+4|0,J[e+192>>2],b- -64|0)}c=J[a+72>>2];if(!c){break c}if(!(ua[J[J[c>>2]+56>>2]](c)&2)){break c}c=J[i+12>>2];J[b+40>>2]=J[i+8>>2];J[b+44>>2]=c;c=J[i+4>>2];J[b+32>>2]=J[i>>2];J[b+36>>2]=c;c=J[e+192>>2];ua[J[J[c>>2]+8>>2]](c,e+4|0,b- -64|0,b+48|0);f=N[8265];N[b+64>>2]=N[b+64>>2]-f;N[b+68>>2]=N[b+68>>2]-f;N[b+72>>2]=N[b+72>>2]-f;N[b+48>>2]=f+N[b+48>>2];N[b+52>>2]=f+N[b+52>>2];N[b+56>>2]=f+N[b+56>>2];g:{if(K[e+204|0]&3|(!K[a+44|0]|J[e+252>>2]!=2)){break g}c=J[e+192>>2];ua[J[J[c>>2]+8>>2]](c,e+68|0,b+16|0,b);m=Q(N[b+16>>2]-f);N[b+16>>2]=m;n=Q(N[b+20>>2]-f);N[b+20>>2]=n;h=Q(N[b+24>>2]-f);N[b+24>>2]=h;o=Q(f+N[b>>2]);N[b>>2]=o;p=Q(f+N[b+4>>2]);N[b+4>>2]=p;f=Q(f+N[b+8>>2]);N[b+8>>2]=f;if(m>2]){N[b+64>>2]=m}if(N[b+68>>2]>n){N[b+68>>2]=n}if(N[b+72>>2]>h){N[b+72>>2]=h}h=N[b+28>>2];if(h>2]){N[b+76>>2]=h}if(N[b+48>>2]>2]=o}if(N[b+52>>2]>2]=p}if(f>N[b+56>>2]){N[b+56>>2]=f}h=N[b+12>>2];if(!(h>N[b+60>>2])){break g}N[b+60>>2]=h}c=J[a+72>>2];ua[J[J[c>>2]+60>>2]](c,b- -64|0,b+48|0,b+32|0)}g=g+1|0;if((g|0)>2]){continue}break}}sa=b+208|0}function nc(a,b,c,d,e,f){var g=0,h=Q(0),i=Q(0),j=0,k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=0,s=0,t=0,u=0,v=Q(0),w=Q(0),x=0,y=Q(0),z=0,A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=Q(0);j=J[a+88>>2];r=j;a:{if((j|0)!=J[a+92>>2]){break a}t=j?j<<1:1;if((j|0)>=(t|0)){break a}if(t){J[8456]=J[8456]+1;u=ua[J[8258]](P(t,152),16)|0;g=J[a+88>>2]}else{g=j}b:{if((g|0)<=0){break b}r=0;if((g|0)!=1){z=g&-2;while(1){s=P(r,152);Ja(s+u|0,s+J[a+96>>2]|0,152);s=P(r|1,152);Ja(s+u|0,s+J[a+96>>2]|0,152);r=r+2|0;x=x+2|0;if((x|0)!=(z|0)){continue}break}}if(!(g&1)){break b}g=P(r,152);Ja(g+u|0,g+J[a+96>>2]|0,152)}g=J[a+96>>2];if(!(g?!g|!K[a+100|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](g)}J[a+96>>2]=u;H[a+100|0]=1;J[a+92>>2]=t;r=J[a+88>>2]}J[a+88>>2]=r+1;g=J[a+96>>2]+P(j,152)|0;J[g+140>>2]=e;J[g+16>>2]=0;J[g+20>>2]=0;J[g+48>>2]=-2147483648;J[g+52>>2]=-2147483648;J[g+24>>2]=0;J[g+28>>2]=0;J[g+56>>2]=-2147483648;J[g+60>>2]=0;j=J[a+16>>2];a=J[(j+P(d,244)|0)+240>>2];e=J[(j+P(c,244)|0)+240>>2];J[g+148>>2]=d;J[g+144>>2]=c;J[g+132>>2]=0;N[g+104>>2]=f;J[g+96>>2]=0;J[g+100>>2]=0;h=N[b>>2];i=N[b+4>>2];k=N[b+8>>2];J[g+12>>2]=0;n=Q(-k);N[g+8>>2]=n;o=Q(-i);N[g+4>>2]=o;p=Q(-h);N[g>>2]=p;h=Q(0);if(e){h=Q(Q(Q(N[e+364>>2]*n)+Q(Q(N[e+356>>2]*p)+Q(N[e+360>>2]*o)))*N[e+612>>2]);l=Q(Q(Q(N[e+348>>2]*n)+Q(Q(N[e+340>>2]*p)+Q(N[e+344>>2]*o)))*N[e+608>>2]);i=Q(Q(Q(N[e+332>>2]*n)+Q(Q(N[e+324>>2]*p)+Q(N[e+328>>2]*o)))*N[e+604>>2])}else{i=Q(0)}N[g+64>>2]=i;J[g+76>>2]=0;N[g+72>>2]=h;N[g+68>>2]=l;h=N[b>>2];i=N[b+4>>2];k=N[b+8>>2];N[g+44>>2]=N[b+12>>2];N[g+40>>2]=k;N[g+36>>2]=i;N[g+32>>2]=h;if(a){m=Q(Q(Q(N[a+364>>2]*k)+Q(Q(N[a+356>>2]*h)+Q(i*N[a+360>>2])))*N[a+612>>2]);q=Q(Q(Q(N[a+348>>2]*k)+Q(Q(N[a+340>>2]*h)+Q(i*N[a+344>>2])))*N[a+608>>2]);l=Q(Q(Q(N[a+332>>2]*k)+Q(Q(N[a+324>>2]*h)+Q(i*N[a+328>>2])))*N[a+604>>2])}else{l=Q(0)}N[g+80>>2]=l;J[g+92>>2]=0;N[g+88>>2]=m;N[g+84>>2]=q;q=Q(0);m=Q(0);if(e){q=Q(Q(N[e+332>>2]*n)+Q(Q(N[e+324>>2]*p)+Q(N[e+328>>2]*o)));m=Q(Q(N[e+348>>2]*n)+Q(Q(N[e+340>>2]*p)+Q(N[e+344>>2]*o)));l=Q(Q(N[e+364>>2]*n)+Q(Q(N[e+356>>2]*p)+Q(N[e+360>>2]*o)))}else{l=Q(0)}q=Q(Q(Q(l*n)+Q(Q(q*p)+Q(m*o)))+Q(0));if(a){v=Q(Q(N[a+348>>2]*k)+Q(Q(N[a+340>>2]*h)+Q(i*N[a+344>>2])));w=Q(Q(N[a+332>>2]*k)+Q(Q(N[a+324>>2]*h)+Q(N[a+328>>2]*i)));m=Q(Q(N[a+364>>2]*k)+Q(Q(N[a+356>>2]*h)+Q(i*N[a+360>>2])))}else{m=Q(0)}y=Q(Q(1)/Q(q+Q(Q(m*k)+Q(Q(w*h)+Q(v*i)))));N[g+108>>2]=y;w=Q(0);q=Q(0);m=Q(0);v=Q(0);if(e){b=j+P(c,244)|0;w=Q(N[b+176>>2]+N[b+208>>2]);A=N[b+200>>2];v=N[b+196>>2];q=Q(Q(N[b+180>>2]+N[b+212>>2])*Q(0));B=N[b+192>>2];m=Q(N[b+184>>2]+N[b+216>>2])}l=Q(-0);if(a){a=j+P(d,244)|0;C=Q(N[a+176>>2]+N[a+208>>2]);D=Q(N[a+184>>2]+N[a+216>>2]);E=N[a+192>>2];F=N[a+200>>2];G=N[a+196>>2];l=Q(Q(N[a+180>>2]+N[a+212>>2])*Q(-0))}N[g+124>>2]=f;N[g+116>>2]=0;N[g+120>>2]=-f;N[g+112>>2]=y*Q(Q(0)-Q(Q(Q(Q(m*Q(0))+Q(Q(w*Q(0))+q))+Q(Q(n*A)+Q(Q(p*B)+Q(v*o))))+Q(Q(Q(D*Q(-0))+Q(Q(C*Q(-0))+l))+Q(Q(k*F)+Q(Q(h*E)+Q(i*G))))))}function Ga(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(!a){break a}d=a-8|0;b=J[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=J[d>>2];d=d-b|0;if(d>>>0>>0<=255){e=b>>>3|0;b=J[d+12>>2];c=J[d+8>>2];if((b|0)==(c|0)){i=35808,j=J[8952]&vs(e),J[i>>2]=j;break b}J[c+12>>2]=b;J[b+8>>2]=c;break b}g=J[d+24>>2];b=J[d+12>>2];if((d|0)!=(b|0)){c=J[d+8>>2];J[c+12>>2]=b;J[b+8>>2]=c;break c}e=d+20|0;c=J[e>>2];if(!c){c=J[d+16>>2];if(!c){break d}e=d+16|0}while(1){h=e;b=c;e=b+20|0;c=J[e>>2];if(c){continue}e=b+16|0;c=J[b+16>>2];if(c){continue}break}J[h>>2]=0;break c}b=J[f+4>>2];if((b&3)!=3){break b}J[8954]=a;J[f+4>>2]=b&-2;J[d+4>>2]=a|1;J[f>>2]=a;return}b=0}if(!g){break b}c=J[d+28>>2];e=(c<<2)+36112|0;e:{if(J[e>>2]==(d|0)){J[e>>2]=b;if(b){break e}i=35812,j=J[8953]&vs(c),J[i>>2]=j;break b}J[g+(J[g+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}J[b+24>>2]=g;c=J[d+16>>2];if(c){J[b+16>>2]=c;J[c+24>>2]=b}c=J[d+20>>2];if(!c){break b}J[b+20>>2]=c;J[c+24>>2]=b}if(d>>>0>=f>>>0){break a}b=J[f+4>>2];if(!(b&1)){break a}f:{g:{h:{i:{if(!(b&2)){if(J[8958]==(f|0)){J[8958]=d;a=J[8955]+a|0;J[8955]=a;J[d+4>>2]=a|1;if(J[8957]!=(d|0)){break a}J[8954]=0;J[8957]=0;return}if(J[8957]==(f|0)){J[8957]=d;a=J[8954]+a|0;J[8954]=a;J[d+4>>2]=a|1;J[a+d>>2]=a;return}a=(b&-8)+a|0;if(b>>>0<=255){e=b>>>3|0;b=J[f+12>>2];c=J[f+8>>2];if((b|0)==(c|0)){i=35808,j=J[8952]&vs(e),J[i>>2]=j;break g}J[c+12>>2]=b;J[b+8>>2]=c;break g}g=J[f+24>>2];b=J[f+12>>2];if((f|0)!=(b|0)){c=J[f+8>>2];J[c+12>>2]=b;J[b+8>>2]=c;break h}e=f+20|0;c=J[e>>2];if(!c){c=J[f+16>>2];if(!c){break i}e=f+16|0}while(1){h=e;b=c;e=b+20|0;c=J[e>>2];if(c){continue}e=b+16|0;c=J[b+16>>2];if(c){continue}break}J[h>>2]=0;break h}J[f+4>>2]=b&-2;J[d+4>>2]=a|1;J[a+d>>2]=a;break f}b=0}if(!g){break g}c=J[f+28>>2];e=(c<<2)+36112|0;j:{if(J[e>>2]==(f|0)){J[e>>2]=b;if(b){break j}i=35812,j=J[8953]&vs(c),J[i>>2]=j;break g}J[g+(J[g+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}J[b+24>>2]=g;c=J[f+16>>2];if(c){J[b+16>>2]=c;J[c+24>>2]=b}c=J[f+20>>2];if(!c){break g}J[b+20>>2]=c;J[c+24>>2]=b}J[d+4>>2]=a|1;J[a+d>>2]=a;if(J[8957]!=(d|0)){break f}J[8954]=a;return}if(a>>>0<=255){b=(a&-8)+35848|0;c=J[8952];a=1<<(a>>>3);k:{if(!(c&a)){J[8952]=a|c;a=b;break k}a=J[b+8>>2]}J[b+8>>2]=d;J[a+12>>2]=d;J[d+12>>2]=b;J[d+8>>2]=a;return}c=31;if(a>>>0<=16777215){b=S(a>>>8|0);c=((a>>>38-b&1)-(b<<1)|0)+62|0}J[d+28>>2]=c;J[d+16>>2]=0;J[d+20>>2]=0;b=(c<<2)+36112|0;l:{m:{e=J[8953];h=1<>2]=d;J[d+24>>2]=b;break n}c=a<<((c|0)!=31?25-(c>>>1|0)|0:0);b=J[b>>2];while(1){e=b;if((J[b+4>>2]&-8)==(a|0)){break m}b=c>>>29|0;c=c<<1;h=e+(b&4)|0;b=J[h+16>>2];if(b){continue}break}J[h+16>>2]=d;J[d+24>>2]=e}J[d+12>>2]=d;J[d+8>>2]=d;break l}a=J[e+8>>2];J[a+12>>2]=d;J[e+8>>2]=d;J[d+24>>2]=0;J[d+12>>2]=e;J[d+8>>2]=a}a=J[8960]-1|0;J[8960]=a?a:-1}}function Hh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=J[b+8>>2];a:{if((c|0)<=0){break a}d=J[b+16>>2];if((c|0)!=1){g=c&-2;while(1){i=e<<2;h=J[i+d>>2];if(!(K[h+204|0]&3)){J[h+208>>2]=f;f=f+1|0}J[h+268>>2]=1065353216;J[h+212>>2]=-1;h=J[d+(i|4)>>2];if(!(K[h+204|0]&3)){J[h+208>>2]=f;f=f+1|0}J[h+268>>2]=1065353216;J[h+212>>2]=-1;e=e+2|0;k=k+2|0;if((g|0)!=(k|0)){continue}break}}if(!(c&1)){break a}c=J[d+(e<<2)>>2];if(!(K[c+204|0]&3)){J[c+208>>2]=f;f=f+1|0}J[c+268>>2]=1065353216;J[c+212>>2]=-1}d=0;h=0;i=0;k=0;c=J[a+8>>2];b:{if((f|0)<=(c|0)){break b}if(J[a+12>>2]<(f|0)){if(f){J[8456]=J[8456]+1;h=ua[J[8258]](f<<3,16)|0;e=J[a+8>>2]}else{e=c}c:{if((e|0)<=0){break c}if(e>>>0>=4){n=e&-4;while(1){g=d<<3;j=g+h|0;l=g+J[a+16>>2]|0;m=J[l+4>>2];J[j>>2]=J[l>>2];J[j+4>>2]=m;j=g|8;l=j+h|0;j=j+J[a+16>>2]|0;m=J[j+4>>2];J[l>>2]=J[j>>2];J[l+4>>2]=m;j=g|16;l=j+h|0;j=j+J[a+16>>2]|0;m=J[j+4>>2];J[l>>2]=J[j>>2];J[l+4>>2]=m;g=g|24;j=g+h|0;g=g+J[a+16>>2]|0;l=J[g+4>>2];J[j>>2]=J[g>>2];J[j+4>>2]=l;d=d+4|0;i=i+4|0;if((n|0)!=(i|0)){continue}break}}e=e&3;if(!e){break c}while(1){g=d<<3;i=g+h|0;g=g+J[a+16>>2]|0;n=J[g+4>>2];J[i>>2]=J[g>>2];J[i+4>>2]=n;d=d+1|0;k=k+1|0;if((e|0)!=(k|0)){continue}break}}e=J[a+16>>2];if(!(e?!e|!K[a+20|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](e)}J[a+16>>2]=h;H[a+20|0]=1;J[a+12>>2]=f}e=(c^-1)+f|0;h=f-c&3;if(h){d=0;while(1){k=J[a+16>>2]+(c<<3)|0;J[k>>2]=0;J[k+4>>2]=0;c=c+1|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}}if(e>>>0<3){break b}while(1){e=c<<3;d=e+J[a+16>>2]|0;J[d>>2]=0;J[d+4>>2]=0;d=e+J[a+16>>2]|0;J[d+8>>2]=0;J[d+12>>2]=0;d=e+J[a+16>>2]|0;J[d+16>>2]=0;J[d+20>>2]=0;e=e+J[a+16>>2]|0;J[e+24>>2]=0;J[e+28>>2]=0;c=c+4|0;if((f|0)!=(c|0)){continue}break}}J[a+8>>2]=f;d:{if((f|0)<=0){break d}e=J[a+16>>2];d=0;c=0;if(f>>>0>=4){k=f&-4;h=0;while(1){g=e+(c<<3)|0;J[g+4>>2]=1;J[g>>2]=c;g=c|1;i=e+(g<<3)|0;J[i+4>>2]=1;J[i>>2]=g;g=c|2;i=e+(g<<3)|0;J[i+4>>2]=1;J[i>>2]=g;g=c|3;i=e+(g<<3)|0;J[i+4>>2]=1;J[i>>2]=g;c=c+4|0;h=h+4|0;if((k|0)!=(h|0)){continue}break}}f=f&3;if(!f){break d}while(1){h=e+(c<<3)|0;J[h+4>>2]=1;J[h>>2]=c;c=c+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}e=0;b=J[b+68>>2];b=ua[J[J[b>>2]+36>>2]](b)|0;h=ua[J[J[b>>2]+36>>2]](b)|0;e:{if(!h){break e}k=ua[J[J[b>>2]+20>>2]](b)|0;if((h|0)<=0){break e}a=J[a+16>>2];while(1){b=k+(e<<4)|0;c=J[J[b>>2]>>2];f:{if(!c|K[c+204|0]&7){break f}b=J[J[b+4>>2]>>2];if(!b|K[b+204|0]&7){break f}b=J[b+208>>2];c=J[c+208>>2];f=a+(c<<3)|0;d=J[f>>2];if((c|0)!=(d|0)){while(1){c=a+(d<<3)|0;J[f>>2]=J[c>>2];c=J[c>>2];f=a+(c<<3)|0;d=J[f>>2];if((c|0)!=(d|0)){continue}break}}f=a+(b<<3)|0;d=J[f>>2];if((d|0)!=(b|0)){while(1){b=a+(d<<3)|0;J[f>>2]=J[b>>2];b=J[b>>2];f=a+(b<<3)|0;d=J[f>>2];if((b|0)!=(d|0)){continue}break}}if((b|0)==(c|0)){break f}c=a+(c<<3)|0;J[c>>2]=b;b=a+(b<<3)|0;J[b+4>>2]=J[b+4>>2]+J[c+4>>2]}e=e+1|0;if((h|0)!=(e|0)){continue}break}}}function vf(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=Q(0),r=0,s=Q(0),t=Q(0),u=Q(0),v=0,w=Q(0),x=0,y=0,z=Q(0),A=0,B=0;o=sa-32|0;sa=o;if(a){p=J[h+4>>2];a:{if((p|0)>127){break a}if(J[h+8>>2]<=127){J[8456]=J[8456]+1;m=ua[J[8258]](512,16)|0;n=J[h+4>>2];b:{if((n|0)<=0){break b}if(n>>>0>=4){x=n&-4;while(1){k=j<<2;J[k+m>>2]=J[k+J[h+12>>2]>>2];v=k|4;J[v+m>>2]=J[v+J[h+12>>2]>>2];v=k|8;J[v+m>>2]=J[v+J[h+12>>2]>>2];k=k|12;J[k+m>>2]=J[k+J[h+12>>2]>>2];j=j+4|0;y=y+4|0;if((x|0)!=(y|0)){continue}break}}k=n&3;if(!k){break b}while(1){n=j<<2;J[n+m>>2]=J[n+J[h+12>>2]>>2];j=j+1|0;l=l+1|0;if((k|0)!=(l|0)){continue}break}}j=J[h+12>>2];if(!(j?!j|!K[h+16|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](j)}J[h+12>>2]=m;H[h+16|0]=1;J[h+8>>2]=128}j=p;l=0-j&3;if(l){while(1){J[J[h+12>>2]+(j<<2)>>2]=0;j=j+1|0;r=r+1|0;if((l|0)!=(r|0)){continue}break}}if(p-125>>>0<3){break a}while(1){r=j<<2;J[r+J[h+12>>2]>>2]=0;J[(r+J[h+12>>2]|0)+4>>2]=0;J[(r+J[h+12>>2]|0)+8>>2]=0;J[(r+J[h+12>>2]|0)+12>>2]=0;j=j+4|0;if((j|0)!=128){continue}break}}J[h+4>>2]=128;J[J[h+12>>2]>>2]=a;l=126;r=1;while(1){a=J[h+12>>2];j=r-1|0;y=j<<2;p=J[a+y>>2];s=N[p>>2];t=N[p+4>>2];q=N[g>>2];u=N[g+4>>2];N[o+8>>2]=N[p+8>>2]-N[g+8>>2];N[o+4>>2]=t-u;N[o>>2]=s-q;s=N[p+16>>2];t=N[p+20>>2];q=N[f>>2];u=N[f+4>>2];N[o+24>>2]=N[p+24>>2]-N[f+8>>2];N[o+20>>2]=t-u;N[o+16>>2]=s-q;m=J[d>>2];u=N[b>>2];w=N[c>>2];s=Q(Q(N[(m<<4)+o>>2]-u)*w);q=N[c+4>>2];k=J[d+4>>2];z=N[b+4>>2];t=Q(q*Q(N[((1-k<<4)+o|0)+4>>2]-z));c:{d:{if(s>t){break d}q=Q(Q(N[((k<<4)+o|0)+4>>2]-z)*q);u=Q(w*Q(N[(1-m<<4)+o>>2]-u));if(q>u){break d}s=q>s?q:s;w=N[c+8>>2];m=J[d+8>>2];z=N[b+8>>2];q=Q(w*Q(N[((1-m<<4)+o|0)+8>>2]-z));if(s>q){break d}w=Q(Q(N[((m<<4)+o|0)+8>>2]-z)*w);t=tt|!((sQ(0))){break d}if(J[p+40>>2]){if((j|0)>(l|0)){j=J[h+4>>2];m=j<<1;if((j|0)<(m|0)){if((m|0)>J[h+8>>2]){e:{if(!j){a=0;break e}J[8456]=J[8456]+1;a=ua[J[8258]](j<<3,16)|0;n=J[h+4>>2];if((n|0)<=0){break e}x=0;l=0;if(n>>>0>=4){B=n&-4;v=0;while(1){k=l<<2;J[k+a>>2]=J[k+J[h+12>>2]>>2];A=k|4;J[A+a>>2]=J[A+J[h+12>>2]>>2];A=k|8;J[A+a>>2]=J[A+J[h+12>>2]>>2];k=k|12;J[k+a>>2]=J[k+J[h+12>>2]>>2];l=l+4|0;v=v+4|0;if((B|0)!=(v|0)){continue}break}}k=n&3;if(!k){break e}while(1){n=l<<2;J[n+a>>2]=J[n+J[h+12>>2]>>2];l=l+1|0;x=x+1|0;if((k|0)!=(x|0)){continue}break}}l=J[h+12>>2];if(!(l?!l|!K[h+16|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](l)}J[h+12>>2]=a;H[h+16|0]=1;J[h+8>>2]=m}a=j-1|0;l=0;k=j&3;if(k){while(1){J[J[h+12>>2]+(j<<2)>>2]=0;j=j+1|0;l=l+1|0;if((k|0)!=(l|0)){continue}break}}if(a>>>0>=3){while(1){a=j<<2;J[a+J[h+12>>2]>>2]=0;J[(a+J[h+12>>2]|0)+4>>2]=0;J[(a+J[h+12>>2]|0)+8>>2]=0;J[(a+J[h+12>>2]|0)+12>>2]=0;j=j+4|0;if((m|0)!=(j|0)){continue}break}}a=J[h+12>>2]}J[h+4>>2]=m;l=m-2|0}J[a+y>>2]=J[p+36>>2];J[J[h+12>>2]+(r<<2)>>2]=J[p+40>>2];j=r+1|0;break c}ua[J[J[i>>2]+12>>2]](i,p)}}r=j;if(r){continue}break}}sa=o+32|0}function Mb(){if(!K[35008]){J[8670]=1062847606;J[8671]=0;J[8668]=1042701022;J[8669]=1056964440;J[8666]=1062847606;J[8667]=0;J[8664]=-1093024784;J[8665]=1050556081;J[8662]=1062847606;J[8663]=0;J[8660]=-1093024784;J[8661]=-1096927567;J[8658]=1062847606;J[8659]=0;J[8656]=1042701022;J[8657]=-1090519208;J[8654]=1062847572;J[8655]=0;J[8652]=1057396286;J[8653]=0;J[8650]=1057396386;J[8651]=0;J[8648]=1060121912;J[8649]=1056964507;J[8646]=1057396420;J[8647]=0;J[8644]=-1098475836;J[8645]=1062148969;J[8642]=1057396386;J[8643]=0;J[8640]=-1084636143;J[8641]=0;J[8638]=1057396420;J[8639]=0;J[8636]=-1098475836;J[8637]=-1085334679;J[8634]=1057396386;J[8635]=0;J[8632]=1060121912;J[8633]=-1090519141;J[8630]=-2147483648;J[8631]=0;J[8628]=1058437413;J[8629]=1062149053;J[8626]=-2147483648;J[8627]=0;J[8624]=-2147483648;J[8625]=1065353216;J[8622]=-2147483648;J[8623]=0;J[8620]=-1089046235;J[8621]=1062149053;J[8618]=-2147483648;J[8619]=0;J[8616]=-1082951543;J[8617]=1050556148;J[8614]=-2147483648;J[8615]=0;J[8612]=-1082951543;J[8613]=-1096927500;J[8610]=0;J[8611]=0;J[8608]=-1089046235;J[8609]=-1085334595;J[8606]=0;J[8607]=0;J[8604]=0;J[8605]=-1082130432;J[8602]=0;J[8603]=0;J[8600]=1058437413;J[8601]=-1085334595;J[8598]=0;J[8599]=0;J[8596]=1064532105;J[8597]=-1096927500;J[8594]=0;J[8595]=0;J[8592]=1064532105;J[8593]=1050556148;J[8590]=-1090087228;J[8591]=0;J[8588]=1049007812;J[8589]=1062148969;J[8586]=-1090087262;J[8587]=0;J[8584]=-1087361736;J[8585]=1056964507;J[8582]=-1084636042;J[8583]=0;J[8580]=-1104782626;J[8581]=1056964440;J[8578]=-1090087262;J[8579]=0;J[8576]=-1087361736;J[8577]=-1090519141;J[8574]=-1084636076;J[8575]=0;J[8572]=-1090087362;J[8573]=-2147483648;J[8570]=-1090087262;J[8571]=0;J[8568]=1062847505;J[8569]=-2147483648;J[8566]=-1084636042;J[8567]=0;J[8564]=1054458864;J[8565]=1050556081;J[8562]=-1090087228;J[8563]=0;J[8560]=1049007812;J[8561]=-1085334679;J[8558]=-1084636042;J[8559]=0;J[8556]=-1104782626;J[8557]=-1090519208;J[8554]=-1084636042;J[8555]=0;J[8552]=1054458864;J[8553]=-1096927567;J[8550]=1065353216;J[8551]=0;J[8548]=-2147483648;J[8549]=0;J[8546]=1055193471;J[8547]=0;J[8544]=1063581978;J[8545]=0;J[8542]=1055193572;J[8543]=0;J[8540]=1049461434;J[8541]=1062847522;J[8538]=1055193572;J[8539]=0;J[8536]=-1086767520;J[8537]=1057396202;J[8534]=1055193572;J[8535]=0;J[8532]=-1086767520;J[8533]=-1090087446;J[8530]=1055193605;J[8531]=0;J[8528]=1049461434;J[8529]=-1084636126;J[8526]=-1092290076;J[8527]=0;J[8524]=1060716128;J[8525]=1057396202;J[8522]=-1092290043;J[8523]=0;J[8520]=-1098022214;J[8521]=1062847522;J[8518]=-1092290177;J[8519]=0;J[8516]=-1083901670;J[8517]=-2147483648;J[8514]=-1092290076;J[8515]=0;J[8512]=-1098022214;J[8513]=-1084636126;J[8510]=-1092290076;J[8511]=0;J[8508]=1060716128;J[8509]=-1090087446;J[8506]=-1082130432;J[8507]=0;J[8504]=0;J[8505]=-2147483648;H[35008]=1}}function Nb(a,b,c,d,e){var f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=0,t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=0,E=Q(0);f=Q(-1);l=N[a>>2];i=N[b>>2];g=Q(l-i);k=N[b+4>>2];u=N[c+4>>2];z=Q(k-u);v=N[c>>2];A=Q(i-v);q=N[a+4>>2];j=Q(q-k);m=Q(Q(g*z)-Q(A*j));h=N[b+8>>2];w=N[c+8>>2];B=Q(h-w);r=N[a+8>>2];o=Q(r-h);x=Q(Q(j*B)-Q(z*o));y=Q(Q(o*A)-Q(B*g));E=Q(Q(m*m)+Q(Q(x*x)+Q(y*y)));a:{if(!(E>Q(0))){break a}b:{if(!(Q(Q(r*Q(Q(g*y)+Q(x*Q(-j))))+Q(Q(l*Q(Q(j*m)+Q(y*Q(-o))))+Q(q*Q(Q(o*x)+Q(m*Q(-g))))))>Q(0))){j=Q(-1);g=Q(0);break b}j=Q(-1);o=Q(h-r);n=Q(i-l);p=Q(k-q);f=Q(Q(o*o)+Q(Q(n*n)+Q(p*p)));c:{if(!(f>Q(0))){g=Q(0);s=0;break c}g=Q(1);f=Q(Q(-Q(Q(r*o)+Q(Q(l*n)+Q(q*p))))/f);if(f>=Q(1)){j=Q(Q(h*h)+Q(Q(i*i)+Q(k*k)));D=2;s=2;break c}g=Q(0);if(f<=Q(0)){j=Q(Q(r*r)+Q(Q(l*l)+Q(q*q)));t=Q(1);s=1;break c}g=Q(r+Q(o*f));j=Q(g*g);g=Q(l+Q(n*f));i=Q(g*g);g=Q(q+Q(p*f));j=Q(j+Q(i+Q(g*g)));t=Q(Q(1)-f);D=2;g=f;s=3}J[e>>2]=s&1|D;J[d+8>>2]=0;N[d+4>>2]=g;N[d>>2]=t;h=N[b+8>>2];k=N[b+4>>2];i=N[b>>2]}r=Q(w-r);q=Q(u-q);o=Q(v-l);d:{if(!(Q(Q(h*Q(Q(A*y)-Q(x*z)))+Q(Q(i*Q(Q(z*m)-Q(y*B)))+Q(k*Q(Q(B*x)-Q(m*A)))))>Q(0))){f=j;break d}D=j>2];l=Q(u-h);v=N[c>>2];n=Q(v-i);w=N[c+4>>2];p=Q(w-k);C=Q(Q(l*l)+Q(Q(n*n)+Q(p*p)));f=Q(-1);e:{if(!(C>Q(0))){break e}g=Q(1);f=Q(Q(-Q(Q(h*l)+Q(Q(i*n)+Q(k*p))))/C);if(f>=Q(1)){t=Q(0);s=2;f=Q(Q(u*u)+Q(Q(v*v)+Q(w*w)));break e}g=Q(0);if(f<=Q(0)){t=Q(1);s=1;f=Q(Q(h*h)+Q(Q(i*i)+Q(k*k)));break e}t=Q(Q(1)-f);s=3;g=f;h=Q(h+Q(l*f));i=Q(i+Q(n*f));f=Q(k+Q(p*f));f=Q(Q(h*h)+Q(Q(i*i)+Q(f*f)))}if(!(D|j>f)){f=j;break d}J[e>>2]=s<<1;N[d+8>>2]=g;N[d+4>>2]=t;J[d>>2]=0}k=N[c+8>>2];h=N[c>>2];l=N[c+4>>2];f:{if(!(Q(Q(k*Q(Q(o*y)-Q(x*q)))+Q(Q(h*Q(Q(q*m)-Q(y*r)))+Q(l*Q(Q(r*x)-Q(m*o)))))>Q(0))){break f}i=Q(-1);v=N[a+8>>2];n=Q(v-k);w=N[a>>2];p=Q(w-h);C=N[a+4>>2];u=Q(C-l);j=Q(Q(n*n)+Q(Q(p*p)+Q(u*u)));g:{if(!(j>Q(0))){break g}g=Q(1);j=Q(Q(-Q(Q(k*n)+Q(Q(h*p)+Q(l*u))))/j);if(j>=Q(1)){i=Q(Q(v*v)+Q(Q(w*w)+Q(C*C)));t=Q(0);s=2;break g}g=Q(0);if(j<=Q(0)){i=Q(Q(k*k)+Q(Q(h*h)+Q(l*l)));t=Q(1);s=1;break g}g=Q(k+Q(n*j));i=Q(g*g);g=Q(h+Q(p*j));h=Q(g*g);g=Q(l+Q(u*j));i=Q(i+Q(h+Q(g*g)));t=Q(Q(1)-j);s=3;g=j}if(!(fi)){break f}J[e>>2]=s<<2&4|s>>>1;J[d+4>>2]=0;N[d>>2]=g;N[d+8>>2]=t;f=i}if(!(f>2];g=N[a>>2];j=N[a+4>>2];J[e>>2]=7;j=Q(Q(Q(f*m)+Q(Q(g*x)+Q(y*j)))/E);f=Q(y*j);i=Q(N[b+4>>2]-f);g=Q(x*j);k=Q(N[b>>2]-g);h=Q(Q(A*i)+Q(k*Q(-z)));l=Q(h*h);j=Q(m*j);h=Q(N[b+8>>2]-j);i=Q(Q(z*h)+Q(i*Q(-B)));m=Q(i*i);i=Q(Q(B*k)+Q(h*Q(-A)));h=Q(Y(Q(l+Q(m+Q(i*i)))));i=Q(Y(E));k=Q(h/i);N[d>>2]=k;h=Q(N[c+4>>2]-f);t=Q(N[c>>2]-g);m=Q(Q(o*h)+Q(t*Q(-q)));l=Q(m*m);m=Q(N[c+8>>2]-j);h=Q(Q(q*m)+Q(h*Q(-r)));n=Q(h*h);h=Q(Q(r*t)+Q(m*Q(-o)));i=Q(Q(Y(Q(l+Q(n+Q(h*h)))))/i);N[d+4>>2]=i;N[d+8>>2]=Q(1)-Q(k+i);f=Q(Q(j*j)+Q(Q(g*g)+Q(f*f)))}return f}function xm(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=Q(0),H=Q(0),I=Q(0),L=Q(0),M=Q(0),O=Q(0),P=Q(0),R=Q(0),S=Q(0),T=Q(0),U=Q(0),V=Q(0),W=Q(0),X=Q(0),Y=Q(0),Z=Q(0),_=Q(0),$=Q(0),aa=Q(0),ba=Q(0),ca=Q(0),da=Q(0),ea=Q(0),fa=Q(0),ga=Q(0),ha=Q(0),ia=Q(0),ja=Q(0);d=sa-240|0;sa=d;U=Q(1);e=K[a+76|0];a=e?c:b;k=N[a+60>>2];g=Q(N[a+124>>2]-k);f=Q(g*g);i=N[a+116>>2];u=N[a+52>>2];g=Q(i-u);j=Q(g*g);w=N[a+56>>2];g=Q(N[a+120>>2]-w);f=Q(f+Q(j+Q(g*g)));g=N[a+276>>2];a:{if(f>2];if(J[c+4>>2]-21>>>0>8){break a}h=N[b+12>>2];v=Q(-N[b+52>>2]);f=N[b+28>>2];j=N[b+56>>2];l=N[b+44>>2];m=N[b+60>>2];V=Q(Q(Q(h*v)-Q(f*j))-Q(l*m));n=N[a+124>>2];x=N[a+120>>2];X=Q(Q(n*l)+Q(Q(i*h)+Q(f*x)));o=N[b+8>>2];p=N[b+24>>2];q=N[b+40>>2];W=Q(Q(Q(o*v)-Q(p*j))-Q(q*m));g=Q(W+Q(Q(n*q)+Q(Q(i*o)+Q(p*x))));r=N[b+36>>2];y=N[a+92>>2];Y=Q(f*y);z=N[a+76>>2];Z=Q(z*h);A=N[a+108>>2];B=N[a+88>>2];_=Q(f*B);C=N[a+72>>2];$=Q(C*h);D=N[a+104>>2];E=N[a+84>>2];aa=Q(f*E);F=N[a+68>>2];ba=Q(F*h);G=N[a+100>>2];s=N[b+4>>2];ca=Q(z*s);t=N[b+20>>2];da=Q(t*y);H=N[a+28>>2];ea=Q(f*H);I=N[a+12>>2];fa=Q(I*h);L=N[a+44>>2];M=N[a+24>>2];ga=Q(f*M);O=N[a+8>>2];ha=Q(O*h);P=N[a+40>>2];R=N[a+20>>2];ia=Q(f*R);S=N[a+4>>2];ja=Q(S*h);T=N[a+36>>2];J[d+236>>2]=0;j=Q(Q(Q(s*v)-Q(t*j))-Q(r*m));m=Q(j+Q(Q(k*r)+Q(Q(u*s)+Q(t*w))));v=m;i=Q(j+Q(Q(n*r)+Q(Q(i*s)+Q(t*x))));if(i>2]=i;v=i}n=Q(W+Q(Q(k*q)+Q(Q(u*o)+Q(p*w))));j=n;if(g>2]=g;j=g}k=Q(V+Q(Q(k*l)+Q(Q(u*h)+Q(f*w))));f=k;h=Q(V+X);if(f>h){N[d+232>>2]=h;f=h}J[d+220>>2]=0;u=f;f=N[a+272>>2];N[d+232>>2]=u-f;N[d+228>>2]=j-f;N[d+224>>2]=v-f;N[d+216>>2]=f+(h>k?h:k);N[d+212>>2]=f+(g>n?g:n);N[d+208>>2]=f+(i>m?i:m);J[d+132>>2]=0;N[d+128>>2]=h;N[d+124>>2]=g;N[d+120>>2]=i;J[d+116>>2]=0;N[d+112>>2]=Q(A*l)+Q(Z+Y);N[d+108>>2]=Q(D*l)+Q($+_);N[d+104>>2]=Q(G*l)+Q(ba+aa);J[d+100>>2]=0;N[d+96>>2]=Q(A*q)+Q(Q(z*o)+Q(p*y));N[d+92>>2]=Q(D*q)+Q(Q(C*o)+Q(p*B));N[d+88>>2]=Q(G*q)+Q(Q(F*o)+Q(p*E));J[d+84>>2]=0;N[d+80>>2]=Q(A*r)+Q(ca+da);N[d+76>>2]=Q(D*r)+Q(Q(C*s)+Q(t*B));J[d+68>>2]=0;N[d- -64>>2]=k;N[d+60>>2]=n;N[d+56>>2]=m;J[d+52>>2]=0;N[d+48>>2]=Q(L*l)+Q(fa+ea);N[d+44>>2]=Q(P*l)+Q(ha+ga);N[d+40>>2]=Q(T*l)+Q(ja+ia);J[d+36>>2]=0;N[d+32>>2]=Q(L*q)+Q(Q(I*o)+Q(p*H));N[d+28>>2]=Q(P*q)+Q(Q(O*o)+Q(p*M));N[d+24>>2]=Q(T*q)+Q(Q(S*o)+Q(p*R));J[d+20>>2]=0;N[d+16>>2]=Q(L*r)+Q(Q(I*s)+Q(t*H));N[d+12>>2]=Q(P*r)+Q(Q(O*s)+Q(t*M));N[d+200>>2]=f;N[d+72>>2]=Q(G*r)+Q(Q(F*s)+Q(t*E));N[d+8>>2]=Q(T*r)+Q(Q(S*s)+Q(t*R));J[d+4>>2]=16e3;N[d+204>>2]=N[a+268>>2];ua[J[J[c>>2]+64>>2]](c,d+4|0,d+224|0,d+208|0);g=N[d+204>>2];if(!(g>2])){break a}N[a+268>>2]=g;U=g}sa=d+240|0;return Q(U)}function Zb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if(!(!b|!c)){if(!(J[a+24>>2]>127|J[a+28>>2]>127)){J[8456]=J[8456]+1;l=ua[J[8258]](1024,16)|0;g=J[a+24>>2];a:{if((g|0)<=0){break a}if(g>>>0>=4){p=g&-4;while(1){f=n<<3;i=f+l|0;h=f+J[a+32>>2]|0;m=J[h+4>>2];J[i>>2]=J[h>>2];J[i+4>>2]=m;i=f|8;h=i+l|0;i=i+J[a+32>>2]|0;m=J[i+4>>2];J[h>>2]=J[i>>2];J[h+4>>2]=m;i=f|16;h=i+l|0;i=i+J[a+32>>2]|0;m=J[i+4>>2];J[h>>2]=J[i>>2];J[h+4>>2]=m;f=f|24;i=f+l|0;f=f+J[a+32>>2]|0;h=J[f+4>>2];J[i>>2]=J[f>>2];J[i+4>>2]=h;n=n+4|0;e=e+4|0;if((p|0)!=(e|0)){continue}break}}e=g&3;if(!e){break a}while(1){f=n<<3;g=f+l|0;f=f+J[a+32>>2]|0;p=J[f+4>>2];J[g>>2]=J[f>>2];J[g+4>>2]=p;n=n+1|0;j=j+1|0;if((e|0)!=(j|0)){continue}break}}e=J[a+32>>2];if(!(e?!e|!K[a+36|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](e)}J[a+32>>2]=l;H[a+36|0]=1;J[a+28>>2]=128}J[a+24>>2]=128;e=J[a+32>>2];J[e+4>>2]=c;J[e>>2]=b;b=124;e=1;while(1){j=J[a+32>>2];l=e;e=e-1|0;i=e<<3;c=j+i|0;g=J[c+4>>2];f=J[c>>2];if((b|0)<(e|0)){b=J[a+24>>2];p=b<<1;if(!((p|0)<=J[a+28>>2]|(b|0)>=(p|0))){b:{if(!b){j=0;break b}J[8456]=J[8456]+1;j=ua[J[8258]](b<<4,16)|0;m=J[a+24>>2];if((m|0)<=0){break b}b=0;n=0;if(m>>>0>=4){r=m&-4;c=0;while(1){h=n<<3;k=h+j|0;o=h+J[a+32>>2]|0;q=J[o+4>>2];J[k>>2]=J[o>>2];J[k+4>>2]=q;k=h|8;o=k+j|0;k=k+J[a+32>>2]|0;q=J[k+4>>2];J[o>>2]=J[k>>2];J[o+4>>2]=q;k=h|16;o=k+j|0;k=k+J[a+32>>2]|0;q=J[k+4>>2];J[o>>2]=J[k>>2];J[o+4>>2]=q;h=h|24;k=h+j|0;h=h+J[a+32>>2]|0;o=J[h+4>>2];J[k>>2]=J[h>>2];J[k+4>>2]=o;n=n+4|0;c=c+4|0;if((r|0)!=(c|0)){continue}break}}c=m&3;if(!c){break b}while(1){h=n<<3;m=h+j|0;h=h+J[a+32>>2]|0;r=J[h+4>>2];J[m>>2]=J[h>>2];J[m+4>>2]=r;n=n+1|0;b=b+1|0;if((c|0)!=(b|0)){continue}break}}b=J[a+32>>2];if(!(b?!b|!K[a+36|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+32>>2]=j;H[a+36|0]=1;J[a+28>>2]=p}J[a+24>>2]=p;b=p-4|0}c:{if((f|0)==(g|0)){if(!J[f+40>>2]){break c}c=j+i|0;e=J[f+36>>2];J[c+4>>2]=e;J[c>>2]=e;c=l<<3;e=c+J[a+32>>2]|0;g=J[f+40>>2];J[e+4>>2]=g;J[e>>2]=g;e=J[f+40>>2];c=c+J[a+32>>2]|0;J[c+8>>2]=J[f+36>>2];J[c+12>>2]=e;e=l+2|0;break c}if(!(N[f>>2]<=N[g+16>>2])|!(N[f+16>>2]>=N[g>>2])|(!(N[f+4>>2]<=N[g+20>>2])|!(N[f+20>>2]>=N[g+4>>2]))){break c}if(!(N[f+8>>2]<=N[g+24>>2])|!(N[f+24>>2]>=N[g+8>>2])){break c}c=J[g+40>>2];if(J[f+40>>2]){e=J[f+36>>2];if(c){c=j+i|0;J[c+4>>2]=J[g+36>>2];J[c>>2]=e;e=J[f+40>>2];c=l<<3;j=c+J[a+32>>2]|0;J[j+4>>2]=J[g+36>>2];J[j>>2]=e;e=J[f+36>>2];j=c+J[a+32>>2]|0;J[j+12>>2]=J[g+40>>2];J[j+8>>2]=e;e=J[f+40>>2];c=c+J[a+32>>2]|0;J[c+20>>2]=J[g+40>>2];J[c+16>>2]=e;e=l+3|0;break c}c=j+i|0;J[c+4>>2]=g;J[c>>2]=e;c=J[f+40>>2];e=J[a+32>>2]+(l<<3)|0;J[e+4>>2]=g;J[e>>2]=c;e=l+1|0;break c}if(c){c=j+i|0;J[c+4>>2]=J[g+36>>2];J[c>>2]=f;c=J[a+32>>2]+(l<<3)|0;J[c+4>>2]=J[g+40>>2];J[c>>2]=f;e=l+1|0;break c}ua[J[J[d>>2]+8>>2]](d,f,g)}if(e){continue}break}}}function yo(a,b,c,d,e,f){a=a|0;b=Q(b);c=Q(c);d=d|0;e=e|0;f=f|0;var g=0,h=0,i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=0,A=0,B=Q(0),C=Q(0),D=Q(0),E=0,F=0,G=0,H=0;g=sa-128|0;sa=g;B=N[e+56>>2];C=N[e+52>>2];D=N[e+48>>2];J[g+120>>2]=0;J[g+124>>2]=0;J[g+112>>2]=0;J[g+116>>2]=0;h=d<<2;N[h+(g+112|0)>>2]=c;J[g+104>>2]=0;J[g+108>>2]=0;J[g+96>>2]=0;J[g+100>>2]=0;z=g+96|0;N[h+z>>2]=-c;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;A=h;h=g+80|0;N[A+h>>2]=c;E=(d+2|0)%3<<2;F=E+h|0;E=z+E|0;A=h;z=(d+1|0)%3|0;h=z<<2;G=A+h|0;H=h+(g+96|0)|0;h=0;while(1){c=Q(Q(h|0)*Q(.01745329238474369));l=Q(Na(c)*b);N[H>>2]=l;N[G>>2]=l;c=Q(Ma(c)*b);N[E>>2]=c;N[F>>2]=c;c=N[e+8>>2];l=N[e>>2];p=N[e+4>>2];q=N[e+24>>2];r=N[e+16>>2];s=N[e+20>>2];i=N[e+40>>2];j=N[e+32>>2];k=N[e+36>>2];J[g+76>>2]=0;m=N[g+104>>2];n=N[g+96>>2];o=N[g+100>>2];N[g+72>>2]=B+Q(Q(i*m)+Q(Q(j*n)+Q(k*o)));N[g+68>>2]=C+Q(Q(q*m)+Q(Q(r*n)+Q(o*s)));N[g+64>>2]=D+Q(Q(c*m)+Q(Q(l*n)+Q(p*o)));J[g+60>>2]=0;t=i;i=N[g+88>>2];u=j;j=N[g+80>>2];v=k;k=N[g+84>>2];N[g+56>>2]=B+Q(Q(t*i)+Q(Q(u*j)+Q(v*k)));N[g+52>>2]=C+Q(Q(q*i)+Q(Q(r*j)+Q(s*k)));N[g+48>>2]=D+Q(Q(c*i)+Q(Q(l*j)+Q(p*k)));ua[J[J[a>>2]+16>>2]](a,g- -64|0,g+48|0,f);A=h>>>0<330;h=h+30|0;if(A){continue}break}J[g+72>>2]=0;J[g+76>>2]=0;J[g+64>>2]=0;J[g+68>>2]=0;J[(g- -64|0)+(d<<2)>>2]=1065353216;J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;J[(g+48|0)+(z<<2)>>2]=1065353216;m=N[e+8>>2];n=N[e>>2];o=N[e+4>>2];w=N[e+24>>2];x=N[e+16>>2];y=N[e+20>>2];i=N[e+40>>2];j=N[e+32>>2];k=N[e+36>>2];J[g+44>>2]=0;c=N[g+120>>2];l=N[g+112>>2];p=N[g+116>>2];N[g+40>>2]=B-Q(Q(i*c)+Q(Q(j*l)+Q(k*p)));N[g+36>>2]=C-Q(Q(w*c)+Q(Q(x*l)+Q(p*y)));N[g+32>>2]=D-Q(Q(m*c)+Q(Q(n*l)+Q(o*p)));J[g+28>>2]=0;q=N[g+72>>2];r=N[g+64>>2];s=N[g+68>>2];N[g+24>>2]=Q(i*q)+Q(Q(j*r)+Q(k*s));N[g+20>>2]=Q(w*q)+Q(Q(x*r)+Q(y*s));N[g+16>>2]=Q(m*q)+Q(Q(n*r)+Q(o*s));J[g+12>>2]=0;t=i;i=N[g+56>>2];u=j;j=N[g+48>>2];v=k;k=N[g+52>>2];N[g+8>>2]=Q(t*i)+Q(Q(u*j)+Q(v*k));N[g+4>>2]=Q(w*i)+Q(Q(x*j)+Q(y*k));N[g>>2]=Q(m*i)+Q(Q(n*j)+Q(o*k));d=g+32|0;h=g+16|0;ua[J[J[a>>2]+68>>2]](a,d,h,g,b,b,Q(0),Q(6.2831854820251465),f,0,Q(10));m=N[e+8>>2];n=N[e>>2];o=N[e+4>>2];w=N[e+24>>2];x=N[e+16>>2];y=N[e+20>>2];t=N[e+40>>2];u=N[e+32>>2];v=N[e+36>>2];J[g+44>>2]=0;N[g+40>>2]=B+Q(Q(t*c)+Q(Q(u*l)+Q(p*v)));N[g+36>>2]=C+Q(Q(w*c)+Q(Q(x*l)+Q(p*y)));N[g+32>>2]=D+Q(Q(m*c)+Q(Q(n*l)+Q(p*o)));J[g+28>>2]=0;N[g+24>>2]=Q(t*q)+Q(Q(u*r)+Q(s*v));N[g+20>>2]=Q(w*q)+Q(Q(x*r)+Q(s*y));N[g+16>>2]=Q(m*q)+Q(Q(n*r)+Q(s*o));J[g+12>>2]=0;N[g+8>>2]=Q(t*i)+Q(Q(u*j)+Q(k*v));N[g+4>>2]=Q(w*i)+Q(Q(x*j)+Q(k*y));N[g>>2]=Q(m*i)+Q(Q(n*j)+Q(k*o));ua[J[J[a>>2]+68>>2]](a,d,h,g,b,b,Q(0),Q(6.2831854820251465),f,0,Q(10));sa=g+128|0}function ye(a,b,c,d,e,f,g){var h=Q(0),i=Q(0),j=0,k=0,l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=0,t=Q(0),u=0,v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,M=0,O=0,P=0,R=0,S=0,T=0,U=0;k=sa-32|0;sa=k;x=N[c+4>>2];y=N[d+4>>2];z=N[c>>2];A=N[d>>2];n=N[a+28>>2];p=N[a+12>>2];v=N[d+8>>2];w=N[c+8>>2];h=Q((v>2]);h=h>2];h=Q(Q((h>n?n:h)-p)*l);a:{if(h=Q(0)){C=~~h>>>0;break a}C=0}o=N[a+24>>2];q=N[a+8>>2];h=Q((x>y?y:x)+N[e+4>>2]);h=h>2];h=Q(Q((h>o?o:h)-q)*t);b:{if(h=Q(0)){B=~~h>>>0;break b}B=0}m=N[a+20>>2];r=N[a+4>>2];h=Q((z>A?A:z)+N[e>>2]);h=h>2];h=Q(Q((h>m?m:h)-r)*i);c:{if(h=Q(0)){u=~~h>>>0;break c}u=0}h=Q((v>w?v:w)+N[f+8>>2]);h=hn?n:h)-p)*l)+Q(1));d:{if(h=Q(0)){s=~~h>>>0;break d}s=0}h=Q((x>2]);h=ho?o:h)-q)*t)+Q(1));e:{if(h=Q(0)){j=~~h>>>0;break e}j=0}h=Q((z>2]);h=hm?m:h)-r)*i)+Q(1));f:{if(h=Q(0)){d=~~h>>>0;break f}d=0}if((g|0)>0){i=Q(v-w);m=Q(A-z);t=Q(y-x);h=Q(Q(1)/Q(Y(Q(Q(i*i)+Q(Q(m*m)+Q(t*t))))));l=Q(i*h);n=Q(l*i);i=Q(m*h);h=Q(t*h);t=Q(n+Q(Q(i*m)+Q(t*h)));G=C&65534;H=B&65534;I=u&65534;K=s|1;M=j|1;O=d|1;d=J[a+136>>2];p=l==Q(0)?Q(0xde0b6b000000000):Q(Q(1)/l);s=p>2];u=0;g:{h:{i:{j:{if(L[d+6>>1]>>0){break j}B=L[d>>1];if(O>>>0>>0|L[d+10>>1]>>0){break j}s=L[d+4>>1];if(L[d+8>>1]>>0|s>>>0>K>>>0){break j}j=L[d+2>>1];if(j>>>0>M>>>0){break j}v=N[a+4>>2];w=N[a+36>>2];n=N[a+8>>2];o=N[a+40>>2];m=N[a+12>>2];l=N[a+44>>2];J[k+12>>2]=0;i=Q(m+Q(Q(s>>>0)/l));N[k+8>>2]=i;h=Q(n+Q(Q(j>>>0)/o));N[k+4>>2]=h;u=L[d+10>>1];s=L[d+8>>1];j=L[d+6>>1];J[k+28>>2]=0;N[k>>2]=Q(v+Q(Q(B>>>0)/w))-N[f>>2];N[k+4>>2]=h-N[f+4>>2];N[k+8>>2]=i-N[f+8>>2];N[k+16>>2]=Q(v+Q(Q(j>>>0)/w))-N[e>>2];N[k+20>>2]=Q(n+Q(Q(s>>>0)/o))-N[e+4>>2];N[k+24>>2]=Q(m+Q(Q(u>>>0)/l))-N[e+8>>2];k:{i=N[c>>2];l=Q(r*Q(N[U>>2]-i));h=N[c+4>>2];n=Q(q*Q(N[T>>2]-h));if(l>n){break k}h=Q(q*Q(N[R>>2]-h));o=Q(r*Q(N[C>>2]-i));if(h>o){break k}m=h>l?h:l;h=N[c+8>>2];l=Q(p*Q(N[S>>2]-h));if(m>l){break k}i=Q(p*Q(N[P>>2]-h));h=nh){break k}u=t>(i>m?i:m)&(h>l?l:h)>Q(0);if(!u|(F|0)<0){break j}j=J[d+12>>2];ua[J[J[b>>2]+8>>2]](b,j>>21,j&2097151);break i}u=0}if((F|0)>=0){break i}if(!u){break h}}D=D+1|0;d=d+16|0;break g}j=J[d+12>>2];D=D-j|0;d=d-(j<<4)|0}E=E+1|0;if((g|0)>(D|0)){continue}break}}if(J[8470]<(E|0)){J[8470]=E}sa=k+32|0}function Yd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=0,o=Q(0),p=Q(0),q=0,r=Q(0),s=Q(0),t=0,u=Q(0),v=Q(0),w=Q(0),x=Q(0);g=sa-304|0;sa=g;h=N[b+52>>2];k=N[c+52>>2];l=N[b+56>>2];i=N[c+56>>2];m=N[b+48>>2];j=N[c+48>>2];J[g+300>>2]=0;p=Q(i-l);N[g+296>>2]=p;o=Q(k-h);N[g+292>>2]=o;u=Q(j-m);N[g+288>>2]=u;t=c;c=g+116|0;n=g+52|0;Vb(b,t,c,n);J[g+284>>2]=0;h=N[g+52>>2];k=Q(h*N[g+124>>2]);N[g+280>>2]=k;l=Q(h*N[g+120>>2]);N[g+276>>2]=l;h=Q(h*N[g+116>>2]);N[g+272>>2]=h;i=N[d+52>>2];m=N[e+52>>2];j=N[d+56>>2];r=N[e+56>>2];s=N[d+48>>2];x=N[e+48>>2];J[g+268>>2]=0;v=Q(r-j);N[g+264>>2]=v;w=Q(m-i);N[g+260>>2]=w;s=Q(x-s);N[g+256>>2]=s;Vb(d,e,c,n);J[g+252>>2]=0;i=N[g+52>>2];m=Q(i*N[g+124>>2]);N[g+248>>2]=m;j=Q(i*N[g+120>>2]);N[g+244>>2]=j;i=Q(i*N[g+116>>2]);N[g+240>>2]=i;c=J[a+12>>2];k=Q(Q(Y(Q(Q(k*k)+Q(Q(h*h)+Q(l*l)))))*Q(ua[J[J[c>>2]+16>>2]](c)));c=J[a+16>>2];if(c){h=Q(ua[J[J[c>>2]+16>>2]](c))}else{h=Q(0)}r=Q(k+Q(h*Q(Y(Q(Q(m*m)+Q(Q(i*i)+Q(j*j)))))));l=Q(v-p);i=Q(s-u);m=Q(w-o);a:{if(Q(r+Q(Y(Q(Q(l*l)+Q(Q(i*i)+Q(m*m))))))==Q(0)){break a}H[g+220|0]=0;J[g+216>>2]=1566444395;J[g+180>>2]=22516;Zd(a,b,d,g+180|0);c=J[g+212>>2];J[g+232>>2]=J[g+208>>2];J[g+236>>2]=c;c=J[g+204>>2];J[g+224>>2]=J[g+200>>2];J[g+228>>2]=c;if(!K[g+220|0]){break a}k=N[g+192>>2];j=N[g+184>>2];p=N[g+188>>2];if(Q(r+Q(Q(l*k)+Q(Q(i*j)+Q(m*p))))<=Q(1.1920928955078125e-7)){break a}b:{o=Q(N[g+216>>2]+N[f+172>>2]);c:{if(!(o>Q(.0010000000474974513))){h=Q(0);l=N[g+196>>2];break c}e=g+28|0;t=g+164|0;c=0;h=Q(0);while(1){q=J[f+168>>2];if(q){J[g+124>>2]=1065353216;J[g+128>>2]=0;J[g+116>>2]=1065353216;J[g+120>>2]=1065353216;ua[J[J[q>>2]+28>>2]](q,g+224|0,Q(.20000000298023224),g+116|0)}q=0;j=Q(r+Q(Q(l*k)+Q(Q(i*j)+Q(m*p))));if(j<=Q(1.1920928955078125e-7)){break a}k=h;h=Q(h+Q(o/j));if(k>=h|h>Q(1)|h>2];if(n){J[g+16>>2]=0;J[g+20>>2]=0;J[g+8>>2]=1065353216;J[g+12>>2]=0;ua[J[J[n>>2]+28>>2]](n,t,Q(.20000000298023224),g+8|0)}ua[J[J[f>>2]>>2]](f,h);H[g+48|0]=0;J[g+44>>2]=1566444395;J[g+8>>2]=22516;Zd(a,g+116|0,g+52|0,g+8|0);if(!K[g+48|0]){break b}o=N[f+172>>2];n=J[e+12>>2];J[g+232>>2]=J[e+8>>2];J[g+236>>2]=n;n=J[e+4>>2];J[g+224>>2]=J[e>>2];J[g+228>>2]=n;if((c|0)==64){ua[J[J[f>>2]+8>>2]](f,-2,65);break a}c=c+1|0;j=N[g+12>>2];p=N[g+16>>2];k=N[g+20>>2];o=Q(N[g+44>>2]+o);if(o>Q(.0010000000474974513)){continue}break}l=N[g+24>>2]}N[f+132>>2]=j;N[f+164>>2]=h;N[f+144>>2]=l;N[f+140>>2]=k;N[f+136>>2]=p;a=J[g+228>>2];J[f+148>>2]=J[g+224>>2];J[f+152>>2]=a;a=J[g+236>>2];J[f+156>>2]=J[g+232>>2];J[f+160>>2]=a;q=1;break a}ua[J[J[f>>2]+8>>2]](f,-1,c)}sa=g+304|0;return q|0}function vc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=0,s=0,t=Q(0),u=Q(0),v=Q(0);g=sa-272|0;sa=g;Kb(J[a+4>>2]);j=N[b+52>>2];i=N[c+52>>2];n=N[d+52>>2];k=N[e+52>>2];l=N[b+56>>2];m=N[c+56>>2];o=N[d+56>>2];p=N[e+56>>2];q=N[b+48>>2];t=N[c+48>>2];u=N[d+48>>2];v=N[e+48>>2];H[g+252|0]=0;J[g+248>>2]=1566444395;J[g+212>>2]=22516;r=sc(g+132|0,J[a+8>>2],J[a+12>>2],J[a+4>>2],0);J[g+128>>2]=1566444395;a=J[b+12>>2];J[g+8>>2]=J[b+8>>2];J[g+12>>2]=a;a=J[b+4>>2];J[g>>2]=J[b>>2];J[g+4>>2]=a;a=J[b+28>>2];J[g+24>>2]=J[b+24>>2];J[g+28>>2]=a;a=J[b+20>>2];J[g+16>>2]=J[b+16>>2];J[g+20>>2]=a;a=J[b+44>>2];J[g+40>>2]=J[b+40>>2];J[g+44>>2]=a;a=J[b+36>>2];J[g+32>>2]=J[b+32>>2];J[g+36>>2]=a;a=J[b+60>>2];J[g+56>>2]=J[b+56>>2];J[g+60>>2]=a;a=J[b+52>>2];J[g+48>>2]=J[b+48>>2];J[g+52>>2]=a;a=J[d+12>>2];J[g+72>>2]=J[d+8>>2];J[g+76>>2]=a;a=J[d+4>>2];J[g+64>>2]=J[d>>2];J[g+68>>2]=a;a=J[d+20>>2];J[g+80>>2]=J[d+16>>2];J[g+84>>2]=a;a=J[d+28>>2];J[g+88>>2]=J[d+24>>2];J[g+92>>2]=a;a=J[d+44>>2];J[g+104>>2]=J[d+40>>2];J[g+108>>2]=a;a=J[d+36>>2];J[g+96>>2]=J[d+32>>2];J[g+100>>2]=a;a=J[d+52>>2];J[g+112>>2]=J[d+48>>2];J[g+116>>2]=a;a=J[d+60>>2];J[g+120>>2]=J[d+56>>2];J[g+124>>2]=a;Za(r,g,g+212|0,0,0);a=J[g+244>>2];J[g+264>>2]=J[g+240>>2];J[g+268>>2]=a;a=J[g+236>>2];J[g+256>>2]=J[g+232>>2];J[g+260>>2]=a;h=0;a:{if(!K[g+252|0]){break a}o=Q(Q(m-l)-Q(p-o));p=Q(Q(i-j)-Q(k-n));q=Q(Q(t-q)-Q(v-u));k=N[g+224>>2];l=N[g+220>>2];m=N[g+216>>2];i=N[g+248>>2];b:{c:{if(!(i>Q(.0010000000474974513))){j=Q(0);i=N[g+228>>2];break c}s=g+232|0;a=0;n=Q(0);while(1){h=0;if((a|0)==32){break a}j=Q(n-Q(i/Q(Q(o*k)+Q(Q(q*m)+Q(p*l)))));h=0;if(n>=j){break a}h=0;if(j>Q(1)){break a}h=0;if(j>2]>>2]](f,j);i=Q(Q(1)-j);N[g+48>>2]=Q(i*N[b+48>>2])+Q(j*N[c+48>>2]);N[g+52>>2]=Q(i*N[b+52>>2])+Q(j*N[c+52>>2]);N[g+56>>2]=Q(i*N[b+56>>2])+Q(j*N[c+56>>2]);N[g+112>>2]=Q(i*N[d+48>>2])+Q(j*N[e+48>>2]);N[g+116>>2]=Q(i*N[d+52>>2])+Q(j*N[e+52>>2]);N[g+120>>2]=Q(i*N[d+56>>2])+Q(j*N[e+56>>2]);Za(r,g,g+212|0,0,0);h=0;if(!K[g+252|0]){break a}i=N[g+248>>2];if(i>2]=j;i=N[g+228>>2];k=N[g+224>>2];l=N[g+220>>2];m=N[g+216>>2];break b}a=a+1|0;h=J[g+244>>2];J[g+264>>2]=J[g+240>>2];J[g+268>>2]=h;h=J[g+236>>2];J[g+256>>2]=J[g+232>>2];J[g+260>>2]=h;k=N[g+224>>2];l=N[g+220>>2];m=N[g+216>>2];n=j;if(i>Q(.0010000000474974513)){continue}break}i=N[g+228>>2]}h=0;if(Q(-N[f+172>>2])<=Q(Q(k*o)+Q(Q(m*q)+Q(p*l)))){break a}N[f+164>>2]=j;s=g+256|0}N[f+132>>2]=m;N[f+144>>2]=i;N[f+140>>2]=k;N[f+136>>2]=l;a=s;b=J[a+4>>2];J[f+148>>2]=J[a>>2];J[f+152>>2]=b;b=J[a+12>>2];J[f+156>>2]=J[a+8>>2];J[f+160>>2]=b;h=1}sa=g+272|0;return h|0}function Yn(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=0,o=0,p=Q(0),q=Q(0),r=0,s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=0,x=0;e=sa-48|0;sa=e;f=J[c+12>>2];J[e+24>>2]=J[c+8>>2];J[e+28>>2]=f;f=J[c+4>>2];J[e+16>>2]=J[c>>2];J[e+20>>2]=f;f=J[d+12>>2];J[e+40>>2]=J[d+8>>2];J[e+44>>2]=f;f=J[d+4>>2];J[e+32>>2]=J[d>>2];J[e+36>>2]=f;a:{if(J[b+60>>2]==2){_b(a+44|0,J[b+48>>2]);w=b,x=$b(a+4|0,e+16|0,b),J[w+48>>2]=x;f=1;break a}f=1;J[a+128>>2]=J[a+128>>2]+1;b:{h=J[b+48>>2];if(!(N[h>>2]<=N[e+32>>2])|!(N[h+16>>2]>=N[e+16>>2])|(!(N[h+4>>2]<=N[e+36>>2])|!(N[h+20>>2]>=N[e+20>>2]))){break b}if(!(N[h+8>>2]<=N[e+40>>2])|!(N[h+24>>2]>=N[e+24>>2])){break b}k=N[b+20>>2];p=N[b+24>>2];s=N[c>>2];t=N[c+4>>2];u=N[c+8>>2];q=N[b+16>>2];l=N[b+36>>2];m=N[b+40>>2];v=N[b+32>>2];j=N[a+100>>2];J[e+12>>2]=0;m=Q(j*Q(Q(m-p)*Q(.5)));N[e+8>>2]=m;l=Q(j*Q(Q(l-k)*Q(.5)));N[e+4>>2]=l;j=Q(j*Q(Q(v-q)*Q(.5)));N[e>>2]=j;if(Q(s-q)>2]=-j}if(Q(t-k)>2]=-l}if(Q(u-p)>2]=-m}n=a+4|0;g=e+16|0;k=N[g>>2];c:{d:{if(!(k>=N[h>>2])){j=N[g+4>>2];break d}j=N[g+4>>2];if(!(j>=N[h+4>>2])|!(N[h+8>>2]<=N[g+8>>2])|(!(N[h+16>>2]>=N[g+16>>2])|!(N[h+20>>2]>=N[g+20>>2]))){break d}f=0;if(N[h+24>>2]>=N[g+24>>2]){break c}}N[g+4>>2]=j+Q(-.05000000074505806);N[g>>2]=k+Q(-.05000000074505806);N[g+8>>2]=N[g+8>>2]+Q(-.05000000074505806);N[g+16>>2]=N[g+16>>2]+Q(.05000000074505806);N[g+20>>2]=N[g+20>>2]+Q(.05000000074505806);N[g+24>>2]=N[g+24>>2]+Q(.05000000074505806);j=N[e>>2];f=((j>Q(0))<<4)+g|0;N[f>>2]=j+N[f>>2];j=N[e+4>>2];f=(j>Q(0)?20:4)+g|0;N[f>>2]=j+N[f>>2];j=N[e+8>>2];f=(j>Q(0)?24:8)+g|0;N[f>>2]=j+N[f>>2];f=bc(n,h);e:{if(!f){f=0;break e}o=J[n+8>>2];if((o|0)>=0){if(!o){break e}while(1){i=J[f+32>>2];if(!i){break e}f=i;r=r+1|0;if((o|0)!=(r|0)){continue}break}break e}f=J[n>>2]}i=J[g+4>>2];J[h>>2]=J[g>>2];J[h+4>>2]=i;i=J[g+28>>2];J[h+24>>2]=J[g+24>>2];J[h+28>>2]=i;i=J[g+20>>2];J[h+16>>2]=J[g+16>>2];J[h+20>>2]=i;i=J[g+12>>2];J[h+8>>2]=J[g+8>>2];J[h+12>>2]=i;ac(n,f,h);f=1}if(!f){break a}J[a+132>>2]=J[a+132>>2]+1;break a}_c(a+4|0,h,e+16|0);J[a+132>>2]=J[a+132>>2]+1}i=J[b+52>>2];J[(i?i+56|0:((J[b+60>>2]<<2)+a|0)+84|0)>>2]=J[b+56>>2];i=J[b+56>>2];if(i){J[i+52>>2]=J[b+52>>2]}i=J[c+4>>2];J[b+16>>2]=J[c>>2];J[b+20>>2]=i;i=J[c+12>>2];J[b+24>>2]=J[c+8>>2];J[b+28>>2]=i;c=J[d+4>>2];J[b+32>>2]=J[d>>2];J[b+36>>2]=c;c=J[d+12>>2];J[b+40>>2]=J[d+8>>2];J[b+44>>2]=c;c=J[a+104>>2];J[b+60>>2]=c;J[b+52>>2]=0;c=(c<<2)+a|0;J[b+56>>2]=J[c+84>>2];d=J[c+84>>2];if(d){J[d+52>>2]=b}J[c+84>>2]=b;f:{if(!f){break f}H[a+154|0]=1;if(K[a+153|0]){break f}J[e>>2]=12044;J[e+4>>2]=a;Zb(a+44|0,J[a+44>>2],J[b+48>>2],e);Zb(a+4|0,J[a+4>>2],J[b+48>>2],e)}sa=e+48|0}function Nj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=Q(0),g=Q(0),h=0,i=0,j=0,k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=0,w=0,x=0,y=0,z=0;g=N[b+44>>2];m=N[b+40>>2];n=N[b+36>>2];k=N[b+28>>2];o=N[b+24>>2];p=N[b+20>>2];q=N[b+32>>2];r=N[b+16>>2];l=N[b+12>>2];s=N[b+8>>2];t=N[b+4>>2];u=N[b>>2];i=J[a+4>>2];b=J[i+4>>2];a:{if((b|0)!=J[i+8>>2]){break a}v=b?b<<1:1;if((v|0)<=(b|0)){break a}if(v){J[8456]=J[8456]+1;w=ua[J[8258]](v<<6,16)|0;b=J[i+4>>2]}b:{if((b|0)<=0){break b}if((b|0)!=1){z=b&-2;while(1){h=x<<6;e=h+w|0;a=J[i+12>>2]+h|0;j=J[a+4>>2];J[e>>2]=J[a>>2];J[e+4>>2]=j;j=J[a+60>>2];J[e+56>>2]=J[a+56>>2];J[e+60>>2]=j;j=J[a+52>>2];J[e+48>>2]=J[a+48>>2];J[e+52>>2]=j;j=J[a+44>>2];J[e+40>>2]=J[a+40>>2];J[e+44>>2]=j;j=J[a+36>>2];J[e+32>>2]=J[a+32>>2];J[e+36>>2]=j;j=J[a+28>>2];J[e+24>>2]=J[a+24>>2];J[e+28>>2]=j;j=J[a+20>>2];J[e+16>>2]=J[a+16>>2];J[e+20>>2]=j;j=J[a+12>>2];J[e+8>>2]=J[a+8>>2];J[e+12>>2]=j;a=h|64;e=a+w|0;a=a+J[i+12>>2]|0;h=J[a+4>>2];J[e>>2]=J[a>>2];J[e+4>>2]=h;h=J[a+12>>2];J[e+8>>2]=J[a+8>>2];J[e+12>>2]=h;h=J[a+20>>2];J[e+16>>2]=J[a+16>>2];J[e+20>>2]=h;h=J[a+28>>2];J[e+24>>2]=J[a+24>>2];J[e+28>>2]=h;h=J[a+36>>2];J[e+32>>2]=J[a+32>>2];J[e+36>>2]=h;h=J[a+44>>2];J[e+40>>2]=J[a+40>>2];J[e+44>>2]=h;h=J[a+52>>2];J[e+48>>2]=J[a+48>>2];J[e+52>>2]=h;h=J[a+60>>2];J[e+56>>2]=J[a+56>>2];J[e+60>>2]=h;x=x+2|0;y=y+2|0;if((y|0)!=(z|0)){continue}break}}if(!(b&1)){break b}a=x<<6;b=a+w|0;a=a+J[i+12>>2]|0;e=J[a+4>>2];J[b>>2]=J[a>>2];J[b+4>>2]=e;e=J[a+60>>2];J[b+56>>2]=J[a+56>>2];J[b+60>>2]=e;e=J[a+52>>2];J[b+48>>2]=J[a+48>>2];J[b+52>>2]=e;e=J[a+44>>2];J[b+40>>2]=J[a+40>>2];J[b+44>>2]=e;e=J[a+36>>2];J[b+32>>2]=J[a+32>>2];J[b+36>>2]=e;e=J[a+28>>2];J[b+24>>2]=J[a+24>>2];J[b+28>>2]=e;e=J[a+20>>2];J[b+16>>2]=J[a+16>>2];J[b+20>>2]=e;e=J[a+12>>2];J[b+8>>2]=J[a+8>>2];J[b+12>>2]=e}a=J[i+12>>2];if(!(a?!a|!K[i+16|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](a)}J[i+12>>2]=w;H[i+16|0]=1;J[i+8>>2]=v;b=J[i+4>>2]}a=J[i+12>>2]+(b<<6)|0;J[a+40>>2]=d;J[a+36>>2]=c;J[a+32>>2]=-1;f=l>Q(0)?l:Q(0);f=f>2]=g>f?g:f;f=s>Q(-0xde0b6b000000000)?s:Q(-0xde0b6b000000000);f=f>2]=fQ(-0xde0b6b000000000)?t:Q(-0xde0b6b000000000);f=f>2]=fQ(-0xde0b6b000000000)?u:Q(-0xde0b6b000000000);f=f>2]=f>2]=go?o:g;N[a+8>>2]=g>m?m:g;g=tp?p:g;N[a+4>>2]=g>n?n:g;g=ur?r:g;N[a>>2]=g>q?q:g;J[i+4>>2]=J[i+4>>2]+1}function Lc(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;J[8423]=16752;b=J[a+20>>2];J[8456]=J[8456]+1;e=ua[J[8258]](4,16)|0;J[e>>2]=(b?22668:22828)+8;J[8429]=e;J[8456]=J[8456]+1;b=ua[J[8258]](20,16)|0;e=J[8429];J[b+12>>2]=0;J[b+16>>2]=3;H[b+4|0]=0;J[b+8>>2]=e;J[b>>2]=15072;J[8430]=b;J[8456]=J[8456]+1;b=ua[J[8258]](8,16)|0;J[b>>2]=16868;H[b+4|0]=0;J[8431]=b;J[8456]=J[8456]+1;b=ua[J[8258]](8,16)|0;J[b>>2]=16992;H[b+4|0]=0;J[8432]=b;J[8456]=J[8456]+1;b=ua[J[8258]](8,16)|0;J[b>>2]=17084;H[b+4|0]=0;J[8433]=b;J[8456]=J[8456]+1;b=ua[J[8258]](8,16)|0;J[b>>2]=17164;H[b+4|0]=0;J[8434]=b;J[8456]=J[8456]+1;b=ua[J[8258]](8,16)|0;J[b>>2]=17252;H[b+4|0]=0;J[8435]=b;J[8456]=J[8456]+1;b=ua[J[8258]](8,16)|0;J[b>>2]=17336;H[b+4|0]=0;J[8436]=b;J[8456]=J[8456]+1;b=ua[J[8258]](8,16)|0;J[b>>2]=17404;H[b+4|0]=0;J[8437]=b;J[8456]=J[8456]+1;b=ua[J[8258]](8,16)|0;J[b>>2]=17488;H[b+4|0]=0;J[8441]=b;J[8456]=J[8456]+1;b=ua[J[8258]](8,16)|0;J[b>>2]=17488;J[8442]=b;H[b+4|0]=1;J[8456]=J[8456]+1;b=ua[J[8258]](8,16)|0;J[b>>2]=17572;H[b+4|0]=0;J[8440]=b;J[8456]=J[8456]+1;b=ua[J[8258]](16,16)|0;J[b+8>>2]=1;J[b+12>>2]=0;J[b>>2]=17648;H[b+4|0]=0;J[8444]=b;J[8456]=J[8456]+1;b=ua[J[8258]](16,16)|0;J[b+8>>2]=1;J[b+12>>2]=0;J[b>>2]=17648;J[8443]=b;H[b+4|0]=1;h=J[a+16>>2];d=J[a>>2];a:{if(d){H[33704]=0;break a}H[33704]=1;J[8456]=J[8456]+1;d=ua[J[8258]](24,16)|0;b=J[a+8>>2];J[d+20>>2]=0;J[d+4>>2]=b;J[d>>2]=868;J[8456]=J[8456]+1;b=ua[J[8258]](P(b,868),16)|0;J[d+12>>2]=b;J[d+16>>2]=b;i=J[d+4>>2];J[d+8>>2]=i;e=i-1|0;b:{if(!e){break b}f=J[d>>2];j=e&7;if(j){while(1){c=b;b=b+f|0;J[c>>2]=b;e=e-1|0;g=g+1|0;if((j|0)!=(g|0)){continue}break}}if(i-2>>>0<7){break b}while(1){c=b;b=b+f|0;J[c>>2]=b;c=b;b=b+f|0;J[c>>2]=b;c=b;b=b+f|0;J[c>>2]=b;c=b;b=b+f|0;J[c>>2]=b;c=b;b=b+f|0;J[c>>2]=b;c=b;b=b+f|0;J[c>>2]=b;c=b;b=b+f|0;J[c>>2]=b;c=b;b=b+f|0;J[c>>2]=b;e=e-8|0;if(e){continue}break}}J[b>>2]=0}J[8425]=d;b=J[a+4>>2];if(b){H[33712]=0;J[8427]=b;return}H[33712]=1;J[8456]=J[8456]+1;d=ua[J[8258]](24,16)|0;a=J[a+12>>2];g=0;J[d+20>>2]=0;J[d+4>>2]=a;b=(h|0)<=72?72:h;b=((b>>>0<=116?116:b)&2147483632)+16|0;J[d>>2]=b;J[8456]=J[8456]+1;b=ua[J[8258]](P(a,b),16)|0;J[d+12>>2]=b;J[d+16>>2]=b;f=J[d+4>>2];J[d+8>>2]=f;e=f-1|0;c:{if(!e){break c}a=J[d>>2];h=e&7;if(h){while(1){c=b;b=a+b|0;J[c>>2]=b;e=e-1|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}}if(f-2>>>0<7){break c}while(1){c=b;b=a+b|0;J[c>>2]=b;c=b;b=a+b|0;J[c>>2]=b;c=b;b=a+b|0;J[c>>2]=b;c=b;b=a+b|0;J[c>>2]=b;c=b;b=a+b|0;J[c>>2]=b;c=b;b=a+b|0;J[c>>2]=b;c=b;b=a+b|0;J[c>>2]=b;c=b;b=a+b|0;J[c>>2]=b;e=e-8|0;if(e){continue}break}}J[b>>2]=0;J[8427]=d}function Xk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=Q(0),h=Q(0),i=Q(0),j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=Q(0),r=Q(0),s=Q(0);l=sa-32|0;sa=l;J[a+60>>2]=J[a+60>>2]+1;d=J[a+4>>2];ua[J[J[d>>2]+16>>2]](d,l+28|0,l+24|0,l+20|0,l+16|0,l+12|0,l+8|0,l+4|0,l,b);e=J[a+4>>2];j=J[l+12>>2]+P(J[l+8>>2],c)|0;m=J[l+16>>2];d=J[l+28>>2];f=J[l>>2];a:{if(!J[l+20>>2]){b:{c:{switch(f-2|0){case 0:k=J[j+8>>2];break b;case 1:k=L[j+4>>1];break b;default:break c}}k=K[j+2|0]}k=P(k,m)+d|0;g=N[k>>2];h=N[k+4>>2];i=N[k+8>>2];q=N[e+4>>2];r=N[e+8>>2];s=N[e+12>>2];J[a+56>>2]=0;N[a+52>>2]=i*s;N[a+48>>2]=h*r;N[a+44>>2]=g*q;d:{e:{switch(f-2|0){case 0:k=J[j+4>>2];break d;case 1:k=L[j+2>>1];break d;default:break e}}k=K[j+1|0]}k=P(k,m)+d|0;g=N[k>>2];h=N[k+4>>2];i=N[k+8>>2];q=N[e+4>>2];r=N[e+8>>2];s=N[e+12>>2];J[a+40>>2]=0;N[a+36>>2]=i*s;N[a+32>>2]=h*r;N[a+28>>2]=g*q;f:{g:{switch(f-2|0){case 0:f=J[j>>2];break f;case 1:f=L[j>>1];break f;default:break g}}f=K[j|0]}d=P(f,m)+d|0;k=d+8|0;g=Q(N[d+4>>2]*N[e+8>>2]);i=Q(N[d>>2]*N[e+4>>2]);h=N[e+12>>2];break a}k=e+12|0;h:{switch(f-2|0){case 0:f=P(J[j+8>>2],m)+d|0;n=O[f>>3];o=O[f+8>>3];p=O[f+16>>3];g=N[e+4>>2];h=N[e+8>>2];i=N[e+12>>2];J[a+56>>2]=0;N[a+52>>2]=i*Q(p);N[a+48>>2]=h*Q(o);N[a+44>>2]=g*Q(n);f=P(J[j+4>>2],m)+d|0;n=O[f>>3];o=O[f+8>>3];p=O[f+16>>3];g=N[e+4>>2];h=N[e+8>>2];i=N[e+12>>2];J[a+40>>2]=0;N[a+36>>2]=i*Q(p);N[a+32>>2]=h*Q(o);N[a+28>>2]=g*Q(n);d=P(J[j>>2],m)+d|0;g=Q(N[e+8>>2]*Q(O[d+8>>3]));i=Q(N[e+4>>2]*Q(O[d>>3]));h=Q(O[d+16>>3]);break a;case 1:f=P(L[j+4>>1],m)+d|0;n=O[f>>3];o=O[f+8>>3];p=O[f+16>>3];g=N[e+4>>2];h=N[e+8>>2];i=N[e+12>>2];J[a+56>>2]=0;N[a+52>>2]=i*Q(p);N[a+48>>2]=h*Q(o);N[a+44>>2]=g*Q(n);f=P(L[j+2>>1],m)+d|0;n=O[f>>3];o=O[f+8>>3];p=O[f+16>>3];g=N[e+4>>2];h=N[e+8>>2];i=N[e+12>>2];J[a+40>>2]=0;N[a+36>>2]=i*Q(p);N[a+32>>2]=h*Q(o);N[a+28>>2]=g*Q(n);d=P(L[j>>1],m)+d|0;g=Q(N[e+8>>2]*Q(O[d+8>>3]));i=Q(N[e+4>>2]*Q(O[d>>3]));h=Q(O[d+16>>3]);break a;default:break h}}f=P(K[j+2|0],m)+d|0;n=O[f>>3];o=O[f+8>>3];p=O[f+16>>3];g=N[e+4>>2];h=N[e+8>>2];i=N[e+12>>2];J[a+56>>2]=0;N[a+52>>2]=i*Q(p);N[a+48>>2]=h*Q(o);N[a+44>>2]=g*Q(n);f=P(K[j+1|0],m)+d|0;n=O[f>>3];o=O[f+8>>3];p=O[f+16>>3];g=N[e+4>>2];h=N[e+8>>2];i=N[e+12>>2];J[a+40>>2]=0;N[a+36>>2]=i*Q(p);N[a+32>>2]=h*Q(o);N[a+28>>2]=g*Q(n);d=P(K[j|0],m)+d|0;g=Q(N[e+8>>2]*Q(O[d+8>>3]));i=Q(N[e+4>>2]*Q(O[d>>3]));h=Q(O[d+16>>3])}q=N[k>>2];J[a+24>>2]=0;N[a+16>>2]=g;N[a+12>>2]=i;N[a+20>>2]=q*h;d=J[a+8>>2];ua[J[J[d>>2]+8>>2]](d,a+12|0,b,c);a=J[a+4>>2];ua[J[J[a>>2]+24>>2]](a,b);sa=l+32|0}function Pj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=Q(0),g=Q(0),h=0,i=0,j=Q(0),k=0,l=0,m=0,n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=0,u=0,v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=0,C=0;f=N[b+40>>2];g=N[b+36>>2];e=N[b+24>>2];o=N[b+20>>2];i=J[a+8>>2];v=N[i+44>>2];w=N[i+40>>2];x=N[i+12>>2];y=N[i+8>>2];p=N[b+32>>2];q=N[b+16>>2];n=N[b+8>>2];r=N[b+4>>2];s=N[b>>2];z=N[i+36>>2];A=N[i+4>>2];b=J[a+4>>2];a=J[b+4>>2];a:{if((a|0)!=J[b+8>>2]){break a}t=a?a<<1:1;if((t|0)<=(a|0)){break a}b:{if(!t){i=0;break b}J[8456]=J[8456]+1;i=ua[J[8258]](t<<4,16)|0;a=J[b+4>>2]}c:{if((a|0)<=0){break c}if((a|0)!=1){C=a&-2;while(1){l=k<<4;m=l+i|0;h=l+J[b+12>>2]|0;u=J[h+4>>2];J[m>>2]=J[h>>2];J[m+4>>2]=u;u=J[h+12>>2];J[m+8>>2]=J[h+8>>2];J[m+12>>2]=u;h=l|16;l=h+i|0;h=h+J[b+12>>2]|0;m=J[h+4>>2];J[l>>2]=J[h>>2];J[l+4>>2]=m;m=J[h+12>>2];J[l+8>>2]=J[h+8>>2];J[l+12>>2]=m;k=k+2|0;B=B+2|0;if((B|0)!=(C|0)){continue}break}}if(!(a&1)){break c}a=k<<4;k=a+i|0;a=a+J[b+12>>2]|0;h=J[a+4>>2];J[k>>2]=J[a>>2];J[k+4>>2]=h;h=J[a+12>>2];J[k+8>>2]=J[a+8>>2];J[k+12>>2]=h}a=J[b+12>>2];if(!(a?!a|!K[b+16|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](a)}J[b+12>>2]=i;H[b+16|0]=1;J[b+8>>2]=t;a=J[b+4>>2]}a=J[b+12>>2]+(a<<4)|0;J[a+12>>2]=c<<21|d;j=n>Q(-0xde0b6b000000000)?n:Q(-0xde0b6b000000000);j=e>j?e:j;j=f>j?f:j;n=n=Q(0)){d=~~f>>>0;break d}d=0}I[a+4>>1]=d&65534;f=r>Q(-0xde0b6b000000000)?r:Q(-0xde0b6b000000000);f=fo?o:e;g=e>g?g:e;d=Q(f-g)=Q(0)){h=~~g>>>0;break e}h=0}I[a+2>>1]=h&65534;g=s>Q(-0xde0b6b000000000)?s:Q(-0xde0b6b000000000);g=gq?q:e;e=e>p?p:e;i=Q(g-e)=Q(0)){h=~~e>>>0;break f}h=0}I[a>>1]=h&65534;e=Q(Q(Q((c?Q(j+Q(.0010000000474974513)):j)-x)*v)+Q(1));g:{if(e=Q(0)){c=~~e>>>0;break g}c=0}I[a+10>>1]=c|1;f=Q(Q(Q((d?Q(f+Q(.0010000000474974513)):f)-y)*w)+Q(1));h:{if(f=Q(0)){c=~~f>>>0;break h}c=0}I[a+8>>1]=c|1;f=Q(Q(Q((i?Q(g+Q(.0010000000474974513)):g)-A)*z)+Q(1));i:{if(f=Q(0)){c=~~f>>>0;break i}c=0}I[a+6>>1]=c|1;J[b+4>>2]=J[b+4>>2]+1}function Co(a,b,c,d,e,f,g,h,i,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=Q(e);f=Q(f);g=Q(g);h=Q(h);i=Q(i);j=j|0;k=Q(k);l=l|0;var m=0,n=0,o=0,p=Q(0),q=Q(0),r=Q(0),s=0,t=0,u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=0,A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=0,F=0,G=Q(0),H=0,I=0,K=Q(0),L=0,M=0,O=Q(0),P=Q(0),S=Q(0),T=0,U=0,V=0,W=0,X=0,Y=Q(0);n=sa-2416|0;sa=n;u=N[b>>2];A=N[c>>2];v=N[b+4>>2];C=N[c+4>>2];w=N[b+8>>2];D=N[c+8>>2];J[n+44>>2]=0;q=Q(D*e);N[n+40>>2]=w+q;r=Q(C*e);N[n+36>>2]=v+r;x=Q(A*e);N[n+32>>2]=u+x;J[n+28>>2]=0;N[n+24>>2]=w-q;N[n+20>>2]=v-r;N[n+16>>2]=u-x;p=Q(k*Q(.01745329238474369));k=Q(p+Q(-1.5707963705062866));I=f<=Q(-1.5707963705062866);x=I?k:f;f=Q(Q(1.5707963705062866)-p);E=g>=Q(1.5707963705062866);g=E?f:g;if(x>g){E=1;I=1;x=k;g=f}q=N[d>>2];r=N[d+4>>2];k=N[d+8>>2];m=h>i;K=m?Q(p+Q(-3.1415927410125732)):h;y=Q((m?Q(3.1415927410125732):i)-K);f=Q(y/p);a:{if(Q(R(f))=Q(6.2831854820251465);m=l^1;g=Q(g-x);f=Q(g/p);b:{if(Q(R(f))>2];v=N[b>>2];w=N[d>>2];q=N[c+4>>2];r=N[b+4>>2];k=N[d+4>>2];i=N[c+8>>2];h=N[b+8>>2];g=N[d+8>>2];J[o+12>>2]=0;f=Q(Q(Q(z|0)*C)+x);G=Q(Ma(f)*e);p=Q(G*y);Y=g;g=Q(G*D);B=Q(Na(f)*e);N[o+8>>2]=Q(Q(O*p)+Q(h+Q(Y*g)))+Q(i*B);N[o+4>>2]=Q(Q(P*p)+Q(r+Q(g*k)))+Q(B*q);N[o>>2]=Q(Q(S*p)+Q(v+Q(g*w)))+Q(B*u);L=(z|0)==(T|0);U=L&I;if(z|E){ua[J[J[a>>2]+16>>2]](a,z?s:n+16|0,o,j)}m=J[o+12>>2];J[n+8>>2]=J[o+8>>2];J[n+12>>2]=m;m=J[o+4>>2];J[n>>2]=J[o>>2];J[n+4>>2]=m;if(U){ua[J[J[a>>2]+16>>2]](a,n+32|0,o,j)}V=!z|L;if(!(!V|X)){ua[J[J[a>>2]+16>>2]](a,b,o,j)}m=1;while(1){u=N[c>>2];v=N[b>>2];w=N[d>>2];q=N[c+4>>2];r=N[b+4>>2];k=N[d+4>>2];i=N[c+8>>2];h=N[b+8>>2];g=N[d+8>>2];W=m<<4;t=W+o|0;J[t+12>>2]=0;H=m;f=Q(Q(Q(m|0)*A)+K);p=Q(G*Na(f));f=Q(G*Ma(f));N[t+8>>2]=Q(Q(O*p)+Q(h+Q(g*f)))+Q(B*i);N[t+4>>2]=Q(Q(P*p)+Q(r+Q(f*k)))+Q(B*q);N[t>>2]=Q(Q(S*p)+Q(v+Q(f*w)))+Q(B*u);c:{d:{if(z){m=s+W|0;break d}m=n+16|0;if(!E){break c}}ua[J[J[a>>2]+16>>2]](a,m,t,j)}ua[J[J[a>>2]+16>>2]](a,t-16|0,t,j);if(U){ua[J[J[a>>2]+16>>2]](a,n+32|0,t,j)}e:{if(!l){break e}f:{if(M){m=n;if((H|0)==(F|0)){break f}break e}m=b;if(!((H|0)==(F|0)&V)){break e}}ua[J[J[a>>2]+16>>2]](a,m,t,j)}m=H+1|0;if((H|0)!=(F|0)){continue}break}z=z+1|0;m=o;o=s;if(!L){continue}break}sa=n+2416|0}function ns(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=Q(0),i=0,j=0,k=0,l=0,m=0,n=Q(0);e=sa-128|0;sa=e;J[a+76>>2]=J[a+76>>2]+1;d=J[b+12>>2];J[e+72>>2]=J[b+8>>2];J[e+76>>2]=d;d=J[b+4>>2];J[e+64>>2]=J[b>>2];J[e+68>>2]=d;d=J[b+28>>2];J[e+88>>2]=J[b+24>>2];J[e+92>>2]=d;d=J[b+20>>2];J[e+80>>2]=J[b+16>>2];J[e+84>>2]=d;d=J[b+44>>2];J[e+104>>2]=J[b+40>>2];J[e+108>>2]=d;d=J[b+36>>2];J[e+96>>2]=J[b+32>>2];J[e+100>>2]=d;d=J[b+60>>2];J[e+120>>2]=J[b+56>>2];J[e+124>>2]=d;d=J[b+52>>2];J[e+112>>2]=J[b+48>>2];J[e+116>>2]=d;m=J[c+4>>2];n=Q(ua[J[J[c>>2]+48>>2]](c));ua[J[J[c>>2]+8>>2]](c,b,e+48|0,e+32|0);h=N[e+48>>2];if(h>2]){N[a+40>>2]=h}h=N[e+32>>2];if(h>N[a+56>>2]){N[a+56>>2]=h}h=N[e+52>>2];if(h>2]){N[a+44>>2]=h}h=N[e+36>>2];if(h>N[a+60>>2]){N[a+60>>2]=h}h=N[e+56>>2];if(h>2]){N[a+48>>2]=h}h=N[e+40>>2];if(h>N[a- -64>>2]){N[a+64>>2]=h}b=J[a+72>>2];if(b){d=J[e+60>>2];J[e+8>>2]=J[e+56>>2];J[e+12>>2]=d;d=J[e+44>>2];J[e+24>>2]=J[e+40>>2];J[e+28>>2]=d;d=J[e+36>>2];J[e+16>>2]=J[e+32>>2];J[e+20>>2]=d;d=J[e+52>>2];J[e>>2]=J[e+48>>2];J[e+4>>2]=d;b=$b(b,e,J[a+24>>2])}else{b=0}i=J[a+24>>2];a:{if((i|0)!=J[a+28>>2]){break a}j=i?i<<1:1;if((j|0)<=(i|0)){break a}if(j){J[8456]=J[8456]+1;l=ua[J[8258]](P(j,80),16)|0;i=J[a+24>>2]}if((i|0)>0){while(1){d=P(k,80);f=d+l|0;d=d+J[a+32>>2]|0;g=J[d+4>>2];J[f>>2]=J[d>>2];J[f+4>>2]=g;g=J[d+12>>2];J[f+8>>2]=J[d+8>>2];J[f+12>>2]=g;g=J[d+28>>2];J[f+24>>2]=J[d+24>>2];J[f+28>>2]=g;g=J[d+20>>2];J[f+16>>2]=J[d+16>>2];J[f+20>>2]=g;g=J[d+44>>2];J[f+40>>2]=J[d+40>>2];J[f+44>>2]=g;g=J[d+36>>2];J[f+32>>2]=J[d+32>>2];J[f+36>>2]=g;g=J[d+60>>2];J[f+56>>2]=J[d+56>>2];J[f+60>>2]=g;g=J[d+52>>2];J[f+48>>2]=J[d+48>>2];J[f+52>>2]=g;g=J[d+68>>2];J[f+64>>2]=J[d+64>>2];J[f+68>>2]=g;g=J[d+76>>2];J[f+72>>2]=J[d+72>>2];J[f+76>>2]=g;k=k+1|0;if((k|0)!=(i|0)){continue}break}}d=J[a+32>>2];if(!(d?!d|!K[a+36|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](d)}J[a+32>>2]=l;H[a+36|0]=1;J[a+28>>2]=j;i=J[a+24>>2]}f=J[e+68>>2];d=J[a+32>>2]+P(i,80)|0;J[d>>2]=J[e+64>>2];J[d+4>>2]=f;f=J[e+76>>2];J[d+8>>2]=J[e+72>>2];J[d+12>>2]=f;f=J[e+92>>2];J[d+24>>2]=J[e+88>>2];J[d+28>>2]=f;f=J[e+84>>2];J[d+16>>2]=J[e+80>>2];J[d+20>>2]=f;f=J[e+100>>2];J[d+32>>2]=J[e+96>>2];J[d+36>>2]=f;f=J[e+108>>2];J[d+40>>2]=J[e+104>>2];J[d+44>>2]=f;f=J[e+116>>2];J[d+48>>2]=J[e+112>>2];J[d+52>>2]=f;f=J[e+124>>2];J[d+56>>2]=J[e+120>>2];J[d+60>>2]=f;J[d+64>>2]=c;J[d+68>>2]=m;N[d+72>>2]=n;J[d+76>>2]=b;J[a+24>>2]=J[a+24>>2]+1;sa=e+128|0}function Or(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;e=sa-32|0;sa=e;J[8456]=J[8456]+1;d=ua[J[8258]](348,16)|0;if(!K[33780]){J[e+24>>2]=0;J[e+28>>2]=1;J[e+16>>2]=4096;J[e+20>>2]=4096;J[e+8>>2]=0;J[e+12>>2]=0;Lc(e+8|0);H[33780]=1}H[d+76|0]=1;J[d+72>>2]=0;J[d+68>>2]=b;b=d;J[b+28>>2]=0;J[b+32>>2]=0;J[b+24>>2]=a;H[b+20|0]=1;J[b>>2]=13068;J[b+16>>2]=0;J[b- -64>>2]=0;H[b+60|0]=0;J[b+56>>2]=1025758986;H[b+54|0]=1;I[b+52>>1]=256;J[b+48>>2]=0;H[b+44|0]=1;J[b+36>>2]=1;J[b+40>>2]=1065353216;J[b+8>>2]=0;J[b+12>>2]=0;J[b+92>>2]=1058642330;J[b+96>>2]=1065353216;J[b+88>>2]=0;J[b+80>>2]=0;J[b+84>>2]=0;J[b>>2]=24120;J[b+100>>2]=1050253722;J[b+104>>2]=1015580809;J[b+132>>2]=0;J[b+136>>2]=1045220557;J[b+124>>2]=1045220557;J[b+128>>2]=1045220557;J[b+108>>2]=0;J[b+112>>2]=10;J[b+184>>2]=0;J[b+188>>2]=1045220557;J[b+176>>2]=1120403456;J[b+180>>2]=1900671690;J[b+172>>2]=128;J[b+164>>2]=260;J[b+168>>2]=2;J[b+156>>2]=0;J[b+160>>2]=1062836634;J[b+148>>2]=-1121724662;J[b+152>>2]=1036831949;J[b+140>>2]=0;J[b+144>>2]=1;J[b+116>>2]=1101004800;J[b+120>>2]=1065353216;H[b+208|0]=1;J[b+204>>2]=0;H[b+240|0]=1;J[b+216>>2]=c;J[b+212>>2]=0;J[b+196>>2]=0;J[b+200>>2]=0;J[b+236>>2]=0;J[b+228>>2]=0;J[b+232>>2]=0;H[b+260|0]=1;I[b+290>>1]=0;J[b+256>>2]=0;J[b+264>>2]=0;J[b+268>>2]=-1054867456;J[b+248>>2]=0;J[b+252>>2]=0;J[b+272>>2]=0;J[b+276>>2]=0;J[b+280>>2]=0;J[b+284>>2]=0;H[b+308|0]=1;J[b+312>>2]=0;J[b+304>>2]=0;J[b+296>>2]=0;J[b+300>>2]=0;H[b+336|0]=1;H[b+316|0]=1;J[b+324>>2]=0;J[b+328>>2]=0;J[b+332>>2]=0;J[b+340>>2]=0;if(c){c=0}else{J[8456]=J[8456]+1;f=d,g=Kd(ua[J[8258]](236,16)|0),J[f+216>>2]=g;c=1}H[b+289|0]=c;J[8456]=J[8456]+1;b=ua[J[8258]](68,16)|0;J[b>>2]=24060;J[b+16>>2]=0;H[b+20|0]=1;J[b+8>>2]=0;J[b+12>>2]=0;J[b+36>>2]=0;H[b+40|0]=1;H[b+60|0]=1;J[b+28>>2]=0;J[b+32>>2]=0;J[b+56>>2]=0;H[b+64|0]=1;J[b+48>>2]=0;J[b+52>>2]=0;H[d+288|0]=1;J[d+220>>2]=b;J[8456]=J[8456]+1;b=ua[J[8258]](88,16)|0;c=J[d+216>>2];H[b+44|0]=1;J[b+24>>2]=a;J[b+20>>2]=0;J[b+12>>2]=0;J[b+16>>2]=0;J[b+8>>2]=c;J[b+4>>2]=0;J[b>>2]=24384;J[b+40>>2]=0;H[b- -64|0]=1;J[b+32>>2]=0;J[b+36>>2]=0;J[b+60>>2]=0;H[b+84|0]=1;J[b+52>>2]=0;J[b+56>>2]=0;J[b+80>>2]=0;J[b+72>>2]=0;J[b+76>>2]=0;J[d+212>>2]=b;J[d+344>>2]=24816;J[d>>2]=24576;J[d+56>>2]=1008981770;a=J[d+68>>2];a=ua[J[J[a>>2]+36>>2]](a)|0;ua[J[J[a>>2]+44>>2]](a,d+344|0);a=J[d+68>>2];a=ua[J[J[a>>2]+36>>2]](a)|0;b=La(4);J[b>>2]=24916;ua[J[J[a>>2]+60>>2]](a,b);sa=e+32|0;return d|0}function Ed(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{d=J[a+548>>2];b:{if((d|0)<=0){break b}e=J[a+556>>2];while(1){if(J[e+(f<<2)>>2]!=(b|0)){f=f+1|0;if((f|0)!=(d|0)){continue}break b}break}if((d|0)!=(f|0)){break a}}c:{if(J[a+552>>2]!=(d|0)){break c}i=d?d<<1:1;if((i|0)<=(d|0)){break c}d:{if(!i){e=0;break d}J[8456]=J[8456]+1;e=ua[J[8258]](i<<2,16)|0;d=J[a+548>>2]}e:{if((d|0)<=0){break e}f=0;if(d>>>0>=4){k=d&-4;while(1){c=f<<2;J[c+e>>2]=J[c+J[a+556>>2]>>2];g=c|4;J[g+e>>2]=J[g+J[a+556>>2]>>2];g=c|8;J[g+e>>2]=J[g+J[a+556>>2]>>2];c=c|12;J[c+e>>2]=J[c+J[a+556>>2]>>2];f=f+4|0;h=h+4|0;if((k|0)!=(h|0)){continue}break}}c=d&3;if(!c){break e}while(1){h=f<<2;J[h+e>>2]=J[h+J[a+556>>2]>>2];f=f+1|0;j=j+1|0;if((c|0)!=(j|0)){continue}break}}f=J[a+556>>2];if(!(!f|!K[a+560|0])){if(f){J[8457]=J[8457]+1;ua[J[8259]](f)}d=J[a+548>>2]}J[a+556>>2]=e;H[a+560|0]=1;J[a+552>>2]=i}J[J[a+556>>2]+(d<<2)>>2]=b;J[a+548>>2]=d+1;f=J[b+32>>2];b=J[b+28>>2];f:{if((b|0)==(a|0)){e=J[a+288>>2];if((e|0)!=J[a+292>>2]){break f}i=e?e<<1:1;if((i|0)<=(e|0)){break f}g:{if(!i){b=0;break g}J[8456]=J[8456]+1;b=ua[J[8258]](i<<2,16)|0;e=J[a+288>>2]}h:{if((e|0)<=0){break h}j=0;d=0;if(e>>>0>=4){k=e&-4;h=0;while(1){c=d<<2;J[c+b>>2]=J[c+J[a+296>>2]>>2];g=c|4;J[g+b>>2]=J[g+J[a+296>>2]>>2];g=c|8;J[g+b>>2]=J[g+J[a+296>>2]>>2];c=c|12;J[c+b>>2]=J[c+J[a+296>>2]>>2];d=d+4|0;h=h+4|0;if((k|0)!=(h|0)){continue}break}}c=e&3;if(!c){break h}while(1){h=d<<2;J[h+b>>2]=J[h+J[a+296>>2]>>2];d=d+1|0;j=j+1|0;if((c|0)!=(j|0)){continue}break}}d=J[a+296>>2];if(!(!d|!K[a+300|0])){if(d){J[8457]=J[8457]+1;ua[J[8259]](d)}e=J[a+288>>2]}J[a+296>>2]=b;H[a+300|0]=1;J[a+292>>2]=i;break f}e=J[f+288>>2];i:{if((e|0)!=J[f+292>>2]){break i}h=e?e<<1:1;if((h|0)<=(e|0)){break i}j:{if(!h){d=0;break j}J[8456]=J[8456]+1;d=ua[J[8258]](h<<2,16)|0;e=J[f+288>>2]}k:{if((e|0)<=0){break k}i=0;a=0;if(e>>>0>=4){k=e&-4;j=0;while(1){c=a<<2;J[c+d>>2]=J[c+J[f+296>>2]>>2];g=c|4;J[g+d>>2]=J[g+J[f+296>>2]>>2];g=c|8;J[g+d>>2]=J[g+J[f+296>>2]>>2];c=c|12;J[c+d>>2]=J[c+J[f+296>>2]>>2];a=a+4|0;j=j+4|0;if((k|0)!=(j|0)){continue}break}}j=e&3;if(!j){break k}while(1){c=a<<2;J[c+d>>2]=J[c+J[f+296>>2]>>2];a=a+1|0;i=i+1|0;if((j|0)!=(i|0)){continue}break}}a=J[f+296>>2];if(!(!a|!K[f+300|0])){if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}e=J[f+288>>2]}J[f+296>>2]=d;H[f+300|0]=1;J[f+292>>2]=h}a=f;f=b}J[J[a+296>>2]+(e<<2)>>2]=f;J[a+280>>2]=(e^-1)>>>31;J[a+288>>2]=e+1}}function Em(a,b,c,d){a=a|0;b=b|0;c=c|0;d=Q(d);var e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=0,o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=Q(0),H=Q(0),I=Q(0),L=Q(0);n=sa-16|0;sa=n;k=N[b+8>>2];f=N[c+8>>2];q=Q(Q(k*d)+f);C=N[b+4>>2];B=N[c+4>>2];D=Q(Q(C*d)+B);E=N[b>>2];e=Q(E*d);d=N[c>>2];F=Q(e+d);a:{if(K[a+232|0]){r=N[a+48>>2];i=Q(-N[a+88>>2]);s=N[a- -64>>2];h=N[a+92>>2];t=N[a+80>>2];g=N[a+96>>2];y=Q(Q(Q(r*i)-Q(s*h))-Q(t*g));e=N[a+208>>2];u=N[a+40>>2];v=N[a+56>>2];w=N[a+72>>2];z=Q(Q(Q(u*i)-Q(v*h))-Q(w*g));l=N[a+200>>2];x=N[a+44>>2];j=Q(x*i);i=N[a+60>>2];j=Q(j-Q(i*h));h=N[a+76>>2];j=Q(j-Q(h*g));g=N[a+204>>2];e=Q(Q(Q(Q(y*e)+Q(Q(z*l)+Q(j*g)))+N[a+224>>2])+Q(Q(q*Q(Q(t*e)+Q(Q(w*l)+Q(h*g))))+Q(Q(F*Q(Q(r*e)+Q(Q(u*l)+Q(x*g))))+Q(D*Q(Q(s*e)+Q(Q(v*l)+Q(i*g)))))));g=e;l=k;o=Q(Q(e-f)*k);f=N[a+176>>2];e=N[a+168>>2];k=N[a+172>>2];e=Q(Q(Q(q*Q(Q(t*f)+Q(Q(w*e)+Q(h*k))))+Q(Q(F*Q(Q(r*f)+Q(Q(u*e)+Q(x*k))))+Q(D*Q(Q(s*f)+Q(Q(v*e)+Q(i*k))))))+Q(Q(Q(y*f)+Q(Q(z*e)+Q(k*j)))+N[a+216>>2]));p=Q(Q(e-d)*E);k=q;d=N[a+192>>2];f=N[a+184>>2];q=N[a+188>>2];f=Q(Q(Q(k*Q(Q(t*d)+Q(Q(w*f)+Q(h*q))))+Q(Q(F*Q(Q(r*d)+Q(Q(u*f)+Q(x*q))))+Q(D*Q(Q(s*d)+Q(Q(v*f)+Q(i*q))))))+Q(Q(Q(y*d)+Q(Q(z*f)+Q(j*q)))+N[a+220>>2]));d=Q(o+Q(p+Q(C*Q(f-B))));N[n+8>>2]=g+Q(l*d);N[n+4>>2]=f+Q(C*d);N[n>>2]=e+Q(E*d);break a}I=N[a+224>>2];r=N[a+208>>2];s=N[a+200>>2];t=N[a+204>>2];L=N[a+216>>2];e=N[a+172>>2];u=N[a+176>>2];v=N[a+168>>2];w=N[a+112>>2];o=Q(-N[a+152>>2]);l=N[a+128>>2];p=N[a+156>>2];x=N[a+144>>2];A=N[a+160>>2];i=Q(Q(Q(w*o)-Q(l*p))-Q(x*A));h=N[a+104>>2];g=N[a+120>>2];y=N[a+136>>2];z=Q(Q(Q(h*o)-Q(g*p))-Q(y*A));j=N[a+108>>2];m=Q(j*o);o=N[a+124>>2];m=Q(m-Q(o*p));p=N[a+140>>2];A=Q(m-Q(p*A));m=N[a+192>>2];G=N[a+184>>2];H=N[a+188>>2];m=Q(Q(Q(f*Q(Q(x*m)+Q(Q(y*G)+Q(p*H))))+Q(Q(d*Q(Q(w*m)+Q(Q(h*G)+Q(j*H))))+Q(B*Q(Q(l*m)+Q(Q(g*G)+Q(o*H))))))+Q(Q(Q(i*m)+Q(Q(z*G)+Q(A*H)))+N[a+220>>2]));N[n+4>>2]=m;e=Q(Q(Q(f*Q(Q(x*u)+Q(Q(y*v)+Q(p*e))))+Q(Q(d*Q(Q(w*u)+Q(Q(h*v)+Q(j*e))))+Q(B*Q(Q(l*u)+Q(Q(g*v)+Q(o*e))))))+Q(L+Q(Q(i*u)+Q(Q(z*v)+Q(e*A)))));N[n>>2]=e;d=Q(Q(I+Q(Q(i*r)+Q(Q(z*s)+Q(A*t))))+Q(Q(f*Q(Q(x*r)+Q(Q(y*s)+Q(p*t))))+Q(Q(d*Q(Q(w*r)+Q(Q(h*s)+Q(j*t))))+Q(B*Q(Q(l*r)+Q(Q(g*s)+Q(o*t)))))));N[n+8>>2]=d;d=Q(Q(Q(q-d)*k)+Q(Q(Q(F-e)*E)+Q(C*Q(D-m))))}J[n+12>>2]=0;a=J[a+36>>2];ua[J[J[a>>2]+16>>2]](a,b,n,d);sa=n+16|0}function Vb(a,b,c,d){var e=Q(0),f=Q(0),g=Q(0),h=0,i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),w=Q(0),y=Q(0),z=Q(0),A=Q(0),D=Q(0),E=Q(0),F=Q(0);h=sa+-64|0;sa=h;p=N[b+24>>2];q=N[b+20>>2];r=N[b+40>>2];s=N[b+36>>2];j=N[a+40>>2];k=N[a+20>>2];l=N[a+36>>2];m=N[a+24>>2];t=N[b+8>>2];u=N[b>>2];w=N[b+4>>2];y=N[b+16>>2];z=N[b+32>>2];f=N[a+8>>2];g=N[a+4>>2];o=N[a+32>>2];n=N[a+16>>2];i=N[a>>2];J[h+60>>2]=0;J[h+44>>2]=0;D=Q(Q(n*l)-Q(o*k));E=Q(Q(k*j)-Q(l*m));F=Q(Q(m*o)-Q(j*n));e=Q(Q(1)/Q(Q(f*D)+Q(Q(i*E)+Q(g*F))));A=Q(Q(Q(i*k)-Q(n*g))*e);k=Q(Q(Q(g*m)-Q(k*f))*e);m=Q(Q(Q(f*n)-Q(m*i))*e);N[h+56>>2]=Q(r*A)+Q(Q(z*k)+Q(s*m));n=Q(Q(Q(g*o)-Q(l*i))*e);g=Q(Q(Q(f*l)-Q(j*g))*e);f=Q(Q(Q(i*j)-Q(o*f))*e);N[h+52>>2]=Q(r*n)+Q(Q(z*g)+Q(s*f));N[h+40>>2]=Q(A*p)+Q(Q(k*y)+Q(m*q));N[h+36>>2]=Q(n*p)+Q(Q(g*y)+Q(f*q));J[h+28>>2]=0;i=Q(D*e);j=Q(E*e);e=Q(F*e);N[h+48>>2]=Q(r*i)+Q(Q(z*j)+Q(s*e));N[h+32>>2]=Q(i*p)+Q(Q(j*y)+Q(e*q));N[h+24>>2]=Q(A*t)+Q(Q(k*u)+Q(w*m));N[h+20>>2]=Q(n*t)+Q(Q(g*u)+Q(w*f));N[h+16>>2]=Q(i*t)+Q(Q(j*u)+Q(w*e));ob(h+16|0,h);e=N[h+12>>2];i=N[h+8>>2];j=N[h>>2];k=N[h+4>>2];g=Q(Q(1)/Q(Y(Q(Q(e*e)+Q(Q(i*i)+Q(Q(j*j)+Q(k*k)))))));e=Q(e*g);e=eQ(1)?Q(1):e;b=(B(f),v(2));a=b&2147483647;a:{if(a>>>0>=1065353216){e=(b|0)>=0?Q(0):Q(3.141592502593994);if((a|0)==1065353216){break a}e=Q(Q(0)/Q(f-f));break a}b:{if(a>>>0<=1056964607){e=Q(1.570796251296997);if(a>>>0<847249409){break b}e=Q(f*f);e=Q(Q(Q(Q(7.549789415861596e-8)-Q(f*Q(Q(Q(Q(e*Q(Q(e*Q(-.008656363002955914))+Q(-.04274342209100723)))+Q(.16666586697101593))*e)/Q(Q(e*Q(-.7066296339035034))+Q(1)))))-f)+Q(1.570796251296997));break a}if((b|0)<0){e=Q(Q(f+Q(1))*Q(.5));f=Q(Y(e));e=Q(Q(1.570796251296997)-Q(f+Q(Q(f*Q(Q(Q(Q(e*Q(Q(e*Q(-.008656363002955914))+Q(-.04274342209100723)))+Q(.16666586697101593))*e)/Q(Q(e*Q(-.7066296339035034))+Q(1))))+Q(-7.549789415861596e-8))));e=Q(e+e);break a}e=Q(Q(Q(1)-f)*Q(.5));l=Q(Y(e));f=(x(2,(B(l),v(2))&-4096),C());e=Q(Q(Q(l*Q(Q(Q(Q(e*Q(Q(e*Q(-.008656363002955914))+Q(-.04274342209100723)))+Q(.16666586697101593))*e)/Q(Q(e*Q(-.7066296339035034))+Q(1))))+Q(Q(e-Q(f*f))/Q(l+f)))+f);e=Q(e+e)}}N[d>>2]=e+e;J[c+12>>2]=0;e=Q(i*g);f=Q(j*g);g=Q(k*g);i=Q(Q(e*e)+Q(Q(f*f)+Q(g*g)));c:{if(i>2]=1065353216;J[c+4>>2]=0;e=Q(0);break c}j=g;g=Q(Q(1)/Q(Y(i)));N[c+4>>2]=j*g;N[c>>2]=f*g;e=Q(e*g)}N[c+8>>2]=e;sa=h- -64|0}function Re(a,b,c){var d=0,e=0,f=0,g=Q(0),h=0,i=0,j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=0;d=sa-160|0;sa=d;f=J[a+4>>2];e=J[f+12>>2];D=N[e+52>>2];E=N[e+56>>2];g=N[e+24>>2];j=N[e+20>>2];k=N[e+40>>2];l=N[e+36>>2];F=N[e+48>>2];m=N[e+8>>2];n=N[e>>2];o=N[e+4>>2];p=N[e+16>>2];q=N[e+32>>2];e=J[J[f+4>>2]+32>>2]+P(c,80)|0;r=N[e+32>>2];s=N[e>>2];t=N[e+16>>2];u=N[e+56>>2];v=N[e+52>>2];w=N[e+48>>2];x=N[e+36>>2];y=N[e+20>>2];z=N[e+4>>2];A=N[e+40>>2];B=N[e+24>>2];C=N[e+8>>2];e=0;J[d+156>>2]=0;J[d+140>>2]=0;J[d+124>>2]=0;N[d+136>>2]=Q(A*k)+Q(Q(C*q)+Q(l*B));N[d+132>>2]=Q(x*k)+Q(Q(z*q)+Q(l*y));N[d+120>>2]=Q(A*g)+Q(Q(C*p)+Q(j*B));N[d+116>>2]=Q(x*g)+Q(Q(z*p)+Q(j*y));N[d+152>>2]=E+Q(Q(u*k)+Q(Q(w*q)+Q(l*v)));N[d+148>>2]=D+Q(Q(u*g)+Q(Q(w*p)+Q(j*v)));J[d+108>>2]=0;N[d+128>>2]=Q(r*k)+Q(Q(s*q)+Q(l*t));N[d+112>>2]=Q(r*g)+Q(Q(s*p)+Q(j*t));N[d+96>>2]=Q(r*m)+Q(Q(s*n)+Q(o*t));N[d+104>>2]=Q(A*m)+Q(Q(C*n)+Q(o*B));N[d+100>>2]=Q(x*m)+Q(Q(z*n)+Q(o*y));N[d+144>>2]=F+Q(Q(u*m)+Q(Q(w*n)+Q(o*v)));ua[J[J[b>>2]+8>>2]](b,d+96|0,d+80|0,d- -64|0);g=N[J[a+20>>2]+32>>2];N[d+80>>2]=N[d+80>>2]-g;N[d+84>>2]=N[d+84>>2]-g;N[d+88>>2]=N[d+88>>2]-g;N[d+64>>2]=g+N[d+64>>2];N[d+68>>2]=g+N[d+68>>2];N[d+72>>2]=g+N[d+72>>2];f=J[a+8>>2];h=J[f+4>>2];ua[J[J[h>>2]+8>>2]](h,J[f+12>>2],d+48|0,d+32|0);f=J[8464];a:{if(f){if(!(ua[f|0](J[J[a+8>>2]+4>>2],b)|0)){break a}}e=N[d+64>>2]>2]|N[d+80>>2]>N[d+32>>2]?e:1;f=0;if((N[d+72>>2]>2]|N[d+88>>2]>N[d+40>>2]?f:e)^1|N[d+68>>2]>2]|N[d+84>>2]>N[d+36>>2]){break a}e=J[a+4>>2];f=J[e+8>>2];J[d+28>>2]=c;J[d+24>>2]=-1;J[d+16>>2]=f;J[d+12>>2]=b;J[d+8>>2]=e;J[d+20>>2]=d+96;b:{if(N[J[a+20>>2]+32>>2]>Q(0)){b=J[a+12>>2];b=ua[J[J[b>>2]+8>>2]](b,d+8|0,J[a+8>>2],0,2)|0;break b}e=c<<2;b=J[e+J[a+24>>2]>>2];if(b){break b}b=J[a+12>>2];b=ua[J[J[b>>2]+8>>2]](b,d+8|0,J[a+8>>2],J[a+28>>2],1)|0;J[e+J[a+24>>2]>>2]=b;b=J[e+J[a+24>>2]>>2]}f=J[a+20>>2];h=J[f+8>>2];c:{if(J[h+8>>2]==J[J[a+4>>2]+8>>2]){i=f+8|0;e=2;break c}h=J[f+12>>2];i=f+12|0;e=3}G=i;i=d+8|0;J[G>>2]=i;ua[J[J[f>>2]+(e<<2)>>2]](f,-1,c);ua[J[J[b>>2]+8>>2]](b,i,J[a+8>>2],J[a+16>>2],J[a+20>>2]);b=J[a+20>>2];J[(J[J[b+8>>2]+8>>2]==J[J[a+4>>2]+8>>2]?8:12)+b>>2]=h}sa=d+160|0}function ue(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=Q(0),i=Q(0),j=Q(0),k=0,l=0,m=Q(0),n=0,o=0,p=Q(0),q=Q(0),r=0;d=sa-80|0;sa=d;e=J[a+4>>2];ua[J[J[e>>2]+16>>2]](e,d+28|0,d+24|0,d+20|0,d+16|0,d+12|0,d+8|0,d+4|0,d,b);g=J[d+12>>2]+P(J[d+8>>2],c)|0;e=J[a+4>>2];k=J[d+16>>2];l=J[d+28>>2];f=J[d>>2];a:{if(!J[d+20>>2]){if((f|0)!=3){f=P(J[g+8>>2],k)+l|0;h=N[f>>2];i=N[f+4>>2];j=N[f+8>>2];m=N[e+4>>2];p=N[e+8>>2];q=N[e+12>>2];J[d+76>>2]=0;N[d+72>>2]=j*q;N[d+68>>2]=i*p;N[d+64>>2]=h*m;f=P(J[g+4>>2],k)+l|0;h=N[f>>2];i=N[f+4>>2];j=N[f+8>>2];m=N[e+4>>2];p=N[e+8>>2];q=N[e+12>>2];J[d+60>>2]=0;N[d+56>>2]=j*q;N[d+52>>2]=i*p;N[d+48>>2]=h*m;g=P(J[g>>2],k)+l|0;h=N[g+4>>2];i=N[g+8>>2];j=N[e+8>>2];m=N[e+12>>2];N[d+32>>2]=N[g>>2]*N[e+4>>2];i=Q(i*m);h=Q(h*j);break a}f=P(L[g+4>>1],k)+l|0;h=N[f>>2];i=N[f+4>>2];j=N[f+8>>2];m=N[e+4>>2];p=N[e+8>>2];q=N[e+12>>2];J[d+76>>2]=0;N[d+72>>2]=j*q;N[d+68>>2]=i*p;N[d+64>>2]=h*m;f=P(L[g+2>>1],k)+l|0;h=N[f>>2];i=N[f+4>>2];j=N[f+8>>2];m=N[e+4>>2];p=N[e+8>>2];q=N[e+12>>2];J[d+60>>2]=0;N[d+56>>2]=j*q;N[d+52>>2]=i*p;N[d+48>>2]=h*m;g=P(L[g>>1],k)+l|0;h=N[g+4>>2];i=N[g+8>>2];j=N[e+8>>2];m=N[e+12>>2];N[d+32>>2]=N[g>>2]*N[e+4>>2];i=Q(i*m);h=Q(h*j);break a}if((f|0)!=3){f=P(J[g+8>>2],k)+l|0;n=O[f>>3];o=O[f+8>>3];r=O[f+16>>3];h=N[e+4>>2];i=N[e+8>>2];j=N[e+12>>2];J[d+76>>2]=0;N[d+72>>2]=j*Q(r);N[d+68>>2]=i*Q(o);N[d+64>>2]=h*Q(n);f=P(J[g+4>>2],k)+l|0;n=O[f>>3];o=O[f+8>>3];r=O[f+16>>3];h=N[e+4>>2];i=N[e+8>>2];j=N[e+12>>2];J[d+60>>2]=0;N[d+56>>2]=j*Q(r);N[d+52>>2]=i*Q(o);N[d+48>>2]=h*Q(n);g=P(J[g>>2],k)+l|0;n=O[g+8>>3];o=O[g+16>>3];h=N[e+8>>2];i=N[e+12>>2];N[d+32>>2]=N[e+4>>2]*Q(O[g>>3]);i=Q(i*Q(o));h=Q(h*Q(n));break a}f=P(L[g+4>>1],k)+l|0;n=O[f>>3];o=O[f+8>>3];r=O[f+16>>3];h=N[e+4>>2];i=N[e+8>>2];j=N[e+12>>2];J[d+76>>2]=0;N[d+72>>2]=j*Q(r);N[d+68>>2]=i*Q(o);N[d+64>>2]=h*Q(n);f=P(L[g+2>>1],k)+l|0;n=O[f>>3];o=O[f+8>>3];r=O[f+16>>3];h=N[e+4>>2];i=N[e+8>>2];j=N[e+12>>2];J[d+60>>2]=0;N[d+56>>2]=j*Q(r);N[d+52>>2]=i*Q(o);N[d+48>>2]=h*Q(n);g=P(L[g>>1],k)+l|0;n=O[g+8>>3];o=O[g+16>>3];h=N[e+8>>2];i=N[e+12>>2];N[d+32>>2]=N[e+4>>2]*Q(O[g>>3]);i=Q(i*Q(o));h=Q(h*Q(n))}J[d+44>>2]=0;N[d+40>>2]=i;N[d+36>>2]=h;e=J[a+8>>2];ua[J[J[e>>2]+8>>2]](e,d+32|0,b,c);a=J[a+4>>2];ua[J[J[a>>2]+24>>2]](a,b);sa=d+80|0}function Ua(a,b,c){var d=0,e=0,f=Q(0),g=Q(0),h=Q(0),i=0,j=0,k=Q(0),l=Q(0),m=Q(0),n=0,o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0);j=sa-16|0;sa=j;d=J[a+844>>2];a:{if((d|0)<=0){break a}while(1){o=N[b+48>>2];r=N[b+8>>2];s=N[b>>2];t=N[b+4>>2];p=N[b+52>>2];u=N[b+24>>2];k=N[b+16>>2];v=N[b+20>>2];f=N[b+56>>2];h=N[b+40>>2];g=N[b+32>>2];q=N[b+36>>2];i=d-1|0;e=P(i,208)+a|0;J[e- -64>>2]=0;m=f;f=N[e+12>>2];l=Q(h*f);h=N[e+4>>2];w=Q(g*h);g=N[e+8>>2];q=Q(m+Q(l+Q(w+Q(q*g))));N[e+60>>2]=q;p=Q(p+Q(Q(f*u)+Q(Q(h*k)+Q(g*v))));N[e+56>>2]=p;o=Q(o+Q(Q(f*r)+Q(Q(h*s)+Q(g*t))));N[e+52>>2]=o;r=N[c+56>>2];s=N[c+40>>2];t=N[c+32>>2];u=N[c+36>>2];k=N[c+52>>2];v=N[c+24>>2];w=N[c+16>>2];x=N[c+20>>2];f=N[c+48>>2];h=N[c+8>>2];g=N[c>>2];l=N[c+4>>2];J[e+48>>2]=0;m=f;f=N[e+28>>2];y=Q(h*f);h=N[e+20>>2];z=Q(g*h);g=N[e+24>>2];l=Q(m+Q(y+Q(z+Q(l*g))));N[e+36>>2]=l;k=Q(k+Q(Q(f*v)+Q(Q(h*w)+Q(g*x))));N[e+40>>2]=k;f=Q(r+Q(Q(f*s)+Q(Q(h*t)+Q(g*u))));N[e+44>>2]=f;N[e+84>>2]=Q(Q(q-f)*N[e+76>>2])+Q(Q(Q(o-l)*N[e+68>>2])+Q(Q(p-k)*N[e+72>>2]));J[e+168>>2]=J[e+168>>2]+1;e=d>>>0>1;d=i;if(e){continue}break}b=J[a+844>>2];if((b|0)<=0){break a}while(1){c=b;b=c-1|0;d=P(b,208)+a|0;i=d+4|0;f=N[d+84>>2];h=N[a+848>>2];b:{if(!(f<=h)){e=J[d+120>>2];c:{if(!e){break c}n=J[8753];if(!n){break c}ua[n|0](e)|0;J[d+120>>2]=0}d=J[a+844>>2];if((c|0)!=(d|0)){d=P(d,208)+a|0;Ja(i,d-204|0,208);d=d-208|0;J[d+168>>2]=0;J[d+120>>2]=0;J[d+132>>2]=0;J[d+136>>2]=0;J[d+140>>2]=0;J[d+144>>2]=0;d=J[a+844>>2]}else{d=c}d=d-1|0;J[a+844>>2]=d;i=J[8756];if(d|!i){break b}J[j+8>>2]=a;ua[i|0](j+8|0);break b}g=Q(N[d+44>>2]-Q(N[d+60>>2]-Q(f*N[d+76>>2])));m=Q(g*g);g=Q(N[d+36>>2]-Q(N[d+52>>2]-Q(N[d+68>>2]*f)));f=Q(N[d+40>>2]-Q(N[d+56>>2]-Q(f*N[d+72>>2])));if(Q(m+Q(Q(g*g)+Q(f*f)))>Q(h*h)){e=J[d+120>>2];d:{if(!e){break d}n=J[8753];if(!n){break d}ua[n|0](e)|0;J[d+120>>2]=0}d=J[a+844>>2];if((c|0)!=(d|0)){d=P(d,208)+a|0;Ja(i,d-204|0,208);d=d-208|0;J[d+168>>2]=0;J[d+120>>2]=0;J[d+132>>2]=0;J[d+136>>2]=0;J[d+140>>2]=0;J[d+144>>2]=0;d=J[a+844>>2]}else{d=c}d=d-1|0;J[a+844>>2]=d;i=J[8756];if(d|!i){break b}J[j+12>>2]=a;ua[i|0](j+12|0);break b}d=J[8754];if(!d){break b}ua[d|0](i,J[a+836>>2],J[a+840>>2])|0}if(c>>>0>1){continue}break}}sa=j+16|0}function Bo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=Q(0),g=Q(0),h=Q(0),i=0;e=sa-32|0;sa=e;N[e+16>>2]=N[b>>2];f=N[b+4>>2];N[e+20>>2]=f;g=N[b+8>>2];J[e+28>>2]=0;N[e+24>>2]=g;h=N[c>>2];J[e+12>>2]=0;N[e+8>>2]=g;N[e+4>>2]=f;N[e>>2]=h;i=e+16|0;ua[J[J[a>>2]+16>>2]](a,i,e,d);f=N[c>>2];N[e+16>>2]=f;N[e+20>>2]=N[b+4>>2];g=N[b+8>>2];J[e+28>>2]=0;N[e+24>>2]=g;N[e>>2]=f;f=N[c+4>>2];J[e+12>>2]=0;N[e+8>>2]=g;N[e+4>>2]=f;ua[J[J[a>>2]+16>>2]](a,i,e,d);N[e+16>>2]=N[c>>2];f=N[c+4>>2];N[e+20>>2]=f;g=N[b+8>>2];J[e+28>>2]=0;N[e+24>>2]=g;h=N[b>>2];J[e+12>>2]=0;N[e+8>>2]=g;N[e+4>>2]=f;N[e>>2]=h;ua[J[J[a>>2]+16>>2]](a,i,e,d);f=N[b>>2];N[e+16>>2]=f;N[e+20>>2]=N[c+4>>2];g=N[b+8>>2];J[e+28>>2]=0;N[e+24>>2]=g;N[e>>2]=f;f=N[b+4>>2];J[e+12>>2]=0;N[e+8>>2]=g;N[e+4>>2]=f;ua[J[J[a>>2]+16>>2]](a,i,e,d);g=N[b>>2];N[e+16>>2]=g;f=N[b+4>>2];N[e+20>>2]=f;h=N[b+8>>2];J[e+28>>2]=0;N[e+24>>2]=h;N[e+4>>2]=f;N[e>>2]=g;g=N[c+8>>2];J[e+12>>2]=0;N[e+8>>2]=g;ua[J[J[a>>2]+16>>2]](a,i,e,d);g=N[c>>2];N[e+16>>2]=g;f=N[b+4>>2];N[e+20>>2]=f;h=N[b+8>>2];J[e+28>>2]=0;N[e+24>>2]=h;N[e+4>>2]=f;N[e>>2]=g;g=N[c+8>>2];J[e+12>>2]=0;N[e+8>>2]=g;ua[J[J[a>>2]+16>>2]](a,i,e,d);g=N[c>>2];N[e+16>>2]=g;f=N[c+4>>2];N[e+20>>2]=f;h=N[b+8>>2];J[e+28>>2]=0;N[e+24>>2]=h;N[e+4>>2]=f;N[e>>2]=g;g=N[c+8>>2];J[e+12>>2]=0;N[e+8>>2]=g;ua[J[J[a>>2]+16>>2]](a,i,e,d);g=N[b>>2];N[e+16>>2]=g;f=N[c+4>>2];N[e+20>>2]=f;h=N[b+8>>2];J[e+28>>2]=0;N[e+24>>2]=h;N[e+4>>2]=f;N[e>>2]=g;g=N[c+8>>2];J[e+12>>2]=0;N[e+8>>2]=g;ua[J[J[a>>2]+16>>2]](a,i,e,d);N[e+16>>2]=N[b>>2];f=N[b+4>>2];N[e+20>>2]=f;g=N[c+8>>2];J[e+28>>2]=0;N[e+24>>2]=g;h=N[c>>2];J[e+12>>2]=0;N[e+8>>2]=g;N[e+4>>2]=f;N[e>>2]=h;ua[J[J[a>>2]+16>>2]](a,i,e,d);f=N[c>>2];N[e+16>>2]=f;N[e+20>>2]=N[b+4>>2];g=N[c+8>>2];J[e+28>>2]=0;N[e+24>>2]=g;N[e>>2]=f;f=N[c+4>>2];J[e+12>>2]=0;N[e+8>>2]=g;N[e+4>>2]=f;ua[J[J[a>>2]+16>>2]](a,i,e,d);N[e+16>>2]=N[c>>2];f=N[c+4>>2];N[e+20>>2]=f;g=N[c+8>>2];J[e+28>>2]=0;N[e+24>>2]=g;h=N[b>>2];J[e+12>>2]=0;N[e+8>>2]=g;N[e+4>>2]=f;N[e>>2]=h;ua[J[J[a>>2]+16>>2]](a,i,e,d);f=N[b>>2];N[e+16>>2]=f;N[e+20>>2]=N[c+4>>2];g=N[c+8>>2];J[e+28>>2]=0;N[e+24>>2]=g;N[e>>2]=f;f=N[b+4>>2];J[e+12>>2]=0;N[e+8>>2]=g;N[e+4>>2]=f;ua[J[J[a>>2]+16>>2]](a,i,e,d);sa=e+32|0}function ge(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;k=sa-48|0;sa=k;h=J[c+8>>2];if(h){p=h;while(1){if(J[p+20>>2]>J[a+100>>2]){j=J[p+12>>2];i=J[j+92>>2];l=J[j+96>>2];h=J[c+88>>2];m=J[j+88>>2];o=J[c+92>>2];j=J[c+96>>2];J[k+44>>2]=-1;j=l-j|0;J[k+40>>2]=j;i=i-o|0;J[k+36>>2]=i;l=m-h|0;J[k+32>>2]=l;m=i;q=i>>31;i=us(i,q,J[e+8>>2],J[e+12>>2]);h=ta;o=l;r=l>>31;l=us(l,r,J[e>>2],J[e+4>>2]);i=l+i|0;h=ta+h|0;h=i>>>0>>0?h+1|0:h;s=j>>31;t=us(j,s,J[e+16>>2],J[e+20>>2]);l=t+i|0;i=ta+h|0;i=l>>>0>>0?i+1|0:i;h=us(J[f+8>>2],J[f+12>>2],m,q);q=ta;o=us(J[f>>2],J[f+4>>2],o,r);m=o+h|0;h=ta+q|0;h=m>>>0>>0?h+1|0:h;u=m;m=us(J[f+16>>2],J[f+20>>2],j,s);j=u+m|0;h=ta+h|0;h=j>>>0>>0?h+1|0:h;m=h;a:{if(!!j&(h|0)>=0|(h|0)>0){J[k+24>>2]=1;o=0;h=-1;break a}if((m|0)<0){J[k+24>>2]=-1;h=j;j=0-j|0;m=0-(((h|0)!=0)+m|0)|0;o=0;h=1;break a}J[k+24>>2]=0;j=0;m=0;o=1;h=0}J[k+8>>2]=j;J[k+12>>2]=m;b:{c:{d:{m=k;if(!l&(i|0)<=0|(i|0)<0){if((i|0)>0|(i|0)>=0){break d}J[k+24>>2]=h;i=0-(((l|0)!=0)+i|0)|0;l=0-l|0}J[m+16>>2]=l;J[k+20>>2]=i;break c}J[k+16>>2]=0;J[k+20>>2]=0;if(o){break b}}if(!n){n=J[k+12>>2];J[g>>2]=J[k+8>>2];J[g+4>>2]=n;J[g+16>>2]=J[k+24>>2];n=J[k+20>>2];J[g+8>>2]=J[k+16>>2];J[g+12>>2]=n;n=p;break b}j=lb(k+8|0,g);if((j|0)<0){n=J[k+12>>2];J[g>>2]=J[k+8>>2];J[g+4>>2]=n;J[g+16>>2]=J[k+24>>2];n=J[k+20>>2];J[g+8>>2]=J[k+16>>2];J[g+12>>2]=n;n=p;break b}if(j){break b}x=n;i=J[n+4>>2];e:{f:{if(J[n>>2]==(p|0)){h=2;if((i|0)!=(p|0)){break f}j=J[p+12>>2];i=J[J[p+8>>2]+12>>2];h=J[i+96>>2];m=J[j+96>>2]-h|0;l=J[n+12>>2];o=J[i+92>>2];q=J[l+92>>2]-o|0;o=J[j+92>>2]-o|0;h=J[l+96>>2]-h|0;r=P(m,q)-P(o,h)|0;n=r;u=r>>31;r=J[d+8>>2];s=J[k+36>>2];t=J[d+4>>2];w=J[k+40>>2];v=P(r,s)-P(t,w)|0;v=us(n,u,v,v>>31);n=ta;i=J[i+88>>2];l=J[l+88>>2]-i|0;u=P(l,o);o=J[j+88>>2]-i|0;j=u-P(o,q)|0;u=j;y=j>>31;q=J[k+32>>2];i=s;s=J[d>>2];j=P(q,t)-P(i,s)|0;t=us(u,y,j,j>>31);i=t+v|0;j=ta+n|0;j=i>>>0>>0?j+1|0:j;n=i;i=P(h,o)-P(l,m)|0;h=i;m=i>>31;i=P(s,w)-P(q,r)|0;l=us(h,m,i,i>>31);i=n+l|0;j=ta+j|0;j=i>>>0>>0?j+1|0:j;h=!!i&(j|0)>=0|(j|0)>0?2:1;break e}h=(i|0)==(p|0)}}n=(h|0)!=2^b?p:x}h=J[c+8>>2]}p=J[p>>2];if((p|0)!=(h|0)){continue}break}}sa=k+48|0;return n}function Fd(a,b){var c=0,d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=0,q=0,r=Q(0),s=Q(0),t=Q(0);a:{if(K[a+204|0]&2){c=J[a+8>>2];J[a+68>>2]=J[a+4>>2];J[a+72>>2]=c;c=J[a+16>>2];J[a+76>>2]=J[a+12>>2];J[a+80>>2]=c;c=J[a+24>>2];J[a+84>>2]=J[a+20>>2];J[a+88>>2]=c;c=J[a+32>>2];J[a+92>>2]=J[a+28>>2];J[a+96>>2]=c;c=J[a+40>>2];J[a+100>>2]=J[a+36>>2];J[a+104>>2]=c;c=J[a+48>>2];J[a+108>>2]=J[a+44>>2];J[a+112>>2]=c;c=a+52|0;break a}c=J[b+4>>2];J[a+68>>2]=J[b>>2];J[a+72>>2]=c;c=J[b+12>>2];J[a+76>>2]=J[b+8>>2];J[a+80>>2]=c;c=J[b+20>>2];J[a+84>>2]=J[b+16>>2];J[a+88>>2]=c;c=J[b+28>>2];J[a+92>>2]=J[b+24>>2];J[a+96>>2]=c;c=J[b+36>>2];J[a+100>>2]=J[b+32>>2];J[a+104>>2]=c;c=J[b+44>>2];J[a+108>>2]=J[b+40>>2];J[a+112>>2]=c;c=b+48|0}p=J[c+4>>2];J[a+116>>2]=J[c>>2];J[a+120>>2]=p;p=J[c+8>>2];c=J[c+12>>2];q=J[a+400>>2];J[a+156>>2]=J[a+396>>2];J[a+160>>2]=q;q=J[a+392>>2];J[a+148>>2]=J[a+388>>2];J[a+152>>2]=q;J[a+124>>2]=p;J[a+128>>2]=c;c=J[a+376>>2];J[a+132>>2]=J[a+372>>2];J[a+136>>2]=c;c=J[a+384>>2];J[a+140>>2]=J[a+380>>2];J[a+144>>2]=c;c=J[b+12>>2];J[a+12>>2]=J[b+8>>2];J[a+16>>2]=c;c=J[b+4>>2];J[a+4>>2]=J[b>>2];J[a+8>>2]=c;c=J[b+28>>2];J[a+28>>2]=J[b+24>>2];J[a+32>>2]=c;c=J[b+20>>2];J[a+20>>2]=J[b+16>>2];J[a+24>>2]=c;c=J[b+44>>2];J[a+44>>2]=J[b+40>>2];J[a+48>>2]=c;c=J[b+36>>2];J[a+36>>2]=J[b+32>>2];J[a+40>>2]=c;c=J[b+60>>2];J[a+60>>2]=J[b+56>>2];J[a+64>>2]=c;c=J[b+52>>2];J[a+52>>2]=J[b+48>>2];J[a+56>>2]=c;j=N[a+8>>2];k=N[a+12>>2];l=N[a+28>>2];m=N[a+20>>2];n=N[a+24>>2];g=N[a+44>>2];r=N[a+464>>2];h=N[a+36>>2];i=N[a+40>>2];s=N[a+460>>2];o=N[a+4>>2];t=N[a+456>>2];J[a+368>>2]=0;J[a+352>>2]=0;J[a+336>>2]=0;d=Q(r*g);e=Q(t*h);f=Q(s*i);N[a+364>>2]=Q(g*d)+Q(Q(h*e)+Q(i*f));N[a+360>>2]=Q(l*d)+Q(Q(m*e)+Q(n*f));N[a+356>>2]=Q(k*d)+Q(Q(o*e)+Q(j*f));d=Q(r*l);e=Q(t*m);f=Q(s*n);N[a+348>>2]=Q(g*d)+Q(Q(h*e)+Q(i*f));N[a+344>>2]=Q(l*d)+Q(Q(m*e)+Q(n*f));N[a+340>>2]=Q(k*d)+Q(Q(o*e)+Q(j*f));d=g;g=Q(k*r);e=h;h=Q(o*t);f=i;i=Q(j*s);N[a+332>>2]=Q(d*g)+Q(Q(e*h)+Q(f*i));N[a+328>>2]=Q(l*g)+Q(Q(m*h)+Q(i*n));N[a+324>>2]=Q(k*g)+Q(Q(o*h)+Q(j*i))}function zn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=Q(0),i=0,j=0,k=Q(0),l=0,m=Q(0),n=0,o=0;g=sa-16|0;sa=g;J[8462]=J[8462]+1;if(J[a+4>>2]&2){d=J[b+192>>2];h=Q(ua[J[J[d>>2]+20>>2]](d,N[8265]));N[g+12>>2]=h;d=J[c+192>>2];k=Q(ua[J[J[d>>2]+20>>2]](d,N[8265]));N[g+8>>2]=k;d=h>2];m=N[c+184>>2];h=N[b+184>>2];e=J[a+72>>2];d=J[e+12>>2];a:{b:{if(d){J[e+12>>2]=J[d>>2];J[e+8>>2]=J[e+8>>2]-1;break b}d=0;if(K[a+4|0]&4){break a}J[8456]=J[8456]+1;d=ua[J[8258]](868,16)|0}J[d>>2]=1025;J[d+120>>2]=0;J[d+124>>2]=0;J[d+128>>2]=0;J[d+132>>2]=0;J[d+136>>2]=0;J[d+140>>2]=0;J[d+144>>2]=0;J[d+148>>2]=0;J[d+152>>2]=0;J[d+156>>2]=0;J[d+160>>2]=0;J[d+164>>2]=0;J[d+168>>2]=0;J[d+328>>2]=0;J[d+332>>2]=0;J[d+336>>2]=0;J[d+340>>2]=0;J[d+344>>2]=0;J[d+348>>2]=0;J[d+352>>2]=0;J[d+356>>2]=0;J[d+360>>2]=0;J[d+364>>2]=0;J[d+368>>2]=0;J[d+372>>2]=0;J[d+376>>2]=0;J[d+536>>2]=0;J[d+540>>2]=0;J[d+544>>2]=0;J[d+548>>2]=0;J[d+552>>2]=0;J[d+556>>2]=0;J[d+560>>2]=0;J[d+564>>2]=0;J[d+568>>2]=0;J[d+572>>2]=0;J[d+576>>2]=0;J[d+580>>2]=0;J[d+584>>2]=0;J[d+792>>2]=0;J[d+784>>2]=0;J[d+788>>2]=0;J[d+776>>2]=0;J[d+780>>2]=0;J[d+768>>2]=0;J[d+772>>2]=0;J[d+760>>2]=0;J[d+764>>2]=0;J[d+752>>2]=0;J[d+756>>2]=0;J[d+744>>2]=0;J[d+748>>2]=0;J[d+836>>2]=b;J[d+840>>2]=c;J[d+844>>2]=0;N[d+848>>2]=k;N[d+852>>2]=h>2];J[d+864>>2]=f;c:{if(J[a+16>>2]!=(f|0)){break c}l=f?f<<1:1;if((l|0)<=(f|0)){break c}d:{if(!l){b=0;break d}J[8456]=J[8456]+1;b=ua[J[8258]](l<<2,16)|0;f=J[a+12>>2]}e:{if((f|0)<=0){break e}c=0;if(f>>>0>=4){o=f&-4;while(1){i=c<<2;J[i+b>>2]=J[i+J[a+20>>2]>>2];e=i|4;J[e+b>>2]=J[e+J[a+20>>2]>>2];e=i|8;J[e+b>>2]=J[e+J[a+20>>2]>>2];e=i|12;J[e+b>>2]=J[e+J[a+20>>2]>>2];c=c+4|0;j=j+4|0;if((o|0)!=(j|0)){continue}break}}e=f&3;if(!e){break e}while(1){j=c<<2;J[j+b>>2]=J[j+J[a+20>>2]>>2];c=c+1|0;n=n+1|0;if((e|0)!=(n|0)){continue}break}}c=J[a+20>>2];if(!(!c|!K[a+24|0])){if(c){J[8457]=J[8457]+1;ua[J[8259]](c)}f=J[a+12>>2]}J[a+20>>2]=b;H[a+24|0]=1;J[a+16>>2]=l}J[J[a+20>>2]+(f<<2)>>2]=d;J[a+12>>2]=f+1}sa=g+16|0;return d|0}function qb(a,b,c,d,e){var f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=0,l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0);k=K[e+16|0]&-16;H[e+16|0]=k;B=N[d+8>>2];m=N[b+8>>2];r=Q(B-m);l=N[a+8>>2];f=Q(l-m);C=N[d>>2];n=N[b>>2];s=Q(C-n);i=N[a>>2];g=Q(i-n);D=N[d+4>>2];o=N[b+4>>2];t=Q(D-o);p=N[a+4>>2];h=Q(p-o);j=Q(Q(r*f)+Q(Q(s*g)+Q(t*h)));x=N[c+8>>2];u=Q(x-m);y=N[c>>2];v=Q(y-n);z=N[c+4>>2];w=Q(z-o);g=Q(Q(u*f)+Q(Q(v*g)+Q(w*h)));a:{if(!(!(g<=Q(0))|!(j<=Q(0)))){a=J[b+4>>2];J[e>>2]=J[b>>2];J[e+4>>2]=a;a=J[b+12>>2];J[e+8>>2]=J[b+8>>2];J[e+12>>2]=a;H[e+16|0]=k|1;g=Q(0);f=Q(0);h=Q(1);break a}f=Q(l-x);h=Q(i-y);q=Q(p-z);A=Q(Q(r*f)+Q(Q(s*h)+Q(t*q)));h=Q(Q(u*f)+Q(Q(v*h)+Q(w*q)));if(!(!(h>=Q(0))|!(h>=A))){a=J[c+4>>2];J[e>>2]=J[c>>2];J[e+4>>2]=a;a=J[c+12>>2];J[e+8>>2]=J[c+8>>2];J[e+12>>2]=a;H[e+16|0]=k|2;g=Q(1);f=Q(0);h=Q(0);break a}q=Q(Q(g*A)-Q(j*h));b:{if(!(h<=Q(0))|!(g>=Q(0))){break b}f=Q(0);if(!(q<=Q(0))){break b}J[e+12>>2]=0;H[e+16|0]=k|3;g=Q(g/Q(g-h));N[e+8>>2]=m+Q(u*g);N[e+4>>2]=o+Q(w*g);N[e>>2]=n+Q(v*g);h=Q(Q(1)-g);break a}f=Q(l-B);i=Q(i-C);p=Q(p-D);l=Q(Q(u*f)+Q(Q(v*i)+Q(w*p)));f=Q(Q(r*f)+Q(Q(s*i)+Q(t*p)));if(!(!(f>=Q(0))|!(f>=l))){a=J[d+4>>2];J[e>>2]=J[d>>2];J[e+4>>2]=a;a=J[d+12>>2];J[e+8>>2]=J[d+8>>2];J[e+12>>2]=a;H[e+16|0]=k|4;f=Q(1);g=Q(0);h=Q(0);break a}i=Q(Q(l*j)-Q(f*g));c:{if(!(f<=Q(0))|!(j>=Q(0))){break c}g=Q(0);if(!(i<=Q(0))){break c}J[e+12>>2]=0;H[e+16|0]=k|5;f=Q(j/Q(j-f));N[e+8>>2]=m+Q(r*f);N[e+4>>2]=o+Q(t*f);N[e>>2]=n+Q(s*f);h=Q(Q(1)-f);break a}d:{j=Q(Q(h*f)-Q(A*l));if(!(j<=Q(0))){break d}g=Q(A-h);if(!(g>=Q(0))){break d}f=Q(l-f);if(!(f>=Q(0))){break d}J[e+12>>2]=0;H[e+16|0]=k|6;f=Q(g/Q(g+f));N[e+8>>2]=x+Q(Q(B-x)*f);N[e+4>>2]=z+Q(Q(D-z)*f);N[e>>2]=y+Q(Q(C-y)*f);g=Q(Q(1)-f);h=Q(0);break a}J[e+12>>2]=0;H[e+16|0]=k|7;g=Q(Q(1)/Q(q+Q(j+i)));f=Q(q*g);g=Q(i*g);N[e+8>>2]=Q(r*f)+Q(m+Q(u*g));N[e+4>>2]=Q(t*f)+Q(o+Q(w*g));N[e>>2]=Q(s*f)+Q(n+Q(v*g));h=Q(Q(Q(1)-g)-f)}N[e+20>>2]=h;J[e+32>>2]=0;N[e+28>>2]=f;N[e+24>>2]=g}function ji(a){a=a|0;var b=0,c=Q(0),d=0,e=0,f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=0,n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=0,t=0,u=Q(0),v=0,w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=Q(0),H=Q(0),I=Q(0),K=Q(0),L=Q(0),M=Q(0),O=Q(0),R=Q(0),S=Q(0),T=Q(0),U=Q(0),V=0;J[a+36>>2]=0;m=sa-16|0;b=m+8|0;J[b>>2]=0;J[b+4>>2]=0;J[m>>2]=0;J[m+4>>2]=0;d=J[a+32>>2];e=J[a+28>>2];while(1){v=(s<<2)+m|0;J[v>>2]=1065353216;T=N[d+404>>2];U=N[e+404>>2];l=N[e+56>>2];n=N[e+20>>2];w=N[e+24>>2];x=N[e+28>>2];y=N[e+60>>2];z=N[e+44>>2];A=N[e+36>>2];B=N[e+40>>2];r=N[e+52>>2];j=N[a+308>>2];C=N[e+12>>2];f=N[a+300>>2];D=N[e+4>>2];o=N[a+304>>2];E=N[e+8>>2];g=N[d+56>>2];F=N[d+20>>2];p=N[d+24>>2];q=N[d+28>>2];h=N[d+52>>2];G=N[d+12>>2];H=N[d+4>>2];I=N[d+8>>2];K=N[d+60>>2];i=N[a+324>>2];L=N[d+44>>2];k=N[a+316>>2];M=N[d+36>>2];c=N[a+320>>2];O=N[d+40>>2];V=J[m+4>>2];b=P(s,84)+a|0;t=b+48|0;J[t>>2]=J[m>>2];J[t+4>>2]=V;t=J[m+12>>2];J[b+56>>2]=J[m+8>>2];J[b+60>>2]=t;J[b+92>>2]=0;J[b+76>>2]=0;R=Q(Q(g+Q(Q(i*q)+Q(Q(k*F)+Q(p*c))))-g);g=N[b+48>>2];S=Q(Q(h+Q(Q(i*G)+Q(Q(k*H)+Q(I*c))))-h);h=N[b+52>>2];u=Q(Q(R*g)-Q(S*h));c=Q(Q(K+Q(Q(i*L)+Q(Q(k*M)+Q(O*c))))-K);i=N[b+56>>2];k=Q(Q(c*h)-Q(R*i));c=Q(Q(S*i)-Q(c*g));q=Q(Q(L*u)+Q(Q(G*k)+Q(q*c)));N[b+88>>2]=q;p=Q(Q(O*u)+Q(Q(I*k)+Q(p*c)));N[b+84>>2]=p;k=Q(Q(M*u)+Q(Q(H*k)+Q(F*c)));N[b+80>>2]=k;r=Q(Q(r+Q(Q(j*C)+Q(Q(f*D)+Q(E*o))))-r);l=Q(Q(l+Q(Q(j*x)+Q(Q(f*n)+Q(w*o))))-l);c=Q(Q(h*r)-Q(g*l));f=Q(Q(y+Q(Q(j*z)+Q(Q(f*A)+Q(B*o))))-y);j=Q(Q(l*i)-Q(h*f));f=Q(Q(f*g)-Q(i*r));o=Q(Q(z*c)+Q(Q(C*j)+Q(x*f)));N[b+72>>2]=o;i=Q(Q(B*c)+Q(Q(E*j)+Q(w*f)));N[b+68>>2]=i;j=Q(Q(A*c)+Q(Q(D*j)+Q(n*f)));N[b- -64>>2]=j;f=N[e+464>>2];c=N[e+460>>2];g=N[e+456>>2];J[b+108>>2]=0;g=Q(j*g);N[b+96>>2]=g;c=Q(i*c);N[b+100>>2]=c;f=Q(o*f);N[b+104>>2]=f;h=N[d+464>>2];l=N[d+460>>2];n=N[d+456>>2];J[b+124>>2]=0;n=Q(k*n);N[b+112>>2]=n;l=Q(p*l);N[b+116>>2]=l;h=Q(q*h);N[b+120>>2]=h;N[b+128>>2]=Q(T+Q(U+Q(Q(f*o)+Q(Q(g*j)+Q(i*c)))))+Q(Q(h*q)+Q(Q(n*k)+Q(p*l)));J[v>>2]=0;s=s+1|0;if((s|0)!=3){continue}break}}function hl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;N[b+16>>2]=N[a+20>>2];N[b+20>>2]=N[a+24>>2];N[b+24>>2]=N[a+28>>2];N[b+28>>2]=N[a+32>>2];N[b>>2]=N[a+4>>2];N[b+4>>2]=N[a+8>>2];N[b+8>>2]=N[a+12>>2];N[b+12>>2]=N[a+16>>2];N[b+32>>2]=N[a+36>>2];N[b+36>>2]=N[a+40>>2];N[b+40>>2]=N[a+44>>2];N[b+44>>2]=N[a+48>>2];J[b+48>>2]=J[a+56>>2];J[b+52>>2]=K[a+60|0];d=J[a+88>>2];J[b+56>>2]=d;a:{if(!d){J[b+64>>2]=0;break a}d=ua[J[J[c>>2]+28>>2]](c,J[a+96>>2])|0;J[b+64>>2]=d;if(!d){break a}g=J[a+88>>2];h=ua[J[J[c>>2]+16>>2]](c,48,g)|0;if((g|0)>0){d=J[h+8>>2];while(1){e=J[a+96>>2]+(f<<6)|0;N[d+16>>2]=N[e+16>>2];N[d+20>>2]=N[e+20>>2];N[d+24>>2]=N[e+24>>2];N[d+28>>2]=N[e+28>>2];N[d>>2]=N[e>>2];N[d+4>>2]=N[e+4>>2];N[d+8>>2]=N[e+8>>2];N[d+12>>2]=N[e+12>>2];J[d+32>>2]=J[e+32>>2];J[d+36>>2]=J[e+36>>2];e=J[e+40>>2];J[d+44>>2]=0;J[d+40>>2]=e;d=d+48|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}ua[J[J[c>>2]+20>>2]](c,h,9036,1497453121,J[a+96>>2])}d=J[a+128>>2];J[b+60>>2]=d;b:{if(!d){J[b+68>>2]=0;break b}d=ua[J[J[c>>2]+28>>2]](c,J[a+136>>2])|0;J[b+68>>2]=d;if(!d){break b}f=0;h=J[a+128>>2];i=ua[J[J[c>>2]+16>>2]](c,16,h)|0;c:{if((h|0)<=0){g=J[a+136>>2];break c}g=J[a+136>>2];d=J[i+8>>2];while(1){e=(f<<4)+g|0;J[d+12>>2]=J[e+12>>2];I[d+6>>1]=L[e+6>>1];I[d+8>>1]=L[e+8>>1];I[d+10>>1]=L[e+10>>1];I[d>>1]=L[e>>1];I[d+2>>1]=L[e+2>>1];I[d+4>>1]=L[e+4>>1];d=d+16|0;f=f+1|0;if((h|0)!=(f|0)){continue}break}}ua[J[J[c>>2]+20>>2]](c,i,9013,1497453121,g)}J[b+76>>2]=J[a+144>>2];d=J[a+152>>2];J[b+80>>2]=d;if(!d){J[b+72>>2]=0;return 8705}d=b;b=ua[J[J[c>>2]+28>>2]](c,J[a+160>>2])|0;J[d+72>>2]=b;if(b){f=0;e=J[a+152>>2];g=ua[J[J[c>>2]+16>>2]](c,20,e)|0;d:{if((e|0)<=0){a=J[a+160>>2];break d}a=J[a+160>>2];d=J[g+8>>2];while(1){b=(f<<5)+a|0;I[d+14>>1]=L[b+6>>1];I[d+16>>1]=L[b+8>>1];I[d+18>>1]=L[b+10>>1];I[d+8>>1]=L[b>>1];I[d+10>>1]=L[b+2>>1];I[d+12>>1]=L[b+4>>1];J[d>>2]=J[b+12>>2];J[d+4>>2]=J[b+16>>2];d=d+20|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}ua[J[J[c>>2]+20>>2]](c,g,8773,1497453121,a)}return 8705}function Dk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0);c=sa-144|0;sa=c;if(J[a+24>>2]>0){f=c- -64|0;while(1){g=P(h,80);d=g+J[a+32>>2]|0;e=J[d+12>>2];J[c+24>>2]=J[d+8>>2];J[c+28>>2]=e;e=J[d+4>>2];J[c+16>>2]=J[d>>2];J[c+20>>2]=e;e=J[d+28>>2];J[c+40>>2]=J[d+24>>2];J[c+44>>2]=e;e=J[d+20>>2];J[c+32>>2]=J[d+16>>2];J[c+36>>2]=e;e=J[d+44>>2];J[c+56>>2]=J[d+40>>2];J[c+60>>2]=e;e=J[d+36>>2];J[c+48>>2]=J[d+32>>2];J[c+52>>2]=e;e=J[d+60>>2];J[f+8>>2]=J[d+56>>2];J[f+12>>2]=e;e=J[d+52>>2];J[f>>2]=J[d+48>>2];J[f+4>>2]=e;d=J[d+64>>2];d=ua[J[J[d>>2]+28>>2]](d)|0;e=J[d+12>>2];J[c+8>>2]=J[d+8>>2];J[c+12>>2]=e;e=J[d+4>>2];J[c>>2]=J[d>>2];J[c+4>>2]=e;i=N[a+88>>2];j=N[b+4>>2];k=N[a+84>>2];l=N[b>>2];N[c+8>>2]=Q(N[c+8>>2]*N[b+8>>2])/N[a+92>>2];J[c+12>>2]=0;N[c>>2]=Q(l*N[c>>2])/k;N[c+4>>2]=Q(j*N[c+4>>2])/i;d=J[(J[a+32>>2]+g|0)+64>>2];ua[J[J[d>>2]+24>>2]](d,c);i=N[a+84>>2];j=N[b>>2];k=N[a+88>>2];l=N[b+4>>2];m=N[a+92>>2];n=N[b+8>>2];J[c+76>>2]=0;N[c+72>>2]=Q(n*N[c+72>>2])/m;N[c+68>>2]=Q(l*N[c+68>>2])/k;N[c+64>>2]=Q(j*N[c+64>>2])/i;e=J[c+20>>2];d=J[a+32>>2]+g|0;J[d>>2]=J[c+16>>2];J[d+4>>2]=e;e=J[c+28>>2];J[d+8>>2]=J[c+24>>2];J[d+12>>2]=e;e=J[c+44>>2];J[d+24>>2]=J[c+40>>2];J[d+28>>2]=e;e=J[c+36>>2];J[d+16>>2]=J[c+32>>2];J[d+20>>2]=e;e=J[c+60>>2];J[d+40>>2]=J[c+56>>2];J[d+44>>2]=e;e=J[c+52>>2];J[d+32>>2]=J[c+48>>2];J[d+36>>2]=e;e=J[f+12>>2];J[d+56>>2]=J[f+8>>2];J[d+60>>2]=e;e=J[f+4>>2];J[d+48>>2]=J[f>>2];J[d+52>>2]=e;if(J[a+72>>2]){d=J[(J[a+32>>2]+g|0)+64>>2];ua[J[J[d>>2]+8>>2]](d,c+16|0,c+128|0,c+112|0);d=J[c+140>>2];J[c+88>>2]=J[c+136>>2];J[c+92>>2]=d;d=J[c+132>>2];J[c+80>>2]=J[c+128>>2];J[c+84>>2]=d;d=J[c+124>>2];J[c+104>>2]=J[c+120>>2];J[c+108>>2]=d;d=J[c+116>>2];J[c+96>>2]=J[c+112>>2];J[c+100>>2]=d;_c(J[a+72>>2],J[(J[a+32>>2]+g|0)+76>>2],c+80|0)}h=h+1|0;if((h|0)>2]){continue}break}}d=J[b+4>>2];J[a+84>>2]=J[b>>2];J[a+88>>2]=d;d=J[b+12>>2];J[a+92>>2]=J[b+8>>2];J[a+96>>2]=d;ua[J[J[a>>2]+68>>2]](a);sa=c+144|0}function Fo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0);e=sa-32|0;sa=e;i=N[b>>2];f=N[c>>2];j=N[b+4>>2];g=N[c+4>>2];k=N[b+8>>2];h=N[c+8>>2];J[e+28>>2]=0;J[e+12>>2]=0;l=Q(Q(h+k)*Q(.5));h=Q(Q(h-k)*Q(.5));k=Q(l+h);N[e+24>>2]=k;m=Q(Q(g+j)*Q(.5));g=Q(Q(g-j)*Q(.5));j=Q(m+g);N[e+20>>2]=j;n=Q(Q(f+i)*Q(.5));f=Q(Q(f-i)*Q(.5));i=Q(n+f);N[e+16>>2]=i;N[e+8>>2]=k;N[e+4>>2]=j;f=Q(n-f);N[e>>2]=f;b=e+16|0;ua[J[J[a>>2]+16>>2]](a,b,e,d);N[e+24>>2]=k;N[e+20>>2]=j;N[e+16>>2]=f;J[e+28>>2]=0;J[e+12>>2]=0;N[e+8>>2]=k;g=Q(m-g);N[e+4>>2]=g;N[e>>2]=f;ua[J[J[a>>2]+16>>2]](a,b,e,d);N[e+24>>2]=k;N[e+20>>2]=g;N[e+16>>2]=f;J[e+28>>2]=0;J[e+12>>2]=0;h=Q(l-h);N[e+8>>2]=h;N[e+4>>2]=g;N[e>>2]=f;ua[J[J[a>>2]+16>>2]](a,b,e,d);N[e+24>>2]=h;N[e+20>>2]=g;N[e+16>>2]=i;J[e+28>>2]=0;J[e+12>>2]=0;N[e+8>>2]=h;N[e+4>>2]=g;N[e>>2]=f;ua[J[J[a>>2]+16>>2]](a,b,e,d);N[e+24>>2]=h;N[e+20>>2]=g;N[e+16>>2]=f;J[e+28>>2]=0;J[e+12>>2]=0;N[e+8>>2]=h;N[e+4>>2]=j;N[e>>2]=f;ua[J[J[a>>2]+16>>2]](a,b,e,d);N[e+24>>2]=h;N[e+20>>2]=j;N[e+16>>2]=f;J[e+28>>2]=0;J[e+12>>2]=0;N[e+8>>2]=k;N[e+4>>2]=j;N[e>>2]=f;ua[J[J[a>>2]+16>>2]](a,b,e,d);N[e+24>>2]=h;N[e+20>>2]=j;N[e+16>>2]=f;J[e+28>>2]=0;J[e+12>>2]=0;N[e+8>>2]=h;N[e+4>>2]=j;N[e>>2]=i;ua[J[J[a>>2]+16>>2]](a,b,e,d);N[e+24>>2]=h;N[e+20>>2]=j;N[e+16>>2]=i;J[e+28>>2]=0;J[e+12>>2]=0;N[e+8>>2]=h;N[e+4>>2]=g;N[e>>2]=i;ua[J[J[a>>2]+16>>2]](a,b,e,d);N[e+24>>2]=h;N[e+20>>2]=g;N[e+16>>2]=i;J[e+28>>2]=0;J[e+12>>2]=0;N[e+8>>2]=k;N[e+4>>2]=g;N[e>>2]=i;ua[J[J[a>>2]+16>>2]](a,b,e,d);N[e+24>>2]=k;N[e+20>>2]=g;N[e+16>>2]=f;J[e+28>>2]=0;J[e+12>>2]=0;N[e+8>>2]=k;N[e+4>>2]=g;N[e>>2]=i;ua[J[J[a>>2]+16>>2]](a,b,e,d);N[e+24>>2]=k;N[e+20>>2]=g;N[e+16>>2]=i;J[e+28>>2]=0;J[e+12>>2]=0;N[e+8>>2]=k;N[e+4>>2]=j;N[e>>2]=i;ua[J[J[a>>2]+16>>2]](a,b,e,d);N[e+24>>2]=k;N[e+20>>2]=j;N[e+16>>2]=i;J[e+28>>2]=0;J[e+12>>2]=0;N[e+8>>2]=h;N[e+4>>2]=j;N[e>>2]=i;ua[J[J[a>>2]+16>>2]](a,b,e,d);sa=e+32|0}function ym(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=Q(0),h=0,i=0,j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=0,t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=Q(0),H=0,I=Q(0);H=sa-16|0;sa=H;ua[J[8262]](5934);f=K[a+76|0];s=f?b:c;h=J[s+4>>2];a:{if(J[h+4>>2]-21>>>0>8){break a}i=f?c:b;if(J[J[i+4>>2]+4>>2]>19){break a}I=Q(ua[J[J[h>>2]+48>>2]](h));J[e+4>>2]=J[a+72>>2];c=sa+-64|0;sa=c;b=a+8|0;N[b+56>>2]=I;J[b+52>>2]=d;J[b+40>>2]=s;J[b+36>>2]=i;J[b+44>>2]=e;d=J[s+12>>2];t=N[d+52>>2];u=N[d+56>>2];f=J[i+12>>2];v=N[f+52>>2];w=N[f+56>>2];g=N[d+20>>2];j=N[d+36>>2];x=N[f+20>>2];y=N[f+36>>2];z=N[f+24>>2];k=N[d+24>>2];A=N[f+40>>2];l=N[d+40>>2];B=N[f+32>>2];m=N[d+32>>2];C=N[f>>2];n=N[d>>2];D=N[f+16>>2];o=N[d+16>>2];p=N[d+48>>2];E=N[f+48>>2];q=N[d+4>>2];F=N[f+4>>2];G=N[f+8>>2];r=N[d+8>>2];J[c+60>>2]=0;J[c+44>>2]=0;J[c+28>>2]=0;N[c+40>>2]=Q(A*l)+Q(Q(G*r)+Q(k*z));N[c+36>>2]=Q(y*l)+Q(Q(F*r)+Q(k*x));N[c+24>>2]=Q(A*j)+Q(Q(G*q)+Q(g*z));N[c+20>>2]=Q(y*j)+Q(Q(F*q)+Q(g*x));p=Q(-p);N[c+56>>2]=Q(Q(Q(r*p)-Q(k*t))-Q(l*u))+Q(Q(w*l)+Q(Q(E*r)+Q(k*v)));N[c+52>>2]=Q(Q(Q(q*p)-Q(g*t))-Q(j*u))+Q(Q(w*j)+Q(Q(E*q)+Q(g*v)));J[c+12>>2]=0;N[c>>2]=Q(B*m)+Q(Q(C*n)+Q(o*D));N[c+32>>2]=Q(B*l)+Q(Q(C*r)+Q(k*D));N[c+16>>2]=Q(B*j)+Q(Q(C*q)+Q(g*D));N[c+8>>2]=Q(A*m)+Q(Q(G*n)+Q(o*z));N[c+4>>2]=Q(y*m)+Q(Q(F*n)+Q(o*x));N[c+48>>2]=Q(Q(Q(n*p)-Q(o*t))-Q(m*u))+Q(Q(w*m)+Q(Q(E*n)+Q(o*v)));d=J[i+4>>2];ua[J[J[d>>2]+8>>2]](d,c,b+4|0,b+20|0);g=Q(N[e+32>>2]+I);N[b+20>>2]=g+N[b+20>>2];N[b+24>>2]=g+N[b+24>>2];N[b+28>>2]=g+N[b+28>>2];N[b+4>>2]=N[b+4>>2]-g;N[b+8>>2]=N[b+8>>2]-g;N[b+12>>2]=N[b+12>>2]-g;sa=c- -64|0;c=J[i+8>>2];d=J[a+72>>2];J[d+840>>2]=J[s+8>>2];J[d+836>>2]=c;ua[J[J[h>>2]+64>>2]](h,b,a+12|0,a+28|0);b=J[e+4>>2];if(J[b+844>>2]){d=J[b+836>>2];f=J[J[e+8>>2]+8>>2];c=(d|0)==(f|0);h=b;b=J[J[e+12>>2]+8>>2];Ua(h,(c?d:b)+4|0,(c?b:f)+4|0)}J[a+44>>2]=0;J[a+48>>2]=0}ua[J[8263]]();sa=H+16|0}function Hk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=sa-80|0;sa=f;J[a+76>>2]=J[a+76>>2]+1;d=J[a+24>>2];if((d|0)>0){g=f- -64|0;h=f+48|0;i=f+32|0;j=f+16|0;l=d;while(1){k=J[a+32>>2];m=l-1|0;n=P(m,80);c=k+n|0;if(J[c+64>>2]==(b|0)){J[a+76>>2]=J[a+76>>2]+1;e=J[a+72>>2];if(e){_b(e,J[c+76>>2]);k=J[a+32>>2];d=J[a+24>>2]}c=k+n|0;e=c+8|0;o=J[e+4>>2];J[f+8>>2]=J[e>>2];J[f+12>>2]=o;e=J[c+4>>2];J[f>>2]=J[c>>2];J[f+4>>2]=e;e=J[c+28>>2];J[j+8>>2]=J[c+24>>2];J[j+12>>2]=e;e=J[c+20>>2];J[j>>2]=J[c+16>>2];J[j+4>>2]=e;e=J[c+44>>2];J[i+8>>2]=J[c+40>>2];J[i+12>>2]=e;e=J[c+36>>2];J[i>>2]=J[c+32>>2];J[i+4>>2]=e;e=J[c+60>>2];J[h+8>>2]=J[c+56>>2];J[h+12>>2]=e;e=J[c+52>>2];J[h>>2]=J[c+48>>2];J[h+4>>2]=e;e=J[c+76>>2];J[g+8>>2]=J[c+72>>2];J[g+12>>2]=e;e=J[c+68>>2];J[g>>2]=J[c+64>>2];J[g+4>>2]=e;e=k;k=P(d,80)-80|0;d=e+k|0;e=J[d+4>>2];J[c>>2]=J[d>>2];J[c+4>>2]=e;e=J[d+12>>2];J[c+8>>2]=J[d+8>>2];J[c+12>>2]=e;e=J[d+20>>2];J[c+16>>2]=J[d+16>>2];J[c+20>>2]=e;e=J[d+28>>2];J[c+24>>2]=J[d+24>>2];J[c+28>>2]=e;e=J[d+36>>2];J[c+32>>2]=J[d+32>>2];J[c+36>>2]=e;e=J[d+44>>2];J[c+40>>2]=J[d+40>>2];J[c+44>>2]=e;e=J[d+60>>2];J[c+56>>2]=J[d+56>>2];J[c+60>>2]=e;e=J[d+52>>2];J[c+48>>2]=J[d+48>>2];J[c+52>>2]=e;e=J[d+68>>2];J[c+64>>2]=J[d+64>>2];J[c+68>>2]=e;e=J[d+76>>2];J[c+72>>2]=J[d+72>>2];J[c+76>>2]=e;d=J[f+4>>2];c=k+J[a+32>>2]|0;J[c>>2]=J[f>>2];J[c+4>>2]=d;d=J[f+12>>2];J[c+8>>2]=J[f+8>>2];J[c+12>>2]=d;d=J[j+4>>2];J[c+16>>2]=J[j>>2];J[c+20>>2]=d;d=J[j+12>>2];J[c+24>>2]=J[j+8>>2];J[c+28>>2]=d;d=J[i+12>>2];J[c+40>>2]=J[i+8>>2];J[c+44>>2]=d;d=J[i+4>>2];J[c+32>>2]=J[i>>2];J[c+36>>2]=d;d=J[h+4>>2];J[c+48>>2]=J[h>>2];J[c+52>>2]=d;d=J[h+12>>2];J[c+56>>2]=J[h+8>>2];J[c+60>>2]=d;d=J[g+4>>2];J[c+64>>2]=J[g>>2];J[c+68>>2]=d;d=J[g+12>>2];J[c+72>>2]=J[g+8>>2];J[c+76>>2]=d;if(J[a+72>>2]){J[J[(J[a+32>>2]+n|0)+76>>2]+36>>2]=m}d=J[a+24>>2]-1|0;J[a+24>>2]=d}c=l>>>0>1;l=m;if(c){continue}break}}ua[J[J[a>>2]+68>>2]](a);sa=f+80|0}function ze(a,b,c,d,e,f){var g=0,h=0,i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=0,r=Q(0),s=Q(0),t=0,u=Q(0),v=Q(0),w=Q(0),x=0,y=0,z=Q(0),A=Q(0),B=Q(0),C=0,D=0,E=0,F=0,G=0,H=0;g=sa-32|0;sa=g;if(J[a+56>>2]>0){n=N[d+8>>2];o=N[c+8>>2];j=Q(n-o);p=N[d>>2];l=N[c>>2];k=Q(p-l);m=N[d+4>>2];i=N[c+4>>2];r=Q(m-i);s=Q(Q(1)/Q(Y(Q(Q(j*j)+Q(Q(k*k)+Q(r*r))))));u=Q(j*s);v=Q(u*j);j=Q(k*s);w=Q(j*k);k=Q(r*s);r=Q(v+Q(w+Q(r*k)));s=Q((n>o?n:o)+N[f+8>>2]);v=Q((i>2]);w=Q((l>2]);z=Q((n>2]);A=Q((i>m?m:i)+N[e+4>>2]);B=Q((l>p?p:l)+N[e>>2]);d=J[a+96>>2];n=u==Q(0)?Q(0xde0b6b000000000):Q(Q(1)/u);h=n>2];J[g>>2]=J[d>>2];J[g+4>>2]=h;h=J[d+12>>2];J[g+8>>2]=J[d+8>>2];J[g+12>>2]=h;h=J[d+28>>2];J[g+24>>2]=J[d+24>>2];J[g+28>>2]=h;h=J[d+20>>2];J[g+16>>2]=J[d+16>>2];J[g+20>>2]=h;N[g>>2]=N[g>>2]-N[f>>2];N[g+4>>2]=N[g+4>>2]-N[f+4>>2];N[g+8>>2]=N[g+8>>2]-N[f+8>>2];N[g+16>>2]=N[g+16>>2]-N[e>>2];N[g+20>>2]=N[g+20>>2]-N[e+4>>2];N[g+24>>2]=N[g+24>>2]-N[e+8>>2];h=0;a:{if(N[d+16>>2]>2]>w){break a}h=1}q=0;b:{c:{d:{e:{f:{if((N[d+24>>2]>2]?q:h)^1|N[d+4>>2]>v|N[d+20>>2]>2];l=Q(p*Q(N[G>>2]-j));i=N[c+4>>2];m=Q(o*Q(N[F>>2]-i));if(l>m){break f}i=Q(o*Q(N[D>>2]-i));j=Q(p*Q(N[H>>2]-j));if(i>j){break f}l=i>l?i:l;k=N[c+8>>2];i=Q(n*Q(N[E>>2]-k));if(l>i){break f}k=Q(n*Q(N[C>>2]-k));m=j>m?m:j;if(k>m){break f}y=J[d+32>>2];q=(y|0)==-1;h=r>(k>l?k:l)&(iQ(0);if(!h|(y|0)!=-1){break e}ua[J[J[b>>2]+8>>2]](b,J[d+36>>2],J[d+40>>2]);break d}q=J[d+32>>2]==-1;h=0}if(q){break d}if(!h){break c}}t=t+1|0;d=d- -64|0;break b}h=J[d+32>>2];t=h+t|0;d=(h<<6)+d|0}x=x+1|0;if(J[a+56>>2]>(t|0)){continue}break}}if(J[8470]<(x|0)){J[8470]=x}sa=g+32|0}function ks(){var a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;J[8456]=J[8456]+1;b=ua[J[8258]](172,16)|0;J[b+4>>2]=1065353216;J[b+8>>2]=1065353216;J[b+48>>2]=0;H[b+36|0]=1;J[b+12>>2]=1065353216;J[b+16>>2]=0;J[b+32>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;H[b+100|0]=1;J[b>>2]=22040;J[b+96>>2]=0;H[b+120|0]=1;J[b+88>>2]=0;J[b+92>>2]=0;J[b+116>>2]=0;H[b+140|0]=1;J[b+108>>2]=0;J[b+112>>2]=0;J[b+136>>2]=0;H[b+160|0]=1;J[b+128>>2]=0;J[b+132>>2]=0;J[b+168>>2]=0;H[b+164|0]=1;J[b+148>>2]=0;J[b+152>>2]=0;J[b+156>>2]=0;H[b+165|0]=1;J[8456]=J[8456]+1;f=ua[J[8258]](32,16)|0;h=J[b+24>>2];a:{if((h|0)<=0){break a}if((h|0)!=1){j=h&-2;while(1){e=d<<5;c=f+e|0;a=J[b+32>>2]+e|0;g=J[a+4>>2];J[c>>2]=J[a>>2];J[c+4>>2]=g;g=J[a+28>>2];J[c+24>>2]=J[a+24>>2];J[c+28>>2]=g;g=J[a+20>>2];J[c+16>>2]=J[a+16>>2];J[c+20>>2]=g;g=J[a+12>>2];J[c+8>>2]=J[a+8>>2];J[c+12>>2]=g;a=e|32;c=a+f|0;a=a+J[b+32>>2]|0;e=J[a+4>>2];J[c>>2]=J[a>>2];J[c+4>>2]=e;e=J[a+12>>2];J[c+8>>2]=J[a+8>>2];J[c+12>>2]=e;e=J[a+20>>2];J[c+16>>2]=J[a+16>>2];J[c+20>>2]=e;e=J[a+28>>2];J[c+24>>2]=J[a+24>>2];J[c+28>>2]=e;d=d+2|0;i=i+2|0;if((i|0)!=(j|0)){continue}break}}if(!(h&1)){break a}a=d<<5;d=a+f|0;a=a+J[b+32>>2]|0;c=J[a+4>>2];J[d>>2]=J[a>>2];J[d+4>>2]=c;c=J[a+28>>2];J[d+24>>2]=J[a+24>>2];J[d+28>>2]=c;c=J[a+20>>2];J[d+16>>2]=J[a+16>>2];J[d+20>>2]=c;c=J[a+12>>2];J[d+8>>2]=J[a+8>>2];J[d+12>>2]=c}a=J[b+32>>2];if(!(a?!a|!K[b+36|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](a)}J[b+32>>2]=f;H[b+36|0]=1;J[b+28>>2]=1;a=f+(J[b+24>>2]<<5)|0;J[a+24>>2]=2;J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=16;J[a+8>>2]=12;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0;J[b+24>>2]=J[b+24>>2]+1;c=K[b+164|0];f=J[(c?b+128|0:b+148|0)>>2];a=J[b+32>>2];J[a+24>>2]=c?2:3;J[a+4>>2]=0;d=12;J[a+8>>2]=c?12:6;J[a>>2]=(f|0)/3;b:{if(K[b+165|0]){d=16;c=J[b+88>>2];break b}c=J[b+108>>2]/3|0}J[a+20>>2]=d;J[a+16>>2]=0;J[a+12>>2]=c;return b|0}function $a(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=0,o=0,p=0,q=0,r=Q(0),s=Q(0);c=sa+-64|0;sa=c;b=J[a+8>>2];g=J[a+4>>2];d=c+48|0;e=c+32|0;ua[J[J[b>>2]+8>>2]](b,g+4|0,d,e);b=J[a+12>>2];f=J[b+68>>2];ua[J[J[f>>2]+16>>2]](f,J[J[a+4>>2]+188>>2],d,e,J[b+24>>2]);d=J[a+12>>2];b=J[d+24>>2];ua[J[J[b>>2]+32>>2]](b,J[J[a+4>>2]+344>>2],d+28|0,b);J[c+24>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;H[c+28|0]=1;b=J[J[a+4>>2]+344>>2];a:{if((ua[J[J[b>>2]+36>>2]](b)|0)<=0){break a}while(1){d=J[c+16>>2];b:{if((d|0)>=0){break b}if(J[c+20>>2]<0){b=J[c+24>>2];if(!(b?!b|!K[c+28|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}H[c+28|0]=1;J[c+20>>2]=0;J[c+24>>2]=0}e=0;b=d;f=0-b&3;if(f){while(1){J[J[c+24>>2]+(b<<2)>>2]=0;b=b+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}if(d>>>0>4294967292){break b}while(1){d=b<<2;J[d+J[c+24>>2]>>2]=0;J[(d+J[c+24>>2]|0)+4>>2]=0;J[(d+J[c+24>>2]|0)+8>>2]=0;J[(d+J[c+24>>2]|0)+12>>2]=0;b=b+4|0;if(b){continue}break}}J[c+16>>2]=0;b=J[J[a+4>>2]+344>>2];b=J[(ua[J[J[b>>2]+28>>2]](b)|0)+12>>2]+(h<<4)|0;d=J[J[J[b+4>>2]>>2]+188>>2];e=J[J[J[b>>2]>>2]+188>>2];c:{if(!(J[d+8>>2]&J[e+4>>2])|!(J[e+8>>2]&J[d+4>>2])){break c}b=J[b+8>>2];if(b){ua[J[J[b>>2]+16>>2]](b,c+12|0)}n=J[c+16>>2];if((n|0)<=0){break c}p=J[a+4>>2];d=0;q=J[c+24>>2];while(1){f=J[(d<<2)+q>>2];o=J[f+844>>2];if((o|0)>0){i=J[f+836>>2]==(p|0)?Q(-1):Q(1);j=N[g+60>>2];k=N[g+56>>2];l=N[g+52>>2];b=0;while(1){e=f+P(b,208)|0;r=N[e+68>>2];s=N[e+72>>2];m=N[e+84>>2];j=Q(Q(m*Q(i*N[e+76>>2]))+j);N[g+60>>2]=j;k=Q(Q(m*Q(i*s))+k);N[g+56>>2]=k;l=Q(Q(m*Q(i*r))+l);N[g+52>>2]=l;b=b+1|0;if((o|0)!=(b|0)){continue}break}}d=d+1|0;if((n|0)!=(d|0)){continue}break}}b=J[J[a+4>>2]+344>>2];h=h+1|0;if((ua[J[J[b>>2]+36>>2]](b)|0)>(h|0)){continue}break}a=J[c+24>>2];if(!a|!K[c+28|0]){break a}if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}}sa=c- -64|0}function Ij(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=Q(0),i=0,j=0,k=0,l=0,m=Q(0),n=0,o=0,p=0,q=0,r=Q(0),s=Q(0),t=Q(0),u=0,v=Q(0),w=0;i=sa-2048|0;sa=i;a:{if((d|0)<=0){break a}if(d>>>0>=8){l=d&-8;while(1){e=f<<4;J[(e+c|0)+12>>2]=-581039253;J[((e|16)+c|0)+12>>2]=-581039253;J[((e|32)+c|0)+12>>2]=-581039253;J[((e|48)+c|0)+12>>2]=-581039253;J[((e|64)+c|0)+12>>2]=-581039253;J[((e|80)+c|0)+12>>2]=-581039253;J[((e|96)+c|0)+12>>2]=-581039253;J[((e|112)+c|0)+12>>2]=-581039253;f=f+8|0;j=j+8|0;if((l|0)!=(j|0)){continue}break}}e=d&7;if(e){while(1){J[((f<<4)+c|0)+12>>2]=-581039253;f=f+1|0;g=g+1|0;if((e|0)!=(g|0)){continue}break}}if((d|0)<=0){break a}while(1){if((ua[J[J[a>>2]+96>>2]](a)|0)>0){e=p<<4;q=e+b|0;l=c+e|0;n=0;while(1){g=128;b:{c:{if(((ua[J[J[a>>2]+96>>2]](a)|0)-n|0)>127){break c}g=(ua[J[J[a>>2]+96>>2]](a)|0)-n|0;if((g|0)>0){break c}h=Q(-34028234663852886e22);g=-1;break b}e=0;j=(g|0)==1;if(!j){k=g&-2;f=0;while(1){ua[J[J[a>>2]+108>>2]](a,e,(e<<4)+i|0);o=e|1;ua[J[J[a>>2]+108>>2]](a,o,(o<<4)+i|0);e=e+2|0;f=f+2|0;if((k|0)!=(f|0)){continue}break}}o=g&1;if(o){ua[J[J[a>>2]+108>>2]](a,e,(e<<4)+i|0)}m=N[q+8>>2];r=N[q+4>>2];s=N[q>>2];d:{if(j){e=0;g=-1;h=Q(-34028234663852886e22);break d}w=g&-2;e=0;g=-1;h=Q(-34028234663852886e22);j=0;while(1){f=(e<<4)+i|0;t=Q(Q(N[f+8>>2]*m)+Q(Q(N[f>>2]*s)+Q(r*N[f+4>>2])));f=t>h;u=e|1;k=(u<<4)+i|0;v=Q(Q(N[k+8>>2]*m)+Q(Q(N[k>>2]*s)+Q(r*N[k+4>>2])));h=f?t:h;k=v>h;h=k?v:h;g=k?u:f?e:g;e=e+2|0;j=j+2|0;if((w|0)!=(j|0)){continue}break}}if(!o){break b}f=(e<<4)+i|0;m=Q(Q(N[f+8>>2]*m)+Q(Q(N[f>>2]*s)+Q(r*N[f+4>>2])));f=m>h;h=f?m:h;g=f?e:g}if(N[l+12>>2]>2]=J[e+8>>2];g=J[e+4>>2];J[l>>2]=J[e>>2];J[l+4>>2]=g;N[l+12>>2]=h}n=n+128|0;if((ua[J[J[a>>2]+96>>2]](a)|0)>(n|0)){continue}break}}p=p+1|0;if((p|0)!=(d|0)){continue}break}}sa=i+2048|0}function qf(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:{l=J[a+32>>2];b=J[a+12>>2];if((l|0)>=(b|0)){break a}b:{if((b|0)<=J[a+36>>2]){d=J[a+40>>2];break b}if(b){J[8456]=J[8456]+1;d=ua[J[8258]](b<<2,16)|0;c=J[a+32>>2]}else{c=l}g=J[a+40>>2];c:{if((c|0)>0){if(c>>>0>=4){j=c&-4;while(1){e=f<<2;J[e+d>>2]=J[e+g>>2];h=e|4;J[h+d>>2]=J[g+h>>2];h=e|8;J[h+d>>2]=J[g+h>>2];e=e|12;J[e+d>>2]=J[e+g>>2];f=f+4|0;i=i+4|0;if((j|0)!=(i|0)){continue}break}}c=c&3;if(!c){break c}while(1){e=f<<2;J[e+d>>2]=J[e+g>>2];f=f+1|0;k=k+1|0;if((c|0)!=(k|0)){continue}break}break c}if(g){break c}J[a+40>>2]=d;J[a+36>>2]=b;H[a+44|0]=1;break b}if(g?K[a+44|0]:0){J[8457]=J[8457]+1;ua[J[8259]](g)}J[a+40>>2]=d;H[a+44|0]=1;J[a+36>>2]=b}c=l<<2;j=b<<2;Fa(c+d|0,0,j-c|0);J[a+32>>2]=b;g=J[a+52>>2];if((g|0)<(b|0)){d:{if((b|0)<=J[a+56>>2]){d=J[a+60>>2];break d}e:{if(!b){d=0;c=g;break e}J[8456]=J[8456]+1;d=ua[J[8258]](j,16)|0;c=J[a+52>>2]}e=J[a+60>>2];f:{if((c|0)>0){k=0;f=0;if(c>>>0>=4){n=c&-4;i=0;while(1){h=f<<2;J[h+d>>2]=J[e+h>>2];m=h|4;J[m+d>>2]=J[e+m>>2];m=h|8;J[m+d>>2]=J[e+m>>2];h=h|12;J[h+d>>2]=J[e+h>>2];f=f+4|0;i=i+4|0;if((n|0)!=(i|0)){continue}break}}c=c&3;if(!c){break f}while(1){i=f<<2;J[i+d>>2]=J[e+i>>2];f=f+1|0;k=k+1|0;if((c|0)!=(k|0)){continue}break}break f}if(e){break f}J[a+60>>2]=d;J[a+56>>2]=b;H[a- -64|0]=1;break d}if(e?K[a- -64|0]:0){J[8457]=J[8457]+1;ua[J[8259]](e)}J[a+60>>2]=d;H[a+64|0]=1;J[a+56>>2]=b}c=g<<2;Fa(c+d|0,0,j-c|0)}J[a+52>>2]=b;if((b|0)>0){Fa(J[a+40>>2],255,j);Fa(J[a+60>>2],255,j)}if((l|0)<=0){break a}c=J[a+60>>2];g=J[a+16>>2];d=J[a+40>>2];f=0;while(1){b=g+(f<<4)|0;b=J[J[b+4>>2]+12>>2]<<16|J[J[b>>2]+12>>2];b=(b<<15^-1)+b|0;b=P(b>>>10^b,9);b=b>>>6^b;b=(b<<11^-1)+b|0;b=d+((J[a+12>>2]-1&(b>>>16^b))<<2)|0;J[c+(f<<2)>>2]=J[b>>2];J[b>>2]=f;f=f+1|0;if((l|0)!=(f|0)){continue}break}}}function hi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=Q(0),g=Q(0),h=0,i=Q(0),j=Q(0),k=Q(0),l=0,m=Q(0),n=Q(0),o=Q(0),p=0,q=0,r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=0,w=0,x=Q(0),y=Q(0),z=Q(0);e=J[a+28>>2];d=J[a+32>>2];c=J[b+8>>2];J[c>>2]=1065353216;p=J[b+24>>2];l=p<<2;v=l+4|0;J[c+v>>2]=1065353216;q=p<<3;w=q+8|0;J[c+w>>2]=1065353216;m=N[e+24>>2];n=N[e+28>>2];o=N[e+40>>2];g=N[a+304>>2];j=N[e+44>>2];f=N[a+308>>2];k=N[e+12>>2];r=N[e+4>>2];s=N[e+8>>2];t=N[e+20>>2];u=N[e+36>>2];i=N[a+300>>2];c=J[b+12>>2];J[c+12>>2]=0;J[c>>2]=0;o=Q(Q(j*f)+Q(Q(u*i)+Q(g*o)));N[c+4>>2]=o;m=Q(Q(n*f)+Q(Q(t*i)+Q(g*m)));N[c+8>>2]=-m;h=c+l|0;J[h+12>>2]=0;n=Q(Q(k*f)+Q(Q(r*i)+Q(s*g)));N[h+8>>2]=n;J[h+4>>2]=0;N[h>>2]=-o;c=c+q|0;J[c+8>>2]=0;J[c+12>>2]=0;N[c+4>>2]=-n;N[c>>2]=m;c=J[b+16>>2];J[c>>2]=-1082130432;J[c+v>>2]=-1082130432;J[c+w>>2]=-1082130432;k=N[d+40>>2];r=N[d+44>>2];j=N[d+24>>2];g=N[a+320>>2];s=N[d+28>>2];f=N[a+324>>2];t=N[d+12>>2];u=N[d+4>>2];x=N[d+8>>2];y=N[d+36>>2];z=N[d+20>>2];i=N[a+316>>2];c=J[b+20>>2];J[c+12>>2]=0;J[c>>2]=0;j=Q(Q(s*f)+Q(Q(z*i)+Q(g*j)));N[c+8>>2]=j;k=Q(Q(r*f)+Q(Q(y*i)+Q(g*k)));N[c+4>>2]=-k;h=c+l|0;J[h+12>>2]=0;g=Q(Q(t*f)+Q(Q(u*i)+Q(x*g)));N[h+8>>2]=-g;J[h+4>>2]=0;N[h>>2]=k;c=c+q|0;J[c+8>>2]=0;J[c+12>>2]=0;N[c+4>>2]=g;N[c>>2]=-j;c=J[b+28>>2];h=J[a+332>>2];f=Q(N[(h&1?a+336|0:b+4|0)>>2]*N[b>>2]);N[c>>2]=f*Q(Q(Q(g+N[d+52>>2])-n)-N[e+52>>2]);N[c+l>>2]=f*Q(Q(Q(j+N[d+56>>2])-m)-N[e+56>>2]);N[c+q>>2]=f*Q(Q(Q(k+N[d+60>>2])-o)-N[e+60>>2]);e=p<<1;if(h&2){d=J[b+32>>2];N[d>>2]=N[a+340>>2];N[d+l>>2]=N[a+340>>2];N[d+(e<<2)>>2]=N[a+340>>2]}f=N[a+356>>2];a:{if(!(f>Q(0))){break a}i=Q(-f);N[J[b+36>>2]>>2]=i;N[J[b+40>>2]>>2]=f;g=N[a+356>>2];if(g>Q(0)){d=p<<2;N[d+J[b+36>>2]>>2]=i;N[d+J[b+40>>2]>>2]=f;g=N[a+356>>2]}if(!(g>Q(0))){break a}e=e<<2;N[e+J[b+36>>2]>>2]=i;N[e+J[b+40>>2]>>2]=f}N[b+48>>2]=N[a+352>>2]}function Jc(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:{l=J[a+28>>2];b=J[a+12>>2];if((l|0)>=(b|0)){break a}b:{if((b|0)<=J[a+32>>2]){d=J[a+36>>2];break b}if(b){J[8456]=J[8456]+1;d=ua[J[8258]](b<<2,16)|0;c=J[a+28>>2]}else{c=l}g=J[a+36>>2];c:{if((c|0)>0){if(c>>>0>=4){j=c&-4;while(1){e=f<<2;J[e+d>>2]=J[e+g>>2];h=e|4;J[h+d>>2]=J[g+h>>2];h=e|8;J[h+d>>2]=J[g+h>>2];e=e|12;J[e+d>>2]=J[e+g>>2];f=f+4|0;i=i+4|0;if((j|0)!=(i|0)){continue}break}}c=c&3;if(!c){break c}while(1){e=f<<2;J[e+d>>2]=J[e+g>>2];f=f+1|0;k=k+1|0;if((c|0)!=(k|0)){continue}break}break c}if(g){break c}J[a+36>>2]=d;J[a+32>>2]=b;H[a+40|0]=1;break b}if(g?K[a+40|0]:0){J[8457]=J[8457]+1;ua[J[8259]](g)}J[a+36>>2]=d;H[a+40|0]=1;J[a+32>>2]=b}c=l<<2;j=b<<2;Fa(c+d|0,0,j-c|0);J[a+28>>2]=b;g=J[a+48>>2];if((g|0)<(b|0)){d:{if((b|0)<=J[a+52>>2]){d=J[a+56>>2];break d}e:{if(!b){d=0;c=g;break e}J[8456]=J[8456]+1;d=ua[J[8258]](j,16)|0;c=J[a+48>>2]}e=J[a+56>>2];f:{if((c|0)>0){k=0;f=0;if(c>>>0>=4){n=c&-4;i=0;while(1){h=f<<2;J[h+d>>2]=J[e+h>>2];m=h|4;J[m+d>>2]=J[e+m>>2];m=h|8;J[m+d>>2]=J[e+m>>2];h=h|12;J[h+d>>2]=J[e+h>>2];f=f+4|0;i=i+4|0;if((n|0)!=(i|0)){continue}break}}c=c&3;if(!c){break f}while(1){i=f<<2;J[i+d>>2]=J[e+i>>2];f=f+1|0;k=k+1|0;if((c|0)!=(k|0)){continue}break}break f}if(e){break f}J[a+56>>2]=d;J[a+52>>2]=b;H[a+60|0]=1;break d}if(e?K[a+60|0]:0){J[8457]=J[8457]+1;ua[J[8259]](e)}J[a+56>>2]=d;H[a+60|0]=1;J[a+52>>2]=b}c=g<<2;Fa(c+d|0,0,j-c|0)}J[a+48>>2]=b;if((b|0)>0){Fa(J[a+36>>2],255,j);Fa(J[a+56>>2],255,j)}if((l|0)<=0){break a}c=J[a+56>>2];g=J[a+16>>2];d=J[a+36>>2];f=0;while(1){b=g+P(f,12)|0;b=J[b+4>>2]<<16|J[b>>2];b=(b<<15^-1)+b|0;b=P(b>>>10^b,9);b=b>>>6^b;b=(b<<11^-1)+b|0;b=d+((J[a+12>>2]-1&(b>>>16^b))<<2)|0;J[c+(f<<2)>>2]=J[b>>2];J[b>>2]=f;f=f+1|0;if((l|0)!=(f|0)){continue}break}}}function Xd(a,b,c,d,e,f,g){var h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0);J[e>>2]=0;J[e+4>>2]=0;J[e+32>>2]=0;J[e+24>>2]=0;J[e+28>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;J[f+4>>2]=c;J[f>>2]=a;l=N[d+20>>2];m=N[d+36>>2];h=N[b+20>>2];i=N[b+36>>2];n=N[d+24>>2];o=N[b+24>>2];p=N[d+40>>2];q=N[b+40>>2];j=N[d+32>>2];r=N[d>>2];s=N[d+16>>2];t=N[d+4>>2];u=N[b+32>>2];v=N[b>>2];w=N[b+16>>2];x=N[b+4>>2];y=N[d+8>>2];k=N[b+8>>2];J[f+52>>2]=0;J[f+36>>2]=0;J[f+20>>2]=0;N[f+48>>2]=Q(p*q)+Q(Q(y*k)+Q(o*n));N[f+44>>2]=Q(p*i)+Q(Q(y*x)+Q(h*n));N[f+40>>2]=Q(p*u)+Q(Q(y*v)+Q(w*n));N[f+32>>2]=Q(m*q)+Q(Q(t*k)+Q(o*l));N[f+28>>2]=Q(m*i)+Q(Q(t*x)+Q(h*l));N[f+24>>2]=Q(m*u)+Q(Q(t*v)+Q(w*l));N[f+16>>2]=Q(j*q)+Q(Q(r*k)+Q(s*o));N[f+12>>2]=Q(j*i)+Q(Q(r*x)+Q(s*h));N[f+8>>2]=Q(j*u)+Q(Q(r*v)+Q(s*w));B=N[b+52>>2];C=N[d+52>>2];D=N[b+56>>2];z=N[d+56>>2];l=N[b+20>>2];m=N[b+36>>2];r=N[d+20>>2];s=N[d+36>>2];h=N[b+24>>2];t=N[d+24>>2];i=N[b+40>>2];u=N[d+40>>2];E=N[b+48>>2];A=N[d+48>>2];n=N[b+32>>2];o=N[b>>2];p=N[b+16>>2];q=N[b+4>>2];v=N[d+32>>2];w=N[d>>2];x=N[d+16>>2];y=N[d+4>>2];j=N[b+8>>2];k=N[d+8>>2];J[f+124>>2]=0;J[f+120>>2]=g?904:905;J[f+116>>2]=0;J[f+100>>2]=0;J[f+84>>2]=0;J[f+68>>2]=0;N[f+96>>2]=Q(i*u)+Q(Q(j*k)+Q(t*h));N[f+92>>2]=Q(i*s)+Q(Q(j*y)+Q(r*h));N[f+88>>2]=Q(i*v)+Q(Q(j*w)+Q(x*h));N[f+80>>2]=Q(m*u)+Q(Q(q*k)+Q(t*l));N[f+76>>2]=Q(m*s)+Q(Q(q*y)+Q(r*l));N[f+72>>2]=Q(m*v)+Q(Q(q*w)+Q(x*l));N[f- -64>>2]=Q(n*u)+Q(Q(o*k)+Q(p*t));N[f+60>>2]=Q(n*s)+Q(Q(o*y)+Q(p*r));N[f+56>>2]=Q(n*v)+Q(Q(o*w)+Q(p*x));k=i;i=Q(z-D);z=j;j=Q(A-E);A=h;h=Q(C-B);N[f+112>>2]=Q(k*i)+Q(Q(z*j)+Q(A*h));N[f+108>>2]=Q(m*i)+Q(Q(q*j)+Q(h*l));N[f+104>>2]=Q(n*i)+Q(Q(o*j)+Q(h*p))}function kc(a,b,c){var d=0,e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=0,m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0);d=sa-48|0;sa=d;H[a+60|0]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;e=N[b+8>>2];g=N[a+48>>2];f=N[b>>2];m=N[a+40>>2];i=N[b+4>>2];n=N[a+44>>2];j=Q(Q(e*g)+Q(Q(f*m)+Q(i*n)));h=e;e=Q(g*j);o=Q(h-e);h=Q(n*j);p=Q(i-h);i=f;f=Q(m*j);k=Q(i-f);a:{if(j<=Q(0)){N[d+24>>2]=e;N[d+20>>2]=h;N[d+16>>2]=f;i=h;r=f;h=Q(0);f=Q(0);break a}J[d+44>>2]=0;N[d+40>>2]=e;N[d+36>>2]=h;N[d+32>>2]=f;i=Q(0);q=e;e=Q(0)}b=0;J[d+12>>2]=0;N[d+4>>2]=p;N[d>>2]=k;N[d+8>>2]=o;k=Q(Q(o*o)+Q(Q(k*k)+Q(p*p)));b:{c:{if(k>2];N[d+40>>2]=Q(j*g)+q;N[d+36>>2]=Q(n*g)+h;N[d+32>>2]=Q(m*g)+f}H[a+108|0]=0;b=jc(a,d+32|0,c,10)?2:0;l=K[a+64|0]}d:{if(l){break d}e:{if(K[a+61|0]){break e}if((ua[J[J[a>>2]+16>>2]](a)|0)!=1){break e}H[a+108|0]=1}b=jc(a,d,c,10)|b;if(K[a+61|0]){break d}if((ua[J[J[a>>2]+16>>2]](a)|0)!=1){break d}H[a+108|0]=0}if(!(k>2];q=N[a+44>>2];g=e;e=N[a+32>>2];N[d+24>>2]=g-Q(e*N[a+48>>2]);N[d+20>>2]=i-Q(e*q);N[d+16>>2]=r-Q(f*e)}f:{if(K[a+61|0]){break f}if((ua[J[J[a>>2]+16>>2]](a)|0)!=1){break f}H[a+108|0]=1}if(K[a+65|0]?K[a+64|0]:1){H[a+108|0]=0}g:{h:{i:{if(!jc(a,d+16|0,c,1)){break i}b=b|4;if(K[a+64|0]){break i}c=Q(Q(N[a+80>>2]*N[a+48>>2])+Q(Q(N[a+72>>2]*N[a+40>>2])+Q(N[a+76>>2]*N[a+44>>2])));if(!(c>=Q(0))|!(Ma(N[a+28>>2])>c)){break i}H[a+60|0]=1;if(K[a+61|0]){break g}if((ua[J[J[a>>2]+16>>2]](a)|0)==1){break h}break g}if(K[a+61|0]){break g}if((ua[J[J[a>>2]+16>>2]](a)|0)!=1){break g}}H[a+108|0]=0}sa=d+48|0;return b}function rk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=0,s=0,t=0,u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=0;e=sa-80|0;sa=e;x=Q(ua[J[J[a>>2]+48>>2]](a));while(1){J[e+72>>2]=0;J[e+76>>2]=0;J[e+64>>2]=0;J[e+68>>2]=0;s=t<<2;y=s+(e- -64|0)|0;J[y>>2]=1065353216;i=N[b+32>>2];j=N[b>>2];k=N[b+16>>2];l=N[b+36>>2];m=N[b+4>>2];n=N[b+20>>2];f=N[b+40>>2];g=N[b+8>>2];h=N[b+24>>2];J[e+44>>2]=0;o=f;f=N[e+72>>2];p=g;g=N[e+64>>2];q=h;h=N[e+68>>2];N[e+40>>2]=Q(o*f)+Q(Q(p*g)+Q(q*h));N[e+36>>2]=Q(l*f)+Q(Q(m*g)+Q(h*n));N[e+32>>2]=Q(i*f)+Q(Q(j*g)+Q(k*h));r=e+32|0;ua[J[J[a>>2]+64>>2]](e+48|0,a,r);i=N[b+48>>2];j=N[b+8>>2];k=N[b>>2];l=N[b+4>>2];m=N[b+52>>2];n=N[b+24>>2];p=N[b+16>>2];q=N[b+20>>2];f=N[b+56>>2];g=N[b+40>>2];h=N[b+32>>2];u=N[b+36>>2];J[e+44>>2]=0;o=f;f=N[e+56>>2];v=Q(g*f);g=N[e+48>>2];w=Q(h*g);h=N[e+52>>2];N[e+40>>2]=o+Q(v+Q(w+Q(u*h)));N[e+36>>2]=m+Q(Q(f*n)+Q(Q(g*p)+Q(h*q)));N[e+32>>2]=i+Q(Q(f*j)+Q(Q(g*k)+Q(h*l)));r=s+r|0;N[d+s>>2]=x+N[r>>2];J[y>>2]=-1082130432;i=N[b+32>>2];j=N[b>>2];k=N[b+16>>2];l=N[b+36>>2];m=N[b+4>>2];n=N[b+20>>2];f=N[b+40>>2];g=N[b+8>>2];h=N[b+24>>2];J[e+12>>2]=0;o=f;f=N[e+72>>2];p=g;g=N[e+64>>2];q=h;h=N[e+68>>2];N[e+8>>2]=Q(o*f)+Q(Q(p*g)+Q(q*h));N[e+4>>2]=Q(l*f)+Q(Q(m*g)+Q(h*n));N[e>>2]=Q(i*f)+Q(Q(j*g)+Q(k*h));ua[J[J[a>>2]+64>>2]](e+16|0,a,e);i=N[b+48>>2];j=N[b+8>>2];k=N[b>>2];l=N[b+4>>2];m=N[b+52>>2];n=N[b+24>>2];p=N[b+16>>2];q=N[b+20>>2];f=N[b+56>>2];g=N[b+40>>2];h=N[b+32>>2];u=N[b+36>>2];J[e+44>>2]=0;o=f;f=N[e+24>>2];v=Q(g*f);g=N[e+16>>2];w=Q(h*g);h=N[e+20>>2];N[e+40>>2]=o+Q(v+Q(w+Q(u*h)));N[e+36>>2]=m+Q(Q(f*n)+Q(Q(g*p)+Q(h*q)));N[e+32>>2]=i+Q(Q(f*j)+Q(Q(g*k)+Q(h*l)));N[c+s>>2]=N[r>>2]-x;t=t+1|0;if((t|0)!=3){continue}break}sa=e+80|0}function ac(a,b,c){var d=0,e=Q(0),f=Q(0),g=Q(0),h=0;if(!J[a>>2]){J[a>>2]=c;J[c+32>>2]=0;return}d=J[b+40>>2];if(d){f=Q(N[c>>2]+N[c+16>>2]);e=Q(N[c+8>>2]+N[c+24>>2]);g=Q(N[c+4>>2]+N[c+20>>2]);while(1){h=b+36|0;b=J[b+36>>2];b=J[h+(!(Q(Q(Q(R(Q(f-Q(N[b>>2]+N[b+16>>2]))))+Q(R(Q(g-Q(N[b+4>>2]+N[b+20>>2])))))+Q(R(Q(e-Q(N[b+8>>2]+N[b+24>>2])))))>2]+N[d+16>>2]))))+Q(R(Q(g-Q(N[d+4>>2]+N[d+20>>2])))))+Q(R(Q(e-Q(N[d+8>>2]+N[d+24>>2]))))))<<2)>>2];d=J[b+40>>2];if(d){continue}break}}h=J[b+32>>2];d=J[a+4>>2];a:{if(d){J[a+4>>2]=0;break a}J[8456]=J[8456]+1;d=ua[J[8258]](44,16)|0;J[d>>2]=0;J[d+4>>2]=0;J[d+40>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0}J[d+36>>2]=0;J[d+40>>2]=0;J[d+32>>2]=h;f=N[c>>2];e=N[b>>2];N[d>>2]=e>f?f:e;f=N[c+16>>2];e=N[b+16>>2];N[d+16>>2]=e>2];e=N[b+4>>2];N[d+4>>2]=e>f?f:e;f=N[c+20>>2];e=N[b+20>>2];N[d+20>>2]=e>2];e=N[b+8>>2];N[d+8>>2]=e>f?f:e;f=N[c+24>>2];e=N[b+24>>2];N[d+24>>2]=e>2]+40>>2]==(b|0))<<2)+h|0)+36>>2]=d;J[d+36>>2]=b;J[b+32>>2]=d;J[d+40>>2]=c;J[c+32>>2]=d;f=N[d>>2];while(1){a=d;d=h;c:{if(!(N[d>>2]<=f)|!(N[d+4>>2]<=N[a+4>>2])|(!(N[d+8>>2]<=N[a+8>>2])|!(N[d+16>>2]>=N[a+16>>2]))){break c}if(!(N[d+20>>2]>=N[a+20>>2])){break c}if(N[d+24>>2]>=N[a+24>>2]){break b}}a=J[d+36>>2];f=N[a>>2];b=J[d+40>>2];e=N[b>>2];f=e>f?f:e;N[d>>2]=f;e=N[a+16>>2];g=N[b+16>>2];N[d+16>>2]=e>g?e:g;e=N[a+4>>2];g=N[b+4>>2];N[d+4>>2]=e>2];g=N[b+20>>2];N[d+20>>2]=e>g?e:g;e=N[a+8>>2];g=N[b+8>>2];N[d+8>>2]=e>2];g=N[b+24>>2];N[d+24>>2]=e>g?e:g;h=J[d+32>>2];if(h){continue}break}break b}J[d+36>>2]=b;J[b+32>>2]=d;J[d+40>>2]=c;J[c+32>>2]=d;J[a>>2]=d}}function Dc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=J[a+56>>2];a:{if(g){break a}d=J[a+52>>2];b:{if(d){J[a+52>>2]=J[d+8>>2];g=J[d>>2];break b}J[8456]=J[8456]+1;d=ua[J[8258]](12,16)|0;e=J[a+60>>2];J[d+8>>2]=0;J[d+4>>2]=e;J[8456]=J[8456]+1;g=ua[J[8258]](P(e,24),16)|0;J[d>>2]=g;J[d+8>>2]=J[a+48>>2];J[a+48>>2]=d}h=J[d+4>>2];if((h|0)<=0){break a}e=g;if(h>>>0>=4){m=h&-4;d=g;while(1){e=d+96|0;j=i+4|0;J[d+72>>2]=(h|0)>(j|0)?e:0;J[d+48>>2]=(h|0)>(i|3)?d+72|0:0;J[d+24>>2]=(h|0)>(i|2)?d+48|0:0;J[d>>2]=(h|0)>(i|1)?d+24|0:0;i=j;d=e;f=f+4|0;if((m|0)!=(f|0)){continue}break}}d=h&3;if(!d){break a}while(1){f=e;e=e+24|0;j=j+1|0;J[f>>2]=(h|0)>(j|0)?e:0;l=l+1|0;if((d|0)!=(l|0)){continue}break}}J[a+56>>2]=J[g>>2];J[g+16>>2]=0;J[g+20>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;J[g>>2]=0;J[g+4>>2]=0;f=J[a+56>>2];c:{if(f){break c}d=J[a+52>>2];d:{if(d){J[a+52>>2]=J[d+8>>2];f=J[d>>2];break d}J[8456]=J[8456]+1;d=ua[J[8258]](12,16)|0;e=J[a+60>>2];J[d+8>>2]=0;J[d+4>>2]=e;J[8456]=J[8456]+1;f=ua[J[8258]](P(e,24),16)|0;J[d>>2]=f;J[d+8>>2]=J[a+48>>2];J[a+48>>2]=d}k=J[d+4>>2];if((k|0)<=0){break c}l=0;j=0;e=f;if(k>>>0>=4){m=k&-4;i=0;d=f;h=0;while(1){e=d+96|0;j=i+4|0;J[d+72>>2]=(k|0)>(j|0)?e:0;J[d+48>>2]=(i|3)<(k|0)?d+72|0:0;J[d+24>>2]=(i|2)<(k|0)?d+48|0:0;J[d>>2]=(i|1)<(k|0)?d+24|0:0;i=j;d=e;h=h+4|0;if((m|0)!=(h|0)){continue}break}}d=k&3;if(!d){break c}while(1){i=e;e=e+24|0;j=j+1|0;J[i>>2]=(k|0)>(j|0)?e:0;l=l+1|0;if((d|0)!=(l|0)){continue}break}}J[a+56>>2]=J[f>>2];J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;J[f>>2]=0;J[f+4>>2]=0;J[g+8>>2]=f;J[f+8>>2]=g;e=J[a+100>>2];J[g+20>>2]=e;J[f+20>>2]=e;J[g+12>>2]=c;J[f+12>>2]=b;J[g+16>>2]=0;J[f+16>>2]=0;c=J[a+116>>2];b=c+1|0;J[a+116>>2]=b;if((c|0)>=J[a+120>>2]){J[a+120>>2]=b}return g}function Xr(){var a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0;a=La(176);e=sa-32|0;sa=e;J[a>>2]=11916;b=a+4|0;J[b+16>>2]=0;J[b+8>>2]=-1;J[b+12>>2]=0;J[b>>2]=0;J[b+4>>2]=0;J[b+32>>2]=0;H[b+36|0]=1;J[b+24>>2]=0;J[b+28>>2]=0;b=a+44|0;J[b+16>>2]=0;J[b+8>>2]=-1;J[b+12>>2]=0;J[b>>2]=0;J[b+4>>2]=0;J[b+32>>2]=0;H[b+36|0]=1;J[b+24>>2]=0;J[b+28>>2]=0;J[a+168>>2]=0;c=1;H[a+172|0]=1;J[a+160>>2]=0;J[a+164>>2]=0;H[a+153|0]=0;H[a+154|0]=1;H[a+152|0]=1;J[a+124>>2]=0;J[a+100>>2]=0;J[a+104>>2]=0;J[a+136>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+116>>2]=10;J[a+120>>2]=1;J[a+108>>2]=1;J[a+112>>2]=0;J[8456]=J[8456]+1;d=rf(ua[J[8258]](72,16)|0);b=J[a+160>>2];J[a+148>>2]=0;J[a+96>>2]=d;J[a+140>>2]=0;J[a+144>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+92>>2]=0;J[e+24>>2]=0;H[e+28|0]=1;J[e+16>>2]=0;J[e+20>>2]=0;a:{if((b|0)>=2){while(1){d=J[a+168>>2]+P(c,20)|0;f=J[d+12>>2];if(!(f?!f|!K[d+16|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](f)}H[d+16|0]=1;J[d+12>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;c=c+1|0;if((c|0)!=(b|0)){continue}break a}}if((b|0)==1){break a}c=0;if(J[a+164>>2]<=0){J[8456]=J[8456]+1;f=ua[J[8258]](20,16)|0;d=J[a+160>>2];b:{if((d|0)<=0){break b}while(1){g=P(c,20);xf(g+f|0,g+J[a+168>>2]|0);c=c+1|0;if((d|0)!=(c|0)){continue}break}h=J[a+160>>2];if((h|0)<=0){break b}c=0;while(1){d=J[a+168>>2]+P(c,20)|0;g=J[d+12>>2];if(!(g?!g|!K[d+16|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](g)}H[d+16|0]=1;J[d+12>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;c=c+1|0;if((h|0)!=(c|0)){continue}break}}c=J[a+168>>2];if(!(c?!c|!K[a+172|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}J[a+168>>2]=f;H[a+172|0]=1;J[a+164>>2]=1}while(1){c=b;xf(J[a+168>>2]+P(b,20)|0,e+12|0);b=b+1|0;if(c){continue}break}}J[a+160>>2]=1;b=J[e+24>>2];if(!(b?!b|!K[e+28|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}sa=e+32|0;return a|0}function en(a){a=a|0;var b=0,c=Q(0),d=0,e=Q(0),f=Q(0),g=0,h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=0,m=0;m=sa-16|0;sa=m;ua[J[8262]](4699);d=J[a+8>>2];if((d|0)>0){while(1){g=J[J[a+16>>2]+(l<<2)>>2];a:{b:{if(K[a+76|0]){break b}switch(J[g+220>>2]-2|0){case 0:case 3:break a;default:break b}}b=sa+-64|0;sa=b;d=J[g+192>>2];ua[J[J[d>>2]+8>>2]](d,g+4|0,b+48|0,b+32|0);c=N[8265];k=Q(N[b+48>>2]-c);N[b+48>>2]=k;h=Q(N[b+52>>2]-c);N[b+52>>2]=h;f=Q(N[b+56>>2]-c);N[b+56>>2]=f;e=Q(c+N[b+32>>2]);N[b+32>>2]=e;i=Q(c+N[b+36>>2]);N[b+36>>2]=i;j=Q(c+N[b+40>>2]);N[b+40>>2]=j;c:{if(K[g+204|0]&3|(!K[a+44|0]|J[g+252>>2]!=2)){break c}d=J[g+192>>2];ua[J[J[d>>2]+8>>2]](d,g+68|0,b+16|0,b);h=Q(N[b+16>>2]-c);N[b+16>>2]=h;f=Q(N[b+20>>2]-c);N[b+20>>2]=f;e=Q(N[b+24>>2]-c);N[b+24>>2]=e;i=Q(c+N[b>>2]);N[b>>2]=i;j=Q(c+N[b+4>>2]);N[b+4>>2]=j;c=Q(c+N[b+8>>2]);N[b+8>>2]=c;k=N[b+48>>2];if(h>2]=h;k=h}h=N[b+52>>2];if(f>2]=f;h=f}f=N[b+56>>2];if(e>2]=e;f=e}e=N[b+28>>2];if(e>2]){N[b+60>>2]=e}e=N[b+32>>2];if(i>e){N[b+32>>2]=i;e=i}i=N[b+36>>2];if(j>i){N[b+36>>2]=j;i=j}j=N[b+40>>2];if(c>j){N[b+40>>2]=c;j=c}c=N[b+12>>2];if(!(c>N[b+44>>2])){break c}N[b+44>>2]=c}d=J[a+68>>2];d:{e:{if(!(H[g+204|0]&1)){c=Q(j-f);f=Q(c*c);c=Q(e-k);e=Q(c*c);c=Q(i-h);if(!(Q(f+Q(e+Q(c*c)))>2]+16>>2]](d,J[g+188>>2],b+48|0,b+32|0,J[a+24>>2]);break d}if((J[g+220>>2]&-2)!=4){J[g+220>>2]=5}if(K[33852]){break d}d=J[a+72>>2];if(!d){break d}H[33852]=1;ua[J[J[d>>2]+44>>2]](d,5794);d=J[a+72>>2];ua[J[J[d>>2]+44>>2]](d,10341);d=J[a+72>>2];ua[J[J[d>>2]+44>>2]](d,10418);d=J[a+72>>2];ua[J[J[d>>2]+44>>2]](d,10409)}sa=b- -64|0;d=J[a+8>>2]}l=l+1|0;if((l|0)<(d|0)){continue}break}}ua[J[8263]]();sa=m+16|0}function Qm(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=0,u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=0,B=0;c=sa-96|0;sa=c;e=N[a+76>>2];i=N[a+36>>2];f=N[a+32>>2];j=N[a+80>>2];n=N[a+52>>2];o=N[a+44>>2];p=N[a+48>>2];k=N[a+84>>2];q=N[a+68>>2];w=N[a+60>>2];x=N[a- -64>>2];y=N[a+28>>2];l=N[b+8>>2];g=N[b>>2];h=N[b+4>>2];J[c+92>>2]=0;u=Q(k+Q(Q(l*q)+Q(Q(g*w)+Q(h*x))));N[c+88>>2]=u;v=Q(j+Q(Q(l*n)+Q(Q(g*o)+Q(h*p))));N[c+84>>2]=v;l=Q(e+Q(Q(l*i)+Q(Q(g*y)+Q(h*f))));N[c+80>>2]=l;g=N[b+20>>2];h=N[b+24>>2];m=N[b+16>>2];J[c+76>>2]=0;z=Q(k+Q(Q(h*q)+Q(Q(m*w)+Q(x*g))));N[c+72>>2]=z;r=Q(j+Q(Q(h*n)+Q(Q(m*o)+Q(p*g))));N[c+68>>2]=r;s=Q(e+Q(Q(h*i)+Q(Q(m*y)+Q(f*g))));N[c+64>>2]=s;g=N[b+36>>2];h=N[b+40>>2];m=N[b+32>>2];J[c+60>>2]=0;k=Q(k+Q(Q(h*q)+Q(Q(m*w)+Q(x*g))));N[c+56>>2]=k;j=Q(j+Q(Q(h*n)+Q(Q(m*o)+Q(p*g))));N[c+52>>2]=j;e=Q(e+Q(Q(h*i)+Q(Q(m*y)+Q(f*g))));N[c+48>>2]=e;J[c+44>>2]=0;n=Q(Q(Q(u+z)+k)*Q(.3333333432674408));N[c+40>>2]=n;o=Q(Q(Q(v+r)+j)*Q(.3333333432674408));N[c+36>>2]=o;p=Q(Q(Q(l+s)+e)*Q(.3333333432674408));N[c+32>>2]=p;b=J[a+8>>2];if(ua[J[J[b>>2]+56>>2]](b)&16384){J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=1065353216;J[c+20>>2]=1065353216;b=J[a+8>>2];J[c+12>>2]=0;i=Q(s-l);f=Q(j-v);j=Q(e-l);q=Q(r-v);e=Q(Q(i*f)-Q(j*q));s=e;r=Q(e*e);k=Q(k-u);e=f;f=Q(z-u);e=Q(Q(q*k)-Q(e*f));i=Q(Q(f*j)-Q(k*i));f=Q(Q(1)/Q(Y(Q(r+Q(Q(e*e)+Q(i*i))))));N[c+8>>2]=Q(s*f)+n;N[c+4>>2]=Q(i*f)+o;N[c>>2]=p+Q(e*f);ua[J[J[b>>2]+16>>2]](b,c+32|0,c,c+16|0)}d=J[a+8>>2];A=c+80|0;t=c- -64|0;b=a+12|0;ua[J[J[d>>2]+16>>2]](d,A,t,b);d=J[a+8>>2];B=t;t=c+48|0;ua[J[J[d>>2]+16>>2]](d,B,t,b);a=J[a+8>>2];ua[J[J[a>>2]+16>>2]](a,t,A,b);sa=c+96|0}function lf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=Q(0);N[b+16>>2]=N[a+4>>2];N[b+20>>2]=N[a+8>>2];N[b+24>>2]=N[a+12>>2];N[b+28>>2]=N[a+16>>2];N[b+32>>2]=N[a+20>>2];N[b+36>>2]=N[a+24>>2];N[b+40>>2]=N[a+28>>2];N[b+44>>2]=N[a+32>>2];N[b+48>>2]=N[a+36>>2];N[b+52>>2]=N[a+40>>2];N[b+56>>2]=N[a+44>>2];N[b+60>>2]=N[a+48>>2];N[b- -64>>2]=N[a+52>>2];N[b+68>>2]=N[a+56>>2];N[b+72>>2]=N[a+60>>2];N[b+76>>2]=N[a- -64>>2];N[b+80>>2]=N[a+68>>2];N[b+84>>2]=N[a+72>>2];N[b+88>>2]=N[a+76>>2];N[b+92>>2]=N[a+80>>2];N[b+96>>2]=N[a+84>>2];N[b+100>>2]=N[a+88>>2];N[b+104>>2]=N[a+92>>2];N[b+108>>2]=N[a+96>>2];N[b+112>>2]=N[a+100>>2];N[b+116>>2]=N[a+104>>2];N[b+120>>2]=N[a+108>>2];N[b+124>>2]=N[a+112>>2];N[b+128>>2]=N[a+116>>2];N[b+132>>2]=N[a+120>>2];N[b+136>>2]=N[a+124>>2];N[b+140>>2]=N[a+128>>2];N[b+144>>2]=N[a+132>>2];N[b+148>>2]=N[a+136>>2];N[b+152>>2]=N[a+140>>2];N[b+156>>2]=N[a+144>>2];N[b+160>>2]=N[a+148>>2];N[b+164>>2]=N[a+152>>2];N[b+168>>2]=N[a+156>>2];N[b+172>>2]=N[a+160>>2];N[b+176>>2]=N[a+164>>2];N[b+180>>2]=N[a+168>>2];N[b+184>>2]=N[a+172>>2];N[b+188>>2]=N[a+176>>2];J[b+232>>2]=J[a+180>>2];f=N[a+184>>2];J[b>>2]=0;N[b+192>>2]=f;d=ua[J[J[c>>2]+28>>2]](c,J[a+192>>2])|0;J[b+8>>2]=0;J[b+4>>2]=d;J[b+236>>2]=J[a+204>>2];J[b+240>>2]=J[a+208>>2];J[b+244>>2]=J[a+212>>2];J[b+248>>2]=J[a+220>>2];N[b+196>>2]=N[a+224>>2];N[b+200>>2]=N[a+228>>2];N[b+204>>2]=N[a+236>>2];N[b+208>>2]=N[a+244>>2];N[b+212>>2]=N[a+248>>2];N[b+216>>2]=N[a+232>>2];J[b+252>>2]=J[a+252>>2];d=ua[J[J[c>>2]+40>>2]](c,a)|0;e=ua[J[J[c>>2]+28>>2]](c,d)|0;J[b+12>>2]=e;if(e){ua[J[J[c>>2]+48>>2]](c,d)}N[b+220>>2]=N[a+268>>2];N[b+224>>2]=N[a+272>>2];N[b+228>>2]=N[a+276>>2];a=J[a+280>>2];J[b+260>>2]=0;J[b+256>>2]=a;return 8678}function xb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=0;n=sa-256|0;sa=n;a:{if(!a){break a}p=N[b+24>>2];q=N[b+20>>2];r=N[b+16>>2];s=N[b+8>>2];t=N[b+4>>2];u=N[b>>2];J[n>>2]=a;d=n;a=64;b=1;while(1){b:{c:{d:{e=b-1|0;l=e<<2;h=J[l+d>>2];e:{if(!(N[h>>2]<=r)|!(N[h+16>>2]>=u)|(!(N[h+4>>2]<=q)|!(N[h+20>>2]>=t))){break e}if(!(N[h+8>>2]<=p)|!(N[h+24>>2]>=s)){break e}if(J[h+40>>2]){if((a|0)!=(e|0)){break d}f=a?a<<1:1;if((f|0)<(b|0)){break d}if(f){J[8456]=J[8456]+1;e=ua[J[8258]](f<<2,16)|0}else{e=0}f:{if(!a){break f}i=0;j=0;if(a>>>0>=4){v=a&-4;g=0;while(1){k=j<<2;J[k+e>>2]=J[d+k>>2];m=k|4;J[m+e>>2]=J[d+m>>2];m=k|8;J[m+e>>2]=J[d+m>>2];k=k|12;J[k+e>>2]=J[d+k>>2];j=j+4|0;g=g+4|0;if((v|0)!=(g|0)){continue}break}}a=a&3;if(!a){break f}while(1){g=j<<2;J[g+e>>2]=J[d+g>>2];j=j+1|0;i=i+1|0;if((a|0)!=(i|0)){continue}break}}a=o;o=1;if(!a){break c}if(d){J[8457]=J[8457]+1;ua[J[8259]](d)}break c}ua[J[J[c>>2]+12>>2]](c,h)}b=e;break b}f=a;e=d}J[e+l>>2]=J[h+36>>2];g:{if((b|0)!=(f|0)){a=f;d=e;break g}a=b?b<<1:1;if((b|0)>=(a|0)){a=b;d=e;break g}if(a){J[8456]=J[8456]+1;d=ua[J[8258]](a<<2,16)|0}else{d=0}h:{if((b|0)<=0){break h}j=0;g=0;if(b>>>0>=4){k=b&-4;i=0;while(1){f=g<<2;J[f+d>>2]=J[e+f>>2];l=f|4;J[l+d>>2]=J[e+l>>2];l=f|8;J[l+d>>2]=J[e+l>>2];f=f|12;J[f+d>>2]=J[e+f>>2];g=g+4|0;i=i+4|0;if((k|0)!=(i|0)){continue}break}}f=b&3;if(!f){break h}while(1){i=g<<2;J[i+d>>2]=J[e+i>>2];g=g+1|0;j=j+1|0;if((f|0)!=(j|0)){continue}break}}f=o;o=1;if(!f){break g}if(e){J[8457]=J[8457]+1;ua[J[8259]](e)}}J[(b<<2)+d>>2]=J[h+40>>2];b=b+1|0}if((b|0)>0){continue}break}if(!o){break a}if(d){J[8457]=J[8457]+1;ua[J[8259]](d)}}sa=n+256|0}function Jm(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=Q(0),g=Q(0),h=Q(0),i=0,j=0,k=0,l=0,m=Q(0),n=0;a=sa-624|0;sa=a;g=Q(N[b+124>>2]-N[b+60>>2]);h=Q(g*g);g=Q(N[b+116>>2]-N[b+52>>2]);f=Q(g*g);g=Q(N[b+120>>2]-N[b+56>>2]);f=Q(h+Q(f+Q(g*g)));g=N[b+276>>2];a:{b:{if(f>2]-N[c+60>>2]);m=Q(f*f);f=Q(N[c+116>>2]-N[c+52>>2]);h=Q(f*f);f=Q(N[c+120>>2]-N[c+56>>2]);h=Q(m+Q(h+Q(f*f)));f=N[c+276>>2];if(h>2];g=N[c+272>>2];d=Sa(a+564|0);J[d+32>>2]=0;J[d+36>>2]=0;J[d+20>>2]=1065353216;J[d+24>>2]=1065353216;J[d+4>>2]=8;J[d>>2]=21396;J[d+56>>2]=0;N[d+52>>2]=g;J[d+28>>2]=1065353216;J[d+40>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;N[d+36>>2]=g;J[a+560>>2]=0;J[a+552>>2]=1566444395;J[a+556>>2]=0;J[a+388>>2]=13156;H[a+360|0]=0;J[a+336>>2]=953267991;e=a+12|0;J[e+12>>2]=d;J[e+8>>2]=i;J[e+4>>2]=a+28;J[e>>2]=22600;i=b+4|0;j=b+68|0;k=c+4|0;l=c+68|0;g=Q(1);c:{if(!vc(e,i,j,k,l,a+388|0)){break c}f=N[a+552>>2];if(f>2]){N[b+268>>2]=f}if(f>2]){N[c+268>>2]=f}g=Q(1);if(!(f>2];f=N[b+272>>2];d=Sa(a+564|0);J[d+32>>2]=0;J[d+36>>2]=0;J[d+20>>2]=1065353216;J[d+24>>2]=1065353216;J[d+4>>2]=8;J[d>>2]=21396;J[d+56>>2]=0;N[d+52>>2]=f;J[d+28>>2]=1065353216;J[d+40>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;N[d+36>>2]=f;J[a+560>>2]=0;J[a+552>>2]=1566444395;J[a+556>>2]=0;J[a+388>>2]=13156;H[a+360|0]=0;J[a+336>>2]=953267991;e=a+12|0;J[e+12>>2]=n;J[e+8>>2]=d;J[e+4>>2]=a+28;J[e>>2]=22600;d:{if(!vc(e,i,j,k,l,a+388|0)){break d}f=N[a+552>>2];if(f>2]){N[b+268>>2]=f}if(f>2]){N[c+268>>2]=f}if(!(f>2];m=N[b+20>>2];n=N[b+40>>2];o=N[b+24>>2];p=N[b+4>>2];q=N[b+8>>2];i=N[c+8>>2];r=N[b+32>>2];j=N[c>>2];s=N[b>>2];k=N[c+4>>2];t=N[b+16>>2];J[h+44>>2]=0;N[h+32>>2]=Q(r*i)+Q(Q(s*j)+Q(t*k));N[h+40>>2]=Q(n*i)+Q(Q(q*j)+Q(k*o));N[h+36>>2]=Q(l*i)+Q(Q(p*j)+Q(k*m));u=h+16|0;ua[J[J[a>>2]+64>>2]](u,a,h+32|0);o=N[b+56>>2];p=N[b+40>>2];q=N[b+36>>2];r=N[b+52>>2];s=N[b+24>>2];t=N[b+20>>2];v=N[b+32>>2];w=N[b+48>>2];x=N[b+8>>2];y=N[b>>2];z=N[b+4>>2];A=N[b+16>>2];i=N[h+24>>2];j=N[h+16>>2];k=N[h+20>>2];J[h+12>>2]=0;N[h+8>>2]=-N[h+40>>2];N[h+4>>2]=-N[h+36>>2];N[h>>2]=-N[h+32>>2];ua[J[J[a>>2]+64>>2]](u,a,h);B=N[b+56>>2];C=N[b+40>>2];D=N[b+36>>2];E=N[b+52>>2];F=N[b+24>>2];G=N[b+20>>2];H=N[b+32>>2];I=N[b+48>>2];K=N[b+8>>2];L=N[b>>2];M=N[b+4>>2];O=N[b+16>>2];l=N[h+24>>2];m=N[h+16>>2];n=N[h+20>>2];o=Q(o+Q(Q(i*p)+Q(Q(j*v)+Q(k*q))));p=Q(w+Q(Q(i*x)+Q(Q(j*y)+Q(k*z))));i=Q(r+Q(Q(i*s)+Q(Q(j*A)+Q(k*t))));N[d>>2]=Q(o*N[c+8>>2])+Q(Q(p*N[c>>2])+Q(i*N[c+4>>2]));j=Q(B+Q(Q(l*C)+Q(Q(m*H)+Q(n*D))));k=Q(I+Q(Q(l*K)+Q(Q(m*L)+Q(n*M))));l=Q(E+Q(Q(l*F)+Q(Q(m*O)+Q(n*G))));N[e>>2]=Q(j*N[c+8>>2])+Q(Q(k*N[c>>2])+Q(l*N[c+4>>2]));J[g+12>>2]=0;N[g+8>>2]=j;N[g+4>>2]=l;N[g>>2]=k;J[f+12>>2]=0;N[f+8>>2]=o;N[f+4>>2]=i;N[f>>2]=p;m=N[d>>2];n=N[e>>2];if(m>n){N[d>>2]=n;N[e>>2]=m;J[g+12>>2]=0;N[g+8>>2]=o;N[g+4>>2]=i;N[g>>2]=p;J[f+12>>2]=0;N[f+8>>2]=j;N[f+4>>2]=l;N[f>>2]=k}sa=h+48|0}function nm(a,b,c){a=a|0;b=b|0;c=Q(c);var d=Q(0),e=Q(0),f=0,g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=0;f=sa-32|0;sa=f;l=N[a+64>>2];i=Q(N[a+80>>2]-l);d=N[a+68>>2];h=Q(N[a+100>>2]-d);j=Q(N[a+96>>2]-l);e=Q(N[a+84>>2]-d);g=Q(Q(i*h)-Q(j*e));k=g;o=Q(g*g);n=e;e=N[a+72>>2];g=Q(N[a+104>>2]-e);m=Q(N[a+88>>2]-e);h=Q(Q(n*g)-Q(h*m));i=Q(Q(m*j)-Q(g*i));j=Q(Q(1)/Q(Y(Q(o+Q(Q(h*h)+Q(i*i))))));g=Q(k*j);h=Q(h*j);i=Q(i*j);d=Q(Q(Q(N[b+8>>2]*g)+Q(Q(N[b>>2]*h)+Q(N[b+4>>2]*i)))-Q(Q(e*g)+Q(Q(l*h)+Q(d*i))));l=Q(-c);a:{if(!(d>=l)|!(c>=d)){break a}ua[J[J[a>>2]+104>>2]](a,0,f+16|0,f);j=N[f+16>>2];d=Q(N[f>>2]-j);m=N[f+20>>2];e=Q(N[f+4>>2]-m);c=Q(Q(d*i)-Q(h*e));k=c;o=Q(c*c);c=Q(e*g);n=N[f+24>>2];e=Q(N[f+8>>2]-n);c=Q(c-Q(i*e));d=Q(Q(e*h)-Q(g*d));e=Q(Q(1)/Q(Y(Q(o+Q(Q(c*c)+Q(d*d))))));k=Q(k*e);c=Q(c*e);d=Q(d*e);if(l>Q(Q(Q(N[b+8>>2]*k)+Q(Q(N[b>>2]*c)+Q(N[b+4>>2]*d)))-Q(Q(n*k)+Q(Q(j*c)+Q(m*d))))){break a}ua[J[J[a>>2]+104>>2]](a,1,f+16|0,f);j=N[f+16>>2];d=Q(N[f>>2]-j);m=N[f+20>>2];e=Q(N[f+4>>2]-m);c=Q(Q(d*i)-Q(h*e));k=c;o=Q(c*c);c=Q(e*g);n=N[f+24>>2];e=Q(N[f+8>>2]-n);c=Q(c-Q(i*e));d=Q(Q(e*h)-Q(g*d));e=Q(Q(1)/Q(Y(Q(o+Q(Q(c*c)+Q(d*d))))));k=Q(k*e);c=Q(c*e);d=Q(d*e);if(l>Q(Q(Q(N[b+8>>2]*k)+Q(Q(N[b>>2]*c)+Q(N[b+4>>2]*d)))-Q(Q(n*k)+Q(Q(j*c)+Q(m*d))))){break a}ua[J[J[a>>2]+104>>2]](a,2,f+16|0,f);k=l;l=N[f+16>>2];d=Q(N[f>>2]-l);e=N[f+20>>2];j=Q(N[f+4>>2]-e);c=Q(Q(d*i)-Q(h*j));n=c;m=Q(c*c);o=Q(j*g);c=i;i=N[f+24>>2];j=Q(N[f+8>>2]-i);c=Q(o-Q(c*j));g=Q(Q(j*h)-Q(g*d));h=Q(Q(1)/Q(Y(Q(m+Q(Q(c*c)+Q(g*g))))));d=Q(n*h);c=Q(c*h);g=Q(g*h);if(k>Q(Q(Q(N[b+8>>2]*d)+Q(Q(N[b>>2]*c)+Q(N[b+4>>2]*g)))-Q(Q(i*d)+Q(Q(l*c)+Q(e*g))))){break a}p=1}sa=f+32|0;return p|0}function im(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=0,s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=0,E=Q(0),F=Q(0),G=Q(0),H=0,I=Q(0),L=Q(0),M=Q(0),O=Q(0),R=0;D=J[a+52>>2];if((D|0)<=0){return Q(Q(1))}f=K[a+68|0];H=f?b:c;b=f?c:b;I=N[b- -64>>2];E=N[b+60>>2];F=N[b+56>>2];G=N[b+52>>2];L=N[b+48>>2];h=N[b+44>>2];i=N[b+40>>2];j=N[b+36>>2];M=N[b+32>>2];k=N[b+28>>2];l=N[b+24>>2];m=N[b+20>>2];O=N[b+16>>2];n=N[b+12>>2];o=N[b+8>>2];r=J[b+304>>2];p=N[b+4>>2];R=J[b+192>>2];q=Q(1);f=0;while(1){c=J[R+32>>2]+P(f,80)|0;g=N[c+56>>2];s=N[c+52>>2];t=N[c+48>>2];u=N[c+36>>2];v=N[c+20>>2];w=N[c+4>>2];x=N[c+40>>2];y=N[c+24>>2];z=N[c+8>>2];A=N[c+32>>2];B=N[c>>2];C=N[c+16>>2];J[b+64>>2]=0;J[b+48>>2]=0;J[b+32>>2]=0;J[b+16>>2]=0;J[b+304>>2]=r+1;N[b+36>>2]=Q(A*h)+Q(Q(B*j)+Q(i*C));N[b+20>>2]=Q(A*k)+Q(Q(B*m)+Q(l*C));N[b+4>>2]=Q(A*n)+Q(Q(B*p)+Q(o*C));N[b+44>>2]=Q(x*h)+Q(Q(z*j)+Q(i*y));N[b+40>>2]=Q(u*h)+Q(Q(w*j)+Q(i*v));N[b+28>>2]=Q(x*k)+Q(Q(z*m)+Q(l*y));N[b+24>>2]=Q(u*k)+Q(Q(w*m)+Q(l*v));N[b+12>>2]=Q(x*n)+Q(Q(z*p)+Q(o*y));N[b+8>>2]=Q(u*n)+Q(Q(w*p)+Q(o*v));N[b+60>>2]=E+Q(Q(g*h)+Q(Q(t*j)+Q(i*s)));N[b+56>>2]=F+Q(Q(g*k)+Q(Q(t*m)+Q(l*s)));N[b+52>>2]=G+Q(Q(g*n)+Q(Q(t*p)+Q(o*s)));c=J[J[a+60>>2]+(f<<2)>>2];g=Q(ua[J[J[c>>2]+12>>2]](c,b,H,d,e));N[b+64>>2]=I;N[b+60>>2]=E;N[b+56>>2]=F;N[b+52>>2]=G;N[b+48>>2]=L;N[b+44>>2]=h;N[b+40>>2]=i;N[b+36>>2]=j;N[b+32>>2]=M;N[b+28>>2]=k;N[b+24>>2]=l;N[b+20>>2]=m;N[b+16>>2]=O;N[b+12>>2]=n;N[b+8>>2]=o;N[b+4>>2]=p;r=J[b+304>>2]+1|0;J[b+304>>2]=r;q=g>2];k=N[b>>2];j=N[b+8>>2];a:{if(Q(R(j))>Q(.7071067690849304)){h=Q(Q(g*g)+Q(j*j));i=Q(Q(1)/Q(Y(h)));m=Q(h*i);n=Q(g*i);h=Q(n*Q(100));l=Q(i*Q(-j));o=Q(k*l);n=Q(n*Q(-k));i=Q(0);break a}i=Q(Q(k*k)+Q(g*g));h=Q(Q(1)/Q(Y(i)));o=Q(i*h);m=Q(h*Q(-g));i=Q(m*Q(100));n=Q(j*m);l=Q(k*h);m=Q(l*Q(-j));h=Q(0)}p=N[d+52>>2];q=N[d+20>>2];r=N[d+24>>2];s=N[d+56>>2];t=N[d+36>>2];u=N[d+40>>2];v=N[d+48>>2];w=N[d+8>>2];x=N[d>>2];y=N[d+4>>2];z=N[d+16>>2];C=N[d+32>>2];J[f+28>>2]=0;j=Q(j*c);A=Q(j+h);k=Q(k*c);B=Q(k+i);c=Q(g*c);l=Q(l*Q(100));g=Q(c+l);N[f+24>>2]=s+Q(Q(u*A)+Q(Q(C*B)+Q(t*g)));N[f+20>>2]=p+Q(Q(A*r)+Q(Q(B*z)+Q(g*q)));N[f+16>>2]=v+Q(Q(A*w)+Q(Q(B*x)+Q(g*y)));J[f+12>>2]=0;g=Q(j-h);i=Q(k-i);h=Q(c-l);N[f+8>>2]=s+Q(Q(u*g)+Q(Q(C*i)+Q(t*h)));N[f+4>>2]=p+Q(Q(g*r)+Q(Q(i*z)+Q(h*q)));N[f>>2]=v+Q(Q(g*w)+Q(Q(i*x)+Q(h*y)));b=f+16|0;ua[J[J[a>>2]+16>>2]](a,b,f,e);g=N[d+52>>2];i=N[d+24>>2];h=N[d+20>>2];l=N[d+56>>2];p=N[d+40>>2];q=N[d+36>>2];r=N[d+48>>2];s=N[d+8>>2];t=N[d>>2];u=N[d+4>>2];v=N[d+16>>2];w=N[d+32>>2];J[f+28>>2]=0;x=Q(o*Q(100));o=Q(j+x);y=Q(m*Q(100));m=Q(k+y);z=Q(n*Q(100));n=Q(c+z);N[f+24>>2]=l+Q(Q(p*o)+Q(Q(w*m)+Q(q*n)));N[f+20>>2]=g+Q(Q(o*i)+Q(Q(m*v)+Q(n*h)));N[f+16>>2]=r+Q(Q(o*s)+Q(Q(m*t)+Q(n*u)));J[f+12>>2]=0;j=Q(j-x);k=Q(k-y);c=Q(c-z);N[f+8>>2]=l+Q(Q(p*j)+Q(Q(w*k)+Q(q*c)));N[f+4>>2]=g+Q(Q(j*i)+Q(Q(k*v)+Q(c*h)));N[f>>2]=r+Q(Q(j*s)+Q(Q(k*t)+Q(c*u)));ua[J[J[a>>2]+16>>2]](a,b,f,e);sa=f+32|0}function kb(a,b,c,d,e){var f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=0,o=Q(0),p=Q(0);n=sa-16|0;sa=n;f=N[a+52>>2];g=N[a+56>>2];i=N[a+48>>2];h=N[b>>2];j=N[b+4>>2];k=N[b+8>>2];J[e+60>>2]=0;N[e+56>>2]=g+Q(k*d);N[e+52>>2]=f+Q(j*d);N[e+48>>2]=i+Q(h*d);i=N[c+8>>2];l=N[c>>2];m=N[c+4>>2];f=Q(Q(i*i)+Q(Q(l*l)+Q(m*m)));f=f>Q(1.1920928955078125e-7)?Q(Y(f)):Q(0);g=Q(f*d)>Q(.7853981852531433)?Q(Q(.7853981852531433)/d):f;a:{if(g>2];j=N[n+12>>2];g=Ma(Q(Q(g*d)*Q(.5)));k=N[n>>2];l=Q(l*f);m=Q(m*f);o=Q(i*f);p=N[n+8>>2];f=Q(Q(Q(Q(j*g)-Q(k*l))-Q(h*m))-Q(o*p));i=Q(Q(Q(l*h)+Q(Q(g*p)+Q(o*j)))-Q(m*k));d=Q(Q(Q(m*p)+Q(Q(g*k)+Q(l*j)))-Q(o*h));g=Q(Q(Q(o*k)+Q(Q(g*h)+Q(m*j)))-Q(l*p));h=Q(Q(f*f)+Q(Q(i*i)+Q(Q(d*d)+Q(g*g))));if(h>Q(1.1920928955078125e-7)){h=Q(Q(1)/Q(Y(h)));f=Q(f*h);i=Q(i*h);d=Q(d*h);g=Q(g*h);h=Q(Q(f*f)+Q(Q(i*i)+Q(Q(d*d)+Q(g*g))))}b:{if(h>Q(1.1920928955078125e-7)){J[e+12>>2]=0;J[e+44>>2]=0;J[e+28>>2]=0;j=Q(Q(2)/h);h=Q(i*j);k=Q(g*h);l=Q(d*j);m=Q(f*l);N[e+36>>2]=k+m;o=Q(d*h);j=Q(g*j);p=Q(f*j);N[e+32>>2]=o-p;N[e+24>>2]=k-m;k=Q(d*j);f=Q(f*h);N[e+16>>2]=k+f;N[e+8>>2]=o+p;N[e+4>>2]=k-f;d=Q(d*l);f=Q(g*j);N[e+40>>2]=Q(1)-Q(d+f);g=d;d=Q(i*h);N[e+20>>2]=Q(1)-Q(g+d);N[e>>2]=Q(1)-Q(f+d);break b}b=J[a+4>>2];J[e>>2]=J[a>>2];J[e+4>>2]=b;b=J[a+12>>2];J[e+8>>2]=J[a+8>>2];J[e+12>>2]=b;b=J[a+20>>2];J[e+16>>2]=J[a+16>>2];J[e+20>>2]=b;b=J[a+28>>2];J[e+24>>2]=J[a+24>>2];J[e+28>>2]=b;b=J[a+36>>2];J[e+32>>2]=J[a+32>>2];J[e+36>>2]=b;b=J[a+44>>2];J[e+40>>2]=J[a+40>>2];J[e+44>>2]=b}sa=n+16|0}function Am(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=Q(0),h=Q(0),i=0,j=0,k=Q(0),l=0,m=Q(0),n=0,o=0,p=0;i=sa-144|0;sa=i;ua[J[8262]](7475);g=N[b>>2];h=N[b+16>>2];m=g>2];a:{if(N[a+20>>2]<(k>m?m:k)){break a}e=g>h;if(N[(k<(e?g:h)?!e<<4:32)+b>>2]>2]){break a}g=N[b+8>>2];e=b+24|0;h=N[e>>2];m=g>2];if(N[a+28>>2]<(k>m?m:k)){break a}l=e;e=g>h;if(N[(k<(e?g:h)?e?b+8|0:l:j)>>2]>2]){break a}g=N[b+4>>2];e=b+20|0;h=N[e>>2];m=g>2];if(N[a+24>>2]<(k>m?m:k)){break a}l=e;e=g>h;if(J[J[J[a+36>>2]+4>>2]+4>>2]>19|N[(k<(e?g:h)?e?b+4|0:l:j)>>2]>2]){break a}j=J[a+48>>2];e=Ob(i+28|0);J[e+4>>2]=1;J[e>>2]=15832;f=J[b+12>>2];J[e+72>>2]=J[b+8>>2];J[e+76>>2]=f;f=J[b+4>>2];J[e+64>>2]=J[b>>2];J[e+68>>2]=f;f=J[b+28>>2];J[e+88>>2]=J[b+24>>2];J[e+92>>2]=f;f=J[b+20>>2];J[e+80>>2]=J[b+16>>2];J[e+84>>2]=f;f=J[b+44>>2];J[e+104>>2]=J[b+40>>2];J[e+108>>2]=f;f=J[b+36>>2];J[e+96>>2]=J[b+32>>2];J[e+100>>2]=f;N[e+52>>2]=N[a+56>>2];b=J[a+40>>2];f=J[b+8>>2];n=J[b+12>>2];J[i+24>>2]=d;J[i+20>>2]=c;J[i+12>>2]=f;J[i+16>>2]=n;J[i+8>>2]=e;J[i+4>>2]=b;b=J[a+36>>2];b:{if(N[J[a+44>>2]+32>>2]>Q(0)){b=ua[J[J[j>>2]+8>>2]](j,b,i+4|0,0,2)|0;break b}b=ua[J[J[j>>2]+8>>2]](j,b,i+4|0,J[a+64>>2],1)|0}f=J[a+44>>2];n=J[f+8>>2];c:{if(J[n+8>>2]==J[J[a+40>>2]+8>>2]){l=f+8|0;o=2;break c}n=J[f+12>>2];l=f+12|0;o=3}p=l;l=i+4|0;J[p>>2]=l;ua[J[J[f>>2]+(o<<2)>>2]](f,c,d);ua[J[J[b>>2]+8>>2]](b,J[a+36>>2],l,J[a+52>>2],J[a+44>>2]);c=J[a+44>>2];J[(J[J[c+8>>2]+8>>2]==J[J[a+40>>2]+8>>2]?8:12)+c>>2]=n;ua[J[J[b>>2]>>2]](b)|0;ua[J[J[j>>2]+60>>2]](j,b);sb(e)}ua[J[8263]]();sa=i+144|0}function wd(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0;b=J[a+8>>2];c=J[a+32>>2];f=c?J[a+40>>2]:0;d=c;c=J[a+52>>2];g=c?J[a+60>>2]:0;h=c;c=J[a+72>>2];Q(ua[J[J[b>>2]+12>>2]](b,f,d,g,h,c?J[a+80>>2]:0,c,J[a+4>>2],J[a+20>>2],J[a+24>>2]));c=J[a+32>>2];a:{if((c|0)>=0){break a}if(J[a+36>>2]<0){b=J[a+40>>2];if(!(b?!b|!K[a+44|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}H[a+44|0]=1;J[a+36>>2]=0;J[a+40>>2]=0}b=c;d=0-b&3;if(d){while(1){J[J[a+40>>2]+(b<<2)>>2]=0;b=b+1|0;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(c>>>0>4294967292){break a}while(1){c=b<<2;J[c+J[a+40>>2]>>2]=0;J[(c+J[a+40>>2]|0)+4>>2]=0;J[(c+J[a+40>>2]|0)+8>>2]=0;J[(c+J[a+40>>2]|0)+12>>2]=0;b=b+4|0;if(b){continue}break}}J[a+32>>2]=0;c=J[a+52>>2];b:{if((c|0)>=0){break b}if(J[a+56>>2]<0){b=J[a+60>>2];if(!(b?!b|!K[a- -64|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}H[a+64|0]=1;J[a+56>>2]=0;J[a+60>>2]=0}e=0;b=c;d=0-b&3;if(d){while(1){J[J[a+60>>2]+(b<<2)>>2]=0;b=b+1|0;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(c>>>0>4294967292){break b}while(1){c=b<<2;J[c+J[a+60>>2]>>2]=0;J[(c+J[a+60>>2]|0)+4>>2]=0;J[(c+J[a+60>>2]|0)+8>>2]=0;J[(c+J[a+60>>2]|0)+12>>2]=0;b=b+4|0;if(b){continue}break}}J[a+52>>2]=0;c=J[a+72>>2];c:{if((c|0)>=0){break c}if(J[a+76>>2]<0){b=J[a+80>>2];if(!(b?!b|!K[a+84|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}H[a+84|0]=1;J[a+76>>2]=0;J[a+80>>2]=0}e=0;b=c;d=0-b&3;if(d){while(1){J[J[a+80>>2]+(b<<2)>>2]=0;b=b+1|0;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(c>>>0>4294967292){break c}while(1){c=b<<2;J[c+J[a+80>>2]>>2]=0;J[(c+J[a+80>>2]|0)+4>>2]=0;J[(c+J[a+80>>2]|0)+8>>2]=0;J[(c+J[a+80>>2]|0)+12>>2]=0;b=b+4|0;if(b){continue}break}}J[a+72>>2]=0}function bn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=0;e=sa-256|0;sa=e;J[e+36>>2]=14660;f=J[b+12>>2];J[e+80>>2]=J[b+8>>2];J[e+84>>2]=f;f=J[b+4>>2];J[e+72>>2]=J[b>>2];J[e+76>>2]=f;f=J[c+12>>2];J[e+96>>2]=J[c+8>>2];J[e+100>>2]=f;f=J[c>>2];m=J[c+4>>2];J[e+108>>2]=0;J[e+112>>2]=0;J[e+116>>2]=0;J[e+120>>2]=0;J[e+128>>2]=0;J[e+132>>2]=0;J[e+124>>2]=1065353216;J[e+136>>2]=0;J[e+140>>2]=0;J[e+144>>2]=1065353216;J[e+148>>2]=0;J[e+88>>2]=f;J[e+92>>2]=m;J[e+252>>2]=d;J[e+104>>2]=1065353216;J[e+248>>2]=a;d=J[b+4>>2];J[e+152>>2]=J[b>>2];J[e+156>>2]=d;d=J[b+12>>2];J[e+160>>2]=J[b+8>>2];J[e+164>>2]=d;J[e+172>>2]=0;J[e+176>>2]=0;J[e+180>>2]=0;J[e+184>>2]=0;J[e+188>>2]=1065353216;J[e+192>>2]=0;J[e+196>>2]=0;J[e+200>>2]=0;J[e+204>>2]=0;J[e+208>>2]=1065353216;J[e+212>>2]=0;J[e+168>>2]=1065353216;d=J[c+12>>2];J[e+224>>2]=J[c+8>>2];J[e+228>>2]=d;d=J[c+4>>2];J[e+216>>2]=J[c>>2];J[e+220>>2]=d;g=Q(N[c+8>>2]-N[b+8>>2]);j=Q(N[c>>2]-N[b>>2]);h=Q(N[c+4>>2]-N[b+4>>2]);i=Q(Q(1)/Q(Y(Q(Q(g*g)+Q(Q(j*j)+Q(h*h))))));g=Q(g*i);k=g==Q(0)?Q(0xde0b6b000000000):Q(Q(1)/g);N[e+48>>2]=k;h=Q(h*i);l=h==Q(0)?Q(0xde0b6b000000000):Q(Q(1)/h);N[e+44>>2]=l;J[e- -64>>2]=k>2]=l>2]=j;J[e+56>>2]=j>2]=Q(g*Q(N[e+96>>2]-N[e+80>>2]))+Q(Q(i*Q(N[e+88>>2]-N[e+72>>2]))+Q(h*Q(N[e+92>>2]-N[e+76>>2])));a=J[a+68>>2];J[e+24>>2]=0;J[e+28>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;J[e>>2]=0;J[e+4>>2]=0;ua[J[J[a>>2]+24>>2]](a,b,c,e+36|0,e+16|0,e);sa=e+256|0}function Kc(a){a=a|0;var b=0;J[a>>2]=16752;if(K[a+20|0]){b=J[J[a+16>>2]+16>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}b=J[a+16>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}}if(K[a+12|0]){b=J[J[a+8>>2]+16>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}b=J[a+8>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}}b=J[a+28>>2];ua[J[J[b>>2]>>2]](b)|0;b=J[a+28>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}b=J[a+32>>2];ua[J[J[b>>2]>>2]](b)|0;b=J[a+32>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}b=J[a+36>>2];ua[J[J[b>>2]>>2]](b)|0;b=J[a+36>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}b=J[a+40>>2];ua[J[J[b>>2]>>2]](b)|0;b=J[a+40>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}b=J[a+44>>2];ua[J[J[b>>2]>>2]](b)|0;b=J[a+44>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}b=J[a+48>>2];ua[J[J[b>>2]>>2]](b)|0;b=J[a+48>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}b=J[a+52>>2];ua[J[J[b>>2]>>2]](b)|0;b=J[a+52>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}b=J[a+56>>2];ua[J[J[b>>2]>>2]](b)|0;b=J[a+56>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}b=J[a+72>>2];ua[J[J[b>>2]>>2]](b)|0;b=J[a+72>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}b=J[a+76>>2];ua[J[J[b>>2]>>2]](b)|0;b=J[a+76>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}b=J[a+68>>2];ua[J[J[b>>2]>>2]](b)|0;b=J[a+68>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}b=J[a+84>>2];ua[J[J[b>>2]>>2]](b)|0;b=J[a+84>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}b=J[a+80>>2];ua[J[J[b>>2]>>2]](b)|0;b=J[a+80>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}b=J[a+24>>2];ua[J[J[b>>2]>>2]](b)|0;b=J[a+24>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}return a|0}function aq(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:{b:{c:{d:{e:{f:{g:{h:{d=J[J[b>>2]+192>>2];if(J[d+4>>2]!=31){break h}f=J[b+4>>2];if(!f){break h}n=J[J[(J[d+32>>2]+P(J[f>>2],80)|0)+64>>2]+8>>2];d=J[a+136>>2];if((d|0)!=J[a+140>>2]){break a}j=d?d<<1:1;if((j|0)<=(d|0)){break a}if(j){J[8456]=J[8456]+1;g=ua[J[8258]](j<<2,16)|0;d=J[a+136>>2]}f=J[a+144>>2];if((d|0)<=0){break g}if(d>>>0>=4){m=d&-4;while(1){e=h<<2;J[e+g>>2]=J[f+e>>2];i=e|4;J[i+g>>2]=J[f+i>>2];i=e|8;J[i+g>>2]=J[f+i>>2];e=e|12;J[e+g>>2]=J[f+e>>2];h=h+4|0;k=k+4|0;if((m|0)!=(k|0)){continue}break}}d=d&3;if(!d){break c}while(1){e=h<<2;J[e+g>>2]=J[f+e>>2];h=h+1|0;l=l+1|0;if((d|0)!=(l|0)){continue}break}break c}n=J[d+8>>2];d=J[a+136>>2];if((d|0)!=J[a+140>>2]){break a}j=d?d<<1:1;if((j|0)<=(d|0)){break a}if(j){J[8456]=J[8456]+1;g=ua[J[8258]](j<<2,16)|0;d=J[a+136>>2]}f=J[a+144>>2];if((d|0)<=0){break f}if(d>>>0>=4){m=d&-4;while(1){e=h<<2;J[e+g>>2]=J[f+e>>2];i=e|4;J[i+g>>2]=J[f+i>>2];i=e|8;J[i+g>>2]=J[f+i>>2];e=e|12;J[e+g>>2]=J[f+e>>2];h=h+4|0;k=k+4|0;if((m|0)!=(k|0)){continue}break}}d=d&3;if(!d){break e}while(1){e=h<<2;J[e+g>>2]=J[f+e>>2];h=h+1|0;l=l+1|0;if((d|0)!=(l|0)){continue}break}break e}if(f){break c}break b}if(!f){break d}}if(f?K[a+148|0]:0){J[8457]=J[8457]+1;ua[J[8259]](f)}d=J[a+136>>2]}J[a+144>>2]=g;J[a+140>>2]=j;H[a+148|0]=1;break a}if(f?K[a+148|0]:0){J[8457]=J[8457]+1;ua[J[8259]](f)}d=J[a+136>>2]}J[a+144>>2]=g;J[a+140>>2]=j;H[a+148|0]=1}J[J[a+144>>2]+(d<<2)>>2]=n;J[a+136>>2]=J[a+136>>2]+1;return Q(Kf(a,b,c))}function Ec(a){var b=0,c=0,d=Q(0),e=0,f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=0;e=J[a+28>>2];if((e|0)<=0){return 1}f=N[a+84>>2];g=N[a+68>>2];i=Q(f+g);h=N[a+88>>2];d=N[a+72>>2];j=Q(h+d);h=Q(d-h);f=Q(g-f);d=N[a+80>>2];k=N[a+64>>2];g=Q(d+k);d=Q(k-d);a=J[a+36>>2];a:{b:{while(1){b=a+P(c,36)|0;if(Q(N[b+32>>2]+Q(Q(j*N[b+28>>2])+Q(Q(g*N[b+20>>2])+Q(i*N[b+24>>2]))))>Q(0)){break b}c=c+1|0;if((e|0)!=(c|0)){continue}break}c=0;while(1){b=a+P(c,36)|0;if(Q(N[b+32>>2]+Q(Q(h*N[b+28>>2])+Q(Q(g*N[b+20>>2])+Q(i*N[b+24>>2]))))>Q(0)){break a}c=c+1|0;if((e|0)!=(c|0)){continue}break}c=0;while(1){b=a+P(c,36)|0;if(Q(N[b+32>>2]+Q(Q(j*N[b+28>>2])+Q(Q(g*N[b+20>>2])+Q(f*N[b+24>>2]))))>Q(0)){break a}c=c+1|0;if((e|0)!=(c|0)){continue}break}c=0;while(1){b=a+P(c,36)|0;if(Q(N[b+32>>2]+Q(Q(h*N[b+28>>2])+Q(Q(g*N[b+20>>2])+Q(f*N[b+24>>2]))))>Q(0)){break a}c=c+1|0;if((e|0)!=(c|0)){continue}break}c=0;while(1){b=a+P(c,36)|0;if(Q(N[b+32>>2]+Q(Q(j*N[b+28>>2])+Q(Q(d*N[b+20>>2])+Q(i*N[b+24>>2]))))>Q(0)){break a}c=c+1|0;if((e|0)!=(c|0)){continue}break}c=0;while(1){b=a+P(c,36)|0;if(Q(N[b+32>>2]+Q(Q(h*N[b+28>>2])+Q(Q(d*N[b+20>>2])+Q(i*N[b+24>>2]))))>Q(0)){break a}c=c+1|0;if((e|0)!=(c|0)){continue}break}c=0;while(1){b=a+P(c,36)|0;if(Q(N[b+32>>2]+Q(Q(j*N[b+28>>2])+Q(Q(d*N[b+20>>2])+Q(f*N[b+24>>2]))))>Q(0)){break a}c=c+1|0;if((e|0)!=(c|0)){continue}break}c=0;while(1){c:{b=a+P(c,36)|0;b=Q(N[b+32>>2]+Q(Q(h*N[b+28>>2])+Q(Q(d*N[b+20>>2])+Q(f*N[b+24>>2]))))>Q(0);l=!b;if(b){break c}c=c+1|0;if((e|0)!=(c|0)){continue}}break}return l}return 0}return 0}function vr(a,b,c){a=a|0;b=Q(b);c=Q(c);var d=Q(0),e=Q(0),f=0,g=0,h=0,i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=0,z=Q(0);h=sa-16|0;sa=h;N[h+12>>2]=b;d=N[a+692>>2];a:{if(!(d>Q(0))){break a}e=N[a+688>>2];b=Qa(Q(N[h+12>>2]-e));b:{if(bQ(3.1415927410125732))){break b}b=Q(b+Q(-6.2831854820251465))}if(!(Q(-d)>b)&b<=d){break a}c:{if(b>Q(0)){b=Qa(Q(d+e));if(bQ(3.1415927410125732))){break c}b=Q(b+Q(-6.2831854820251465));break c}b=Qa(Q(e-d));if(bQ(3.1415927410125732))){break c}b=Q(b+Q(-6.2831854820251465))}N[h+12>>2]=b}f=J[a+32>>2];b=N[a+652>>2];d=N[a+620>>2];e=N[a+636>>2];m=Q(Q(N[f+44>>2]*b)+Q(Q(N[f+36>>2]*d)+Q(e*N[f+40>>2])));g=J[a+28>>2];n=N[g+44>>2];i=N[a+584>>2];o=N[g+36>>2];j=N[a+552>>2];k=N[a+568>>2];p=N[g+40>>2];v=Q(m*Q(Q(n*i)+Q(Q(o*j)+Q(k*p))));q=Q(Q(N[f+12>>2]*b)+Q(Q(N[f+4>>2]*d)+Q(e*N[f+8>>2])));r=N[g+12>>2];s=N[g+4>>2];t=N[g+8>>2];w=Q(q*Q(Q(r*i)+Q(Q(s*j)+Q(k*t))));u=N[g+28>>2];l=Q(u*i);i=N[g+20>>2];x=Q(i*j);j=N[g+24>>2];l=Q(l+Q(x+Q(k*j)));k=Q(Q(N[f+28>>2]*b)+Q(Q(N[f+20>>2]*d)+Q(e*N[f+24>>2])));b=N[a+588>>2];d=N[a+556>>2];e=N[a+572>>2];y=a,z=Q(Q(N[h+12>>2]-Q(Ia(Q(v+Q(w+Q(l*k))),Q(Q(m*Q(Q(n*b)+Q(Q(o*d)+Q(p*e))))+Q(Q(q*Q(Q(r*b)+Q(Q(s*d)+Q(t*e))))+Q(Q(Q(u*b)+Q(Q(i*d)+Q(j*e)))*k))))*N[a+732>>2]))/c),N[y+680>>2]=z;sa=h+16|0}function Ei(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=0,j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=0,B=Q(0);i=sa-32|0;sa=i;h=N[b+20>>2];r=N[b+36>>2];s=N[b+24>>2];x=N[b+40>>2];j=N[b+4>>2];t=N[b+32>>2];o=N[b+8>>2];p=N[b>>2];u=N[b+16>>2];J[i+28>>2]=0;g=Q(u-p);k=Q(r-j);e=Q(t-p);l=Q(h-j);f=Q(Q(g*k)-Q(e*l));m=l;l=Q(x-o);n=Q(s-o);k=Q(Q(m*l)-Q(k*n));g=Q(Q(n*e)-Q(l*g));e=Q(Q(o*f)+Q(Q(p*k)+Q(j*g)));v=N[a+12>>2];m=N[a+4>>2];q=N[a+8>>2];l=Q(Q(Q(f*v)+Q(Q(k*m)+Q(g*q)))-e);w=N[a+28>>2];y=N[a+20>>2];z=N[a+24>>2];e=Q(Q(Q(f*w)+Q(Q(k*y)+Q(g*z)))-e);a:{if(Q(l*e)>=Q(0)){break a}b=J[a+36>>2];if(b&1&l<=Q(0)){break a}e=Q(l/Q(l-e));if(!(e>2])){break a}n=Q(Q(1)-e);m=Q(Q(n*m)+Q(y*e));p=Q(p-m);q=Q(Q(n*q)+Q(z*e));h=Q(h-q);u=Q(u-m);j=Q(j-q);n=Q(Q(n*v)+Q(w*e));s=Q(s-n);o=Q(o-n);w=Q(Q(f*f)+Q(Q(k*k)+Q(g*g)));v=Q(w*Q(-9999999747378752e-20));if(!(Q(Q(Q(Q(p*h)-Q(u*j))*f)+Q(Q(Q(Q(j*s)-Q(h*o))*k)+Q(g*Q(Q(o*u)-Q(s*p)))))>=v)){break a}r=Q(r-q);t=Q(t-m);q=Q(Q(Q(u*r)-Q(t*h))*f);m=h;h=Q(x-n);if(!(v<=Q(q+Q(Q(Q(Q(m*h)-Q(r*s))*k)+Q(g*Q(Q(s*t)-Q(h*u))))))|!(v<=Q(Q(Q(Q(t*j)-Q(p*r))*f)+Q(Q(Q(Q(r*o)-Q(j*h))*k)+Q(g*Q(Q(h*p)-Q(o*t))))))){break a}h=f;f=Q(Q(1)/Q(Y(w)));j=Q(h*f);N[i+24>>2]=j;g=Q(g*f);N[i+20>>2]=g;f=Q(k*f);N[i+16>>2]=f;if(!(!(l<=Q(0))|b&2)){J[i+12>>2]=0;N[i+8>>2]=-j;N[i+4>>2]=-g;N[i>>2]=-f;A=a,B=Q(ua[J[J[a>>2]+12>>2]](a,i,e,c,d)),N[A+40>>2]=B;break a}A=a,B=Q(ua[J[J[a>>2]+12>>2]](a,i+16|0,e,c,d)),N[A+40>>2]=B}sa=i+32|0}function Hn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=sa-32|0;sa=c;J[c+24>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;H[c+28|0]=1;a:{if(J[a+8>>2]<=0){break a}while(1){e=J[a+16>>2]+(j<<4)|0;b:{if(J[c+20>>2]!=(d|0)){break b}f=d?d<<1:1;if((f|0)<=(d|0)){break b}h=0;i=0;if(f){J[8456]=J[8456]+1;i=ua[J[8258]](f<<4,16)|0}if((d|0)>0){while(1){g=h<<4;k=g+i|0;g=g+J[c+24>>2]|0;J[k>>2]=J[g>>2];J[k+4>>2]=J[g+4>>2];J[k+8>>2]=J[g+8>>2];J[k+12>>2]=J[g+12>>2];h=h+1|0;if((h|0)!=(d|0)){continue}break}}d=J[c+24>>2];if(!(d?!d|!K[c+28|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](d)}J[c+24>>2]=i;H[c+28|0]=1;J[c+20>>2]=f;d=J[c+16>>2]}d=J[c+24>>2]+(d<<4)|0;J[d>>2]=J[e>>2];J[d+4>>2]=J[e+4>>2];J[d+8>>2]=J[e+8>>2];J[d+12>>2]=J[e+12>>2];f=J[c+16>>2];d=f+1|0;J[c+16>>2]=d;j=j+1|0;if((j|0)>2]){continue}break}e=0;if((f|0)<0){break a}i=f+1|0;k=i&1;h=J[c+24>>2];if(f){i=i&-2;f=0;while(1){g=e<<4;j=g+h|0;ua[J[J[a>>2]+12>>2]](a,J[j>>2],J[j+4>>2],b)|0;g=h+(g|16)|0;ua[J[J[a>>2]+12>>2]](a,J[g>>2],J[g+4>>2],b)|0;e=e+2|0;f=f+2|0;if((i|0)!=(f|0)){continue}break}}if(!k){break a}e=h+(e<<4)|0;ua[J[J[a>>2]+12>>2]](a,J[e>>2],J[e+4>>2],b)|0}if(J[a+52>>2]>0){b=J[a+60>>2];e=0;while(1){J[b+(e<<2)>>2]=-1;e=e+1|0;if((e|0)>2]){continue}break}d=J[c+16>>2]}if((d|0)>=2){Yb(c+12|0,c+11|0,0,d-1|0);d=J[c+16>>2]}if((d|0)>0){e=0;while(1){b=J[c+24>>2]+(e<<4)|0;ua[J[J[a>>2]+8>>2]](a,J[b>>2],J[b+4>>2])|0;e=e+1|0;if((e|0)>2]){continue}break}}a=J[c+24>>2];if(!(a?!a|!K[c+28|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](a)}sa=c+32|0}function ih(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=sa-16|0;sa=k;ua[J[8262]](4554);b=J[a+220>>2];ua[J[J[b>>2]+8>>2]](b,a,J[a+24>>2]);h=J[a+324>>2];if((h|0)>0){i=J[a+332>>2];j=J[a+220>>2];while(1){b=J[i+(g<<2)>>2];c=J[b+836>>2];a:{if(!c){break a}b=J[b+840>>2];if(!b|J[c+204>>2]&3|K[b+204|0]&3){break a}b=J[b+208>>2];d=J[j+16>>2];e=J[c+208>>2];f=d+(e<<3)|0;c=J[f>>2];if((c|0)!=(e|0)){while(1){c=d+(c<<3)|0;J[f>>2]=J[c>>2];e=J[c>>2];f=d+(e<<3)|0;c=J[f>>2];if((c|0)!=(e|0)){continue}break}}f=d+(b<<3)|0;c=J[f>>2];if((c|0)!=(b|0)){while(1){b=d+(c<<3)|0;J[f>>2]=J[b>>2];b=J[b>>2];f=d+(b<<3)|0;c=J[f>>2];if((b|0)!=(c|0)){continue}break}}if((b|0)==(e|0)){break a}c=d+(e<<3)|0;J[c>>2]=b;b=d+(b<<3)|0;J[b+4>>2]=J[b+4>>2]+J[c+4>>2]}g=g+1|0;if((h|0)!=(g|0)){continue}break}}h=J[a+228>>2];if((h|0)>0){i=J[a+236>>2];j=J[a+220>>2];f=0;while(1){b=J[i+(f<<2)>>2];b:{if(!K[b+20|0]){break b}c=J[b+28>>2];if(K[c+204|0]&3){break b}b=J[b+32>>2];if(K[b+204|0]&3){break b}b=J[b+208>>2];d=J[j+16>>2];e=J[c+208>>2];c=d+(e<<3)|0;g=J[c>>2];if((g|0)!=(e|0)){while(1){e=c;c=d+(g<<3)|0;J[e>>2]=J[c>>2];e=J[c>>2];c=d+(e<<3)|0;g=J[c>>2];if((g|0)!=(e|0)){continue}break}}c=d+(b<<3)|0;g=J[c>>2];if((g|0)!=(b|0)){while(1){b=d+(g<<3)|0;J[c>>2]=J[b>>2];b=J[b>>2];c=d+(b<<3)|0;g=J[c>>2];if((b|0)!=(g|0)){continue}break}}if((b|0)==(e|0)){break b}c=d+(e<<3)|0;J[c>>2]=b;b=d+(b<<3)|0;J[b+4>>2]=J[b+4>>2]+J[c+4>>2]}f=f+1|0;if((h|0)!=(f|0)){continue}break}}b=J[a+220>>2];ua[J[J[b>>2]+12>>2]](b,a);ua[J[8263]]();sa=k+16|0}function or(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=J[b+4>>2];J[a+40>>2]=J[b>>2];J[a+44>>2]=f;f=J[b+12>>2];J[a+48>>2]=J[b+8>>2];J[a+52>>2]=f;b=J[c+4>>2];J[a+56>>2]=J[c>>2];J[a+60>>2]=b;f=J[c+12>>2];b=a- -64|0;J[b>>2]=J[c+8>>2];J[b+4>>2]=f;H[a+152|0]=e;J[a+12>>2]=d;J[a+4>>2]=1065353216;J[a+8>>2]=0;c=J[a+136>>2];if((c|0)<0){b=J[a+144>>2];if(J[a+140>>2]<0){if(!(b?!b|!K[a+148|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}H[a+148|0]=1;J[a+140>>2]=0;J[a+144>>2]=0;b=0}d=b;b=c<<2;Fa(d+b|0,0,0-b|0)}J[a+136>>2]=0;c=J[a+116>>2];if((c|0)<0){b=J[a+124>>2];if(J[a+120>>2]<0){if(!(b?!b|!K[a+128|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}H[a+128|0]=1;J[a+120>>2]=0;J[a+124>>2]=0;b=0}d=b;b=c<<2;Fa(d+b|0,0,0-b|0)}J[a+116>>2]=0;c=J[a+24>>2];a:{if((c|0)>=0){break a}if(J[a+28>>2]<0){b=J[a+32>>2];if(!(b?!b|!K[a+36|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}H[a+36|0]=1;J[a+28>>2]=0;J[a+32>>2]=0}d=0;b=c;e=0-b&3;if(e){while(1){J[J[a+32>>2]+(b<<2)>>2]=0;b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}if(c>>>0>4294967292){break a}while(1){c=b<<2;J[c+J[a+32>>2]>>2]=0;J[(c+J[a+32>>2]|0)+4>>2]=0;J[(c+J[a+32>>2]|0)+8>>2]=0;J[(c+J[a+32>>2]|0)+12>>2]=0;b=b+4|0;if(b){continue}break}}J[a+24>>2]=0;if((J[a+96>>2]&J[a+100>>2])<0){b=J[a+104>>2];if(!(b?!b|!K[a+108|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}H[a+108|0]=1;J[a+100>>2]=0;J[a+104>>2]=0}J[a+96>>2]=0;if((J[a+76>>2]&J[a+80>>2])<0){b=J[a+84>>2];if(!(b?!b|!K[a+88|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}H[a+88|0]=1;J[a+80>>2]=0;J[a+84>>2]=0}J[a+76>>2]=0}function Mp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=J[b+4>>2];J[a+40>>2]=J[b>>2];J[a+44>>2]=f;f=J[b+12>>2];J[a+48>>2]=J[b+8>>2];J[a+52>>2]=f;b=J[c+4>>2];J[a+56>>2]=J[c>>2];J[a+60>>2]=b;f=J[c+12>>2];b=a- -64|0;J[b>>2]=J[c+8>>2];J[b+4>>2]=f;H[a+152|0]=e;J[a+12>>2]=d;J[a+4>>2]=1065353216;c=J[a+136>>2];if((c|0)<0){b=J[a+144>>2];if(J[a+140>>2]<0){if(!(b?!b|!K[a+148|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}H[a+148|0]=1;J[a+140>>2]=0;J[a+144>>2]=0;b=0}d=b;b=c<<2;Fa(d+b|0,0,0-b|0)}J[a+136>>2]=0;c=J[a+116>>2];if((c|0)<0){b=J[a+124>>2];if(J[a+120>>2]<0){if(!(b?!b|!K[a+128|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}H[a+128|0]=1;J[a+120>>2]=0;J[a+124>>2]=0;b=0}d=b;b=c<<2;Fa(d+b|0,0,0-b|0)}J[a+116>>2]=0;c=J[a+24>>2];a:{if((c|0)>=0){break a}if(J[a+28>>2]<0){b=J[a+32>>2];if(!(b?!b|!K[a+36|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}H[a+36|0]=1;J[a+28>>2]=0;J[a+32>>2]=0}d=0;b=c;e=0-b&3;if(e){while(1){J[J[a+32>>2]+(b<<2)>>2]=0;b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}if(c>>>0>4294967292){break a}while(1){c=b<<2;J[c+J[a+32>>2]>>2]=0;J[(c+J[a+32>>2]|0)+4>>2]=0;J[(c+J[a+32>>2]|0)+8>>2]=0;J[(c+J[a+32>>2]|0)+12>>2]=0;b=b+4|0;if(b){continue}break}}J[a+24>>2]=0;if((J[a+96>>2]&J[a+100>>2])<0){b=J[a+104>>2];if(!(b?!b|!K[a+108|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}H[a+108|0]=1;J[a+100>>2]=0;J[a+104>>2]=0}J[a+96>>2]=0;if((J[a+76>>2]&J[a+80>>2])<0){b=J[a+84>>2];if(!(b?!b|!K[a+88|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}H[a+88|0]=1;J[a+80>>2]=0;J[a+84>>2]=0}J[a+76>>2]=0}function gj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a:{b:{c:{switch(J[a+100>>2]-2|0){case 0:b=J[a+108>>2];J[c>>2]=J[a+104>>2];J[c+4>>2]=b;b=J[a+116>>2];J[c+8>>2]=J[a+112>>2];J[c+12>>2]=b;a=a+120|0;break b;case 1:d:{switch(b|0){case 0:b=J[a+108>>2];J[c>>2]=J[a+104>>2];J[c+4>>2]=b;b=J[a+116>>2];J[c+8>>2]=J[a+112>>2];J[c+12>>2]=b;a=a+120|0;break b;case 1:b=J[a+132>>2];J[c+8>>2]=J[a+128>>2];J[c+12>>2]=b;b=J[a+124>>2];J[c>>2]=J[a+120>>2];J[c+4>>2]=b;a=a+136|0;break b;case 2:break d;default:break a}}b=J[a+148>>2];J[c+8>>2]=J[a+144>>2];J[c+12>>2]=b;b=J[a+140>>2];J[c>>2]=J[a+136>>2];J[c+4>>2]=b;a=a+104|0;break b;case 2:break c;default:break a}}e:{switch(b|0){case 0:b=J[a+108>>2];J[c>>2]=J[a+104>>2];J[c+4>>2]=b;b=J[a+116>>2];J[c+8>>2]=J[a+112>>2];J[c+12>>2]=b;a=a+120|0;break b;case 1:b=J[a+132>>2];J[c+8>>2]=J[a+128>>2];J[c+12>>2]=b;b=J[a+124>>2];J[c>>2]=J[a+120>>2];J[c+4>>2]=b;a=a+136|0;break b;case 2:b=J[a+148>>2];J[c+8>>2]=J[a+144>>2];J[c+12>>2]=b;b=J[a+140>>2];J[c>>2]=J[a+136>>2];J[c+4>>2]=b;a=a+104|0;break b;case 3:b=J[a+108>>2];J[c>>2]=J[a+104>>2];J[c+4>>2]=b;b=J[a+116>>2];J[c+8>>2]=J[a+112>>2];J[c+12>>2]=b;a=a+152|0;break b;case 4:b=J[a+132>>2];J[c+8>>2]=J[a+128>>2];J[c+12>>2]=b;b=J[a+124>>2];J[c>>2]=J[a+120>>2];J[c+4>>2]=b;a=a+152|0;break b;case 5:break e;default:break a}}b=J[a+148>>2];J[c+8>>2]=J[a+144>>2];J[c+12>>2]=b;b=J[a+140>>2];J[c>>2]=J[a+136>>2];J[c+4>>2]=b;a=a+152|0}b=J[a+4>>2];J[d>>2]=J[a>>2];J[d+4>>2]=b;b=J[a+12>>2];J[d+8>>2]=J[a+8>>2];J[d+12>>2]=b}}function eh(a,b){a=a|0;b=Q(b);var c=0,d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=0,m=0,n=0,o=Q(0);n=sa-16|0;sa=n;ua[J[8262]](5587);l=J[a+248>>2];if((l|0)>0){while(1){c=J[J[a+256>>2]+(m<<2)>>2];if(!(K[c+204|0]&3)){d=N[c+372>>2];k=N[c+504>>2];e=md(Q(Q(1)-k),b);d=Q(d*e);N[c+372>>2]=d;h=Q(e*N[c+376>>2]);N[c+376>>2]=h;e=Q(e*N[c+380>>2]);N[c+380>>2]=e;g=N[c+388>>2];o=N[c+508>>2];f=md(Q(Q(1)-o),b);g=Q(g*f);N[c+388>>2]=g;i=Q(f*N[c+392>>2]);N[c+392>>2]=i;f=Q(f*N[c+396>>2]);N[c+396>>2]=f;a:{if(!K[c+512|0]){break a}if(!(!(N[c+524>>2]>Q(Q(f*f)+Q(Q(g*g)+Q(i*i))))|!(N[c+520>>2]>Q(Q(e*e)+Q(Q(d*d)+Q(h*h)))))){j=N[c+516>>2];f=Q(f*j);N[c+396>>2]=f;i=Q(i*j);N[c+392>>2]=i;g=Q(g*j);N[c+388>>2]=g;e=Q(e*j);N[c+380>>2]=e;h=Q(h*j);N[c+376>>2]=h;d=Q(d*j);N[c+372>>2]=d}j=Q(Y(Q(Q(e*e)+Q(Q(d*d)+Q(h*h)))));b:{if(!(jQ(.004999999888241291)){k=e;e=Q(Q(1)/j);N[c+380>>2]=k-Q(Q(k*e)*Q(.004999999888241291));N[c+376>>2]=h-Q(Q(h*e)*Q(.004999999888241291));N[c+372>>2]=d-Q(Q(d*e)*Q(.004999999888241291));break b}J[c+372>>2]=0;J[c+376>>2]=0;J[c+380>>2]=0;J[c+384>>2]=0}d=Q(Y(Q(Q(f*f)+Q(Q(g*g)+Q(i*i)))));if(!(dQ(.004999999888241291)){d=Q(Q(1)/d);N[c+396>>2]=f-Q(Q(f*d)*Q(.004999999888241291));N[c+392>>2]=i-Q(Q(i*d)*Q(.004999999888241291));N[c+388>>2]=g-Q(Q(g*d)*Q(.004999999888241291));break a}J[c+388>>2]=0;J[c+392>>2]=0;J[c+396>>2]=0;J[c+400>>2]=0}pb(c,b,c+68|0);l=J[a+248>>2]}m=m+1|0;if((m|0)<(l|0)){continue}break}}ua[J[8263]]();sa=n+16|0}function Jn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;J[8459]=J[8459]+1;e=J[b+12>>2]>J[c+12>>2];h=e?b:c;f=J[h+12>>2];i=e?c:b;g=J[i+12>>2];b=f<<16|g;b=(b<<15^-1)+b|0;b=P(b>>>10^b,9);b=b>>>6^b;b=(b<<11^-1)+b|0;j=J[a+12>>2]-1&(b>>>16^b);c=J[J[a+40>>2]+(j<<2)>>2];a:{if((c|0)==-1){break a}k=J[a+60>>2];e=J[a+16>>2];while(1){b=e+(c<<4)|0;if(!((g|0)==J[J[b>>2]+12>>2]&(f|0)==J[J[b+4>>2]+12>>2])){c=J[(c<<2)+k>>2];if((c|0)!=-1){continue}break a}break}ua[J[J[a>>2]+32>>2]](a,b,d);l=J[(e+(c<<4)|0)+12>>2];b:{c:{f=J[a+40>>2]+(j<<2)|0;c=J[f>>2];e=b-J[a+16>>2]>>4;if((c|0)==(e|0)){break c}g=J[a+60>>2];while(1){b=c;c=J[g+(b<<2)>>2];if((e|0)!=(c|0)){continue}break}if((b|0)==-1){break c}c=b<<2;b=J[a+60>>2];J[c+b>>2]=J[b+(e<<2)>>2];break b}J[f>>2]=J[J[a+60>>2]+(e<<2)>>2]}f=J[a+8>>2]-1|0;b=J[a+68>>2];if(b){ua[J[J[b>>2]+12>>2]](b,i,h,d)|0}if((e|0)!=(f|0)){d:{e:{h=J[a+16>>2];d=h+(f<<4)|0;b=J[J[d+4>>2]+12>>2]<<16|J[J[d>>2]+12>>2];b=(b<<15^-1)+b|0;b=P(b>>>10^b,9);b=b>>>6^b;b=(b<<11^-1)+b|0;i=J[a+12>>2]-1&(b>>>16^b);g=J[a+40>>2]+(i<<2)|0;c=J[g>>2];if((f|0)==(c|0)){break e}j=J[a+60>>2];while(1){b=c;c=J[j+(b<<2)>>2];if((f|0)!=(c|0)){continue}break}if((b|0)==-1){break e}c=b<<2;b=J[a+60>>2];J[c+b>>2]=J[b+(f<<2)>>2];break d}J[g>>2]=J[J[a+60>>2]+(f<<2)>>2]}c=J[d+4>>2];b=h+(e<<4)|0;J[b>>2]=J[d>>2];J[b+4>>2]=c;c=J[d+12>>2];J[b+8>>2]=J[d+8>>2];J[b+12>>2]=c;b=J[a+40>>2]+(i<<2)|0;J[J[a+60>>2]+(e<<2)>>2]=J[b>>2];J[b>>2]=e}J[a+8>>2]=J[a+8>>2]-1}return l|0}function md(a,b){var c=0,d=0,e=0,f=0,g=0,h=Q(0),i=0,j=0;e=(B(b),v(2));f=(e<<1)+16777216>>>0<16777217;a:{b:{c:{c=(B(a),v(2));d:{if(c-2139095040>>>0>=2164260864){if(f){break d}break b}if(!f){break c}}h=Q(1);if((c|0)==1065353216){break a}g=e<<1;if(!g){break a}c=c<<1;if(!(g>>>0<4278190081&c>>>0<=4278190080)){return Q(a+b)}if((c|0)==2130706432){break a}return c>>>0>2130706431^(e|0)>=0?Q(0):Q(b*b)}if((c<<1)+16777216>>>0<16777217){h=Q(a*a);if((c|0)<0){h=(ld(e)|0)==1?Q(-h):h}if((e|0)>=0){break a}c=sa-16|0;N[c+12>>2]=Q(1)/h;return N[c+12>>2]}if((c|0)<0){e=ld(e);if(!e){a=Q(a-a);return Q(a/a)}g=((e|0)==1)<<16;c=c&2147483647}if(c>>>0>8388607){break b}c=((B(Q(a*Q(8388608))),v(2))&2147483647)-192937984|0}e=c-1060306944|0;f=e>>>15&240;d=+(x(2,c-(e&-8388608)|0),C())*O[f+29592>>3]+-1;i=d*d;d=((O[3731]*d+O[3732])*(i*i)+((O[3733]*d+O[3734])*i+(O[3735]*d+(O[f+29600>>3]+ +(e>>23)))))*+b;A(+d);c=v(1)|0;v(0)|0;e:{c=c&2147450880;if((c|0)==1079967744|c>>>0<1079967744){break e}if(d>127.99999995700433){c=sa-16|0;N[c+12>>2]=g?Q(-15845632502852868e13):Q(15845632502852868e13);return Q(N[c+12>>2]*Q(15845632502852868e13))}if(!(d<=-150)){break e}c=sa-16|0;N[c+12>>2]=g?Q(-2524354896707238e-44):Q(2524354896707238e-44);return Q(N[c+12>>2]*Q(2524354896707238e-44))}i=O[3690];j=i+d;d=d-(j-i);d=(O[3691]*d+O[3692])*(d*d)+(O[3693]*d+1);A(+j);v(1)|0;f=v(0)|0;c=g+f|0;g=((f&31)<<3)+29264|0;f=J[g>>2];e=f;c=J[g+4>>2]+(c<<15)|0;x(0,e|0);x(1,(e>>>0>>0?c+1|0:c)|0);h=Q(d*+z())}return h}function rb(a,b,c,d,e){var f=0,g=0,h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=0,q=Q(0);f=J[a+18504>>2];if(f){g=J[f+48>>2];if(g){J[g+44>>2]=J[f+44>>2]}g=J[f+44>>2];if(g){J[g+48>>2]=J[f+48>>2]}if(J[a+18504>>2]==(f|0)){J[a+18504>>2]=J[f+48>>2]}g=a+18508|0;J[g>>2]=J[g>>2]-1;J[f+44>>2]=0;J[f+48>>2]=J[a+18496>>2];g=J[a+18496>>2];if(g){J[g+44>>2]=f}J[a+18496>>2]=f;g=a+18500|0;J[g>>2]=J[g>>2]+1;J[f+28>>2]=d;J[f+24>>2]=c;J[f+20>>2]=b;H[f+55|0]=0;k=N[c+24>>2];q=N[d+24>>2];h=N[b+24>>2];l=N[d+20>>2];j=N[b+20>>2];m=N[c+20>>2];n=N[c+16>>2];o=N[d+16>>2];i=N[b+16>>2];J[f+12>>2]=0;n=Q(n-i);l=Q(l-j);i=Q(o-i);m=Q(m-j);j=Q(Q(n*l)-Q(i*m));N[f+8>>2]=j;k=Q(k-h);o=Q(k*i);i=Q(q-h);h=Q(o-Q(i*n));N[f+4>>2]=h;i=Q(Q(m*i)-Q(l*k));N[f>>2]=i;p=2;a:{h=Q(Y(Q(Q(j*j)+Q(Q(i*i)+Q(h*h)))));if(!(h>Q(9999999747378752e-20))){break a}g=f+16|0;b:{if(tc(f,b,c,g)){break b}if(tc(f,c,d,g)){break b}if(tc(f,d,b,g)){break b}N[f+16>>2]=Q(Q(N[b+24>>2]*N[f+8>>2])+Q(Q(N[b+16>>2]*N[f>>2])+Q(N[b+20>>2]*N[f+4>>2])))/h}h=Q(Q(1)/h);N[f>>2]=h*N[f>>2];N[f+4>>2]=h*N[f+4>>2];N[f+8>>2]=h*N[f+8>>2];if(e){return f}p=3;if(!(N[g>>2]>=Q(-9999999747378752e-21))){break a}return f}J[a>>2]=p;b=J[f+48>>2];if(b){J[b+44>>2]=J[f+44>>2]}b=J[f+44>>2];if(b){J[b+48>>2]=J[f+48>>2]}if(J[a+18496>>2]==(f|0)){J[a+18496>>2]=J[f+48>>2]}J[a+18500>>2]=J[a+18500>>2]-1;J[f+44>>2]=0;J[f+48>>2]=J[a+18504>>2];b=J[a+18504>>2];if(b){J[b+44>>2]=f}J[a+18504>>2]=f;J[a+18508>>2]=J[a+18508>>2]+1;return 0}J[a>>2]=5;return 0}function is(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;J[8456]=J[8456]+1;e=ua[J[8258]](84,16)|0;d=sa-48|0;sa=d;J[e+12>>2]=0;J[e+16>>2]=0;J[e+4>>2]=35;J[e+8>>2]=0;J[e+20>>2]=0;J[e>>2]=20152;J[e+56>>2]=a;J[e>>2]=22140;J[e+4>>2]=21;a:{if(ua[J[J[a>>2]+40>>2]](a)|0){ua[J[J[a>>2]+48>>2]](a,e+24|0,e+40|0);break a}J[d+44>>2]=0;J[d+36>>2]=0;J[d+40>>2]=0;J[d+32>>2]=1065353216;g=d+16|0;a=d+32|0;ua[J[J[e>>2]+68>>2]](g,e,a);N[e+40>>2]=N[d+16>>2]+N[e+20>>2];J[d+32>>2]=-1082130432;ua[J[J[e>>2]+68>>2]](d,e,a);f=J[d+12>>2];J[d+24>>2]=J[d+8>>2];J[d+28>>2]=f;f=J[d+4>>2];J[d+16>>2]=J[d>>2];J[d+20>>2]=f;N[e+24>>2]=N[d+16>>2]-N[e+20>>2];J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+36>>2]=1065353216;ua[J[J[e>>2]+68>>2]](g,e,a);N[e+44>>2]=N[d+20>>2]+N[e+20>>2];J[d+36>>2]=-1082130432;ua[J[J[e>>2]+68>>2]](d,e,a);f=J[d+12>>2];J[d+24>>2]=J[d+8>>2];J[d+28>>2]=f;f=J[d+4>>2];J[d+16>>2]=J[d>>2];J[d+20>>2]=f;N[e+28>>2]=N[d+20>>2]-N[e+20>>2];J[d+40>>2]=0;J[d+44>>2]=0;J[d+40>>2]=1065353216;J[d+32>>2]=0;J[d+36>>2]=0;ua[J[J[e>>2]+68>>2]](g,e,a);N[e+48>>2]=N[d+24>>2]+N[e+20>>2];J[d+40>>2]=-1082130432;ua[J[J[e>>2]+68>>2]](d,e,a);a=J[d+12>>2];J[d+24>>2]=J[d+8>>2];J[d+28>>2]=a;a=J[d+4>>2];J[d+16>>2]=J[d>>2];J[d+20>>2]=a;N[e+32>>2]=N[d+24>>2]-N[e+20>>2]}sa=d+48|0;H[e+69|0]=0;H[e+68|0]=b;J[e+60>>2]=0;J[e+64>>2]=0;J[e>>2]=18524;J[e+4>>2]=21;if(c){J[8456]=J[8456]+1;a=le(ua[J[8258]](172,16)|0);J[e+60>>2]=a;ke(a,J[e+56>>2],K[e+68|0],e+24|0,e+40|0);H[e+69|0]=1}return e|0}function Mh(a,b,c){a=a|0;b=b|0;c=c|0;lf(a,b,c);N[b+264>>2]=N[a+324>>2];N[b+268>>2]=N[a+328>>2];N[b+272>>2]=N[a+332>>2];N[b+276>>2]=N[a+336>>2];N[b+280>>2]=N[a+340>>2];N[b+284>>2]=N[a+344>>2];N[b+288>>2]=N[a+348>>2];N[b+292>>2]=N[a+352>>2];N[b+296>>2]=N[a+356>>2];N[b+300>>2]=N[a+360>>2];N[b+304>>2]=N[a+364>>2];N[b+308>>2]=N[a+368>>2];N[b+312>>2]=N[a+372>>2];N[b+316>>2]=N[a+376>>2];N[b+320>>2]=N[a+380>>2];N[b+324>>2]=N[a+384>>2];N[b+328>>2]=N[a+388>>2];N[b+332>>2]=N[a+392>>2];N[b+336>>2]=N[a+396>>2];N[b+340>>2]=N[a+400>>2];N[b+456>>2]=N[a+404>>2];N[b+344>>2]=N[a+604>>2];N[b+348>>2]=N[a+608>>2];N[b+352>>2]=N[a+612>>2];N[b+356>>2]=N[a+616>>2];N[b+360>>2]=N[a+408>>2];N[b+364>>2]=N[a+412>>2];N[b+368>>2]=N[a+416>>2];N[b+372>>2]=N[a+420>>2];N[b+376>>2]=N[a+424>>2];N[b+380>>2]=N[a+428>>2];N[b+384>>2]=N[a+432>>2];N[b+388>>2]=N[a+436>>2];N[b+392>>2]=N[a+440>>2];N[b+396>>2]=N[a+444>>2];N[b+400>>2]=N[a+448>>2];N[b+404>>2]=N[a+452>>2];N[b+408>>2]=N[a+456>>2];N[b+412>>2]=N[a+460>>2];N[b+416>>2]=N[a+464>>2];N[b+420>>2]=N[a+468>>2];N[b+424>>2]=N[a+472>>2];N[b+428>>2]=N[a+476>>2];N[b+432>>2]=N[a+480>>2];N[b+436>>2]=N[a+484>>2];N[b+440>>2]=N[a+488>>2];N[b+444>>2]=N[a+492>>2];N[b+448>>2]=N[a+496>>2];N[b+452>>2]=N[a+500>>2];N[b+460>>2]=N[a+504>>2];N[b+464>>2]=N[a+508>>2];J[b+492>>2]=K[a+512|0];N[b+468>>2]=N[a+516>>2];N[b+472>>2]=N[a+520>>2];N[b+476>>2]=N[a+524>>2];N[b+480>>2]=N[a+528>>2];N[b+484>>2]=N[a+532>>2];N[b+488>>2]=N[a+536>>2];return 8570}function Eo(a,b,c){a=a|0;b=b|0;c=Q(c);var d=0,e=0,f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=0;d=sa-48|0;sa=d;e=J[b+60>>2];J[d+40>>2]=J[b+56>>2];J[d+44>>2]=e;e=J[b+52>>2];J[d+32>>2]=J[b+48>>2];J[d+36>>2]=e;f=N[b+24>>2];g=N[b+20>>2];h=N[b+40>>2];i=N[b+36>>2];j=N[b+8>>2];k=N[b>>2];l=N[b+4>>2];m=N[b+16>>2];n=N[b+32>>2];J[d+28>>2]=0;N[d+24>>2]=Q(Q(h*Q(0))+Q(Q(n*c)+Q(i*Q(0))))+N[d+40>>2];N[d+20>>2]=Q(Q(f*Q(0))+Q(Q(m*c)+Q(g*Q(0))))+N[d+36>>2];N[d+16>>2]=Q(Q(j*Q(0))+Q(Q(k*c)+Q(l*Q(0))))+N[d+32>>2];J[d+8>>2]=1050253722;J[d+12>>2]=0;J[d>>2]=1065353216;J[d+4>>2]=1050253722;e=d+32|0;o=d+16|0;ua[J[J[a>>2]+16>>2]](a,e,o,d);f=N[b+24>>2];g=N[b+20>>2];h=N[b+40>>2];i=N[b+36>>2];j=N[b+8>>2];k=N[b>>2];l=N[b+4>>2];m=N[b+16>>2];n=N[b+32>>2];J[d+28>>2]=0;N[d+24>>2]=Q(Q(h*Q(0))+Q(Q(n*Q(0))+Q(i*c)))+N[d+40>>2];N[d+20>>2]=Q(Q(f*Q(0))+Q(Q(m*Q(0))+Q(g*c)))+N[d+36>>2];N[d+16>>2]=Q(Q(j*Q(0))+Q(Q(k*Q(0))+Q(l*c)))+N[d+32>>2];J[d+8>>2]=1050253722;J[d+12>>2]=0;J[d>>2]=1050253722;J[d+4>>2]=1065353216;ua[J[J[a>>2]+16>>2]](a,e,o,d);f=N[b+24>>2];g=N[b+20>>2];h=N[b+40>>2];i=N[b+36>>2];j=N[b+8>>2];k=N[b>>2];l=N[b+4>>2];m=N[b+16>>2];n=N[b+32>>2];J[d+28>>2]=0;N[d+24>>2]=Q(Q(h*c)+Q(Q(n*Q(0))+Q(i*Q(0))))+N[d+40>>2];N[d+20>>2]=Q(Q(f*c)+Q(Q(m*Q(0))+Q(g*Q(0))))+N[d+36>>2];N[d+16>>2]=Q(Q(j*c)+Q(Q(k*Q(0))+Q(l*Q(0))))+N[d+32>>2];J[d+8>>2]=1065353216;J[d+12>>2]=0;J[d>>2]=1050253722;J[d+4>>2]=1050253722;ua[J[J[a>>2]+16>>2]](a,e,o,d);sa=d+48|0}function yc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{b:{c:{d:{e:{if(K[a+164|0]){m=a+128|0;c=J[m>>2];if((c|0)!=J[a+132>>2]){break b}i=c?c<<1:1;if((i|0)<=(c|0)){break b}if(i){J[8456]=J[8456]+1;h=ua[J[8258]](i<<2,16)|0;c=J[a+128>>2]}d=J[a+136>>2];if((c|0)<=0){break e}if(c>>>0>=4){k=c&-4;while(1){f=e<<2;J[f+h>>2]=J[d+f>>2];j=f|4;J[j+h>>2]=J[d+j>>2];j=f|8;J[j+h>>2]=J[d+j>>2];f=f|12;J[f+h>>2]=J[d+f>>2];e=e+4|0;l=l+4|0;if((k|0)!=(l|0)){continue}break}}c=c&3;if(!c){break d}while(1){f=e<<2;J[f+h>>2]=J[d+f>>2];e=e+1|0;g=g+1|0;if((c|0)!=(g|0)){continue}break}break d}m=a+148|0;g=J[m>>2];f:{if((g|0)!=J[a+152>>2]){break f}f=g?g<<1:1;if((f|0)<=(g|0)){break f}if(f){J[8456]=J[8456]+1;h=ua[J[8258]](f<<1,16)|0;g=J[a+148>>2]}c=J[a+156>>2];g:{h:{if((g|0)>0){if(g>>>0>=4){i=g&-4;while(1){d=e<<1;I[d+h>>1]=L[c+d>>1];k=d|2;I[k+h>>1]=L[c+k>>1];k=d|4;I[k+h>>1]=L[c+k>>1];d=d|6;I[d+h>>1]=L[c+d>>1];e=e+4|0;j=j+4|0;if((i|0)!=(j|0)){continue}break}}d=g&3;if(d){while(1){i=e<<1;I[i+h>>1]=L[c+i>>1];e=e+1|0;l=l+1|0;if((d|0)!=(l|0)){continue}break}}if(K[a+160|0]){break h}break g}if(!c|!K[a+160|0]){break g}}if(c){J[8457]=J[8457]+1;ua[J[8259]](c)}g=J[a+148>>2]}J[a+156>>2]=h;J[a+152>>2]=f;H[a+160|0]=1}e=J[a+156>>2];I[e+(g<<1)>>1]=b;break a}if(!d){break c}}if(d?K[a+140|0]:0){J[8457]=J[8457]+1;ua[J[8259]](d)}c=J[a+128>>2]}J[a+136>>2]=h;J[a+132>>2]=i;H[a+140|0]=1}e=J[a+136>>2];J[e+(c<<2)>>2]=b;g=J[a+128>>2]}J[m>>2]=g+1;J[J[a+32>>2]+4>>2]=e}function $h(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=0;e=N[c+128>>2];a:{if(e==Q(0)){break a}J[8760]=J[8760]+1;d=N[c+96>>2];f=Q(e-Q(d*N[c+116>>2]));g=N[c+24>>2];h=N[c+16>>2];i=N[c+20>>2];e=N[c+108>>2];e=Q(Q(f-Q(Q(Q(Q(g*N[a+152>>2])+Q(Q(h*N[a+144>>2])+Q(i*N[a+148>>2])))+Q(Q(N[c+8>>2]*N[a+168>>2])+Q(Q(N[c>>2]*N[a+160>>2])+Q(N[c+4>>2]*N[a+164>>2]))))*e))-Q(Q(Q(Q(N[c+56>>2]*N[b+152>>2])+Q(Q(N[c+48>>2]*N[b+144>>2])+Q(N[c+52>>2]*N[b+148>>2])))+Q(Q(N[c+40>>2]*N[b+168>>2])+Q(Q(N[c+32>>2]*N[b+160>>2])+Q(N[c+36>>2]*N[b+164>>2]))))*e));j=Q(d+e);f=N[c+120>>2];k=j>2]=k?f:j;d=k?Q(f-d):e;if(J[a+240>>2]){N[a+144>>2]=Q(N[a+112>>2]*Q(d*Q(h*N[a+128>>2])))+N[a+144>>2];N[a+148>>2]=Q(Q(d*Q(i*N[a+132>>2]))*N[a+116>>2])+N[a+148>>2];N[a+152>>2]=Q(Q(d*Q(g*N[a+136>>2]))*N[a+120>>2])+N[a+152>>2];e=N[c+72>>2];f=N[c+68>>2];N[a+160>>2]=Q(Q(d*N[a+96>>2])*N[c+64>>2])+N[a+160>>2];g=N[a+104>>2];N[a+164>>2]=Q(f*Q(d*N[a+100>>2]))+N[a+164>>2];N[a+168>>2]=Q(e*Q(d*g))+N[a+168>>2]}if(!J[b+240>>2]){break a}e=N[c+56>>2];f=N[c+52>>2];N[b+144>>2]=Q(N[b+112>>2]*Q(d*Q(N[c+48>>2]*N[b+128>>2])))+N[b+144>>2];N[b+148>>2]=Q(Q(d*Q(f*N[b+132>>2]))*N[b+116>>2])+N[b+148>>2];N[b+152>>2]=Q(Q(d*Q(e*N[b+136>>2]))*N[b+120>>2])+N[b+152>>2];e=N[c+88>>2];f=N[c+84>>2];N[b+160>>2]=Q(Q(d*N[b+96>>2])*N[c+80>>2])+N[b+160>>2];g=N[b+104>>2];N[b+164>>2]=Q(f*Q(d*N[b+100>>2]))+N[b+164>>2];N[b+168>>2]=Q(e*Q(d*g))+N[b+168>>2]}return Q(d)}function $g(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;ua[J[J[b>>2]+32>>2]](b);d=ua[J[J[b>>2]+16>>2]](b,104,1)|0;c=Fa(J[d+8>>2],0,104);N[c+88>>2]=N[a+264>>2];N[c+92>>2]=N[a+268>>2];N[c+96>>2]=N[a+272>>2];N[c+100>>2]=N[a+276>>2];N[c>>2]=N[a+92>>2];N[c+4>>2]=N[a+96>>2];N[c+8>>2]=N[a+100>>2];N[c+12>>2]=N[a+104>>2];N[c+16>>2]=N[a+108>>2];N[c+20>>2]=N[a+116>>2];N[c+24>>2]=N[a+120>>2];N[c+28>>2]=N[a+124>>2];N[c+32>>2]=N[a+128>>2];N[c+36>>2]=N[a+132>>2];N[c+40>>2]=N[a+148>>2];N[c+44>>2]=N[a+152>>2];N[c+48>>2]=N[a+156>>2];N[c+52>>2]=N[a+160>>2];N[c+56>>2]=N[a+176>>2];N[c+60>>2]=N[a+180>>2];J[c+64>>2]=J[a+112>>2];J[c+68>>2]=J[a+164>>2];J[c+72>>2]=J[a+168>>2];J[c+76>>2]=J[a+172>>2];e=J[a+144>>2];J[c+84>>2]=0;J[c+80>>2]=e;ua[J[J[b>>2]+20>>2]](b,d,8729,1145853764,c);ff(a,b);c=0;e=J[a+8>>2];if((e|0)>0){while(1){d=J[J[a+16>>2]+(c<<2)>>2];if(K[d+252|0]&2){e=(g=b,h=ua[J[J[d>>2]+16>>2]](d)|0,i=1,f=J[J[b>>2]+16>>2],ua[f](g|0,h|0,i|0)|0);i=b,h=e,g=ua[J[J[d>>2]+20>>2]](d,J[e+8>>2],b)|0,j=1497645650,k=d,f=J[J[b>>2]+20>>2],ua[f](i|0,h|0,g|0,j|0,k|0);e=J[a+8>>2]}c=c+1|0;if((e|0)>(c|0)){continue}break}}if(J[a+228>>2]>0){c=0;while(1){d=J[J[a+236>>2]+(c<<2)>>2];e=(k=b,j=ua[J[J[d>>2]+36>>2]](d)|0,g=1,f=J[J[b>>2]+16>>2],ua[f](k|0,j|0,g|0)|0);g=b,j=e,k=ua[J[J[d>>2]+40>>2]](d,J[e+8>>2],b)|0,h=1397641027,i=d,f=J[J[b>>2]+20>>2],ua[f](g|0,j|0,k|0,h|0,i|0);c=c+1|0;if((c|0)>2]){continue}break}}ua[J[J[b>>2]+36>>2]](b)}function Jj(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=0,f=0,g=0,h=0,i=Q(0),j=Q(0),k=0,l=Q(0),m=Q(0),n=0,o=0,p=Q(0),q=0,r=Q(0),s=0;g=sa-2048|0;sa=g;J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;d=N[c+8>>2];i=N[c>>2];l=N[c+4>>2];j=Q(Q(d*d)+Q(Q(i*i)+Q(l*l)));if(j>2]+96>>2]](b)|0)>0){l=Q(-0xde0b6b000000000);while(1){e=128;a:{b:{if(((ua[J[J[b>>2]+96>>2]](b)|0)-o|0)>127){break b}e=(ua[J[J[b>>2]+96>>2]](b)|0)-o|0;if((e|0)>0){break b}d=Q(-34028234663852886e22);f=-1;break a}c=0;h=(e|0)==1;if(!h){k=e&-2;f=0;while(1){ua[J[J[b>>2]+108>>2]](b,c,(c<<4)+g|0);n=c|1;ua[J[J[b>>2]+108>>2]](b,n,(n<<4)+g|0);c=c+2|0;f=f+2|0;if((k|0)!=(f|0)){continue}break}}n=e&1;if(n){ua[J[J[b>>2]+108>>2]](b,c,(c<<4)+g|0)}c:{if(h){c=0;f=-1;d=Q(-34028234663852886e22);break c}s=e&-2;c=0;f=-1;d=Q(-34028234663852886e22);e=0;while(1){h=(c<<4)+g|0;j=Q(Q(N[h+8>>2]*m)+Q(Q(N[h>>2]*i)+Q(p*N[h+4>>2])));h=j>d;q=c|1;k=(q<<4)+g|0;r=Q(Q(N[k+8>>2]*m)+Q(Q(N[k>>2]*i)+Q(p*N[k+4>>2])));d=h?j:d;k=r>d;d=k?r:d;f=k?q:h?c:f;c=c+2|0;e=e+2|0;if((s|0)!=(e|0)){continue}break}}if(!n){break a}e=(c<<4)+g|0;j=Q(Q(N[e+8>>2]*m)+Q(Q(N[e>>2]*i)+Q(p*N[e+4>>2])));e=j>d;d=e?j:d;f=e?c:f}if(d>l){c=(f<<4)+g|0;e=J[c+12>>2];J[a+8>>2]=J[c+8>>2];J[a+12>>2]=e;e=J[c+4>>2];J[a>>2]=J[c>>2];J[a+4>>2]=e;l=d}o=o+128|0;if((ua[J[J[b>>2]+96>>2]](b)|0)>(o|0)){continue}break}}sa=g+2048|0}function de(a,b,c,d){var e=Q(0),f=0,g=0,h=0,i=0,j=0,k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=0,s=0,t=0,u=Q(0),v=Q(0),w=Q(0);i=sa-32|0;sa=i;while(1){r=c;h=J[a+12>>2]+P((c+d|0)/2|0,24)|0;s=J[h+20>>2];m=N[h+16>>2];u=N[h+8>>2];v=N[h+4>>2];w=N[h>>2];h=d;while(1){n=N[b+8>>2];k=Q(u-n);e=Q(k*k);o=N[b>>2];k=Q(w-o);l=Q(k*k);p=N[b+4>>2];k=Q(v-p);k=Q(e+Q(l+Q(k*k)));j=J[a+12>>2];while(1){a:{f=P(c,24)+j|0;e=N[f+16>>2];b:{if(e!=m){if(e>2]-n);l=Q(e*e);e=Q(N[f>>2]-o);q=Q(e*e);e=Q(N[f+4>>2]-p);e=Q(l+Q(q+Q(e*e)));if(((e!=k?e>2]<(s|0))|0)!=1){break a}}c=c+1|0;continue}break}while(1){c:{t=P(h,24);g=t+j|0;e=N[g+16>>2];d:{if(e!=m){if(e>m){break d}break c}e=Q(N[g+8>>2]-n);l=Q(e*e);e=Q(N[g>>2]-o);q=Q(e*e);e=Q(N[g+4>>2]-p);e=Q(l+Q(q+Q(e*e)));if(((e!=k?e>k:J[g+20>>2]>(s|0))|0)!=1){break c}}h=h-1|0;continue}break}if((c|0)<=(h|0)){j=J[f+20>>2];J[i+24>>2]=J[f+16>>2];J[i+28>>2]=j;j=J[f+12>>2];J[i+16>>2]=J[f+8>>2];J[i+20>>2]=j;j=J[f+4>>2];J[i+8>>2]=J[f>>2];J[i+12>>2]=j;j=J[g+4>>2];J[f>>2]=J[g>>2];J[f+4>>2]=j;j=J[g+12>>2];J[f+8>>2]=J[g+8>>2];J[f+12>>2]=j;j=J[g+20>>2];J[f+16>>2]=J[g+16>>2];J[f+20>>2]=j;g=J[i+12>>2];f=J[a+12>>2]+t|0;J[f>>2]=J[i+8>>2];J[f+4>>2]=g;g=J[i+28>>2];J[f+16>>2]=J[i+24>>2];J[f+20>>2]=g;g=J[i+20>>2];J[f+8>>2]=J[i+16>>2];J[f+12>>2]=g;h=h-1|0;c=c+1|0}if((c|0)<=(h|0)){continue}break}if((h|0)>(r|0)){de(a,b,r,h)}if((c|0)<(d|0)){continue}break}sa=i+32|0}function Wm(a,b){a=a|0;b=b|0;var c=0,d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=0,n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=0,A=Q(0),B=Q(0),C=Q(0),D=0;c=sa-128|0;sa=c;m=J[b+36>>2];b=J[J[a+24>>2]+32>>2]+P(m,80)|0;z=J[b+64>>2];n=N[b+32>>2];o=N[b>>2];p=N[b+16>>2];q=N[b+56>>2];r=N[b+52>>2];s=N[b+48>>2];t=N[b+36>>2];u=N[b+20>>2];v=N[b+4>>2];w=N[b+40>>2];x=N[b+24>>2];y=N[b+8>>2];b=J[a+28>>2];A=N[b+52>>2];B=N[b+56>>2];d=N[b+24>>2];e=N[b+20>>2];f=N[b+40>>2];g=N[b+36>>2];C=N[b+48>>2];h=N[b+8>>2];i=N[b>>2];j=N[b+4>>2];k=N[b+16>>2];l=N[b+32>>2];J[c+124>>2]=0;J[c+108>>2]=0;J[c+92>>2]=0;N[c+104>>2]=Q(w*f)+Q(Q(y*l)+Q(x*g));N[c+100>>2]=Q(t*f)+Q(Q(v*l)+Q(u*g));N[c+88>>2]=Q(w*d)+Q(Q(y*k)+Q(x*e));N[c+84>>2]=Q(t*d)+Q(Q(v*k)+Q(u*e));N[c+120>>2]=B+Q(Q(q*f)+Q(Q(s*l)+Q(r*g)));N[c+116>>2]=A+Q(Q(q*d)+Q(Q(s*k)+Q(r*e)));J[c+76>>2]=0;N[c+72>>2]=Q(w*h)+Q(Q(y*i)+Q(x*j));N[c+68>>2]=Q(t*h)+Q(Q(v*i)+Q(u*j));N[c+64>>2]=Q(n*h)+Q(Q(o*i)+Q(p*j));N[c+112>>2]=C+Q(Q(q*h)+Q(Q(s*i)+Q(r*j)));N[c+96>>2]=Q(n*f)+Q(Q(o*l)+Q(p*g));N[c+80>>2]=Q(n*d)+Q(Q(o*k)+Q(p*e));b=J[a+32>>2];J[c+48>>2]=0;J[c+40>>2]=1;J[c+44>>2]=-1;J[c+60>>2]=m;J[c+56>>2]=b;J[c+52>>2]=z;J[c+32>>2]=14400;N[c+36>>2]=N[b+4>>2];b=J[a+4>>2];D=J[b+8>>2];J[c+28>>2]=m;J[c+24>>2]=-1;J[c+16>>2]=D;J[c+12>>2]=z;J[c+8>>2]=b;J[c+20>>2]=c- -64;Tc(J[a+8>>2],J[a+12>>2],J[a+16>>2],c+8|0,c+32|0,N[a+20>>2]);sa=c+128|0}function Te(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=sa-32|0;sa=h;e=J[a+52>>2];n=K[a+68|0];l=n?c:b;m=J[l+4>>2];f=J[m+24>>2];a:{if((e|0)>=(f|0)){break a}if(J[a+56>>2]<(f|0)){if(f){J[8456]=J[8456]+1;i=ua[J[8258]](f<<2,16)|0;d=J[a+52>>2]}else{d=e}b:{if((d|0)<=0){break b}if(d>>>0>=4){q=d&-4;while(1){g=j<<2;J[g+i>>2]=J[g+J[a+60>>2]>>2];k=g|4;J[k+i>>2]=J[k+J[a+60>>2]>>2];k=g|8;J[k+i>>2]=J[k+J[a+60>>2]>>2];g=g|12;J[g+i>>2]=J[g+J[a+60>>2]>>2];j=j+4|0;o=o+4|0;if((o|0)!=(q|0)){continue}break}}d=d&3;if(!d){break b}while(1){g=j<<2;J[g+i>>2]=J[g+J[a+60>>2]>>2];j=j+1|0;p=p+1|0;if((d|0)!=(p|0)){continue}break}}d=J[a+60>>2];if(!(d?!d|!K[a- -64|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](d)}J[a+60>>2]=i;H[a+64|0]=1;J[a+56>>2]=f}d=(e^-1)+f|0;i=f-e&3;if(i){j=0;while(1){J[J[a+60>>2]+(e<<2)>>2]=0;e=e+1|0;j=j+1|0;if((i|0)!=(j|0)){continue}break}}if(d>>>0<3){break a}while(1){d=e<<2;J[d+J[a+60>>2]>>2]=0;J[(d+J[a+60>>2]|0)+4>>2]=0;J[(d+J[a+60>>2]|0)+8>>2]=0;J[(d+J[a+60>>2]|0)+12>>2]=0;e=e+4|0;if((f|0)!=(e|0)){continue}break}}J[a+52>>2]=f;if((f|0)>0){b=n?b:c;e=0;while(1){c:{if(J[m+72>>2]){J[J[a+60>>2]+(e<<2)>>2]=0;break c}c=J[l+12>>2];d=J[l+8>>2];J[h+12>>2]=J[(J[m+32>>2]+P(e,80)|0)+64>>2];J[h+28>>2]=e;J[h+24>>2]=-1;J[h+16>>2]=d;J[h+20>>2]=c;J[h+8>>2]=l;c=J[a+4>>2];c=ua[J[J[c>>2]+8>>2]](c,h+8|0,b,J[a+72>>2],1)|0;J[J[a+60>>2]+(e<<2)>>2]=c}e=e+1|0;if((f|0)!=(e|0)){continue}break}}sa=h+32|0}function Gn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;J[8460]=J[8460]+1;d=J[a+24>>2];a:{b:{if(d){if(ua[J[J[d>>2]+8>>2]](d,b,c)|0){break b}break a}if(!(J[c+8>>2]&J[b+4>>2])|!(J[b+8>>2]&J[c+4>>2])){break a}}e=J[b+12>>2]>J[c+12>>2];j=e?b:c;g=J[j+12>>2];k=e?c:b;h=J[k+12>>2];b=g<<16|h;b=(b<<15^-1)+b|0;b=P(b>>>10^b,9);b=b>>>6^b;b=(b<<11^-1)+b|0;m=b>>>16^b;c=a;b=J[c+12>>2];l=m&b-1;a=J[J[c+40>>2]+(l<<2)>>2];c:{if((a|0)!=-1){i=J[c+60>>2];d=J[c+16>>2];while(1){f=a<<4;e=f+d|0;if((h|0)==J[J[e>>2]+12>>2]&(g|0)==J[J[(d+f|0)+4>>2]+12>>2]){break c}a=J[i+(a<<2)>>2];if((a|0)!=-1){continue}break}}h=J[c+8>>2];e=h;a=b;d:{if((e|0)!=(b|0)){break d}e=b;d=b?b<<1:1;if((d|0)<=(b|0)){break d}e:{if(!d){e=0;a=b;break e}J[8456]=J[8456]+1;e=ua[J[8258]](d<<4,16)|0;a=J[c+8>>2]}g=a;if((g|0)>0){a=0;while(1){f=a<<4;i=f+e|0;f=f+J[c+16>>2]|0;J[i>>2]=J[f>>2];J[i+4>>2]=J[f+4>>2];J[i+8>>2]=J[f+8>>2];J[i+12>>2]=J[f+12>>2];a=a+1|0;if((g|0)!=(a|0)){continue}break}}a=J[c+16>>2];if(!(a?!a|!K[c+20|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](a)}J[c+16>>2]=e;H[c+20|0]=1;J[c+12>>2]=d;e=J[c+8>>2];a=d}J[c+8>>2]=e+1;g=J[c+16>>2];e=g+(h<<4)|0;d=J[c+68>>2];if(d){ua[J[J[d>>2]+8>>2]](d,k,j)|0;a=J[c+12>>2]}if((a|0)>(b|0)){qf(c);l=J[c+12>>2]-1&m}b=J[k+12>>2]>2];J[e>>2]=b?k:j;a=g+(h<<4)|0;J[a+8>>2]=0;J[a+12>>2]=0;J[a+4>>2]=b?j:k;a=J[c+40>>2]+(l<<2)|0;J[J[c+60>>2]+(h<<2)>>2]=J[a>>2];J[a>>2]=h}}return e|0}function bi(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0);g=N[c+100>>2];h=N[c+24>>2];i=N[c+16>>2];j=N[c+20>>2];e=N[c+108>>2];d=Q(Q(Q(N[c+112>>2]-Q(g*N[c+116>>2]))-Q(Q(Q(Q(h*N[a+72>>2])+Q(Q(i*N[a+64>>2])+Q(j*N[a+68>>2])))+Q(Q(N[c+8>>2]*N[a+88>>2])+Q(Q(N[c>>2]*N[a+80>>2])+Q(N[c+4>>2]*N[a+84>>2]))))*e))-Q(Q(Q(Q(N[c+56>>2]*N[b+72>>2])+Q(Q(N[c+48>>2]*N[b+64>>2])+Q(N[c+52>>2]*N[b+68>>2])))+Q(Q(N[c+40>>2]*N[b+88>>2])+Q(Q(N[c+32>>2]*N[b+80>>2])+Q(N[c+36>>2]*N[b+84>>2]))))*e));e=Q(g+d);f=N[c+120>>2];a:{if(e>2];if(!(f>2]=e;if(J[a+240>>2]){N[a+64>>2]=Q(N[a+112>>2]*Q(d*Q(i*N[a+128>>2])))+N[a+64>>2];N[a+68>>2]=Q(Q(d*Q(j*N[a+132>>2]))*N[a+116>>2])+N[a+68>>2];N[a+72>>2]=Q(Q(d*Q(h*N[a+136>>2]))*N[a+120>>2])+N[a+72>>2];e=N[c+72>>2];f=N[c+68>>2];N[a+80>>2]=Q(Q(d*N[a+96>>2])*N[c+64>>2])+N[a+80>>2];g=N[a+104>>2];N[a+84>>2]=Q(f*Q(d*N[a+100>>2]))+N[a+84>>2];N[a+88>>2]=Q(e*Q(d*g))+N[a+88>>2]}if(J[b+240>>2]){e=N[c+56>>2];f=N[c+52>>2];N[b+64>>2]=Q(N[b+112>>2]*Q(d*Q(N[c+48>>2]*N[b+128>>2])))+N[b+64>>2];N[b+68>>2]=Q(Q(d*Q(f*N[b+132>>2]))*N[b+116>>2])+N[b+68>>2];N[b+72>>2]=Q(Q(d*Q(e*N[b+136>>2]))*N[b+120>>2])+N[b+72>>2];e=N[c+88>>2];f=N[c+84>>2];N[b+80>>2]=Q(Q(d*N[b+96>>2])*N[c+80>>2])+N[b+80>>2];g=N[b+104>>2];N[b+84>>2]=Q(f*Q(d*N[b+100>>2]))+N[b+84>>2];N[b+88>>2]=Q(e*Q(d*g))+N[b+88>>2]}return Q(d)}function os(){var a=0,b=0,c=0,d=0,e=0,f=0;J[8456]=J[8456]+1;d=Fa(ua[J[8258]](100,16)|0,0,100);a=d;J[a+12>>2]=0;J[a+16>>2]=0;J[a+4>>2]=31;J[a+8>>2]=0;J[a+80>>2]=0;J[a+84>>2]=1065353216;J[a+72>>2]=0;J[a+76>>2]=1;J[a+56>>2]=-581039253;J[a+60>>2]=-581039253;J[a+40>>2]=1566444395;J[a+44>>2]=1566444395;H[a+36|0]=1;J[a>>2]=19276;J[a+32>>2]=0;J[a+96>>2]=0;J[a+88>>2]=1065353216;J[a+92>>2]=1065353216;a=a- -64|0;J[a>>2]=-581039253;J[a+4>>2]=0;J[d+48>>2]=1566444395;J[d+52>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[8456]=J[8456]+1;a=ua[J[8258]](40,16)|0;J[a+16>>2]=0;J[a+8>>2]=-1;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0;J[a+32>>2]=0;H[a+36|0]=1;J[a+24>>2]=0;J[a+28>>2]=0;J[d+72>>2]=a;if(J[d+28>>2]<0){f=J[d+24>>2];if((f|0)>0){while(1){a=P(e,80);b=a+J[d+32>>2]|0;c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c;c=J[b+12>>2];J[a+8>>2]=J[b+8>>2];J[a+12>>2]=c;c=J[b+28>>2];J[a+24>>2]=J[b+24>>2];J[a+28>>2]=c;c=J[b+20>>2];J[a+16>>2]=J[b+16>>2];J[a+20>>2]=c;c=J[b+44>>2];J[a+40>>2]=J[b+40>>2];J[a+44>>2]=c;c=J[b+36>>2];J[a+32>>2]=J[b+32>>2];J[a+36>>2]=c;c=J[b+60>>2];J[a+56>>2]=J[b+56>>2];J[a+60>>2]=c;c=J[b+52>>2];J[a+48>>2]=J[b+48>>2];J[a+52>>2]=c;c=J[b+68>>2];J[a+64>>2]=J[b+64>>2];J[a+68>>2]=c;c=J[b+76>>2];J[a+72>>2]=J[b+72>>2];J[a+76>>2]=c;e=e+1|0;if((f|0)!=(e|0)){continue}break}}a=J[d+32>>2];if(!(a?!a|!K[d+36|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](a)}J[d+32>>2]=0;H[d+36|0]=1;J[d+28>>2]=0}J[d>>2]=31040;return d|0}function Sc(a,b,c,d,e,f,g,h,i,j,k){var l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0);g=(g<<2)+i|0;q=N[g+32>>2];r=Q(N[j+56>>2]-N[i+56>>2]);s=N[g>>2];u=Q(N[j+48>>2]-N[i+48>>2]);o=N[g+16>>2];v=Q(N[j+52>>2]-N[i+52>>2]);t=Q(Q(q*r)+Q(Q(s*u)+Q(o*v)));g=(h<<2)+j|0;w=N[g+32>>2];x=N[g>>2];y=N[g+16>>2];n=Q(-Q(Q(w*r)+Q(Q(x*u)+Q(y*v))));p=Q(Q(q*w)+Q(Q(s*x)+Q(o*y)));m=Q(Q(1)-Q(p*p));a:{if(m==Q(0)){break a}l=Q(-c);m=Q(Q(Q(n*p)+t)/m);if(l>m){break a}l=m;if(!(l>c)){break a}l=c}m=Q(Q(l*p)+n);n=Q(-e);b:{c:{if(me){m=n;break b}if(!(cn){m=e;break b}if(!(cQ(.7071067690849304)){J[a>>2]=0;d=Q(Q(1)/Q(Y(Q(Q(o*o)+Q(q*q)))));c=Q(o*d);N[a+8>>2]=c;l=Q(d*Q(-q));N[a+4>>2]=l;d=Q(0);break d}J[a+8>>2]=0;c=Q(Q(1)/Q(Y(Q(Q(s*s)+Q(o*o)))));l=Q(s*c);N[a+4>>2]=l;d=Q(c*Q(-o));N[a>>2]=d;c=Q(0);break d}J[a+12>>2]=0;d=Q(Q(-1)/t);c=Q(c*d);N[a+8>>2]=c;l=Q(k*d);N[a+4>>2]=l;d=Q(e*d);N[a>>2]=d}e=N[j+48>>2];k=N[j+52>>2];o=N[j+56>>2];J[b+12>>2]=0;N[b+8>>2]=Q(n+o)+Q(c*f);N[b+4>>2]=Q(m+k)+Q(l*f);N[b>>2]=Q(p+e)+Q(d*f)}return r} +function Gb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=Q(0),j=0,k=0,l=0;k=b,l=ua[J[J[c>>2]+28>>2]](c,J[a+28>>2])|0,J[k>>2]=l;k=b,l=ua[J[J[c>>2]+28>>2]](c,J[a+32>>2])|0,J[k+4>>2]=l;d=ua[J[J[c>>2]+40>>2]](c,a)|0;f=ua[J[J[c>>2]+28>>2]](c,d)|0;J[b+8>>2]=f;if(f){ua[J[J[c>>2]+48>>2]](c,d)}J[b+12>>2]=J[a+4>>2];J[b+24>>2]=K[a+21|0];J[b+40>>2]=J[a+24>>2];N[b+44>>2]=N[a+16>>2];J[b+48>>2]=K[a+20|0];J[b+20>>2]=J[a+12>>2];J[b+16>>2]=J[a+8>>2];N[b+28>>2]=N[a+36>>2];i=N[a+40>>2];c=0;J[b+36>>2]=0;N[b+32>>2]=i;d=J[a+28>>2];e=J[d+548>>2];a:{if((e|0)<=0){break a}f=J[d+556>>2];if(e>>>0>=4){h=e&-4;d=0;while(1){g=c<<2;if(J[g+f>>2]==(a|0)){J[b+36>>2]=1}if(J[f+(g|4)>>2]==(a|0)){J[b+36>>2]=1}if(J[f+(g|8)>>2]==(a|0)){J[b+36>>2]=1}if(J[f+(g|12)>>2]==(a|0)){J[b+36>>2]=1}c=c+4|0;d=d+4|0;if((h|0)!=(d|0)){continue}break}}e=e&3;if(!e){break a}d=0;while(1){if(J[f+(c<<2)>>2]==(a|0)){J[b+36>>2]=1}c=c+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}c=J[a+32>>2];e=J[c+548>>2];b:{if((e|0)<=0){break b}f=J[c+556>>2];d=0;c=0;if(e>>>0>=4){j=e&-4;h=0;while(1){g=c<<2;if(J[g+f>>2]==(a|0)){J[b+36>>2]=1}if(J[f+(g|4)>>2]==(a|0)){J[b+36>>2]=1}if(J[f+(g|8)>>2]==(a|0)){J[b+36>>2]=1}if(J[f+(g|12)>>2]==(a|0)){J[b+36>>2]=1}c=c+4|0;h=h+4|0;if((j|0)!=(h|0)){continue}break}}e=e&3;if(!e){break b}while(1){if(J[f+(c<<2)>>2]==(a|0)){J[b+36>>2]=1}c=c+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}return 8651}function Ym(a,b){a=a|0;b=b|0;var c=0,d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=0,n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=0,A=Q(0),B=Q(0),C=Q(0);c=sa-128|0;sa=c;m=J[b+36>>2];b=J[J[a+8>>2]+32>>2]+P(m,80)|0;z=J[b+64>>2];n=N[b+32>>2];o=N[b>>2];p=N[b+16>>2];q=N[b+56>>2];r=N[b+52>>2];s=N[b+48>>2];t=N[b+36>>2];u=N[b+20>>2];v=N[b+4>>2];w=N[b+40>>2];x=N[b+24>>2];y=N[b+8>>2];b=J[a+12>>2];A=N[b+52>>2];B=N[b+56>>2];d=N[b+24>>2];e=N[b+20>>2];f=N[b+40>>2];g=N[b+36>>2];C=N[b+48>>2];h=N[b+8>>2];i=N[b>>2];j=N[b+4>>2];k=N[b+16>>2];l=N[b+32>>2];J[c+124>>2]=0;J[c+108>>2]=0;J[c+92>>2]=0;N[c+104>>2]=Q(w*f)+Q(Q(y*l)+Q(x*g));N[c+100>>2]=Q(t*f)+Q(Q(v*l)+Q(u*g));N[c+88>>2]=Q(w*d)+Q(Q(y*k)+Q(x*e));N[c+84>>2]=Q(t*d)+Q(Q(v*k)+Q(u*e));N[c+120>>2]=B+Q(Q(q*f)+Q(Q(s*l)+Q(g*r)));N[c+116>>2]=A+Q(Q(q*d)+Q(Q(s*k)+Q(e*r)));J[c+76>>2]=0;N[c+72>>2]=Q(w*h)+Q(Q(y*i)+Q(j*x));N[c+68>>2]=Q(t*h)+Q(Q(v*i)+Q(j*u));N[c+64>>2]=Q(n*h)+Q(Q(o*i)+Q(p*j));N[c+112>>2]=C+Q(Q(q*h)+Q(Q(s*i)+Q(j*r)));N[c+96>>2]=Q(n*f)+Q(Q(o*l)+Q(p*g));N[c+80>>2]=Q(n*d)+Q(Q(o*k)+Q(p*e));b=J[a+4>>2];J[c+60>>2]=m;J[c+56>>2]=-1;J[c+48>>2]=b;J[c+44>>2]=z;J[c+40>>2]=0;J[c+52>>2]=c- -64;b=J[a+24>>2];J[c+36>>2]=m;J[c+32>>2]=b;J[c+28>>2]=z;J[c+8>>2]=13584;J[c+16>>2]=0;N[c+12>>2]=N[b+4>>2];J[c+24>>2]=J[b+16>>2];Uc(J[a+16>>2],J[a+20>>2],c+40|0,c+8|0);sa=c+128|0}function xf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;J[a+12>>2]=0;H[a+16|0]=1;J[a+4>>2]=0;J[a+8>>2]=0;f=J[b+4>>2];if((f|0)<=0){J[a+4>>2]=f;return}J[8456]=J[8456]+1;d=ua[J[8258]](f<<2,16)|0;i=J[a+4>>2];a:{if((i|0)<=0){break a}if(i>>>0>=4){k=i&-4;while(1){g=c<<2;J[g+d>>2]=J[g+J[a+12>>2]>>2];j=g|4;J[j+d>>2]=J[j+J[a+12>>2]>>2];j=g|8;J[j+d>>2]=J[j+J[a+12>>2]>>2];g=g|12;J[g+d>>2]=J[g+J[a+12>>2]>>2];c=c+4|0;e=e+4|0;if((k|0)!=(e|0)){continue}break}}e=i&3;if(!e){break a}while(1){g=c<<2;J[g+d>>2]=J[g+J[a+12>>2]>>2];c=c+1|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}c=J[a+12>>2];if(!(c?!c|!K[a+16|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](c)}J[a+12>>2]=d;H[a+16|0]=1;J[a+8>>2]=f;e=0;c=0;if(f>>>0>=4){g=f&-4;h=0;while(1){d=c<<2;J[d+J[a+12>>2]>>2]=0;J[J[a+12>>2]+(d|4)>>2]=0;J[J[a+12>>2]+(d|8)>>2]=0;J[J[a+12>>2]+(d|12)>>2]=0;c=c+4|0;h=h+4|0;if((g|0)!=(h|0)){continue}break}}h=f&3;if(h){while(1){J[J[a+12>>2]+(c<<2)>>2]=0;c=c+1|0;e=e+1|0;if((h|0)!=(e|0)){continue}break}}J[a+4>>2]=f;b:{if((f|0)<=0){break b}a=J[a+12>>2];h=0;c=0;if(f>>>0>=4){g=f&-4;e=0;while(1){d=c<<2;J[d+a>>2]=J[d+J[b+12>>2]>>2];i=d|4;J[i+a>>2]=J[i+J[b+12>>2]>>2];i=d|8;J[i+a>>2]=J[i+J[b+12>>2]>>2];d=d|12;J[d+a>>2]=J[d+J[b+12>>2]>>2];c=c+4|0;e=e+4|0;if((g|0)!=(e|0)){continue}break}}f=f&3;if(!f){break b}while(1){e=c<<2;J[e+a>>2]=J[e+J[b+12>>2]>>2];c=c+1|0;h=h+1|0;if((f|0)!=(h|0)){continue}break}}}function qj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=0,g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0);f=sa-48|0;sa=f;n=N[c+8>>2];j=N[d+8>>2];p=N[c+4>>2];q=N[d+4>>2];k=N[c>>2];l=N[d>>2];e=N[a- -64>>2];a:{if(Q(R(e))>Q(.7071067690849304)){i=N[a+60>>2];g=Q(Q(i*i)+Q(e*e));h=Q(Q(1)/Q(Y(g)));m=Q(g*h);t=Q(i*h);g=N[a+56>>2];r=Q(t*Q(-g));o=Q(h*Q(-e));u=Q(g*o);break a}g=N[a+56>>2];i=N[a+60>>2];m=Q(Q(g*g)+Q(i*i));h=Q(Q(1)/Q(Y(m)));u=Q(m*h);v=Q(h*Q(-i));r=Q(e*v);o=Q(g*h);m=Q(o*Q(-e))}h=N[a+72>>2];J[f+44>>2]=0;J[f+28>>2]=0;s=Q(Q(j+n)*Q(.5));w=Q(Q(l+k)*Q(.5));x=Q(Q(q+p)*Q(.5));h=Q(Q(Q(e*s)+Q(Q(g*w)+Q(x*i)))-h);s=Q(s-Q(e*h));e=Q(Q(j-n)*Q(.5));j=Q(e*e);e=Q(Q(l-k)*Q(.5));k=Q(e*e);e=Q(Q(q-p)*Q(.5));e=Q(Y(Q(j+Q(k+Q(e*e)))));j=Q(e*t);p=Q(s-j);n=Q(e*u);q=Q(p-n);N[f+40>>2]=q;k=Q(x-Q(i*h));l=Q(e*o);o=Q(k-l);i=Q(e*r);r=Q(o-i);N[f+36>>2]=r;j=Q(j+s);N[f+24>>2]=j-n;k=Q(l+k);N[f+20>>2]=k-i;J[f+12>>2]=0;g=Q(w-Q(g*h));h=Q(e*v);l=Q(g-h);e=Q(e*m);m=Q(l-e);N[f+32>>2]=m;g=Q(h+g);N[f+16>>2]=g-e;h=Q(n+j);N[f+8>>2]=h;j=Q(i+k);N[f+4>>2]=j;g=Q(e+g);N[f>>2]=g;ua[J[J[b>>2]+8>>2]](b,f,0,0);J[f+44>>2]=0;N[f+40>>2]=h;N[f+36>>2]=j;J[f+28>>2]=0;N[f+24>>2]=n+p;N[f+20>>2]=i+o;N[f+32>>2]=g;N[f+16>>2]=e+l;J[f+12>>2]=0;N[f+8>>2]=q;N[f+4>>2]=r;N[f>>2]=m;ua[J[J[b>>2]+8>>2]](b,f,0,1);sa=f+48|0}function ai(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=0;d=N[c+100>>2];g=N[c+24>>2];h=N[c+16>>2];i=N[c+20>>2];e=N[c+108>>2];e=Q(Q(Q(N[c+112>>2]-Q(d*N[c+116>>2]))-Q(Q(Q(Q(g*N[a+72>>2])+Q(Q(h*N[a+64>>2])+Q(i*N[a+68>>2])))+Q(Q(N[c+8>>2]*N[a+88>>2])+Q(Q(N[c>>2]*N[a+80>>2])+Q(N[c+4>>2]*N[a+84>>2]))))*e))-Q(Q(Q(Q(N[c+56>>2]*N[b+72>>2])+Q(Q(N[c+48>>2]*N[b+64>>2])+Q(N[c+52>>2]*N[b+68>>2])))+Q(Q(N[c+40>>2]*N[b+88>>2])+Q(Q(N[c+32>>2]*N[b+80>>2])+Q(N[c+36>>2]*N[b+84>>2]))))*e));j=Q(d+e);f=N[c+120>>2];k=j>2]=k?f:j;d=k?Q(f-d):e;if(J[a+240>>2]){N[a+64>>2]=Q(N[a+112>>2]*Q(d*Q(h*N[a+128>>2])))+N[a+64>>2];N[a+68>>2]=Q(Q(d*Q(i*N[a+132>>2]))*N[a+116>>2])+N[a+68>>2];N[a+72>>2]=Q(Q(d*Q(g*N[a+136>>2]))*N[a+120>>2])+N[a+72>>2];e=N[c+72>>2];f=N[c+68>>2];N[a+80>>2]=Q(Q(d*N[a+96>>2])*N[c+64>>2])+N[a+80>>2];g=N[a+104>>2];N[a+84>>2]=Q(f*Q(d*N[a+100>>2]))+N[a+84>>2];N[a+88>>2]=Q(e*Q(d*g))+N[a+88>>2]}if(J[b+240>>2]){e=N[c+56>>2];f=N[c+52>>2];N[b+64>>2]=Q(N[b+112>>2]*Q(d*Q(N[c+48>>2]*N[b+128>>2])))+N[b+64>>2];N[b+68>>2]=Q(Q(d*Q(f*N[b+132>>2]))*N[b+116>>2])+N[b+68>>2];N[b+72>>2]=Q(Q(d*Q(e*N[b+136>>2]))*N[b+120>>2])+N[b+72>>2];e=N[c+88>>2];f=N[c+84>>2];N[b+80>>2]=Q(Q(d*N[b+96>>2])*N[c+80>>2])+N[b+80>>2];g=N[b+104>>2];N[b+84>>2]=Q(f*Q(d*N[b+100>>2]))+N[b+84>>2];N[b+88>>2]=Q(e*Q(d*g))+N[b+88>>2]}return Q(d)}function Vi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{b:{if(K[a+165|0]){l=a+92|0;if(J[l>>2]>=(b|0)){break a}if(b){J[8456]=J[8456]+1;f=ua[J[8258]](b<<4,16)|0}else{f=0}e=J[a+88>>2];c:{if((e|0)<=0){break c}if((e|0)!=1){j=e&-2;while(1){g=d<<4;h=g+f|0;c=g+J[a+96>>2]|0;k=J[c+4>>2];J[h>>2]=J[c>>2];J[h+4>>2]=k;k=J[c+12>>2];J[h+8>>2]=J[c+8>>2];J[h+12>>2]=k;c=g|16;g=c+f|0;c=c+J[a+96>>2]|0;h=J[c+4>>2];J[g>>2]=J[c>>2];J[g+4>>2]=h;h=J[c+12>>2];J[g+8>>2]=J[c+8>>2];J[g+12>>2]=h;d=d+2|0;i=i+2|0;if((j|0)!=(i|0)){continue}break}}if(!(e&1)){break c}d=d<<4;e=d+f|0;d=d+J[a+96>>2]|0;c=J[d+4>>2];J[e>>2]=J[d>>2];J[e+4>>2]=c;c=J[d+12>>2];J[e+8>>2]=J[d+8>>2];J[e+12>>2]=c}d=J[a+96>>2];if(!(d?!d|!K[a+100|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](d)}J[a+96>>2]=f;H[a+100|0]=1;break b}l=a+112|0;if(J[l>>2]>=(b|0)){break a}if(b){J[8456]=J[8456]+1;f=ua[J[8258]](b<<2,16)|0}else{f=0}e=J[a+116>>2];g=J[a+108>>2];d:{e:{if((g|0)>0){if(g>>>0>=4){h=g&-4;while(1){c=d<<2;N[c+f>>2]=N[c+e>>2];j=c|4;N[j+f>>2]=N[e+j>>2];j=c|8;N[j+f>>2]=N[e+j>>2];c=c|12;N[c+f>>2]=N[c+e>>2];d=d+4|0;i=i+4|0;if((h|0)!=(i|0)){continue}break}}c=g&3;if(c){while(1){i=d<<2;N[i+f>>2]=N[e+i>>2];d=d+1|0;k=k+1|0;if((c|0)!=(k|0)){continue}break}}if(K[a+120|0]){break e}break d}if(!e|!K[a+120|0]){break d}}if(e){J[8457]=J[8457]+1;ua[J[8259]](e)}}J[a+116>>2]=f;H[a+120|0]=1}J[l>>2]=b}}function jf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;f=sa-96|0;sa=f;e=J[a+8>>2];J[b+216>>2]=e;a:{if(J[a+12>>2]!=(e|0)){break a}k=e?e<<1:1;if((k|0)<=(e|0)){break a}if(k){J[8456]=J[8456]+1;h=ua[J[8258]](k<<2,16)|0;e=J[a+8>>2]}b:{if((e|0)<=0){break b}if(e>>>0>=4){l=e&-4;while(1){g=i<<2;J[g+h>>2]=J[g+J[a+16>>2]>>2];j=g|4;J[j+h>>2]=J[j+J[a+16>>2]>>2];j=g|8;J[j+h>>2]=J[j+J[a+16>>2]>>2];g=g|12;J[g+h>>2]=J[g+J[a+16>>2]>>2];i=i+4|0;m=m+4|0;if((l|0)!=(m|0)){continue}break}}g=e&3;if(!g){break b}while(1){l=i<<2;J[l+h>>2]=J[l+J[a+16>>2]>>2];i=i+1|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}i=J[a+16>>2];if(!(!i|!K[a+20|0])){if(i){J[8457]=J[8457]+1;ua[J[8259]](i)}e=J[a+8>>2]}J[a+16>>2]=h;H[a+20|0]=1;J[a+12>>2]=k}J[J[a+16>>2]+(e<<2)>>2]=b;J[a+8>>2]=e+1;e=J[b+16>>2];J[f+40>>2]=J[b+12>>2];J[f+44>>2]=e;e=J[b+8>>2];J[f+32>>2]=J[b+4>>2];J[f+36>>2]=e;e=J[b+32>>2];J[f+56>>2]=J[b+28>>2];J[f+60>>2]=e;e=J[b+24>>2];J[f+48>>2]=J[b+20>>2];J[f+52>>2]=e;e=J[b+48>>2];J[f+72>>2]=J[b+44>>2];J[f+76>>2]=e;e=J[b+40>>2];J[f+64>>2]=J[b+36>>2];J[f+68>>2]=e;e=J[b+64>>2];J[f+88>>2]=J[b+60>>2];J[f+92>>2]=e;e=J[b+56>>2];J[f+80>>2]=J[b+52>>2];J[f+84>>2]=e;e=J[b+192>>2];h=f+16|0;ua[J[J[e>>2]+8>>2]](e,f+32|0,h,f);e=J[a+68>>2];o=b,p=ua[J[J[e>>2]+8>>2]](e,h,f,J[J[b+192>>2]+4>>2],b,c,d,J[a+24>>2])|0,J[o+188>>2]=p;sa=f+96|0}function Fl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;J[8467]=J[8467]+1;d=c<<16|b;d=(d<<15^-1)+d|0;d=P(d>>>10^d,9);d=d>>>6^d;d=(d<<11^-1)+d|0;m=d>>>16^d;d=J[a+12>>2];k=m&d-1;e=J[J[a+36>>2]+(k<<2)>>2];a:{if((e|0)!=-1){i=J[a+56>>2];j=J[a+16>>2];while(1){f=j+P(e,12)|0;if(J[f>>2]==(b|0)&J[f+4>>2]==(c|0)){break a}e=J[i+(e<<2)>>2];if((e|0)!=-1){continue}break}}b:{c:{i=J[a+8>>2];f=i;if((f|0)==(d|0)){j=d?d<<1:1;n=(j|0)<=(d|0);if(!n){break c}}else{d=f}J[a+8>>2]=d+1;f=J[a+16>>2];break b}d:{if(!j){f=0;break d}J[8456]=J[8456]+1;f=ua[J[8258]](P(j,12),16)|0;d=J[a+8>>2]}e:{if((d|0)<=0){break e}e=0;if((d|0)!=1){p=d&-2;while(1){g=P(e,12);h=g+J[a+16>>2]|0;l=J[h+4>>2];g=f+g|0;J[g>>2]=J[h>>2];J[g+4>>2]=l;J[g+8>>2]=J[h+8>>2];g=P(e|1,12);h=g+J[a+16>>2]|0;l=J[h+4>>2];g=f+g|0;J[g>>2]=J[h>>2];J[g+4>>2]=l;J[g+8>>2]=J[h+8>>2];e=e+2|0;o=o+2|0;if((p|0)!=(o|0)){continue}break}}if(!(d&1)){break e}e=P(e,12);d=e+f|0;e=e+J[a+16>>2]|0;h=J[e+4>>2];J[d>>2]=J[e>>2];J[d+4>>2]=h;J[d+8>>2]=J[e+8>>2]}d=J[a+16>>2];if(!(d?!d|!K[a+20|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](d)}J[a+16>>2]=f;H[a+20|0]=1;J[a+12>>2]=j;J[a+8>>2]=J[a+8>>2]+1;if(n){break b}Jc(a);k=J[a+12>>2]-1&m}f=P(i,12)+f|0;J[f+8>>2]=0;J[f+4>>2]=c;J[f>>2]=b;b=J[a+56>>2]+(i<<2)|0;a=J[a+36>>2]+(k<<2)|0;J[b>>2]=J[a>>2];J[a>>2]=i}return f|0}function yf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=sa-32|0;sa=e;a:{if(!J[a>>2]){break a}g=(b|0)<0?J[a+12>>2]:b;if((g|0)<=0){break a}while(1){h=0;b=J[a>>2];f=b+40|0;if(J[f>>2]){while(1){d=J[b+32>>2];b:{if(d>>>0<=b>>>0){d=b;break b}c=J[d+40>>2];l=(c|0)==(b|0);i=((b|0)!=(c|0))<<2;j=J[(i+d|0)+36>>2];c=J[d+32>>2];if(c){k=(((J[c+40>>2]==(d|0))<<2)+c|0)+36|0}else{k=a}J[k>>2]=b;J[j+32>>2]=b;J[d+32>>2]=b;J[b+32>>2]=c;J[d+36>>2]=J[b+36>>2];J[d+40>>2]=J[f>>2];J[J[b+36>>2]+32>>2]=d;J[J[f>>2]+32>>2]=d;c=b+36|0;J[c+(l<<2)>>2]=d;J[c+i>>2]=j;c=d+24|0;f=J[c+4>>2];J[e+24>>2]=J[c>>2];J[e+28>>2]=f;c=d+16|0;f=J[c+4>>2];J[e+16>>2]=J[c>>2];J[e+20>>2]=f;c=d+8|0;f=J[c+4>>2];J[e+8>>2]=J[c>>2];J[e+12>>2]=f;c=J[d+4>>2];J[e>>2]=J[d>>2];J[e+4>>2]=c;c=b+24|0;f=J[c+4>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=f;c=b+16|0;f=J[c+4>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=f;c=b+8|0;f=J[c+4>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=f;c=J[b+4>>2];J[d>>2]=J[b>>2];J[d+4>>2]=c;c=J[e+28>>2];J[b+24>>2]=J[e+24>>2];J[b+28>>2]=c;c=J[e+20>>2];J[b+16>>2]=J[e+16>>2];J[b+20>>2]=c;c=J[e+12>>2];J[b+8>>2]=J[e+8>>2];J[b+12>>2]=c;c=J[e+4>>2];J[b>>2]=J[e>>2];J[b+4>>2]=c}b=J[a+16>>2]>>>h|0;h=h+1&31;b=J[(((b&1)<<2)+d|0)+36>>2];f=b+40|0;if(J[f>>2]){continue}break}}d=bc(a,b);ac(a,d?J[a>>2]:0,b);J[a+16>>2]=J[a+16>>2]+1;g=g-1|0;if(g){continue}break}}sa=e+32|0}function Jd(a){a=a|0;var b=0;J[a>>2]=23736;b=J[a+204>>2];if(!(b?!b|!K[a+208|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+204>>2]=0;H[a+208|0]=1;J[a+196>>2]=0;J[a+200>>2]=0;b=J[a+176>>2];if(!(b?!b|!K[a+180|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+176>>2]=0;H[a+180|0]=1;J[a+168>>2]=0;J[a+172>>2]=0;b=J[a+156>>2];if(!(b?!b|!K[a+160|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+156>>2]=0;H[a+160|0]=1;J[a+148>>2]=0;J[a+152>>2]=0;b=J[a+136>>2];if(!(b?!b|!K[a+140|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+136>>2]=0;H[a+140|0]=1;J[a+128>>2]=0;J[a+132>>2]=0;b=J[a+116>>2];if(!(b?!b|!K[a+120|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+116>>2]=0;H[a+120|0]=1;J[a+108>>2]=0;J[a+112>>2]=0;b=J[a+96>>2];if(!(b?!b|!K[a+100|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+96>>2]=0;H[a+100|0]=1;J[a+88>>2]=0;J[a+92>>2]=0;b=J[a+76>>2];if(!(b?!b|!K[a+80|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+76>>2]=0;H[a+80|0]=1;J[a+68>>2]=0;J[a+72>>2]=0;b=J[a+56>>2];if(!(b?!b|!K[a+60|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+56>>2]=0;H[a+60|0]=1;J[a+48>>2]=0;J[a+52>>2]=0;b=J[a+36>>2];if(!(b?!b|!K[a+40|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+36>>2]=0;H[a+40|0]=1;J[a+28>>2]=0;J[a+32>>2]=0;b=J[a+16>>2];if(!(b?!b|!K[a+20|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+16>>2]=0;H[a+20|0]=1;J[a+8>>2]=0;J[a+12>>2]=0;return a|0}function zl(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;g=sa-160|0;sa=g;f=J[a+12>>2];a:{if(!f){break a}h=K[a+16|0];i=h?b:c;j=J[i+4>>2];b=h?c:b;h=J[b+4>>2];J[e+4>>2]=f;c=g+144|0;N[c+12>>2]=N[f+848>>2]+N[e+32>>2];J[c+8>>2]=j;J[c+4>>2]=h;J[c>>2]=18068;J[g+136>>2]=1566444395;b=J[b+12>>2];f=J[b+12>>2];J[g+16>>2]=J[b+8>>2];J[g+20>>2]=f;f=J[b+4>>2];J[g+8>>2]=J[b>>2];J[g+12>>2]=f;f=J[b+28>>2];J[g+32>>2]=J[b+24>>2];J[g+36>>2]=f;f=J[b+20>>2];J[g+24>>2]=J[b+16>>2];J[g+28>>2]=f;f=J[b+44>>2];J[g+48>>2]=J[b+40>>2];J[g+52>>2]=f;f=J[b+36>>2];J[g+40>>2]=J[b+32>>2];J[g+44>>2]=f;h=J[b+60>>2];f=g- -64|0;J[f>>2]=J[b+56>>2];J[f+4>>2]=h;f=J[b+52>>2];J[g+56>>2]=J[b+48>>2];J[g+60>>2]=f;b=J[i+12>>2];f=J[b+12>>2];J[g+80>>2]=J[b+8>>2];J[g+84>>2]=f;f=J[b+4>>2];J[g+72>>2]=J[b>>2];J[g+76>>2]=f;f=J[b+20>>2];J[g+88>>2]=J[b+16>>2];J[g+92>>2]=f;f=J[b+28>>2];J[g+96>>2]=J[b+24>>2];J[g+100>>2]=f;f=J[b+36>>2];J[g+104>>2]=J[b+32>>2];J[g+108>>2]=f;f=J[b+44>>2];J[g+112>>2]=J[b+40>>2];J[g+116>>2]=f;f=J[b+52>>2];J[g+120>>2]=J[b+48>>2];J[g+124>>2]=f;f=J[b+60>>2];J[g+128>>2]=J[b+56>>2];J[g+132>>2]=f;Ie(c,g+8|0,e,J[d+20>>2],K[a+16|0]);if(!K[a+8|0]){break a}a=J[e+4>>2];if(!J[a+844>>2]){break a}c=J[a+836>>2];d=J[J[e+8>>2]+8>>2];b=(c|0)==(d|0);f=a;a=J[J[e+12>>2]+8>>2];Ua(f,(b?c:a)+4|0,(b?a:d)+4|0)}sa=g+160|0}function jg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=sa+-64|0;sa=f;a:{if(Ka(b,30288,0)){J[c>>2]=0;d=1;break a}b:{if(K[a+8|0]&24){e=1}else{if(!b){break b}e=Ta(b,30020);if(!e){break b}e=(K[e+8|0]&24)!=0}g=Ka(a,b,e)}if(g){d=1;a=J[c>>2];if(!a){break a}J[c>>2]=J[a>>2];break a}c:{if(!b){break c}e=Ta(b,30068);if(!e){break a}b=J[c>>2];if(b){J[c>>2]=J[b>>2]}g=J[e+8>>2];b=J[a+8>>2];if(g&(b^-1)&7|b&(g^-1)&96){break a}d=1;if(Ka(J[a+12>>2],J[e+12>>2],0)){break a}if(Ka(J[a+12>>2],30276,0)){a=J[e+12>>2];if(!a){break a}d=!Ta(a,30120);break a}g=J[a+12>>2];if(!g){break c}d=0;b=Ta(g,30068);if(b){if(!(H[a+8|0]&1)){break a}a=J[e+12>>2];c=0;d:{e:{while(1){d=0;if(!a){break d}a=Ta(a,30068);if(!a|J[a+8>>2]&(J[b+8>>2]^-1)){break e}d=1;if(Ka(J[b+12>>2],J[a+12>>2],0)){break d}if(!(H[b+8|0]&1)){break e}d=J[b+12>>2];if(!d){break e}b=Ta(d,30068);if(b){a=J[a+12>>2];continue}break}b=Ta(d,30180);if(!b){break e}c=id(b,J[a+12>>2])}d=c}break a}b=Ta(g,30180);if(b){if(!(H[a+8|0]&1)){break a}d=id(b,J[e+12>>2]);break a}b=Ta(g,29972);if(!b){break a}a=J[e+12>>2];if(!a){break a}a=Ta(a,29972);if(!a){break a}Fa(f+12|0,0,52);J[f+56>>2]=1;J[f+20>>2]=-1;J[f+16>>2]=b;J[f+8>>2]=a;ua[J[J[a>>2]+28>>2]](a,f+8|0,J[c>>2],1);a=J[f+32>>2];if(!(!J[c>>2]|(a|0)!=1)){J[c>>2]=J[f+24>>2]}d=(a|0)==1;break a}d=0}sa=f- -64|0;return d|0}function Ud(a,b,c,d,e,f){var g=0;J[a+4>>2]=b;J[a>>2]=23140;b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;b=J[c+28>>2];J[a+32>>2]=J[c+24>>2];J[a+36>>2]=b;b=J[c+20>>2];J[a+24>>2]=J[c+16>>2];J[a+28>>2]=b;b=J[c+44>>2];J[a+48>>2]=J[c+40>>2];J[a+52>>2]=b;b=J[c+36>>2];J[a+40>>2]=J[c+32>>2];J[a+44>>2]=b;g=J[c+60>>2];b=a- -64|0;J[b>>2]=J[c+56>>2];J[b+4>>2]=g;b=J[c+52>>2];J[a+56>>2]=J[c+48>>2];J[a+60>>2]=b;b=J[d+12>>2];J[a+80>>2]=J[d+8>>2];J[a+84>>2]=b;b=J[d+4>>2];J[a+72>>2]=J[d>>2];J[a+76>>2]=b;b=J[d+28>>2];J[a+96>>2]=J[d+24>>2];J[a+100>>2]=b;b=J[d+20>>2];J[a+88>>2]=J[d+16>>2];J[a+92>>2]=b;b=J[d+44>>2];J[a+112>>2]=J[d+40>>2];J[a+116>>2]=b;b=J[d+36>>2];J[a+104>>2]=J[d+32>>2];J[a+108>>2]=b;b=J[d+60>>2];J[a+128>>2]=J[d+56>>2];J[a+132>>2]=b;b=J[d+52>>2];J[a+120>>2]=J[d+48>>2];J[a+124>>2]=b;b=J[e+12>>2];J[a+144>>2]=J[e+8>>2];J[a+148>>2]=b;b=J[e+4>>2];J[a+136>>2]=J[e>>2];J[a+140>>2]=b;b=J[e+28>>2];J[a+160>>2]=J[e+24>>2];J[a+164>>2]=b;b=J[e+20>>2];J[a+152>>2]=J[e+16>>2];J[a+156>>2]=b;b=J[e+44>>2];J[a+176>>2]=J[e+40>>2];J[a+180>>2]=b;b=J[e+36>>2];J[a+168>>2]=J[e+32>>2];J[a+172>>2]=b;b=J[e+60>>2];J[a+192>>2]=J[e+56>>2];J[a+196>>2]=b;b=J[e+52>>2];J[a+184>>2]=J[e+48>>2];J[a+188>>2]=b;J[a+208>>2]=0;N[a+204>>2]=f;J[a+200>>2]=1065353216;return a}function Dh(a,b){a=a|0;b=Q(b);var c=0,d=0,e=0,f=Q(0),g=0,h=Q(0),i=Q(0),j=Q(0),k=Q(0);e=J[a+8>>2];if((e|0)>0){while(1){c=J[J[a+16>>2]+(g<<2)>>2];if(!(!c|!(J[c+252>>2]&2)|(!(K[c+204|0]&2)|J[c+220>>2]==2))){e=sa-32|0;sa=e;if(b!=Q(0)){d=J[c+540>>2];if(d){ua[J[J[d>>2]+8>>2]](d,c+4|0)}J[c+384>>2]=0;f=Q(Q(1)/b);N[c+380>>2]=f*Q(N[c+60>>2]-N[c+124>>2]);N[c+376>>2]=f*Q(N[c+56>>2]-N[c+120>>2]);N[c+372>>2]=f*Q(N[c+52>>2]-N[c+116>>2]);Vb(c+68|0,c+4|0,e+16|0,e+12|0);i=N[e+16>>2];j=N[e+20>>2];k=N[e+24>>2];h=N[e+12>>2];J[c+400>>2]=0;N[c+396>>2]=f*Q(h*k);N[c+392>>2]=f*Q(h*j);N[c+388>>2]=f*Q(i*h);d=J[c+384>>2];J[c+140>>2]=J[c+380>>2];J[c+144>>2]=d;d=J[c+376>>2];J[c+132>>2]=J[c+372>>2];J[c+136>>2]=d;d=J[c+392>>2];J[c+148>>2]=J[c+388>>2];J[c+152>>2]=d;d=J[c+400>>2];J[c+156>>2]=J[c+396>>2];J[c+160>>2]=d;d=J[c+8>>2];J[c+68>>2]=J[c+4>>2];J[c+72>>2]=d;d=J[c+16>>2];J[c+76>>2]=J[c+12>>2];J[c+80>>2]=d;d=J[c+24>>2];J[c+84>>2]=J[c+20>>2];J[c+88>>2]=d;d=J[c+32>>2];J[c+92>>2]=J[c+28>>2];J[c+96>>2]=d;d=J[c+48>>2];J[c+108>>2]=J[c+44>>2];J[c+112>>2]=d;d=J[c+40>>2];J[c+100>>2]=J[c+36>>2];J[c+104>>2]=d;d=J[c+64>>2];J[c+124>>2]=J[c+60>>2];J[c+128>>2]=d;d=J[c+56>>2];J[c+116>>2]=J[c+52>>2];J[c+120>>2]=d}sa=e+32|0;e=J[a+8>>2]}g=g+1|0;if((g|0)<(e|0)){continue}break}}}function _l(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=sa-160|0;sa=f;g=J[a+12>>2];a:{if(!g){break a}h=J[c+4>>2];i=J[b+4>>2];J[e+4>>2]=g;J[f+152>>2]=1566444395;b=J[b+12>>2];g=J[b+12>>2];J[f+32>>2]=J[b+8>>2];J[f+36>>2]=g;g=J[b+4>>2];J[f+24>>2]=J[b>>2];J[f+28>>2]=g;g=J[b+28>>2];J[f+48>>2]=J[b+24>>2];J[f+52>>2]=g;g=J[b+20>>2];J[f+40>>2]=J[b+16>>2];J[f+44>>2]=g;j=J[b+44>>2];g=f- -64|0;J[g>>2]=J[b+40>>2];J[g+4>>2]=j;g=J[b+36>>2];J[f+56>>2]=J[b+32>>2];J[f+60>>2]=g;g=J[b+60>>2];J[f+80>>2]=J[b+56>>2];J[f+84>>2]=g;g=J[b+52>>2];J[f+72>>2]=J[b+48>>2];J[f+76>>2]=g;b=J[c+12>>2];c=J[b+12>>2];J[f+96>>2]=J[b+8>>2];J[f+100>>2]=c;c=J[b+4>>2];J[f+88>>2]=J[b>>2];J[f+92>>2]=c;c=J[b+20>>2];J[f+104>>2]=J[b+16>>2];J[f+108>>2]=c;c=J[b+28>>2];J[f+112>>2]=J[b+24>>2];J[f+116>>2]=c;c=J[b+36>>2];J[f+120>>2]=J[b+32>>2];J[f+124>>2]=c;c=J[b+44>>2];J[f+128>>2]=J[b+40>>2];J[f+132>>2]=c;c=J[b+52>>2];J[f+136>>2]=J[b+48>>2];J[f+140>>2]=c;c=J[b+60>>2];J[f+144>>2]=J[b+56>>2];J[f+148>>2]=c;b=f+12|0;J[b+8>>2]=h;J[b+4>>2]=i;J[b>>2]=16504;Pe(b,f+24|0,e,J[d+20>>2],0);if(!K[a+8|0]){break a}a=J[e+4>>2];if(!J[a+844>>2]){break a}c=J[a+836>>2];d=J[J[e+8>>2]+8>>2];b=(c|0)==(d|0);g=a;a=J[J[e+12>>2]+8>>2];Ua(g,(b?c:a)+4|0,(b?a:d)+4|0)}sa=f+160|0}function Bk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;bb(a,b,c);N[b+20>>2]=N[a+80>>2];d=J[a+24>>2];J[b+12>>2]=0;J[b+16>>2]=d;if(d){g=ua[J[J[c>>2]+16>>2]](c,76,d)|0;d=J[g+8>>2];j=b,k=ua[J[J[c>>2]+28>>2]](c,d)|0,J[j+12>>2]=k;if(J[b+16>>2]>0){f=J[a+32>>2];while(1){e=P(h,80);f=e+f|0;N[d+72>>2]=N[f+72>>2];j=d,k=ua[J[J[c>>2]+28>>2]](c,J[f+64>>2])|0,J[j+64>>2]=k;if(!(ua[J[J[c>>2]+24>>2]](c,J[(e+J[a+32>>2]|0)+64>>2])|0)){f=J[(e+J[a+32>>2]|0)+64>>2];f=(k=c,l=ua[J[J[f>>2]+52>>2]](f)|0,m=1,j=J[J[c>>2]+16>>2],ua[j](k|0,l|0,m|0)|0);i=J[(e+J[a+32>>2]|0)+64>>2];m=c,l=f,k=ua[J[J[i>>2]+56>>2]](i,J[f+8>>2],c)|0,n=1346455635,o=J[(e+J[a+32>>2]|0)+64>>2],j=J[J[c>>2]+20>>2],ua[j](m|0,l|0,k|0,n|0,o|0)}f=J[a+32>>2];e=e+f|0;J[d+68>>2]=J[e+68>>2];N[d>>2]=N[e>>2];N[d+4>>2]=N[e+4>>2];N[d+8>>2]=N[e+8>>2];N[d+12>>2]=N[e+12>>2];N[d+16>>2]=N[e+16>>2];N[d+20>>2]=N[e+20>>2];N[d+24>>2]=N[e+24>>2];N[d+28>>2]=N[e+28>>2];N[d+32>>2]=N[e+32>>2];N[d+36>>2]=N[e+36>>2];N[d+40>>2]=N[e+40>>2];N[d+44>>2]=N[e+44>>2];N[d+48>>2]=N[e+48>>2];N[d+52>>2]=N[e+52>>2];N[d+56>>2]=N[e+56>>2];N[d+60>>2]=N[e+60>>2];d=d+76|0;h=h+1|0;if((h|0)>2]){continue}break}}ua[J[J[c>>2]+20>>2]](c,g,9087,1497453121,J[g+8>>2])}return 8973}function lm(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=Q(0);c=sa-800|0;sa=c;ua[J[8262]](7501);J[c+744>>2]=0;J[c+748>>2]=0;J[c+756>>2]=0;J[c+760>>2]=0;J[c+752>>2]=1065353216;J[c+764>>2]=0;J[c+768>>2]=0;J[c+776>>2]=0;J[c+780>>2]=0;J[c+772>>2]=1065353216;J[c+784>>2]=0;J[c+788>>2]=0;J[c+792>>2]=0;J[c+736>>2]=0;J[c+740>>2]=0;J[c+732>>2]=1065353216;J[c+724>>2]=0;J[c+728>>2]=0;J[c+556>>2]=13156;N[c+720>>2]=N[a+200>>2];g=N[a+196>>2];d=Sa(c+496|0);J[d+32>>2]=0;J[d+36>>2]=0;J[d+20>>2]=1065353216;J[d+24>>2]=1065353216;J[d+4>>2]=8;J[d>>2]=21396;J[d+56>>2]=0;N[d+52>>2]=g;J[d+28>>2]=1065353216;J[d+40>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;N[d+36>>2]=g;e=Ob(c+384|0);J[e+4>>2]=1;J[e>>2]=15832;f=J[b+12>>2];J[e+72>>2]=J[b+8>>2];J[e+76>>2]=f;f=J[b+4>>2];J[e+64>>2]=J[b>>2];J[e+68>>2]=f;f=J[b+20>>2];J[e+80>>2]=J[b+16>>2];J[e+84>>2]=f;f=J[b+28>>2];J[e+88>>2]=J[b+24>>2];J[e+92>>2]=f;f=J[b+36>>2];J[e+96>>2]=J[b+32>>2];J[e+100>>2]=f;f=J[b+44>>2];J[e+104>>2]=J[b+40>>2];J[e+108>>2]=f;H[c+356|0]=0;J[c+332>>2]=953267991;b=c+8|0;J[b+12>>2]=e;J[b+8>>2]=d;J[b+4>>2]=c+24;J[b>>2]=23248;d=b;b=c+732|0;a:{if(!Td(d,a+4|0,a+68|0,b,b,c+556|0)){break a}g=N[c+720>>2];if(!(g>2])){break a}N[a+200>>2]=g}sb(e);ua[J[8263]]();sa=c+800|0}function Ui(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{b:{if(K[a+164|0]){k=a+132|0;if(J[k>>2]>=(b|0)){break a}if(b){J[8456]=J[8456]+1;e=ua[J[8258]](b<<2,16)|0}else{e=0}d=J[a+136>>2];f=J[a+128>>2];c:{d:{if((f|0)>0){if(f>>>0>=4){l=f&-4;while(1){c=g<<2;J[c+e>>2]=J[d+c>>2];h=c|4;J[h+e>>2]=J[d+h>>2];h=c|8;J[h+e>>2]=J[d+h>>2];c=c|12;J[c+e>>2]=J[d+c>>2];g=g+4|0;i=i+4|0;if((l|0)!=(i|0)){continue}break}}c=f&3;if(c){while(1){f=g<<2;J[f+e>>2]=J[d+f>>2];g=g+1|0;j=j+1|0;if((c|0)!=(j|0)){continue}break}}if(K[a+140|0]){break d}break c}if(!d|!K[a+140|0]){break c}}if(d){J[8457]=J[8457]+1;ua[J[8259]](d)}}J[a+136>>2]=e;H[a+140|0]=1;break b}k=a+152|0;if(J[k>>2]>=(b|0)){break a}if(b){J[8456]=J[8456]+1;e=ua[J[8258]](b<<1,16)|0}else{e=0}d=J[a+156>>2];f=J[a+148>>2];e:{f:{if((f|0)>0){if(f>>>0>=4){l=f&-4;while(1){c=g<<1;I[c+e>>1]=L[d+c>>1];h=c|2;I[h+e>>1]=L[d+h>>1];h=c|4;I[h+e>>1]=L[d+h>>1];c=c|6;I[c+e>>1]=L[d+c>>1];g=g+4|0;i=i+4|0;if((l|0)!=(i|0)){continue}break}}c=f&3;if(c){while(1){f=g<<1;I[f+e>>1]=L[d+f>>1];g=g+1|0;j=j+1|0;if((c|0)!=(j|0)){continue}break}}if(K[a+160|0]){break f}break e}if(!d|!K[a+160|0]){break e}}if(d){J[8457]=J[8457]+1;ua[J[8259]](d)}}J[a+156>>2]=e;H[a+160|0]=1}J[k>>2]=b}}function Wb(a){var b=0;J[a+132>>2]=0;J[a+136>>2]=0;J[a+188>>2]=0;J[a+192>>2]=0;J[a+180>>2]=0;J[a+184>>2]=1566444395;J[a+164>>2]=1065353216;J[a+168>>2]=1065353216;J[a+276>>2]=0;J[a+280>>2]=0;J[a+268>>2]=1065353216;J[a+272>>2]=0;J[a+260>>2]=-1;J[a+264>>2]=-1;J[a+252>>2]=1;J[a+256>>2]=0;J[a+244>>2]=1036831949;J[a+248>>2]=1176256512;J[a+236>>2]=0;J[a+240>>2]=0;J[a+228>>2]=1056964608;J[a+232>>2]=0;J[a+220>>2]=1;J[a+224>>2]=0;J[a+212>>2]=-1;J[a+216>>2]=-1;J[a+204>>2]=1;J[a+208>>2]=-1;J[a>>2]=13004;J[a+140>>2]=0;J[a+144>>2]=0;J[a+148>>2]=0;J[a+152>>2]=0;J[a+156>>2]=0;J[a+160>>2]=0;J[a+172>>2]=1065353216;J[a+176>>2]=0;J[a+196>>2]=0;J[a+200>>2]=0;H[a+300|0]=1;J[a+304>>2]=0;J[a+296>>2]=0;J[a+288>>2]=0;J[a+292>>2]=0;J[a+4>>2]=1065353216;J[a+8>>2]=0;J[a+12>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+24>>2]=1065353216;J[a+28>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;J[a+40>>2]=0;J[a+44>>2]=1065353216;J[a+48>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;J[a+60>>2]=0;b=a- -64|0;J[b>>2]=0;J[b+4>>2]=1065353216;J[a+72>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+88>>2]=1065353216;J[a+92>>2]=0;J[a+96>>2]=0;J[a+100>>2]=0;J[a+104>>2]=0;J[a+112>>2]=0;J[a+116>>2]=0;J[a+108>>2]=1065353216;J[a+120>>2]=0;J[a+124>>2]=0;J[a+128>>2]=0;return a}function Cr(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;J[8456]=J[8456]+1;a=mc(ua[J[8258]](768,16)|0,4,a,b);J[a>>2]=23552;b=J[c+12>>2];J[a+560>>2]=J[c+8>>2];J[a+564>>2]=b;b=J[c+4>>2];J[a+552>>2]=J[c>>2];J[a+556>>2]=b;b=J[c+28>>2];J[a+576>>2]=J[c+24>>2];J[a+580>>2]=b;b=J[c+20>>2];J[a+568>>2]=J[c+16>>2];J[a+572>>2]=b;b=J[c+44>>2];J[a+592>>2]=J[c+40>>2];J[a+596>>2]=b;b=J[c+36>>2];J[a+584>>2]=J[c+32>>2];J[a+588>>2]=b;b=J[c+60>>2];J[a+608>>2]=J[c+56>>2];J[a+612>>2]=b;b=J[c+52>>2];J[a+600>>2]=J[c+48>>2];J[a+604>>2]=b;b=J[d+12>>2];J[a+624>>2]=J[d+8>>2];J[a+628>>2]=b;b=J[d+4>>2];J[a+616>>2]=J[d>>2];J[a+620>>2]=b;b=J[d+20>>2];J[a+632>>2]=J[d+16>>2];J[a+636>>2]=b;b=J[d+28>>2];J[a+640>>2]=J[d+24>>2];J[a+644>>2]=b;b=J[d+36>>2];J[a+648>>2]=J[d+32>>2];J[a+652>>2]=b;b=J[d+44>>2];J[a+656>>2]=J[d+40>>2];J[a+660>>2]=b;b=J[d+52>>2];J[a+664>>2]=J[d+48>>2];J[a+668>>2]=b;b=J[d+60>>2];J[a+672>>2]=J[d+56>>2];J[a+676>>2]=b;J[a+688>>2]=0;J[a+692>>2]=-1082130432;J[a+696>>2]=1063675494;J[a+700>>2]=1050253722;J[a+704>>2]=1065353216;J[a+708>>2]=0;J[a+712>>2]=0;H[a+716|0]=0;H[a+740|0]=0;J[a+736>>2]=16777216;J[a+764>>2]=0;J[a+756>>2]=0;J[a+760>>2]=0;J[a+748>>2]=0;J[a+752>>2]=0;N[a+732>>2]=1;return a|0}function Do(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=Q(e);f=Q(f);g=Q(g);h=Q(h);i=i|0;j=j|0;k=Q(k);var l=0,m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=0,t=Q(0),u=Q(0),v=Q(0),w=0,x=Q(0),y=Q(0),z=Q(0);l=sa-32|0;sa=l;t=N[c+8>>2];n=N[d+8>>2];p=N[c>>2];o=N[d+4>>2];q=N[d>>2];u=N[c+4>>2];v=N[b>>2];y=N[b+4>>2];m=N[b+8>>2];J[l+28>>2]=0;r=Na(g);x=Q(Q(Q(p*o)-Q(q*u))*f);z=m;m=Ma(g);N[l+24>>2]=Q(r*x)+Q(z+Q(m*Q(n*e)));p=Q(Q(Q(t*q)-Q(n*p))*f);N[l+20>>2]=Q(y+Q(m*Q(o*e)))+Q(r*p);n=Q(Q(Q(u*n)-Q(o*t))*f);N[l+16>>2]=Q(r*n)+Q(v+Q(m*Q(q*e)));o=Q(h-g);f=Q(R(Q(o/Q(k*Q(.01745329238474369)))));a:{if(Q(R(f))>2]+16>>2]](a,b,l+16|0,i)}w=c>>>0<=1?1:c;if((w|0)>0){k=Q(w|0);c=1;while(1){q=N[d+8>>2];h=Q(Q(Q(o*Q(c|0))/k)+g);f=Ma(h);t=N[b+8>>2];h=Na(h);u=N[b>>2];r=N[d>>2];m=N[b+4>>2];v=N[d+4>>2];N[l+8>>2]=Q(x*h)+Q(t+Q(f*Q(q*e)));J[l+12>>2]=0;N[l+4>>2]=Q(p*h)+Q(m+Q(f*Q(v*e)));N[l>>2]=Q(n*h)+Q(u+Q(f*Q(r*e)));ua[J[J[a>>2]+16>>2]](a,l+16|0,l,i);s=J[l+12>>2];J[l+24>>2]=J[l+8>>2];J[l+28>>2]=s;s=J[l+4>>2];J[l+16>>2]=J[l>>2];J[l+20>>2]=s;s=(c|0)==(w|0);c=c+1|0;if(!s){continue}break}}if(j){ua[J[J[a>>2]+16>>2]](a,b,l+16|0,i)}sa=l+32|0}function lb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=J[a+16>>2];c=J[b+16>>2];if((d|0)!=(c|0)){return d-c|0}if(!d){return 0}n=d;e=J[b+8>>2];f=J[a+4>>2];i=J[b+12>>2];k=J[a>>2];j=us(i,0,k,0);d=ta;g=f;c=0;f=us(i,0,f,c);h=d+f|0;d=ta+c|0;l=e;i=0;e=us(e,i,g,c);c=f>>>0>h>>>0?d+1|0:d;f=ta;g=f+h|0;d=g;f=f>>>0>d>>>0?c+1|0:c;c=0;g=e;e=e+j|0;j=g>>>0>e>>>0?c+1|0:c;g=j+d|0;d=f;d=g>>>0>>0?d+1|0:d;h=g;j=0;f=us(k,m,l,i);i=j+f|0;c=ta+e|0;c=f>>>0>i>>>0?c+1|0:c;g=c;e=(e|0)==(c|0)&i>>>0>>0|c>>>0>>0;c=d;d=e+h|0;c=d>>>0>>0?c+1|0:c;j=d;k=c;e=J[b>>2];d=J[b+4>>2];b=J[a+8>>2];a=J[a+12>>2];c=0;l=b;f=us(d,c,b,0);b=ta;h=a;a=us(d,c,a,0);b=b+a|0;d=ta;d=a>>>0>b>>>0?d+1|0:d;a=us(e,0,h,c);c=d;d=b;b=ta;h=d+b|0;d=h;b=b>>>0>d>>>0?c+1|0:c;c=0;h=a;a=a+f|0;f=h>>>0>a>>>0?c+1|0:c;h=f+d|0;d=b;d=f>>>0>h>>>0?d+1|0:d;f=0;e=us(e,m,l,m);b=f+e|0;c=ta+a|0;c=b>>>0>>0?c+1|0:c;e=c;a=(a|0)==(c|0)&b>>>0>>0|a>>>0>c>>>0;c=d;d=a;a=a+h|0;c=d>>>0>a>>>0?c+1|0:c;d=-1;a:{if((c|0)==(k|0)&a>>>0>j>>>0|c>>>0>k>>>0){break a}d=1;if((c|0)==(k|0)&a>>>0>>0|c>>>0>>0){break a}d=-1;if((e|0)==(g|0)&b>>>0>i>>>0|e>>>0>g>>>0){break a}d=(e|0)==(g|0)&b>>>0>>0|e>>>0>>0}return P(n,d)}function hg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;if(Ka(a,J[b+8>>2],e)){if(!(J[b+28>>2]==1|J[b+4>>2]!=(c|0))){J[b+28>>2]=d}return}a:{if(Ka(a,J[b>>2],e)){if(!(J[b+16>>2]!=(c|0)&J[b+20>>2]!=(c|0))){if((d|0)!=1){break a}J[b+32>>2]=1;return}J[b+32>>2]=d;if(J[b+44>>2]!=4){f=a+16|0;h=f+(J[a+12>>2]<<3)|0;d=0;b:{c:{while(1){d:{if(f>>>0>=h>>>0){break d}I[b+52>>1]=0;fc(f,b,c,c,1,e);if(K[b+54|0]){break d}e:{if(!K[b+53|0]){break e}if(K[b+52|0]){d=1;if(J[b+24>>2]==1){break c}g=1;if(K[a+8|0]&2){break e}break c}g=1;if(!(H[a+8|0]&1)){break c}}f=f+8|0;continue}break}a=4;if(!g){break b}}a=3}J[b+44>>2]=a;if(d&1){break a}}J[b+20>>2]=c;J[b+40>>2]=J[b+40>>2]+1;if(J[b+36>>2]!=1|J[b+24>>2]!=2){break a}H[b+54|0]=1;return}g=J[a+12>>2];h=a+16|0;yb(h,b,c,d,e);f=a+24|0;g=h+(g<<3)|0;if(f>>>0>=g>>>0){break a}a=J[a+8>>2];if(!(!(a&2)&J[b+36>>2]!=1)){while(1){if(K[b+54|0]){break a}yb(f,b,c,d,e);f=f+8|0;if(g>>>0>f>>>0){continue}break}break a}if(!(a&1)){while(1){if(K[b+54|0]|J[b+36>>2]==1){break a}yb(f,b,c,d,e);f=f+8|0;if(g>>>0>f>>>0){continue}break a}}while(1){if(K[b+54|0]|J[b+36>>2]==1&J[b+24>>2]==1){break a}yb(f,b,c,d,e);f=f+8|0;if(g>>>0>f>>>0){continue}break}}}function nk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=sa-80|0;sa=e;a:{if((d|0)<=0){break a}if(d>>>0>=8){j=d&-8;while(1){f=i<<4;J[(f+c|0)+12>>2]=-581039253;J[((f|16)+c|0)+12>>2]=-581039253;J[((f|32)+c|0)+12>>2]=-581039253;J[((f|48)+c|0)+12>>2]=-581039253;J[((f|64)+c|0)+12>>2]=-581039253;J[((f|80)+c|0)+12>>2]=-581039253;J[((f|96)+c|0)+12>>2]=-581039253;J[((f|112)+c|0)+12>>2]=-581039253;i=i+8|0;g=g+8|0;if((j|0)!=(g|0)){continue}break}}g=d&7;if(g){while(1){J[((i<<4)+c|0)+12>>2]=-581039253;i=i+1|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}if((d|0)<=0){break a}f=e- -64|0;i=0;while(1){J[e+40>>2]=19952;J[e+52>>2]=0;J[e+56>>2]=0;J[e+44>>2]=0;J[e+48>>2]=0;J[e+60>>2]=-581039253;g=i<<4;j=g+b|0;h=J[j+12>>2];J[f+8>>2]=J[j+8>>2];J[f+12>>2]=h;h=J[j+4>>2];J[f>>2]=J[j>>2];J[f+4>>2]=h;J[e+32>>2]=1566444395;J[e+36>>2]=0;J[e+24>>2]=1566444395;J[e+28>>2]=1566444395;h=J[a+100>>2];J[e+16>>2]=-581039253;J[e+20>>2]=0;J[e+8>>2]=-581039253;J[e+12>>2]=-581039253;ua[J[J[h>>2]+8>>2]](h,e+40|0,e+8|0,e+24|0);h=J[e+56>>2];g=c+g|0;J[g+8>>2]=J[e+52>>2];J[g+12>>2]=h;h=J[e+48>>2];J[g>>2]=J[e+44>>2];J[g+4>>2]=h;i=i+1|0;if((i|0)!=(d|0)){continue}break}}sa=e+80|0}function Dj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=0,j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0);i=J[a+40>>2];e=N[i+32>>2];f=N[a+32>>2];h=N[i+48>>2];k=N[i+28>>2];g=N[a+28>>2];l=N[i+44>>2];m=N[i+24>>2];t=N[i+40>>2];j=N[a+24>>2];n=Q(ua[J[J[i>>2]+48>>2]](i));z=N[b+52>>2];q=N[b+24>>2];u=N[b+20>>2];o=N[b+56>>2];p=N[b+40>>2];r=N[b+36>>2];A=N[b+48>>2];v=N[b+8>>2];w=N[b+4>>2];x=N[b>>2];y=N[b+16>>2];s=N[b+32>>2];J[c+12>>2]=0;B=o;e=Q(e*f);h=Q(h*f);o=f<=Q(0)?e:h;e=f>=Q(0)?e:h;f=Q(Q(o+e)*Q(.5));h=Q(m*j);m=Q(t*j);t=j<=Q(0)?h:m;h=j>=Q(0)?h:m;j=Q(Q(t+h)*Q(.5));k=Q(k*g);l=Q(l*g);m=g<=Q(0)?k:l;k=g>=Q(0)?k:l;g=Q(Q(m+k)*Q(.5));l=Q(B+Q(Q(p*f)+Q(Q(s*j)+Q(r*g))));e=Q(n+Q(Q(o-e)*Q(.5)));o=Q(e*Q(R(p)));p=Q(n+Q(Q(t-h)*Q(.5)));n=Q(n+Q(Q(m-k)*Q(.5)));r=Q(o+Q(Q(p*Q(R(s)))+Q(n*Q(R(r)))));N[c+8>>2]=l-r;s=Q(z+Q(Q(f*q)+Q(Q(j*y)+Q(g*u))));q=Q(Q(e*Q(R(q)))+Q(Q(p*Q(R(y)))+Q(n*Q(R(u)))));N[c+4>>2]=s-q;f=Q(A+Q(Q(f*v)+Q(Q(j*x)+Q(g*w))));g=Q(Q(e*Q(R(v)))+Q(Q(p*Q(R(x)))+Q(n*Q(R(w)))));N[c>>2]=f-g;J[d+12>>2]=0;N[d+8>>2]=r+l;N[d+4>>2]=q+s;N[d>>2]=g+f}function Yb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;while(1){q=c;g=J[a+12>>2]+((c+d|0)/2<<4)|0;r=J[g+8>>2];l=J[g+4>>2];k=J[g>>2];g=d;while(1){s=J[a+12>>2];while(1){e=-1;i=-1;f=(c<<4)+s|0;m=J[f>>2];if(m){i=J[m+12>>2]}e=k?J[k+12>>2]:e;j=-1;h=-1;n=J[f+4>>2];if(n){h=J[n+12>>2]}j=l?J[l+12>>2]:j;a:{b:{if((e|0)<(i|0)){break b}e=(k|0)==(m|0)&(h|0)>(j|0);if(!(e|(k|0)!=(m|0))){if((l|0)!=(n|0)){break a}if(M[f+8>>2]>r>>>0){break b}break a}if(!e){break a}}c=c+1|0;continue}break}while(1){t=g<<4;e=t+s|0;i=-1;j=-1;j=k?J[k+12>>2]:j;h=J[e>>2];if(h){i=J[h+12>>2]}u=-1;o=-1;o=l?J[l+12>>2]:o;p=J[e+4>>2];if(p){u=J[p+12>>2]}c:{d:{if((i|0)<(j|0)){break d}i=(h|0)==(k|0)&(u|0)<(o|0);if(!(i|(h|0)!=(k|0))){if((l|0)!=(p|0)){break c}if(M[e+8>>2]>>0){break d}break c}if(!i){break c}}g=g-1|0;continue}break}if((c|0)<=(g|0)){i=J[f+8>>2];j=J[f+12>>2];h=J[e+4>>2];J[f>>2]=J[e>>2];J[f+4>>2]=h;h=J[e+12>>2];J[f+8>>2]=J[e+8>>2];J[f+12>>2]=h;f=J[a+12>>2]+t|0;J[f+4>>2]=n;J[f+8>>2]=i;J[f+12>>2]=j;J[f>>2]=m;g=g-1|0;c=c+1|0}if((c|0)<=(g|0)){continue}break}if((g|0)>(q|0)){Yb(a,b,q,g)}if((c|0)<(d|0)){continue}break}}function Ri(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0);h=N[a+32>>2];f=N[a+48>>2];u=N[a+28>>2];v=N[a+44>>2];w=N[a+24>>2];x=N[a+40>>2];y=Q(ua[J[J[a>>2]+48>>2]](a));z=Q(ua[J[J[a>>2]+48>>2]](a));A=Q(ua[J[J[a>>2]+48>>2]](a));B=N[b+52>>2];i=N[b+24>>2];j=N[b+20>>2];k=N[b+56>>2];l=N[a+28>>2];o=N[a+44>>2];m=N[a+32>>2];C=N[a+48>>2];e=N[b+40>>2];n=N[b+36>>2];D=N[b+48>>2];q=N[b+8>>2];r=N[b>>2];s=N[b+4>>2];t=N[b+16>>2];E=N[a+24>>2];F=N[a+40>>2];g=N[b+32>>2];J[c+12>>2]=0;p=k;k=Q(Q(C+m)*Q(.5));m=Q(Q(F+E)*Q(.5));l=Q(Q(o+l)*Q(.5));o=Q(p+Q(Q(e*k)+Q(Q(g*m)+Q(n*l))));h=Q(A+Q(Q(f-h)*Q(.5)));p=Q(h*Q(R(e)));e=Q(y+Q(Q(x-w)*Q(.5)));f=Q(e*Q(R(g)));g=Q(z+Q(Q(v-u)*Q(.5)));n=Q(p+Q(f+Q(g*Q(R(n)))));N[c+8>>2]=o-n;f=Q(B+Q(Q(k*i)+Q(Q(m*t)+Q(l*j))));i=Q(Q(h*Q(R(i)))+Q(Q(e*Q(R(t)))+Q(g*Q(R(j)))));N[c+4>>2]=f-i;j=Q(D+Q(Q(k*q)+Q(Q(m*r)+Q(l*s))));e=Q(Q(h*Q(R(q)))+Q(Q(e*Q(R(r)))+Q(g*Q(R(s)))));N[c>>2]=j-e;J[d+12>>2]=0;N[d+8>>2]=n+o;N[d+4>>2]=i+f;N[d>>2]=e+j}function Cl(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=0,l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=0;d=sa-32|0;sa=d;a=J[a+12>>2];a:{if(!a){break a}J[e+4>>2]=a;f=J[b+12>>2];k=J[c+12>>2];i=Q(N[f+56>>2]-N[k+56>>2]);m=Q(N[f+48>>2]-N[k+48>>2]);j=Q(N[f+52>>2]-N[k+52>>2]);g=Q(Q(i*i)+Q(Q(m*m)+Q(j*j)));f=J[c+4>>2];l=N[f+20>>2];h=N[f+36>>2];b=J[b+4>>2];n=N[b+20>>2];o=N[b+36>>2];f=J[a+844>>2];if((f|0)>0){b=0;while(1){f=a+P(b,208)|0;k=J[f+120>>2];b:{if(!k){break b}p=J[8753];if(!p){break b}ua[p|0](k)|0;J[f+120>>2]=0}b=b+1|0;f=J[a+844>>2];if((b|0)<(f|0)){continue}break}}g=Q(Y(g));l=Q(h*l);h=Q(o*n);c:{if(!f){break c}b=J[8756];if(!b){break c}J[d+16>>2]=a;ua[b|0](d+16|0)}J[a+844>>2]=0;h=Q(h+l);if(g>Q(h+N[e+32>>2])){break a}J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=1065353216;J[d+20>>2]=0;h=Q(g-h);d:{if(!(g>Q(1.1920928955078125e-7))){g=Q(1);i=Q(0);j=Q(0);break d}g=Q(Q(1)/g);i=Q(i*g);N[d+24>>2]=i;j=Q(j*g);N[d+20>>2]=j;g=Q(m*g);N[d+16>>2]=g}a=J[c+12>>2];m=N[a+52>>2];n=N[a+56>>2];o=N[a+48>>2];J[d+12>>2]=0;N[d>>2]=o+Q(l*g);N[d+8>>2]=n+Q(l*i);N[d+4>>2]=m+Q(l*j);ua[J[J[e>>2]+16>>2]](e,d+16|0,d,h)}sa=d+32|0}function Gl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;J[8466]=J[8466]+1;k=J[a+36>>2];d=c<<16|b;d=(d<<15^-1)+d|0;d=P(d>>>10^d,9);d=d>>>6^d;d=(d<<11^-1)+d|0;i=k+((J[a+12>>2]-1&(d>>>16^d))<<2)|0;d=J[i>>2];a:{if((d|0)==-1){break a}f=J[a+56>>2];g=J[a+16>>2];e=d;while(1){j=g+P(e,12)|0;if(!(J[j>>2]==(b|0)&J[j+4>>2]==(c|0))){e=J[(e<<2)+f>>2];if((e|0)!=-1){continue}break a}break}l=J[(g+P(e,12)|0)+8>>2];b:{c:{if((d|0)==(e|0)){break c}while(1){b=d;d=J[(b<<2)+f>>2];if((e|0)!=(d|0)){continue}break}if((b|0)==-1){break c}J[(b<<2)+f>>2]=J[(e<<2)+f>>2];break b}J[i>>2]=J[(e<<2)+f>>2]}h=J[a+8>>2]-1|0;if((h|0)!=(e|0)){d:{e:{g=g+P(h,12)|0;b=J[g+4>>2]<<16|J[g>>2];b=(b<<15^-1)+b|0;b=P(b>>>10^b,9);b=b>>>6^b;b=(b<<11^-1)+b|0;i=J[a+12>>2]-1&(b>>>16^b);d=k+(i<<2)|0;b=J[d>>2];if((h|0)==(b|0)){break e}while(1){c=b;b=J[(b<<2)+f>>2];if((h|0)!=(b|0)){continue}break}if((c|0)==-1){break e}J[(c<<2)+f>>2]=J[(h<<2)+f>>2];break d}J[d>>2]=J[(h<<2)+f>>2]}b=J[g+4>>2];J[j>>2]=J[g>>2];J[j+4>>2]=b;J[j+8>>2]=J[g+8>>2];b=J[a+36>>2]+(i<<2)|0;J[J[a+56>>2]+(e<<2)>>2]=J[b>>2];J[b>>2]=e;e=J[a+8>>2]-1|0}J[a+8>>2]=e}return l|0}function wc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=sa-48|0;sa=c;d=J[b+4>>2];e=J[a+56>>2];J[e+4>>2]=J[b>>2];J[e+8>>2]=d;d=J[b+12>>2];J[e+12>>2]=J[b+8>>2];J[e+16>>2]=d;J[c+44>>2]=0;J[c+36>>2]=0;J[c+40>>2]=0;J[c+32>>2]=1065353216;e=c+16|0;b=c+32|0;ua[J[J[a>>2]+68>>2]](e,a,b);N[a+40>>2]=N[c+16>>2]+N[a+20>>2];J[c+32>>2]=-1082130432;ua[J[J[a>>2]+68>>2]](c,a,b);d=J[c+12>>2];J[c+24>>2]=J[c+8>>2];J[c+28>>2]=d;d=J[c+4>>2];J[c+16>>2]=J[c>>2];J[c+20>>2]=d;N[a+24>>2]=N[c+16>>2]-N[a+20>>2];J[c+40>>2]=0;J[c+44>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;J[c+36>>2]=1065353216;ua[J[J[a>>2]+68>>2]](e,a,b);N[a+44>>2]=N[c+20>>2]+N[a+20>>2];J[c+36>>2]=-1082130432;ua[J[J[a>>2]+68>>2]](c,a,b);d=J[c+12>>2];J[c+24>>2]=J[c+8>>2];J[c+28>>2]=d;d=J[c+4>>2];J[c+16>>2]=J[c>>2];J[c+20>>2]=d;N[a+28>>2]=N[c+20>>2]-N[a+20>>2];J[c+40>>2]=0;J[c+44>>2]=0;J[c+40>>2]=1065353216;J[c+32>>2]=0;J[c+36>>2]=0;ua[J[J[a>>2]+68>>2]](e,a,b);N[a+48>>2]=N[c+24>>2]+N[a+20>>2];J[c+40>>2]=-1082130432;ua[J[J[a>>2]+68>>2]](c,a,b);b=J[c+12>>2];J[c+24>>2]=J[c+8>>2];J[c+28>>2]=b;b=J[c+4>>2];J[c+16>>2]=J[c>>2];J[c+20>>2]=b;N[a+32>>2]=N[c+24>>2]-N[a+20>>2];sa=c+48|0}function Ja(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){oa(a|0,b|0,c|0);return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){H[c|0]=K[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0>>0){break c}while(1){J[c>>2]=J[b>>2];J[c+4>>2]=J[b+4>>2];J[c+8>>2]=J[b+8>>2];J[c+12>>2]=J[b+12>>2];J[c+16>>2]=J[b+16>>2];J[c+20>>2]=J[b+20>>2];J[c+24>>2]=J[b+24>>2];J[c+28>>2]=J[b+28>>2];J[c+32>>2]=J[b+32>>2];J[c+36>>2]=J[b+36>>2];J[c+40>>2]=J[b+40>>2];J[c+44>>2]=J[b+44>>2];J[c+48>>2]=J[b+48>>2];J[c+52>>2]=J[b+52>>2];J[c+56>>2]=J[b+56>>2];J[c+60>>2]=J[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){J[c>>2]=J[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0>>0){c=a;break a}c=a;while(1){H[c|0]=K[b|0];H[c+1|0]=K[b+1|0];H[c+2|0]=K[b+2|0];H[c+3|0]=K[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0>>0){while(1){H[c|0]=K[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function oh(a,b){a=a|0;b=Q(b);var c=0,d=Q(0),e=0,f=Q(0),g=0,h=Q(0),i=0;i=sa-16|0;sa=i;ua[J[8262]](7100);if(J[a+248>>2]>0){while(1){c=J[J[a+256>>2]+(g<<2)>>2];a:{if(!c){break a}b:{c:{d:{e=J[c+220>>2];switch(e-2|0){case 0:case 2:break c;default:break d}}e:{d=N[c+380>>2];f=Q(d*d);d=N[c+372>>2];h=Q(d*d);d=N[c+376>>2];f=Q(f+Q(h+Q(d*d)));d=N[c+532>>2];if(!(f>2];f=Q(d*d);d=N[c+388>>2];h=Q(d*d);d=N[c+392>>2];f=Q(f+Q(h+Q(d*d)));d=N[c+536>>2];if(!(f>2]=N[c+224>>2]+b;break b}J[c+224>>2]=0;if((J[c+220>>2]&-2)!=4){J[c+220>>2]=0}e=J[c+220>>2]}if((e|0)==4){break a}}f:{if(K[35721]){break f}d=N[8267];if(d==Q(0)|!(d>2])&(e&-2)!=2){break f}if(K[c+204|0]&3){if((J[c+220>>2]&-2)!=4){J[c+220>>2]=2}break a}if((e|0)==1){if((J[c+220>>2]&-2)!=4){J[c+220>>2]=3}e=J[c+220>>2]}if((e|0)!=2){break a}J[c+388>>2]=0;J[c+392>>2]=0;J[c+372>>2]=0;J[c+376>>2]=0;J[c+396>>2]=0;J[c+400>>2]=0;J[c+380>>2]=0;J[c+384>>2]=0;J[c+304>>2]=J[c+304>>2]+2;break a}if((J[c+220>>2]&-2)!=4){J[c+220>>2]=1}}g=g+1|0;if((g|0)>2]){continue}break}}ua[J[8263]]();sa=i+16|0}function Bc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;J[a+12>>2]=0;H[a+16|0]=1;J[a+4>>2]=0;J[a+8>>2]=0;d=J[b+4>>2];if((d|0)<=0){J[a+4>>2]=d;return}J[8456]=J[8456]+1;l=d<<2;e=ua[J[8258]](l,16)|0;g=J[a+12>>2];a:{b:{c:{d:{k=J[a+4>>2];if((k|0)>0){if(k>>>0>=4){m=k&-4;while(1){c=f<<2;J[c+e>>2]=J[c+g>>2];j=c|4;J[j+e>>2]=J[g+j>>2];j=c|8;J[j+e>>2]=J[g+j>>2];c=c|12;J[c+e>>2]=J[c+g>>2];f=f+4|0;h=h+4|0;if((m|0)!=(h|0)){continue}break}}c=k&3;if(c){while(1){h=f<<2;J[h+e>>2]=J[g+h>>2];f=f+1|0;i=i+1|0;if((c|0)!=(i|0)){continue}break}}if(!K[a+16|0]){break c}break d}if(K[a+16|0]?g:0){break d}J[a+12>>2]=e;H[a+16|0]=1;J[a+8>>2]=d;Fa(e,0,l);J[a+4>>2]=d;break b}if(g){J[8457]=J[8457]+1;ua[J[8259]](g)}}J[a+12>>2]=e;H[a+16|0]=1;J[a+8>>2]=d;Fa(e,0,l);J[a+4>>2]=d;if((d|0)<=0){break a}}a=J[b+12>>2];i=0;f=0;if(d>>>0>=4){g=d&-4;h=0;while(1){b=f<<2;J[b+e>>2]=J[a+b>>2];c=b|4;J[c+e>>2]=J[a+c>>2];c=b|8;J[c+e>>2]=J[a+c>>2];b=b|12;J[b+e>>2]=J[a+b>>2];f=f+4|0;h=h+4|0;if((g|0)!=(h|0)){continue}break}}b=d&3;if(!b){break a}while(1){d=f<<2;J[d+e>>2]=J[a+d>>2];f=f+1|0;i=i+1|0;if((b|0)!=(i|0)){continue}break}}}function dl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;bb(a,b,c);d=J[a+56>>2];ua[J[J[d>>2]+56>>2]](d,b+12|0,c)|0;N[b+52>>2]=N[a+20>>2];a:{b:{if(!J[a+60>>2]){break b}if(ua[J[J[c>>2]+52>>2]](c)&1){break b}d=ua[J[J[c>>2]+24>>2]](c,J[a+60>>2])|0;if(d){J[b+44>>2]=0;J[b+40>>2]=d;break a}d=ua[J[J[c>>2]+28>>2]](c,J[a+60>>2])|0;J[b+44>>2]=0;J[b+40>>2]=d;d=J[a+60>>2];d=(g=c,h=ua[J[J[d>>2]+12>>2]](d)|0,i=1,f=J[J[c>>2]+16>>2],ua[f](g|0,h|0,i|0)|0);e=J[a+60>>2];i=c,h=d,g=ua[J[J[e>>2]+16>>2]](e,J[d+8>>2],c)|0,j=1213612625,k=J[a+60>>2],f=J[J[c>>2]+20>>2],ua[f](i|0,h|0,g|0,j|0,k|0);break a}J[b+40>>2]=0;J[b+44>>2]=0}c:{d:{if(!J[a+64>>2]){break d}if(ua[J[J[c>>2]+52>>2]](c)&2){break d}d=ua[J[J[c>>2]+24>>2]](c,J[a+64>>2])|0;if(d){J[b+48>>2]=d;break c}f=b,k=ua[J[J[c>>2]+28>>2]](c,J[a+64>>2])|0,J[f+48>>2]=k;d=J[a+64>>2];d=(k=c,j=ua[J[J[d>>2]+8>>2]](d)|0,g=1,f=J[J[c>>2]+16>>2],ua[f](k|0,j|0,g|0)|0);e=J[a+64>>2];g=c,j=d,k=ua[J[J[e>>2]+12>>2]](e,J[d+8>>2],c)|0,h=1346456916,i=J[a+64>>2],f=J[J[c>>2]+20>>2],ua[f](g|0,j|0,k|0,h|0,i|0);break c}J[b+48>>2]=0}J[b+56>>2]=0;return 8861}function li(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=Q(0);Gb(a,b,c);N[b+52>>2]=N[a+552>>2];N[b+56>>2]=N[a+556>>2];N[b+60>>2]=N[a+560>>2];N[b- -64>>2]=N[a+564>>2];N[b+68>>2]=N[a+568>>2];N[b+72>>2]=N[a+572>>2];N[b+76>>2]=N[a+576>>2];N[b+80>>2]=N[a+580>>2];N[b+84>>2]=N[a+584>>2];N[b+88>>2]=N[a+588>>2];N[b+92>>2]=N[a+592>>2];N[b+96>>2]=N[a+596>>2];N[b+100>>2]=N[a+600>>2];N[b+104>>2]=N[a+604>>2];N[b+108>>2]=N[a+608>>2];N[b+112>>2]=N[a+612>>2];N[b+116>>2]=N[a+616>>2];N[b+120>>2]=N[a+620>>2];N[b+124>>2]=N[a+624>>2];N[b+128>>2]=N[a+628>>2];N[b+132>>2]=N[a+632>>2];N[b+136>>2]=N[a+636>>2];N[b+140>>2]=N[a+640>>2];N[b+144>>2]=N[a+644>>2];N[b+148>>2]=N[a+648>>2];N[b+152>>2]=N[a+652>>2];N[b+156>>2]=N[a+656>>2];N[b+160>>2]=N[a+660>>2];N[b+164>>2]=N[a+664>>2];N[b+168>>2]=N[a+668>>2];N[b+172>>2]=N[a+672>>2];N[b+176>>2]=N[a+676>>2];J[b+184>>2]=K[a+736|0];J[b+188>>2]=K[a+737|0];N[b+196>>2]=N[a+684>>2];N[b+192>>2]=N[a+680>>2];J[b+180>>2]=K[a+740|0];c=a+688|0;d=b,e=Eb(c),N[d+200>>2]=e;d=b,e=Fb(c),N[d+204>>2]=e;N[b+208>>2]=N[a+696>>2];N[b+212>>2]=N[a+700>>2];N[b+216>>2]=N[a+704>>2];return 8624}function Ql(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a=J[b>>2];b=Pc(ua[J[J[a>>2]+56>>2]](a,116)|0,b,c,d,0);J[b>>2]=16340;H[b+104|0]=1;J[b+100>>2]=0;J[b+92>>2]=0;J[b+96>>2]=0;J[8456]=J[8456]+1;a=ua[J[8258]](64,16)|0;H[a+20|0]=1;J[a>>2]=17788;J[a+16>>2]=0;H[a+40|0]=1;J[a+8>>2]=0;J[a+12>>2]=0;J[a+36>>2]=0;H[a+60|0]=1;J[a+28>>2]=0;J[a+32>>2]=0;J[a+56>>2]=0;J[a+48>>2]=0;J[a+52>>2]=0;J[8456]=J[8456]+1;i=ua[J[8258]](24,16)|0;g=J[a+8>>2];a:{if((g|0)<=0){break a}if((g|0)!=1){l=g&-2;while(1){e=P(f,12);h=e+J[a+16>>2]|0;j=J[h+4>>2];e=e+i|0;J[e>>2]=J[h>>2];J[e+4>>2]=j;J[e+8>>2]=J[h+8>>2];e=P(f|1,12);h=e+J[a+16>>2]|0;j=J[h+4>>2];e=e+i|0;J[e>>2]=J[h>>2];J[e+4>>2]=j;J[e+8>>2]=J[h+8>>2];f=f+2|0;k=k+2|0;if((l|0)!=(k|0)){continue}break}}if(!(g&1)){break a}g=P(f,12);f=g+J[a+16>>2]|0;h=J[f+4>>2];g=g+i|0;J[g>>2]=J[f>>2];J[g+4>>2]=h;J[g+8>>2]=J[f+8>>2]}f=J[a+16>>2];if(!(f?!f|!K[a+20|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](f)}J[a+16>>2]=i;H[a+20|0]=1;J[a+12>>2]=2;Jc(a);J[b+84>>2]=a;J[b+108>>2]=J[J[c+4>>2]+76>>2];J[b+112>>2]=J[J[d+4>>2]+76>>2];return b|0}function pc(a,b){var c=Q(0),d=Q(0),e=0,f=Q(0),g=Q(0),h=Q(0);d=N[((b<<2)+a|0)+1364>>2];e=P(b,88)+a|0;f=N[e+968>>2];g=N[e+972>>2];a:{if(f>=g){break a}if(dQ(3.1415927410125732))){break b}c=Q(c+Q(-6.2831854820251465))}h=Q(R(c));c=Qa(Q(g-d));c:{if(cQ(3.1415927410125732))){break c}c=Q(c+Q(-6.2831854820251465))}d=hg)){break a}c=Qa(Q(d-g));d:{if(cQ(3.1415927410125732))){break d}c=Q(c+Q(-6.2831854820251465))}h=Q(R(c));c=Qa(Q(d-f));e:{if(cQ(3.1415927410125732))){break e}c=Q(c+Q(-6.2831854820251465))}d=h>Q(R(c))?Q(d+Q(-6.2831854820251465)):d}N[e+1048>>2]=d;e=e+1040|0;if(f>g){J[(P(b,88)+a|0)+1052>>2]=0;J[e>>2]=0;return}N[e>>2]=d-f;if(f==g){J[(P(b,88)+a|0)+1052>>2]=3;return}a=P(b,88)+a|0;J[a+1052>>2]=4;N[a+1044>>2]=d-g}function Ci(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0);e=sa-688|0;sa=e;f=Ob(e+576|0);J[f+4>>2]=1;J[f>>2]=15832;g=J[b+12>>2];J[f+72>>2]=J[b+8>>2];J[f+76>>2]=g;g=J[b+4>>2];J[f+64>>2]=J[b>>2];J[f+68>>2]=g;g=J[b+28>>2];J[f+88>>2]=J[b+24>>2];J[f+92>>2]=g;g=J[b+20>>2];J[f+80>>2]=J[b+16>>2];J[f+84>>2]=g;g=J[b+44>>2];J[f+104>>2]=J[b+40>>2];J[f+108>>2]=g;g=J[b+36>>2];J[f+96>>2]=J[b+32>>2];J[f+100>>2]=g;N[f+52>>2]=N[a+204>>2];H[e+548|0]=0;J[e+524>>2]=953267991;J[e+212>>2]=22676;g=J[a+4>>2];b=e+188|0;J[b+20>>2]=0;J[b+16>>2]=f;J[b+12>>2]=g;J[b+8>>2]=e+212;J[b+4>>2]=e+216;J[b>>2]=22452;J[e+12>>2]=13156;J[e+176>>2]=1065353216;J[e+180>>2]=0;N[e+184>>2]=N[a+208>>2];g=b;b=a+136|0;a:{if(!Yd(g,a+8|0,a+72|0,b,b,e+12|0)){break a}h=N[e+152>>2];i=N[e+144>>2];j=N[e+148>>2];k=Q(Q(h*h)+Q(Q(i*i)+Q(j*j)));if(!(k>Q(9999999747378752e-20))){break a}l=N[e+176>>2];if(!(l>2])){break a}m=h;h=Q(Q(1)/Q(Y(k)));N[e+152>>2]=m*h;N[e+148>>2]=j*h;N[e+144>>2]=i*h;Q(ua[J[J[a>>2]+12>>2]](a,e+144|0,e+160|0,l,c,d))}sb(f);sa=e+688|0}function xi(a,b){a=a|0;b=b|0;var c=0,d=0;qc(a,J[a+28>>2]+4|0,J[a+32>>2]+4|0);J[b>>2]=0;J[b+4>>2]=0;d=2;a:{b:{c:{c=J[a+956>>2];switch(c|0){case 0:break a;case 4:break b;default:break c}}d=1}J[b>>2]=d;c=d}if(K[a+792|0]){c=c+1|0;J[b>>2]=c}if(K[a+798|0]){c=c+1|0;J[b>>2]=c}d=2;d:{switch(J[a+960>>2]){default:d=1;case 4:c=c+d|0;J[b>>2]=c;break;case 0:break d}}if(K[a+793|0]){c=c+1|0;J[b>>2]=c}if(K[a+799|0]){c=c+1|0;J[b>>2]=c}d=2;e:{switch(J[a+964>>2]){default:d=1;case 4:c=c+d|0;J[b>>2]=c;break;case 0:break e}}if(K[a+794|0]){c=c+1|0;J[b>>2]=c}if(K[a+800|0]){J[b>>2]=c+1}pc(a,0);c=2;f:{switch(J[a+1052>>2]){default:c=1;case 4:J[b>>2]=J[b>>2]+c;break;case 0:break f}}if(K[a+996|0]){J[b>>2]=J[b>>2]+1}if(K[a+1016|0]){J[b>>2]=J[b>>2]+1}pc(a,1);c=2;g:{switch(J[a+1140>>2]){default:c=1;case 4:J[b>>2]=J[b>>2]+c;break;case 0:break g}}if(K[a+1084|0]){J[b>>2]=J[b>>2]+1}if(K[a+1104|0]){J[b>>2]=J[b>>2]+1}c=2;pc(a,2);h:{switch(J[a+1228>>2]){default:c=1;case 4:J[b>>2]=J[b>>2]+c;break;case 0:break h}}if(K[a+1172|0]){J[b>>2]=J[b>>2]+1}if(K[a+1192|0]){J[b>>2]=J[b>>2]+1}}function Fk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0);a:{if(J[a+24>>2]){g=N[a- -64>>2];e=N[a+48>>2];h=Q(Q(g+e)*Q(.5));f=N[a+60>>2];k=N[a+44>>2];i=Q(Q(f+k)*Q(.5));l=Q(Q(g-e)*Q(.5));u=Q(Q(f-k)*Q(.5));e=N[a+56>>2];f=N[a+40>>2];g=Q(Q(e+f)*Q(.5));e=Q(Q(e-f)*Q(.5));break a}e=Q(0)}v=Q(ua[J[J[a>>2]+48>>2]](a));w=Q(ua[J[J[a>>2]+48>>2]](a));p=Q(ua[J[J[a>>2]+48>>2]](a));x=N[b+52>>2];f=N[b+20>>2];k=N[b+24>>2];o=N[b+56>>2];m=N[b+36>>2];j=N[b+40>>2];y=N[b+48>>2];q=N[b+8>>2];r=N[b>>2];s=N[b+4>>2];t=N[b+16>>2];n=N[b+32>>2];J[c+12>>2]=0;o=Q(o+Q(Q(h*j)+Q(Q(g*n)+Q(i*m))));l=Q(l+p);p=Q(l*Q(R(j)));e=Q(e+v);j=Q(u+w);m=Q(p+Q(Q(e*Q(R(n)))+Q(j*Q(R(m)))));N[c+8>>2]=o-m;n=Q(x+Q(Q(h*k)+Q(Q(g*t)+Q(i*f))));f=Q(Q(l*Q(R(k)))+Q(Q(e*Q(R(t)))+Q(j*Q(R(f)))));N[c+4>>2]=n-f;h=Q(y+Q(Q(h*q)+Q(Q(g*r)+Q(i*s))));i=Q(Q(l*Q(R(q)))+Q(Q(e*Q(R(r)))+Q(j*Q(R(s)))));N[c>>2]=h-i;J[d+12>>2]=0;N[d+8>>2]=m+o;N[d+4>>2]=f+n;N[d>>2]=i+h}function Ra(a,b,c){var d=0,e=Q(0),f=0,g=0,h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=0,w=Q(0),x=Q(0),y=Q(0);d=sa-48|0;sa=d;f=J[b+120>>2];v=J[b+124>>2];g=J[b>>2]+(v>>1)|0;if(v&1){f=J[f+J[g>>2]>>2]}ua[f|0](d,g,c);h=N[c+8>>2];i=N[c+4>>2];k=N[c>>2];f=J[b+124>>2];g=J[b+4>>2]+(f>>1)|0;c=J[b+120>>2];c=f&1?J[J[g>>2]+c>>2]:c;l=N[b+16>>2];m=N[b+12>>2];n=N[b+32>>2];o=N[b+24>>2];p=N[b+28>>2];q=N[b+48>>2];e=N[b+40>>2];r=N[b+44>>2];s=N[b+8>>2];J[d+28>>2]=0;j=e;e=Q(-k);N[d+24>>2]=Q(Q(j*e)-Q(r*i))-Q(q*h);N[d+20>>2]=Q(Q(o*e)-Q(p*i))-Q(n*h);N[d+16>>2]=Q(Q(s*e)-Q(m*i))-Q(l*h);ua[c|0](d+32|0,g,d+16|0);w=N[b+104>>2];x=N[b- -64>>2];y=N[b+60>>2];h=N[b+108>>2];i=N[b+80>>2];k=N[b+72>>2];l=N[b+76>>2];m=N[b+112>>2];n=N[b+96>>2];o=N[b+88>>2];p=N[b+92>>2];q=N[b+56>>2];j=N[d+40>>2];t=N[d+32>>2];u=N[d+36>>2];e=N[d>>2];r=N[d+4>>2];s=N[d+8>>2];J[a+12>>2]=0;N[a+8>>2]=s-Q(m+Q(Q(j*n)+Q(Q(t*o)+Q(u*p))));N[a+4>>2]=r-Q(h+Q(Q(j*i)+Q(Q(t*k)+Q(u*l))));N[a>>2]=e-Q(w+Q(Q(j*x)+Q(Q(t*q)+Q(u*y))));sa=d+48|0}function ri(a,b){a=a|0;b=b|0;var c=Q(0),d=0,e=0,f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0);a:{b:{if(K[a+738|0]){J[b>>2]=0;a=0;break b}J[b>>2]=5;J[b+4>>2]=1;d=J[a+32>>2];c=N[a+652>>2];f=N[a+620>>2];g=N[a+636>>2];l=Q(Q(N[d+44>>2]*c)+Q(Q(N[d+36>>2]*f)+Q(g*N[d+40>>2])));e=J[a+28>>2];m=N[e+44>>2];h=N[a+584>>2];n=N[e+36>>2];i=N[a+552>>2];j=N[a+568>>2];o=N[e+40>>2];u=Q(l*Q(Q(m*h)+Q(Q(n*i)+Q(j*o))));p=Q(Q(N[d+12>>2]*c)+Q(Q(N[d+4>>2]*f)+Q(g*N[d+8>>2])));q=N[e+12>>2];r=N[e+4>>2];s=N[e+8>>2];v=Q(p*Q(Q(q*h)+Q(Q(r*i)+Q(j*s))));t=N[e+28>>2];k=Q(t*h);h=N[e+20>>2];w=Q(h*i);i=N[e+24>>2];k=Q(k+Q(w+Q(j*i)));j=Q(Q(N[d+28>>2]*c)+Q(Q(N[d+20>>2]*f)+Q(g*N[d+24>>2])));c=N[a+588>>2];f=N[a+556>>2];g=N[a+572>>2];c=Q(Ia(Q(u+Q(v+Q(k*j))),Q(Q(l*Q(Q(m*c)+Q(Q(n*f)+Q(o*g))))+Q(Q(p*Q(Q(q*c)+Q(Q(r*f)+Q(s*g))))+Q(Q(Q(t*c)+Q(Q(h*f)+Q(i*g)))*j))))*N[a+732>>2]);N[a+728>>2]=c;Id(a+688|0,c);if(!(K[a+716|0]|K[a+737|0])){break a}J[b>>2]=J[b>>2]+1;a=J[b+4>>2]-1|0}J[b+4>>2]=a}}function Ch(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;d=sa-16|0;sa=d;ua[J[8262]](7775);gf(a);a:{if(!(ua[J[J[a>>2]+20>>2]](a)|0)){break a}b=ua[J[J[a>>2]+20>>2]](a)|0;if(!(ua[J[J[b>>2]+56>>2]](b)&6144)){break a}b=ua[J[J[a>>2]+104>>2]](a)|0;if((b|0)<=0){break a}c=b;if(b&1){c=b-1|0;f=a,g=ua[J[J[a>>2]+108>>2]](a,c)|0,e=J[J[a>>2]+172>>2],ua[e](f|0,g|0)}if((b|0)==1){break a}while(1){b=c-1|0;g=a,f=ua[J[J[a>>2]+108>>2]](a,b)|0,e=J[J[a>>2]+172>>2],ua[e](g|0,f|0);c=c-2|0;f=a,g=ua[J[J[a>>2]+108>>2]](a,c)|0,e=J[J[a>>2]+172>>2],ua[e](f|0,g|0);if(b>>>0>1){continue}break}}b:{if(!(ua[J[J[a>>2]+20>>2]](a)|0)){break b}b=ua[J[J[a>>2]+20>>2]](a)|0;if(!(ua[J[J[b>>2]+56>>2]](b)&16387)){break b}if(!(ua[J[J[a>>2]+20>>2]](a)|0)){break b}b=ua[J[J[a>>2]+20>>2]](a)|0;if(!(ua[J[J[b>>2]+56>>2]](b)|0)|J[a+296>>2]<=0){break b}c=0;while(1){b=J[J[a+304>>2]+(c<<2)>>2];ua[J[J[b>>2]+12>>2]](b,J[a+72>>2]);c=c+1|0;if((c|0)>2]){continue}break}}if(ua[J[J[a>>2]+20>>2]](a)|0){a=ua[J[J[a>>2]+20>>2]](a)|0;ua[J[J[a>>2]+104>>2]](a)}ua[J[8263]]();sa=d+16|0}function Xh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=J[a+288>>2];a:{b:{if(c){c:{if(J[a+292>>2]!=(d|0)){break c}h=d?d<<1:1;if((h|0)<=(d|0)){break c}if(h){J[8456]=J[8456]+1;f=ua[J[8258]](h<<2,16)|0;d=J[a+288>>2]}d:{if((d|0)<=0){break d}c=0;if(d>>>0>=4){i=d&-4;while(1){e=c<<2;J[e+f>>2]=J[e+J[a+296>>2]>>2];g=e|4;J[g+f>>2]=J[g+J[a+296>>2]>>2];g=e|8;J[g+f>>2]=J[g+J[a+296>>2]>>2];e=e|12;J[e+f>>2]=J[e+J[a+296>>2]>>2];c=c+4|0;j=j+4|0;if((i|0)!=(j|0)){continue}break}}e=d&3;if(!e){break d}while(1){i=c<<2;J[i+f>>2]=J[i+J[a+296>>2]>>2];c=c+1|0;k=k+1|0;if((e|0)!=(k|0)){continue}break}}c=J[a+296>>2];if(!(!c|!K[a+300|0])){if(c){J[8457]=J[8457]+1;ua[J[8259]](c)}d=J[a+288>>2]}J[a+296>>2]=f;H[a+300|0]=1;J[a+292>>2]=h}J[J[a+296>>2]+(d<<2)>>2]=b;d=d+1|0;break b}if((d|0)<=0){break a}f=J[a+296>>2];c=0;while(1){e=f+(c<<2)|0;if(J[e>>2]!=(b|0)){c=c+1|0;if((d|0)!=(c|0)){continue}break a}break}if((c|0)>=(d|0)){break a}d=d-1|0;c=d<<2;J[e>>2]=J[c+f>>2];J[c+J[a+296>>2]>>2]=b}J[a+288>>2]=d}J[a+280>>2]=(d|0)>0}function Le(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0;b=J[a+16>>2];if(!(b?!b|!K[a+20|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+16>>2]=0;H[a+20|0]=1;J[a+8>>2]=0;J[a+12>>2]=0;b=J[a+36>>2];if(!(b?!b|!K[a+40|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+36>>2]=0;H[a+40|0]=1;J[a+28>>2]=0;J[a+32>>2]=0;b=J[a+56>>2];if(!(b?!b|!K[a+60|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+56>>2]=0;H[a+60|0]=1;J[a+48>>2]=0;J[a+52>>2]=0;if(J[a+12>>2]<=1){J[8456]=J[8456]+1;f=ua[J[8258]](24,16)|0;d=J[a+8>>2];a:{if((d|0)<=0){break a}b=0;if((d|0)!=1){i=d&-2;while(1){c=P(b,12);e=c+J[a+16>>2]|0;g=J[e+4>>2];c=c+f|0;J[c>>2]=J[e>>2];J[c+4>>2]=g;J[c+8>>2]=J[e+8>>2];c=P(b|1,12);e=c+J[a+16>>2]|0;g=J[e+4>>2];c=c+f|0;J[c>>2]=J[e>>2];J[c+4>>2]=g;J[c+8>>2]=J[e+8>>2];b=b+2|0;h=h+2|0;if((h|0)!=(i|0)){continue}break}}if(!(d&1)){break a}d=P(b,12);b=d+J[a+16>>2]|0;e=J[b+4>>2];d=d+f|0;J[d>>2]=J[b>>2];J[d+4>>2]=e;J[d+8>>2]=J[b+8>>2]}b=J[a+16>>2];if(!(b?!b|!K[a+20|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+16>>2]=f;H[a+20|0]=1;J[a+12>>2]=2}Jc(a)}function Dg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;f=J[a+188>>2];j=J[b>>2];d=J[a+328>>2];a:{b:{if((d|0)<=0){break b}g=J[a+336>>2];while(1){if(J[g+(e<<2)>>2]!=(j|0)){e=e+1|0;if((e|0)!=(d|0)){continue}break b}break}if((d|0)!=(e|0)){break a}}m=c?c:f;c:{if(J[a+332>>2]!=(d|0)){break c}g=d?d<<1:1;if((g|0)<=(d|0)){break c}d:{if(!g){c=0;break d}J[8456]=J[8456]+1;c=ua[J[8258]](g<<2,16)|0;d=J[a+328>>2]}e:{if((d|0)<=0){break e}e=0;if(d>>>0>=4){i=d&-4;while(1){f=e<<2;J[f+c>>2]=J[f+J[a+336>>2]>>2];h=f|4;J[h+c>>2]=J[h+J[a+336>>2]>>2];h=f|8;J[h+c>>2]=J[h+J[a+336>>2]>>2];f=f|12;J[f+c>>2]=J[f+J[a+336>>2]>>2];e=e+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}f=d&3;if(!f){break e}while(1){i=e<<2;J[i+c>>2]=J[i+J[a+336>>2]>>2];e=e+1|0;l=l+1|0;if((f|0)!=(l|0)){continue}break}}e=J[a+336>>2];if(!(!e|!K[a+340|0])){if(e){J[8457]=J[8457]+1;ua[J[8259]](e)}d=J[a+328>>2]}J[a+336>>2]=c;H[a+340|0]=1;J[a+332>>2]=g}J[J[a+336>>2]+(d<<2)>>2]=j;J[a+328>>2]=d+1;a=J[a+344>>2];ua[J[J[a>>2]+8>>2]](a,m,b)|0}}function Cb(a){a=a|0;var b=0;J[a>>2]=24120;if(K[a+288|0]){b=J[a+220>>2];ua[J[J[b>>2]>>2]](b)|0;b=J[a+220>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}}b=J[a+212>>2];if(b){ua[J[J[b>>2]>>2]](b)|0;b=J[a+212>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}}if(K[a+289|0]){b=J[a+216>>2];ua[J[J[b>>2]>>2]](b)|0;b=J[a+216>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}}b=J[a+332>>2];if(!(b?!b|!K[a+336|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+332>>2]=0;H[a+336|0]=1;J[a+324>>2]=0;J[a+328>>2]=0;b=J[a+304>>2];if(!(b?!b|!K[a+308|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+304>>2]=0;H[a+308|0]=1;J[a+296>>2]=0;J[a+300>>2]=0;b=J[a+256>>2];if(!(b?!b|!K[a+260|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+256>>2]=0;H[a+260|0]=1;J[a+248>>2]=0;J[a+252>>2]=0;b=J[a+236>>2];if(!(b?!b|!K[a+240|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+236>>2]=0;H[a+240|0]=1;J[a+228>>2]=0;J[a+232>>2]=0;b=J[a+204>>2];if(!(b?!b|!K[a+208|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+204>>2]=0;H[a+208|0]=1;J[a+196>>2]=0;J[a+200>>2]=0;return Wc(a)|0}function mb(a,b,c,d,e,f,g){var h=Q(0),i=Q(0),j=0,k=0,l=Q(0),m=Q(0),n=Q(0),o=0;J[d>>2]=2139095039;J[e>>2]=-8388609;o=J[a+8>>2];if((o|0)<=0){h=Q(-34028234663852886e22)}else{while(1){k=J[a+16>>2]+(j<<4)|0;h=N[k+8>>2];i=N[k>>2];l=N[k+4>>2];m=Q(Q(Q(h*N[b+40>>2])+Q(Q(i*N[b+32>>2])+Q(l*N[b+36>>2])))+N[b+56>>2]);n=Q(Q(Q(h*N[b+8>>2])+Q(Q(i*N[b>>2])+Q(l*N[b+4>>2])))+N[b+48>>2]);i=Q(Q(Q(h*N[b+24>>2])+Q(Q(i*N[b+16>>2])+Q(l*N[b+20>>2])))+N[b+52>>2]);h=Q(Q(m*N[c+8>>2])+Q(Q(n*N[c>>2])+Q(i*N[c+4>>2])));if(h>2]){N[d>>2]=h;J[f+12>>2]=0;N[f+8>>2]=m;N[f+4>>2]=i;N[f>>2]=n}if(h>N[e>>2]){N[e>>2]=h;J[g+12>>2]=0;N[g+8>>2]=m;N[g+4>>2]=i;N[g>>2]=n}j=j+1|0;if((o|0)!=(j|0)){continue}break}h=N[e>>2]}i=N[d>>2];if(h>2]=h;N[e>>2]=i;b=J[f+12>>2];a=sa-16|0;J[a+8>>2]=J[f+8>>2];J[a+12>>2]=b;b=J[f+4>>2];J[a>>2]=J[f>>2];J[a+4>>2]=b;b=J[g+12>>2];J[f+8>>2]=J[g+8>>2];J[f+12>>2]=b;b=J[g+4>>2];J[f>>2]=J[g>>2];J[f+4>>2]=b;b=J[a+12>>2];J[g+8>>2]=J[a+8>>2];J[g+12>>2]=b;b=J[a+4>>2];J[g>>2]=J[a>>2];J[g+4>>2]=b}}function fe(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;h=sa-16|0;sa=h;while(1){m=c;g=J[a+12>>2]+((c+d|0)/2<<4)|0;n=J[g+8>>2];k=J[g+4>>2];l=J[g>>2];g=d;while(1){i=J[a+12>>2];while(1){a:{f=(c<<4)+i|0;e=J[f+4>>2];b:{if((e|0)<(k|0)){break b}if((e|0)!=(k|0)){break a}e=J[f>>2];if((e|0)<(l|0)){break b}if((e|0)!=(l|0)|J[f+8>>2]>=(n|0)){break a}}c=c+1|0;continue}break}while(1){c:{o=g<<4;e=o+i|0;j=J[e+4>>2];d:{if((j|0)>(k|0)){break d}if((k|0)!=(j|0)){break c}j=J[e>>2];if((j|0)>(l|0)){break d}if((l|0)!=(j|0)|J[e+8>>2]<=(n|0)){break c}}g=g-1|0;continue}break}if((c|0)<=(g|0)){i=J[f+12>>2];J[h+8>>2]=J[f+8>>2];J[h+12>>2]=i;i=J[f+4>>2];J[h>>2]=J[f>>2];J[h+4>>2]=i;i=J[e+4>>2];J[f>>2]=J[e>>2];J[f+4>>2]=i;i=J[e+12>>2];J[f+8>>2]=J[e+8>>2];J[f+12>>2]=i;e=J[h+4>>2];f=J[a+12>>2]+o|0;J[f>>2]=J[h>>2];J[f+4>>2]=e;e=J[h+12>>2];J[f+8>>2]=J[h+8>>2];J[f+12>>2]=e;g=g-1|0;c=c+1|0}if((c|0)<=(g|0)){continue}break}if((g|0)>(m|0)){fe(a,b,m,g)}if((c|0)<(d|0)){continue}break}sa=h+16|0}function vd(a,b,c){var d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0);y=N[b+52>>2];z=N[b+56>>2];m=N[c+52>>2];n=N[c+56>>2];d=N[b+20>>2];e=N[b+24>>2];o=N[c+20>>2];p=N[c+36>>2];f=N[b+36>>2];q=N[c+24>>2];g=N[b+40>>2];r=N[c+40>>2];A=N[b+48>>2];s=N[c+48>>2];h=N[b+16>>2];t=N[c+4>>2];i=N[b+32>>2];u=N[c+8>>2];j=N[b+8>>2];v=N[c+32>>2];k=N[b>>2];w=N[c>>2];l=N[b+4>>2];x=N[c+16>>2];J[a+60>>2]=0;J[a+44>>2]=0;J[a+28>>2]=0;J[a+12>>2]=0;N[a>>2]=Q(v*j)+Q(Q(w*k)+Q(x*l));N[a+40>>2]=Q(r*g)+Q(Q(u*i)+Q(q*f));N[a+36>>2]=Q(p*g)+Q(Q(t*i)+Q(o*f));N[a+32>>2]=Q(v*g)+Q(Q(w*i)+Q(x*f));N[a+24>>2]=Q(r*e)+Q(Q(u*h)+Q(q*d));N[a+20>>2]=Q(p*e)+Q(Q(t*h)+Q(o*d));N[a+16>>2]=Q(v*e)+Q(Q(w*h)+Q(x*d));N[a+8>>2]=Q(r*j)+Q(Q(u*k)+Q(l*q));N[a+4>>2]=Q(p*j)+Q(Q(t*k)+Q(l*o));N[a+56>>2]=z+Q(Q(n*g)+Q(Q(s*i)+Q(f*m)));N[a+52>>2]=y+Q(Q(n*e)+Q(Q(s*h)+Q(d*m)));N[a+48>>2]=A+Q(Q(n*j)+Q(Q(s*k)+Q(l*m)))}function bc(a,b){var c=0,d=0,e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0);if(J[a>>2]==(b|0)){J[a>>2]=0;return 0}d=J[b+32>>2];c=J[(((J[d+40>>2]!=(b|0))<<2)+d|0)+36>>2];b=J[d+32>>2];a:{b:{if(b){J[((((d|0)==J[b+40>>2])<<2)+b|0)+36>>2]=c;J[c+32>>2]=b;c=J[a+4>>2];if(c){J[8457]=J[8457]+1;ua[J[8259]](c)}J[a+4>>2]=d;while(1){q=N[b>>2];d=J[b+36>>2];e=N[d>>2];c=J[b+40>>2];k=N[c>>2];e=e>2]=e;k=N[b+16>>2];f=N[d+16>>2];l=N[c+16>>2];f=f>l?f:l;N[b+16>>2]=f;l=N[b+4>>2];g=N[d+4>>2];m=N[c+4>>2];g=g>2]=g;m=N[b+20>>2];h=N[d+20>>2];n=N[c+20>>2];h=h>n?h:n;N[b+20>>2]=h;n=N[b+8>>2];i=N[d+8>>2];o=N[c+8>>2];i=i>2]=i;o=N[b+24>>2];j=N[d+24>>2];p=N[c+24>>2];j=j>p?j:p;N[b+24>>2]=j;c:{if(e!=q|l!=g|(n!=i|k!=f)){break c}if(m!=h){break c}if(o==j){break a}}b=J[b+32>>2];if(b){continue}break}break b}J[a>>2]=c;J[c+32>>2]=0;b=J[a+4>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+4>>2]=d}b=J[a>>2]}return b}function Ad(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;while(1){n=c;m=J[J[a+12>>2]+((c+d|0)/2<<2)>>2];f=d;while(1){k=J[a+12>>2];j=J[J[m+836>>2]+208>>2];g=(j|0)<0;a:{if(!g){while(1){h=c;l=(c<<2)+k|0;i=J[l>>2];e=J[J[i+836>>2]+208>>2];if((e|0)<0){e=J[J[i+840>>2]+208>>2]}c=h+1|0;if((e|0)<(j|0)){continue}break a}}o=J[J[m+840>>2]+208>>2];while(1){h=c;l=(c<<2)+k|0;i=J[l>>2];e=J[J[i+836>>2]+208>>2];if((e|0)<0){e=J[J[i+840>>2]+208>>2]}c=h+1|0;if((e|0)<(o|0)){continue}break}}b:{if(!g){while(1){c=f;g=J[(c<<2)+k>>2];e=J[J[g+836>>2]+208>>2];if((e|0)<0){e=J[J[g+840>>2]+208>>2]}f=c-1|0;if((e|0)>(j|0)){continue}break b}}j=J[J[m+840>>2]+208>>2];while(1){c=f;g=J[(c<<2)+k>>2];e=J[J[g+836>>2]+208>>2];if((e|0)<0){e=J[J[g+840>>2]+208>>2]}f=c-1|0;if((e|0)>(j|0)){continue}break}}c:{if((c|0)<(h|0)){f=c;c=h;break c}J[l>>2]=g;J[J[a+12>>2]+(c<<2)>>2]=i;f=c-1|0;c=h+1|0}if((c|0)<=(f|0)){continue}break}if((f|0)>(n|0)){Ad(a,b,n,f)}if((c|0)<(d|0)){continue}break}}function ls(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;g=J[a+32>>2];e=J[a+24>>2];a:{while(1){if((e|0)<=0){break a}e=e-1|0;if(J[(g+P(e,80)|0)+64>>2]!=(b|0)){continue}break}b=sa+-64|0;sa=b;f=J[c+4>>2];g=P(e,80);e=g+J[a+32>>2]|0;J[e>>2]=J[c>>2];J[e+4>>2]=f;f=J[c+12>>2];J[e+8>>2]=J[c+8>>2];J[e+12>>2]=f;f=J[c+28>>2];J[e+24>>2]=J[c+24>>2];J[e+28>>2]=f;f=J[c+20>>2];J[e+16>>2]=J[c+16>>2];J[e+20>>2]=f;f=J[c+44>>2];J[e+40>>2]=J[c+40>>2];J[e+44>>2]=f;f=J[c+36>>2];J[e+32>>2]=J[c+32>>2];J[e+36>>2]=f;f=J[c+60>>2];J[e+56>>2]=J[c+56>>2];J[e+60>>2]=f;f=J[c+52>>2];J[e+48>>2]=J[c+48>>2];J[e+52>>2]=f;if(J[a+72>>2]){e=J[(g+J[a+32>>2]|0)+64>>2];ua[J[J[e>>2]+8>>2]](e,c,b+48|0,b+32|0);c=J[b+60>>2];J[b+8>>2]=J[b+56>>2];J[b+12>>2]=c;c=J[b+44>>2];J[b+24>>2]=J[b+40>>2];J[b+28>>2]=c;c=J[b+36>>2];J[b+16>>2]=J[b+32>>2];J[b+20>>2]=c;c=J[b+52>>2];J[b>>2]=J[b+48>>2];J[b+4>>2]=c;_c(J[a+72>>2],J[(g+J[a+32>>2]|0)+76>>2],b)}if(d){ua[J[J[a>>2]+68>>2]](a)}sa=b- -64|0}}function xd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;while(1){n=c;m=J[J[a+12>>2]+((c+d|0)/2<<2)>>2];f=d;while(1){k=J[a+12>>2];j=J[J[m+28>>2]+208>>2];g=(j|0)<0;a:{if(!g){while(1){h=c;l=(c<<2)+k|0;i=J[l>>2];e=J[J[i+28>>2]+208>>2];if((e|0)<0){e=J[J[i+32>>2]+208>>2]}c=h+1|0;if((e|0)<(j|0)){continue}break a}}o=J[J[m+32>>2]+208>>2];while(1){h=c;l=(c<<2)+k|0;i=J[l>>2];e=J[J[i+28>>2]+208>>2];if((e|0)<0){e=J[J[i+32>>2]+208>>2]}c=h+1|0;if((e|0)<(o|0)){continue}break}}b:{if(!g){while(1){c=f;g=J[(c<<2)+k>>2];e=J[J[g+28>>2]+208>>2];if((e|0)<0){e=J[J[g+32>>2]+208>>2]}f=c-1|0;if((e|0)>(j|0)){continue}break b}}j=J[J[m+32>>2]+208>>2];while(1){c=f;g=J[(c<<2)+k>>2];e=J[J[g+28>>2]+208>>2];if((e|0)<0){e=J[J[g+32>>2]+208>>2]}f=c-1|0;if((e|0)>(j|0)){continue}break}}c:{if((c|0)<(h|0)){f=c;c=h;break c}J[l>>2]=g;J[J[a+12>>2]+(c<<2)>>2]=i;f=c-1|0;c=h+1|0}if((c|0)<=(f|0)){continue}break}if((f|0)>(n|0)){xd(a,b,n,f)}if((c|0)<(d|0)){continue}break}}function qh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(!(K[b+204|0]&3|H[b+564|0]&1)){Db(b,a+264|0)}if(J[b+192>>2]){a:{if(!(H[b+204|0]&1)){c=J[a+248>>2];b:{if((c|0)!=J[a+252>>2]){break b}h=c?c<<1:1;if((h|0)<=(c|0)){break b}if(h){J[8456]=J[8456]+1;f=ua[J[8258]](h<<2,16)|0;c=J[a+248>>2]}c:{if((c|0)<=0){break c}if(c>>>0>=4){i=c&-4;while(1){d=e<<2;J[d+f>>2]=J[d+J[a+256>>2]>>2];g=d|4;J[g+f>>2]=J[g+J[a+256>>2]>>2];g=d|8;J[g+f>>2]=J[g+J[a+256>>2]>>2];d=d|12;J[d+f>>2]=J[d+J[a+256>>2]>>2];e=e+4|0;j=j+4|0;if((i|0)!=(j|0)){continue}break}}d=c&3;if(!d){break c}while(1){i=e<<2;J[i+f>>2]=J[i+J[a+256>>2]>>2];e=e+1|0;k=k+1|0;if((d|0)!=(k|0)){continue}break}}e=J[a+256>>2];if(!(!e|!K[a+260|0])){if(e){J[8457]=J[8457]+1;ua[J[8259]](e)}c=J[a+248>>2]}J[a+256>>2]=f;H[a+260|0]=1;J[a+252>>2]=h}J[J[a+256>>2]+(c<<2)>>2]=b;J[a+248>>2]=c+1;break a}if((J[b+220>>2]&-2)!=4){J[b+220>>2]=2}}c=b;b=J[b+204>>2]&3;ua[J[J[a>>2]+36>>2]](a,c,b?2:1,b?-3:-1)}}function ic(a){var b=0,c=Q(0),d=0,e=Q(0),f=0,g=Q(0),h=Q(0),i=Q(0),j=0,k=0;d=sa-16|0;sa=d;b=J[a+8>>2];a:{if(!b){J[8456]=J[8456]+1;b=te(ua[J[8258]](64,16)|0,N[a+152>>2],N[a+156>>2]);J[a+8>>2]=b;break a}e=N[a+156>>2];c=N[a+152>>2];N[b+52>>2]=c;J[b+48>>2]=0;N[b+44>>2]=c;N[b+36>>2]=c;J[b+28>>2]=1065353216;J[b+32>>2]=0;J[b+20>>2]=1065353216;J[b+24>>2]=1065353216;J[b+60>>2]=1;N[b+40>>2]=e*Q(.5)}f=J[a+4>>2];ua[J[J[f>>2]+8>>2]](f,b);e=Q(ua[J[J[a>>2]+20>>2]](a));c=N[a+152>>2];J[d+12>>2]=0;N[d+8>>2]=c;N[d+4>>2]=e;N[d>>2]=c;b=J[a+104>>2];b:{if(!b){J[8456]=J[8456]+1;j=a,k=Ic(ua[J[8258]](64,16)|0,d),J[j+104>>2]=k;break b}g=Q(ua[J[J[b>>2]+48>>2]](b));h=Q(ua[J[J[b>>2]+48>>2]](b));i=Q(ua[J[J[b>>2]+48>>2]](b));J[b+48>>2]=0;N[b+44>>2]=Q(c*N[b+28>>2])-i;N[b+40>>2]=Q(e*N[b+24>>2])-h;N[b+36>>2]=Q(c*N[b+20>>2])-g;a=c(a?c:e)?!a:2)<<2)+d>>2]*Q(.10000000149011612));if(!(Q(ua[J[J[b>>2]+48>>2]](b))>c)){break b}ua[J[J[b>>2]+44>>2]](b,c)}sa=d+16|0}function Dd(a,b){var c=0,d=0,e=0,f=0;a:{d=J[a+548>>2];if((d|0)<=0){break a}e=J[a+556>>2];while(1){if(J[e+(c<<2)>>2]!=(b|0)){c=c+1|0;if((d|0)!=(c|0)){continue}break a}break}if((c|0)>=(d|0)){break a}c=0;b:{while(1){f=e+(c<<2)|0;if(J[f>>2]!=(b|0)){c=c+1|0;if((d|0)!=(c|0)){continue}break b}break}if((c|0)>=(d|0)){break b}d=d-1|0;c=d<<2;J[f>>2]=J[c+e>>2];J[c+J[a+556>>2]>>2]=b;J[a+548>>2]=d}d=J[b+32>>2];e=J[b+28>>2];c:{if((e|0)==(a|0)){b=J[a+288>>2];if((b|0)<=0){break c}e=J[a+296>>2];c=0;while(1){f=e+(c<<2)|0;if((d|0)!=J[f>>2]){c=c+1|0;if((c|0)!=(b|0)){continue}break c}break}if((b|0)<=(c|0)){break c}b=b-1|0;c=b<<2;J[f>>2]=J[c+e>>2];J[c+J[a+296>>2]>>2]=d;J[a+288>>2]=b;break c}b=J[d+288>>2];d:{if((b|0)<=0){break d}a=J[d+296>>2];c=0;while(1){f=a+(c<<2)|0;if((e|0)!=J[f>>2]){c=c+1|0;if((c|0)!=(b|0)){continue}break d}break}if((b|0)<=(c|0)){break d}c=a;b=b-1|0;a=b<<2;J[f>>2]=J[c+a>>2];J[a+J[d+296>>2]>>2]=e;J[d+288>>2]=b}a=d}J[a+280>>2]=(b|0)>0}}function Ig(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=J[b>>2];c=J[a+328>>2];a:{b:{if((c|0)<=0){break b}e=J[a+336>>2];b=0;while(1){if(J[e+(b<<2)>>2]!=(i|0)){b=b+1|0;if((c|0)!=(b|0)){continue}break b}break}if((b|0)!=(c|0)){break a}}c:{if(J[a+332>>2]!=(c|0)){break c}g=c?c<<1:1;if((g|0)<=(c|0)){break c}d:{if(!g){e=0;break d}J[8456]=J[8456]+1;e=ua[J[8258]](g<<2,16)|0;c=J[a+328>>2]}e:{if((c|0)<=0){break e}b=0;if(c>>>0>=4){h=c&-4;while(1){d=b<<2;J[d+e>>2]=J[d+J[a+336>>2]>>2];f=d|4;J[f+e>>2]=J[f+J[a+336>>2]>>2];f=d|8;J[f+e>>2]=J[f+J[a+336>>2]>>2];d=d|12;J[d+e>>2]=J[d+J[a+336>>2]>>2];b=b+4|0;j=j+4|0;if((h|0)!=(j|0)){continue}break}}d=c&3;if(!d){break e}while(1){h=b<<2;J[h+e>>2]=J[h+J[a+336>>2]>>2];b=b+1|0;k=k+1|0;if((d|0)!=(k|0)){continue}break}}b=J[a+336>>2];if(!(!b|!K[a+340|0])){if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}c=J[a+328>>2]}J[a+336>>2]=e;H[a+340|0]=1;J[a+332>>2]=g}J[J[a+336>>2]+(c<<2)>>2]=i;J[a+328>>2]=c+1}}function be(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0);e=Q(ua[J[J[a>>2]+48>>2]](a));y=N[b+52>>2];i=N[b+24>>2];j=N[b+20>>2];k=N[b+56>>2];g=N[b+40>>2];h=N[a+72>>2];f=N[a+88>>2];l=N[b+36>>2];p=N[a+68>>2];q=N[a+84>>2];z=N[b+48>>2];r=N[b+8>>2];s=N[b>>2];t=N[b+4>>2];u=N[b+16>>2];v=N[b+32>>2];w=N[a+64>>2];x=N[a+80>>2];J[c+12>>2]=0;m=k;k=Q(Q(f+h)*Q(.5));n=Q(Q(x+w)*Q(.5));o=Q(Q(q+p)*Q(.5));m=Q(m+Q(Q(g*k)+Q(Q(v*n)+Q(l*o))));h=Q(e+Q(Q(f-h)*Q(.5)));f=Q(h*Q(R(g)));g=Q(e+Q(Q(x-w)*Q(.5)));e=Q(e+Q(Q(q-p)*Q(.5)));f=Q(f+Q(Q(g*Q(R(v)))+Q(e*Q(R(l)))));N[c+8>>2]=m-f;l=Q(y+Q(Q(k*i)+Q(Q(n*u)+Q(o*j))));i=Q(Q(h*Q(R(i)))+Q(Q(g*Q(R(u)))+Q(e*Q(R(j)))));N[c+4>>2]=l-i;j=Q(z+Q(Q(k*r)+Q(Q(n*s)+Q(o*t))));e=Q(Q(h*Q(R(r)))+Q(Q(g*Q(R(s)))+Q(e*Q(R(t)))));N[c>>2]=j-e;J[d+12>>2]=0;N[d+8>>2]=f+m;N[d+4>>2]=i+l;N[d>>2]=e+j}function Fr(){var a=0,b=0,c=0,d=0,e=0;b=sa-16|0;sa=b;if(!K[35720]){J[b+8>>2]=0;J[b+12>>2]=0;J[b>>2]=0;J[b+4>>2]=0;a=sa-144|0;sa=a;c=Wb(35044);J[c>>2]=23996;H[c+560|0]=1;J[c+556>>2]=0;J[c+548>>2]=0;J[c+552>>2]=0;J[a+72>>2]=0;J[a+4>>2]=0;N[a>>2]=0;d=J[b+12>>2];J[a+84>>2]=J[b+8>>2];J[a+88>>2]=d;e=J[b>>2];d=J[b+4>>2];J[a+20>>2]=0;J[a+24>>2]=0;J[a+12>>2]=0;J[a+16>>2]=0;J[a+28>>2]=1065353216;J[a+40>>2]=0;J[a+44>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;J[a+48>>2]=1065353216;J[a+52>>2]=0;J[a+56>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;J[a+68>>2]=0;J[a+76>>2]=e;J[a+80>>2]=d;J[a+136>>2]=1008981770;J[a+140>>2]=1008981770;J[a+128>>2]=1000593162;J[a+132>>2]=1008981770;H[a+124|0]=0;J[a+116>>2]=1061997773;J[a+120>>2]=1065353216;J[a+108>>2]=0;J[a+112>>2]=0;J[a+100>>2]=1056964608;J[a+104>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+8>>2]=1065353216;Hd(c,a);sa=a+144|0;H[35720]=1}J[b+8>>2]=0;J[b+12>>2]=0;J[b>>2]=0;J[b+4>>2]=0;lc(35044,Q(0),b);sa=b+16|0;return 35044}function ph(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;if(!(K[b+204|0]&3|H[b+564|0]&1)){Db(b,a+264|0)}if(J[b+192>>2]){a:{if(!(H[b+204|0]&1)){e=J[a+248>>2];b:{if((e|0)!=J[a+252>>2]){break b}j=e?e<<1:1;if((j|0)<=(e|0)){break b}if(j){J[8456]=J[8456]+1;h=ua[J[8258]](j<<2,16)|0;e=J[a+248>>2]}c:{if((e|0)<=0){break c}if(e>>>0>=4){k=e&-4;while(1){f=g<<2;J[f+h>>2]=J[f+J[a+256>>2]>>2];i=f|4;J[i+h>>2]=J[i+J[a+256>>2]>>2];i=f|8;J[i+h>>2]=J[i+J[a+256>>2]>>2];f=f|12;J[f+h>>2]=J[f+J[a+256>>2]>>2];g=g+4|0;l=l+4|0;if((k|0)!=(l|0)){continue}break}}f=e&3;if(!f){break c}while(1){k=g<<2;J[k+h>>2]=J[k+J[a+256>>2]>>2];g=g+1|0;m=m+1|0;if((f|0)!=(m|0)){continue}break}}g=J[a+256>>2];if(!(!g|!K[a+260|0])){if(g){J[8457]=J[8457]+1;ua[J[8259]](g)}e=J[a+248>>2]}J[a+256>>2]=h;H[a+260|0]=1;J[a+252>>2]=j}J[J[a+256>>2]+(e<<2)>>2]=b;J[a+248>>2]=e+1;break a}if((J[b+220>>2]&-2)!=4){J[b+220>>2]=2}}ua[J[J[a>>2]+36>>2]](a,b,c,d)}}function zh(a){a=a|0;var b=0,c=0,d=Q(0),e=0,f=0,g=0,h=0;f=sa+-64|0;sa=f;a:{if(K[a+290|0]){c=J[a+8>>2];if((c|0)<=0){break a}while(1){b=J[J[a+16>>2]+(e<<2)>>2];if(!(!b|!(J[b+252>>2]&2)|(!J[b+540>>2]|K[b+204|0]&3))){c=b+68|0;g=b+132|0;h=b+148|0;b:{c:{if(!K[a+316|0]){break c}d=N[a+284>>2];if(d==Q(0)){break c}d=Q(N[a+280>>2]-d);break b}d=Q(N[a+280>>2]*N[b+268>>2])}kb(c,g,h,d,f);b=J[b+540>>2];ua[J[J[b>>2]+12>>2]](b,f);c=J[a+8>>2]}e=e+1|0;if((c|0)>(e|0)){continue}break}break a}c=J[a+248>>2];if((c|0)<=0){break a}while(1){d:{e:{b=J[J[a+256>>2]+(e<<2)>>2];switch(J[b+220>>2]-2|0){case 0:case 3:break d;default:break e}}if(!J[b+540>>2]|K[b+204|0]&3){break d}c=b+68|0;g=b+132|0;h=b+148|0;f:{g:{if(!K[a+316|0]){break g}d=N[a+284>>2];if(d==Q(0)){break g}d=Q(N[a+280>>2]-d);break f}d=Q(N[a+280>>2]*N[b+268>>2])}kb(c,g,h,d,f);b=J[b+540>>2];ua[J[J[b>>2]+12>>2]](b,f);c=J[a+248>>2]}e=e+1|0;if((c|0)>(e|0)){continue}break}}sa=f- -64|0}function Dq(a,b){a=Q(a);b=b|0;var c=0;c=sa-144|0;sa=c;if(!K[33688]){J[8415]=0;J[8416]=0;J[8413]=35;J[8414]=0;J[8417]=0;J[8412]=20152;J[8413]=27;J[8412]=20260;H[33688]=1}J[c+88>>2]=0;J[c+92>>2]=0;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;N[c>>2]=a;a=a==Q(0)?Q(0):Q(1.6666666269302368);N[c+84>>2]=a;N[c+80>>2]=a;J[c+136>>2]=1008981770;J[c+140>>2]=1008981770;J[c+128>>2]=1000593162;J[c+132>>2]=1008981770;H[c+124|0]=0;J[c+120>>2]=1065353216;J[c+112>>2]=0;J[c+116>>2]=1061997773;J[c+104>>2]=0;J[c+108>>2]=0;J[c+96>>2]=0;J[c+100>>2]=1056964608;J[c+4>>2]=b;J[c+8>>2]=1065353216;J[c+72>>2]=33648;N[c+76>>2]=a;J[c+32>>2]=0;J[c+36>>2]=0;J[c+28>>2]=1065353216;J[c+40>>2]=0;J[c+44>>2]=0;J[c+48>>2]=1065353216;J[c+52>>2]=0;J[c+56>>2]=0;J[c+60>>2]=0;J[c+64>>2]=0;J[c+68>>2]=0;J[8456]=J[8456]+1;b=Wb(ua[J[8258]](676,16)|0);J[b>>2]=23996;H[b+560|0]=1;J[b+556>>2]=0;J[b+548>>2]=0;J[b+552>>2]=0;Hd(b,c);sa=c+144|0;return b|0}function co(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0;h=sa-48|0;sa=h;J[8456]=J[8456]+1;d=ua[J[8258]](64,16)|0;J[d+8>>2]=g;J[d+4>>2]=f;J[d>>2]=e;e=J[b+4>>2];J[d+16>>2]=J[b>>2];J[d+20>>2]=e;e=J[b+12>>2];J[d+24>>2]=J[b+8>>2];J[d+28>>2]=e;e=J[c+4>>2];J[d+32>>2]=J[c>>2];J[d+36>>2]=e;e=J[c+12>>2];J[d+40>>2]=J[c+8>>2];J[d+44>>2]=e;J[d+52>>2]=0;J[d+56>>2]=0;e=J[b+12>>2];J[h+24>>2]=J[b+8>>2];J[h+28>>2]=e;e=J[b+4>>2];J[h+16>>2]=J[b>>2];J[h+20>>2]=e;b=J[c+12>>2];J[h+40>>2]=J[c+8>>2];J[h+44>>2]=b;b=J[c+4>>2];J[h+32>>2]=J[c>>2];J[h+36>>2]=b;J[d+60>>2]=J[a+104>>2];b=J[a+148>>2]+1|0;J[a+148>>2]=b;J[d+12>>2]=b;i=d,j=$b(a+4|0,h+16|0,d),J[i+48>>2]=j;b=J[a+104>>2];J[d+52>>2]=0;b=(b<<2)+a|0;J[d+56>>2]=J[b+84>>2];c=J[b+84>>2];if(c){J[c+52>>2]=d}J[b+84>>2]=d;if(!K[a+153|0]){J[h+12>>2]=d;J[h+4>>2]=12044;J[h+8>>2]=a;b=h+16|0;c=h+4|0;xb(J[a+4>>2],b,c);xb(J[a+44>>2],b,c)}sa=h+48|0;return d|0}function uc(a,b,c,d,e,f){var g=0,h=0,i=0;a:{if(K[d+55|0]==(b|0)){break a}g=e<<2;h=J[g+22644>>2];b:{if(Q(Q(Q(N[d+8>>2]*N[c+24>>2])+Q(Q(N[d>>2]*N[c+16>>2])+Q(N[d+4>>2]*N[c+20>>2])))-N[d+16>>2])>2],J[a+g>>2],c,0);if(!a){break a}J[a+32>>2]=d;H[a+52|0]=e;H[(d+e|0)+52|0]=0;J[((e<<2)+d|0)+32>>2]=a;b=J[f>>2];c:{if(b){J[b+36>>2]=a;H[b+53|0]=2;J[a+40>>2]=b;H[a+54|0]=1;break c}J[f+4>>2]=a}J[f>>2]=a;a=f+8|0;break b}H[d+55|0]=b;e=J[g+22656>>2];if(!uc(a,b,c,J[((h<<2)+d|0)+32>>2],K[(d+h|0)+52|0],f)){break a}if(!uc(a,b,c,J[((e<<2)+d|0)+32>>2],K[(d+e|0)+52|0],f)){break a}b=J[d+48>>2];if(b){J[b+44>>2]=J[d+44>>2]}b=J[d+44>>2];if(b){J[b+48>>2]=J[d+48>>2]}if(J[a+18496>>2]==(d|0)){J[a+18496>>2]=J[d+48>>2]}b=a+18500|0;J[b>>2]=J[b>>2]-1;J[d+44>>2]=0;J[d+48>>2]=J[a+18504>>2];b=J[a+18504>>2];if(b){J[b+44>>2]=d}J[a+18504>>2]=d;a=a+18508|0}i=1;J[a>>2]=J[a>>2]+1}return i}function Yj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0);k=N[b+56>>2];n=N[b+36>>2];o=N[b+40>>2];l=N[b+52>>2];h=N[b+20>>2];f=N[a+120>>2];i=N[a+28>>2];p=N[a+44>>2];g=N[b+24>>2];e=N[a+124>>2];j=N[a+32>>2];q=N[a+48>>2];r=N[b+32>>2];m=N[b+48>>2];s=N[b>>2];t=N[b+4>>2];u=N[b+8>>2];v=N[b+16>>2];w=N[a+116>>2];x=N[a+24>>2];y=N[a+40>>2];z=Q(ua[J[J[a>>2]+48>>2]](a));A=Q(ua[J[J[a>>2]+48>>2]](a));B=Q(ua[J[J[a>>2]+48>>2]](a));J[c+12>>2]=0;e=Q(Q(e*Q(q-j))*Q(.5));j=Q(e*Q(R(g)));g=Q(Q(w*Q(y-x))*Q(.5));f=Q(Q(f*Q(p-i))*Q(.5));h=Q(A+Q(j+Q(Q(g*Q(R(v)))+Q(f*Q(R(h))))));N[c+4>>2]=l-h;i=Q(z+Q(Q(e*Q(R(u)))+Q(Q(g*Q(R(s)))+Q(f*Q(R(t))))));N[c>>2]=m-i;e=Q(B+Q(Q(e*Q(R(o)))+Q(Q(g*Q(R(r)))+Q(f*Q(R(n))))));N[c+8>>2]=k-e;J[d+12>>2]=0;N[d+8>>2]=k+e;N[d+4>>2]=l+h;N[d>>2]=m+i}function Oi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=Q(0),f=0,g=Q(0),h=Q(0),i=Q(0);d=sa-144|0;sa=d;J[d+72>>2]=0;J[d+76>>2]=0;f=d- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[d+108>>2]=0;J[d+112>>2]=0;J[d+116>>2]=0;J[d+120>>2]=0;J[d+52>>2]=0;J[d+56>>2]=0;J[d+84>>2]=0;J[d+88>>2]=0;J[d+80>>2]=1065353216;J[d+92>>2]=0;J[d+96>>2]=0;J[d+100>>2]=1065353216;J[d+104>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;J[d+60>>2]=1065353216;J[d+124>>2]=-581039253;J[d+40>>2]=22396;e=N[c+8>>2];g=N[c>>2];h=N[c+4>>2];J[d+140>>2]=0;i=Q(h*Q(0));N[d+136>>2]=e+Q(Q(g*N[d+68>>2])+i);e=Q(e*Q(0));N[d+132>>2]=e+Q(h+Q(g*N[f>>2]));N[d+128>>2]=e+Q(g+i);J[d+32>>2]=1566444395;J[d+36>>2]=0;J[d+24>>2]=1566444395;J[d+28>>2]=1566444395;J[d+16>>2]=-581039253;J[d+20>>2]=0;J[d+8>>2]=-581039253;J[d+12>>2]=-581039253;ua[J[J[b>>2]+64>>2]](b,d+40|0,d+8|0,d+24|0);b=J[d+56>>2];J[a+8>>2]=J[d+52>>2];J[a+12>>2]=b;b=J[d+48>>2];J[a>>2]=J[d+44>>2];J[a+4>>2]=b;sa=d+144|0}function Uf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=J[b+4>>2];J[a+48>>2]=J[b>>2];J[a+52>>2]=d;d=J[b+12>>2];J[a+56>>2]=J[b+8>>2];J[a+60>>2]=d;d=J[b+28>>2];J[a+72>>2]=J[b+24>>2];J[a+76>>2]=d;e=J[b+20>>2];d=a- -64|0;J[d>>2]=J[b+16>>2];J[d+4>>2]=e;d=J[b+44>>2];J[a+88>>2]=J[b+40>>2];J[a+92>>2]=d;d=J[b+36>>2];J[a+80>>2]=J[b+32>>2];J[a+84>>2]=d;d=J[b+60>>2];J[a+104>>2]=J[b+56>>2];J[a+108>>2]=d;d=J[b+52>>2];J[a+96>>2]=J[b+48>>2];J[a+100>>2]=d;b=J[c+12>>2];J[a+120>>2]=J[c+8>>2];J[a+124>>2]=b;b=J[c+4>>2];J[a+112>>2]=J[c>>2];J[a+116>>2]=b;b=J[c+20>>2];J[a+128>>2]=J[c+16>>2];J[a+132>>2]=b;b=J[c+28>>2];J[a+136>>2]=J[c+24>>2];J[a+140>>2]=b;b=J[c+36>>2];J[a+144>>2]=J[c+32>>2];J[a+148>>2]=b;b=J[c+44>>2];J[a+152>>2]=J[c+40>>2];J[a+156>>2]=b;b=J[c+60>>2];J[a+168>>2]=J[c+56>>2];J[a+172>>2]=b;b=J[c+52>>2];J[a+160>>2]=J[c+48>>2];J[a+164>>2]=b;ua[J[J[a>>2]+8>>2]](a);qc(a,J[a+28>>2]+4|0,J[a+32>>2]+4|0)}function jb(a,b,c,d,e,f,g,h){var i=Q(0),j=Q(0),k=Q(0),l=0,m=Q(0),n=Q(0),o=Q(0),p=0,q=Q(0),r=Q(0),s=0,t=0,u=0,v=0,w=Q(0),x=Q(0),y=0;p=J[(g?20:16)+d>>2];l=J[(g?12:8)+d>>2];s=e<<2;N[l+s>>2]=N[f>>2];t=e+1|0;u=t<<2;N[u+l>>2]=N[f+4>>2];y=l;l=e+2|0;v=l<<2;N[y+v>>2]=N[f+8>>2];N[p+s>>2]=-N[f>>2];N[p+u>>2]=-N[f+4>>2];N[p+v>>2]=-N[f+8>>2];if(!g){m=Q(N[a+1352>>2]-N[c+52>>2]);j=N[f+8>>2];k=N[f+4>>2];n=Q(N[a+1356>>2]-N[c+56>>2]);q=Q(Q(m*j)-Q(k*n));w=Q(N[a+1288>>2]-N[b+52>>2]);x=Q(N[a+1292>>2]-N[b+56>>2]);r=Q(Q(w*j)-Q(k*x));o=Q(N[a+1348>>2]-N[c+48>>2]);i=N[f>>2];m=Q(Q(o*k)-Q(i*m));n=Q(Q(n*i)-Q(j*o));o=Q(N[a+1284>>2]-N[b+48>>2]);k=Q(Q(o*k)-Q(i*w));j=Q(Q(x*i)-Q(j*o));if(!(!K[a+1452|0]|h)){i=N[a+1448>>2];m=Q(i*m);n=Q(i*n);q=Q(q*i);i=N[a+1444>>2];k=Q(i*k);r=Q(r*i);j=Q(i*j)}b=e<<2;a=b+J[d+12>>2]|0;N[a+8>>2]=k;N[a+4>>2]=j;N[a>>2]=r;a=J[d+20>>2];N[a+b>>2]=-q;N[a+(t<<2)>>2]=-n;N[a+(l<<2)>>2]=-m}}function Ia(a,b){var c=0,d=0,e=0,f=Q(0),g=0;if(!(((B(a),v(2))&2147483647)>>>0<2139095041&((B(b),v(2))&2147483647)>>>0<=2139095040)){return Q(a+b)}c=(B(b),v(2));if((c|0)==1065353216){return od(a)}g=c>>>30&2;d=(B(a),v(2));e=g|d>>>31;a:{b:{d=d&2147483647;c:{if(!d){d:{switch(e-2|0){case 0:return Q(3.1415927410125732);case 1:break d;default:break c}}return Q(-3.1415927410125732)}c=c&2147483647;if((c|0)!=2139095040){if(!c|!((d|0)!=2139095040&d>>>0<=c+218103808>>>0)){break a}e:{if(g){f=Q(0);if(c>>>0>d+218103808>>>0){break e}}f=od(Q(R(Q(a/b))))}a=f;f:{switch(e|0){case 1:return Q(-a);case 2:return Q(Q(3.1415927410125732)-Q(a+Q(8.742277657347586e-8)));case 0:break c;default:break f}}return Q(Q(a+Q(8.742277657347586e-8))+Q(-3.1415927410125732))}if((d|0)==2139095040){break b}a=N[(e<<2)+26368>>2]}return a}return N[(e<<2)+26352>>2]}return x(2,(B(a),v(2))&-2147483648|1070141403),C()}function xh(a,b,c,d){a=a|0;b=Q(b);c=c|0;d=Q(d);var e=0,f=0,g=0,h=Q(0),i=0,j=0;a:{if(c){N[a+284>>2]=d;b=Q(N[a+280>>2]+b);N[a+280>>2]=b;if(!(b>=d)){break a}h=b;b=Q(b/d);b:{if(Q(R(b))>2]=h-Q(Q(e|0)*d);break a}J[a+284>>2]=0;N[a+280>>2]=K[a+316|0]?Q(0):b;d=b;e=!(Q(R(b))>2]+20>>2]](a)|0){g=ua[J[J[a>>2]+20>>2]](a)|0;i=35721,j=ua[J[J[g>>2]+56>>2]](g)>>>4&1,H[i|0]=j}c:{if(e){f=(c|0)>(e|0)?e:c;ua[J[J[a>>2]+168>>2]](a,Q(d*Q(f|0)));ua[J[J[a>>2]+176>>2]](a);if((f|0)<=0){break c}if((f|0)!=1){g=f&-2;c=0;while(1){ua[J[J[a>>2]+160>>2]](a,d);ua[J[J[a>>2]+80>>2]](a);ua[J[J[a>>2]+160>>2]](a,d);ua[J[J[a>>2]+80>>2]](a);c=c+2|0;if((g|0)!=(c|0)){continue}break}}if(!(f&1)){break c}ua[J[J[a>>2]+160>>2]](a,d);ua[J[J[a>>2]+80>>2]](a);break c}ua[J[J[a>>2]+80>>2]](a)}ua[J[J[a>>2]+120>>2]](a);return e|0}function eq(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=Q(0),f=Q(0),g=0,h=Q(0),i=0,j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0);d=J[b>>2];g=J[d+192>>2];a:{if(J[g+4>>2]!=31){break a}i=J[b+4>>2];if(!i){break a}g=J[(J[g+32>>2]+P(J[i>>2],80)|0)+64>>2]}J[a+84>>2]=J[g+8>>2];e=N[b+24>>2];J[a+8>>2]=d;N[a+4>>2]=e;b:{if(c){c=J[b+12>>2];J[a+52>>2]=J[b+8>>2];J[a+56>>2]=c;c=J[b+20>>2];J[a+60>>2]=J[b+16>>2];J[a+64>>2]=c;break b}j=N[d+8>>2];k=N[d+12>>2];l=N[d+20>>2];m=N[d+24>>2];n=N[d+28>>2];o=N[d+36>>2];p=N[d+40>>2];e=N[b+12>>2];q=N[d+44>>2];f=N[b+16>>2];r=N[d+4>>2];h=N[b+8>>2];J[a- -64>>2]=0;N[a+60>>2]=Q(q*f)+Q(Q(o*h)+Q(e*p));N[a+56>>2]=Q(n*f)+Q(Q(l*h)+Q(e*m));N[a+52>>2]=Q(k*f)+Q(Q(r*h)+Q(j*e))}e=N[b+24>>2];f=Q(Q(1)-e);N[a+68>>2]=Q(f*N[a+20>>2])+Q(e*N[a+36>>2]);N[a+72>>2]=Q(f*N[a+24>>2])+Q(e*N[a+40>>2]);N[a+76>>2]=Q(f*N[a+28>>2])+Q(e*N[a+44>>2]);return Q(N[b+24>>2])}function yk(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=0,h=Q(0),i=Q(0),j=0,k=0;e=Q(N[b+68>>2]*Q(.5));j=J[b+72>>2];k=J[b+76>>2];g=k<<2;d=N[c+8>>2];i=Q(d*d);d=N[c>>2];f=Q(d*d);d=N[c+4>>2];a:{b:{if(N[g+c>>2]>Q(N[b+60>>2]*Q(Y(Q(i+Q(f+Q(d*d))))))){J[(j<<2)+a>>2]=0;N[a+g>>2]=e;g=J[b+80>>2];break b}d=N[(j<<2)+c>>2];g=J[b+80>>2];f=N[(g<<2)+c>>2];h=Q(Y(Q(Q(d*d)+Q(f*f))));if(h>Q(1.1920928955078125e-7)){i=d;d=Q(N[b+64>>2]/h);N[(j<<2)+a>>2]=i*d;N[(k<<2)+a>>2]=-e;e=Q(f*d);break a}J[(j<<2)+a>>2]=0;N[(k<<2)+a>>2]=-e}e=Q(0)}N[(g<<2)+a>>2]=e;if(Q(ua[J[J[b>>2]+48>>2]](b))!=Q(0)){e=N[c+4>>2];d=N[c>>2];f=N[c+8>>2];h=Q(ua[J[J[b>>2]+48>>2]](b));b=Q(Q(f*f)+Q(Q(d*d)+Q(e*e)))>2]=N[a>>2]+Q(h*Q(i*d));N[a+4>>2]=N[a+4>>2]+Q(h*Q(e*d));N[a+8>>2]=N[a+8>>2]+Q(h*Q(f*d))}}function Vg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0);e=Q(1);d=J[b>>2];if(!((d|0)==J[a+84>>2]|K[d+204|0]&4|Q(-N[a+88>>2])<=Q(Q(N[b+16>>2]*Q(N[a+44>>2]-N[a+28>>2]))+Q(Q(N[b+8>>2]*Q(N[a+36>>2]-N[a+20>>2]))+Q(Q(N[a+40>>2]-N[a+24>>2])*N[b+12>>2]))))){e=N[b+40>>2];J[a+16>>2]=d;N[a+4>>2]=e;a:{if(c){c=b+8|0;d=J[c+4>>2];J[a+52>>2]=J[c>>2];J[a+56>>2]=d;d=J[c+12>>2];J[a+60>>2]=J[c+8>>2];J[a+64>>2]=d;break a}h=N[d+12>>2];i=N[d+8>>2];j=N[d+28>>2];k=N[d+20>>2];l=N[d+24>>2];m=N[d+44>>2];n=N[d+36>>2];o=N[d+40>>2];p=N[d+4>>2];e=N[b+16>>2];f=N[b+8>>2];g=N[b+12>>2];J[a- -64>>2]=0;N[a+60>>2]=Q(m*e)+Q(Q(n*f)+Q(g*o));N[a+56>>2]=Q(j*e)+Q(Q(k*f)+Q(g*l));N[a+52>>2]=Q(h*e)+Q(Q(p*f)+Q(i*g))}c=J[b+28>>2];J[a+68>>2]=J[b+24>>2];J[a+72>>2]=c;c=J[b+36>>2];J[a+76>>2]=J[b+32>>2];J[a+80>>2]=c;e=N[b+40>>2]}return Q(e)}function Br(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=J[b+4>>2];J[a+552>>2]=J[b>>2];J[a+556>>2]=d;d=J[b+12>>2];J[a+560>>2]=J[b+8>>2];J[a+564>>2]=d;d=J[b+28>>2];J[a+576>>2]=J[b+24>>2];J[a+580>>2]=d;d=J[b+20>>2];J[a+568>>2]=J[b+16>>2];J[a+572>>2]=d;d=J[b+44>>2];J[a+592>>2]=J[b+40>>2];J[a+596>>2]=d;d=J[b+36>>2];J[a+584>>2]=J[b+32>>2];J[a+588>>2]=d;d=J[b+60>>2];J[a+608>>2]=J[b+56>>2];J[a+612>>2]=d;d=J[b+52>>2];J[a+600>>2]=J[b+48>>2];J[a+604>>2]=d;b=J[c+12>>2];J[a+624>>2]=J[c+8>>2];J[a+628>>2]=b;b=J[c+4>>2];J[a+616>>2]=J[c>>2];J[a+620>>2]=b;b=J[c+20>>2];J[a+632>>2]=J[c+16>>2];J[a+636>>2]=b;b=J[c+28>>2];J[a+640>>2]=J[c+24>>2];J[a+644>>2]=b;b=J[c+36>>2];J[a+648>>2]=J[c+32>>2];J[a+652>>2]=b;b=J[c+44>>2];J[a+656>>2]=J[c+40>>2];J[a+660>>2]=b;b=J[c+60>>2];J[a+672>>2]=J[c+56>>2];J[a+676>>2]=b;b=J[c+52>>2];J[a+664>>2]=J[c+48>>2];J[a+668>>2]=b;ua[J[J[a>>2]+8>>2]](a)}function nq(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0);g=N[a+404>>2];if(g!=Q(0)){e=N[b+8>>2];d=N[b+4>>2];h=N[a+408>>2];N[a+372>>2]=Q(g*Q(N[b>>2]*h))+N[a+372>>2];f=d;d=N[a+412>>2];N[a+376>>2]=Q(g*Q(f*d))+N[a+376>>2];f=e;e=N[a+416>>2];N[a+380>>2]=Q(g*Q(f*e))+N[a+380>>2];j=N[a+612>>2];k=N[a+364>>2];l=N[a+356>>2];m=N[a+360>>2];n=N[a+608>>2];o=N[a+348>>2];p=N[a+340>>2];q=N[a+344>>2];i=N[c>>2];d=Q(d*N[b+4>>2]);h=Q(h*N[b>>2]);f=N[c+4>>2];g=Q(Q(i*d)-Q(h*f));r=f;f=Q(e*N[b+8>>2]);e=d;d=N[c+8>>2];e=Q(Q(r*f)-Q(e*d));d=Q(Q(d*h)-Q(f*i));N[a+388>>2]=Q(Q(Q(N[a+332>>2]*g)+Q(Q(N[a+324>>2]*e)+Q(N[a+328>>2]*d)))*N[a+604>>2])+N[a+388>>2];N[a+392>>2]=Q(n*Q(Q(o*g)+Q(Q(p*e)+Q(d*q))))+N[a+392>>2];N[a+396>>2]=Q(j*Q(Q(k*g)+Q(Q(l*e)+Q(d*m))))+N[a+396>>2]}}function Lb(a){J[a>>2]=1025;J[a+120>>2]=0;J[a+124>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0;J[a+144>>2]=0;J[a+148>>2]=0;J[a+152>>2]=0;J[a+156>>2]=0;J[a+160>>2]=0;J[a+164>>2]=0;J[a+168>>2]=0;J[a+328>>2]=0;J[a+332>>2]=0;J[a+336>>2]=0;J[a+340>>2]=0;J[a+344>>2]=0;J[a+348>>2]=0;J[a+352>>2]=0;J[a+356>>2]=0;J[a+360>>2]=0;J[a+364>>2]=0;J[a+368>>2]=0;J[a+372>>2]=0;J[a+376>>2]=0;J[a+536>>2]=0;J[a+540>>2]=0;J[a+544>>2]=0;J[a+548>>2]=0;J[a+552>>2]=0;J[a+556>>2]=0;J[a+560>>2]=0;J[a+564>>2]=0;J[a+568>>2]=0;J[a+572>>2]=0;J[a+576>>2]=0;J[a+580>>2]=0;J[a+584>>2]=0;J[a+792>>2]=0;J[a+784>>2]=0;J[a+788>>2]=0;J[a+776>>2]=0;J[a+780>>2]=0;J[a+768>>2]=0;J[a+772>>2]=0;J[a+760>>2]=0;J[a+764>>2]=0;J[a+752>>2]=0;J[a+756>>2]=0;J[a+744>>2]=0;J[a+748>>2]=0;J[a+836>>2]=0;J[a+840>>2]=0;J[a+864>>2]=0;J[a+844>>2]=0;return a}function Uk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=0,m=0,n=Q(0),o=Q(0),p=Q(0),q=0,r=Q(0),s=Q(0);if((d|0)>0){e=sa-16|0;q=a+36|0;while(1){J[e+8>>2]=0;J[e+12>>2]=0;J[e>>2]=0;J[e+4>>2]=0;g=J[a+60>>2];f=g<<2;h=N[f+q>>2];N[e+f>>2]=h;i=Q(-0xde0b6b000000000);m=l<<4;f=m+b|0;n=N[f+8>>2];k=N[e+8>>2];o=N[f>>2];r=N[e>>2];s=N[e+4>>2];p=N[f+4>>2];j=Q(Q(n*k)+Q(Q(o*r)+Q(s*p)));if(j>Q(-0xde0b6b000000000)){g=c+m|0;N[g+12>>2]=N[e+12>>2];N[g+8>>2]=k;N[g+4>>2]=s;N[g>>2]=r;g=J[a+60>>2];h=N[(g<<2)+q>>2];n=N[f+8>>2];p=N[f+4>>2];o=N[f>>2];i=j}J[e+8>>2]=0;J[e+12>>2]=0;J[e>>2]=0;J[e+4>>2]=0;N[(g<<2)+e>>2]=-h;k=i;i=N[e+8>>2];j=N[e>>2];h=N[e+4>>2];if(k>2]=N[e+12>>2];N[f+8>>2]=i;N[f+4>>2]=h;N[f>>2]=j}l=l+1|0;if((l|0)!=(d|0)){continue}break}}}function nh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=J[a+228>>2];a:{if((d|0)!=J[a+232>>2]){break a}i=d?d<<1:1;if((i|0)<=(d|0)){break a}if(i){J[8456]=J[8456]+1;g=ua[J[8258]](i<<2,16)|0;d=J[a+228>>2]}b:{if((d|0)<=0){break b}if(d>>>0>=4){j=d&-4;while(1){e=f<<2;J[e+g>>2]=J[e+J[a+236>>2]>>2];h=e|4;J[h+g>>2]=J[h+J[a+236>>2]>>2];h=e|8;J[h+g>>2]=J[h+J[a+236>>2]>>2];e=e|12;J[e+g>>2]=J[e+J[a+236>>2]>>2];f=f+4|0;k=k+4|0;if((j|0)!=(k|0)){continue}break}}e=d&3;if(!e){break b}while(1){j=f<<2;J[j+g>>2]=J[j+J[a+236>>2]>>2];f=f+1|0;l=l+1|0;if((e|0)!=(l|0)){continue}break}}f=J[a+236>>2];if(!(!f|!K[a+240|0])){if(f){J[8457]=J[8457]+1;ua[J[8259]](f)}d=J[a+228>>2]}J[a+236>>2]=g;H[a+240|0]=1;J[a+232>>2]=i}J[J[a+236>>2]+(d<<2)>>2]=b;J[a+228>>2]=d+1;if(c){Ed(J[b+28>>2],b);Ed(J[b+32>>2],b)}}function Wk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=0,m=Q(0),n=Q(0);d=sa-16|0;J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;e=N[c+8>>2];f=N[c>>2];g=N[c+4>>2];h=Q(Q(e*e)+Q(Q(f*f)+Q(g*g)));a:{if(h>2]=0;J[d+12>>2]=0;J[d>>2]=0;J[d+4>>2]=0;c=J[b+60>>2]<<2;l=c+d|0;i=N[(b+c|0)+36>>2];N[l>>2]=i;f=Q(-0xde0b6b000000000);j=N[d+8>>2];m=N[d>>2];n=N[d+4>>2];g=Q(Q(k*j)+Q(Q(h*m)+Q(e*n)));if(g>Q(-0xde0b6b000000000)){N[a+12>>2]=N[d+12>>2];N[a+8>>2]=j;N[a+4>>2]=n;N[a>>2]=m;f=g}J[d+8>>2]=0;J[d+12>>2]=0;J[d>>2]=0;J[d+4>>2]=0;N[l>>2]=-i;i=f;f=N[d+8>>2];g=N[d>>2];j=e;e=N[d+4>>2];if(i>2]=N[d+12>>2];N[a+8>>2]=f;N[a+4>>2]=e;N[a>>2]=g}}function pd(){ra(30276,8254);qa(30300,6219,1,1,0);ca(30312,5359,1,-128,127);ca(30336,5352,1,-128,127);ca(30324,5350,1,0,255);ca(30348,2375,2,-32768,32767);ca(30360,2366,2,0,65535);ca(30372,2561,4,-2147483648,2147483647);ca(30384,2552,4,0,-1);ca(30396,6567,4,-2147483648,2147483647);ca(30408,6558,4,0,-1);hd(30420,3510,-2147483648,2147483647);hd(30432,3509,0,-1);ka(30444,3476,4);ka(30456,7542,8);ja(31628,6585);ja(25600,9944);ia(25672,4,6572);ia(25748,2,6597);ia(25824,4,6612);pa(31336,6224);_(25864,0,9875);_(25904,0,9977);_(25944,1,9905);_(25984,2,9440);_(26024,3,9471);_(26064,4,9511);_(26104,5,9540);_(26144,4,10014);_(26184,5,10044);_(25904,0,9642);_(25944,1,9609);_(25984,2,9708);_(26024,3,9674);_(26064,4,9842);_(26104,5,9808);_(26224,8,9775);_(26264,9,9741);_(26304,6,9578);_(26344,7,10083)}function od(a){var b=0,c=0,d=Q(0),e=Q(0),f=0,g=Q(0);f=(B(a),v(2));c=f&2147483647;if(c>>>0>=1283457024){return((B(a),v(2))&2147483647)>>>0>2139095040?a:(x(2,(B(a),v(2))&-2147483648|1070141402),C())}a:{b:{if(c>>>0<=1054867455){b=-1;if(c>>>0>=964689920){break b}break a}a=Q(R(a));if(c>>>0<=1066926079){if(c>>>0<=1060110335){a=Q(Q(Q(a+a)+Q(-1))/Q(a+Q(2)));b=0;break b}a=Q(Q(a+Q(-1))/Q(a+Q(1)));b=1;break b}if(c>>>0<=1075576831){a=Q(Q(a+Q(-1.5))/Q(Q(a*Q(1.5))+Q(1)));b=2;break b}a=Q(Q(-1)/a);b=3}e=Q(a*a);d=Q(e*e);g=Q(d*Q(Q(d*Q(-.106480173766613))+Q(-.19999158382415771)));d=Q(e*Q(Q(d*Q(Q(d*Q(.06168760731816292))+Q(.14253635704517365)))+Q(.333333283662796)));if(c>>>0<=1054867455){return Q(a-Q(a*Q(g+d)))}b=b<<2;a=Q(N[b+26384>>2]-Q(Q(Q(a*Q(g+d))-N[b+26400>>2])-a));a=(f|0)<0?Q(-a):a}return a}function Wp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=J[J[J[b+4>>2]+8>>2]+8>>2];d=J[a+136>>2];a:{if((d|0)!=J[a+140>>2]){break a}j=d?d<<1:1;if((j|0)<=(d|0)){break a}if(j){J[8456]=J[8456]+1;g=ua[J[8258]](j<<2,16)|0;d=J[a+136>>2]}f=J[a+144>>2];b:{c:{if((d|0)>0){if(d>>>0>=4){n=d&-4;while(1){e=h<<2;J[e+g>>2]=J[f+e>>2];i=e|4;J[i+g>>2]=J[f+i>>2];i=e|8;J[i+g>>2]=J[f+i>>2];e=e|12;J[e+g>>2]=J[f+e>>2];h=h+4|0;k=k+4|0;if((k|0)!=(n|0)){continue}break}}d=d&3;if(!d){break c}while(1){e=h<<2;J[e+g>>2]=J[f+e>>2];h=h+1|0;l=l+1|0;if((d|0)!=(l|0)){continue}break}break c}if(!f){break b}}if(f?K[a+148|0]:0){J[8457]=J[8457]+1;ua[J[8259]](f)}d=J[a+136>>2]}J[a+144>>2]=g;J[a+140>>2]=j;H[a+148|0]=1}J[J[a+144>>2]+(d<<2)>>2]=m;J[a+136>>2]=J[a+136>>2]+1;return Q(Jf(a,b,c))}function ok(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0);d=sa-80|0;sa=d;J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;f=N[c+8>>2];h=N[c>>2];g=N[c+4>>2];e=Q(Q(f*f)+Q(Q(h*h)+Q(g*g)));a:{if(e>2];e=Q(h*e)}J[d+52>>2]=0;J[d+56>>2]=0;N[d+76>>2]=g;N[d+72>>2]=f;N[d+68>>2]=i;J[d+44>>2]=0;J[d+48>>2]=0;N[d+64>>2]=e;J[d+60>>2]=-581039253;J[d+40>>2]=19952;J[d+32>>2]=1566444395;J[d+36>>2]=0;J[d+24>>2]=1566444395;J[d+28>>2]=1566444395;b=J[b+100>>2];J[d+16>>2]=-581039253;J[d+20>>2]=0;J[d+8>>2]=-581039253;J[d+12>>2]=-581039253;ua[J[J[b>>2]+8>>2]](b,d+40|0,d+8|0,d+24|0);b=J[d+56>>2];J[a+8>>2]=J[d+52>>2];J[a+12>>2]=b;b=J[d+48>>2];J[a>>2]=J[d+44>>2];J[a+4>>2]=b;sa=d+80|0}function Vk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=La(164);H[d+108|0]=0;J[d+104>>2]=0;H[d+65|0]=0;H[d+61|0]=0;H[d+62|0]=1;H[d+63|0]=1;H[d+64|0]=0;J[d+20>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;J[d+24>>2]=c;J[d+12>>2]=a;H[d+128|0]=1;J[d>>2]=25216;J[d+124>>2]=0;J[d+116>>2]=0;J[d+120>>2]=0;J[d+56>>2]=J[b+44>>2];a=J[b+16>>2];J[d+40>>2]=J[b+12>>2];J[d+44>>2]=a;a=J[b+24>>2];J[d+48>>2]=J[b+20>>2];J[d+52>>2]=a;N[d+32>>2]=N[b+4>>2];N[d+36>>2]=N[b+8>>2];N[d+28>>2]=N[b>>2];a=J[b+48>>2];J[d+132>>2]=0;J[d+20>>2]=a;J[d>>2]=25280;N[d+156>>2]=N[b+56>>2];N[d+152>>2]=N[b+52>>2];N[d+160>>2]=N[b+60>>2];J[8456]=J[8456]+1;a=sd(ua[J[8258]](348,16)|0);J[d+4>>2]=a;J[a+204>>2]=4;c=J[b+32>>2];J[a+52>>2]=J[b+28>>2];J[a+56>>2]=c;c=J[b+40>>2];J[a+60>>2]=J[b+36>>2];J[a+64>>2]=c;J[J[d+4>>2]+256>>2]=d;Bb(d);return d|0}function Hm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=J[a+56>>2];if(!(!c|!K[a+52|0])){d=J[b+4>>2];a:{if((d|0)!=J[b+8>>2]){break a}h=d?d<<1:1;if((h|0)<=(d|0)){break a}if(h){J[8456]=J[8456]+1;f=ua[J[8258]](h<<2,16)|0;d=J[b+4>>2]}b:{if((d|0)<=0){break b}c=0;if(d>>>0>=4){i=d&-4;while(1){e=c<<2;J[e+f>>2]=J[e+J[b+12>>2]>>2];g=e|4;J[g+f>>2]=J[g+J[b+12>>2]>>2];g=e|8;J[g+f>>2]=J[g+J[b+12>>2]>>2];e=e|12;J[e+f>>2]=J[e+J[b+12>>2]>>2];c=c+4|0;j=j+4|0;if((i|0)!=(j|0)){continue}break}}e=d&3;if(!e){break b}while(1){i=c<<2;J[i+f>>2]=J[i+J[b+12>>2]>>2];c=c+1|0;k=k+1|0;if((e|0)!=(k|0)){continue}break}}c=J[b+12>>2];if(!(!c|!K[b+16|0])){if(c){J[8457]=J[8457]+1;ua[J[8259]](c)}d=J[b+4>>2]}J[b+12>>2]=f;H[b+16|0]=1;J[b+8>>2]=h;c=J[a+56>>2]}J[J[b+12>>2]+(d<<2)>>2]=c;J[b+4>>2]=d+1}}function Sb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=J[a+12>>2];if(!(!c|!K[a+8|0])){d=J[b+4>>2];a:{if((d|0)!=J[b+8>>2]){break a}h=d?d<<1:1;if((h|0)<=(d|0)){break a}if(h){J[8456]=J[8456]+1;f=ua[J[8258]](h<<2,16)|0;d=J[b+4>>2]}b:{if((d|0)<=0){break b}c=0;if(d>>>0>=4){i=d&-4;while(1){e=c<<2;J[e+f>>2]=J[e+J[b+12>>2]>>2];g=e|4;J[g+f>>2]=J[g+J[b+12>>2]>>2];g=e|8;J[g+f>>2]=J[g+J[b+12>>2]>>2];e=e|12;J[e+f>>2]=J[e+J[b+12>>2]>>2];c=c+4|0;j=j+4|0;if((i|0)!=(j|0)){continue}break}}e=d&3;if(!e){break b}while(1){i=c<<2;J[i+f>>2]=J[i+J[b+12>>2]>>2];c=c+1|0;k=k+1|0;if((e|0)!=(k|0)){continue}break}}c=J[b+12>>2];if(!(!c|!K[b+16|0])){if(c){J[8457]=J[8457]+1;ua[J[8259]](c)}d=J[b+4>>2]}J[b+12>>2]=f;H[b+16|0]=1;J[b+8>>2]=h;c=J[a+12>>2]}J[J[b+12>>2]+(d<<2)>>2]=c;J[b+4>>2]=d+1}}function pk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=Q(0),f=Q(0),g=Q(0),h=0,i=Q(0),j=Q(0),k=Q(0),l=Q(0);d=sa-32|0;sa=d;h=J[c+12>>2];J[d+24>>2]=J[c+8>>2];J[d+28>>2]=h;h=J[c+4>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=h;e=N[d+24>>2];f=N[d+16>>2];g=N[d+20>>2];if(Q(Q(e*e)+Q(Q(f*f)+Q(g*g)))>2]=0;g=Q(-1);f=Q(-1);e=Q(-1)}i=e;e=Q(Q(1)/Q(Y(Q(Q(e*e)+Q(Q(f*f)+Q(g*g))))));N[d+24>>2]=i*e;N[d+20>>2]=g*e;N[d+16>>2]=f*e;ab(d,b,d+16|0);a:{b:{switch(J[b+4>>2]){case 8:e=Q(N[b+36>>2]*N[b+20>>2]);break a;case 0:case 1:case 4:case 5:case 10:case 11:case 13:e=N[b+52>>2];break a;default:break b}}e=Q(ua[J[J[b>>2]+48>>2]](b))}f=N[d>>2];g=N[d+16>>2];i=N[d+4>>2];j=N[d+20>>2];k=N[d+8>>2];l=N[d+24>>2];J[a+12>>2]=0;N[a+8>>2]=k+Q(e*l);N[a+4>>2]=i+Q(e*j);N[a>>2]=f+Q(e*g);sa=d+32|0}function Ma(a){var b=Q(0),c=0,d=0,e=0,f=0;c=sa-16|0;sa=c;e=(B(a),v(2));d=e&2147483647;a:{if(d>>>0<=1061752794){b=Q(1);if(d>>>0<964689920){break a}b=Wa(+a);break a}if(d>>>0<=1081824209){if(d>>>0>=1075235812){b=Q(-Wa(((e|0)<0?3.141592653589793:-3.141592653589793)+ +a));break a}f=+a;if((e|0)<0){b=Va(f+1.5707963267948966);break a}b=Va(1.5707963267948966-f);break a}if(d>>>0<=1088565717){if(d>>>0>=1085271520){b=Wa(((e|0)<0?6.283185307179586:-6.283185307179586)+ +a);break a}if((e|0)<0){b=Va(-4.71238898038469-+a);break a}b=Va(+a+-4.71238898038469);break a}b=Q(a-a);if(d>>>0>=2139095040){break a}b:{switch(nd(a,c+8|0)&3){case 0:b=Wa(O[c+8>>3]);break a;case 1:b=Va(-O[c+8>>3]);break a;case 2:b=Q(-Wa(O[c+8>>3]));break a;default:break b}}b=Va(O[c+8>>3])}a=b;sa=c+16|0;return a}function Cm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=J[a+72>>2];if(c){d=J[b+4>>2];a:{if((d|0)!=J[b+8>>2]){break a}h=d?d<<1:1;if((h|0)<=(d|0)){break a}if(h){J[8456]=J[8456]+1;f=ua[J[8258]](h<<2,16)|0;d=J[b+4>>2]}b:{if((d|0)<=0){break b}c=0;if(d>>>0>=4){i=d&-4;while(1){e=c<<2;J[e+f>>2]=J[e+J[b+12>>2]>>2];g=e|4;J[g+f>>2]=J[g+J[b+12>>2]>>2];g=e|8;J[g+f>>2]=J[g+J[b+12>>2]>>2];e=e|12;J[e+f>>2]=J[e+J[b+12>>2]>>2];c=c+4|0;j=j+4|0;if((i|0)!=(j|0)){continue}break}}e=d&3;if(!e){break b}while(1){i=c<<2;J[i+f>>2]=J[i+J[b+12>>2]>>2];c=c+1|0;k=k+1|0;if((e|0)!=(k|0)){continue}break}}c=J[b+12>>2];if(!(!c|!K[b+16|0])){if(c){J[8457]=J[8457]+1;ua[J[8259]](c)}d=J[b+4>>2]}J[b+12>>2]=f;H[b+16|0]=1;J[b+8>>2]=h;c=J[a+72>>2]}J[J[b+12>>2]+(d<<2)>>2]=c;J[b+4>>2]=d+1}}function Na(a){var b=0,c=0,d=0,e=0;b=sa-16|0;sa=b;e=(B(a),v(2));c=e&2147483647;a:{if(c>>>0<=1061752794){if(c>>>0<964689920){break a}a=Va(+a);break a}if(c>>>0<=1081824209){d=+a;if(c>>>0<=1075235811){if((e|0)<0){a=Q(-Wa(d+1.5707963267948966));break a}a=Wa(d+-1.5707963267948966);break a}a=Va(-(((e|0)>=0?-3.141592653589793:3.141592653589793)+d));break a}if(c>>>0<=1088565717){if(c>>>0<=1085271519){d=+a;if((e|0)<0){a=Wa(d+4.71238898038469);break a}a=Q(-Wa(d+-4.71238898038469));break a}a=Va(((e|0)<0?6.283185307179586:-6.283185307179586)+ +a);break a}if(c>>>0>=2139095040){a=Q(a-a);break a}b:{switch(nd(a,b+8|0)&3){case 0:a=Va(O[b+8>>3]);break a;case 1:a=Wa(O[b+8>>3]);break a;case 2:a=Va(-O[b+8>>3]);break a;default:break b}}a=Q(-Wa(O[b+8>>3]))}sa=b+16|0;return a}function wl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=La(160);H[d+108|0]=0;J[d+104>>2]=0;H[d+65|0]=0;H[d+61|0]=0;H[d+62|0]=1;H[d+63|0]=1;H[d+64|0]=0;J[d+20>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;J[d+24>>2]=c;J[d+12>>2]=a;H[d+128|0]=1;J[d>>2]=25216;J[d+124>>2]=0;J[d+116>>2]=0;J[d+120>>2]=0;J[d+56>>2]=J[b+44>>2];a=J[b+16>>2];J[d+40>>2]=J[b+12>>2];J[d+44>>2]=a;a=J[b+24>>2];J[d+48>>2]=J[b+20>>2];J[d+52>>2]=a;N[d+32>>2]=N[b+4>>2];N[d+36>>2]=N[b+8>>2];N[d+28>>2]=N[b>>2];a=J[b+48>>2];J[d+132>>2]=0;J[d+20>>2]=a;J[d>>2]=25248;N[d+152>>2]=N[b+52>>2];N[d+156>>2]=N[b+56>>2];J[8456]=J[8456]+1;a=sd(ua[J[8258]](348,16)|0);J[d+4>>2]=a;J[a+204>>2]=4;c=J[b+32>>2];J[a+52>>2]=J[b+28>>2];J[a+56>>2]=c;c=J[b+40>>2];J[a+60>>2]=J[b+36>>2];J[a+64>>2]=c;J[J[d+4>>2]+256>>2]=d;ic(d);return d|0}function vg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0);e=Q(1);d=J[b>>2];if(!((d|0)==J[a+88>>2]|K[d+204|0]&4)){J[a+84>>2]=J[J[b+4>>2]+8>>2];e=N[b+40>>2];J[a+16>>2]=d;N[a+4>>2]=e;a:{if(c){c=J[b+12>>2];J[a+52>>2]=J[b+8>>2];J[a+56>>2]=c;c=J[b+20>>2];J[a+60>>2]=J[b+16>>2];J[a+64>>2]=c;break a}h=N[d+8>>2];i=N[d+12>>2];j=N[d+20>>2];k=N[d+24>>2];l=N[d+28>>2];m=N[d+36>>2];n=N[d+40>>2];e=N[b+12>>2];o=N[d+44>>2];f=N[b+16>>2];p=N[d+4>>2];g=N[b+8>>2];J[a- -64>>2]=0;N[a+60>>2]=Q(o*f)+Q(Q(m*g)+Q(e*n));N[a+56>>2]=Q(l*f)+Q(Q(j*g)+Q(e*k));N[a+52>>2]=Q(i*f)+Q(Q(p*g)+Q(h*e))}c=J[b+28>>2];J[a+68>>2]=J[b+24>>2];J[a+72>>2]=c;c=J[b+36>>2];J[a+76>>2]=J[b+32>>2];J[a+80>>2]=c;e=N[b+40>>2]}return Q(e)}function lh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=J[a+296>>2];a:{if((c|0)!=J[a+300>>2]){break a}h=c?c<<1:1;if((h|0)<=(c|0)){break a}if(h){J[8456]=J[8456]+1;f=ua[J[8258]](h<<2,16)|0;c=J[a+296>>2]}b:{if((c|0)<=0){break b}if(c>>>0>=4){i=c&-4;while(1){d=e<<2;J[d+f>>2]=J[d+J[a+304>>2]>>2];g=d|4;J[g+f>>2]=J[g+J[a+304>>2]>>2];g=d|8;J[g+f>>2]=J[g+J[a+304>>2]>>2];d=d|12;J[d+f>>2]=J[d+J[a+304>>2]>>2];e=e+4|0;j=j+4|0;if((i|0)!=(j|0)){continue}break}}d=c&3;if(!d){break b}while(1){i=e<<2;J[i+f>>2]=J[i+J[a+304>>2]>>2];e=e+1|0;k=k+1|0;if((d|0)!=(k|0)){continue}break}}e=J[a+304>>2];if(!(!e|!K[a+308|0])){if(e){J[8457]=J[8457]+1;ua[J[8259]](e)}c=J[a+296>>2]}J[a+304>>2]=f;H[a+308|0]=1;J[a+300>>2]=h}J[J[a+304>>2]+(c<<2)>>2]=b;J[a+296>>2]=c+1}function og(a){a=a|0;var b=0,c=Q(0),d=Q(0),e=Q(0),f=Q(0),g=0,h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0);J[8456]=J[8456]+1;b=Sa(ua[J[8258]](64,16)|0);J[b+60>>2]=1;J[b>>2]=20016;d=N[a>>2];e=N[a+4>>2];c=N[a+8>>2];J[b+48>>2]=0;f=Q(c*N[b+28>>2]);c=N[b+52>>2];N[b+44>>2]=f-c;N[b+40>>2]=Q(e*N[b+24>>2])-c;N[b+36>>2]=Q(d*N[b+20>>2])-c;e=c;c=N[a>>2];d=N[a+4>>2];g=c>2]>(g?c:d)?!g:2)<<2)+a>>2]*Q(.10000000149011612));if(e>c){d=N[b+52>>2];e=Q(ua[J[J[b>>2]+48>>2]](b));f=Q(ua[J[J[b>>2]+48>>2]](b));N[b+52>>2]=c;c=N[b+44>>2];h=N[b+36>>2];i=N[b+40>>2];j=Q(ua[J[J[b>>2]+48>>2]](b));k=Q(ua[J[J[b>>2]+48>>2]](b));l=Q(ua[J[J[b>>2]+48>>2]](b));J[b+48>>2]=0;N[b+40>>2]=Q(e+i)-k;N[b+36>>2]=Q(d+h)-j;N[b+44>>2]=Q(f+c)-l}J[b+4>>2]=13;return b|0}function wk(a,b,c){a=a|0;b=Q(b);c=c|0;var d=0,e=Q(0),f=Q(0),g=Q(0),h=0,i=Q(0),j=Q(0),k=Q(0),l=Q(0);d=sa-96|0;sa=d;J[d+44>>2]=0;J[d+48>>2]=0;J[d+56>>2]=0;J[d+60>>2]=0;J[d+52>>2]=1065353216;h=d- -64|0;J[h>>2]=0;J[h+4>>2]=0;J[d+76>>2]=0;J[d+80>>2]=0;J[d+72>>2]=1065353216;J[d+84>>2]=0;J[d+88>>2]=0;J[d+92>>2]=0;J[d+36>>2]=0;J[d+40>>2]=0;J[d+32>>2]=1065353216;ua[J[J[a>>2]+8>>2]](a,d+32|0,d+16|0,d);i=N[d+24>>2];j=N[d+8>>2];f=N[d+16>>2];g=N[d>>2];k=N[d+20>>2];l=N[d+4>>2];e=Q(ua[J[J[a>>2]+48>>2]](a));J[c+12>>2]=0;b=Q(b*Q(.0833333283662796));f=Q(e+Q(Q(g-f)*Q(.5)));f=Q(f+f);f=Q(f*f);g=Q(e+Q(Q(l-k)*Q(.5)));g=Q(g+g);g=Q(g*g);N[c+8>>2]=b*Q(f+g);e=Q(e+Q(Q(j-i)*Q(.5)));e=Q(e+e);e=Q(e*e);N[c+4>>2]=b*Q(f+e);N[c>>2]=b*Q(g+e);sa=d+96|0}function Gj(a,b,c){a=a|0;b=Q(b);c=c|0;var d=0,e=Q(0),f=Q(0),g=Q(0),h=0,i=Q(0),j=Q(0),k=Q(0),l=Q(0);d=sa-96|0;sa=d;e=Q(ua[J[J[a>>2]+48>>2]](a));J[d+44>>2]=0;J[d+48>>2]=0;J[d+56>>2]=0;J[d+60>>2]=0;J[d+52>>2]=1065353216;h=d- -64|0;J[h>>2]=0;J[h+4>>2]=0;J[d+76>>2]=0;J[d+80>>2]=0;J[d+72>>2]=1065353216;J[d+84>>2]=0;J[d+88>>2]=0;J[d+92>>2]=0;J[d+36>>2]=0;J[d+40>>2]=0;J[d+32>>2]=1065353216;ua[J[J[a>>2]+8>>2]](a,d+32|0,d+16|0,d);i=N[d+24>>2];j=N[d+8>>2];f=N[d+16>>2];g=N[d>>2];k=N[d+20>>2];l=N[d+4>>2];J[c+12>>2]=0;b=Q(b*Q(.0833333283662796));f=Q(e+Q(Q(g-f)*Q(.5)));f=Q(f+f);f=Q(f*f);g=Q(e+Q(Q(l-k)*Q(.5)));g=Q(g+g);g=Q(g*g);N[c+8>>2]=b*Q(f+g);e=Q(e+Q(Q(j-i)*Q(.5)));e=Q(e+e);e=Q(e*e);N[c+4>>2]=b*Q(f+e);N[c>>2]=b*Q(g+e);sa=d+96|0}function zk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=0,g=0,h=0,i=Q(0),j=0,k=Q(0),l=0,m=Q(0),n=0,o=0,p=Q(0);if((d|0)>0){f=sa-16|0;while(1){i=Q(N[a+68>>2]*Q(.5));j=J[a+72>>2];o=l<<4;g=o+b|0;e=N[g+8>>2];h=J[a+76>>2]<<2;m=Q(e*e);e=N[g>>2];k=Q(e*e);e=N[g+4>>2];a:{b:{if(N[g+h>>2]>Q(N[a+60>>2]*Q(Y(Q(m+Q(k+Q(e*e))))))){J[(j<<2)+f>>2]=0;N[f+h>>2]=i;j=J[a+80>>2];break b}n=j<<2;e=N[g+n>>2];j=J[a+80>>2];k=N[g+(j<<2)>>2];p=Q(Y(Q(Q(e*e)+Q(k*k))));if(p>Q(1.1920928955078125e-7)){m=e;e=Q(N[a+64>>2]/p);N[f+n>>2]=m*e;N[f+h>>2]=-i;i=Q(k*e);break a}J[f+n>>2]=0;N[f+h>>2]=-i}i=Q(0)}N[(j<<2)+f>>2]=i;h=J[f+12>>2];g=c+o|0;J[g+8>>2]=J[f+8>>2];J[g+12>>2]=h;h=J[f+4>>2];J[g>>2]=J[f>>2];J[g+4>>2]=h;l=l+1|0;if((l|0)!=(d|0)){continue}break}}}function Tl(a,b,c,d){a=a|0;b=b|0;c=Q(c);d=Q(d);var e=0,f=0;f=sa-16|0;sa=f;e=J[b+12>>2];J[f+8>>2]=J[b+8>>2];J[f+12>>2]=e;e=J[b+4>>2];J[f>>2]=J[b>>2];J[f+4>>2]=e;d=Q(ua[J[J[a>>2]+20>>2]](a));H[a+65|0]=0;N[a+16>>2]=d;d=N[a+36>>2];N[a+36>>2]=d>Q(.009999999776482582)?d:Q(.009999999776482582);b=J[a+4>>2];e=J[b+56>>2];J[a+136>>2]=J[b+52>>2];J[a+140>>2]=e;e=J[b+64>>2];J[a+144>>2]=J[b+60>>2];J[a+148>>2]=e;b=kc(a,f,c);if(K[a+60|0]){H[a+61|0]=1;e=J[a+148>>2];b=J[a+4>>2];J[b+60>>2]=J[a+144>>2];J[b+64>>2]=e;e=J[a+140>>2];J[b+52>>2]=J[a+136>>2];J[b+56>>2]=e;b=kc(a,f,c);H[a+61|0]=0}a:{if(!K[a+65|0]){break a}if(!(b&4)|(ua[J[J[a>>2]+16>>2]](a)|0)!=1){break a}H[a+64|0]=1;kc(a,f,c);H[a+64|0]=0}J[a+132>>2]=b;sa=f+16|0;return b|0}function Ta(a,b){var c=0,d=0,e=0;c=sa+-64|0;sa=c;d=J[a>>2];e=J[d-4>>2];d=J[d-8>>2];J[c+32>>2]=0;J[c+36>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;H[c+55|0]=0;H[c+56|0]=0;H[c+57|0]=0;H[c+58|0]=0;H[c+59|0]=0;H[c+60|0]=0;H[c+61|0]=0;H[c+62|0]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+20>>2]=0;J[c+16>>2]=29924;J[c+12>>2]=a;J[c+8>>2]=b;a=a+d|0;d=0;a:{if(Ka(e,b,0)){J[c+56>>2]=1;ua[J[J[e>>2]+20>>2]](e,c+8|0,a,a,1,0);d=J[c+32>>2]==1?a:0;break a}ua[J[J[e>>2]+24>>2]](e,c+8|0,a,1,0);b:{switch(J[c+44>>2]){case 0:d=J[c+48>>2]==1?J[c+36>>2]==1?J[c+40>>2]==1?J[c+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(J[c+32>>2]!=1){if(J[c+48>>2]|J[c+36>>2]!=1|J[c+40>>2]!=1){break a}}d=J[c+24>>2]}sa=c- -64|0;return d}function Yr(){var a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0;b=sa-32|0;sa=b;a=La(10448);if(!K[33780]){J[b+24>>2]=0;J[b+28>>2]=1;J[b+16>>2]=4096;J[b+20>>2]=4096;J[b+8>>2]=0;J[b+12>>2]=0;Lc(b+8|0);H[33780]=1}J[a+4>>2]=2;J[a+10444>>2]=33692;J[a+64>>2]=466;H[a+24|0]=1;J[a>>2]=12836;J[a+20>>2]=0;J[a+60>>2]=0;J[a+28>>2]=17852;J[a+12>>2]=0;J[a+16>>2]=0;g=a,h=ua[J[J[8423]+12>>2]](33692)|0,J[g+68>>2]=h;g=a,h=ua[J[J[8423]+8>>2]](33692)|0,J[g+72>>2]=h;while(1){c=0;while(1){e=(P(d,144)+a|0)+(c<<2)|0;f=J[a+10444>>2];g=e,h=ua[J[J[f>>2]+16>>2]](f,d,c)|0,J[g+76>>2]=h;f=e+5260|0;e=J[a+10444>>2];g=f,h=ua[J[J[e>>2]+20>>2]](e,d,c)|0,J[g>>2]=h;c=c+1|0;if((c|0)!=36){continue}break}d=d+1|0;if((d|0)!=36){continue}break}sa=b+32|0;return a|0}function Lo(a,b,c,d){a=a|0;b=Q(b);c=c|0;d=d|0;var e=0,f=0,g=Q(0);e=sa+-64|0;sa=e;f=J[c+60>>2];J[e+56>>2]=J[c+56>>2];J[e+60>>2]=f;f=J[c+52>>2];J[e+48>>2]=J[c+48>>2];J[e+52>>2]=f;N[e+32>>2]=N[c+4>>2];N[e+36>>2]=N[c+20>>2];g=N[c+36>>2];J[e+44>>2]=0;N[e+40>>2]=g;N[e+16>>2]=N[c>>2];N[e+20>>2]=N[c+16>>2];g=N[c+32>>2];J[e+28>>2]=0;N[e+24>>2]=g;c=e+48|0;f=e+32|0;ua[J[J[a>>2]+72>>2]](a,c,f,e+16|0,b,Q(-1.5707963705062866),Q(1.5707963705062866),Q(-1.5707963705062866),Q(1.5707963705062866),d,Q(30),0);J[e+12>>2]=0;N[e+8>>2]=-N[e+24>>2];N[e+4>>2]=-N[e+20>>2];N[e>>2]=-N[e+16>>2];ua[J[J[a>>2]+72>>2]](a,c,f,e,b,Q(-1.5707963705062866),Q(1.5707963705062866),Q(-1.5707963705062866),Q(1.5707963705062866),d,Q(30),0);sa=e- -64|0}function Sk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=0,g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=0,l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0);f=sa-16|0;k=a+36|0;a=J[a+60>>2];e=N[k+((a+2|0)%3<<2)>>2];N[f+8>>2]=e;N[f+4>>2]=e;N[f>>2]=e;a=a<<2;N[a+f>>2]=e+N[a+k>>2];l=N[b+52>>2];g=N[b+24>>2];o=N[b+20>>2];m=N[b+56>>2];h=N[b+40>>2];p=N[b+36>>2];n=N[b+48>>2];q=N[b+8>>2];r=N[b>>2];s=N[b+4>>2];t=N[b+16>>2];u=N[b+32>>2];e=N[f+8>>2];i=N[f>>2];j=N[f+4>>2];J[c+12>>2]=0;h=Q(Q(e*Q(R(h)))+Q(Q(i*Q(R(u)))+Q(j*Q(R(p)))));N[c+8>>2]=m-h;g=Q(Q(e*Q(R(g)))+Q(Q(i*Q(R(t)))+Q(j*Q(R(o)))));N[c+4>>2]=l-g;e=Q(Q(e*Q(R(q)))+Q(Q(i*Q(R(r)))+Q(j*Q(R(s)))));N[c>>2]=n-e;J[d+12>>2]=0;N[d+8>>2]=m+h;N[d+4>>2]=l+g;N[d>>2]=n+e}function Zp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0);J[a+84>>2]=J[J[J[b+4>>2]+8>>2]+8>>2];N[a+4>>2]=N[b+40>>2];d=J[b>>2];J[a+16>>2]=d;a:{if(c){c=J[b+12>>2];J[a+52>>2]=J[b+8>>2];J[a+56>>2]=c;c=J[b+20>>2];J[a+60>>2]=J[b+16>>2];J[a+64>>2]=c;break a}h=N[d+8>>2];i=N[d+12>>2];j=N[d+20>>2];k=N[d+24>>2];l=N[d+28>>2];m=N[d+36>>2];n=N[d+40>>2];e=N[b+12>>2];o=N[d+44>>2];f=N[b+16>>2];p=N[d+4>>2];g=N[b+8>>2];J[a- -64>>2]=0;N[a+60>>2]=Q(o*f)+Q(Q(m*g)+Q(e*n));N[a+56>>2]=Q(l*f)+Q(Q(j*g)+Q(e*k));N[a+52>>2]=Q(i*f)+Q(Q(p*g)+Q(h*e))}c=J[b+28>>2];J[a+68>>2]=J[b+24>>2];J[a+72>>2]=c;c=J[b+36>>2];J[a+76>>2]=J[b+32>>2];J[a+80>>2]=c;return Q(N[b+40>>2])}function bs(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=Q(d);e=Q(e);f=Q(f);var g=0,h=Q(0);J[8456]=J[8456]+1;g=ua[J[8258]](132,16)|0;J[g+12>>2]=0;J[g+16>>2]=0;J[g+4>>2]=35;J[g+8>>2]=0;J[g+20>>2]=0;J[g>>2]=20152;J[g>>2]=20364;J[g+116>>2]=1065353216;J[g+120>>2]=1065353216;J[g+112>>2]=1;H[g+109|0]=0;H[g+110|0]=0;H[g+108|0]=0;J[g+104>>2]=0;J[g+100>>2]=c;N[g+96>>2]=d;N[g+84>>2]=f;N[g+80>>2]=e;J[g+76>>2]=b;J[g+72>>2]=a;J[g+4>>2]=24;J[g+124>>2]=1065353216;J[g+128>>2]=0;d=Q(b-1|0);N[g+92>>2]=d;h=Q(a-1|0);N[g+88>>2]=h;N[g+40>>2]=h;J[g+24>>2]=0;J[g+52>>2]=0;N[g+48>>2]=d;N[g+44>>2]=f;J[g+32>>2]=0;J[g+36>>2]=0;N[g+28>>2]=e;J[g+68>>2]=0;N[g- -64>>2]=Q(d+Q(0))*Q(.5);N[g+60>>2]=Q(e+f)*Q(.5);N[g+56>>2]=Q(h+Q(0))*Q(.5);return g|0}function fd(a){a=a|0;var b=0;J[a>>2]=30840;b=J[a+144>>2];if(!(b?!b|!K[a+148|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+144>>2]=0;H[a+148|0]=1;J[a+136>>2]=0;J[a+140>>2]=0;J[a>>2]=30888;b=J[a+124>>2];if(!(b?!b|!K[a+128|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+124>>2]=0;H[a+128|0]=1;J[a+116>>2]=0;J[a+120>>2]=0;b=J[a+104>>2];if(!(b?!b|!K[a+108|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+104>>2]=0;H[a+108|0]=1;J[a+96>>2]=0;J[a+100>>2]=0;b=J[a+84>>2];if(!(b?!b|!K[a+88|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+84>>2]=0;H[a+88|0]=1;J[a+76>>2]=0;J[a+80>>2]=0;b=J[a+32>>2];if(!(b?!b|!K[a+36|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+32>>2]=0;H[a+36|0]=1;J[a+24>>2]=0;J[a+28>>2]=0;J[a>>2]=30816;return a|0}function Fa(a,b,c){var d=0,e=0,f=0,g=0;a:{if(!c){break a}H[a|0]=b;d=a+c|0;H[d-1|0]=b;if(c>>>0<3){break a}H[a+2|0]=b;H[a+1|0]=b;H[d-3|0]=b;H[d-2|0]=b;if(c>>>0<7){break a}H[a+3|0]=b;H[d-4|0]=b;if(c>>>0<9){break a}d=0-a&3;e=d+a|0;b=P(b&255,16843009);J[e>>2]=b;d=c-d&-4;c=d+e|0;J[c-4>>2]=b;if(d>>>0<9){break a}J[e+8>>2]=b;J[e+4>>2]=b;J[c-8>>2]=b;J[c-12>>2]=b;if(d>>>0<25){break a}J[e+24>>2]=b;J[e+20>>2]=b;J[e+16>>2]=b;J[e+12>>2]=b;J[c-16>>2]=b;J[c-20>>2]=b;J[c-24>>2]=b;J[c-28>>2]=b;g=e&4|24;c=d-g|0;if(c>>>0<32){break a}d=us(b,0,1,1);f=ta;b=e+g|0;while(1){J[b+24>>2]=d;J[b+28>>2]=f;J[b+16>>2]=d;J[b+20>>2]=f;J[b+8>>2]=d;J[b+12>>2]=f;J[b>>2]=d;J[b+4>>2]=f;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function ob(a,b){var c=Q(0),d=0,e=0,f=Q(0),g=0,h=Q(0),i=Q(0),j=0,k=0,l=0,m=0;e=sa-16|0;c=N[a>>2];h=N[a+20>>2];i=N[a+40>>2];f=Q(Q(c+h)+i);a:{if(f>Q(0)){f=Q(Y(Q(f+Q(1))));c=Q(Q(.5)/f);h=Q(c*Q(N[a+16>>2]-N[a+4>>2]));i=Q(c*Q(N[a+8>>2]-N[a+32>>2]));f=Q(f*Q(.5));c=Q(c*Q(N[a+36>>2]-N[a+24>>2]));break a}g=c>>0)%3|0;g=m+(a<<4)|0;a=a<<2;c=Q(Y(Q(Q(Q(N[k+j>>2]-N[l+d>>2])-N[g+a>>2])+Q(1))));N[j+e>>2]=c*Q(.5);c=Q(Q(.5)/c);N[e+12>>2]=Q(N[d+g>>2]-N[a+l>>2])*c;N[e+d>>2]=c*Q(N[j+l>>2]+N[d+k>>2]);N[(a|e)>>2]=c*Q(N[g+j>>2]+N[a+k>>2]);f=N[e+12>>2];h=N[e+8>>2];i=N[e+4>>2];c=N[e>>2]}N[b+12>>2]=f;N[b+8>>2]=h;N[b+4>>2]=i;N[b>>2]=c}function Kg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0);J[a+84>>2]=J[J[b+4>>2]+8>>2];N[a+4>>2]=N[b+40>>2];d=J[b>>2];J[a+16>>2]=d;a:{if(c){c=J[b+12>>2];J[a+52>>2]=J[b+8>>2];J[a+56>>2]=c;c=J[b+20>>2];J[a+60>>2]=J[b+16>>2];J[a+64>>2]=c;break a}h=N[d+8>>2];i=N[d+12>>2];j=N[d+20>>2];k=N[d+24>>2];l=N[d+28>>2];m=N[d+36>>2];n=N[d+40>>2];e=N[b+12>>2];o=N[d+44>>2];f=N[b+16>>2];p=N[d+4>>2];g=N[b+8>>2];J[a- -64>>2]=0;N[a+60>>2]=Q(o*f)+Q(Q(m*g)+Q(e*n));N[a+56>>2]=Q(l*f)+Q(Q(j*g)+Q(e*k));N[a+52>>2]=Q(i*f)+Q(Q(p*g)+Q(h*e))}c=J[b+28>>2];J[a+68>>2]=J[b+24>>2];J[a+72>>2]=c;c=J[b+36>>2];J[a+76>>2]=J[b+32>>2];J[a+80>>2]=c;return Q(N[b+40>>2])}function dd(a){a=a|0;var b=0;J[a>>2]=30968;b=J[a+144>>2];if(!(b?!b|!K[a+148|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+144>>2]=0;H[a+148|0]=1;J[a+136>>2]=0;J[a+140>>2]=0;J[a>>2]=31016;b=J[a+124>>2];if(!(b?!b|!K[a+128|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+124>>2]=0;H[a+128|0]=1;J[a+116>>2]=0;J[a+120>>2]=0;b=J[a+104>>2];if(!(b?!b|!K[a+108|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+104>>2]=0;H[a+108|0]=1;J[a+96>>2]=0;J[a+100>>2]=0;b=J[a+84>>2];if(!(b?!b|!K[a+88|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+84>>2]=0;H[a+88|0]=1;J[a+76>>2]=0;J[a+80>>2]=0;b=J[a+32>>2];if(!(b?!b|!K[a+36|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+32>>2]=0;H[a+36|0]=1;J[a+24>>2]=0;J[a+28>>2]=0;return a|0}function Ip(a){a=a|0;var b=0,c=0;J[8456]=J[8456]+1;b=ua[J[8258]](144,16)|0;J[b+8>>2]=1065353216;J[b+12>>2]=1065353216;J[b+4>>2]=0;J[b+104>>2]=1065353216;J[b+108>>2]=1065353216;J[b+96>>2]=0;J[b+100>>2]=0;J[b+88>>2]=1065353216;J[b+92>>2]=0;J[b+80>>2]=0;J[b+84>>2]=0;J[b+72>>2]=1065353216;J[b+76>>2]=1065353216;c=b- -64|0;J[c>>2]=0;J[c+4>>2]=0;J[b+56>>2]=1065353216;J[b+60>>2]=0;J[b+48>>2]=1065353216;J[b+52>>2]=0;J[b+40>>2]=0;J[b+44>>2]=1065353216;J[b+32>>2]=0;J[b+36>>2]=0;J[b+24>>2]=0;J[b+28>>2]=1065353216;J[b+16>>2]=1065353216;J[b+20>>2]=0;J[b+112>>2]=0;J[b+116>>2]=0;J[b+120>>2]=0;J[b+124>>2]=0;J[b+128>>2]=0;J[b+132>>2]=0;H[b+136|0]=0;J[b+140>>2]=J[a>>2];J[a>>2]=0;J[b>>2]=31352;return b|0}function Vc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=J[b+188>>2];if(d){c=J[a+68>>2];c=ua[J[J[c>>2]+36>>2]](c)|0;ua[J[J[c>>2]+40>>2]](c,d,J[a+24>>2]);c=J[a+68>>2];ua[J[J[c>>2]+12>>2]](c,d,J[a+24>>2]);J[b+188>>2]=0}c=J[b+216>>2];d=J[a+8>>2];a:{if(!((c|0)<0|(c|0)>=(d|0))){e=J[a+16>>2];f=c<<2;g=e+f|0;h=J[g>>2];i=e;d=d-1|0;e=d<<2;J[g>>2]=J[i+e>>2];J[e+J[a+16>>2]>>2]=h;J[a+8>>2]=d;if((c|0)>=(d|0)){break a}J[J[f+J[a+16>>2]>>2]+216>>2]=c;break a}if((d|0)<=0){break a}e=J[a+16>>2];c=0;while(1){f=e+(c<<2)|0;if(J[f>>2]!=(b|0)){c=c+1|0;if((d|0)!=(c|0)){continue}break a}break}if((c|0)>=(d|0)){break a}d=d-1|0;c=d<<2;J[f>>2]=J[c+e>>2];J[c+J[a+16>>2]>>2]=b;J[a+8>>2]=d}J[b+216>>2]=-1}function Gc(a){a=a|0;var b=0;J[a>>2]=18460;b=J[a+160>>2];if(!(b?!b|!K[a+164|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+160>>2]=0;H[a+164|0]=1;J[a+152>>2]=0;J[a+156>>2]=0;b=J[a+136>>2];if(!(b?!b|!K[a+140|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+136>>2]=0;H[a+140|0]=1;J[a+128>>2]=0;J[a+132>>2]=0;b=J[a+116>>2];if(!(b?!b|!K[a+120|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+116>>2]=0;H[a+120|0]=1;J[a+108>>2]=0;J[a+112>>2]=0;b=J[a+96>>2];if(!(b?!b|!K[a+100|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+96>>2]=0;H[a+100|0]=1;J[a+88>>2]=0;J[a+92>>2]=0;b=J[a+76>>2];if(!(b?!b|!K[a+80|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+76>>2]=0;H[a+80|0]=1;J[a+68>>2]=0;J[a+72>>2]=0;return a|0}function Bn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=Q(0);d=sa-96|0;sa=d;f=J[J[a>>2]>>2];g=J[J[a+4>>2]>>2];a:{if(!(ua[J[J[b>>2]+24>>2]](b,f,g)|0)){break a}e=J[f+192>>2];J[d+88>>2]=-1;J[d+92>>2]=-1;J[d+84>>2]=f+4;J[d+80>>2]=f;J[d+76>>2]=e;J[d+72>>2]=0;e=J[g+192>>2];J[d+64>>2]=-1;J[d+68>>2]=-1;J[d+60>>2]=g+4;J[d+56>>2]=g;J[d+52>>2]=e;J[d+48>>2]=0;if(!J[a+8>>2]){b=ua[J[J[b>>2]+8>>2]](b,d+72|0,d+48|0,0,1)|0;J[a+8>>2]=b;if(!b){break a}}b=d+12|0;J[b+32>>2]=0;J[b+12>>2]=d+48;J[b+8>>2]=d+72;J[b+4>>2]=0;J[b>>2]=17852;a=J[a+8>>2];e=J[a>>2];if(J[c+8>>2]==1){ua[J[e+8>>2]](a,d+72|0,d+48|0,c,b);break a}h=Q(ua[J[e+12>>2]](a,f,g,c,b));if(!(h>2])){break a}N[c+12>>2]=h}sa=d+96|0}function Wn(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=Q(0),f=0,g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0);f=J[a+44>>2];a=J[a+4>>2];a:{if(a){if(f){e=N[a+24>>2];d=N[f+24>>2];g=e>d?e:d;e=N[a+20>>2];d=N[f+20>>2];h=e>d?e:d;e=N[a+8>>2];d=N[f+8>>2];i=e>2];d=N[f+4>>2];j=e>2];d=N[f+16>>2];k=e>d?e:d;d=N[a>>2];e=N[f>>2];d=e>d?d:e;break a}l=N[a+28>>2];g=N[a+24>>2];h=N[a+20>>2];k=N[a+16>>2];e=N[a+12>>2];i=N[a+8>>2];j=N[a+4>>2];d=N[a>>2];break a}d=Q(0);if(!f){break a}l=N[f+28>>2];g=N[f+24>>2];h=N[f+20>>2];k=N[f+16>>2];e=N[f+12>>2];i=N[f+8>>2];j=N[f+4>>2];d=N[f>>2]}N[b+12>>2]=e;N[b+8>>2]=i;N[b+4>>2]=j;N[b>>2]=d;N[c+12>>2]=l;N[c+8>>2]=g;N[c+4>>2]=h;N[c>>2]=k}function Qa(a){var b=0,c=0,d=0,e=0;e=(B(a),v(2));c=e>>>23&255;if((c|0)==255){a=Q(a*Q(6.2831854820251465));return Q(a/a)}b=e<<1;if(b>>>0<=2173837238){return(b|0)==-2121130058?Q(a*Q(0)):a}a:{if(!c){c=0;b=e<<9;if((b|0)>=0){while(1){c=c-1|0;b=b<<1;if((b|0)>=0){continue}break}}b=e<<1-c;break a}b=e&8388607|8388608}if((c|0)>129){while(1){b:{d=b-13176795|0;if((d|0)<0){break b}b=d;if(b){break b}return Q(a*Q(0))}b=b<<1;c=c-1|0;if((c|0)>129){continue}break}c=129}c:{d=b-13176795|0;if((d|0)<0){break c}b=d;if(b){break c}return Q(a*Q(0))}if(b>>>0<=8388607){while(1){c=c-1|0;d=b>>>0<4194304;b=b<<1;if(d){continue}break}}return x(2,e&-2147483648|((c|0)>0?b-8388608|c<<23:b>>>1-c|0)),C()}function Ej(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0);e=sa+-64|0;sa=e;J[e+44>>2]=b;J[e+40>>2]=21336;b=J[a+36>>2];J[e+56>>2]=J[a+32>>2];J[e+60>>2]=b;b=J[a+28>>2];J[e+48>>2]=J[a+24>>2];J[e+52>>2]=b;g=N[a+32>>2];f=N[a+28>>2];h=N[a+24>>2];i=Q(Q(1)/h);j=N[c>>2];k=N[d>>2];N[e+24>>2]=i*(h>=Q(0)?j:k);l=Q(Q(1)/f);m=N[c+4>>2];n=N[d+4>>2];N[e+28>>2]=l*(f>=Q(0)?m:n);o=N[d+8>>2];p=N[c+8>>2];J[e+36>>2]=0;J[e+20>>2]=0;N[e+12>>2]=l*(f<=Q(0)?m:n);N[e+8>>2]=i*(h<=Q(0)?j:k);f=Q(Q(1)/g);N[e+32>>2]=f*(g>=Q(0)?p:o);N[e+16>>2]=f*(g<=Q(0)?p:o);a=J[a+40>>2];ua[J[J[a>>2]+64>>2]](a,e+40|0,e+24|0,e+8|0);sa=e- -64|0}function Ic(a,b){var c=Q(0),d=Q(0),e=Q(0),f=Q(0),g=0,h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0);a=Ob(a);J[a+4>>2]=0;J[a>>2]=18128;d=N[b>>2];f=N[b+4>>2];c=N[b+8>>2];J[a+48>>2]=0;e=Q(c*N[a+28>>2]);c=N[a+52>>2];N[a+44>>2]=e-c;N[a+40>>2]=Q(f*N[a+24>>2])-c;N[a+36>>2]=Q(d*N[a+20>>2])-c;e=c;c=N[b>>2];d=N[b+4>>2];g=c>2]>(g?c:d)?!g:2)<<2)+b>>2]*Q(.10000000149011612));if(e>c){d=N[a+52>>2];f=Q(ua[J[J[a>>2]+48>>2]](a));h=Q(ua[J[J[a>>2]+48>>2]](a));N[a+52>>2]=c;c=N[a+44>>2];i=N[a+36>>2];j=N[a+40>>2];k=Q(ua[J[J[a>>2]+48>>2]](a));l=Q(ua[J[J[a>>2]+48>>2]](a));e=Q(ua[J[J[a>>2]+48>>2]](a));J[a+48>>2]=0;N[a+40>>2]=Q(f+j)-l;N[a+36>>2]=Q(d+i)-k;N[a+44>>2]=Q(h+c)-e}return a}function He(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0);e=Q(ua[J[J[a>>2]+48>>2]](a));j=N[b+52>>2];h=N[b+20>>2];m=N[b+24>>2];k=N[b+56>>2];i=N[b+36>>2];n=N[a+40>>2];f=N[b+40>>2];g=N[a+44>>2];l=N[b+48>>2];o=N[b>>2];p=N[b+4>>2];q=N[b+8>>2];r=N[b+16>>2];s=N[b+32>>2];t=N[a+36>>2];J[c+12>>2]=0;g=Q(e+g);u=Q(g*Q(R(f)));f=Q(e+t);e=Q(e+n);i=Q(u+Q(Q(f*Q(R(s)))+Q(e*Q(R(i)))));N[c+8>>2]=k-i;h=Q(Q(g*Q(R(m)))+Q(Q(f*Q(R(r)))+Q(e*Q(R(h)))));N[c+4>>2]=j-h;e=Q(Q(g*Q(R(q)))+Q(Q(f*Q(R(o)))+Q(e*Q(R(p)))));N[c>>2]=l-e;J[d+12>>2]=0;N[d+8>>2]=k+i;N[d+4>>2]=h+j;N[d>>2]=e+l}function ik(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0);f=N[a+20>>2];g=N[a+32>>2];h=N[a+24>>2];i=N[a+28>>2];e=Q(Q(g*N[b+8>>2])+Q(Q(h*N[b>>2])+Q(i*N[b+4>>2])));if(f>2]=e;c=J[b+12>>2];J[a+12>>2]=J[b+8>>2];J[a+16>>2]=c;c=J[b+4>>2];J[a+4>>2]=J[b>>2];J[a+8>>2]=c;f=e}e=Q(Q(g*N[b+24>>2])+Q(Q(h*N[b+16>>2])+Q(i*N[b+20>>2])));if(e>f){N[a+20>>2]=e;c=J[b+28>>2];J[a+12>>2]=J[b+24>>2];J[a+16>>2]=c;c=J[b+20>>2];J[a+4>>2]=J[b+16>>2];J[a+8>>2]=c}else{e=f}f=Q(Q(g*N[b+40>>2])+Q(Q(h*N[b+32>>2])+Q(i*N[b+36>>2])));if(e>2]=f;c=J[b+44>>2];J[a+12>>2]=J[b+40>>2];J[a+16>>2]=c;c=J[b+36>>2];J[a+4>>2]=J[b+32>>2];J[a+8>>2]=c}}function Ok(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=Q(0),f=Q(0),g=0,h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0);d=sa-96|0;sa=d;J[d+44>>2]=0;J[d+48>>2]=0;J[d+56>>2]=0;J[d+60>>2]=0;J[d+52>>2]=1065353216;g=d- -64|0;J[g>>2]=0;J[g+4>>2]=0;J[d+76>>2]=0;J[d+80>>2]=0;J[d+72>>2]=1065353216;J[d+84>>2]=0;J[d+88>>2]=0;J[d+92>>2]=0;J[d+36>>2]=0;J[d+40>>2]=0;J[d+32>>2]=1065353216;ua[J[J[a>>2]+8>>2]](a,d+32|0,d+16|0,d);h=N[d+8>>2];i=N[d+24>>2];e=Q(h-i);m=Q(e*e);e=N[d>>2];j=N[d+16>>2];f=Q(e-j);n=Q(f*f);f=N[d+4>>2];k=N[d+20>>2];l=Q(f-k);N[c>>2]=Q(Y(Q(m+Q(n+Q(l*l)))))*Q(.5);J[b+12>>2]=0;N[b+8>>2]=Q(h+i)*Q(.5);N[b+4>>2]=Q(f+k)*Q(.5);N[b>>2]=Q(e+j)*Q(.5);sa=d+96|0}function Li(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0);f=N[a+84>>2];g=N[a+96>>2];h=N[a+88>>2];i=N[a+92>>2];e=Q(Q(g*N[b+8>>2])+Q(Q(h*N[b>>2])+Q(i*N[b+4>>2])));if(f>2]=e;c=J[b+12>>2];J[a+12>>2]=J[b+8>>2];J[a+16>>2]=c;c=J[b+4>>2];J[a+4>>2]=J[b>>2];J[a+8>>2]=c;f=e}e=Q(Q(g*N[b+24>>2])+Q(Q(h*N[b+16>>2])+Q(i*N[b+20>>2])));if(e>f){N[a+84>>2]=e;c=J[b+28>>2];J[a+12>>2]=J[b+24>>2];J[a+16>>2]=c;c=J[b+20>>2];J[a+4>>2]=J[b+16>>2];J[a+8>>2]=c}else{e=f}f=Q(Q(g*N[b+40>>2])+Q(Q(h*N[b+32>>2])+Q(i*N[b+36>>2])));if(e>2]=f;c=J[b+44>>2];J[a+12>>2]=J[b+40>>2];J[a+16>>2]=c;c=J[b+36>>2];J[a+4>>2]=J[b+32>>2];J[a+8>>2]=c}}function Bb(a){var b=0,c=0,d=Q(0),e=Q(0),f=Q(0),g=0,h=Q(0),i=Q(0),j=Q(0),k=0,l=0;c=sa-16|0;sa=c;d=N[a+156>>2];N[c>>2]=d;e=N[a+152>>2];N[c+4>>2]=e;f=N[a+160>>2];J[c+12>>2]=0;N[c+8>>2]=f;b=J[a+8>>2];a:{if(!b){J[8456]=J[8456]+1;k=a,l=Ic(ua[J[8258]](64,16)|0,c),J[k+8>>2]=l;break a}h=Q(ua[J[J[b>>2]+48>>2]](b));i=Q(ua[J[J[b>>2]+48>>2]](b));j=Q(ua[J[J[b>>2]+48>>2]](b));J[b+48>>2]=0;N[b+44>>2]=Q(f*N[b+28>>2])-j;N[b+40>>2]=Q(e*N[b+24>>2])-i;N[b+36>>2]=Q(d*N[b+20>>2])-h;g=d>2]*Q(.10000000149011612));if(!(Q(ua[J[J[b>>2]+48>>2]](b))>d)){break a}ua[J[J[b>>2]+44>>2]](b,d)}b=J[a+4>>2];ua[J[J[b>>2]+8>>2]](b,J[a+8>>2]);sa=c+16|0}function tc(a,b,c,d){var e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0);i=N[c+24>>2];e=N[b+24>>2];l=Q(i-e);j=N[c+16>>2];g=N[b+16>>2];m=Q(j-g);f=N[a+4>>2];o=N[a>>2];k=N[c+20>>2];h=N[b+20>>2];n=Q(k-h);p=N[a+8>>2];a=Q(Q(e*Q(Q(m*f)-Q(o*n)))+Q(Q(g*Q(Q(n*p)-Q(f*l)))+Q(h*Q(Q(l*o)-Q(p*m)))))Q(0)){break a}f=Q(Q(i*i)+Q(Q(j*j)+Q(k*k)));if(Q(Q(i*l)+Q(Q(j*m)+Q(k*n)))Q(0)?e:Q(0)}N[d>>2]=Y(f)}return a}function je(a){a=a|0;var b=0,c=0,d=0,e=0;J[a>>2]=20812;b=J[a+56>>2];if(!(b?!b|!K[a+60|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+56>>2]=0;H[a+60|0]=1;J[a+48>>2]=0;J[a+52>>2]=0;e=J[a+28>>2];if((e|0)>0){while(1){b=J[a+36>>2]+P(c,36)|0;d=J[b+12>>2];if(!(d?!d|!K[b+16|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](d)}J[b+12>>2]=0;H[b+16|0]=1;J[b+4>>2]=0;J[b+8>>2]=0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}b=J[a+36>>2];if(!(b?!b|!K[a+40|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+36>>2]=0;H[a+40|0]=1;J[a+28>>2]=0;J[a+32>>2]=0;b=J[a+16>>2];if(!(b?!b|!K[a+20|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+16>>2]=0;H[a+20|0]=1;J[a+8>>2]=0;J[a+12>>2]=0;return a|0}function Kd(a){H[a+20|0]=1;J[a>>2]=23736;J[a+16>>2]=0;H[a+40|0]=1;J[a+8>>2]=0;J[a+12>>2]=0;J[a+36>>2]=0;H[a+60|0]=1;J[a+28>>2]=0;J[a+32>>2]=0;J[a+56>>2]=0;H[a+80|0]=1;J[a+48>>2]=0;J[a+52>>2]=0;J[a+76>>2]=0;H[a+100|0]=1;J[a+68>>2]=0;J[a+72>>2]=0;J[a+96>>2]=0;H[a+120|0]=1;J[a+88>>2]=0;J[a+92>>2]=0;J[a+116>>2]=0;H[a+140|0]=1;J[a+108>>2]=0;J[a+112>>2]=0;J[a+136>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;H[a+160|0]=1;J[a+156>>2]=0;J[a+148>>2]=0;J[a+152>>2]=0;H[a+180|0]=1;J[a+176>>2]=0;J[a+168>>2]=0;J[a+172>>2]=0;H[a+208|0]=1;J[a+232>>2]=0;J[a+204>>2]=0;J[a+196>>2]=0;J[a+200>>2]=0;J[a+224>>2]=0;J[a+212>>2]=952;J[a+216>>2]=953;J[a+220>>2]=954;return a}function Gk(a){a=a|0;var b=Q(0),c=0,d=0,e=0,f=0;c=sa-32|0;sa=c;J[a+56>>2]=-581039253;J[a+60>>2]=-581039253;J[a+40>>2]=1566444395;J[a+44>>2]=1566444395;d=a- -64|0;J[d>>2]=-581039253;J[d+4>>2]=0;J[a+48>>2]=1566444395;J[a+52>>2]=0;if(J[a+24>>2]>0){while(1){d=J[a+32>>2]+P(e,80)|0;f=J[d+64>>2];ua[J[J[f>>2]+8>>2]](f,d,c+16|0,c);b=N[c+16>>2];if(b>2]){N[a+40>>2]=b}b=N[c>>2];if(b>N[a+56>>2]){N[a+56>>2]=b}b=N[c+20>>2];if(b>2]){N[a+44>>2]=b}b=N[c+4>>2];if(b>N[a+60>>2]){N[a+60>>2]=b}b=N[c+24>>2];if(b>2]){N[a+48>>2]=b}b=N[c+8>>2];if(b>N[a+64>>2]){N[a+64>>2]=b}e=e+1|0;if((e|0)>2]){continue}break}}sa=c+32|0}function hb(a){var b=0,c=0,d=Q(0),e=0;e=(B(a),v(2));c=e&2147483647;if(c>>>0>=1065353216){if((c|0)==1065353216){return Q(+a*1.5707963267948966+752316384526264e-51)}return Q(Q(0)/Q(a-a))}a:{if(c>>>0<=1056964607){if(c-8388608>>>0<956301312){break a}d=Q(a*a);return Q(Q(a*Q(Q(Q(Q(d*Q(Q(d*Q(-.008656363002955914))+Q(-.04274342209100723)))+Q(.16666586697101593))*d)/Q(Q(d*Q(-.7066296339035034))+Q(1))))+a)}a=Q(Q(Q(1)-Q(R(a)))*Q(.5));b=Y(+a);b=b+b*+Q(Q(Q(Q(a*Q(Q(a*Q(-.008656363002955914))+Q(-.04274342209100723)))+Q(.16666586697101593))*a)/Q(Q(a*Q(-.7066296339035034))+Q(1)));a=Q(1.5707963267948966-(b+b));a=(e|0)<0?Q(-a):a}return a}function Iq(a,b){a=a|0;b=b|0;a:{b:{c:{switch(b|0){case 0:if(!a){break b}if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}return;case 1:if(!a){break b}Ga(a);return;case 2:if(!a){break b}Ga(a);return;case 3:if(!a){break b}break a;case 4:if(!a){break b}break a;case 5:if(!a){break b}break a;case 7:if(!a){break b}break a;case 8:if(!a){break b}break a;case 9:if(!a){break b}break a;case 10:if(!a){break b}break a;case 11:if(!a){break b}break a;case 12:if(!a){break b}break a;case 13:if(!a){break b}break a;case 6:if(!a){break b}break a;case 14:break c;default:break b}}if(!a){break b}ua[J[J[a>>2]+4>>2]](a)}return}ua[J[J[a>>2]+4>>2]](a)}function zd(a,b,c,d){var e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0);f=Ma(c);e=N[b+444>>2];c=Na(c);a:{if(!(Q(R(f))>Q(1.1920928955078125e-7))){h=Q(f*f);break a}h=Q(f*f);g=Q(Q(c*c)/h);i=Q(g/Q(e*e));e=N[b+448>>2];e=Q(Y(Q(Q(g+Q(1))/Q(i+Q(Q(1)/Q(e*e))))))}J[a+12>>2]=0;e=Q(e*Q(.5));g=Q(Na(e)/Q(Y(Q(Q(c*c)+Q(h+Q(0))))));c=Q(g*Q(-c));e=Ma(e);i=Q(e*Q(0));h=Q(g*Q(0));j=Q(h*Q(0));k=Q(Q(i+Q(c*d))-j);f=Q(f*g);g=Q(Q(i+j)-Q(f*d));j=Q(c*Q(-0));i=Q(j+Q(Q(f*Q(-0))-Q(h*d)));d=Q(j+Q(Q(e*d)+Q(f*Q(0))));N[a+8>>2]=Q(k*h)+Q(Q(Q(e*g)-Q(i*c))-Q(d*f));N[a+4>>2]=Q(d*c)+Q(Q(Q(e*k)-Q(i*f))-Q(g*h));N[a>>2]=Q(g*f)+Q(Q(Q(e*d)-Q(i*h))-Q(k*c))}function Oc(a){a=a|0;var b=0,c=0,d=0,e=0;J[a>>2]=16192;d=J[a+52>>2];if((d|0)>0){while(1){e=b<<2;c=J[e+J[a+60>>2]>>2];if(c){ua[J[J[c>>2]>>2]](c)|0;c=J[a+4>>2];ua[J[J[c>>2]+60>>2]](c,J[J[a+60>>2]+e>>2])}b=b+1|0;if((d|0)!=(b|0)){continue}break}}b=J[a+60>>2];if(!(b?!b|!K[a- -64|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+60>>2]=0;H[a+64|0]=1;J[a+52>>2]=0;J[a+56>>2]=0;b=J[a+40>>2];if(!(b?!b|!K[a+44|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+40>>2]=0;H[a+44|0]=1;J[a+32>>2]=0;J[a+36>>2]=0;b=J[a+20>>2];if(!(b?!b|!K[a+24|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+20>>2]=0;H[a+24|0]=1;J[a+12>>2]=0;J[a+16>>2]=0;return a|0}function Zf(){var a=0;H[33090]=0;I[16544]=20565;H[33099]=2;J[8275]=1162103123;J[8278]=1314344772;H[33111]=4;H[33123]=4;H[33104]=0;H[33135]=6;H[33116]=0;J[8281]=K[9159]|K[9160]<<8|(K[9161]<<16|K[9162]<<24);H[33130]=0;a=K[9163]|K[9164]<<8;H[33128]=a;H[33129]=a>>>8;J[8447]=0;J[8446]=324;If();J[8447]=J[8948];J[8948]=33784;H[35767]=4;I[17872]=20565;H[35755]=2;H[35779]=4;J[8939]=1162103123;H[35791]=6;J[8942]=1314344772;J[8945]=K[9159]|K[9160]<<8|(K[9161]<<16|K[9162]<<24);a=K[9163]|K[9164]<<8;H[35784]=a;H[35785]=a>>>8;H[35746]=0;H[35760]=0;H[35772]=0;H[35786]=0;J[8949]=1063;J[8950]=0;pd();J[8950]=J[8948];J[8948]=35796}function Ek(a,b,c){a=a|0;b=Q(b);c=c|0;var d=0,e=Q(0),f=Q(0),g=Q(0),h=0,i=Q(0);d=sa-96|0;sa=d;J[d+44>>2]=0;J[d+48>>2]=0;J[d+56>>2]=0;J[d+60>>2]=0;J[d+52>>2]=1065353216;h=d- -64|0;J[h>>2]=0;J[h+4>>2]=0;J[d+76>>2]=0;J[d+80>>2]=0;J[d+72>>2]=1065353216;J[d+84>>2]=0;J[d+88>>2]=0;J[d+92>>2]=0;J[d+36>>2]=0;J[d+40>>2]=0;J[d+32>>2]=1065353216;ua[J[J[a>>2]+8>>2]](a,d+32|0,d+16|0,d);e=N[d+24>>2];i=N[d+8>>2];b=Q(b/Q(12));f=Q(Q(N[d>>2]-N[d+16>>2])*Q(.5));f=Q(f+f);f=Q(f*f);g=Q(Q(N[d+4>>2]-N[d+20>>2])*Q(.5));g=Q(g+g);g=Q(g*g);N[c+8>>2]=b*Q(f+g);e=Q(Q(i-e)*Q(.5));e=Q(e+e);e=Q(e*e);N[c+4>>2]=b*Q(f+e);N[c>>2]=b*Q(g+e);sa=d+96|0}function wh(a,b){a=a|0;b=Q(b);var c=0,d=0,e=0,f=0,g=0;d=sa-16|0;sa=d;ua[J[8262]](5872);c=J[a+84>>2];if(c){ua[c|0](a,b)}ua[J[J[a>>2]+140>>2]](a,b);c=0;J[a+32>>2]=0;N[a+28>>2]=b;f=a,g=ua[J[J[a>>2]+20>>2]](a)|0,J[f+48>>2]=g;ua[J[J[a>>2]+164>>2]](a,b);ua[J[J[a>>2]+44>>2]](a);ua[J[J[a>>2]+148>>2]](a);N[a+104>>2]=b;ua[J[J[a>>2]+152>>2]](a,a+92|0);ua[J[J[a>>2]+144>>2]](a,b);ua[J[8262]](4095);if(J[a+296>>2]>0){while(1){e=J[J[a+304>>2]+(c<<2)>>2];ua[J[J[e>>2]+8>>2]](e,a,b);c=c+1|0;if((c|0)>2]){continue}break}}ua[J[8263]]();ua[J[J[a>>2]+156>>2]](a,b);c=J[a+80>>2];if(c){ua[c|0](a,b)}ua[J[8263]]();sa=d+16|0}function Fj(a,b){a=a|0;b=b|0;var c=Q(0),d=0;d=sa-96|0;sa=d;tb(a,b);H[a+96|0]=1;if(!K[34e3]){J[8477]=0;J[8478]=0;J[8476]=1065353216;J[8479]=0;J[8480]=0;J[8482]=0;J[8483]=0;J[8481]=1065353216;J[8484]=0;J[8485]=0;J[8489]=0;J[8490]=0;J[8488]=-1082130432;J[8486]=1065353216;J[8487]=0;J[8491]=0;J[8492]=0;J[8494]=0;J[8495]=0;J[8493]=-1082130432;J[8496]=0;J[8497]=0;J[8498]=-1082130432;J[8499]=0;H[34e3]=1}b=Fa(d,0,96);ua[J[J[a>>2]+76>>2]](a,33904,b,6);c=N[a+52>>2];N[a+80>>2]=c+N[b>>2];N[a+64>>2]=N[b+48>>2]-c;N[a+84>>2]=c+N[b+20>>2];N[a+68>>2]=N[b+68>>2]-c;N[a+88>>2]=c+N[b+40>>2];N[a+72>>2]=N[b+88>>2]-c;sa=b+96|0}function Zm(a,b,c,d,e){a=a|0;b=b|0;c=Q(c);d=d|0;e=e|0;var f=0,g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0);f=sa-48|0;sa=f;J[f+40>>2]=e;J[f+36>>2]=d;J[f+44>>2]=J[a+52>>2];j=N[a- -64>>2];k=N[a+60>>2];l=N[a+80>>2];m=N[a+72>>2];n=N[a+76>>2];o=N[a+96>>2];p=N[a+88>>2];q=N[a+92>>2];r=N[a+56>>2];g=N[b+8>>2];h=N[b>>2];i=N[b+4>>2];b=J[a+48>>2];J[f+28>>2]=0;N[f+24>>2]=Q(o*g)+Q(Q(p*h)+Q(i*q));N[f+20>>2]=Q(l*g)+Q(Q(m*h)+Q(i*n));N[f+32>>2]=c;J[f+8>>2]=b;N[f+16>>2]=Q(j*g)+Q(Q(r*h)+Q(k*i));J[f+12>>2]=f+36;a=J[a+44>>2];c=Q(ua[J[J[a>>2]+12>>2]](a,f+8|0,1));sa=f+48|0;return Q(c)}function eg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;if(Ka(a,J[b+8>>2],f)){gc(b,c,d,e);return}g=K[b+53|0];j=J[a+12>>2];H[b+53|0]=0;h=K[b+52|0];H[b+52|0]=0;m=a+16|0;fc(m,b,c,d,e,f);k=K[b+53|0];g=g|k;l=K[b+52|0];h=h|l;i=a+24|0;j=(j<<3)+m|0;a:{if(i>>>0>=j>>>0){break a}while(1){if(K[b+54|0]){break a}b:{if(l){if(J[b+24>>2]==1){break a}if(K[a+8|0]&2){break b}break a}if(!k){break b}if(!(H[a+8|0]&1)){break a}}I[b+52>>1]=0;fc(i,b,c,d,e,f);k=K[b+53|0];g=k|g;l=K[b+52|0];h=l|h;i=i+8|0;if(j>>>0>i>>>0){continue}break}}H[b+53|0]=(g&255)!=0;H[b+52|0]=(h&255)!=0}function Ac(a){var b=0,c=Q(0);b=sa-96|0;sa=b;H[a+96|0]=1;if(!K[34e3]){J[8477]=0;J[8478]=0;J[8476]=1065353216;J[8479]=0;J[8480]=0;J[8482]=0;J[8483]=0;J[8481]=1065353216;J[8484]=0;J[8485]=0;J[8489]=0;J[8490]=0;J[8488]=-1082130432;J[8486]=1065353216;J[8487]=0;J[8491]=0;J[8492]=0;J[8494]=0;J[8495]=0;J[8493]=-1082130432;J[8496]=0;J[8497]=0;J[8498]=-1082130432;J[8499]=0;H[34e3]=1}b=Fa(b,0,96);ua[J[J[a>>2]+76>>2]](a,33904,b,6);c=N[a+52>>2];N[a+80>>2]=N[b>>2]+c;N[a+64>>2]=N[b+48>>2]-c;N[a+84>>2]=c+N[b+20>>2];N[a+68>>2]=N[b+68>>2]-c;N[a+88>>2]=c+N[b+40>>2];N[a+72>>2]=N[b+88>>2]-c;sa=b+96|0}function rf(a){var b=0,c=0,d=0,e=0,f=0;J[a+24>>2]=0;J[a+68>>2]=0;H[a+20|0]=1;J[a>>2]=12284;J[a+16>>2]=0;H[a+44|0]=1;J[a+8>>2]=0;J[a+12>>2]=0;J[a+40>>2]=0;H[a- -64|0]=1;J[a+32>>2]=0;J[a+36>>2]=0;J[a+60>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;J[8456]=J[8456]+1;e=ua[J[8258]](32,16)|0;f=J[a+8>>2];if((f|0)>0){while(1){c=d<<4;b=c+e|0;c=c+J[a+16>>2]|0;J[b>>2]=J[c>>2];J[b+4>>2]=J[c+4>>2];J[b+8>>2]=J[c+8>>2];J[b+12>>2]=J[c+12>>2];d=d+1|0;if((f|0)!=(d|0)){continue}break}}b=J[a+16>>2];if(!(b?!b|!K[a+20|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+16>>2]=e;H[a+20|0]=1;J[a+12>>2]=2;qf(a);return a}function Mi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=Q(0),g=0,h=Q(0),i=Q(0),j=0,k=0;a:{e=N[b>>2];f=N[b+16>>2];i=e>2];if(N[a+24>>2]<(h>i?i:h)){break a}g=e>f;if(N[(h<(g?e:f)?!g<<4:32)+b>>2]>2]){break a}e=N[b+8>>2];g=b+24|0;f=N[g>>2];i=e>2];if(N[a+32>>2]<(h>i?i:h)){break a}k=g;g=e>f;if(N[(h<(g?e:f)?g?b+8|0:k:j)>>2]>2]){break a}e=N[b+4>>2];g=b+20|0;f=N[g>>2];i=e>2];if(N[a+28>>2]<(h>i?i:h)){break a}k=g;g=e>f;if(N[(h<(g?e:f)?g?b+4|0:k:j)>>2]>2]){break a}a=J[a+4>>2];ua[J[J[a>>2]+8>>2]](a,b,c,d)}}function hk(a,b,c){a=a|0;b=Q(b);c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0);f=N[a+44>>2];d=N[a+40>>2];i=N[a+36>>2];j=Q(ua[J[J[a>>2]+48>>2]](a));d=Q(d+Q(ua[J[J[a>>2]+48>>2]](a)));k=Q(ua[J[J[a>>2]+48>>2]](a));e=Q(b*Q(.5));g=Q(b*Q(.25));h=Q(b/Q(12));b=Q(j+i);a:{b:{switch(J[a+60>>2]){case 0:f=e;e=Q(d*d);d=Q(f*e);b=Q(Q(h*Q(b*Q(b*Q(4))))+Q(g*e));e=b;break a;case 2:b=Q(b*b);e=Q(e*b);d=Q(k+f);d=Q(Q(h*Q(d*Q(d*Q(4))))+Q(g*b));b=d;break a;default:break b}}f=e;e=Q(b*b);b=Q(f*e);d=Q(Q(h*Q(d*Q(d*Q(4))))+Q(g*e));e=d}J[c+12>>2]=0;N[c+8>>2]=e;N[c+4>>2]=b;N[c>>2]=d}function $p(a){a=a|0;var b=0;J[a>>2]=30888;b=J[a+124>>2];if(!(b?!b|!K[a+128|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+124>>2]=0;H[a+128|0]=1;J[a+116>>2]=0;J[a+120>>2]=0;b=J[a+104>>2];if(!(b?!b|!K[a+108|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+104>>2]=0;H[a+108|0]=1;J[a+96>>2]=0;J[a+100>>2]=0;b=J[a+84>>2];if(!(b?!b|!K[a+88|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+84>>2]=0;H[a+88|0]=1;J[a+76>>2]=0;J[a+80>>2]=0;b=J[a+32>>2];if(!(b?!b|!K[a+36|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+32>>2]=0;H[a+36|0]=1;J[a+24>>2]=0;J[a+28>>2]=0;J[a>>2]=30816;return a|0}function $d(a){a=a|0;var b=0;J[a>>2]=22040;b=J[a+156>>2];if(!(b?!b|!K[a+160|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+156>>2]=0;H[a+160|0]=1;J[a+148>>2]=0;J[a+152>>2]=0;b=J[a+136>>2];if(!(b?!b|!K[a+140|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+136>>2]=0;H[a+140|0]=1;J[a+128>>2]=0;J[a+132>>2]=0;b=J[a+116>>2];if(!(b?!b|!K[a+120|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+116>>2]=0;H[a+120|0]=1;J[a+108>>2]=0;J[a+112>>2]=0;b=J[a+96>>2];if(!(b?!b|!K[a+100|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+96>>2]=0;H[a+100|0]=1;J[a+88>>2]=0;J[a+92>>2]=0;return zc(a)|0}function Pd(a,b){var c=Q(0),d=0,e=0,f=0,g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=0;f=J[a>>2];d=0;a:{if((f|0)<=0){break a}i=N[a+308>>2];j=N[b+8>>2];c=Q(j-N[a+12>>2]);g=Q(c*c);k=N[b>>2];c=Q(k-N[a+4>>2]);h=Q(c*c);l=N[b+4>>2];c=Q(l-N[a+8>>2]);d=1;if(i>=Q(g+Q(h+Q(c*c)))){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=(e<<4)+a|0;c=Q(j-N[d+12>>2]);g=Q(c*c);c=Q(k-N[d+4>>2]);h=Q(c*c);c=Q(l-N[d+8>>2]);if(!(Q(g+Q(h+Q(c*c)))<=i)){continue}}break}d=(e|0)<(f|0)}if(!(N[b+12>>2]!=N[a+304>>2]|N[b+8>>2]!=N[a+300>>2]|N[b+4>>2]!=N[a+296>>2])){m=N[b>>2]==N[a+292>>2]}return d|m}function lq(){var a=0,b=0;a=sa-32|0;sa=a;if(!K[33644]){J[8375]=-1;J[8376]=0;J[8373]=1065353216;J[8374]=1;H[33524]=1;J[8372]=31016;J[8380]=0;J[8378]=0;J[8379]=0;b=J[a+20>>2];J[8382]=J[a+16>>2];J[8383]=b;b=J[a+28>>2];J[8384]=J[a+24>>2];J[8385]=b;b=J[a+4>>2];J[8386]=J[a>>2];J[8387]=b;b=J[a+12>>2];J[8388]=J[a+8>>2];J[8389]=b;H[33576]=1;J[8393]=0;H[33596]=1;J[8391]=0;J[8392]=0;J[8398]=0;J[8396]=0;J[8397]=0;H[33616]=1;J[8403]=0;J[8401]=0;J[8402]=0;H[33636]=1;J[8372]=30968;J[8408]=0;H[33640]=1;J[8406]=0;J[8407]=0;J[8374]=-1;H[33644]=1}sa=a+32|0;return 33488}function gg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(Ka(a,J[b+8>>2],e)){if(!(J[b+28>>2]==1|J[b+4>>2]!=(c|0))){J[b+28>>2]=d}return}a:{if(Ka(a,J[b>>2],e)){if(!(J[b+16>>2]!=(c|0)&J[b+20>>2]!=(c|0))){if((d|0)!=1){break a}J[b+32>>2]=1;return}J[b+32>>2]=d;b:{if(J[b+44>>2]==4){break b}I[b+52>>1]=0;a=J[a+8>>2];ua[J[J[a>>2]+20>>2]](a,b,c,c,1,e);if(K[b+53|0]){J[b+44>>2]=3;if(!K[b+52|0]){break b}break a}J[b+44>>2]=4}J[b+20>>2]=c;J[b+40>>2]=J[b+40>>2]+1;if(J[b+36>>2]!=1|J[b+24>>2]!=2){break a}H[b+54|0]=1;return}a=J[a+8>>2];ua[J[J[a>>2]+24>>2]](a,b,c,d,e)}}function Vp(a){a=a|0;var b=0;J[a>>2]=31016;b=J[a+124>>2];if(!(b?!b|!K[a+128|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+124>>2]=0;H[a+128|0]=1;J[a+116>>2]=0;J[a+120>>2]=0;b=J[a+104>>2];if(!(b?!b|!K[a+108|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+104>>2]=0;H[a+108|0]=1;J[a+96>>2]=0;J[a+100>>2]=0;b=J[a+84>>2];if(!(b?!b|!K[a+88|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+84>>2]=0;H[a+88|0]=1;J[a+76>>2]=0;J[a+80>>2]=0;b=J[a+32>>2];if(!(b?!b|!K[a+36|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+32>>2]=0;H[a+36|0]=1;J[a+24>>2]=0;J[a+28>>2]=0;return a|0}function bk(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=0,f=Q(0),g=Q(0),h=0,i=Q(0),j=Q(0);e=sa-16|0;sa=e;ua[J[J[b>>2]+68>>2]](e,b,c);h=J[e+12>>2];J[a+8>>2]=J[e+8>>2];J[a+12>>2]=h;h=J[e+4>>2];J[a>>2]=J[e>>2];J[a+4>>2]=h;if(Q(ua[J[J[b>>2]+48>>2]](b))!=Q(0)){f=N[c+4>>2];d=N[c>>2];g=N[c+8>>2];i=Q(ua[J[J[b>>2]+48>>2]](b));b=Q(Q(g*g)+Q(Q(d*d)+Q(f*f)))>2]=N[a>>2]+Q(i*Q(j*d));N[a+4>>2]=N[a+4>>2]+Q(i*Q(f*d));N[a+8>>2]=N[a+8>>2]+Q(i*Q(g*d))}sa=e+16|0}function mm(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0);h=N[a+96>>2];i=N[a+80>>2];k=N[a+84>>2];l=N[a+104>>2];j=N[a+100>>2];e=N[a+68>>2];f=N[a+72>>2];m=N[a+88>>2];g=N[a+64>>2];J[c+12>>2]=0;i=Q(i-g);j=Q(j-e);g=Q(h-g);h=Q(k-e);e=Q(Q(i*j)-Q(g*h));k=e;n=Q(e*e);e=h;h=Q(l-f);f=Q(m-f);e=Q(Q(e*h)-Q(j*f));f=Q(Q(f*g)-Q(h*i));g=Q(Q(1)/Q(Y(Q(n+Q(Q(e*e)+Q(f*f))))));N[c+8>>2]=k*g;N[c+4>>2]=f*g;N[c>>2]=e*g;b=J[a+76>>2];J[d+8>>2]=J[a+72>>2];J[d+12>>2]=b;b=J[a+68>>2];J[d>>2]=J[a+64>>2];J[d+4>>2]=b}function ui(a,b,c,d){a=a|0;b=b|0;c=Q(c);d=d|0;var e=0;a:{b:{c:{if(d>>>0<=2){d:{switch(b-1|0){case 1:b=((d<<2)+a|0)+728|0;e=2;break b;case 3:b=((d<<2)+a|0)+744|0;e=1;break b;case 0:b=((d<<2)+a|0)+760|0;e=8;break b;case 2:break d;default:break a}}b=((d<<2)+a|0)+776|0;break c}e=d-3|0;if(e>>>0>2){break a}e:{switch(b-1|0){case 1:b=(P(e,88)+a|0)+980|0;e=2;break b;case 3:b=(P(e,88)+a|0)+984|0;e=1;break b;case 0:b=(P(e,88)+a|0)+988|0;e=8;break b;case 2:break e;default:break a}}b=(P(e,88)+a|0)+992|0}e=4}N[b>>2]=c;J[a+1456>>2]=J[a+1456>>2]|e<<(d<<2)}}function Sr(){var a=0,b=0;a=sa-32|0;sa=a;if(!K[33388]){J[8312]=0;J[8309]=1065353216;J[8310]=0;H[33268]=1;J[8308]=30888;J[8316]=0;J[8314]=0;J[8315]=0;b=J[a+20>>2];J[8318]=J[a+16>>2];J[8319]=b;b=J[a+28>>2];J[8320]=J[a+24>>2];J[8321]=b;b=J[a+4>>2];J[8322]=J[a>>2];J[8323]=b;b=J[a+12>>2];J[8324]=J[a+8>>2];J[8325]=b;H[33320]=1;J[8329]=0;H[33340]=1;J[8327]=0;J[8328]=0;J[8334]=0;J[8332]=0;J[8333]=0;H[33360]=1;J[8339]=0;J[8337]=0;J[8338]=0;H[33380]=1;J[8308]=30840;J[8344]=0;H[33384]=1;J[8342]=0;J[8343]=0;J[8311]=-1;H[33388]=1}sa=a+32|0;return 33232}function Vl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=(b|0)!=8;if(!(d|(c|0)!=8)){return J[a+56>>2]}if(!((c|0)!=1|d)){return J[a+72>>2]}if(!((b|0)!=1|(c|0)!=8)){return J[a+76>>2]}if(!(b|c)){return J[a+68>>2]}if(!((c|0)!=28|(b|0)>19)){return J[a+84>>2]}if(!((b|0)!=28|(c|0)>19)){return J[a+80>>2]}a:{if((b|0)<=19){if((c|0)<=19){return J[a+28>>2]}if(c-21>>>0>8){break a}return J[a+32>>2]}if(!((c|0)>19|b-21>>>0>8)){return J[a+36>>2]}if((b|0)!=31){break a}if((c|0)==31){return J[a+44>>2]}return J[a+40>>2]}if((c|0)==31){return J[a+48>>2]}return J[a+52>>2]}function Ak(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=0,h=0,i=0,j=Q(0),k=Q(0);e=Q(N[b+68>>2]*Q(.5));g=J[b+72>>2];i=J[b+76>>2];h=i<<2;d=N[c+8>>2];j=Q(d*d);d=N[c>>2];f=Q(d*d);d=N[c+4>>2];a:{b:{if(N[h+c>>2]>Q(N[b+60>>2]*Q(Y(Q(j+Q(f+Q(d*d))))))){J[(g<<2)+a>>2]=0;N[a+h>>2]=e;c=J[b+80>>2];break b}d=N[(g<<2)+c>>2];h=c;c=J[b+80>>2];f=N[h+(c<<2)>>2];k=Q(Y(Q(Q(d*d)+Q(f*f))));if(k>Q(1.1920928955078125e-7)){j=d;d=Q(N[b+64>>2]/k);N[(g<<2)+a>>2]=j*d;N[(i<<2)+a>>2]=-e;e=Q(f*d);break a}J[(g<<2)+a>>2]=0;N[(i<<2)+a>>2]=-e}e=Q(0)}N[(c<<2)+a>>2]=e}function wf(a){a=a|0;var b=0,c=0,d=0,e=0;J[a>>2]=11916;if(K[a+152|0]){b=J[a+96>>2];ua[J[J[b>>2]>>2]](b)|0;b=J[a+96>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}}e=J[a+160>>2];if((e|0)>0){while(1){b=J[a+168>>2]+P(c,20)|0;d=J[b+12>>2];if(!(d?!d|!K[b+16|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](d)}H[b+16|0]=1;J[b+12>>2]=0;J[b+4>>2]=0;J[b+8>>2]=0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}b=J[a+168>>2];if(!(b?!b|!K[a+172|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+168>>2]=0;H[a+172|0]=1;J[a+160>>2]=0;J[a+164>>2]=0;$c(a+44|0);$c(a+4|0);return a|0}function Vh(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=Q(0),k=Q(0);a:{if(!J[h+52>>2]){break a}b=J[h+20>>2];if((b|0)<=0){break a}c=0;d=J[a+28>>2];if((d|0)<=0){break a}while(1){e=0;j=Q(0);if((d|0)>0){while(1){f=J[a+16>>2];b=J[a+36>>2]+P(J[J[a+116>>2]+(e<<2)>>2],152)|0;k=Q(ua[J[a+220>>2]](f+P(J[b+144>>2],244)|0,P(J[b+148>>2],244)+f|0,b));j=Q(Q(k*k)+j);e=e+1|0;if((e|0)!=(d|0)){continue}break}b=J[h+20>>2]}if((b-1|0)<=(c|0)|N[h+92>>2]>=j){break a}c=c+1|0;if((c|0)>=(b|0)){break a}d=J[a+28>>2];continue}}}function Ho(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=Q(d);e=e|0;f=f|0;var g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0);e=sa-16|0;sa=e;g=N[b>>2];h=N[c>>2];i=N[b+4>>2];j=N[c+4>>2];k=N[b+8>>2];l=N[c+8>>2];J[e+12>>2]=0;N[e+8>>2]=k+Q(l*d);N[e+4>>2]=i+Q(j*d);N[e>>2]=g+Q(h*d);ua[J[J[a>>2]+16>>2]](a,b,e,f);d=N[b>>2];g=N[c>>2];h=N[b+4>>2];i=N[c+4>>2];j=N[b+8>>2];k=N[c+8>>2];J[e+12>>2]=0;N[e+8>>2]=j+Q(k*Q(.009999999776482582));N[e+4>>2]=h+Q(i*Q(.009999999776482582));N[e>>2]=d+Q(g*Q(.009999999776482582));ua[J[J[a>>2]+16>>2]](a,b,e,f);sa=e+16|0}function oq(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0);g=N[b+8>>2];d=N[b+4>>2];e=N[a+408>>2];N[a+472>>2]=Q(N[b>>2]*e)+N[a+472>>2];h=d;d=N[a+412>>2];N[a+476>>2]=Q(h*d)+N[a+476>>2];f=N[a+416>>2];N[a+480>>2]=Q(g*f)+N[a+480>>2];k=N[b>>2];g=N[c>>2];i=N[c+4>>2];f=Q(f*N[b+8>>2]);d=Q(d*N[b+4>>2]);j=N[c+8>>2];N[a+488>>2]=Q(Q(Q(i*f)-Q(d*j))*N[a+604>>2])+N[a+488>>2];h=N[a+612>>2];e=Q(e*k);N[a+492>>2]=Q(Q(Q(j*e)-Q(f*g))*N[a+608>>2])+N[a+492>>2];N[a+496>>2]=Q(h*Q(Q(g*d)-Q(e*i)))+N[a+496>>2]}function tm(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=Q(0),i=Q(0),j=Q(0),k=0,l=Q(0),m=Q(0),n=0;if((d|0)>0){n=a- -64|0;while(1){e=g<<4;f=e+c|0;e=b+e|0;h=N[e+8>>2];i=N[e>>2];j=N[e+4>>2];l=Q(Q(h*N[a+72>>2])+Q(Q(i*N[a+64>>2])+Q(j*N[a+68>>2])));m=Q(Q(h*N[a+88>>2])+Q(Q(i*N[a+80>>2])+Q(j*N[a+84>>2])));e=l>2])+Q(Q(i*N[a+96>>2])+Q(j*N[a+100>>2])))>(e?m:l)?2:e)<<4)+n|0;k=J[e+4>>2];J[f>>2]=J[e>>2];J[f+4>>2]=k;k=J[e+12>>2];J[f+8>>2]=J[e+8>>2];J[f+12>>2]=k;g=g+1|0;if((g|0)!=(d|0)){continue}break}}}function $b(a,b,c){var d=0;d=J[a+4>>2];a:{if(d){J[a+4>>2]=0;break a}J[8456]=J[8456]+1;d=ua[J[8258]](44,16)|0;J[d>>2]=0;J[d+4>>2]=0;J[d+40>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0}J[d+36>>2]=c;J[d+32>>2]=0;J[d+40>>2]=0;c=J[b+4>>2];J[d>>2]=J[b>>2];J[d+4>>2]=c;c=J[b+12>>2];J[d+8>>2]=J[b+8>>2];J[d+12>>2]=c;c=J[b+20>>2];J[d+16>>2]=J[b+16>>2];J[d+20>>2]=c;c=J[b+28>>2];J[d+24>>2]=J[b+24>>2];J[d+28>>2]=c;ac(a,J[a>>2],d);J[a+12>>2]=J[a+12>>2]+1;return d}function Wl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=(b|0)!=8;if(!(d|(c|0)!=8)){return J[a+56>>2]}if(!((c|0)!=1|d)){return J[a+72>>2]}if(!((b|0)!=1|(c|0)!=8)){return J[a+76>>2]}if(!((c|0)!=28|(b|0)>19)){return J[a+84>>2]}if(!((b|0)!=28|(c|0)>19)){return J[a+80>>2]}a:{if((b|0)<=19){if((c|0)<=19){return J[a+28>>2]}if(c-21>>>0>8){break a}return J[a+32>>2]}if(!((c|0)>19|b-21>>>0>8)){return J[a+36>>2]}if((b|0)!=31){break a}if((c|0)==31){return J[a+44>>2]}return J[a+40>>2]}if((c|0)==31){return J[a+48>>2]}return J[a+52>>2]}function vj(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=0,f=Q(0),g=Q(0),h=0,i=Q(0),j=Q(0);e=sa-16|0;sa=e;ua[J[J[b>>2]+68>>2]](e,b,c);h=J[e+12>>2];J[a+8>>2]=J[e+8>>2];J[a+12>>2]=h;h=J[e+4>>2];J[a>>2]=J[e>>2];J[a+4>>2]=h;f=N[c+4>>2];d=N[c>>2];g=N[c+8>>2];i=Q(ua[J[J[b>>2]+48>>2]](b));b=Q(Q(g*g)+Q(Q(d*d)+Q(f*f)))>2]=N[a>>2]+Q(i*Q(j*d));N[a+4>>2]=N[a+4>>2]+Q(i*Q(f*d));N[a+8>>2]=N[a+8>>2]+Q(i*Q(g*d));sa=e+16|0}function rm(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0);f=N[a+96>>2];h=N[a+80>>2];j=N[a+84>>2];k=N[a+104>>2];i=N[a+100>>2];d=N[a+68>>2];e=N[a+72>>2];l=N[a+88>>2];g=N[a+64>>2];J[c+12>>2]=0;h=Q(h-g);i=Q(i-d);g=Q(f-g);f=Q(j-d);d=Q(Q(h*i)-Q(g*f));j=d;m=Q(d*d);d=f;f=Q(k-e);e=Q(l-e);d=Q(Q(d*f)-Q(i*e));e=Q(Q(e*g)-Q(f*h));g=Q(Q(1)/Q(Y(Q(m+Q(Q(d*d)+Q(e*e))))));f=Q(j*g);N[c+8>>2]=f;e=Q(e*g);N[c+4>>2]=e;d=Q(d*g);N[c>>2]=d;if(b){N[c+8>>2]=-f;N[c+4>>2]=-e;N[c>>2]=-d}}function Ce(a){H[a+60|0]=0;J[a+52>>2]=287;J[a+144>>2]=0;H[a+80|0]=1;J[a>>2]=18460;J[a+76>>2]=0;H[a+100|0]=1;J[a+68>>2]=0;J[a+72>>2]=0;J[a+96>>2]=0;H[a+120|0]=1;J[a+88>>2]=0;J[a+92>>2]=0;J[a+116>>2]=0;H[a+140|0]=1;J[a+108>>2]=0;J[a+112>>2]=0;J[a+136>>2]=0;H[a+164|0]=1;J[a+128>>2]=0;J[a+132>>2]=0;J[a+160>>2]=0;J[a+168>>2]=0;J[a+152>>2]=0;J[a+156>>2]=0;J[a+4>>2]=-8388609;J[a+8>>2]=-8388609;J[a+12>>2]=-8388609;J[a+16>>2]=0;J[a+20>>2]=2139095039;J[a+24>>2]=2139095039;J[a+28>>2]=2139095039;J[a+32>>2]=0;return a}function Nq(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0);d=N[b+12>>2];h=N[b+8>>2];c=N[b>>2];f=N[b+4>>2];J[a+44>>2]=0;J[a+28>>2]=0;J[a+12>>2]=0;e=Q(Q(2)/Q(Q(d*d)+Q(Q(h*h)+Q(Q(c*c)+Q(f*f)))));i=Q(h*e);g=Q(f*i);k=Q(c*e);l=Q(d*k);N[a+36>>2]=g+l;m=Q(c*i);e=Q(f*e);j=Q(d*e);N[a+32>>2]=m-j;N[a+24>>2]=g-l;g=Q(c*e);d=Q(d*i);N[a+16>>2]=g+d;N[a+8>>2]=m+j;N[a+4>>2]=g-d;c=Q(c*k);d=Q(f*e);N[a+40>>2]=Q(1)-Q(c+d);j=c;c=Q(h*i);N[a+20>>2]=Q(1)-Q(j+c);N[a>>2]=Q(1)-Q(d+c)}function _p(a){a=a|0;var b=0;J[a>>2]=30888;b=J[a+124>>2];if(!(b?!b|!K[a+128|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+124>>2]=0;H[a+128|0]=1;J[a+116>>2]=0;J[a+120>>2]=0;b=J[a+104>>2];if(!(b?!b|!K[a+108|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+104>>2]=0;H[a+108|0]=1;J[a+96>>2]=0;J[a+100>>2]=0;b=J[a+84>>2];if(!(b?!b|!K[a+88|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+84>>2]=0;H[a+88|0]=1;J[a+76>>2]=0;J[a+80>>2]=0;b=J[a+32>>2];if(!(b?!b|!K[a+36|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}Ga(a)}function Up(a){a=a|0;var b=0;J[a>>2]=31016;b=J[a+124>>2];if(!(b?!b|!K[a+128|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+124>>2]=0;H[a+128|0]=1;J[a+116>>2]=0;J[a+120>>2]=0;b=J[a+104>>2];if(!(b?!b|!K[a+108|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+104>>2]=0;H[a+108|0]=1;J[a+96>>2]=0;J[a+100>>2]=0;b=J[a+84>>2];if(!(b?!b|!K[a+88|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+84>>2]=0;H[a+88|0]=1;J[a+76>>2]=0;J[a+80>>2]=0;b=J[a+32>>2];if(!(b?!b|!K[a+36|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}Ga(a)}function Kn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;J[8461]=J[8461]+1;d=J[b+12>>2]>J[c+12>>2];e=J[(d?b:c)+12>>2];d=J[(d?c:b)+12>>2];b=e<<16|d;b=(b<<15^-1)+b|0;b=P(b>>>10^b,9);b=b>>>6^b;b=(b<<11^-1)+b|0;b=J[a+12>>2]-1&(b>>>16^b);a:{b:{if((b|0)>=J[a+32>>2]){break b}c=J[J[a+40>>2]+(b<<2)>>2];if((c|0)==-1){break b}g=J[a+60>>2];a=J[a+16>>2];while(1){f=c<<4;b=a+f|0;if((d|0)==J[J[b>>2]+12>>2]&J[J[(a+f|0)+4>>2]+12>>2]==(e|0)){break a}c=J[(c<<2)+g>>2];if((c|0)!=-1){continue}break}}b=0}return b|0}function Cd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;while(1){k=c;l=J[J[a+12>>2]+((c+d|0)/2<<3)>>2];e=d;while(1){g=J[a+12>>2];h=c;while(1){c=h;h=c+1|0;f=(c<<3)+g|0;if(J[f>>2]<(l|0)){continue}break}i=e;while(1){e=i;i=e-1|0;m=e<<3;j=m+g|0;if(J[j>>2]>(l|0)){continue}break}if((c|0)<=(e|0)){c=J[f>>2];e=J[f+4>>2];g=J[j+4>>2];J[f>>2]=J[j>>2];J[f+4>>2]=g;f=J[a+12>>2]+m|0;J[f>>2]=c;J[f+4>>2]=e;e=i;c=h}if((c|0)<=(e|0)){continue}break}if((e|0)>(k|0)){Cd(a,b,k,e)}if((c|0)<(d|0)){continue}break}}function Qe(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;J[a>>2]=16340;b=J[a+84>>2];e=J[b+8>>2];if((e|0)>0){while(1){c=J[(J[b+16>>2]+P(d,12)|0)+8>>2];if(c){ua[J[J[c>>2]>>2]](c)|0;f=J[a+4>>2];ua[J[J[f>>2]+60>>2]](f,c)}d=d+1|0;if((e|0)!=(d|0)){continue}break}b=J[a+84>>2]}Le(b);b=J[a+84>>2];ua[J[J[b>>2]>>2]](b)|0;b=J[a+84>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}b=J[a+100>>2];if(!(b?!b|!K[a+104|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+100>>2]=0;H[a+104|0]=1;J[a+92>>2]=0;J[a+96>>2]=0;return Oc(a)|0} +function Sd(a,b,c,d){var e=0,f=0;e=J[b+4>>2];J[a+292>>2]=J[b>>2];J[a+296>>2]=e;e=J[b+12>>2];J[a+300>>2]=J[b+8>>2];J[a+304>>2]=e;H[a+356|0]=1;f=J[b+4>>2];e=a+(J[a>>2]<<4)|0;J[e+4>>2]=J[b>>2];J[e+8>>2]=f;f=J[b+12>>2];J[e+12>>2]=J[b+8>>2];J[e+16>>2]=f;e=J[c+12>>2];b=(J[a>>2]<<4)+a|0;J[b+92>>2]=J[c+8>>2];J[b+96>>2]=e;e=J[c+4>>2];J[b+84>>2]=J[c>>2];J[b+88>>2]=e;c=J[d+12>>2];b=(J[a>>2]<<4)+a|0;J[b+172>>2]=J[d+8>>2];J[b+176>>2]=c;c=J[d+4>>2];J[b+164>>2]=J[d>>2];J[b+168>>2]=c;J[a>>2]=J[a>>2]+1}function ti(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0);a:{b:{if(c>>>0<=2){c:{switch(b-1|0){case 1:a=((c<<2)+a|0)+728|0;break b;case 3:a=((c<<2)+a|0)+744|0;break b;case 0:a=((c<<2)+a|0)+760|0;break b;case 2:break c;default:break a}}a=((c<<2)+a|0)+776|0;break b}c=c-3|0;if(c>>>0>2){break a}d:{switch(b-1|0){case 1:a=(P(c,88)+a|0)+980|0;break b;case 3:a=(P(c,88)+a|0)+984|0;break b;case 0:a=(P(c,88)+a|0)+988|0;break b;case 2:break d;default:break a}}a=(P(c,88)+a|0)+992|0}d=N[a>>2]}return Q(d)}function Fm(a,b,c,d){a=a|0;b=b|0;c=c|0;d=Q(d);var e=0,f=Q(0),g=0,h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0);e=sa-16|0;sa=e;N[a+32>>2]=d;g=J[b+4>>2];J[a+8>>2]=J[b>>2];J[a+12>>2]=g;g=J[b+12>>2];J[a+16>>2]=J[b+8>>2];J[a+20>>2]=g;h=N[b+8>>2];i=N[c>>2];j=N[b>>2];k=N[c+4>>2];l=N[b+4>>2];m=N[c+8>>2];f=N[a+28>>2];J[e+12>>2]=0;N[e+8>>2]=m-Q(f*h);N[e+4>>2]=k-Q(f*l);N[e>>2]=i-Q(j*f);d=Q(Q(f+N[a+24>>2])+d);N[a+32>>2]=d;if(d>2];ua[J[J[a>>2]+16>>2]](a,b,e,d);sa=e+16|0}function lc(a,b,c){var d=Q(0),e=0,f=Q(0),g=Q(0);e=J[a+204>>2];a:{if(b==Q(0)){J[a+204>>2]=e|1;break a}J[a+204>>2]=e&-2;d=Q(Q(1)/b)}N[a+404>>2]=d;J[a+436>>2]=0;N[a+424>>2]=N[a+440>>2]*b;N[a+432>>2]=N[a+448>>2]*b;N[a+428>>2]=N[a+444>>2]*b;b=N[c+8>>2];f=N[c+4>>2];g=N[c>>2];N[a+620>>2]=N[a+408>>2]*d;N[a+624>>2]=d*N[a+412>>2];N[a+628>>2]=d*N[a+416>>2];J[a+632>>2]=0;J[a+468>>2]=0;N[a+456>>2]=g!=Q(0)?Q(Q(1)/g):Q(0);N[a+460>>2]=f!=Q(0)?Q(Q(1)/f):Q(0);N[a+464>>2]=b!=Q(0)?Q(Q(1)/b):Q(0)}function yj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0);e=sa-48|0;sa=e;i=N[a+12>>2];j=N[a+16>>2];f=N[b+4>>2];g=N[b+8>>2];k=N[a+8>>2];h=N[b>>2];J[e+12>>2]=0;N[e>>2]=h*k;N[e+8>>2]=g*j;N[e+4>>2]=f*i;f=N[b+20>>2];g=N[b+24>>2];h=N[b+16>>2];J[e+28>>2]=0;N[e+24>>2]=j*g;N[e+20>>2]=i*f;N[e+16>>2]=k*h;f=N[b+36>>2];g=N[b+40>>2];h=N[b+32>>2];J[e+44>>2]=0;N[e+40>>2]=j*g;N[e+36>>2]=i*f;N[e+32>>2]=k*h;a=J[a+4>>2];ua[J[J[a>>2]+8>>2]](a,e,c,d);sa=e+48|0}function rs(a,b){a=a|0;b=Q(b);var c=0,d=Q(0),e=Q(0),f=Q(0),g=Q(0);J[8456]=J[8456]+1;c=ua[J[8258]](92,16)|0;J[c+12>>2]=0;J[c+16>>2]=0;J[c+4>>2]=35;J[c+8>>2]=0;J[c+20>>2]=0;J[c>>2]=20152;J[c>>2]=21524;d=N[a+8>>2];e=N[a>>2];f=N[a+4>>2];g=N[a+12>>2];J[c+84>>2]=1065353216;J[c+88>>2]=0;J[c+76>>2]=1065353216;J[c+80>>2]=1065353216;N[c+72>>2]=b;N[c+68>>2]=g;J[c+4>>2]=28;b=Q(Q(1)/Q(Y(Q(Q(d*d)+Q(Q(e*e)+Q(f*f))))));N[c- -64>>2]=d*b;N[c+60>>2]=f*b;N[c+56>>2]=e*b;return c|0}function lo(a,b){a=a|0;b=b|0;var c=0,d=0;c=J[b+4>>2];J[a+8>>2]=J[b>>2];J[a+12>>2]=c;c=J[b+12>>2];J[a+16>>2]=J[b+8>>2];J[a+20>>2]=c;c=J[b+28>>2];J[a+32>>2]=J[b+24>>2];J[a+36>>2]=c;c=J[b+20>>2];J[a+24>>2]=J[b+16>>2];J[a+28>>2]=c;c=J[b+44>>2];J[a+48>>2]=J[b+40>>2];J[a+52>>2]=c;c=J[b+36>>2];J[a+40>>2]=J[b+32>>2];J[a+44>>2]=c;d=J[b+60>>2];c=a- -64|0;J[c>>2]=J[b+56>>2];J[c+4>>2]=d;c=J[b+52>>2];J[a+56>>2]=J[b+48>>2];J[a+60>>2]=c;ua[J[J[a>>2]+16>>2]](a,J[a+4>>2])}function bf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=Q(d);e=e|0;f=f|0;var g=0;g=sa+-64|0;sa=g;J[g+56>>2]=f;J[g+52>>2]=e;J[g+60>>2]=J[a+220>>2];e=J[a+212>>2];if(N[e+4>>2]>=d){J[g+8>>2]=J[a+216>>2];J[g+12>>2]=g+52;a=J[b+12>>2];J[g+24>>2]=J[b+8>>2];J[g+28>>2]=a;a=J[b+4>>2];J[g+16>>2]=J[b>>2];J[g+20>>2]=a;a=J[c+12>>2];J[g+40>>2]=J[c+8>>2];J[g+44>>2]=a;a=J[c+4>>2];J[g+32>>2]=J[c>>2];J[g+36>>2]=a;N[g+48>>2]=d;d=Q(ua[J[J[e>>2]+12>>2]](e,g+8|0,1))}sa=g- -64|0;return Q(d)}function Wc(a){a=a|0;var b=0,c=0,d=0,e=0;J[a>>2]=13068;b=J[a+8>>2];if((b|0)>0){while(1){e=J[J[a+16>>2]+(c<<2)>>2];d=J[e+188>>2];if(d){b=J[a+68>>2];b=ua[J[J[b>>2]+36>>2]](b)|0;ua[J[J[b>>2]+40>>2]](b,d,J[a+24>>2]);b=J[a+68>>2];ua[J[J[b>>2]+12>>2]](b,d,J[a+24>>2]);J[e+188>>2]=0;b=J[a+8>>2]}c=c+1|0;if((c|0)<(b|0)){continue}break}}b=J[a+16>>2];if(!(b?!b|!K[a+20|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+16>>2]=0;H[a+20|0]=1;J[a+8>>2]=0;J[a+12>>2]=0;return a|0}function ig(a,b,c,d){a=a|0;b=Q(b);c=Q(c);d=d|0;var e=Q(0),f=Q(0);J[a+20>>2]=1065353216;J[a+24>>2]=1065353216;J[a+60>>2]=d;J[a+28>>2]=1065353216;J[a+32>>2]=0;f=b;e=c;a:{b:{switch(d|0){case 0:f=c;e=b;break a;case 1:break a;default:break b}}e=b;b=c}N[a+36>>2]=f;J[a+48>>2]=0;N[a+44>>2]=b;N[a+40>>2]=e;b=Q(ua[J[J[a>>2]+48>>2]](a));c=Q(ua[J[J[a>>2]+48>>2]](a));e=Q(ua[J[J[a>>2]+48>>2]](a));N[a+36>>2]=N[a+36>>2]-b;N[a+40>>2]=N[a+40>>2]-c;N[a+44>>2]=N[a+44>>2]-e}function Uh(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=Q(0),n=0;l=sa-16|0;sa=l;ua[J[8262]](4109);ua[J[J[a>>2]+32>>2]](a,b,c,d,e,f,g,h,i);j=J[a+184>>2];k=J[h+20>>2];k=(j|0)>(k|0)?j:k;a:{if((k|0)<=0){break a}n=k-1|0;j=0;while(1){m=Q(ua[J[J[a>>2]+40>>2]](a,j,b,c,d,e,f,g,h,i));N[a+228>>2]=m;if((j|0)>=(n|0)|N[h+92>>2]>=m){break a}j=j+1|0;if((k|0)!=(j|0)){continue}break}}ua[J[8263]]();sa=l+16|0;return Q(Q(0))}function Ng(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0),e=0,f=Q(0),g=Q(0),h=Q(0),i=Q(0);c=Q(ua[J[J[a>>2]+48>>2]](a));d=Q(ua[J[J[a>>2]+48>>2]](a));f=Q(ua[J[J[a>>2]+48>>2]](a));g=N[b>>2];h=N[b+4>>2];i=N[b+8>>2];J[a+48>>2]=0;N[a+44>>2]=Q(i*N[a+28>>2])-f;N[a+40>>2]=Q(h*N[a+24>>2])-d;N[a+36>>2]=Q(g*N[a+20>>2])-c;c=N[b>>2];d=N[b+4>>2];e=c>2]>(e?c:d)?!e:2)<<2)+b>>2]*Q(.10000000149011612));if(Q(ua[J[J[a>>2]+48>>2]](a))>c){ua[J[J[a>>2]+44>>2]](a,c)}}function Fh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;h=J[b+8>>2];if((h|0)>0){d=J[a+16>>2];j=J[b+16>>2];a=0;while(1){c=J[(e<<2)+j>>2];a:{if(!(K[c+204|0]&3)){b=a;i=b<<3;f=i+d|0;g=J[f>>2];if((b|0)!=(g|0)){while(1){b=(g<<3)+d|0;J[f>>2]=J[b>>2];b=J[b>>2];f=(b<<3)+d|0;g=J[f>>2];if((b|0)!=(g|0)){continue}break}}J[c+208>>2]=b;J[(d+i|0)+4>>2]=e;J[c+212>>2]=-1;a=a+1|0;break a}J[c+208>>2]=-1;J[c+212>>2]=-2}e=e+1|0;if((h|0)!=(e|0)){continue}break}}}function xn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;J[8462]=J[8462]-1;ua[J[J[a>>2]+20>>2]](a,b);c=J[b+864>>2];e=c<<2;f=J[a+20>>2];d=e+f|0;h=J[d>>2];i=d;d=J[a+12>>2]-1|0;g=d<<2;J[i>>2]=J[f+g>>2];J[J[a+20>>2]+g>>2]=h;J[J[J[a+20>>2]+e>>2]+864>>2]=c;J[a+12>>2]=d;a=J[a+72>>2];c=J[a+16>>2];if(!(c>>>0>b>>>0|c+P(J[a>>2],J[a+4>>2])>>>0<=b>>>0)){J[b>>2]=J[a+12>>2];J[a+12>>2]=b;J[a+8>>2]=J[a+8>>2]+1;return}if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}}function el(a,b){a=a|0;b=b|0;var c=Q(0),d=0,e=Q(0),f=Q(0);d=ua[J[J[a>>2]+28>>2]](a)|0;c=Q(N[d+8>>2]-N[b+8>>2]);e=Q(c*c);c=Q(N[d>>2]-N[b>>2]);f=Q(c*c);c=Q(N[d+4>>2]-N[b+4>>2]);if(Q(e+Q(f+Q(c*c)))>Q(1.1920928955078125e-7)){wc(a,b);if(K[a+69|0]){b=J[a+60>>2];ua[J[J[b>>2]>>2]](b)|0;b=J[a+60>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}}J[8456]=J[8456]+1;b=le(ua[J[8258]](172,16)|0);J[a+60>>2]=b;ke(b,J[a+56>>2],K[a+68|0],a+24|0,a+40|0);H[a+69|0]=1}}function nr(a,b,c,d){a=a|0;b=b|0;c=Q(c);d=Q(d);if((b|0)<=2){a=(b<<2)+a|0;N[a+696>>2]=d;N[a+680>>2]=c;return}c=Qa(c);a:{if(cQ(3.1415927410125732))){break a}c=Q(c+Q(-6.2831854820251465))}d=Qa(d);b:{if(dQ(3.1415927410125732))){break b}d=Q(d+Q(-6.2831854820251465))}a=P(b,88)+a|0;N[a+708>>2]=d;N[a+704>>2]=c}function Eq(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;J[a+4>>2]=b;b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;b=J[c+28>>2];J[a+32>>2]=J[c+24>>2];J[a+36>>2]=b;b=J[c+20>>2];J[a+24>>2]=J[c+16>>2];J[a+28>>2]=b;b=J[c+36>>2];J[a+40>>2]=J[c+32>>2];J[a+44>>2]=b;b=J[c+44>>2];J[a+48>>2]=J[c+40>>2];J[a+52>>2]=b;d=J[c+60>>2];b=a- -64|0;J[b>>2]=J[c+56>>2];J[b+4>>2]=d;b=J[c+52>>2];J[a+56>>2]=J[c+48>>2];J[a+60>>2]=b}function re(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0);ua[J[J[b>>2]+68>>2]](a,b,c);if(Q(ua[J[J[b>>2]+48>>2]](b))!=Q(0)){e=N[c+4>>2];d=N[c>>2];f=N[c+8>>2];g=Q(ua[J[J[b>>2]+48>>2]](b));b=Q(Q(f*f)+Q(Q(d*d)+Q(e*e)))>2]=N[a>>2]+Q(g*Q(h*d));N[a+4>>2]=N[a+4>>2]+Q(g*Q(e*d));N[a+8>>2]=N[a+8>>2]+Q(g*Q(f*d))}}function mo(a,b){a=a|0;b=b|0;var c=0,d=0;c=J[a+12>>2];J[b>>2]=J[a+8>>2];J[b+4>>2]=c;c=J[a+20>>2];J[b+8>>2]=J[a+16>>2];J[b+12>>2]=c;c=J[a+36>>2];J[b+24>>2]=J[a+32>>2];J[b+28>>2]=c;c=J[a+28>>2];J[b+16>>2]=J[a+24>>2];J[b+20>>2]=c;c=J[a+44>>2];J[b+32>>2]=J[a+40>>2];J[b+36>>2]=c;c=J[a+52>>2];J[b+40>>2]=J[a+48>>2];J[b+44>>2]=c;c=a- -64|0;d=J[c+4>>2];J[b+56>>2]=J[c>>2];J[b+60>>2]=d;c=J[a+60>>2];J[b+48>>2]=J[a+56>>2];J[b+52>>2]=c}function _g(a){a=a|0;var b=0;J[a>>2]=24384;b=J[a+80>>2];if(!(b?!b|!K[a+84|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+80>>2]=0;H[a+84|0]=1;J[a+72>>2]=0;J[a+76>>2]=0;b=J[a+60>>2];if(!(b?!b|!K[a- -64|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+60>>2]=0;H[a+64|0]=1;J[a+52>>2]=0;J[a+56>>2]=0;b=J[a+40>>2];if(!(b?!b|!K[a+44|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+40>>2]=0;H[a+44|0]=1;J[a+32>>2]=0;J[a+36>>2]=0;return a|0}function pf(a){a=a|0;var b=0;J[a>>2]=12284;b=J[a+60>>2];if(!(b?!b|!K[a- -64|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+60>>2]=0;H[a+64|0]=1;J[a+52>>2]=0;J[a+56>>2]=0;b=J[a+40>>2];if(!(b?!b|!K[a+44|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+40>>2]=0;H[a+44|0]=1;J[a+32>>2]=0;J[a+36>>2]=0;b=J[a+16>>2];if(!(b?!b|!K[a+20|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+16>>2]=0;H[a+20|0]=1;J[a+8>>2]=0;J[a+12>>2]=0;return a|0}function Me(a){a=a|0;var b=0;J[a>>2]=17788;b=J[a+56>>2];if(!(b?!b|!K[a+60|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+56>>2]=0;H[a+60|0]=1;J[a+48>>2]=0;J[a+52>>2]=0;b=J[a+36>>2];if(!(b?!b|!K[a+40|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+36>>2]=0;H[a+40|0]=1;J[a+28>>2]=0;J[a+32>>2]=0;b=J[a+16>>2];if(!(b?!b|!K[a+20|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+16>>2]=0;H[a+20|0]=1;J[a+8>>2]=0;J[a+12>>2]=0;return a|0}function Kl(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=J[b>>2];e=ua[J[J[e>>2]+56>>2]](e,28)|0;f=K[a+4|0];g=J[a+8>>2];a=J[a+12>>2];J[e>>2]=14940;J[e+4>>2]=J[b>>2];J[e+24>>2]=a;J[e+20>>2]=g;H[e+16|0]=f;J[e+12>>2]=0;H[e+8|0]=0;J[e>>2]=16676;a=J[e+4>>2];b=f?d:c;c=f?c:d;if(ua[J[J[a>>2]+24>>2]](a,J[b+8>>2],J[c+8>>2])|0){a=J[e+4>>2];a=ua[J[J[a>>2]+12>>2]](a,J[b+8>>2],J[c+8>>2])|0;H[e+8|0]=1;J[e+12>>2]=a}return e|0}function Bd(a){a=a|0;var b=0;J[a>>2]=24060;b=J[a+56>>2];if(!(b?!b|!K[a+60|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+56>>2]=0;H[a+60|0]=1;J[a+48>>2]=0;J[a+52>>2]=0;b=J[a+36>>2];if(!(b?!b|!K[a+40|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+36>>2]=0;H[a+40|0]=1;J[a+28>>2]=0;J[a+32>>2]=0;b=J[a+16>>2];if(!(b?!b|!K[a+20|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+16>>2]=0;H[a+20|0]=1;J[a+8>>2]=0;J[a+12>>2]=0;return a|0}function Gp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=sa-32|0;sa=d;e=J[b>>2];if(e>>>0<2147483632){a:{if(e>>>0<=10){H[d+27|0]=e;f=d+16|0;break a}g=(e|15)+1|0;f=La(g);J[d+24>>2]=g|-2147483648;J[d+16>>2]=f;J[d+20>>2]=e}h=Ja(f,b+4|0,e)+e|0,i=0,H[h|0]=i;J[d+12>>2]=c;ua[a|0](d+28|0,d+16|0,d+12|0);la(J[d+28>>2]);a=J[d+28>>2];ba(a|0);ba(J[d+12>>2]);if(H[d+27|0]<0){Ga(J[d+16>>2])}sa=d+32|0;return a|0}ga();D()}function Ug(a){a=a|0;var b=0,c=0;if(J[a+248>>2]>0){while(1){a:{b:{b=J[J[a+256>>2]+(c<<2)>>2];switch(J[b+220>>2]-2|0){case 0:case 3:break a;default:break b}}if(K[b+204|0]&2){break a}c:{if(N[b+504>>2]==Q(1)){J[b+472>>2]=0;J[b+476>>2]=0;J[b+480>>2]=0;J[b+484>>2]=0;break c}Gd(b)}if(N[b+508>>2]!=Q(1)){break a}J[b+488>>2]=0;J[b+492>>2]=0;J[b+496>>2]=0;J[b+500>>2]=0}c=c+1|0;if((c|0)>2]){continue}break}}}function um(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0);d=N[c+8>>2];e=N[c>>2];f=N[c+4>>2];g=Q(Q(d*N[b+72>>2])+Q(Q(e*N[b+64>>2])+Q(f*N[b+68>>2])));h=Q(Q(d*N[b+88>>2])+Q(Q(e*N[b+80>>2])+Q(f*N[b+84>>2])));c=g>2])+Q(Q(e*N[b+96>>2])+Q(f*N[b+100>>2])))>(c?h:g)?2:c)<<4)|0;c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c;c=J[b+12>>2];J[a+8>>2]=J[b+8>>2];J[a+12>>2]=c}function bl(a,b,c,d,e,f,g,h,i){a=Q(a);b=Q(b);c=Q(c);d=d|0;e=e|0;f=f|0;g=Q(g);h=Q(h);i=Q(i);var j=0,k=0;j=La(64);N[j+8>>2]=c;N[j+4>>2]=b;N[j>>2]=a;J[j+44>>2]=0;k=J[d+4>>2];J[j+12>>2]=J[d>>2];J[j+16>>2]=k;k=J[d+12>>2];J[j+20>>2]=J[d+8>>2];J[j+24>>2]=k;d=J[e+4>>2];J[j+28>>2]=J[e>>2];J[j+32>>2]=d;d=J[e+12>>2];J[j+36>>2]=J[e+8>>2];J[j+40>>2]=d;N[j+60>>2]=i;N[j+56>>2]=h;N[j+52>>2]=g;J[j+48>>2]=f;return j|0}function _c(a,b,c){var d=0,e=0,f=0,g=0;e=bc(a,b);a:{if(!e){e=0;break a}f=J[a+8>>2];if((f|0)>=0){if(!f){break a}while(1){d=J[e+32>>2];if(!d){break a}e=d;g=g+1|0;if((f|0)!=(g|0)){continue}break}break a}e=J[a>>2]}d=J[c+4>>2];J[b>>2]=J[c>>2];J[b+4>>2]=d;d=J[c+28>>2];J[b+24>>2]=J[c+24>>2];J[b+28>>2]=d;d=J[c+20>>2];J[b+16>>2]=J[c+16>>2];J[b+20>>2]=d;d=J[c+12>>2];J[b+8>>2]=J[c+8>>2];J[b+12>>2]=d;ac(a,e,b)}function ur(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;J[8456]=J[8456]+1;a=mc(ua[J[8258]](360,16)|0,3,a,b);J[a>>2]=23640;b=J[c+4>>2];J[a+300>>2]=J[c>>2];J[a+304>>2]=b;b=J[c+12>>2];J[a+308>>2]=J[c+8>>2];J[a+312>>2]=b;b=J[d+4>>2];J[a+316>>2]=J[d>>2];J[a+320>>2]=b;b=J[d+12>>2];J[a+324>>2]=J[d+8>>2];J[a+328>>2]=b;J[a+356>>2]=0;J[a+348>>2]=1050253722;J[a+352>>2]=1065353216;H[a+344|0]=0;J[a+332>>2]=0;return a|0} +function Ge(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0);c=Q(ua[J[J[a>>2]+48>>2]](a));d=Q(ua[J[J[a>>2]+48>>2]](a));e=Q(ua[J[J[a>>2]+48>>2]](a));f=N[a+24>>2];g=N[a+40>>2];h=N[a+28>>2];i=N[a+44>>2];j=N[a+20>>2];k=N[a+36>>2];tb(a,b);J[a+48>>2]=0;N[a+44>>2]=Q(Q(Q(e+i)/h)*N[a+28>>2])-e;N[a+40>>2]=Q(Q(Q(d+g)/f)*N[a+24>>2])-d;N[a+36>>2]=Q(Q(Q(c+k)/j)*N[a+20>>2])-c}function gs(a,b,c,d){a=a|0;b=Q(b);c=Q(c);d=Q(d);var e=0,f=0,g=0;f=sa-16|0;sa=f;J[8456]=J[8456]+1;e=ua[J[8258]](44,16)|0;J[f+12>>2]=0;N[f+8>>2]=d;N[f+4>>2]=c;N[f>>2]=b;J[e+12>>2]=0;J[e+16>>2]=0;J[e+4>>2]=35;J[e+8>>2]=0;J[e+20>>2]=0;J[e>>2]=20152;J[e>>2]=21216;g=J[f+4>>2];J[e+24>>2]=J[f>>2];J[e+28>>2]=g;g=J[f+12>>2];J[e+32>>2]=J[f+8>>2];J[e+36>>2]=g;J[e+40>>2]=a;J[e+4>>2]=22;sa=f+16|0;return e|0}function fk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=Q(0),g=Q(0),h=Q(0),i=0,j=Q(0),k=0,l=Q(0);if((d|0)>0){while(1){f=N[a+40>>2];g=N[a+36>>2];k=i<<4;e=k+b|0;j=N[e>>2];h=N[e+8>>2];l=Q(Y(Q(Q(j*j)+Q(h*h))));a:{if(l!=Q(0)){g=Q(g/l);h=Q(h*g);g=Q(j*g);f=N[e+4>>2]>2]>2]=h;N[e+4>>2]=f;N[e>>2]=g;i=i+1|0;if((i|0)!=(d|0)){continue}break}}}function Im(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;c=J[b>>2];c=ua[J[J[c>>2]+56>>2]](c,72)|0;e=J[b+4>>2];d=J[a+8>>2];f=J[a+12>>2];a=J[a+16>>2];J[c>>2]=14940;J[c+4>>2]=J[b>>2];J[c>>2]=14968;J[c+8>>2]=d;J[c>>2]=15092;J[c+68>>2]=a;J[c+64>>2]=f;H[c+60|0]=0;J[c+56>>2]=e;H[c+52|0]=0;H[c+28|0]=1;J[c+24>>2]=0;H[c+48|0]=1;J[c+16>>2]=0;J[c+20>>2]=0;J[c+44>>2]=0;J[c+36>>2]=0;J[c+40>>2]=0;return c|0}function af(a){a=a|0;var b=0,c=0;J[a>>2]=15092;a:{if(!K[a+52|0]){break a}b=J[a+56>>2];if(!b){break a}c=J[a+4>>2];ua[J[J[c>>2]+16>>2]](c,b)}b=J[a+44>>2];if(!(b?!b|!K[a+48|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+44>>2]=0;H[a+48|0]=1;J[a+36>>2]=0;J[a+40>>2]=0;b=J[a+24>>2];if(!(b?!b|!K[a+28|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+24>>2]=0;H[a+28|0]=1;J[a+16>>2]=0;J[a+20>>2]=0;return a|0}function _f(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;a:{b:{switch(b|0){default:d=J[a+76>>2];c=J[a+72>>2];b=J[a+80>>2];break a;case 0:J[a+72>>2]=1;J[a+76>>2]=0;J[a+80>>2]=2;c=1;b=2;break a;case 1:J[a+72>>2]=0;J[a+76>>2]=1;J[a+80>>2]=2;d=1;b=2;break a;case 2:break b}}J[a+72>>2]=0;J[a+76>>2]=2;J[a+80>>2]=1;d=2;b=1}e=c<<2;c=a+36|0;N[e+c>>2]=N[a+64>>2];N[c+(d<<2)>>2]=N[a+68>>2];N[c+(b<<2)>>2]=N[a+64>>2]}function ol(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=Q(0),g=Q(0),h=Q(0);e=sa-48|0;sa=e;ua[J[J[a>>2]+124>>2]](a,e+32|0,d);f=N[e+32>>2];g=N[e+36>>2];h=N[e+40>>2];J[b+12>>2]=0;N[b+8>>2]=h;N[b+4>>2]=g;N[b>>2]=f;J[e+12>>2]=0;N[e+8>>2]=-h;N[e+4>>2]=-g;N[e>>2]=-f;ua[J[J[a>>2]+64>>2]](e+16|0,a,e);a=J[e+28>>2];J[c+8>>2]=J[e+24>>2];J[c+12>>2]=a;a=J[e+20>>2];J[c>>2]=J[e+16>>2];J[c+4>>2]=a;sa=e+48|0}function Tk(a,b,c){a=a|0;b=Q(b);c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=0,h=0,i=0;h=a+36|0;g=J[a+60>>2];d=N[h+((g+2|0)%3<<2)>>2];a=sa-16|0;J[a+12>>2]=0;N[a+8>>2]=d;N[a+4>>2]=d;N[a>>2]=d;g=g<<2;i=g+a|0;N[i>>2]=N[g+h>>2]+N[i>>2];d=N[a+8>>2];b=Q(b*Q(.0833333283662796));e=N[a>>2];e=Q(e+e);e=Q(e*e);f=N[a+4>>2];f=Q(f+f);f=Q(f*f);N[c+8>>2]=b*Q(e+f);d=Q(d+d);d=Q(d*d);N[c+4>>2]=b*Q(e+d);N[c>>2]=b*Q(f+d)}function Id(a,b){var c=Q(0);J[a+20>>2]=0;J[a+24>>2]=0;H[a+28|0]=0;c=N[a+4>>2];a:{if(!(c>=Q(0))){break a}b=Qa(Q(b-N[a>>2]));b:{if(bQ(3.1415927410125732))){break b}b=Q(b+Q(-6.2831854820251465))}c:{if(Q(-c)>b){H[a+28|0]=1;b=Q(-Q(c+b));c=Q(1);break c}if(!(b>c)){break a}H[a+28|0]=1;b=Q(c-b);c=Q(-1)}N[a+24>>2]=c;N[a+20>>2]=b}}function Fe(a,b){a=a|0;b=Q(b);var c=Q(0),d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0);c=Q(ua[J[J[a>>2]+48>>2]](a));d=Q(ua[J[J[a>>2]+48>>2]](a));e=Q(ua[J[J[a>>2]+48>>2]](a));N[a+52>>2]=b;b=N[a+44>>2];f=N[a+40>>2];g=N[a+36>>2];h=Q(ua[J[J[a>>2]+48>>2]](a));i=Q(ua[J[J[a>>2]+48>>2]](a));j=Q(ua[J[J[a>>2]+48>>2]](a));J[a+48>>2]=0;N[a+40>>2]=Q(d+f)-i;N[a+36>>2]=Q(c+g)-h;N[a+44>>2]=Q(e+b)-j}function Ko(a,b,c,d){a=a|0;b=b|0;c=Q(c);d=d|0;var e=0,f=0;e=sa+-64|0;sa=e;J[e+12>>2]=0;J[e+16>>2]=0;J[e+24>>2]=0;J[e+28>>2]=0;J[e+20>>2]=1065353216;J[e+32>>2]=0;J[e+36>>2]=0;J[e+40>>2]=1065353216;J[e+44>>2]=0;J[e+4>>2]=0;J[e+8>>2]=0;J[e>>2]=1065353216;f=J[b+12>>2];J[e+56>>2]=J[b+8>>2];J[e+60>>2]=f;f=J[b+4>>2];J[e+48>>2]=J[b>>2];J[e+52>>2]=f;ua[J[J[a>>2]+24>>2]](a,c,e,d);sa=e- -64|0}function ll(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0);g=N[a+44>>2];h=N[a+40>>2];d=N[a+36>>2];e=Q(1);a:{b:{c:{d:{e:{switch(c|0){case 1:e=Q(-1);break b;case 2:f=Q(1);break c;case 3:f=Q(-1);break c;case 4:d=Q(1);break d;case 0:break b;case 5:break e;default:break a}}d=Q(-1)}i=d;e=Q(0);d=g;break b}e=Q(0);d=h}N[b+8>>2]=i;N[b+4>>2]=f;N[b>>2]=e;N[b+12>>2]=-d}}function Tm(a,b){a=a|0;b=b|0;var c=0,d=0,e=Q(0),f=Q(0),g=0,h=0;c=sa-32|0;sa=c;d=J[a+184>>2];e=N[d+4>>2];a:{if(e==Q(0)){break a}b=J[b>>2];if(!(ua[J[J[d>>2]+8>>2]](d,J[b+188>>2])|0)){break a}f=N[a+188>>2];d=J[a+184>>2];g=J[a+192>>2];h=J[b+192>>2];J[c+24>>2]=-1;J[c+28>>2]=-1;J[c+20>>2]=b+4;J[c+16>>2]=b;J[c+12>>2]=h;J[c+8>>2]=0;Tc(g,a+36|0,a+100|0,c+8|0,d,f)}sa=c+32|0;return e!=Q(0)|0}function Bl(a,b,c,d,e,f,g,h){a=Q(a);b=Q(b);c=Q(c);d=d|0;e=e|0;f=f|0;g=Q(g);h=Q(h);var i=0,j=0;i=La(60);N[i+8>>2]=c;N[i+4>>2]=b;N[i>>2]=a;J[i+44>>2]=1;j=J[d+4>>2];J[i+12>>2]=J[d>>2];J[i+16>>2]=j;j=J[d+12>>2];J[i+20>>2]=J[d+8>>2];J[i+24>>2]=j;d=J[e+4>>2];J[i+28>>2]=J[e>>2];J[i+32>>2]=d;d=J[e+12>>2];J[i+36>>2]=J[e+8>>2];J[i+40>>2]=d;N[i+56>>2]=h;N[i+52>>2]=g;J[i+48>>2]=f;return i|0}function ir(a,b,c){a=a|0;b=b|0;c=Q(c);var d=Q(0);a:{if((b|0)<=2){N[((b<<2)+a|0)+804>>2]=c;break a}a=P(b,88)+a|0;c=Q(c+Q(3.1415927410125732));c=Q(Q(Q(V(Q(c/Q(6.2831854820251465))))*Q(-6.2831854820251465))+c);d=Q(0);b:{if(c>=Q(6.2831854820251465)){break b}d=c;if(!(c>2]=d+Q(-3.1415927410125732)}}function eb(a){var b=0,c=0,d=0,e=0,f=Q(0);b=sa-16|0;sa=b;d=J[a+8>>2];e=J[a+12>>2];a:{if((e|0)>0|(e|0)>=0){f=Q(Q(Q(+(d>>>0)+ +(e>>>0)*4294967296)*Q(0x10000000000000000))+Q(+M[a>>2]+ +M[a+4>>2]*4294967296));break a}c=J[a>>2];a=J[a+4>>2];J[b>>2]=0-c;J[b+4>>2]=0-(a+((c|0)!=0)|0);a=!(a|c);c=d^-1;d=a+c|0;a=e^-1;J[b+8>>2]=d;J[b+12>>2]=d>>>0>>0?a+1|0:a;f=Q(-eb(b))}sa=b+16|0;return f}function vl(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0);d=N[b+40>>2];e=N[b+44>>2];f=N[b+36>>2];g=Q(ua[J[J[b>>2]+48>>2]](b));h=Q(ua[J[J[b>>2]+48>>2]](b));i=Q(ua[J[J[b>>2]+48>>2]](b));j=N[c>>2];k=N[c+4>>2];l=N[c+8>>2];J[a+12>>2]=0;e=Q(e+i);N[a+8>>2]=l>=Q(0)?e:Q(-e);d=Q(d+h);N[a+4>>2]=k>=Q(0)?d:Q(-d);d=Q(f+g);N[a>>2]=j>=Q(0)?d:Q(-d)}function pl(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0);e=N[a+44>>2];d=N[a+40>>2];f=N[a+36>>2];g=Q(ua[J[J[a>>2]+48>>2]](a));h=Q(ua[J[J[a>>2]+48>>2]](a));i=Q(ua[J[J[a>>2]+48>>2]](a));J[c+12>>2]=0;d=Q(d+h);a=b>>>1&1;N[c+4>>2]=Q(d*Q(!a|0))-Q(Q(a|0)*d);d=Q(f+g);a=b&1;N[c>>2]=Q(d*Q(!a|0))-Q(Q(a|0)*d);e=Q(e+i);a=b>>>2&1;N[c+8>>2]=Q(e*Q(!a|0))-Q(Q(a|0)*e)}function yl(a,b,c){a=a|0;b=Q(b);c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0);d=N[a+44>>2];e=N[a+40>>2];f=N[a+36>>2];g=Q(ua[J[J[a>>2]+48>>2]](a));h=Q(ua[J[J[a>>2]+48>>2]](a));i=Q(ua[J[J[a>>2]+48>>2]](a));J[c+12>>2]=0;b=Q(b/Q(12));f=Q(f+g);f=Q(f+f);f=Q(f*f);e=Q(e+h);e=Q(e+e);e=Q(e*e);N[c+8>>2]=b*Q(f+e);d=Q(d+i);d=Q(d+d);d=Q(d*d);N[c+4>>2]=b*Q(f+d);N[c>>2]=b*Q(e+d)}function ug(a){a=a|0;var b=0,c=0,d=0;a:{b:{c:{c=J[a+4>>2];a=c;if(!(a&3)){break c}b=0;if(!K[c|0]){break a}while(1){a=a+1|0;if(!(a&3)){break c}if(K[a|0]){continue}break}break b}while(1){b=a;a=a+4|0;d=J[b>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){a=b;b=a+1|0;if(K[a|0]){continue}break}}b=a-c|0}a=b+1|0;b=zb(a);if(b){a=Ja(b,c,a)}else{a=0}return a|0}function Zg(a){a=a|0;var b=0;J[a>>2]=24384;b=J[a+80>>2];if(!(b?!b|!K[a+84|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+80>>2]=0;H[a+84|0]=1;J[a+72>>2]=0;J[a+76>>2]=0;b=J[a+60>>2];if(!(b?!b|!K[a- -64|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+60>>2]=0;H[a+64|0]=1;J[a+52>>2]=0;J[a+56>>2]=0;b=J[a+40>>2];if(!(b?!b|!K[a+44|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}Ga(a)}function pe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0);h=Q(ua[J[J[a>>2]+48>>2]](a));i=Q(ua[J[J[a>>2]+48>>2]](a));j=Q(ua[J[J[a>>2]+48>>2]](a));e=N[b+52>>2];f=N[b+56>>2];g=N[b+48>>2];J[c+12>>2]=0;N[c+8>>2]=f-j;N[c+4>>2]=e-i;N[c>>2]=g-h;e=N[b+52>>2];f=N[b+56>>2];g=N[b+48>>2];J[d+12>>2]=0;N[d+8>>2]=j+f;N[d+4>>2]=i+e;N[d>>2]=h+g}function sc(a,b,c,d,e){var f=Q(0),g=0,h=Q(0);J[a+32>>2]=c;J[a+28>>2]=b;J[a+24>>2]=d;J[a+20>>2]=e;J[a+4>>2]=0;J[a+8>>2]=1065353216;J[a+12>>2]=0;J[a+16>>2]=0;J[a>>2]=22784;J[a+36>>2]=J[b+4>>2];J[a+40>>2]=J[c+4>>2];g=a,h=Q(ua[J[J[b>>2]+48>>2]](b)),N[g+44>>2]=h;f=Q(ua[J[J[c>>2]+48>>2]](c));J[a+72>>2]=1;J[a+76>>2]=1;J[a+60>>2]=-1;H[a+52|0]=0;N[a+48>>2]=f;return a}function fg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(Ka(a,J[b+8>>2],e)){if(!(J[b+28>>2]==1|J[b+4>>2]!=(c|0))){J[b+28>>2]=d}return}a:{if(!Ka(a,J[b>>2],e)){break a}if(!(J[b+16>>2]!=(c|0)&J[b+20>>2]!=(c|0))){if((d|0)!=1){break a}J[b+32>>2]=1;return}J[b+20>>2]=c;J[b+32>>2]=d;J[b+40>>2]=J[b+40>>2]+1;if(!(J[b+36>>2]!=1|J[b+24>>2]!=2)){H[b+54|0]=1}J[b+44>>2]=4}}function vh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=J[b+4>>2];J[a+264>>2]=J[b>>2];J[a+268>>2]=c;c=J[b+12>>2];J[a+272>>2]=J[b+8>>2];J[a+276>>2]=c;c=J[a+248>>2];if((c|0)>0){while(1){a:{b:{e=J[J[a+256>>2]+(d<<2)>>2];switch(J[e+220>>2]-2|0){case 0:case 3:break a;default:break b}}if(H[e+564|0]&1){break a}Db(e,b);c=J[a+248>>2]}d=d+1|0;if((c|0)>(d|0)){continue}break}}}function Cg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;a:{e=J[a+328>>2];if((e|0)<=0){break a}h=d?d:J[a+188>>2];i=J[b>>2];f=J[a+336>>2];d=0;while(1){g=(d<<2)+f|0;if(J[g>>2]!=(i|0)){d=d+1|0;if((e|0)!=(d|0)){continue}break a}break}if((d|0)>=(e|0)){break a}d=e-1|0;J[g>>2]=J[(d<<2)+f>>2];J[a+328>>2]=d;a=J[a+344>>2];ua[J[J[a>>2]+12>>2]](a,h,b,c)|0}}function tl(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0);if((d|0)>0){while(1){g=f<<4;e=g+b|0;k=N[e>>2];l=N[e+4>>2];m=N[e+8>>2];h=N[a+36>>2];i=N[a+40>>2];j=N[a+44>>2];e=c+g|0;J[e+12>>2]=0;N[e+8>>2]=m>=Q(0)?j:Q(-j);N[e+4>>2]=l>=Q(0)?i:Q(-i);N[e>>2]=k>=Q(0)?h:Q(-h);f=f+1|0;if((f|0)!=(d|0)){continue}break}}}function Ae(a,b,c,d,e){var f=0,g=0;while(1){a:{b:{if(L[e>>1]>1]|L[d>>1]>L[b+6>>1]|(L[e+4>>1]>1]|L[d+4>>1]>L[b+10>>1])){break b}if(L[e+2>>1]>1]|L[d+2>>1]>L[b+8>>1]){break b}f=J[b+12>>2];if((f|0)<0){break a}ua[J[J[c>>2]+8>>2]](c,f>>>21|0,f&2097151)}return}f=b+16|0;Ae(a,f,c,d,e);g=f;f=J[b+28>>2];b=(f|0)<0?g-(f<<4)|0:b+32|0;continue}}function yn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;a=sa-16|0;sa=a;c=J[b+844>>2];if((c|0)>0){while(1){c=P(d,208)+b|0;e=J[c+120>>2];a:{if(!e){break a}f=J[8753];if(!f){break a}ua[f|0](e)|0;J[c+120>>2]=0}c=J[b+844>>2];d=d+1|0;if((c|0)>(d|0)){continue}break}}b:{if(!c){break b}c=J[8756];if(!c){break b}J[a+12>>2]=b;ua[c|0](a+12|0)}J[b+844>>2]=0;sa=a+16|0}function gc(a,b,c,d){H[a+53|0]=1;a:{if(J[a+4>>2]!=(c|0)){break a}H[a+52|0]=1;c=J[a+16>>2];b:{if(!c){J[a+36>>2]=1;J[a+24>>2]=d;J[a+16>>2]=b;if((d|0)!=1){break a}if(J[a+48>>2]==1){break b}break a}if((b|0)==(c|0)){c=J[a+24>>2];if((c|0)==2){J[a+24>>2]=d;c=d}if(J[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}J[a+36>>2]=J[a+36>>2]+1}H[a+54|0]=1}}function Zn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=sa-48|0;sa=e;J[e+44>>2]=d;J[e+40>>2]=12212;d=J[b+12>>2];J[e+16>>2]=J[b+8>>2];J[e+20>>2]=d;d=J[b+4>>2];J[e+8>>2]=J[b>>2];J[e+12>>2]=d;b=J[c+12>>2];J[e+32>>2]=J[c+8>>2];J[e+36>>2]=b;b=J[c+4>>2];J[e+24>>2]=J[c>>2];J[e+28>>2]=b;b=e+8|0;c=e+40|0;xb(J[a+4>>2],b,c);xb(J[a+44>>2],b,c);sa=e+48|0}function Pc(a,b,c,d,e){J[a>>2]=14940;J[a+4>>2]=J[b>>2];J[a>>2]=14968;J[a>>2]=16192;H[a+68|0]=e;H[a+24|0]=1;J[a+20>>2]=0;H[a+44|0]=1;J[a+12>>2]=0;J[a+16>>2]=0;J[a+40>>2]=0;H[a- -64|0]=1;J[a+32>>2]=0;J[a+36>>2]=0;J[a+60>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;b=J[b+4>>2];H[a+76|0]=0;J[a+72>>2]=b;J[a+80>>2]=J[J[(e?d:c)+4>>2]+76>>2];Te(a,c,d);return a}function Um(a,b){a=a|0;b=b|0;var c=0,d=0,e=Q(0),f=0;c=sa-32|0;sa=c;d=J[a+216>>2];e=N[d+4>>2];a:{if(e==Q(0)){break a}b=J[b>>2];if(!(ua[J[J[d>>2]+8>>2]](d,J[b+188>>2])|0)){break a}d=J[a+216>>2];f=J[b+192>>2];J[c+24>>2]=-1;J[c+28>>2]=-1;J[c+20>>2]=b+4;J[c+16>>2]=b;J[c+12>>2]=f;J[c+8>>2]=0;Uc(a+68|0,a+132|0,c+8|0,d)}sa=c+32|0;return e!=Q(0)|0}function Ab(a,b){a:{if((b|0)>=1024){a=a*898846567431158e293;if(b>>>0<2047){b=b-1023|0;break a}a=a*898846567431158e293;b=((b|0)>=3069?3069:b)-2046|0;break a}if((b|0)>-1023){break a}a=a*2004168360008973e-307;if(b>>>0>4294965304){b=b+969|0;break a}a=a*2004168360008973e-307;b=((b|0)<=-2960?-2960:b)+1938|0}x(0,0);x(1,b+1023<<20);return a*+z()}function rg(a,b,c,d){a=a|0;b=Q(b);c=Q(c);d=d|0;var e=Q(0),f=Q(0);J[a+20>>2]=1065353216;J[a+24>>2]=1065353216;J[a+60>>2]=d;J[a+28>>2]=1065353216;J[a+32>>2]=0;f=b;e=c;a:{b:{switch(d|0){case 0:f=c;e=b;break a;case 1:break a;default:break b}}e=b;b=c}N[a+36>>2]=f;J[a+48>>2]=0;N[a+44>>2]=b;N[a+40>>2]=e;N[a+52>>2]=N[(a+36|0)+((d+2|0)%3<<2)>>2]}function Rk(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0);c=N[a+24>>2];d=N[a+40>>2];e=N[a+28>>2];f=N[a+44>>2];g=N[a+20>>2];h=N[a+36>>2];tb(a,b);i=N[b>>2];j=N[b+4>>2];k=N[b+8>>2];J[a+48>>2]=0;N[a+44>>2]=k*Q(f/e);N[a+40>>2]=j*Q(d/c);N[a+36>>2]=i*Q(h/g);N[a+52>>2]=N[(a+36|0)+((J[a+60>>2]+2|0)%3<<2)>>2]}function ng(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=sa+-64|0;sa=d;e=1;a:{if(Ka(a,b,0)){break a}e=0;if(!b){break a}b=Ta(b,29972);e=0;if(!b){break a}Fa(d+12|0,0,52);J[d+56>>2]=1;J[d+20>>2]=-1;J[d+16>>2]=a;J[d+8>>2]=b;ua[J[J[b>>2]+28>>2]](b,d+8|0,J[c>>2],1);a=J[d+32>>2];if((a|0)==1){J[c>>2]=J[d+24>>2]}e=(a|0)==1}a=e;sa=d- -64|0;return a|0}function Pi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=sa-48|0;sa=e;J[e+12>>2]=b;J[e+8>>2]=22260;b=J[c+12>>2];J[e+24>>2]=J[c+8>>2];J[e+28>>2]=b;b=J[c+4>>2];J[e+16>>2]=J[c>>2];J[e+20>>2]=b;b=J[d+12>>2];J[e+40>>2]=J[d+8>>2];J[e+44>>2]=b;b=J[d+4>>2];J[e+32>>2]=J[d>>2];J[e+36>>2]=b;a=J[a+56>>2];ua[J[J[a>>2]+8>>2]](a,e+8|0,c,d);sa=e+48|0}function rr(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;J[8456]=J[8456]+1;a=Ld(ua[J[8258]](1460,16)|0,a,b,c,d,0);J[a>>2]=23308;J[a+968>>2]=0;J[a+972>>2]=0;J[a+680>>2]=0;J[a+684>>2]=0;b=a+1144|0;J[b>>2]=0;J[b+4>>2]=0;b=a+1056|0;J[b>>2]=0;J[b+4>>2]=0;J[a+688>>2]=0;J[a+692>>2]=0;J[a+696>>2]=0;J[a+700>>2]=0;J[a+704>>2]=0;J[a+708>>2]=0;return a|0}function hs(a,b,c,d,e){a=a|0;b=b|0;c=Q(c);d=Q(d);e=Q(e);var f=0;f=sa-16|0;sa=f;J[f+12>>2]=0;N[f+8>>2]=e;N[f+4>>2]=d;N[f>>2]=c;H[a+69|0]=0;J[a+60>>2]=b;b=ua[J[J[a>>2]+28>>2]](a)|0;c=Q(N[b+8>>2]-N[f+8>>2]);d=Q(c*c);c=Q(N[b>>2]-N[f>>2]);e=Q(c*c);c=Q(N[b+4>>2]-N[f+4>>2]);if(Q(d+Q(e+Q(c*c)))>Q(1.1920928955078125e-7)){wc(a,f)}sa=f+16|0}function Ll(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=J[b>>2];a=ua[J[J[a>>2]+56>>2]](a,16)|0;J[a>>2]=14940;J[a+4>>2]=J[b>>2];J[a>>2]=14968;J[a+12>>2]=0;H[a+8|0]=0;J[a>>2]=16604;b=J[a+4>>2];if(ua[J[J[b>>2]+24>>2]](b,J[c+8>>2],J[d+8>>2])|0){b=J[a+4>>2];b=ua[J[J[b>>2]+12>>2]](b,J[c+8>>2],J[d+8>>2])|0;H[a+8|0]=1;J[a+12>>2]=b}return a|0}function zq(a,b){a=a|0;b=Q(b);var c=0,d=0;c=sa-16|0;sa=c;J[c+8>>2]=1070945621;J[c+12>>2]=0;J[c>>2]=1070945621;J[c+4>>2]=1070945621;d=J[a+192>>2];a:{if(!kd(ua[J[J[d>>2]+36>>2]](d)|0,1038)){break a}if(J[d+4>>2]==31){if(J[d+24>>2]<=0){break a}ua[J[J[d>>2]+32>>2]](d,b,c);break a}ua[J[J[d>>2]+32>>2]](d,b,c)}lc(a,b,c);sa=c+16|0}function tn(a,b,c){a=a|0;b=b|0;c=c|0;a:{b:{c:{switch(J[b+220>>2]-2|0){case 0:case 3:break c;default:break b}}a=0;switch(J[c+220>>2]-2|0){case 0:case 3:break a;default:break b}}d:{if(J[b+280>>2]){if(!(ua[J[J[b>>2]+12>>2]](b,c)|0)){break d}}a=1;if(!J[c+280>>2]){break a}if(ua[J[J[c>>2]+12>>2]](c,b)|0){break a}}a=0}return a|0}function tk(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0);bb(a,b,c);N[b+28>>2]=N[a+36>>2];N[b+32>>2]=N[a+40>>2];N[b+36>>2]=N[a+44>>2];N[b+40>>2]=N[a+48>>2];N[b+12>>2]=N[a+20>>2];N[b+16>>2]=N[a+24>>2];N[b+20>>2]=N[a+28>>2];N[b+24>>2]=N[a+32>>2];d=N[a+52>>2];J[b+48>>2]=0;N[b+44>>2]=d;a=J[a+76>>2];J[b+56>>2]=0;J[b+52>>2]=a;return 8915}function dk(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0);bb(a,b,c);N[b+28>>2]=N[a+36>>2];N[b+32>>2]=N[a+40>>2];N[b+36>>2]=N[a+44>>2];N[b+40>>2]=N[a+48>>2];N[b+12>>2]=N[a+20>>2];N[b+16>>2]=N[a+24>>2];N[b+20>>2]=N[a+28>>2];N[b+24>>2]=N[a+32>>2];d=N[a+52>>2];J[b+48>>2]=0;N[b+44>>2]=d;a=J[a+60>>2];J[b+56>>2]=0;J[b+52>>2]=a;return 8794}function Pk(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0);bb(a,b,c);N[b+28>>2]=N[a+36>>2];N[b+32>>2]=N[a+40>>2];N[b+36>>2]=N[a+44>>2];N[b+40>>2]=N[a+48>>2];N[b+12>>2]=N[a+20>>2];N[b+16>>2]=N[a+24>>2];N[b+20>>2]=N[a+28>>2];N[b+24>>2]=N[a+32>>2];d=N[a+52>>2];J[b+48>>2]=0;N[b+44>>2]=d;a=J[a+60>>2];J[b+56>>2]=0;J[b+52>>2]=a;return 8954}function cn(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=sa-16|0;sa=c;ua[J[8262]](5665);ua[J[J[a>>2]+8>>2]](a);ua[J[J[a>>2]+12>>2]](a);b=J[a+24>>2];ua[J[8262]](3934);if(b){d=J[a+68>>2];f=b,g=ua[J[J[d>>2]+36>>2]](d)|0,h=a+28|0,i=J[a+24>>2],e=J[J[b>>2]+32>>2],ua[e](f|0,g|0,h|0,i|0)}ua[J[8263]]();ua[J[8263]]();sa=c+16|0}function Ml(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=J[b>>2];e=ua[J[J[e>>2]+56>>2]](e,20)|0;f=J[b+4>>2];a=K[a+4|0];J[e>>2]=14940;J[e+4>>2]=J[b>>2];J[e>>2]=14968;H[e+16|0]=a;J[e+12>>2]=f;H[e+8|0]=0;J[e>>2]=17988;if(!f){a=J[e+4>>2];a=ua[J[J[a>>2]+12>>2]](a,J[c+8>>2],J[d+8>>2])|0;H[e+8|0]=1;J[e+12>>2]=a}return e|0}function mh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=J[a+228>>2];a:{if((c|0)<=0){break a}e=J[a+236>>2];while(1){f=(d<<2)+e|0;if(J[f>>2]!=(b|0)){d=d+1|0;if((c|0)!=(d|0)){continue}break a}break}if((c|0)<=(d|0)){break a}c=c-1|0;d=c<<2;J[f>>2]=J[d+e>>2];J[d+J[a+236>>2]>>2]=b;J[a+228>>2]=c}Dd(J[b+28>>2],b);Dd(J[b+32>>2],b)}function Vn(a,b){a=a|0;b=b|0;if(J[a+16>>2]==(0-J[a+56>>2]|0)){zf(a+4|0);zf(a+44|0);J[a+124>>2]=0;J[a+104>>2]=0;H[a+153|0]=0;H[a+154|0]=1;J[a+116>>2]=10;J[a+120>>2]=1;J[a+108>>2]=1;J[a+112>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+92>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0;J[a+144>>2]=0;J[a+148>>2]=0}}function xk(a,b){a=a|0;b=b|0;var c=Q(0),d=0,e=0,f=Q(0);e=J[a+76>>2]<<2;c=N[e+b>>2];d=e;e=a+20|0;f=Q(N[a+68>>2]*Q(c/N[d+e>>2]));N[a+68>>2]=f;d=J[a+72>>2]<<2;c=Q(N[d+b>>2]/N[e+d>>2]);d=J[a+80>>2]<<2;c=Q(N[a+64>>2]*Q(Q(c+Q(N[d+b>>2]/N[e+d>>2]))*Q(.5)));N[a+64>>2]=c;N[a+60>>2]=c/Q(Y(Q(Q(c*c)+Q(f*f))));tb(a,b)}function In(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;f=sa-16|0;sa=f;ua[J[8262]](3960);if(J[a+8>>2]>0){while(1){e=J[a+16>>2]+(d<<4)|0;a:{if(ua[J[J[b>>2]+8>>2]](b,e)|0){ua[J[J[a>>2]+12>>2]](a,J[e>>2],J[e+4>>2],c)|0;J[8458]=J[8458]-1;break a}d=d+1|0}if(J[a+8>>2]>(d|0)){continue}break}}ua[J[8263]]();sa=f+16|0}function _e(a,b,c,d,e){var f=0;J[a>>2]=14940;J[a+4>>2]=J[b>>2];J[a>>2]=14968;J[a>>2]=15696;b=J[b>>2];J[a+60>>2]=0;J[a+56>>2]=b;J[a+8>>2]=15724;f=e?c:d;J[a+48>>2]=f;c=e?d:c;J[a+44>>2]=c;b=ua[J[J[b>>2]+12>>2]](b,J[c+8>>2],J[f+8>>2])|0;J[a+72>>2]=b;c=J[a+56>>2];ua[J[J[c>>2]+20>>2]](c,b);H[a+76|0]=e;return a}function Ar(a,b,c,d,e,f){a=a|0;b=Q(b);c=Q(c);d=Q(d);e=Q(e);f=Q(f);c=Q(Q(c-b)*Q(.5));N[a+692>>2]=c;b=Qa(Q(c+b));a:{if(bQ(3.1415927410125732))){break a}b=Q(b+Q(-6.2831854820251465))}N[a+704>>2]=f;N[a+700>>2]=e;N[a+696>>2]=d;N[a+688>>2]=b}function Wj(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0);a:{switch(J[a+104>>2]){case 0:return Q(N[J[a+100>>2]+(P(J[a+72>>2],c)+b<<2)>>2]);case 5:return Q(Q(N[a+96>>2]*Q(K[J[a+100>>2]+(P(J[a+72>>2],c)+b|0)|0])));case 3:d=Q(N[a+96>>2]*Q(I[J[a+100>>2]+(P(J[a+72>>2],c)+b<<1)>>1]));break;default:break a}}return Q(d)}function wq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=J[b+4>>2];J[a+20>>2]=J[b>>2];J[a+24>>2]=f;f=J[b+12>>2];J[a+28>>2]=J[b+8>>2];J[a+32>>2]=f;b=J[c+4>>2];J[a+36>>2]=J[c>>2];J[a+40>>2]=b;b=J[c+12>>2];J[a+44>>2]=J[c+8>>2];J[a+48>>2]=b;H[a+88|0]=e;J[a+12>>2]=d;J[a+16>>2]=0;J[a+4>>2]=1065353216}function Fg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=J[b+4>>2];J[a+20>>2]=J[b>>2];J[a+24>>2]=f;f=J[b+12>>2];J[a+28>>2]=J[b+8>>2];J[a+32>>2]=f;b=J[c+4>>2];J[a+36>>2]=J[c>>2];J[a+40>>2]=b;b=J[c+12>>2];J[a+44>>2]=J[c+8>>2];J[a+48>>2]=b;H[a+88|0]=e;J[a+12>>2]=d;J[a+4>>2]=1065353216;J[a+8>>2]=0}function cl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=J[a+60>>2];if(c){c=(f=b,g=ua[J[J[c>>2]+12>>2]](c)|0,h=1,e=J[J[b>>2]+16>>2],ua[e](f|0,g|0,h|0)|0);d=J[a+60>>2];h=b,g=c,f=ua[J[J[d>>2]+16>>2]](d,J[c+8>>2],b)|0,i=1213612625,j=J[a+60>>2],e=J[J[b>>2]+20>>2],ua[e](h|0,g|0,f|0,i|0,j|0)}}function al(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=J[a+64>>2];if(c){c=(f=b,g=ua[J[J[c>>2]+8>>2]](c)|0,h=1,e=J[J[b>>2]+16>>2],ua[e](f|0,g|0,h|0)|0);d=J[a+64>>2];h=b,g=c,f=ua[J[J[d>>2]+12>>2]](d,J[c+8>>2],b)|0,i=1346456916,j=J[a+64>>2],e=J[J[b>>2]+20>>2],ua[e](h|0,g|0,f|0,i|0,j|0)}}function pi(a,b,c,d){a=a|0;b=b|0;c=Q(c);d=d|0;a:{b:{switch(d+1|0){case 0:case 6:break b;default:break a}}c:{d:{switch(b-1|0){case 1:d=a+764|0;b=2;break c;case 3:d=a+760|0;b=1;break c;case 2:d=a+752|0;b=4;break c;case 0:break d;default:break a}}d=a+756|0;b=8}N[d>>2]=c;J[a+748>>2]=b|J[a+748>>2]}}function rh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=J[a+248>>2];a:{if((c|0)<=0){break a}e=J[a+256>>2];while(1){f=(d<<2)+e|0;if(J[f>>2]!=(b|0)){d=d+1|0;if((c|0)!=(d|0)){continue}break a}break}if((c|0)<=(d|0)){break a}c=c-1|0;d=c<<2;J[f>>2]=J[d+e>>2];J[d+J[a+256>>2]>>2]=b;J[a+248>>2]=c}Vc(a,b)}function rd(a){a=a|0;var b=0;J[a>>2]=25104;b=J[a+344>>2];ua[J[J[b>>2]>>2]](b)|0;b=J[a+344>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a>>2]=25060;b=J[a+336>>2];if(!(b?!b|!K[a+340|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+336>>2]=0;H[a+340|0]=1;J[a+328>>2]=0;J[a+332>>2]=0;return fb(a)|0}function gk(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0);d=N[b+40>>2];e=N[b+36>>2];f=N[c>>2];g=N[c+8>>2];h=Q(Y(Q(Q(f*f)+Q(g*g))));a:{if(h!=Q(0)){e=Q(e/h);i=Q(g*e);e=Q(f*e);d=N[c+4>>2]>2]>2]=i;N[a+4>>2]=d;N[a>>2]=e}function kj(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0);bb(a,b,c);N[b+12>>2]=N[a+76>>2];N[b+16>>2]=N[a+80>>2];N[b+20>>2]=N[a+84>>2];N[b+24>>2]=N[a+88>>2];N[b+28>>2]=N[a+56>>2];N[b+32>>2]=N[a+60>>2];N[b+36>>2]=N[a- -64>>2];N[b+40>>2]=N[a+68>>2];d=N[a+72>>2];J[b+48>>2]=0;N[b+44>>2]=d;return 8931}function bo(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;_b((J[b+60>>2]==2?44:4)+a|0,J[b+48>>2]);d=J[b+52>>2];J[(d?d+56|0:((J[b+60>>2]<<2)+a|0)+84|0)>>2]=J[b+56>>2];d=J[b+56>>2];if(d){J[d+52>>2]=J[b+52>>2]}d=J[a+96>>2];ua[J[J[d>>2]+16>>2]](d,b,c);if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}H[a+154|0]=1}function vm(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0);bb(a,b,c);N[b+28>>2]=N[a+36>>2];N[b+32>>2]=N[a+40>>2];N[b+36>>2]=N[a+44>>2];N[b+40>>2]=N[a+48>>2];N[b+12>>2]=N[a+20>>2];N[b+16>>2]=N[a+24>>2];N[b+20>>2]=N[a+28>>2];N[b+24>>2]=N[a+32>>2];d=N[a+52>>2];J[b+48>>2]=0;N[b+44>>2]=d;return 8835}function kh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;a:{c=J[a+296>>2];if((c|0)<=0){break a}e=J[a+304>>2];while(1){f=(d<<2)+e|0;if(J[f>>2]!=(b|0)){d=d+1|0;if((c|0)!=(d|0)){continue}break a}break}if((c|0)<=(d|0)){break a}c=c-1|0;d=c<<2;J[f>>2]=J[d+e>>2];J[d+J[a+304>>2]>>2]=b;J[a+296>>2]=c}}function Sh(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;j=sa-16|0;sa=j;ua[J[8262]](5413);Q(ua[J[J[a>>2]+44>>2]](a,b,c,d,e,f,g,h,i));Q(ua[J[J[a>>2]+48>>2]](a,b,c,d,e,f,g,h,i));Q(ua[J[J[a>>2]+36>>2]](a,b,c,h));ua[J[8263]]();sa=j+16|0;return Q(Q(0))}function Hg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;a:{c=J[a+328>>2];if((c|0)<=0){break a}f=J[b>>2];d=J[a+336>>2];b=0;while(1){e=(b<<2)+d|0;if(J[e>>2]!=(f|0)){b=b+1|0;if((c|0)!=(b|0)){continue}break a}break}if((b|0)>=(c|0)){break a}b=c-1|0;J[e>>2]=J[(b<<2)+d>>2];J[a+328>>2]=b}}function Eg(a){a=Q(a);var b=0;J[8456]=J[8456]+1;b=Sa(ua[J[8258]](60,16)|0);J[b+32>>2]=0;J[b+36>>2]=0;J[b+20>>2]=1065353216;J[b+24>>2]=1065353216;J[b+4>>2]=8;J[b>>2]=21396;J[b+56>>2]=0;N[b+52>>2]=a;J[b+28>>2]=1065353216;J[b+40>>2]=0;J[b+44>>2]=0;J[b+48>>2]=0;N[b+36>>2]=a;return b|0}function Db(a,b){var c=Q(0),d=0,e=Q(0),f=Q(0),g=Q(0);c=N[a+404>>2];if(c!=Q(0)){e=N[b>>2];f=N[b+4>>2];g=N[b+8>>2];J[a+436>>2]=0;c=Q(Q(1)/c);N[a+432>>2]=g*c;N[a+428>>2]=c*f;N[a+424>>2]=c*e}d=J[b+4>>2];J[a+440>>2]=J[b>>2];J[a+444>>2]=d;d=J[b+12>>2];J[a+448>>2]=J[b+8>>2];J[a+452>>2]=d}function Ki(a,b,c,d){a=a|0;b=b|0;c=c|0;d=Q(d);var e=0;if(N[a+36>>2]>d){H[a+40|0]=1;e=J[b+4>>2];J[a+4>>2]=J[b>>2];J[a+8>>2]=e;e=J[b+12>>2];J[a+12>>2]=J[b+8>>2];J[a+16>>2]=e;b=J[c+4>>2];J[a+20>>2]=J[c>>2];J[a+24>>2]=b;b=J[c+12>>2];J[a+28>>2]=J[c+8>>2];J[a+32>>2]=b;N[a+36>>2]=d}}function Xm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=Q(0);e=sa-16|0;sa=e;d=J[a+28>>2];J[e+8>>2]=d;J[e+4>>2]=d;f=J[b+4>>2];a:{if(!f){J[b+4>>2]=e+4;break a}J[f+4>>2]=d;J[f>>2]=d}d=J[a+24>>2];g=Q(ua[J[J[d>>2]+12>>2]](d,b,c));N[a+4>>2]=N[J[a+24>>2]+4>>2];sa=e+16|0;return Q(g)}function ml(a,b,c){a=a|0;b=b|0;c=Q(c);var d=Q(0),e=Q(0),f=0;d=N[b>>2];e=N[a+36>>2];a:{if(!(d<=Q(e+c))|!(d>=Q(Q(-e)-c))){break a}d=N[b+4>>2];e=N[a+40>>2];if(!(d<=Q(e+c))|!(d>=Q(Q(-e)-c))){break a}d=N[b+8>>2];e=N[a+44>>2];if(!(d<=Q(e+c))){break a}f=d>=Q(Q(-e)-c)}return f|0}function Pq(){var a=0;a=La(64);J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=1065353216;J[a+12>>2]=0;J[a+16>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+20>>2]=1065353216;J[a+32>>2]=0;J[a+36>>2]=0;J[a+44>>2]=0;J[a+48>>2]=0;J[a+40>>2]=1065353216;J[a+52>>2]=0;J[a+56>>2]=0;J[a+60>>2]=0;return a|0}function oi(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0);a:{b:{switch(c+1|0){case 0:case 6:break b;default:break a}}c:{switch(b-1|0){case 1:return Q(N[a+764>>2]);case 3:return Q(N[a+760>>2]);case 2:return Q(N[a+752>>2]);case 0:break c;default:break a}}d=N[a+756>>2]}return Q(d)}function Vd(a,b,c,d){var e=0;J[a>>2]=23116;e=J[b+4>>2];J[a+4>>2]=J[b>>2];J[a+8>>2]=e;e=J[b+12>>2];J[a+12>>2]=J[b+8>>2];J[a+16>>2]=e;b=J[c+4>>2];J[a+20>>2]=J[c>>2];J[a+24>>2]=b;b=J[c+12>>2];J[a+28>>2]=J[c+8>>2];J[a+32>>2]=b;J[a+40>>2]=1065353216;J[a+36>>2]=d;return a}function Nl(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=J[b>>2];a=ua[J[J[a>>2]+56>>2]](a,16)|0;J[a>>2]=14940;J[a+4>>2]=J[b>>2];J[a>>2]=14968;J[a+12>>2]=0;H[a+8|0]=0;J[a>>2]=17912;b=J[a+4>>2];b=ua[J[J[b>>2]+12>>2]](b,J[c+8>>2],J[d+8>>2])|0;H[a+8|0]=1;J[a+12>>2]=b;return a|0}function kg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;if(Ka(a,J[b+8>>2],0)){hc(b,c,d);return}e=J[a+12>>2];f=a+16|0;jd(f,b,c,d);a=a+24|0;e=(e<<3)+f|0;a:{if(a>>>0>=e>>>0){break a}while(1){jd(a,b,c,d);if(K[b+54|0]){break a}a=a+8|0;if(e>>>0>a>>>0){continue}break}}}function Hb(a,b,c,d,e){var f=Q(0);f=Q(1);a:{if(b>c){break a}f=Q(0);if(b==c){break a}d=Q(d/e);if(d=b)|!(Q(b-d)>a))){return Q(Q(b-a)/d)}return aQ(0))){break a}if(!(!(a<=c)|!(Q(c-d)c?Q(0):Q(1)}return f}function bg(a,b){a=Q(a);b=Q(b);var c=0;J[8456]=J[8456]+1;c=Sa(ua[J[8258]](84,16)|0);N[c+68>>2]=b;N[c+64>>2]=a;J[c>>2]=19388;J[c+72>>2]=0;J[c+76>>2]=1;J[c+4>>2]=11;N[c+36>>2]=a;J[c+80>>2]=2;N[c+44>>2]=a;N[c+40>>2]=b;N[c+60>>2]=a/Q(Y(Q(Q(a*a)+Q(b*b))));return c|0}function ae(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;a=J[a+32>>2]+(j<<5)|0;J[c>>2]=J[a+12>>2];J[b>>2]=J[a+16>>2];J[d>>2]=J[a+28>>2];J[e>>2]=J[a+20>>2];J[h>>2]=J[a>>2];J[f>>2]=J[a+4>>2];J[g>>2]=J[a+8>>2];J[i>>2]=J[a+24>>2]}function Fi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=Q(d);var e=0;e=J[b+4>>2];J[a+4>>2]=J[b>>2];J[a+8>>2]=e;e=J[b+12>>2];J[a+12>>2]=J[b+8>>2];J[a+16>>2]=e;b=J[c+4>>2];J[a+20>>2]=J[c>>2];J[a+24>>2]=b;b=J[c+12>>2];J[a+28>>2]=J[c+8>>2];J[a+32>>2]=b;H[a+40|0]=1;N[a+36>>2]=d}function zf(a){var b=0;b=J[a>>2];if(b){cc(a,b)}b=J[a+4>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+4>>2]=0;J[a+8>>2]=-1;b=J[a+32>>2];if(!(b?!b|!K[a+36|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+32>>2]=0;H[a+36|0]=1;J[a+16>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0}function $c(a){var b=0;b=J[a>>2];if(b){cc(a,b)}b=J[a+4>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+4>>2]=0;J[a+8>>2]=-1;b=J[a+32>>2];if(!(b?!b|!K[a+36|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}H[a+36|0]=1;J[a+16>>2]=0;J[a+32>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0}function Fc(a){a=a|0;var b=0;J[a>>2]=19276;b=J[a+72>>2];if(b){$c(b);b=J[a+72>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}}b=J[a+32>>2];if(!(b?!b|!K[a+36|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+32>>2]=0;H[a+36|0]=1;J[a+24>>2]=0;J[a+28>>2]=0;return a|0}function Vm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=Q(0);d=sa-16|0;sa=d;J[d+4>>2]=-1;J[d+8>>2]=J[a+28>>2];J[d+12>>2]=J[a+20>>2];if(!J[b+4>>2]){J[b+4>>2]=d+4}e=J[a+24>>2];f=Q(ua[J[J[e>>2]+12>>2]](e,b,c));N[a+4>>2]=N[J[a+24>>2]+4>>2];sa=d+16|0;return Q(f)}function $n(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;c=sa-16|0;sa=c;J[c+8>>2]=12140;J[c+12>>2]=d;g=d+4|0;h=d+20|0;i=J[a+168>>2];j=c+8|0;vf(J[a+4>>2],b,g,h,N[d+32>>2],e,f,i,j);vf(J[a+44>>2],b,g,h,N[d+32>>2],e,f,i,j);sa=c+16|0}function kn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=(e=b,f=ua[J[J[a>>2]+16>>2]](a)|0,g=1,d=J[J[b>>2]+16>>2],ua[d](e|0,f|0,g|0)|0);g=b,f=c,e=ua[J[J[a>>2]+20>>2]](a,J[c+8>>2],b)|0,h=1245859651,i=a,d=J[J[b>>2]+20>>2],ua[d](g|0,f|0,e|0,h|0,i|0)}function Lh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=(e=b,f=ua[J[J[a>>2]+16>>2]](a)|0,g=1,d=J[J[b>>2]+16>>2],ua[d](e|0,f|0,g|0)|0);g=b,f=c,e=ua[J[J[a>>2]+20>>2]](a,J[c+8>>2],b)|0,h=1497645650,i=a,d=J[J[b>>2]+20>>2],ua[d](g|0,f|0,e|0,h|0,i|0)}function Jk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=(e=b,f=ua[J[J[a>>2]+52>>2]](a)|0,g=1,d=J[J[b>>2]+16>>2],ua[d](e|0,f|0,g|0)|0);g=b,f=c,e=ua[J[J[a>>2]+56>>2]](a,J[c+8>>2],b)|0,h=1346455635,i=a,d=J[J[b>>2]+20>>2],ua[d](g|0,f|0,e|0,h|0,i|0)}function Oq(a){a=a|0;J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=1065353216;J[a+12>>2]=0;J[a+16>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+20>>2]=1065353216;J[a+32>>2]=0;J[a+36>>2]=0;J[a+44>>2]=0;J[a+48>>2]=0;J[a+40>>2]=1065353216;J[a+52>>2]=0;J[a+56>>2]=0;J[a+60>>2]=0}function ei(a,b,c){a=a|0;b=b|0;c=c|0;Gb(a,b,c);N[b+52>>2]=N[a+300>>2];N[b+56>>2]=N[a+304>>2];N[b+60>>2]=N[a+308>>2];N[b- -64>>2]=N[a+312>>2];N[b+68>>2]=N[a+316>>2];N[b+72>>2]=N[a+320>>2];N[b+76>>2]=N[a+324>>2];N[b+80>>2]=N[a+328>>2];return 8591} +function Bh(a){a=a|0;var b=0,c=0;if(J[a+248>>2]>0){while(1){b=J[J[a+256>>2]+(c<<2)>>2];J[b+472>>2]=0;J[b+476>>2]=0;J[b+496>>2]=0;J[b+500>>2]=0;J[b+488>>2]=0;J[b+492>>2]=0;J[b+480>>2]=0;J[b+484>>2]=0;c=c+1|0;if((c|0)>2]){continue}break}}}function xq(a,b){a=a|0;b=b|0;var c=0,d=Q(0);c=J[b+4>>2];J[a+408>>2]=J[b>>2];J[a+412>>2]=c;c=J[b+12>>2];J[a+416>>2]=J[b+8>>2];J[a+420>>2]=c;J[a+632>>2]=0;d=N[a+404>>2];N[a+624>>2]=d*N[a+412>>2];N[a+620>>2]=d*N[a+408>>2];N[a+628>>2]=d*N[a+416>>2]}function ul(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0);d=N[b+40>>2];e=N[b+44>>2];g=N[c+4>>2];h=N[c+8>>2];f=N[b+36>>2];i=N[c>>2];J[a+12>>2]=0;N[a>>2]=i>=Q(0)?f:Q(-f);N[a+8>>2]=h>=Q(0)?e:Q(-e);N[a+4>>2]=g>=Q(0)?d:Q(-d)}function hq(a){a=a|0;J[a+372>>2]=0;J[a+376>>2]=0;J[a+472>>2]=0;J[a+476>>2]=0;J[a+396>>2]=0;J[a+400>>2]=0;J[a+388>>2]=0;J[a+392>>2]=0;J[a+380>>2]=0;J[a+384>>2]=0;J[a+480>>2]=0;J[a+484>>2]=0;J[a+488>>2]=0;J[a+492>>2]=0;J[a+496>>2]=0;J[a+500>>2]=0}function wn(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=sa-16|0;sa=f;J[f+12>>2]=d;J[f+8>>2]=a;a=J[((((e|0)==1?76:5260)+a|0)+P(J[J[b+4>>2]+4>>2],144)|0)+(J[J[c+4>>2]+4>>2]<<2)>>2];a=ua[J[J[a>>2]+8>>2]](a,f+8|0,b,c)|0;sa=f+16|0;return a|0}function qn(a,b){a=a|0;b=b|0;var c=0;a:{if(!b){break a}a=J[a+68>>2];c=J[a+16>>2];if(c>>>0>b>>>0|P(J[a>>2],J[a+4>>2])+c>>>0<=b>>>0){break a}J[b>>2]=J[a+12>>2];J[a+12>>2]=b;J[a+8>>2]=J[a+8>>2]+1;return}if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}}function Yi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=J[b+4>>2];J[a+52>>2]=J[b>>2];J[a+56>>2]=d;d=J[b+12>>2];J[a+60>>2]=J[b+8>>2];J[a+64>>2]=d;b=J[c+4>>2];J[a+68>>2]=J[c>>2];J[a+72>>2]=b;b=J[c+12>>2];J[a+76>>2]=J[c+8>>2];J[a+80>>2]=b;J[a+48>>2]=1}function ce(a){a=Sa(a);H[a+96|0]=0;J[a+80>>2]=-1082130432;J[a+84>>2]=-1082130432;J[a+64>>2]=1065353216;J[a+68>>2]=1065353216;J[a>>2]=20992;J[a+60>>2]=0;J[a+88>>2]=-1082130432;J[a+92>>2]=0;J[a+72>>2]=1065353216;J[a+76>>2]=0;return a}function Qg(a,b){a=a|0;b=Q(b);var c=0,d=0,e=0;d=sa-16|0;sa=d;ua[J[8262]](4095);if(J[a+296>>2]>0){while(1){e=J[J[a+304>>2]+(c<<2)>>2];ua[J[J[e>>2]+8>>2]](e,a,b);c=c+1|0;if((c|0)>2]){continue}break}}ua[J[8263]]();sa=d+16|0}function Kb(a){H[a+356|0]=1;J[a>>2]=0;H[a+312|0]=0;J[a+292>>2]=1566444395;J[a+296>>2]=1566444395;J[a+336>>2]=0;J[a+340>>2]=0;J[a+300>>2]=1566444395;J[a+304>>2]=0;J[a+344>>2]=0;J[a+348>>2]=0;H[a+352|0]=0;H[a+332|0]=K[a+332|0]&240}function Ah(a){a=a|0;var b=0,c=0,d=0;b=J[a+248>>2];if((b|0)>0){while(1){a:{b:{d=J[J[a+256>>2]+(c<<2)>>2];switch(J[d+220>>2]-2|0){case 0:case 3:break a;default:break b}}Gd(d);b=J[a+248>>2]}c=c+1|0;if((b|0)>(c|0)){continue}break}}}function ao(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=J[b+20>>2];J[c>>2]=J[b+16>>2];J[c+4>>2]=a;a=J[b+28>>2];J[c+8>>2]=J[b+24>>2];J[c+12>>2]=a;a=J[b+44>>2];J[d+8>>2]=J[b+40>>2];J[d+12>>2]=a;a=J[b+36>>2];J[d>>2]=J[b+32>>2];J[d+4>>2]=a}function Xi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=J[a+56>>2];J[b>>2]=J[a+52>>2];J[b+4>>2]=d;d=J[a+64>>2];J[b+8>>2]=J[a+60>>2];J[b+12>>2]=d;b=J[a+80>>2];J[c+8>>2]=J[a+76>>2];J[c+12>>2]=b;b=J[a+72>>2];J[c>>2]=J[a+68>>2];J[c+4>>2]=b}function Od(a,b,c){var d=0;Rd(a);d=J[a+248>>2];J[b>>2]=J[a+244>>2];J[b+4>>2]=d;d=J[a+256>>2];J[b+8>>2]=J[a+252>>2];J[b+12>>2]=d;b=J[a+272>>2];J[c+8>>2]=J[a+268>>2];J[c+12>>2]=b;b=J[a+264>>2];J[c>>2]=J[a+260>>2];J[c+4>>2]=b}function so(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=sa-32|0;sa=e;a=J[a+140>>2];if(!(H[33804]&1)){f=aa(4,31600)|0;H[33804]=1;J[8450]=f}f=J[8450];J[e+24>>2]=d;J[e+16>>2]=c;J[e+8>>2]=b;$(f|0,a|0,7459,e+8|0);sa=e+32|0}function Jh(a){a=a|0;var b=0;J[a>>2]=23996;b=J[a+556>>2];if(!(b?!b|!K[a+560|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+556>>2]=0;H[a+560|0]=1;J[a+548>>2]=0;J[a+552>>2]=0;a=fb(a);if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}}function gi(a,b,c,d){a=a|0;b=b|0;c=Q(c);d=d|0;a:{if((d|0)!=-1){break a}b:{c:{switch(b-1|0){case 0:case 1:d=a+336|0;b=1;break b;case 2:case 3:break c;default:break a}}d=a+340|0;b=2}N[d>>2]=c;J[a+332>>2]=b|J[a+332>>2]}}function fi(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0);d=Q(34028234663852886e22);a:{if((c|0)!=-1){break a}b:{switch(b-1|0){case 0:case 1:return Q(N[a+336>>2]);case 2:case 3:break b;default:break a}}d=N[a+340>>2]}return Q(d)}function Kk(a){a=a|0;var b=0,c=Q(0),d=Q(0),e=Q(0);b=sa-32|0;sa=b;ua[J[J[a>>2]+12>>2]](a,b+16|0,b+12|0);sa=b+32|0;c=N[b+24>>2];d=Q(c*c);c=N[b+16>>2];e=Q(c*c);c=N[b+20>>2];return Q(Q(N[b+12>>2]+Q(Y(Q(d+Q(e+Q(c*c)))))))}function us(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=P(e,f);g=c&65535;h=a&65535;i=P(g,h);f=(i>>>16|0)+P(f,g)|0;e=(f&65535)+P(e,h)|0;ta=(P(b,c)+j|0)+P(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function dm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=J[a+84>>2];d=J[c+8>>2];if((d|0)>0){a=0;while(1){e=J[(J[c+16>>2]+P(a,12)|0)+8>>2];if(e){ua[J[J[e>>2]+16>>2]](e,b);d=J[c+8>>2]}a=a+1|0;if((d|0)>(a|0)){continue}break}}}function hn(a,b){a=a|0;b=b|0;var c=0,d=0;d=J[a+288>>2];c=d;a:{if((d|0)<=0){break a}a=J[a+296>>2];c=0;while(1){if(J[a+(c<<2)>>2]==(b|0)){break a}c=c+1|0;if((d|0)!=(c|0)){continue}break}c=d}return(c|0)>=(d|0)|0}function hc(a,b,c){var d=0;d=J[a+16>>2];if(!d){J[a+36>>2]=1;J[a+24>>2]=c;J[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(J[a+24>>2]!=2){break a}J[a+24>>2]=c;return}H[a+54|0]=1;J[a+24>>2]=2;J[a+36>>2]=J[a+36>>2]+1}}function Ro(a){a=a|0;var b=0,c=0;J[a>>2]=31472;if(K[a+136|0]){b=J[a+140>>2];if(!(H[33796]&1)){c=aa(1,31584)|0;H[33796]=1;J[8448]=c}$(J[8448],b|0,3211,0)}ba(J[a+140>>2]);if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}}function Pg(a,b,c){a=a|0;b=b|0;c=c|0;a=0;a:{if(!(J[c+8>>2]&J[b+4>>2])|!(J[b+8>>2]&J[c+4>>2])){break a}b=J[b>>2];c=J[c>>2];if(H[b+204|0]&1&(H[c+204|0]&1)|J[b+220>>2]==2&J[c+220>>2]==2){break a}a=1}return a|0}function mc(a,b,c,d){J[a+44>>2]=0;J[a+36>>2]=0;J[a+40>>2]=1028443341;J[a+32>>2]=d;J[a+28>>2]=c;J[a+24>>2]=-1;I[a+20>>1]=1;J[a+16>>2]=2139095039;J[a+8>>2]=-1;J[a+12>>2]=-1;J[a+4>>2]=b;J[a>>2]=23876;return a}function Sa(a){J[a+12>>2]=0;J[a+16>>2]=0;J[a+4>>2]=35;J[a+8>>2]=0;J[a>>2]=19652;J[a+52>>2]=1025758986;J[a+20>>2]=1065353216;J[a+24>>2]=1065353216;J[a>>2]=19516;J[a+28>>2]=1065353216;J[a+32>>2]=0;return a}function zj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=J[a+40>>2];ua[J[J[d>>2]+56>>2]](d,b,c)|0;J[b+4>>2]=22;N[b+60>>2]=N[a+24>>2];N[b- -64>>2]=N[a+28>>2];N[b+68>>2]=N[a+32>>2];N[b+72>>2]=N[a+36>>2];return 8885}function Lg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=J[b>>2];d=J[a+88>>2];if(!(!(J[b+8>>2]&J[a+8>>2])|(!(J[a+12>>2]&J[b+4>>2])|(c|0)==(d|0)))){a=J[J[a+92>>2]+24>>2];e=ua[J[J[a>>2]+28>>2]](a,d,c)|0}return e|0}function pq(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0);c=N[b+8>>2];d=N[b+4>>2];N[a+488>>2]=Q(N[b>>2]*N[a+604>>2])+N[a+488>>2];N[a+492>>2]=Q(d*N[a+608>>2])+N[a+492>>2];N[a+496>>2]=Q(c*N[a+612>>2])+N[a+496>>2]}function uj(a,b,c){a=a|0;b=Q(b);c=c|0;var d=Q(0),e=Q(0);d=Q(ua[J[J[a>>2]+48>>2]](a));e=Q(ua[J[J[a>>2]+48>>2]](a));J[c+12>>2]=0;b=Q(e*Q(d*Q(b*Q(.4000000059604645))));N[c+8>>2]=b;N[c+4>>2]=b;N[c>>2]=b}function bb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ua[J[J[c>>2]+40>>2]](c,a)|0;e=ua[J[J[c>>2]+28>>2]](c,d)|0;J[b>>2]=e;if(e){ua[J[J[c>>2]+48>>2]](c,d)}a=J[a+4>>2];J[b+8>>2]=0;J[b+4>>2]=a;return 8814}function Qb(a){a:{switch(J[a+4>>2]){case 8:return Q(N[a+36>>2]*N[a+20>>2]);case 0:case 1:case 4:case 5:case 10:case 11:case 13:return N[a+52>>2];default:break a}}return Q(ua[J[J[a>>2]+48>>2]](a))}function Mg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;a=J[c>>2];a=J[a+252>>2]==4?a:0;e=J[b>>2];if(!(!e|J[e+252>>2]!=4)){ua[J[J[e>>2]+32>>2]](e,c,d,b)}if(a){ua[J[J[a>>2]+32>>2]](a,b,d,c)}return 0}function rj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;J[c+8>>2]=-581039253;J[c+12>>2]=0;J[c>>2]=-581039253;J[c+4>>2]=-581039253;J[d+8>>2]=1566444395;J[d+12>>2]=0;J[d>>2]=1566444395;J[d+4>>2]=1566444395}function oo(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=sa-16|0;sa=d;a=J[a+8>>2];if(!(H[33812]&1)){e=aa(3,31860)|0;H[33812]=1;J[8452]=e}e=J[8452];J[d+8>>2]=c;J[d>>2]=b;$(e|0,a|0,2251,d|0);sa=d+16|0}function Wg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=J[b>>2];d=J[a+84>>2];if(!(!(J[b+8>>2]&J[a+8>>2])|(!(J[a+12>>2]&J[b+4>>2])|(c|0)==(d|0)))){a=J[a+96>>2];e=ua[J[J[a>>2]+28>>2]](a,d,c)|0}return e|0}function hm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=J[a+52>>2];if((c|0)>0){while(1){e=J[J[a+60>>2]+(d<<2)>>2];if(e){ua[J[J[e>>2]+16>>2]](e,b);c=J[a+52>>2]}d=d+1|0;if((c|0)>(d|0)){continue}break}}}function sd(a){var b=0,c=0;a=Wb(a);J[a+252>>2]=4;J[a>>2]=25104;J[a+336>>2]=0;H[a+340|0]=1;J[a+328>>2]=0;J[a+332>>2]=0;J[8456]=J[8456]+1;b=a,c=rf(ua[J[8258]](72,16)|0),J[b+344>>2]=c;return a}function Gd(a){if(!(K[a+204|0]&3)){N[a+472>>2]=Q(N[a+424>>2]*N[a+408>>2])+N[a+472>>2];N[a+476>>2]=Q(N[a+428>>2]*N[a+412>>2])+N[a+476>>2];N[a+480>>2]=Q(N[a+432>>2]*N[a+416>>2])+N[a+480>>2]}}function td(a){a=a|0;var b=0;J[a>>2]=25060;b=J[a+336>>2];if(!(b?!b|!K[a+340|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+336>>2]=0;H[a+340|0]=1;J[a+328>>2]=0;J[a+332>>2]=0;return fb(a)|0}function kd(a,b){var c=0,d=0;c=K[a|0];d=K[b|0];a:{if(!c|(c|0)!=(d|0)){break a}while(1){d=K[b+1|0];c=K[a+1|0];if(!c){break a}b=b+1|0;a=a+1|0;if((c|0)==(d|0)){continue}break}}return c-d|0}function Kh(a){a=a|0;var b=0;J[a>>2]=23996;b=J[a+556>>2];if(!(b?!b|!K[a+560|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+556>>2]=0;H[a+560|0]=1;J[a+548>>2]=0;J[a+552>>2]=0;return fb(a)|0}function cs(a,b){a=a|0;b=b|0;var c=0,d=0;c=J[a+100>>2];J[a+100>>2]=c+1;d=J[b+12>>2];c=(c<<4)+a|0;J[c+112>>2]=J[b+8>>2];J[c+116>>2]=d;d=J[b+4>>2];J[c+104>>2]=J[b>>2];J[c+108>>2]=d;Ac(a)}function wg(a){a=a|0;var b=0;J[a>>2]=25216;b=J[a+124>>2];if(!(b?!b|!K[a+128|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+124>>2]=0;H[a+128|0]=1;J[a+116>>2]=0;J[a+120>>2]=0;return a|0}function fb(a){a=a|0;var b=0;J[a>>2]=13004;b=J[a+296>>2];if(!(b?!b|!K[a+300|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+296>>2]=0;H[a+300|0]=1;J[a+288>>2]=0;J[a+292>>2]=0;return a|0}function Og(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a=J[c>>2];a=J[a+252>>2]==4?a:0;d=J[b>>2];if(!(!d|J[d+252>>2]!=4)){ua[J[J[d>>2]+28>>2]](d,c,b)}if(a){ua[J[J[a>>2]+28>>2]](a,b,c)}return 0}function So(a){a=a|0;var b=0,c=0;J[a>>2]=31472;if(K[a+136|0]){b=J[a+140>>2];if(!(H[33796]&1)){c=aa(1,31584)|0;H[33796]=1;J[8448]=c}$(J[8448],b|0,3211,0)}ba(J[a+140>>2]);return a|0}function ko(a,b){a=a|0;b=b|0;var c=0,d=0;c=sa-16|0;sa=c;a=J[a+76>>2];if(!(H[33820]&1)){d=aa(2,32076)|0;H[33820]=1;J[8454]=d}d=J[8454];J[c+8>>2]=b;$(d|0,a|0,4677,c+8|0);sa=c+16|0}function as(){var a=0;a=sa-32|0;sa=a;if(!K[33780]){J[a+24>>2]=0;J[a+28>>2]=1;J[a+16>>2]=4096;J[a+20>>2]=4096;J[a+8>>2]=0;J[a+12>>2]=0;Lc(a+8|0);H[33780]=1}sa=a+32|0;return 33692}function io(a){a=a|0;var b=0,c=0;J[a>>2]=32056;if(K[a+72|0]){b=J[a+76>>2];if(!(H[33796]&1)){c=aa(1,31584)|0;H[33796]=1;J[8448]=c}$(J[8448],b|0,3211,0)}ba(J[a+76>>2]);return a|0}function id(a,b){var c=0;a:{if(!b){break a}b=Ta(b,30180);if(!b|J[b+8>>2]&(J[a+8>>2]^-1)){break a}if(!Ka(J[a+12>>2],J[b+12>>2],0)){break a}c=Ka(J[a+16>>2],J[b+16>>2],0)}return c}function Fb(a){var b=Q(0);b=Qa(Q(N[a>>2]+N[a+4>>2]));if(bQ(3.1415927410125732)?Q(b+Q(-6.2831854820251465)):b}function Eb(a){var b=Q(0);b=Qa(Q(N[a>>2]-N[a+4>>2]));if(bQ(3.1415927410125732)?Q(b+Q(-6.2831854820251465)):b}function zc(a){a=a|0;var b=0;J[a>>2]=21928;b=J[a+32>>2];if(!(b?!b|!K[a+36|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+32>>2]=0;H[a+36|0]=1;J[a+24>>2]=0;J[a+28>>2]=0;return a|0}function of(a){a=a|0;var b=0;J[a>>2]=12836;b=J[a+20>>2];if(!(b?!b|!K[a+24|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}J[a+20>>2]=0;H[a+24|0]=1;J[a+12>>2]=0;J[a+16>>2]=0;return a|0}function Vq(a,b,c,d){a=a|0;b=Q(b);c=Q(c);d=Q(d);var e=0;e=sa-128|0;sa=e;ua[J[J[a>>2]+8>>2]](e,a);N[e+120>>2]=d;N[e+116>>2]=c;N[e+112>>2]=b;ua[J[J[a>>2]+12>>2]](a,e);sa=e+128|0}function Wq(a,b,c,d){a=a|0;b=Q(b);c=Q(c);d=Q(d);var e=0;e=sa-128|0;sa=e;ua[J[J[a>>2]+8>>2]](e,a);N[e+104>>2]=d;N[e+100>>2]=c;N[e+96>>2]=b;ua[J[J[a>>2]+12>>2]](a,e);sa=e+128|0}function qo(a){a=a|0;var b=0,c=0;J[a>>2]=31840;if(K[a+4|0]){b=J[a+8>>2];if(!(H[33796]&1)){c=aa(1,31584)|0;H[33796]=1;J[8448]=c}$(J[8448],b|0,3211,0)}ba(J[a+8>>2]);return a|0}function gb(a){var b=0,c=0;b=J[8268];c=a+7&-8;a=b+c|0;a:{if(a>>>0<=b>>>0?c:0){break a}if(a>>>0>va()<<16>>>0){if(!(na(a|0)|0)){break a}}J[8268]=a;return b}J[8951]=48;return-1}function ql(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;if(b>>>0<=11){b=b<<2;e=J[b+18404>>2];b=J[b+18356>>2]}else{b=0}ua[J[J[a>>2]+108>>2]](a,b,c);ua[J[J[a>>2]+108>>2]](a,e,d)}function _q(a,b,c,d){a=a|0;b=Q(b);c=Q(c);d=Q(d);var e=0;e=sa-128|0;sa=e;ua[J[J[a>>2]+8>>2]](e,a);N[e+40>>2]=d;N[e+36>>2]=c;N[e+32>>2]=b;ua[J[J[a>>2]+12>>2]](a,e);sa=e+128|0}function Zq(a,b,c,d){a=a|0;b=Q(b);c=Q(c);d=Q(d);var e=0;e=sa-128|0;sa=e;ua[J[J[a>>2]+8>>2]](e,a);N[e+56>>2]=d;N[e+52>>2]=c;N[e+48>>2]=b;ua[J[J[a>>2]+12>>2]](a,e);sa=e+128|0}function Yq(a,b,c,d){a=a|0;b=Q(b);c=Q(c);d=Q(d);var e=0;e=sa-128|0;sa=e;ua[J[J[a>>2]+8>>2]](e,a);N[e+72>>2]=d;N[e+68>>2]=c;N[e+64>>2]=b;ua[J[J[a>>2]+12>>2]](a,e);sa=e+128|0}function Xq(a,b,c,d){a=a|0;b=Q(b);c=Q(c);d=Q(d);var e=0;e=sa-128|0;sa=e;ua[J[J[a>>2]+8>>2]](e,a);N[e+88>>2]=d;N[e+84>>2]=c;N[e+80>>2]=b;ua[J[J[a>>2]+12>>2]](a,e);sa=e+128|0}function $q(a,b,c,d){a=a|0;b=Q(b);c=Q(c);d=Q(d);var e=0;e=sa-128|0;sa=e;ua[J[J[a>>2]+8>>2]](e,a);N[e+24>>2]=d;N[e+20>>2]=c;N[e+16>>2]=b;ua[J[J[a>>2]+12>>2]](a,e);sa=e+128|0}function no(a){a=a|0;var b=0,c=0;J[a>>2]=32056;if(K[a+72|0]){b=J[a+76>>2];if(!(H[33796]&1)){c=aa(1,31584)|0;H[33796]=1;J[8448]=c}$(J[8448],b|0,3211,0)}ba(J[a+76>>2]);Ga(a)}function iq(a){a=a|0;var b=0,c=Q(0),d=0;b=J[a+220>>2];a:{if(K[35721]|(b|0)==4){break a}c=N[8267];if(c==Q(0)){break a}d=1;if((b&-2)==2){break a}d=N[a+224>>2]>c}return d|0}function po(a){a=a|0;var b=0,c=0;J[a>>2]=31840;if(K[a+4|0]){b=J[a+8>>2];if(!(H[33796]&1)){c=aa(1,31584)|0;H[33796]=1;J[8448]=c}$(J[8448],b|0,3211,0)}ba(J[a+8>>2]);Ga(a)}function Un(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if((b|0)!=(c|0)){d=J[J[a+4>>2]+96>>2];ua[J[J[d>>2]+8>>2]](d,J[b+36>>2],J[c+36>>2])|0;a=J[a+4>>2];J[a+120>>2]=J[a+120>>2]+1}}function ar(a,b,c,d){a=a|0;b=Q(b);c=Q(c);d=Q(d);var e=0;e=sa-128|0;sa=e;ua[J[J[a>>2]+8>>2]](e,a);N[e+8>>2]=d;N[e+4>>2]=c;N[e>>2]=b;ua[J[J[a>>2]+12>>2]](a,e);sa=e+128|0}function rn(a,b){a=a|0;b=b|0;var c=0;a=J[a+68>>2];c=J[a+12>>2];if(c){J[a+12>>2]=J[c>>2];J[a+8>>2]=J[a+8>>2]-1;return c|0}J[8456]=J[8456]+1;return ua[J[8258]](b,16)|0}function cc(a,b){var c=0;if(J[b+40>>2]){cc(a,J[b+36>>2]);cc(a,J[b+40>>2])}if(J[a>>2]==(b|0)){J[a>>2]=0}c=J[a+4>>2];if(c){J[8457]=J[8457]+1;ua[J[8259]](c)}J[a+4>>2]=b}function jd(a,b,c,d){var e=0,f=0;e=J[a+4>>2];f=J[a>>2];a=0;a:{if(!c){break a}a=e>>8;if(!(e&1)){break a}a=J[a+J[c>>2]>>2]}ua[J[J[f>>2]+28>>2]](f,b,a+c|0,e&2?d:2)}function vq(a,b){a=a|0;b=b|0;var c=0;J[a+304>>2]=J[a+304>>2]+1;c=J[b+4>>2];J[a+604>>2]=J[b>>2];J[a+608>>2]=c;c=J[b+12>>2];J[a+612>>2]=J[b+8>>2];J[a+616>>2]=c}function sq(a,b){a=a|0;b=b|0;var c=0;J[a+304>>2]=J[a+304>>2]+1;c=J[b+4>>2];J[a+372>>2]=J[b>>2];J[a+376>>2]=c;c=J[b+12>>2];J[a+380>>2]=J[b+8>>2];J[a+384>>2]=c}function rq(a,b){a=a|0;b=b|0;var c=0;J[a+304>>2]=J[a+304>>2]+1;c=J[b+4>>2];J[a+388>>2]=J[b>>2];J[a+392>>2]=c;c=J[b+12>>2];J[a+396>>2]=J[b+8>>2];J[a+400>>2]=c}function gr(a,b,c){a=a|0;b=b|0;c=Q(c);a:{if((b|0)<=2){a=a+680|0;N[(a+(b<<2)|0)+140>>2]=c;H[(a+b|0)+156|0]=1;break a}a=P(b,88)+a|0;H[a+760|0]=1;N[a+756>>2]=c}}function fr(a,b,c){a=a|0;b=b|0;c=Q(c);a:{if((b|0)<=2){a=a+680|0;N[(a+(b<<2)|0)+160>>2]=c;H[(a+b|0)+176|0]=1;break a}a=P(b,88)+a|0;H[a+768|0]=1;N[a+764>>2]=c}}function Lf(a,b){a=a|0;b=b|0;var c=0;if(!(J[a+12>>2]&J[b+4>>2])){return 0}c=1;a:{if(K[a+152|0]){break a}a=J[b>>2];if(!a){break a}c=!(K[a+204|0]&4)}return c|0}function ve(a){a=a|0;var b=0;J[a>>2]=18524;if(K[a+69|0]){b=J[a+60>>2];ua[J[J[b>>2]>>2]](b)|0;b=J[a+60>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}}return a|0}function Mf(a,b){a=a|0;b=b|0;var c=0;if(!(J[a+12>>2]&J[b+4>>2])){return 0}c=1;a:{if(K[a+88|0]){break a}a=J[b>>2];if(!a){break a}c=!(K[a+204|0]&4)}return c|0}function ch(a,b){a=a|0;b=b|0;var c=0;if(K[a+289|0]){c=J[a+216>>2];if(c){J[8457]=J[8457]+1;ua[J[8259]](c)}}J[a+216>>2]=b;H[a+289|0]=0;J[J[a+212>>2]+8>>2]=b}function Va(a){var b=0,c=0;b=a*a;c=b*a;return Q(c*(b*b)*(b*2718311493989822e-21+-.00019839334836096632)+(c*(b*.008333329385889463+-.16666666641626524)+a))}function Qh(a){a=a|0;J[8761]=23996;a=J[8900];if(!(a?!a|!K[35604]:1)){J[8457]=J[8457]+1;ua[J[8259]](a)}H[35604]=1;J[8898]=0;J[8899]=0;J[8900]=0;fb(35044)}function ak(a){a=a|0;var b=Q(0),c=Q(0);b=N[a+36>>2];c=Q(ua[J[J[a>>2]+48>>2]](a));Q(ua[J[J[a>>2]+48>>2]](a));Q(ua[J[J[a>>2]+48>>2]](a));return Q(Q(b+c))}function On(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(!c){break a}a=J[b+8>>2];if(!a){break a}ua[J[J[a>>2]>>2]](a)|0;ua[J[J[c>>2]+60>>2]](c,J[b+8>>2]);J[b+8>>2]=0}}function Io(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=Q(f);ua[J[J[a>>2]+16>>2]](a,b,c,e);ua[J[J[a>>2]+16>>2]](a,c,d,e);ua[J[J[a>>2]+16>>2]](a,d,b,e)}function sn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=sa-16|0;sa=e;J[e+12>>2]=a;J[e+8>>2]=c;J[e+4>>2]=12944;ua[J[J[b>>2]+48>>2]](b,e+4|0,d);sa=e+16|0}function lk(a,b){a=a|0;b=b|0;var c=0,d=0;d=J[b+4>>2];c=J[a+100>>2];J[c+4>>2]=J[b>>2];J[c+8>>2]=d;d=J[b+12>>2];J[c+12>>2]=J[b+8>>2];J[c+16>>2]=d;Ac(a)}function Rc(a){a=a|0;var b=0;J[a>>2]=15724;b=J[a+48>>2];ua[J[J[b>>2]+20>>2]](b,J[a+64>>2]);b=J[a+48>>2];ua[J[J[b>>2]+16>>2]](b,J[a+64>>2]);return a|0}function tb(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0),e=Q(0);c=N[b>>2];d=N[b+4>>2];e=N[b+8>>2];J[a+32>>2]=0;N[a+28>>2]=R(e);N[a+24>>2]=R(d);N[a+20>>2]=R(c)}function sb(a){a=a|0;var b=0;J[a>>2]=20860;b=J[a+60>>2];if(b){ua[J[J[b>>2]>>2]](b)|0;b=J[a+60>>2];if(b){J[8457]=J[8457]+1;ua[J[8259]](b)}}return a|0}function Oe(a){a=a|0;var b=0,c=0;J[a>>2]=16604;a:{if(!K[a+8|0]){break a}b=J[a+12>>2];if(!b){break a}c=J[a+4>>2];ua[J[J[c>>2]+16>>2]](c,b)}return a|0}function Ne(a){a=a|0;var b=0,c=0;J[a>>2]=16676;a:{if(!K[a+8|0]){break a}b=J[a+12>>2];if(!b){break a}c=J[a+4>>2];ua[J[J[c>>2]+16>>2]](c,b)}return a|0}function Mn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=sa-16|0;sa=d;J[d+12>>2]=c;J[d+8>>2]=a;J[d+4>>2]=b;J[d>>2]=12476;ua[J[J[a>>2]+48>>2]](a,d,c);sa=d+16|0}function Ke(a){a=a|0;var b=0,c=0;J[a>>2]=17912;a:{if(!K[a+8|0]){break a}b=J[a+12>>2];if(!b){break a}c=J[a+4>>2];ua[J[J[c>>2]+16>>2]](c,b)}return a|0}function Je(a){a=a|0;var b=0,c=0;J[a>>2]=17988;a:{if(!K[a+8|0]){break a}b=J[a+12>>2];if(!b){break a}c=J[a+4>>2];ua[J[J[c>>2]+16>>2]](c,b)}return a|0}function pm(a,b,c){a=a|0;b=b|0;c=c|0;a=(b<<4)+a|0;b=J[a+76>>2];J[c+8>>2]=J[a+72>>2];J[c+12>>2]=b;a=a- -64|0;b=J[a+4>>2];J[c>>2]=J[a>>2];J[c+4>>2]=b}function dg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(Ka(a,J[b+8>>2],f)){gc(b,c,d,e);return}a=J[a+8>>2];ua[J[J[a>>2]+20>>2]](a,b,c,d,e,f)}function te(a,b,c){a=Sa(a);N[a+52>>2]=b;J[a>>2]=19116;J[a+60>>2]=1;J[a+4>>2]=10;N[a+36>>2]=b;J[a+48>>2]=0;N[a+44>>2]=b;N[a+40>>2]=c*Q(.5);return a}function ld(a){var b=0,c=0;c=a>>>23&255;b=0;a:{if(c>>>0<127){break a}b=2;if(c>>>0>150){break a}c=1<<150-c;b=0;if(c-1&a){break a}b=a&c?1:2}return b}function Tq(a,b,c){a=Q(a);b=Q(b);c=Q(c);var d=0;J[8456]=J[8456]+1;d=ua[J[8258]](16,16)|0;J[d+12>>2]=0;N[d+8>>2]=c;N[d+4>>2]=b;N[d>>2]=a;return d|0}function Dn(a,b){a=a|0;b=b|0;var c=0;c=J[a+4>>2];if(!((c|0)!=J[b>>2]&(c|0)!=J[b+4>>2])){c=J[a+8>>2];ua[J[J[c>>2]+32>>2]](c,b,J[a+12>>2])}return 0}function fj(a,b,c){a=a|0;b=b|0;c=c|0;a=(b<<4)+a|0;b=J[a+116>>2];J[c+8>>2]=J[a+112>>2];J[c+12>>2]=b;b=J[a+108>>2];J[c>>2]=J[a+104>>2];J[c+4>>2]=b}function un(a,b,c){a=a|0;b=b|0;c=c|0;a=0;b=J[b+204>>2];a:{if(b&4){break a}c=J[c+204>>2];if(c&4){break a}if(!(b&3)){return 1}a=!(c&3)}return a|0}function es(){if(!K[33688]){J[8415]=0;J[8416]=0;J[8413]=35;J[8414]=0;J[8417]=0;J[8412]=20152;J[8413]=27;J[8412]=20260;H[33688]=1}return 33648}function Wa(a){var b=0;a=a*a;b=a*a;return Q(a*b*(a*2439044879627741e-20+-.001388676377460993)+(b*.04166662332373906+(a*-.499999997251031+1)))}function Ol(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=J[b>>2];a=ua[J[J[a>>2]+56>>2]](a,8)|0;J[a>>2]=14940;J[a+4>>2]=J[b>>2];J[a>>2]=17728;return a|0}function sl(a,b,c){a=a|0;b=b|0;c=c|0;if(b>>>0<=5){J[c+12>>2]=0;a=b<<2;N[c+8>>2]=N[a+18332>>2];N[c+4>>2]=N[a+18308>>2];N[c>>2]=N[a+18284>>2]}}function Qd(a,b){var c=0,d=0;d=Rd(a);c=J[a+288>>2];J[b+8>>2]=J[a+284>>2];J[b+12>>2]=c;c=J[a+280>>2];J[b>>2]=J[a+276>>2];J[b+4>>2]=c;return d}function js(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=J[a+32>>2];J[f>>2]=J[f>>2]+1;yc(a,xc(a,b,e));yc(a,xc(a,c,e));yc(a,xc(a,d,e))}function dj(a,b,c,d,e){a=a|0;b=Q(b);c=Q(c);d=Q(d);e=Q(e);N[a+232>>2]=b;N[a+236>>2]=d;N[a+228>>2]=c;N[a+240>>2]=e;J[a+304>>2]=J[a+304>>2]+4}function Kp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){f=J[f+J[b>>2]>>2]}ua[f|0](b,c,d,e)}function dn(a){a=a|0;var b=0,c=0;b=sa-16|0;sa=b;ua[J[8262]](4017);c=J[a+68>>2];ua[J[J[c>>2]+32>>2]](c,J[a+24>>2]);ua[J[8263]]();sa=b+16|0}function Hq(){if(!K[33484]){J[8351]=-1;J[8352]=0;J[8349]=1065353216;J[8350]=-1;H[33480]=1;J[8369]=0;J[8348]=30912;H[33484]=1}return 33392}function fm(){if(!K[33228]){J[8285]=1065353216;J[8286]=0;H[33224]=1;J[8305]=0;J[8284]=30760;J[8287]=-1;J[8288]=0;H[33228]=1}return 33136}function fc(a,b,c,d,e,f){var g=0,h=0;g=J[a+4>>2];h=g>>8;a=J[a>>2];if(g&1){h=J[J[d>>2]+h>>2]}ua[J[J[a>>2]+20>>2]](a,b,c,d+h|0,g&2?e:2,f)}function To(a,b,c,d,e,f,g,h,i,j){a=a|0;b=Q(b);c=Q(c);d=Q(d);e=e|0;f=f|0;g=g|0;h=Q(h);i=Q(i);j=Q(j);return ua[a|0](b,c,d,e,f,g,h,i,j)|0}function jq(a){a=a|0;J[a+472>>2]=0;J[a+476>>2]=0;J[a+496>>2]=0;J[a+500>>2]=0;J[a+488>>2]=0;J[a+492>>2]=0;J[a+480>>2]=0;J[a+484>>2]=0}function yb(a,b,c,d,e){var f=0,g=0;f=J[a+4>>2];g=f>>8;a=J[a>>2];if(f&1){g=J[J[c>>2]+g>>2]}ua[J[J[a>>2]+24>>2]](a,b,c+g|0,f&2?d:2,e)}function uh(a,b){a=a|0;b=b|0;var c=0;c=J[b+268>>2];J[a>>2]=J[b+264>>2];J[a+4>>2]=c;c=J[b+276>>2];J[a+8>>2]=J[b+272>>2];J[a+12>>2]=c}function tr(a,b){a=a|0;b=b|0;var c=0;c=J[b+4>>2];J[a+300>>2]=J[b>>2];J[a+304>>2]=c;c=J[b+12>>2];J[a+308>>2]=J[b+8>>2];J[a+312>>2]=c}function sr(a,b){a=a|0;b=b|0;var c=0;c=J[b+4>>2];J[a+316>>2]=J[b>>2];J[a+320>>2]=c;c=J[b+12>>2];J[a+324>>2]=J[b+8>>2];J[a+328>>2]=c}function fs(a){a=a|0;var b=0;J[8456]=J[8456]+1;b=ce(ua[J[8258]](104,16)|0);J[b+100>>2]=a;J[b>>2]=19780;J[b+4>>2]=3;Ac(b);return b|0}function Uj(a,b){a=a|0;b=b|0;var c=0;c=J[b+4>>2];J[a+116>>2]=J[b>>2];J[a+120>>2]=c;c=J[b+12>>2];J[a+124>>2]=J[b+8>>2];J[a+128>>2]=c}function Ln(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=sa-16|0;sa=d;J[d+12>>2]=b;J[d+8>>2]=12648;ua[J[J[a>>2]+48>>2]](a,d+8|0,c);sa=d+16|0}function La(a){var b=0;a=a>>>0<=1?1:a;a:{while(1){b=zb(a);if(b){break a}b=J[9076];if(b){ua[b|0]();continue}break}ga();D()}return b}function ss(a){a=a|0;if(H[33135]<0){Ga(J[8281])}if(H[33123]<0){Ga(J[8278])}if(H[33111]<0){Ga(J[8275])}if(H[33099]<0){Ga(J[8272])}}function Bg(a){a=a|0;if(H[35791]<0){Ga(J[8945])}if(H[35779]<0){Ga(J[8942])}if(H[35767]<0){Ga(J[8939])}if(H[35755]<0){Ga(J[8936])}}function Fp(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){e=J[e+J[b>>2]>>2]}ua[e|0](b,c,d)}function nj(a,b){a=a|0;b=b|0;var c=0;c=J[b+4>>2];J[a+76>>2]=J[b>>2];J[a+80>>2]=c;c=J[b+12>>2];J[a+84>>2]=J[b+8>>2];J[a+88>>2]=c}function ne(a,b){a=a|0;b=b|0;var c=0;c=J[b+4>>2];J[a+24>>2]=J[b>>2];J[a+28>>2]=c;c=J[b+12>>2];J[a+32>>2]=J[b+8>>2];J[a+36>>2]=c}function lg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(Ka(a,J[b+8>>2],0)){hc(b,c,d);return}a=J[a+8>>2];ua[J[J[a>>2]+28>>2]](a,b,c,d)}function Gq(){var a=0;a=La(16);J[a+8>>2]=1036831949;J[a+12>>2]=1036831949;J[a>>2]=1036831949;J[a+4>>2]=1058642330;return a|0}function Uo(a,b,c,d,e,f,g,h,i){a=a|0;b=Q(b);c=Q(c);d=Q(d);e=e|0;f=f|0;g=g|0;h=Q(h);i=Q(i);return ua[a|0](b,c,d,e,f,g,h,i)|0}function Rq(a,b,c,d){a=Q(a);b=Q(b);c=Q(c);d=Q(d);var e=0;e=La(16);N[e+12>>2]=d;N[e+8>>2]=c;N[e+4>>2]=b;N[e>>2]=a;return e|0}function qd(a){a=a|0;var b=0;J[a>>2]=25216;b=J[a+124>>2];if(!(b?!b|!K[a+128|0]:1)){J[8457]=J[8457]+1;ua[J[8259]](b)}Ga(a)}function bd(a,b){a=a|0;b=b|0;var c=0;c=sa-16|0;sa=c;J[c+12>>2]=b;a=ua[a|0](c+12|0)|0;ba(J[c+12>>2]);sa=c+16|0;return a|0}function vo(a){a=a|0;var b=0;a=J[a+140>>2];if(!(H[33796]&1)){b=aa(1,31584)|0;H[33796]=1;J[8448]=b}$(J[8448],a|0,4404,0)}function to(a){a=a|0;var b=0;a=J[a+140>>2];if(!(H[33796]&1)){b=aa(1,31584)|0;H[33796]=1;J[8448]=b}$(J[8448],a|0,4415,0)}function _b(a,b){var c=0;bc(a,b);c=J[a+4>>2];if(c){J[8457]=J[8457]+1;ua[J[8259]](c)}J[a+4>>2]=b;J[a+12>>2]=J[a+12>>2]-1}function Jo(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=Q(i);ua[J[J[a>>2]+36>>2]](a,b,c,d,h,i)}function ds(){var a=0;J[8456]=J[8456]+1;a=ce(ua[J[8258]](168,16)|0);J[a+100>>2]=0;J[a>>2]=21636;J[a+4>>2]=2;return a|0}function Bp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){d=J[d+J[b>>2]>>2]}ua[d|0](b,c)}function gm(a,b){a=a|0;b=b|0;var c=0,d=0;c=a;d=J[J[J[a+4>>2]+4>>2]+32>>2];a=J[b+36>>2];Re(c,J[(d+P(a,80)|0)+64>>2],a)}function zp(a){a=a|0;var b=0;b=La(80);H[b+72|0]=0;J[b+4>>2]=-1;J[b+76>>2]=J[a>>2];J[a>>2]=0;J[b>>2]=32028;return b|0}function pr(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;J[8456]=J[8456]+1;return Ld(ua[J[8258]](1460,16)|0,a,b,c,d,e)|0}function Aq(a,b,c){a=a|0;b=Q(b);c=Q(c);N[a+508>>2]=cQ(1)?Q(1):c;N[a+504>>2]=bQ(1)?Q(1):b}function qm(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ua[J[J[a>>2]+108>>2]](a,b,c);ua[J[J[a>>2]+108>>2]](a,(b+1|0)%3|0,d)}function yp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=a,e=ha((H[b+11|0]<0?J[b>>2]:b)|0,31960,J[c>>2])|0,J[d>>2]=e}function se(a,b){a=a|0;b=b|0;J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;J[a+(J[b+60>>2]<<2)>>2]=1065353216}function go(a,b){a=a|0;b=b|0;var c=0;a=ua[J[8260]]((a+b|0)+3|0)|0;if(a){c=(a+b|0)+3&0-b;J[c-4>>2]=a}return c|0}function Ka(a,b,c){if(!c){return J[a+4>>2]==J[b+4>>2]}if((a|0)==(b|0)){return 1}return!kd(J[a+4>>2],J[b+4>>2])}function Hp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=a,e=ha((H[b+11|0]<0?J[b>>2]:b)|0,31276,J[c>>2])|0,J[d>>2]=e}function Cp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=a,e=ha((H[b+11|0]<0?J[b>>2]:b)|0,31744,J[c>>2])|0,J[d>>2]=e}function Lp(a,b){a=a|0;b=b|0;var c=0;c=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){c=J[c+J[b>>2]>>2]}ua[c|0](b)}function mr(a,b,c){a=a|0;b=b|0;c=c|0;a:{if((b|0)<=2){H[(a+b|0)+792|0]=c;break a}H[(P(b,88)+a|0)+732|0]=c}}function jr(a,b,c){a=a|0;b=b|0;c=c|0;a:{if((b|0)<=2){H[(a+b|0)+795|0]=c;break a}H[(P(b,88)+a|0)+744|0]=c}}function hr(a,b,c){a=a|0;b=b|0;c=c|0;a:{if((b|0)<=2){H[(a+b|0)+798|0]=c;break a}H[(P(b,88)+a|0)+752|0]=c}}function Ul(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=J[b>>2];return _e(ua[J[J[a>>2]+56>>2]](a,80)|0,b,c,d,0)|0}function Sl(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=J[b>>2];return _e(ua[J[J[a>>2]+56>>2]](a,80)|0,b,c,d,1)|0}function Rl(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=J[b>>2];return Pc(ua[J[J[a>>2]+56>>2]](a,84)|0,b,c,d,0)|0}function Pl(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=J[b>>2];return Pc(ua[J[J[a>>2]+56>>2]](a,84)|0,b,c,d,1)|0}function Nf(a,b,c,d,e){a=a|0;b=Q(b);c=Q(c);d=Q(d);e=Q(e);N[a+12>>2]=e;N[a+8>>2]=d;N[a+4>>2]=c;N[a>>2]=b}function Qp(a,b){a=a|0;b=b|0;J[a+8>>2]=1065353216;J[a+12>>2]=0;J[a>>2]=1065353216;J[a+4>>2]=1065353216}function bp(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=Q(e);f=Q(f);g=Q(g);return ua[a|0](b,c,d,e,f,g)|0}function Dp(a){a=a|0;var b=0;b=La(12);H[b+4|0]=0;J[b+8>>2]=J[a>>2];J[a>>2]=0;J[b>>2]=31812;return b|0}function Yp(a,b){a=a|0;b=b|0;if(!(J[a+12>>2]&J[b+4>>2])){return 0}return(J[b+8>>2]&J[a+8>>2])!=0|0}function sh(a,b){a=a|0;b=b|0;if(!(!b|!(J[b+252>>2]&2))){ua[J[J[a>>2]+92>>2]](a,b);return}Vc(a,b)}function tg(){var a=0;a=J[8948];if(a){while(1){ua[J[a>>2]]();a=J[a+4>>2];if(a){continue}break}}}function cg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(Ka(a,J[b+8>>2],f)){gc(b,c,d,e)}}function lr(a,b,c){a=a|0;b=b|0;c=Q(c);N[((b|0)<3?((b<<2)+a|0)+892|0:(P(b,88)+a|0)+740|0)>>2]=c}function lp(a,b,c,d,e,f,g){a=a|0;b=b|0;c=Q(c);d=Q(d);e=Q(e);f=Q(f);g=Q(g);ua[a|0](b,c,d,e,f,g)}function kr(a,b,c){a=a|0;b=b|0;c=Q(c);N[((b|0)<3?((b<<2)+a|0)+876|0:(P(b,88)+a|0)+736|0)>>2]=c}function dr(a,b,c){a=a|0;b=b|0;c=Q(c);N[((b|0)<3?((b<<2)+a|0)+860|0:(P(b,88)+a|0)+772|0)>>2]=c}function dq(a,b){a=a|0;b=b|0;a=J[a+12>>2];if(!(a&J[b+4>>2])){return 0}return(a&J[b+8>>2])!=0|0}function Sq(a,b,c,d){a=a|0;b=Q(b);c=Q(c);d=Q(d);J[a+12>>2]=0;N[a+8>>2]=d;N[a+4>>2]=c;N[a>>2]=b}function hj(a){a=a|0;a=J[a+100>>2]-2|0;if(a>>>0<=2){a=J[(a<<2)+21796>>2]}else{a=0}return a|0}function mn(a,b){a=a|0;b=b|0;var c=0;c=b;b=J[a+8>>2];ua[J[b+64>>2]](c,b,J[a+4>>2]);return 0}function Xo(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=Q(g);ua[a|0](b,c,d,e,f,g)}function Xc(a,b){if(K[a+204|0]&3?b:1){if((J[a+220>>2]&-2)!=4){J[a+220>>2]=1}J[a+224>>2]=0}}function jp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ua[a|0](b,c,d,e,f)|0}function sg(a,b){a=Q(a);b=Q(b);J[8456]=J[8456]+1;return te(ua[J[8258]](64,16)|0,a,b)|0}function uk(a,b){a=a|0;b=b|0;J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=1065353216}function Tb(a,b,c){a=a|0;b=Q(b);c=c|0;J[c>>2]=0;J[c+4>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0}function $m(a,b){a=a|0;b=b|0;ua[J[J[b>>2]+32>>2]](b);ff(a,b);ua[J[J[b>>2]+36>>2]](b)}function xj(a,b,c){a=a|0;b=b|0;c=c|0;J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0}function qp(a,b,c,d,e,f){a=a|0;b=b|0;c=Q(c);d=Q(d);e=Q(e);f=Q(f);ua[a|0](b,c,d,e,f)}function rp(a,b,c,d,e){a=a|0;b=Q(b);c=Q(c);d=Q(d);e=Q(e);return ua[a|0](b,c,d,e)|0}function jn(a,b){a=a|0;b=b|0;J[a+200>>2]=b;J[a+192>>2]=b;J[a+304>>2]=J[a+304>>2]+1}function er(a,b,c){a=a|0;b=b|0;c=Q(c);N[((b|0)<3?(b<<2)+a|0:P(b,88)+a|0)+712>>2]=c}function ap(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=Q(d);e=Q(e);f=Q(f);ua[a|0](b,c,d,e,f)}function Mo(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ua[J[J[a>>2]+16>>2]](a,b,c,d)}function Mm(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=a-4|0;ua[J[J[a>>2]+8>>2]](a,b,c,d)}function $o(a,b,c,d,e){a=a|0;b=b|0;c=Q(c);d=Q(d);e=Q(e);return ua[a|0](b,c,d,e)|0}function Vo(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=Q(d);e=Q(e);return ua[a|0](b,c,d,e)|0}function Cf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ua[a|0](b,c,d,e,f)}function mp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return ua[a|0](b,c,d,e)|0}function Hr(a,b,c,d){a=a|0;b=Q(b);c=c|0;d=Q(d);ua[J[J[a>>2]+52>>2]](a,b,c,d)|0}function Cn(a,b){a=a|0;b=b|0;a=J[a+4>>2];return(a|0)==J[b>>2]|(a|0)==J[b+4>>2]}function mg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(Ka(a,J[b+8>>2],0)){hc(b,c,d)}}function Rr(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=Q(f);vb(a,b,c,d,e,f)}function sf(a,b){a=a|0;b=b|0;a=J[a+4>>2];ua[J[J[a>>2]+8>>2]](a,J[b+36>>2])|0}function Ag(a,b,c){a=a|0;b=b|0;c=Q(c);if(K[a+62|0]){$a(a);$a(a);$a(a);$a(a)}}function vs(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<>>a} +function om(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ua[J[J[a>>2]+124>>2]](a,d,b,c)}function df(a,b){a=a|0;b=b|0;a=J[a+24>>2];return ua[J[J[a>>2]+8>>2]](a,b)|0}function Oo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ua[J[J[a>>2]+108>>2]](a,b,c,d)}function Zj(a){a=a|0;J[a>>2]=20364;if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}}function Yg(a){a=a|0;J[8456]=J[8456]+1;return Ic(ua[J[8258]](64,16)|0,a)|0}function Xe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ua[J[J[a>>2]+80>>2]](a,b,c,d)}function Vr(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ua[J[J[a>>2]+32>>2]](a,b,c,d)}function Ur(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ua[J[J[a>>2]+36>>2]](a,b,c,d)}function Mr(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ua[J[J[a>>2]+88>>2]](a,b,c,d)}function Jb(a){a=a|0;J[a>>2]=23876;if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}}function yd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ua[J[J[a>>2]+8>>2]](a,b,c,d)}function sp(a,b,c,d,e){a=a|0;b=b|0;c=Q(c);d=Q(d);e=Q(e);ua[a|0](b,c,d,e)}function Sn(a,b){a=a|0;b=b|0;ua[J[J[a>>2]+8>>2]](a,b,J[J[a+8>>2]+48>>2])}function tp(a,b,c,d){a=a|0;b=Q(b);c=Q(c);d=Q(d);return ua[a|0](b,c,d)|0}function ip(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=Q(d);e=Q(e);ua[a|0](b,c,d,e)}function ep(a,b,c,d,e){a=a|0;b=b|0;c=Q(c);d=Q(d);e=e|0;ua[a|0](b,c,d,e)}function Wo(a,b,c,d,e){a=a|0;b=b|0;c=Q(c);d=d|0;e=Q(e);ua[a|0](b,c,d,e)}function Nk(a,b){a=a|0;b=Q(b);return Q(Q(Q(ua[J[J[a>>2]+16>>2]](a))*b))}function wj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((d|0)>0){Fa(c,0,d<<4)}}function ej(a){a=a|0;a=J[a+100>>2];return((a|0)==4?4:((a|0)==3)<<1)|0}function ad(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ua[a|0](b,c,d,e)}function Ub(a){a=a|0;a=sb(a);if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}}function Tp(a){a=a|0;a=Fc(a);if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}}function Ti(a){a=a|0;a=$d(a);if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}}function Rg(a){a=a|0;a=Cb(a);if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}}function Bf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua[a|0](b,c,d)|0}function ub(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Q(Q(1))}function ms(a,b){a=a|0;b=b|0;return J[(J[a+32>>2]+P(b,80)|0)+64>>2]}function ii(a,b){a=a|0;b=b|0;a=K[a+344|0]?0:3;J[b+4>>2]=a;J[b>>2]=a}function fq(a,b){a=a|0;b=b|0;a=J[a+540>>2];ua[J[J[a>>2]+8>>2]](a,b)}function bm(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Q(Q(0))}function zg(a){a=a|0;return Q(Q(Q(N[a+156>>2]*Q(.5))+N[a+152>>2]))}function mk(){J[8456]=J[8456]+1;return Wb(ua[J[8258]](324,16)|0)|0}function ln(a){a=a|0;fb(a);if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}}function gl(a){a=a|0;ve(a);if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}}function _i(a){a=a|0;zc(a);if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}}function _h(a){a=a|0;Jd(a);if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}}function Wr(){J[8456]=J[8456]+1;return Kd(ua[J[8258]](236,16)|0)|0}function Pn(a){a=a|0;pf(a);if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}}function Mj(a){a=a|0;je(a);if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}}function Jg(a){a=a|0;td(a);if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}}function Ik(a){a=a|0;Fc(a);if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}}function Gg(a){a=a|0;rd(a);if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}}function Eh(a){a=a|0;Cb(a);if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}}function Dm(a){a=a|0;Ze(a);if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}}function Cq(a,b,c){a=a|0;b=Q(b);c=Q(c);N[a+536>>2]=c;N[a+532>>2]=b}function Bm(a){a=a|0;Rc(a);if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}}function Be(a){a=a|0;Gc(a);if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}}function Qj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return xe(a,b,c,d)|0}function Gh(a,b,c){a=a|0;b=Q(b);c=c|0;ua[J[J[a>>2]+32>>2]](a,b,c)}function Yk(a,b,c){a=a|0;b=b|0;c=c|0;ua[J[J[b>>2]+68>>2]](a,b,c)}function Kr(a,b,c){a=a|0;b=b|0;c=c|0;ua[J[J[a>>2]+56>>2]](a,b,c)}function Zr(a,b){a=a|0;b=b|0;return ua[J[J[a>>2]+40>>2]](a,b)|0}function Rn(a,b,c){a=a|0;b=b|0;c=Q(c);ua[J[J[a>>2]+12>>2]](a,b)}function ro(a,b){a=a|0;b=b|0;ua[J[J[a>>2]+16>>2]](a,b,J[b>>2])}function Sm(a,b,c){a=a|0;b=b|0;c=c|0;J[a+24>>2]=c;J[a+16>>2]=b}function Rm(a,b,c){a=a|0;b=b|0;c=c|0;J[a+28>>2]=c;J[a+20>>2]=b}function kp(a,b,c,d){a=a|0;b=b|0;c=Q(c);d=Q(d);ua[a|0](b,c,d)}function ud(a,b){a=a|0;b=b|0;return J[J[a+236>>2]+(b<<2)>>2]}function hp(a,b,c,d){a=a|0;b=b|0;c=c|0;d=Q(d);ua[a|0](b,c,d)}function gp(a,b,c,d){a=a|0;b=b|0;c=Q(c);d=d|0;ua[a|0](b,c,d)}function dp(a,b,c){a=a|0;b=Q(b);c=Q(c);return ua[a|0](b,c)|0}function cb(a){a=a|0;if(a){J[8457]=J[8457]+1;ua[J[8259]](a)}}function on(a,b){a=a|0;b=b|0;return J[J[a+20>>2]+(b<<2)>>2]}function cp(a,b,c){a=a|0;b=b|0;c=Q(c);return ua[a|0](b,c)|0}function _o(a,b,c){a=a|0;b=Q(b);c=c|0;return ua[a|0](b,c)|0}function Jq(a,b){a=a|0;b=b|0;return J[J[a+12>>2]+(b<<2)>>2]}function Df(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ua[a|0](b,c,d)}function oj(a){a=a|0;a=J[a+220>>2];return(a|0)!=2&(a|0)!=5}function np(a,b,c){a=a|0;b=b|0;c=c|0;return ua[a|0](b,c)|0}function Ob(a){a=Sa(a);J[a+60>>2]=0;J[a>>2]=20860;return a}function th(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;jf(a,b,c,d)}function jj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;be(a,b,c,d)}function yg(a,b){a=a|0;b=Q(b);N[a+52>>2]=b;N[a+36>>2]=b}function sj(a){a=a|0;return Q(Q(N[a+36>>2]*N[a+20>>2]))}function pg(a,b,c){a=a|0;b=b|0;c=c|0;return Ka(a,b,0)|0}function fh(a,b){a=a|0;b=Q(b);ua[J[J[a>>2]+44>>2]](a,b)}function Ze(a){a=a|0;J[a>>2]=15696;Rc(a+8|0);return a|0}function Kq(a,b){a=a|0;b=b|0;return J[a+12>>2]+(b<<4)|0}function nn(a){a=a|0;return(J[a+12>>2]?J[a+20>>2]:0)|0}function gd(a,b){a=a|0;b=b|0;ua[J[J[a>>2]+68>>2]](a,b)}function ec(a,b){a=a|0;b=b|0;ua[J[J[a>>2]+64>>2]](a,b)}function cr(a,b){a=a|0;b=b|0;ua[J[J[a>>2]+52>>2]](a,b)}function Tr(a,b){a=a|0;b=b|0;ua[J[J[a>>2]+40>>2]](a,b)}function Qr(a,b){a=a|0;b=b|0;ua[J[J[a>>2]+16>>2]](a,b)}function Oh(a,b){a=a|0;b=b|0;ua[J[J[a>>2]+24>>2]](a,b)}function Nr(a,b){a=a|0;b=b|0;ua[J[J[a>>2]+72>>2]](a,b)}function Lr(a,b){a=a|0;b=b|0;ua[J[J[a>>2]+92>>2]](a,b)}function Jr(a,b){a=a|0;b=b|0;ua[J[J[a>>2]+60>>2]](a,b)}function Fq(a,b){a=a|0;b=b|0;ua[J[J[a>>2]+12>>2]](a,b)}function br(a){a=a|0;return ua[J[J[a>>2]+56>>2]](a)|0}function _r(a){a=a|0;return ua[J[J[a>>2]+36>>2]](a)|0}function _d(a,b){a=a|0;b=b|0;ua[J[J[a>>2]+8>>2]](a,b)}function Nn(a,b){a=a|0;b=b|0;return(P(b,208)+a|0)+4|0}function Ai(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=Q(e)}function vp(a,b){a=a|0;b=b|0;return Q(Q(ua[a|0](b)))}function Jl(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0}function ts(a){if(a){return 31-S(a-1^a)|0}return 32}function Gf(a){a=a|0;if(a){ua[J[J[a>>2]+12>>2]](a)}}function up(a,b,c){a=a|0;b=b|0;c=Q(c);ua[a|0](b,c)}function nl(a,b){a=a|0;b=Q(b);N[a+152>>2]=b;ic(a)} +function ho(a){a=a|0;if(a){ua[J[8261]](J[a-4>>2])}}function dc(a){a=a|0;if(a){ua[J[J[a>>2]+4>>2]](a)}}function Lq(a,b){a=a|0;b=b|0;ob(a,b);return a+48|0}function xg(a){a=a|0;return Q(N[J[a+8>>2]+40>>2])}function sk(a,b){a=a|0;b=Q(b);N[a+160>>2]=b;Bb(a)}function kl(a,b){a=a|0;b=Q(b);N[a+156>>2]=b;ic(a)}function fp(a,b){a=a|0;b=Q(b);return ua[a|0](b)|0}function Lk(a,b){a=a|0;b=Q(b);N[a+152>>2]=b;Bb(a)}function Ef(a,b,c){a=a|0;b=b|0;c=c|0;ua[a|0](b,c)}function Ck(a,b){a=a|0;b=Q(b);N[a+156>>2]=b;Bb(a)}function pb(a,b,c){kb(a+4|0,a+372|0,a+388|0,b,c)}function Ff(a,b){a=a|0;b=b|0;return ua[a|0](b)|0}function yq(a,b,c){a=a|0;b=Q(b);c=c|0;lc(a,b,c)}function hd(a,b,c,d){ma(a|0,b|0,8,0,c|0,-1,d|0)}function Xj(a){a=a|0;return(K[a+204|0]&2)>>>1|0}function Mq(a,b){a=a|0;b=b|0;ob(a,b);return b|0}function qe(a,b,c){a=a|0;b=b|0;c=Q(c);return 0}function Oj(a){a=a|0;return(K[a+204|0]&3)!=0|0}function pj(a){a=a|0;J[a>>2]=30816;return a|0}function le(a){a=Ce(a);J[a>>2]=20484;return a}function _j(a){a=a|0;J[a>>2]=20364;return a|0}function Md(a){a=a|0;J[a>>2]=23876;return a|0}function $e(a,b,c,d){a=a|0;b=b|0;c=c|0;d=Q(d)}function mi(a){a=a|0;return J[a+220>>2]==2|0}function Qo(a,b){a=a|0;b=b|0;Ja(a,b+8|0,128)}function Pr(a){a=a|0;ua[J[J[a>>2]+24>>2]](a)}function Po(a,b){a=a|0;b=b|0;Ja(a+8|0,b,128)}function Pb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0}function Lj(a,b){a=a|0;b=b|0;N[a+184>>2]=b|0}function yh(a){a=a|0;return J[a+4>>2]==31|0}function xr(a,b){a=a|0;b=Q(b);N[a+680>>2]=b}function wr(a,b){a=a|0;b=Q(b);N[a+684>>2]=b}function vn(a){a=a|0;return J[a+16>>2]!=0|0}function nb(a){a=a|0;return J[J[a>>2]-4>>2]}function kk(a){a=a|0;return J[a+100>>2]+4|0}function cd(a,b){a=a|0;b=b|0;ua[J[a>>2]](b)}function Zi(a){a=a|0;return J[a+48>>2]==1|0}function Hi(a,b){a=a|0;b=Q(b);N[a+276>>2]=b}function Di(a,b){a=a|0;b=Q(b);N[a+272>>2]=b}function zm(a,b){a=a|0;b=Q(b);N[a+28>>2]=b}function vi(a,b){a=a|0;b=b|0;J[a+264>>2]=b}function qs(a,b){a=a|0;b=Q(b);N[a+72>>2]=b}function qr(a,b){a=a|0;b=Q(b);N[a+16>>2]=b}function kq(a,b){a=a|0;b=b|0;J[a+564>>2]=b}function ag(a,b){a=a|0;b=Q(b);N[a+64>>2]=b}function _k(a,b){a=a|0;b=Q(b);N[a+20>>2]=b}function Zo(a){a=a|0;return J[a+8>>2]!=0|0}function Ye(a,b){a=a|0;b=Q(b);N[a+52>>2]=b}function Wi(a,b){a=a|0;b=b|0;J[a+204>>2]=b}function Qi(a){a=a|0;return J[a+56>>2]+4|0}function Pp(a,b){a=a|0;b=Q(b);N[a+80>>2]=b}function Om(a,b){a=a|0;b=Q(b);N[a+36>>2]=b}function Il(a){a=a|0;return J[a+4>>2]+52|0}function Hj(a,b){a=a|0;b=b|0;J[a+220>>2]=b}function Gm(a,b){a=a|0;b=Q(b);N[a+32>>2]=b}function Dr(a,b){a=a|0;b=Q(b);N[a+40>>2]=b}function Bq(a){a=a|0;return Q(N[a+532>>2])}function $f(a,b){a=a|0;b=Q(b);N[a+68>>2]=b}function zr(a,b){a=a|0;b=b|0;H[a+736|0]=b}function yr(a,b){a=a|0;b=b|0;H[a+737|0]=b}function oc(a,b){a=a|0;b=b|0;J[a+16>>2]=b}function kf(a){a=a|0;return Q(N[a+52>>2])}function ck(a){a=a|0;return J[a+204>>2]&1}function _m(a,b){a=a|0;b=b|0;J[a+72>>2]=b}function Zk(a){a=a|0;return Q(N[a+20>>2])}function Qq(a){a=a|0;return Q(N[a+12>>2])}function Op(a){a=a|0;return Q(N[a+80>>2])}function Gr(a,b){a=a|0;b=b|0;H[35721]=b^1}function Fn(a,b){a=a|0;b=b|0;J[a+24>>2]=b}function Er(a){a=a|0;return Q(N[a+40>>2])}function En(a,b){a=a|0;b=b|0;J[a+68>>2]=b}function sm(a,b){a=a|0;b=b|0;H[a+62|0]=b}function km(a,b){a=a|0;b=b|0;H[a+63|0]=b}function Qf(a){a=a|0;return Q(N[a+4>>2])}function Ph(a,b){a=a|0;b=b|0;J[a+8>>2]=b}function Pf(a){a=a|0;return Q(N[a+8>>2])}function Go(a,b){a=a|0;b=b|0;J[a+4>>2]=b}function wp(a,b){a=a|0;b=b|0;ua[a|0](b)}function uo(a){a=a|0;return J[a+108>>2]}function pp(a){a=a|0;return ua[a|0]()|0}function mq(a){a=a|0;return J[a+564>>2]}function ki(a){a=a|0;return J[a+748>>2]}function jo(a){a=a|0;return J[a+112>>2]}function ij(a){a=a|0;return J[a+100>>2]}function gq(a){a=a|0;return J[a+540>>2]}function fo(a){a=a|0;return J[a+836>>2]}function di(a){a=a|0;return J[a+332>>2]}function ci(a){a=a|0;return J[a+220>>2]}function bh(a){a=a|0;return J[a+216>>2]}function ah(a){a=a|0;return J[a+228>>2]}function _n(a){a=a|0;return J[a+840>>2]}function Uq(a,b){a=a|0;b=Q(b);N[a>>2]=b}function Tn(a){a=a|0;return J[a+844>>2]}function No(a){a=a|0;return J[a+200>>2]}function Ji(a){a=a|0;return J[a+192>>2]}function Bi(a){a=a|0;return J[a+264>>2]}function Af(a){a=a|0;return J[a+204>>2]}function uf(a){a=a|0;return J[a+96>>2]}function pn(a){a=a|0;return J[a+12>>2]}function hf(a){a=a|0;return J[a+56>>2]}function ed(a){a=a|0;return Q(N[a>>2])}function cf(a){a=a|0;return J[a+60>>2]}function Yc(a){a=a|0;return J[a+72>>2]}function Xf(a){a=a|0;return J[a+24>>2]}function Xb(a){a=a|0;return J[a+16>>2]}function Vf(a){a=a|0;return J[a+84>>2]}function tf(a,b){a=a|0;b=b|0;return 1}function oe(a,b,c){a=a|0;b=Q(b);c=c|0}function cj(a,b){a=a|0;b=b|0;return 0}function Nc(a){a=a|0;return J[a+4>>2]}function Mc(a){a=a|0;return J[a+8>>2]}function qq(a,b){a=a|0;b=b|0;Db(a,b)}function op(a){a=a|0;return a- -64|0}function Oa(a,b,c){a=a|0;b=b|0;c=c|0}function Aj(a,b){a=a|0;b=b|0;Xc(a,b)}function uq(a){a=a|0;return a+372|0}function tq(a){a=a|0;return a+388|0}function Tj(a){a=a|0;return a+116|0}function Sg(a){a=a|0;return Cb(a)|0}function Rj(a){a=a|0;return Gc(a)|0}function Rf(a){a=a|0;return zb(a)|0}function Of(a){a=a|0;return a+132|0}function xp(a){a=a|0;return a+32|0}function ps(a){a=a|0;return a+56|0}function nf(a){a=a|0;return a+20|0}function mj(a){a=a|0;return a+76|0}function mf(a){a=a|0;return a+36|0}function me(a){a=a|0;return a+24|0}function Yo(a){a=a|0;return a+16|0}function Yf(a){a=a|0;return a+52|0}function Wf(a){a=a|0;return a+68|0}function Tf(a){a=a|0;return a+92|0}function Sp(a){a=a|0;return a+84|0}function Sf(a){a=a|0;return a+72|0}function Rh(a){a=a|0;J[a+232>>2]=0}function Mk(a){a=a|0;J[8284]=30816}function Hf(a){a=a|0;return a+48|0}function bj(a){a=a|0;return 10115}function Zc(a){a=a|0;return a+4|0}function Pm(a){a=a|0;return a-4|0}function Jp(a){a=a|0;H[a+136|0]=1}function xl(a){a=a|0;return 1476}function wm(a){a=a|0;return 7533}function vk(a){a=a|0;return 7454}function tj(a){a=a|0;return 9188}function lj(a){a=a|0;return 9195}function jm(a){a=a|0;Oc(a);Ga(a)}function jk(a){a=a|0;return 6544}function fn(a){a=a|0;Wc(a);Ga(a)}function eo(a){a=a|0;wf(a);Ga(a)}function em(a){a=a|0;Qe(a);Ga(a)}function ek(a){a=a|0;return 9149}function Zl(a){a=a|0;Ne(a);Ga(a)}function Xl(a){a=a|0;Kc(a);Ga(a)}function Sj(a){a=a|0;return 9207}function Rp(a){a=a|0;return 7744}function Qk(a){a=a|0;return 7354}function Ni(a){a=a|0;return 9175}function Lm(a){a=a|0;af(a);Ga(a)}function Ih(a){a=a|0;Bd(a);Ga(a)}function Hl(a){a=a|0;Me(a);Ga(a)}function Dl(a){a=a|0;Ke(a);Ga(a)}function Cj(a){a=a|0;return 9166}function Ap(a){a=a|0;H[a+72|0]=1}function An(a){a=a|0;of(a);Ga(a)}function Al(a){a=a|0;Je(a);Ga(a)}function $l(a){a=a|0;Oe(a);Ga(a)}function $k(a){a=a|0;return 9172}function $j(a){a=a|0;return 1038}function zi(a){a=a|0;return 644}function ni(a){a=a|0;return 220}function gn(a){a=a|0;return 264}function Nh(a){a=a|0;return 496}function Ha(a){a=a|0;return a|0}function Ep(a){a=a|0;H[a+4|0]=1}function we(a){a=a|0;return 84}function cq(a){a=a|0;dd(33488)}function bq(a){a=a|0;Ga(fd(a))}function Xp(a){a=a|0;Ga(dd(a))}function Si(a){a=a|0;return 28}function Rb(a){a=a|0;return 60}function Qc(a){a=a|0;return 52}function Np(a){a=a|0;return 24}function Nm(a){a=a|0;Ga(a-4|0)}function Ir(a){a=a|0;fd(33232)}function De(a){a=a|0;return 12}function Bj(a){a=a|0;return 76}function $r(a){a=a|0;Kc(33692)}function wb(a){a=a|0;return 0}function rl(a){a=a|0;return 8}function ef(a,b){a=a|0;b=Q(b)}function We(a){a=a|0;return 2}function Ve(a){a=a|0;return 3}function Ue(a){a=a|0;return 1}function Ee(a){a=a|0;return 6}function Ya(a,b){a=a|0;b=b|0}function Ea(a){a=a|0;Ga(a)}function Pa(a){a=a|0;D()}function qg(){ga();D()}function _a(a){a=a|0}function Qn(){} +// EMSCRIPTEN_END_FUNCS +e=K;p(q);var ua=c([null,Mk,Ir,cq,_a,$r,dc,nb,Lp,Kp,dc,Ha,Ha,nb,Jp,cd,Ip,bd,Hp,Gp,Gf,nb,Fp,Gf,Ha,Ha,nb,Ep,cd,Dp,bd,Cp,dc,nb,Bp,dc,Ha,Ha,nb,Ap,cd,zp,bd,yp,Rf,Ff,Ea,wp,ed,vp,Uq,up,Iq,Ef,Tq,tp,ed,Qf,Pf,Sq,sp,Rq,rp,ed,Qf,Pf,Qq,Nf,qp,Pq,pp,Oq,Nq,Hf,Mq,np,Lq,_d,Fq,Eq,Df,Nc,Jq,Kq,Fr,Er,Dr,qr,Cr,mp,Br,Ar,lp,yr,Ef,zr,wr,vr,kp,xr,ur,tr,sr,rr,Uf,pr,jp,Uf,nr,ip,hr,Df,gr,hp,fr,er,dr,mr,lr,kr,jr,ir,yh,Ff,Oh,Gh,gp,yd,ad,fh,oc,Ph,es,mf,Yg,Ng,Eg,fp,yg,og,ig,ep,sg,dp,rg,bg,ag,$f,_f,rs,cp,ps,qs,bs,bp,ks,js,Cf,is,Bf,cf,hs,ap,gs,$o,fs,ds,cs,os,Xf,ns,ms,ec,ls,ad,mk,Ji,_d,Lj,mi,ci,Hj,Aj,oj,Xj,ck,Oj,Zc,Wi,Af,Hi,Di,vi,Bi,dj,Xh,Dq,_o,mq,kq,qq,Aq,zq,yq,xq,vq,sq,uq,rq,tq,hq,jq,iq,Cq,Bq,gq,pq,oq,nq,fq,as,Yr,_r,Zr,No,Af,uo,jo,fo,_n,Tn,Nn,Ha,Yo,Hf,xp,op,Xr,Wr,Ur,ad,Tr,Vr,Rr,Xo,Qr,Pr,Or,Bf,Gr,Nr,Hr,Wo,Mr,Lr,Kr,Jr,ec,gd,cr,br,ar,$q,_q,Zq,Yq,Xq,Wq,Vq,Zo,vn,Sr,oc,or,Cf,Tf,Sf,Of,fm,oc,Fg,Wf,Yf,Vf,lq,Mp,Tf,Sf,Of,Hq,wq,Wf,Yf,Vf,Gq,Nf,Nc,Mc,Zc,nf,mf,kf,hf,cf,Tl,Vo,Il,Om,Gm,zm,sm,km,Bl,Uo,wl,nl,kl,bl,To,Vk,Lk,Ck,sk,ss,If,pj,Ea,Mf,eq,Pa,dq,qg,fd,bq,Lf,aq,$p,_p,Kf,Ha,Ea,Mf,Zp,dd,Xp,Lf,Wp,Vp,Up,Yp,Jf,Fc,Tp,Fk,Ok,Kk,Nk,Dk,Sp,Ek,Rp,Qp,Pp,Op,Np,Bk,Jk,Hk,Gk,So,Ro,Qo,Po,Oo,Mo,Lo,Ko,Jo,Io,Ho,Ya,Oa,Go,Nc,Fo,Eo,Do,Co,Bo,Ao,zo,yo,xo,wo,vo,to,so,Pa,_a,_a,ro,Ya,qo,po,oo,Pa,io,no,mo,lo,ko,Pa,go,ho,Rf,Ea,wf,eo,co,bo,Yn,ao,$n,Zn,Xn,uf,uf,Wn,Vn,_a,Ha,Ea,Un,Sn,Rn,tf,tf,Ea,Oa,sf,Ea,sf,_a,Qn,pf,Pn,Gn,Jn,Ln,Xb,Xb,Zc,On,Mc,Mn,Fn,In,Kn,wb,En,Hn,Ha,Ea,Dn,Ea,Cn,Bn,of,An,wn,zn,xn,yn,tn,un,sn,pn,on,nn,Yc,Yc,rn,qn,Ea,mn,fb,ln,jn,hn,gn,lf,kn,Wc,fn,en,dn,_m,Yc,gf,an,bn,jf,Vc,cn,$m,ef,Ya,Oa,Ha,Ea,Ha,Ea,Ei,Zm,Ea,Ym,Ea,df,Xm,Ea,Ci,bf,Ea,bf,Ea,Wm,Ea,df,Vm,Ha,Ea,Um,Ea,Tm,Ha,Ea,Qm,yd,Pm,Nm,Mm,Ha,Pa,Ha,Pa,Ha,Ea,Im,af,Lm,Km,Jm,Hm,Ha,Ea,Oa,Oa,$e,Ea,Oa,Oa,Fm,Ea,Sm,Rm,Em,Ze,Dm,ym,xm,Cm,Rc,Bm,Am,sb,Ub,Xe,tb,nf,Tb,wm,Ye,kf,Qc,vm,re,um,qk,tm,rk,We,rm,Kj,Ve,Ve,qm,pm,Ue,om,nm,mm,Ea,lm,Oc,jm,Se,im,hm,Ea,gm,Qe,em,cm,bm,dm,Ea,am,Ya,Ha,Ea,Pe,Oe,$l,_l,ub,Sb,Ne,Zl,Yl,ub,Sb,Kc,Xl,Mc,Xb,Vl,Wl,Ha,Ea,Ul,Ea,Sl,Ea,Rl,Ea,Ql,Ea,Pl,Ea,Ol,Ea,Nl,Ea,Ml,Ea,Ll,Ea,Kl,Ea,Jl,ub,Ya,Me,Hl,Gl,Fl,Xb,Ea,El,Ke,Dl,Cl,ub,Sb,Je,Al,zl,ub,Sb,Ea,Ie,Ub,He,Ge,yl,xl,Fe,vl,ul,tl,Ee,sl,rl,De,ql,pl,Ee,ol,ml,ll,Gc,Be,xe,we,hl,jl,il,ve,gl,Ri,el,Qi,Tb,$k,_k,Zk,Rb,dl,fl,Oi,Yk,cl,al,Ha,Ea,ue,Ea,ue,Ea,Xk,Ha,cb,Sk,Rk,Tk,Qk,se,ef,Rb,Pk,Wk,Uk,wb,Oa,Ik,cb,Xe,xk,wk,vk,uk,Rb,tk,yk,Ak,zk,Pa,Pa,De,bb,Ub,be,lk,kk,Gj,jk,re,ok,nk,wb,wb,Pb,Oa,wb,Pb,qe,Ha,Ea,ik,cb,He,Ge,hk,ek,se,Fe,Rb,dk,bk,gk,fk,ak,Ha,Pa,Ha,cb,pe,ne,me,oe,$j,Pb,_j,Zj,Yj,Uj,Tj,Tb,Sj,Vj,Wj,Rj,Be,Qj,Ea,Pj,Ea,Nj,je,Mj,Pa,Jj,Ij,Pa,Fj,Ha,cb,Dj,ne,me,oe,Cj,Bj,zj,Ej,Ea,yj,cb,pe,uj,tj,Ye,sj,vj,xj,wj,Ha,cb,rj,nj,mj,Tb,lj,Qc,kj,qj,Ub,jj,bj,ij,hj,gj,fj,ej,Pb,qe,cj,zc,_i,aj,ae,ae,Ya,Ya,Xf,Ya,Ya,Zi,Yi,Xi,Si,$i,$d,Ti,Vi,Ui,Ha,cb,wc,Ni,Pi,Ea,Mi,Ea,Li,Ha,Ea,Yd,Ea,Oa,Oa,Ki,Ea,vc,pk,ab,Ha,Ea,Ii,Ea,Za,Ea,Gi,Ea,Oa,Oa,Fi,Pa,Pa,Ea,Td,Md,Jb,_a,Ai,xi,wi,$e,ui,ti,zi,yi,Md,Jb,Jb,si,ri,qi,pi,oi,ni,li,ki,Jb,ji,ii,hi,gi,fi,we,ei,di,bi,ai,$h,Jd,_h,Oa,Sh,Oa,Rh,Ue,Zh,Vh,Th,Wh,Yh,Uh,Qh,Pa,_a,Qc,Gb,Kh,Jh,Nh,Mh,Lh,Bd,Ih,Hh,Fh,Cb,Eh,Ch,th,sh,$g,xh,nh,mh,lh,kh,vh,uh,zh,qh,ph,rh,ch,bh,ah,ud,ud,We,Bh,ec,gd,ec,gd,eh,gh,ih,jh,oh,wh,hh,Dh,dh,Ah,Ya,Qg,_g,Zg,Xg,Ea,Wg,Vg,Sg,Rg,Tg,Ug,Ha,Ea,Pg,Ha,Ea,Og,Mg,Oa,Ea,Lg,Kg,td,Jg,Ig,Hg,rd,Gg,Dg,Cg,Bg,wg,Pa,Ag,Ya,hf,qd,zg,qd,xg,Ea,vg,pd,Ha,Ea,_a,_a,pg,Ea,ng,cg,fg,mg,Ea,dg,gg,lg,Ea,eg,hg,kg,Ea,jg]);function va(){return G.byteLength/65536|0}function Aa(Ba){Ba=Ba|0;var wa=va()|0;var xa=wa+Ba|0;if(wa=65536,"INITIAL_MEMORY should be larger than STACK_SIZE, was "+INITIAL_MEMORY+"! (STACK_SIZE="+65536+")");if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":2147483648/65536})}updateMemoryViews();INITIAL_MEMORY=wasmMemory.buffer.byteLength;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=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 initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}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(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}var wasmBinaryFile;wasmBinaryFile="<<< WASM_BINARY_FILE >>>";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(binaryFile){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{if(!response["ok"]){throw"failed to load wasm binary file at '"+binaryFile+"'"}return response["arrayBuffer"]()}).catch(()=>getBinary(binaryFile))}}return Promise.resolve().then(()=>getBinary(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>{return WebAssembly.instantiate(binary,imports)}).then(instance=>{return instance}).then(receiver,reason=>{err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}else{return instantiateArrayBuffer(binaryFile,imports,callback)}}function createWasm(){var info={"a":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["z"];addOnInit(Module["asm"]["w"]);removeRunDependency("wasm-instantiate");return exports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err("Module.instantiateWasm callback failed with error: "+e);readyPromiseReject(e)}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return`_${name}`}return name}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return{[name]:function(){return body.apply(this,arguments)}}[name]}function HandleAllocator(){this.allocated=[undefined];this.freelist=[];this.get=function(id){return this.allocated[id]};this.has=function(id){return this.allocated[id]!==undefined};this.allocate=function(handle){var id=this.freelist.pop()||this.allocated.length;this.allocated[id]=handle;return id};this.free=function(id){this.allocated[id]=undefined;this.freelist.push(id)}}var emval_handles=new HandleAllocator;function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return`${this.name}: ${this.message}`}};return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}function count_emval_handles(){var count=0;for(var i=emval_handles.reserved;i{if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handles.get(handle).value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{return emval_handles.allocate({refcount:1,value:value})}}}};var PureVirtualError=undefined;function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}var delayFunction=undefined;function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function registerInheritedInstance(class_,ptr,instance){ptr=getBasestPointer(class_,ptr);if(registeredInstances.hasOwnProperty(ptr)){throwBindingError(`Tried to register registered instance: ${ptr}`)}else{registeredInstances[ptr]=instance}}var registeredTypes={};function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function unregisterInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);if(registeredInstances.hasOwnProperty(ptr)){delete registeredInstances[ptr]}else{throwBindingError(`Tried to unregister unregistered instance: ${ptr}`)}}function detachFinalizer(handle){}var finalizationRegistry=false;function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}var registeredPointers={};function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function attachFinalizer(handle){if("undefined"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$:$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)}function __embind_create_inheriting_constructor(constructorName,wrapperType,properties){constructorName=readLatin1String(constructorName);wrapperType=requireRegisteredType(wrapperType,"wrapper");properties=Emval.toValue(properties);var arraySlice=[].slice;var registeredClass=wrapperType.registeredClass;var wrapperPrototype=registeredClass.instancePrototype;var baseClass=registeredClass.baseClass;var baseClassPrototype=baseClass.instancePrototype;var baseConstructor=registeredClass.baseClass.constructor;var ctor=createNamedFunction(constructorName,function(){registeredClass.baseClass.pureVirtualFunctions.forEach(function(name){if(this[name]===baseClassPrototype[name]){throw new PureVirtualError(`Pure virtual function ${name} must be implemented in JavaScript`)}}.bind(this));Object.defineProperty(this,"__parent",{value:wrapperPrototype});this["__construct"].apply(this,arraySlice.call(arguments))});wrapperPrototype["__construct"]=function __construct(){if(this===wrapperPrototype){throwBindingError("Pass correct 'this' to __construct")}var inner=baseConstructor["implement"].apply(undefined,[this].concat(arraySlice.call(arguments)));detachFinalizer(inner);var $$=inner.$$;inner["notifyOnDestruction"]();$$.preservePointerOnDelete=true;Object.defineProperties(this,{$$:{value:$$}});attachFinalizer(this);registerInheritedInstance(registeredClass,$$.ptr,this)};wrapperPrototype["__destruct"]=function __destruct(){if(this===wrapperPrototype){throwBindingError("Pass correct 'this' to __destruct")}detachFinalizer(this);unregisterInheritedInstance(registeredClass,this.$$.ptr)};ctor.prototype=Object.create(wrapperPrototype);for(var p in properties){ctor.prototype[p]=properties[p]}return Emval.toHandle(ctor)}function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${size}`)}}var awaitingDependencies={};var typeDependencies={};function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function registerType(rawType,registeredInstance,options={}){if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance")}var name=registeredInstance.name;if(!rawType){throwBindingError(`type "${name}" must have a positive integer typeid pointer`)}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(`Cannot register type '${name}' twice`)}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(wt){return!!wt},"toWireType":function(destructors,o){return o?trueValue:falseValue},"argPackAdvance":8,"readValueFromPointer":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError("Unknown boolean type size: "+name)}return this["fromWireType"](heap[pointer>>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater}function ClassHandle(){}function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${arguments.length}) - expects one of (${proto[methodName].overloadTable})!`)}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(`Cannot register public name '${name}' twice`)}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`)}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,Emval.toHandle(function(){clonedHandle["delete"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAP32[pointer>>2])}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]()}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function dynCall(sig,ptr,args){if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr).apply(null,args);return rtn}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes("j")){return getDynCaller(signature,rawFunction)}return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`)}return fp}var UnboundTypeError=undefined;function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(`${message}: `+unboundTypes.map(getTypeName).join([", "]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(`Cannot construct ${name} due to unbound types`,[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`)}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);if(registeredClass.baseClass){if(registeredClass.baseClass.__derivedClasses===undefined){registeredClass.baseClass.__derivedClasses=[]}registeredClass.baseClass.__derivedClasses.push(registeredClass)}var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc,isAsync){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i>2])}return array}function __embind_register_class_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,fn,isAsync){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=`${classType.name}.${methodName}`;function unboundTypesHandler(){throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`,rawArgTypes)}if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}var proto=classType.registeredClass.constructor;if(undefined===proto[methodName]){unboundTypesHandler.argCount=argCount-1;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-1]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));var func=craftInvokerFunction(humanName,invokerArgsArray,null,rawInvoker,fn,isAsync);if(undefined===proto[methodName].overloadTable){func.argCount=argCount-1;proto[methodName]=func}else{proto[methodName].overloadTable[argCount-1]=func}if(classType.registeredClass.__derivedClasses){for(const derivedClass of classType.registeredClass.__derivedClasses){if(!derivedClass.constructor.hasOwnProperty(methodName)){derivedClass.constructor[methodName]=func}}}return[]});return[]})}function __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual,isAsync){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=`${classType.name}.${methodName}`;if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`,rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context,isAsync);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})}function __emval_decref(handle){if(handle>=emval_handles.reserved&&0===--emval_handles.get(handle).refcount){emval_handles.free(handle)}}function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(handle){var rv=Emval.toValue(handle);__emval_decref(handle);return rv},"toWireType":function(destructors,value){return Emval.toHandle(value)},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})}function embindRepr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn,isAsync){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError(`Cannot call ${name} due to unbound types`,argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn,isAsync),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<>>bitshift}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":toWireType,"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(heap.buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+i]=charCode}}else{for(var i=0;i>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var decodeString,encodeString,getHeap,lengthBytesUTF,shift;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;getHeap=()=>HEAPU16;shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=()=>HEAPU32;shift=2}registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value=="string")){throwBindingError(`Cannot pass non-string to C++ string type ${name}`)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}return symbol}var emval_methodCallers=[];function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=Emval.toValue(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}function emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i>2],"parameter "+i)}return a}var emval_registeredMethods=[];function __emval_get_method_caller(argCount,argTypes){var types=emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+"_$"+types.slice(1).map(function(t){return t.name}).join("_")+"$";var returnId=emval_registeredMethods[signatureName];if(returnId!==undefined){return returnId}var argN=new Array(argCount-1);var invokerFunction=(handle,name,destructors,args)=>{var offset=0;for(var i=0;i4){emval_handles.get(handle).refcount+=1}}function _abort(){abort("")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;var pages=size-b.byteLength+65535>>>16;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}BindingError=Module["BindingError"]=extendError(Error,"BindingError");init_emval();PureVirtualError=Module["PureVirtualError"]=extendError(Error,"PureVirtualError");embind_init_charCodes();init_embind();InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_ClassHandle();init_RegisteredPointer();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");var decodeBase64=typeof atob=="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run(); + + + return Bullet.ready +} + +); +})(); +if (typeof exports === 'object' && typeof module === 'object') + module.exports = Bullet; +else if (typeof define === 'function' && define['amd']) + define([], function() { return Bullet; }); +else if (typeof exports === 'object') + exports["Bullet"] = Bullet; diff --git a/emscripten/bullet/bullet.release.wasm.js b/emscripten/bullet/bullet.release.wasm.js new file mode 100644 index 00000000..9e956122 --- /dev/null +++ b/emscripten/bullet/bullet.release.wasm.js @@ -0,0 +1,21 @@ + +var Bullet = (() => { + var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; + + return ( +function(Bullet = {}) { + +var Module=typeof Bullet!="undefined"?Bullet:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=true;var ENVIRONMENT_IS_WORKER=false;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=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 initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}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(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}var wasmBinaryFile;wasmBinaryFile="bullet.release.wasm.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(binaryFile){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{if(!response["ok"]){throw"failed to load wasm binary file at '"+binaryFile+"'"}return response["arrayBuffer"]()}).catch(()=>getBinary(binaryFile))}}return Promise.resolve().then(()=>getBinary(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>{return WebAssembly.instantiate(binary,imports)}).then(instance=>{return instance}).then(receiver,reason=>{err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}else{return instantiateArrayBuffer(binaryFile,imports,callback)}}function createWasm(){var info={"a":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["v"];updateMemoryViews();wasmTable=Module["asm"]["z"];addOnInit(Module["asm"]["w"]);removeRunDependency("wasm-instantiate");return exports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err("Module.instantiateWasm callback failed with error: "+e);readyPromiseReject(e)}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return`_${name}`}return name}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return{[name]:function(){return body.apply(this,arguments)}}[name]}function HandleAllocator(){this.allocated=[undefined];this.freelist=[];this.get=function(id){return this.allocated[id]};this.has=function(id){return this.allocated[id]!==undefined};this.allocate=function(handle){var id=this.freelist.pop()||this.allocated.length;this.allocated[id]=handle;return id};this.free=function(id){this.allocated[id]=undefined;this.freelist.push(id)}}var emval_handles=new HandleAllocator;function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return`${this.name}: ${this.message}`}};return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}function count_emval_handles(){var count=0;for(var i=emval_handles.reserved;i{if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handles.get(handle).value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{return emval_handles.allocate({refcount:1,value:value})}}}};var PureVirtualError=undefined;function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}var delayFunction=undefined;function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function registerInheritedInstance(class_,ptr,instance){ptr=getBasestPointer(class_,ptr);if(registeredInstances.hasOwnProperty(ptr)){throwBindingError(`Tried to register registered instance: ${ptr}`)}else{registeredInstances[ptr]=instance}}var registeredTypes={};function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function unregisterInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);if(registeredInstances.hasOwnProperty(ptr)){delete registeredInstances[ptr]}else{throwBindingError(`Tried to unregister unregistered instance: ${ptr}`)}}function detachFinalizer(handle){}var finalizationRegistry=false;function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}var registeredPointers={};function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function attachFinalizer(handle){if("undefined"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$:$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)}function __embind_create_inheriting_constructor(constructorName,wrapperType,properties){constructorName=readLatin1String(constructorName);wrapperType=requireRegisteredType(wrapperType,"wrapper");properties=Emval.toValue(properties);var arraySlice=[].slice;var registeredClass=wrapperType.registeredClass;var wrapperPrototype=registeredClass.instancePrototype;var baseClass=registeredClass.baseClass;var baseClassPrototype=baseClass.instancePrototype;var baseConstructor=registeredClass.baseClass.constructor;var ctor=createNamedFunction(constructorName,function(){registeredClass.baseClass.pureVirtualFunctions.forEach(function(name){if(this[name]===baseClassPrototype[name]){throw new PureVirtualError(`Pure virtual function ${name} must be implemented in JavaScript`)}}.bind(this));Object.defineProperty(this,"__parent",{value:wrapperPrototype});this["__construct"].apply(this,arraySlice.call(arguments))});wrapperPrototype["__construct"]=function __construct(){if(this===wrapperPrototype){throwBindingError("Pass correct 'this' to __construct")}var inner=baseConstructor["implement"].apply(undefined,[this].concat(arraySlice.call(arguments)));detachFinalizer(inner);var $$=inner.$$;inner["notifyOnDestruction"]();$$.preservePointerOnDelete=true;Object.defineProperties(this,{$$:{value:$$}});attachFinalizer(this);registerInheritedInstance(registeredClass,$$.ptr,this)};wrapperPrototype["__destruct"]=function __destruct(){if(this===wrapperPrototype){throwBindingError("Pass correct 'this' to __destruct")}detachFinalizer(this);unregisterInheritedInstance(registeredClass,this.$$.ptr)};ctor.prototype=Object.create(wrapperPrototype);for(var p in properties){ctor.prototype[p]=properties[p]}return Emval.toHandle(ctor)}function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${size}`)}}var awaitingDependencies={};var typeDependencies={};function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function registerType(rawType,registeredInstance,options={}){if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance")}var name=registeredInstance.name;if(!rawType){throwBindingError(`type "${name}" must have a positive integer typeid pointer`)}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(`Cannot register type '${name}' twice`)}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(wt){return!!wt},"toWireType":function(destructors,o){return o?trueValue:falseValue},"argPackAdvance":8,"readValueFromPointer":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError("Unknown boolean type size: "+name)}return this["fromWireType"](heap[pointer>>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater}function ClassHandle(){}function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${arguments.length}) - expects one of (${proto[methodName].overloadTable})!`)}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(`Cannot register public name '${name}' twice`)}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`)}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,Emval.toHandle(function(){clonedHandle["delete"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAP32[pointer>>2])}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]()}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function dynCall(sig,ptr,args){if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr).apply(null,args);return rtn}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes("j")){return getDynCaller(signature,rawFunction)}return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`)}return fp}var UnboundTypeError=undefined;function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(`${message}: `+unboundTypes.map(getTypeName).join([", "]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(`Cannot construct ${name} due to unbound types`,[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`)}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);if(registeredClass.baseClass){if(registeredClass.baseClass.__derivedClasses===undefined){registeredClass.baseClass.__derivedClasses=[]}registeredClass.baseClass.__derivedClasses.push(registeredClass)}var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc,isAsync){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i>2])}return array}function __embind_register_class_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,fn,isAsync){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=`${classType.name}.${methodName}`;function unboundTypesHandler(){throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`,rawArgTypes)}if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}var proto=classType.registeredClass.constructor;if(undefined===proto[methodName]){unboundTypesHandler.argCount=argCount-1;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-1]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));var func=craftInvokerFunction(humanName,invokerArgsArray,null,rawInvoker,fn,isAsync);if(undefined===proto[methodName].overloadTable){func.argCount=argCount-1;proto[methodName]=func}else{proto[methodName].overloadTable[argCount-1]=func}if(classType.registeredClass.__derivedClasses){for(const derivedClass of classType.registeredClass.__derivedClasses){if(!derivedClass.constructor.hasOwnProperty(methodName)){derivedClass.constructor[methodName]=func}}}return[]});return[]})}function __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual,isAsync){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=`${classType.name}.${methodName}`;if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`,rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context,isAsync);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})}function __emval_decref(handle){if(handle>=emval_handles.reserved&&0===--emval_handles.get(handle).refcount){emval_handles.free(handle)}}function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(handle){var rv=Emval.toValue(handle);__emval_decref(handle);return rv},"toWireType":function(destructors,value){return Emval.toHandle(value)},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})}function embindRepr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn,isAsync){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError(`Cannot call ${name} due to unbound types`,argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn,isAsync),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<>>bitshift}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":toWireType,"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(heap.buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+i]=charCode}}else{for(var i=0;i>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var decodeString,encodeString,getHeap,lengthBytesUTF,shift;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;getHeap=()=>HEAPU16;shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=()=>HEAPU32;shift=2}registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value=="string")){throwBindingError(`Cannot pass non-string to C++ string type ${name}`)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}return symbol}var emval_methodCallers=[];function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=Emval.toValue(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}function emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i>2],"parameter "+i)}return a}var emval_registeredMethods=[];function __emval_get_method_caller(argCount,argTypes){var types=emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+"_$"+types.slice(1).map(function(t){return t.name}).join("_")+"$";var returnId=emval_registeredMethods[signatureName];if(returnId!==undefined){return returnId}var argN=new Array(argCount-1);var invokerFunction=(handle,name,destructors,args)=>{var offset=0;for(var i=0;i4){emval_handles.get(handle).refcount+=1}}function _abort(){abort("")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;var pages=size-b.byteLength+65535>>>16;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}BindingError=Module["BindingError"]=extendError(Error,"BindingError");init_emval();PureVirtualError=Module["PureVirtualError"]=extendError(Error,"PureVirtualError");embind_init_charCodes();init_embind();InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_ClassHandle();init_RegisteredPointer();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");var wasmImports={"k":__embind_create_inheriting_constructor,"p":__embind_register_bigint,"t":__embind_register_bool,"i":__embind_register_class,"h":__embind_register_class_class_function,"g":__embind_register_class_function,"s":__embind_register_emval,"n":__embind_register_float,"a":__embind_register_function,"f":__embind_register_integer,"b":__embind_register_memory_view,"m":__embind_register_std_string,"l":__embind_register_std_wstring,"u":__embind_register_void,"c":__emval_call_void_method,"e":__emval_decref,"d":__emval_get_method_caller,"o":__emval_incref,"j":_abort,"r":_emscripten_memcpy_big,"q":_emscripten_resize_heap};var asm=createWasm();var ___wasm_call_ctors=function(){return(___wasm_call_ctors=Module["asm"]["w"]).apply(null,arguments)};var _malloc=function(){return(_malloc=Module["asm"]["x"]).apply(null,arguments)};var _free=function(){return(_free=Module["asm"]["y"]).apply(null,arguments)};var ___getTypeName=function(){return(___getTypeName=Module["asm"]["A"]).apply(null,arguments)};var __embind_initialize_bindings=Module["__embind_initialize_bindings"]=function(){return(__embind_initialize_bindings=Module["__embind_initialize_bindings"]=Module["asm"]["B"]).apply(null,arguments)};var ___errno_location=function(){return(___errno_location=Module["asm"]["__errno_location"]).apply(null,arguments)};var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run(); + + + return Bullet.ready +} + +); +})(); +if (typeof exports === 'object' && typeof module === 'object') + module.exports = Bullet; +else if (typeof define === 'function' && define['amd']) + define([], function() { return Bullet; }); +else if (typeof exports === 'object') + exports["Bullet"] = Bullet; diff --git a/emscripten/bullet/bullet.release.wasm.wasm b/emscripten/bullet/bullet.release.wasm.wasm new file mode 100644 index 00000000..9d159773 Binary files /dev/null and b/emscripten/bullet/bullet.release.wasm.wasm differ